Added:
- Creeper Disable Fuse Setting
This commit is contained in:
BigPappa committed 2026-09-20 14:45:33 -05:00
1 parent 196dc123e7
commit ea2c98284f
2 files changed
+16 -38

No files matched your search

+1
View File
@@ -3,6 +3,7 @@ Features:
[list]
[*]Keep Inventory[list][*]Determines what happens to your stuff when you die.[/list]
[*]Creeper Damage[list][*]Enables/Disables creeper damage. Seperate settings for Blocks and Mobs/Players[/list]
[*]Creeper Disable Fuse[list][*]Enable/Disable a creepers ability to explode. The creeper will still ignite itself but after a second it will disarm.[/list]
[*]Mob Equipment Drops[list][*]Determines wether equipped items are dropped by mobs when killed by a player or not[/list]
[*]All Mobs Peaceful[list][*]Enable/Disable a Mobs ability to target players[/list]
[/list]
@@ -5,8 +5,9 @@ import org.bukkit.Bukkit;
import org.bukkit.entity.Creeper;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityTargetEvent;
import org.bukkit.event.entity.EntityTargetLivingEntityEvent;
import org.bukkit.event.entity.EntityExplodeEvent;
import org.bukkit.scheduler.BukkitTask;
@@ -19,9 +20,9 @@ public class CreeperDisableFuseListener implements Listener {
private final Map<UUID, BukkitTask> activeTasks =
new HashMap<>();
@EventHandler
@EventHandler(priority = EventPriority.MONITOR)
public void onEntityTarget(
EntityTargetEvent event
EntityTargetLivingEntityEvent event
) {
if (!(event.getEntity() instanceof Creeper creeper)) {
@@ -32,20 +33,17 @@ public class CreeperDisableFuseListener implements Listener {
stopTask(
creeper.getUniqueId()
);
return;
}
try {
String worldName =
creeper.getWorld()
.getName();
boolean disableFuse =
RSServerAdmin.getInstance()
.getCreeperSettingsDAO()
.getDisableFuse(
worldName
creeper.getWorld().getName()
);
if (!disableFuse) {
@@ -69,7 +67,7 @@ public class CreeperDisableFuseListener implements Listener {
}
@EventHandler
@EventHandler(priority = EventPriority.HIGHEST)
public void onEntityExplode(
EntityExplodeEvent event
) {
@@ -80,37 +78,25 @@ public class CreeperDisableFuseListener implements Listener {
try {
String worldName =
creeper.getWorld()
.getName();
boolean disableFuse =
RSServerAdmin.getInstance()
.getCreeperSettingsDAO()
.getDisableFuse(
worldName
creeper.getWorld().getName()
);
if (!disableFuse) {
return;
}
stopTask(
creeper.getUniqueId()
);
creeper.setIgnited(
false
);
creeper.setFuseTicks(
0
);
event.setCancelled(
true
);
stopTask(
creeper.getUniqueId()
);
} catch (Exception ex) {
RSServerAdmin.getInstance()
@@ -157,8 +143,7 @@ public class CreeperDisableFuseListener implements Listener {
RSServerAdmin.getInstance()
.getCreeperSettingsDAO()
.getDisableFuse(
creeper.getWorld()
.getName()
creeper.getWorld().getName()
);
if (!disableFuse) {
@@ -180,15 +165,7 @@ public class CreeperDisableFuseListener implements Listener {
return;
}
if (creeper.isIgnited()) {
creeper.setIgnited(
false
);
}
if (creeper.getFuseTicks() != 0) {
if (creeper.getFuseTicks() > 0) {
creeper.setFuseTicks(
0
@@ -201,7 +178,7 @@ public class CreeperDisableFuseListener implements Listener {
RSServerAdmin.getInstance()
.getLogger()
.warning(
"Failed to prevent Creeper fuse: "
"Failed to reset Creeper fuse ticks: "
+ ex.getMessage()
);