1.4.1
Added: - Creeper Disable Fuse Setting
This commit is contained in:
1 parent
196dc123e7
commit
ea2c98284f
2 files changed
+16
-38
No files matched your search
@@ -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]
|
||||
+15
-38
@@ -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()
|
||||
);
|
||||
|
||||
|
||||
Reference in new issue
Block a user