diff --git a/api/src/main/resources/config.yml b/api/src/main/resources/config.yml index e436d6d..00365c8 100644 --- a/api/src/main/resources/config.yml +++ b/api/src/main/resources/config.yml @@ -75,9 +75,10 @@ announcements: - "--------------------------" # Bits and Bobs -disable-ender-chests: false -prevent-spawner-mining: false enable-calling-bell: true enable-cozy-campfires: true enable-sweethearts: true enable-ziprails: true +disable-ender-chests: false +enable-halloween-candy-drops: false +prevent-spawner-mining: false \ No newline at end of file diff --git a/modules/src/main/java/parallelmc/parallelutils/modules/bitsandbobs/BitsAndBobs.java b/modules/src/main/java/parallelmc/parallelutils/modules/bitsandbobs/BitsAndBobs.java index 6b63030..42dbcf4 100644 --- a/modules/src/main/java/parallelmc/parallelutils/modules/bitsandbobs/BitsAndBobs.java +++ b/modules/src/main/java/parallelmc/parallelutils/modules/bitsandbobs/BitsAndBobs.java @@ -67,18 +67,7 @@ public void onEnable() { manager.registerEvents(new EntityTweaks(), plugin); manager.registerEvents(new HatSlotStuff(), plugin); manager.registerEvents(new SilenceMobs(), plugin); - - if (config.getBoolean("speedy-minecarts", false)) { - manager.registerEvents(new SpeedyMinecarts(), plugin); - } - - if (config.getBoolean("disable-ender-chests", false)) { - manager.registerEvents(new DisableEnderChest(), plugin); - } - - if (config.getBoolean("prevent-spawner-mining", false)) { - manager.registerEvents(new PreventSpawnerMining(), plugin); - } + manager.registerEvents(new HalloweenCandyDrops(), plugin); if (config.getBoolean("enable-calling-bell", true)) { manager.registerEvents(new CallingBell(), plugin); @@ -96,6 +85,22 @@ public void onEnable() { if (config.getBoolean("enable-ziprails", true)) { manager.registerEvents(new Ziprails(), plugin); } + + if (config.getBoolean("disable-ender-chests", false)) { + manager.registerEvents(new DisableEnderChest(), plugin); + } + + if (config.getBoolean("enable-halloween-candy-drops", false)) { + manager.registerEvents(new HalloweenCandyDrops(), plugin); + } + + if (config.getBoolean("prevent-spawner-mining", false)) { + manager.registerEvents(new PreventSpawnerMining(), plugin); + } + + if (config.getBoolean("speedy-minecarts", false)) { + manager.registerEvents(new SpeedyMinecarts(), plugin); + } } @Override diff --git a/modules/src/main/java/parallelmc/parallelutils/modules/bitsandbobs/minimodules/HalloweenCandyDrops.java b/modules/src/main/java/parallelmc/parallelutils/modules/bitsandbobs/minimodules/HalloweenCandyDrops.java new file mode 100644 index 0000000..924c97b --- /dev/null +++ b/modules/src/main/java/parallelmc/parallelutils/modules/bitsandbobs/minimodules/HalloweenCandyDrops.java @@ -0,0 +1,94 @@ +package parallelmc.parallelutils.modules.bitsandbobs.minimodules; + +import org.bukkit.Bukkit; +import org.bukkit.entity.EntityType; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityDeathEvent; +import org.bukkit.event.entity.EntityDropItemEvent; +import org.bukkit.inventory.ItemStack; +import org.bukkit.plugin.Plugin; +import org.bukkit.plugin.PluginManager; +import parallelmc.parallelutils.Constants; +import parallelmc.parallelutils.ParallelModule; +import parallelmc.parallelutils.ParallelUtils; +import parallelmc.parallelutils.modules.parallelitems.ParallelItems; +import parallelmc.parallelutils.util.RandomTools; + +import java.util.logging.Level; + +public class HalloweenCandyDrops implements Listener { + + private ParallelItems parallelItems; + + public HalloweenCandyDrops() { + PluginManager manager = Bukkit.getPluginManager(); + Plugin plugin = manager.getPlugin(Constants.PLUGIN_NAME); + if (plugin == null) { + ParallelUtils.log(Level.SEVERE, "Unable to enable Halloween Candy Drops. Plugin " + Constants.PLUGIN_NAME + + " does not exist!"); + return; + } + + ParallelUtils puPlugin = (ParallelUtils) plugin; + + ParallelModule module = puPlugin.getModule("ParallelItems"); + if (module instanceof ParallelItems) { + parallelItems = (ParallelItems) module; + } + else { + ParallelUtils.log(Level.WARNING, "Unable to find ParallelItems module from give command."); + } + } + + @EventHandler + public void onEntityDeath(EntityDeathEvent event) { + // 1 in 5 chance of the halloween candy dropping + if (RandomTools.betweenTwoNumbers(1, 5) == 1) { + ItemStack candy; + EntityType entityType = event.getEntityType(); + switch (entityType) { + case BLAZE: + candy = parallelItems.getItem("ralnthar_roar").clone(); + event.getDrops().add(candy); + break; + case CREEPER: + candy = parallelItems.getItem("creeper_crunch").clone(); + event.getDrops().add(candy); + break; + case ENDERMAN: + candy = parallelItems.getItem("raspberry_rift").clone(); + event.getDrops().add(candy); + break; + case EVOKER, ILLUSIONER, PILLAGER, VINDICATOR: + candy = parallelItems.getItem("green_apple_goo").clone(); + event.getDrops().add(candy); + break; + case GHAST: + candy = parallelItems.getItem("nether_portal_nougat").clone(); + event.getDrops().add(candy); + break; + case MAGMA_CUBE: + candy = parallelItems.getItem("magma_melt").clone(); + event.getDrops().add(candy); + break; + case PIGLIN, PIGLIN_BRUTE, ZOMBIFIED_PIGLIN: + candy = parallelItems.getItem("phantasmic_fudge").clone(); + event.getDrops().add(candy); + break; + case SKELETON: + candy = parallelItems.getItem("mysterious_mint").clone(); + event.getDrops().add(candy); + break; + case WITHER_SKELETON: + candy = parallelItems.getItem("pumpkin_pop").clone(); + event.getDrops().add(candy); + break; + case ZOMBIE: + candy = parallelItems.getItem("eerie_eyeball").clone(); + event.getDrops().add(candy); + break; + } + } + } +}