@SubscribeEvent public void lootLoad(LootTableLoadEvent evt) { String prefix = "minecraft:chests/"; String name = evt.getName().toString(); if (name.startsWith(prefix)) { String file = name.substring(name.indexOf(prefix) + prefix.length()); switch (file) { case "abandoned_mineshaft": case "desert_pyramid": case "jungle_temple": case "simple_dungeon": case "spawn_bonus_chest": case "stronghold_corridor": case "village_blacksmith": evt.getTable().addPool(getInjectPool(file)); break; default: break; } } }
@SubscribeEvent public void onLootTableLoad(LootTableLoadEvent event) { if(SPAGHETTI_LOCATIONS.contains(event.getName().toString())) { event.getTable().addPool(pool); } } }
private void onLootChestTableLoad(LootPool main, LootTableLoadEvent event) { if (event.getName() == LootTableList.CHESTS_SPAWN_BONUS_CHEST) { fillBonusChest(main); } else if (event.getName() == LootTableList.CHESTS_IGLOO_CHEST) { fillIglooChest(main); } else if (event.getName() == LootTableList.CHESTS_END_CITY_TREASURE) { fillEndCityChest(main); } else if (chests.contains(event.getName())) { // every other pool fillGenericChest(main); } }
@SubscribeEvent public void onLootTableLoad(LootTableLoadEvent event) { // wither skellies drop necrotic bones if(event.getName().equals(LootTableList.ENTITIES_WITHER_SKELETON)) { LootCondition[] lootConditions = new LootCondition[0]; LootEntry entry = new LootEntryItem(TinkerCommons.matNecroticBone.getItem(), 1, 0, new LootFunction[]{new SetMetadata(lootConditions, new RandomValueRange(TinkerCommons.matNecroticBone.getMetadata()))}, lootConditions, "necrotic_bone"); event.getTable().addPool(new LootPool(new LootEntry[]{entry}, new LootCondition[]{ new KilledByPlayer(false), new RandomChanceWithLooting(0.07f, 0.05f) }, new RandomValueRange(1), new RandomValueRange(0), "necrotic_bone")); } }
@SubscribeEvent public static void lootLoad(LootTableLoadEvent evt) { String name = evt.getName().toString(); if (name.startsWith(CHESTS_PREFIX) && CHEST_TABLES.contains(name.substring(CHESTS_PREFIX.length()))) { String file = name.substring("minecraft:".length()); evt.getTable().addPool(getInjectPool(file)); } }
@SubscribeEvent public void onWorldLoad(LootTableLoadEvent event) { LootPool mainPool = event.getTable().getPool("main"); if(mainPool != null && lootEntryItems.containsKey(event.getName())) { ArrayList<LootEntryItem> entryItems = lootEntryItems.get(event.getName()); for(LootEntryItem entry : entryItems) { mainPool.addEntry(entry); } } if(mainPool != null && rollVals.containsKey(event.getName())) { RandomValueRange rangeAdd = rollVals.get(event.getName()); RandomValueRange range = mainPool.getRolls(); mainPool.setRolls(new RandomValueRange(range.getMin() + rangeAdd.getMin(), range.getMax() + rangeAdd.getMax())); } }
@SubscribeEvent public void loadLootTable( LootTableLoadEvent event ) { if( event.getName() == LootTableList.CHESTS_ABANDONED_MINESHAFT ) { // TODO 1.9.4 aftermath - All these loot quality, pools and stuff. Figure it out and balance it. final IMaterials materials = AEApi.instance().definitions().materials(); materials.certusQuartzCrystal().maybeStack( 1 ).ifPresent( is -> { event.getTable() .addPool( new LootPool( new LootEntry[] { new LootEntryItem( is.getItem(), 2, 3, new LootFunction[] { new SetMetadata( null, new RandomValueRange( is.getItemDamage() ) ) }, new LootCondition[] { new RandomChance( 1 ) }, "AE2 Crystal_" + is.getItemDamage() ) }, new LootCondition[0], new RandomValueRange( 1, 4 ), new RandomValueRange( 0, 2 ), "AE2 Crystals" ) ); } ); materials.certusQuartzDust().maybeStack( 1 ).ifPresent( is -> { event.getTable() .addPool( new LootPool( new LootEntryItem[] { new LootEntryItem( is.getItem(), 2, 3, new LootFunction[] { new SetMetadata( null, new RandomValueRange( is.getItemDamage() ) ) }, new LootCondition[] { new RandomChance( 1 ) }, "AE2 Dust_" + is.getItemDamage() ) }, new LootCondition[0], new RandomValueRange( 1, 4 ), new RandomValueRange( 0, 2 ), "AE2 DUSTS" ) ); } ); } }
@SubscribeEvent public void onLootTableLoad(LootTableLoadEvent event) { ResourceLocation name = event.getName(); LootTable table = event.getTable(); Loot.handleTable(table, name); } @SubscribeEvent
private static void injectTables(@Nonnull LootTableLoadEvent evt) { if (MC_TABLES.contains(evt.getName())) { LootPool lp = new LootPool(new LootEntry[0], NO_CONDITIONS, new RandomValueRange(1, 3), new RandomValueRange(0, 0), EnderIO.MOD_NAME); addTable(lp, eio(evt.getName())); evt.getTable().addPool(lp); } }
@SubscribeEvent public void onLootLoad(LootTableLoadEvent event) { String prefix = "minecraft:chests/"; String name = event.getName().toString(); if (name.startsWith(prefix)) { String file = name.substring(name.indexOf(prefix) + prefix.length()); switch (file) { case "abandoned_mineshaft": case "desert_pyramid": case "jungle_temple": case "stronghold_corridor": case "stronghold_library": event.getTable().addPool(getInjectPool(file)); injected++; break; default: break; } } }
@SubscribeEvent public void onLootTableLoad(LootTableLoadEvent event) { ResourceLocation res = event.getName(); if(tablesToEdit.contains(res)) { if(customPools.containsKey(res)) customPools.get(res); event.getTable().getPool("main").addEntry(new LootEntryItem(Items.FILLED_MAP, rarity, quality, new LootFunction[] { new SetAsTreasureFunction() }, new LootCondition[0], "quark:treasure_map")); } }
@SubscribeEvent public void onTableLoaded (LootTableLoadEvent event) { for (final LootBuilder builder : this.helper.getLootTableEntries().get(event.getName())) { final LootPool pool = event.getTable().getPool(builder.getPool()); if (pool != null) { pool.addEntry(builder.build()); } else { Constants.LOG.info("The mod {} tried to add loot to {} but the pool was not found. {}", this.helper.getModid(), event.getName(), builder.toString()); } } }
@SubscribeEvent public void generateCrashedShipLoot(LootTableLoadEvent event) { if (event.getName().toString().equals("matteroverdrive:crashed_ship")) { LootTable crashedShipLootTable = event.getTable(); LootEntry entry = new LootEntryTable(new ResourceLocation("matteroverdrive:crashed_ship"), 100, 1, new LootCondition[]{}, Reference.CHEST_GEN_ANDROID_HOUSE); } }
@SubscribeEvent public void onLootLoading(LootTableLoadEvent event) { if (event.getName().toString().equals("minecraft:gameplay/fishing")) { LootPool pool = event.getTable().getPool("main"); if (pool != null) { for (String name : LOOT_TABLES) { LootEntry entry = pool.getEntry("minecraft:" + name); if (entry != null) { pool.addEntry(getEntry(MODID + "_" + name.replace(FISHING, ""), name, getVanillaQuality(entry), getVanillaWeight(entry))); } } } } }
@SubscribeEvent public void onLootTableLoad(LootTableLoadEvent event) { LootFunction[] funcs = new LootFunction[] { new SetMetadata(new LootCondition[0], new RandomValueRange(0, enableRainbowRuneChests ? 16 : 15)) }; if(event.getName().equals(LootTableList.CHESTS_SIMPLE_DUNGEON)) event.getTable().getPool("main").addEntry(new LootEntryItem(rune, dungeonWeight, itemQuality, funcs, new LootCondition[0], "quark:rune")); else if(event.getName().equals(LootTableList.CHESTS_NETHER_BRIDGE)) event.getTable().getPool("main").addEntry(new LootEntryItem(rune, netherFortressWeight, itemQuality, funcs, new LootCondition[0], "quark:rune")); else if(event.getName().equals(LootTableList.CHESTS_JUNGLE_TEMPLE)) event.getTable().getPool("main").addEntry(new LootEntryItem(rune, jungleTempleWeight, itemQuality, funcs, new LootCondition[0], "quark:rune")); else if(event.getName().equals(LootTableList.CHESTS_DESERT_PYRAMID)) event.getTable().getPool("main").addEntry(new LootEntryItem(rune, desertTempleWeight, itemQuality, funcs, new LootCondition[0], "quark:rune")); }
@SubscribeEvent public void onChestGenerated(LootTableLoadEvent event) { if (event.getName().equals(LootTableList.CHESTS_SIMPLE_DUNGEON)) { final LootPool pool1 = event.getTable().getPool("pool1"); if (pool1 != null) { pool1.addEntry(new LootEntryItem(ModItems.manuscript, 10, 5, new LootFunction[0], new LootCondition[0], "iceandfire:manuscript")); } } }
@SubscribeEvent public void onLootTableLoad(LootTableLoadEvent event) { if(event.getName().equals(LootTableList.CHESTS_STRONGHOLD_LIBRARY)) event.getTable().getPool("main").addEntry(new LootEntryItem(ancient_tome, libraryWeight, itemQuality, new LootFunction[] { new EnchantTomeFunction() }, new LootCondition[0], "quark:ancient_tome")); else if(event.getName().equals(LootTableList.CHESTS_SIMPLE_DUNGEON)) event.getTable().getPool("main").addEntry(new LootEntryItem(ancient_tome, dungeonWeight, itemQuality, new LootFunction[] { new EnchantTomeFunction() }, new LootCondition[0], "quark:ancient_tome")); }
public static void handleLootTableMod(LootTableLoadEvent event) { final List<CustomLootPool> customLootPools = getCustomLootPools(event.getName()); for (CustomLootPool customLootPool : customLootPools) { final String lootPoolId = customLootPool.isSeperateLootPool() ? SEPARATE_LOOT_POOL_ID : VANILLA_LOOT_POOL_ID; createPoolIfNotExists(event.getTable(), lootPoolId); final LootPool lootPool = event.getTable().getPool(lootPoolId); for (LootEntry entry : customLootPool.getLootEntries()) { lootPool.addEntry(entry); } } }
@SubscribeEvent public void dungeonLootLoad(LootTableLoadEvent event) { if (event.getName().toString().equals("minecraft:chests/simple_dungeon")) { LootTableList.register(new ResourceLocation("matteroverdrive:inject/simple_dungeon")); LootEntry entry = new LootEntryTable(new ResourceLocation("matteroverdrive:inject/simple_dungeon"), 100, 1, new LootCondition[]{}, "Blue_Pill"); LootPool pool = new LootPool(new LootEntry[]{entry}, new LootCondition[]{}, new RandomValueRange(0, 10), new RandomValueRange(0, 10), "Blue_Pill"); //event.getTable().addPool(pool); } }
@SubscribeEvent public void onLootTableLoad(LootTableLoadEvent event) { LootPool main = event.getTable().getPool(LOOTPOOLNAME); if (main == null) { //create my own. EX: mobs that have no drops (bats) also have empty loot table, so i have to inject an entry in the table before I fill it event.getTable().addPool(new LootPool(new LootEntry[0], new LootCondition[0], new RandomValueRange(1F, 2F), new RandomValueRange(1F, 1F), LOOTPOOLNAME)); main = event.getTable().getPool(LOOTPOOLNAME); if (main == null) { ModCyclic.logger.error("could not insert Loot Pool for table :" + event.getName().toString()); return; } } if (enableChestLoot) { onLootChestTableLoad(main, event); } }