// 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 }) })