Skip to content

Commit fa3241b

Browse files
committed
Add optional Halloween candy drops to mobs
1 parent 4f30645 commit fa3241b

File tree

3 files changed

+114
-14
lines changed

3 files changed

+114
-14
lines changed

api/src/main/resources/config.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,10 @@ announcements:
7575
- "<dark_gray><strikethrough>--------------------------"
7676

7777
# Bits and Bobs
78-
disable-ender-chests: false
79-
prevent-spawner-mining: false
8078
enable-calling-bell: true
8179
enable-cozy-campfires: true
8280
enable-sweethearts: true
8381
enable-ziprails: true
82+
disable-ender-chests: false
83+
enable-halloween-candy-drops: false
84+
prevent-spawner-mining: false

modules/src/main/java/parallelmc/parallelutils/modules/bitsandbobs/BitsAndBobs.java

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -67,18 +67,7 @@ public void onEnable() {
6767
manager.registerEvents(new EntityTweaks(), plugin);
6868
manager.registerEvents(new HatSlotStuff(), plugin);
6969
manager.registerEvents(new SilenceMobs(), plugin);
70-
71-
if (config.getBoolean("speedy-minecarts", false)) {
72-
manager.registerEvents(new SpeedyMinecarts(), plugin);
73-
}
74-
75-
if (config.getBoolean("disable-ender-chests", false)) {
76-
manager.registerEvents(new DisableEnderChest(), plugin);
77-
}
78-
79-
if (config.getBoolean("prevent-spawner-mining", false)) {
80-
manager.registerEvents(new PreventSpawnerMining(), plugin);
81-
}
70+
manager.registerEvents(new HalloweenCandyDrops(), plugin);
8271

8372
if (config.getBoolean("enable-calling-bell", true)) {
8473
manager.registerEvents(new CallingBell(), plugin);
@@ -96,6 +85,22 @@ public void onEnable() {
9685
if (config.getBoolean("enable-ziprails", true)) {
9786
manager.registerEvents(new Ziprails(), plugin);
9887
}
88+
89+
if (config.getBoolean("disable-ender-chests", false)) {
90+
manager.registerEvents(new DisableEnderChest(), plugin);
91+
}
92+
93+
if (config.getBoolean("enable-halloween-candy-drops", false)) {
94+
manager.registerEvents(new HalloweenCandyDrops(), plugin);
95+
}
96+
97+
if (config.getBoolean("prevent-spawner-mining", false)) {
98+
manager.registerEvents(new PreventSpawnerMining(), plugin);
99+
}
100+
101+
if (config.getBoolean("speedy-minecarts", false)) {
102+
manager.registerEvents(new SpeedyMinecarts(), plugin);
103+
}
99104
}
100105

101106
@Override
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
package parallelmc.parallelutils.modules.bitsandbobs.minimodules;
2+
3+
import org.bukkit.Bukkit;
4+
import org.bukkit.entity.EntityType;
5+
import org.bukkit.event.EventHandler;
6+
import org.bukkit.event.Listener;
7+
import org.bukkit.event.entity.EntityDeathEvent;
8+
import org.bukkit.event.entity.EntityDropItemEvent;
9+
import org.bukkit.inventory.ItemStack;
10+
import org.bukkit.plugin.Plugin;
11+
import org.bukkit.plugin.PluginManager;
12+
import parallelmc.parallelutils.Constants;
13+
import parallelmc.parallelutils.ParallelModule;
14+
import parallelmc.parallelutils.ParallelUtils;
15+
import parallelmc.parallelutils.modules.parallelitems.ParallelItems;
16+
import parallelmc.parallelutils.util.RandomTools;
17+
18+
import java.util.logging.Level;
19+
20+
public class HalloweenCandyDrops implements Listener {
21+
22+
private ParallelItems parallelItems;
23+
24+
public HalloweenCandyDrops() {
25+
PluginManager manager = Bukkit.getPluginManager();
26+
Plugin plugin = manager.getPlugin(Constants.PLUGIN_NAME);
27+
if (plugin == null) {
28+
ParallelUtils.log(Level.SEVERE, "Unable to enable Halloween Candy Drops. Plugin " + Constants.PLUGIN_NAME
29+
+ " does not exist!");
30+
return;
31+
}
32+
33+
ParallelUtils puPlugin = (ParallelUtils) plugin;
34+
35+
ParallelModule module = puPlugin.getModule("ParallelItems");
36+
if (module instanceof ParallelItems) {
37+
parallelItems = (ParallelItems) module;
38+
}
39+
else {
40+
ParallelUtils.log(Level.WARNING, "Unable to find ParallelItems module from give command.");
41+
}
42+
}
43+
44+
@EventHandler
45+
public void onEntityDeath(EntityDeathEvent event) {
46+
// 1 in 5 chance of the halloween candy dropping
47+
if (RandomTools.betweenTwoNumbers(1, 5) == 1) {
48+
ItemStack candy;
49+
EntityType entityType = event.getEntityType();
50+
switch (entityType) {
51+
case BLAZE:
52+
candy = parallelItems.getItem("ralnthar_roar").clone();
53+
event.getDrops().add(candy);
54+
break;
55+
case CREEPER:
56+
candy = parallelItems.getItem("creeper_crunch").clone();
57+
event.getDrops().add(candy);
58+
break;
59+
case ENDERMAN:
60+
candy = parallelItems.getItem("raspberry_rift").clone();
61+
event.getDrops().add(candy);
62+
break;
63+
case EVOKER, ILLUSIONER, PILLAGER, VINDICATOR:
64+
candy = parallelItems.getItem("green_apple_goo").clone();
65+
event.getDrops().add(candy);
66+
break;
67+
case GHAST:
68+
candy = parallelItems.getItem("nether_portal_nougat").clone();
69+
event.getDrops().add(candy);
70+
break;
71+
case MAGMA_CUBE:
72+
candy = parallelItems.getItem("magma_melt").clone();
73+
event.getDrops().add(candy);
74+
break;
75+
case PIGLIN, PIGLIN_BRUTE, ZOMBIFIED_PIGLIN:
76+
candy = parallelItems.getItem("phantasmic_fudge").clone();
77+
event.getDrops().add(candy);
78+
break;
79+
case SKELETON:
80+
candy = parallelItems.getItem("mysterious_mint").clone();
81+
event.getDrops().add(candy);
82+
break;
83+
case WITHER_SKELETON:
84+
candy = parallelItems.getItem("pumpkin_pop").clone();
85+
event.getDrops().add(candy);
86+
break;
87+
case ZOMBIE:
88+
candy = parallelItems.getItem("eerie_eyeball").clone();
89+
event.getDrops().add(candy);
90+
break;
91+
}
92+
}
93+
}
94+
}

0 commit comments

Comments
 (0)