Changement global + ajout item et commande
This commit is contained in:
@@ -0,0 +1,120 @@
|
||||
// Custom Ore Gem - Commande pour voir les minerais du biome actuel
|
||||
// Placez ce fichier dans: kubejs/server_scripts/
|
||||
// Commande: /ores
|
||||
|
||||
ServerEvents.commandRegistry(event => {
|
||||
const oresByBiome = {
|
||||
// Biomes froids (taiga, snowy_*, frozen_*, ice_spikes, grove, cold_ocean)
|
||||
cold: {
|
||||
biomes: ['minecraft:taiga', 'minecraft:frozen_ocean', 'minecraft:frozen_river',
|
||||
'minecraft:snowy_plains', 'minecraft:snowy_beach', 'minecraft:snowy_taiga',
|
||||
'minecraft:old_growth_pine_taiga', 'minecraft:grove', 'minecraft:snowy_slopes',
|
||||
'minecraft:jagged_peaks', 'minecraft:frozen_peaks', 'minecraft:cold_ocean',
|
||||
'minecraft:deep_cold_ocean', 'minecraft:deep_frozen_ocean', 'minecraft:ice_spikes'],
|
||||
ores: ['Lapis (stone)', 'Lapis (deepslate)', 'Diamant Concentre']
|
||||
},
|
||||
// Biomes chauds (desert, jungle, savanna, badlands)
|
||||
hot: {
|
||||
biomes: ['minecraft:desert', 'minecraft:jungle', 'minecraft:sparse_jungle',
|
||||
'minecraft:savanna', 'minecraft:savanna_plateau', 'minecraft:stony_peaks',
|
||||
'minecraft:warm_ocean', 'minecraft:windswept_savanna', 'minecraft:eroded_badlands',
|
||||
'minecraft:bamboo_jungle', 'minecraft:mangrove_swamp', 'minecraft:badlands',
|
||||
'minecraft:wooded_badlands'],
|
||||
ores: ['Or Pur (stone)', 'Or Pur (deepslate)', 'Redstone (stone)',
|
||||
'Redstone (deepslate)', 'Cuivre (haut)', 'Cuivre (bas)']
|
||||
},
|
||||
// Biomes montagnes (peaks, slopes, meadow)
|
||||
mountain: {
|
||||
biomes: ['minecraft:jagged_peaks', 'minecraft:frozen_peaks', 'minecraft:stony_peaks',
|
||||
'minecraft:savanna_plateau', 'minecraft:wooded_badlands', 'minecraft:meadow',
|
||||
'minecraft:grove', 'minecraft:snowy_slopes'],
|
||||
ores: ['Emeraude (haute altitude)']
|
||||
},
|
||||
// Biomes tempérés (plains, forest, swamp, coniferous)
|
||||
tempered: {
|
||||
biomes: ['minecraft:plains', 'minecraft:snowy_plains', 'minecraft:meadow',
|
||||
'minecraft:sunflower_plains', 'minecraft:swamp', 'minecraft:mangrove_swamp',
|
||||
'minecraft:taiga', 'minecraft:snowy_taiga', 'minecraft:old_growth_pine_taiga',
|
||||
'minecraft:grove'],
|
||||
ores: ['Charbon Concentre', 'Fer (stone)', 'Fer (deepslate)']
|
||||
},
|
||||
// Biomes rares (mushroom_fields, flower_forest, ice_spikes, etc.)
|
||||
rare: {
|
||||
biomes: ['minecraft:mushroom_fields', 'minecraft:sparse_jungle', 'minecraft:savanna_plateau',
|
||||
'minecraft:sunflower_plains', 'minecraft:windswept_gravelly_hills',
|
||||
'minecraft:flower_forest', 'minecraft:ice_spikes', 'minecraft:old_growth_birch_forest',
|
||||
'minecraft:old_growth_spruce_taiga', 'minecraft:windswept_savanna',
|
||||
'minecraft:eroded_badlands', 'minecraft:bamboo_jungle', 'minecraft:deep_dark',
|
||||
'minecraft:dark_forest'],
|
||||
ores: ['Emeraude (basse altitude)']
|
||||
}
|
||||
}
|
||||
|
||||
const oresEverywhere = ['Diamant Shard (deepslate)', 'Bloc Diamant Shard']
|
||||
|
||||
// Enregistrement de la commande /ores
|
||||
const oresCmd = event.register('ores')
|
||||
oresCmd.executes(function(ctx) {
|
||||
const player = ctx.source.player
|
||||
if (!player) {
|
||||
ctx.source.sendFailure('Cette commande ne peut etre utilisee que par un joueur')
|
||||
return 1
|
||||
}
|
||||
|
||||
const level = player.getLevel()
|
||||
const pos = player.blockPosition()
|
||||
const biomeHolder = level.getBiome(pos)
|
||||
|
||||
if (!biomeHolder) {
|
||||
ctx.source.sendFailure('Impossible de determiner le biome')
|
||||
return 1
|
||||
}
|
||||
|
||||
const biomeKey = biomeHolder.unwrapKey().toString()
|
||||
const biomeName = biomeHolder.value().getName().getString()
|
||||
const biomeId = biomeKey.replace('minecraft:', '').replace(/^.*:/, '')
|
||||
|
||||
// Trouver les minerais pour ce biome
|
||||
const foundOres = Java.to(['empty'], 'java.util.Set')
|
||||
const foundCategories = []
|
||||
|
||||
for (const category in oresByBiome) {
|
||||
const data = oresByBiome[category]
|
||||
if (data.biomes.indexOf(biomeKey) >= 0 || data.biomes.indexOf('minecraft:' + biomeId) >= 0) {
|
||||
for (let i = 0; i < data.ores.length; i++) {
|
||||
foundOres.add(data.ores[i])
|
||||
}
|
||||
foundCategories.push(category)
|
||||
}
|
||||
}
|
||||
|
||||
// Ajouter les minerais presents partout
|
||||
for (let i = 0; i < oresEverywhere.length; i++) {
|
||||
foundOres.add(oresEverywhere[i])
|
||||
}
|
||||
|
||||
// Afficher le resultat
|
||||
ctx.source.sendSuccess('=== Minerais dans: ' + biomeName + ' ===')
|
||||
ctx.source.sendSuccess('Biome ID: ' + biomeId)
|
||||
ctx.source.sendSuccess('Tags: ' + (foundCategories.join(', ') || 'standard'))
|
||||
|
||||
if (foundOres.size() > 0) {
|
||||
ctx.source.sendSuccess('Minerais trouvables:')
|
||||
const iterator = foundOres.iterator()
|
||||
while (iterator.hasNext()) {
|
||||
ctx.source.sendSuccess(' * ' + iterator.next())
|
||||
}
|
||||
} else {
|
||||
ctx.source.sendSuccess('Aucun minerai specifique a ce biome')
|
||||
}
|
||||
|
||||
return 1
|
||||
})
|
||||
|
||||
// Alias /ore
|
||||
const oreCmd = event.register('ore')
|
||||
oreCmd.executes(function(ctx) {
|
||||
ctx.source.server.commands.executeCommand(ctx.source.source, 'ores')
|
||||
return 1
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user