Protect the jails against explosions, if it is enabled
This commit is contained in:
parent
d734d99e88
commit
cf7c9fc4c2
@ -44,7 +44,7 @@ public class JailMain extends JavaPlugin {
|
||||
|
||||
PluginManager plm = this.getServer().getPluginManager();
|
||||
plm.registerEvents(new BlockListener(this), this);
|
||||
plm.registerEvents(new EntityListener(), this);
|
||||
plm.registerEvents(new EntityListener(this), this);
|
||||
plm.registerEvents(new HandCuffListener(this), this);
|
||||
plm.registerEvents(new PlayerListener(this), this);
|
||||
|
||||
|
@ -10,6 +10,7 @@ public enum Settings {
|
||||
DEBUG("system.debug"),
|
||||
DEFAULTJAIL("jailing.jail.defaultJail"),
|
||||
DELETEINVENTORY("jailing.jail.deleteInventory"),
|
||||
EXPLOSIONPROTECTION("jailing.during.explosionProtection"),
|
||||
IGNORESLEEPINGSTATE("jailing.during.ignoreSleeping"),
|
||||
JAILDEFAULTTIME("jailing.jail.defaultTime"),
|
||||
JAILEDGAMEMODE("jailing.jail.gameMode"),
|
||||
|
@ -1,7 +1,35 @@
|
||||
package com.graywolf336.jail.listeners;
|
||||
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||
|
||||
import com.graywolf336.jail.JailMain;
|
||||
import com.graywolf336.jail.enums.Settings;
|
||||
|
||||
public class EntityListener implements Listener {
|
||||
|
||||
private JailMain pl;
|
||||
|
||||
public EntityListener(JailMain plugin) {
|
||||
this.pl = plugin;
|
||||
}
|
||||
|
||||
@EventHandler(ignoreCancelled=true)
|
||||
public void onEntityExplode(EntityExplodeEvent event) {
|
||||
//Only do the checking if plugin has it enabled
|
||||
//otherwise let's not go through all the blocks
|
||||
if(pl.getConfig().getBoolean(Settings.EXPLOSIONPROTECTION.getPath())) {
|
||||
//Loop through the blocklist and do stuff
|
||||
for(Block b : event.blockList()) {
|
||||
//Check the current block and if it is inside a jail,
|
||||
//then let's do something else
|
||||
if(pl.getJailManager().getJailFromLocation(b.getLocation()) != null) {
|
||||
//Clear the blocklist, this way the explosion effect still happens
|
||||
event.blockList().clear();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -16,6 +16,7 @@ jailing:
|
||||
blockBreakProtection: true
|
||||
blockPlaceProtection: true
|
||||
countDownTimeWhileOffline: false
|
||||
explosionProtection: true
|
||||
ignoreSleeping: true
|
||||
maxAFKTime: 10m #in minutes
|
||||
maxFoodLevel: 20
|
||||
|
Loading…
Reference in New Issue
Block a user