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] [list]
[*]Keep Inventory[list][*]Determines what happens to your stuff when you die.[/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 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] [*]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] [*]All Mobs Peaceful[list][*]Enable/Disable a Mobs ability to target players[/list]
[/list] [/list]
@@ -5,8 +5,9 @@ import org.bukkit.Bukkit;
import org.bukkit.entity.Creeper; import org.bukkit.entity.Creeper;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; 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.event.entity.EntityExplodeEvent;
import org.bukkit.scheduler.BukkitTask; import org.bukkit.scheduler.BukkitTask;
@@ -19,9 +20,9 @@ public class CreeperDisableFuseListener implements Listener {
private final Map<UUID, BukkitTask> activeTasks = private final Map<UUID, BukkitTask> activeTasks =
new HashMap<>(); new HashMap<>();
@EventHandler @EventHandler(priority = EventPriority.MONITOR)
public void onEntityTarget( public void onEntityTarget(
EntityTargetEvent event EntityTargetLivingEntityEvent event
) { ) {
if (!(event.getEntity() instanceof Creeper creeper)) { if (!(event.getEntity() instanceof Creeper creeper)) {
@@ -32,20 +33,17 @@ public class CreeperDisableFuseListener implements Listener {
stopTask( stopTask(
creeper.getUniqueId() creeper.getUniqueId()
); );
return; return;
} }
try { try {
String worldName =
creeper.getWorld()
.getName();
boolean disableFuse = boolean disableFuse =
RSServerAdmin.getInstance() RSServerAdmin.getInstance()
.getCreeperSettingsDAO() .getCreeperSettingsDAO()
.getDisableFuse( .getDisableFuse(
worldName creeper.getWorld().getName()
); );
if (!disableFuse) { if (!disableFuse) {
@@ -69,7 +67,7 @@ public class CreeperDisableFuseListener implements Listener {
} }
@EventHandler @EventHandler(priority = EventPriority.HIGHEST)
public void onEntityExplode( public void onEntityExplode(
EntityExplodeEvent event EntityExplodeEvent event
) { ) {
@@ -80,37 +78,25 @@ public class CreeperDisableFuseListener implements Listener {
try { try {
String worldName =
creeper.getWorld()
.getName();
boolean disableFuse = boolean disableFuse =
RSServerAdmin.getInstance() RSServerAdmin.getInstance()
.getCreeperSettingsDAO() .getCreeperSettingsDAO()
.getDisableFuse( .getDisableFuse(
worldName creeper.getWorld().getName()
); );
if (!disableFuse) { if (!disableFuse) {
return; return;
} }
stopTask(
creeper.getUniqueId()
);
creeper.setIgnited(
false
);
creeper.setFuseTicks(
0
);
event.setCancelled( event.setCancelled(
true true
); );
stopTask(
creeper.getUniqueId()
);
} catch (Exception ex) { } catch (Exception ex) {
RSServerAdmin.getInstance() RSServerAdmin.getInstance()
@@ -157,8 +143,7 @@ public class CreeperDisableFuseListener implements Listener {
RSServerAdmin.getInstance() RSServerAdmin.getInstance()
.getCreeperSettingsDAO() .getCreeperSettingsDAO()
.getDisableFuse( .getDisableFuse(
creeper.getWorld() creeper.getWorld().getName()
.getName()
); );
if (!disableFuse) { if (!disableFuse) {
@@ -180,15 +165,7 @@ public class CreeperDisableFuseListener implements Listener {
return; return;
} }
if (creeper.isIgnited()) { if (creeper.getFuseTicks() > 0) {
creeper.setIgnited(
false
);
}
if (creeper.getFuseTicks() != 0) {
creeper.setFuseTicks( creeper.setFuseTicks(
0 0
@@ -201,7 +178,7 @@ public class CreeperDisableFuseListener implements Listener {
RSServerAdmin.getInstance() RSServerAdmin.getInstance()
.getLogger() .getLogger()
.warning( .warning(
"Failed to prevent Creeper fuse: " "Failed to reset Creeper fuse ticks: "
+ ex.getMessage() + ex.getMessage()
); );