Added config options to disable xp drops (even though they should no longer lag) and death messages.

This commit is contained in:
Wizjany 2011-09-21 16:48:56 -04:00
parent b884787377
commit 89ce7312d1
2 changed files with 21 additions and 0 deletions

View File

@ -83,6 +83,7 @@ public class WorldConfiguration {
public boolean classicWater; public boolean classicWater;
public boolean simulateSponge; public boolean simulateSponge;
public int spongeRadius; public int spongeRadius;
public boolean disableExpDrops;
public boolean pumpkinScuba; public boolean pumpkinScuba;
public boolean redstoneSponges; public boolean redstoneSponges;
public boolean noPhysicsGravel; public boolean noPhysicsGravel;
@ -149,6 +150,7 @@ public class WorldConfiguration {
public boolean disableLeafDecay; public boolean disableLeafDecay;
public boolean disableEndermanGriefing; public boolean disableEndermanGriefing;
public boolean regionInvinciblityRemovesMobs; public boolean regionInvinciblityRemovesMobs;
public boolean disableDeathMessages;
/* Configuration data end */ /* Configuration data end */
@ -255,6 +257,7 @@ private void loadConfiguration() {
enforceOneSession = getBoolean("protection.enforce-single-session", true); enforceOneSession = getBoolean("protection.enforce-single-session", true);
itemDurability = getBoolean("protection.item-durability", true); itemDurability = getBoolean("protection.item-durability", true);
removeInfiniteStacks = getBoolean("protection.remove-infinite-stacks", false); removeInfiniteStacks = getBoolean("protection.remove-infinite-stacks", false);
disableExpDrops = getBoolean("protection.disable-xp-orb-drops", false);
classicWater = getBoolean("simulation.classic-water", false); classicWater = getBoolean("simulation.classic-water", false);
simulateSponge = getBoolean("simulation.sponge.enable", true); simulateSponge = getBoolean("simulation.sponge.enable", true);
@ -305,6 +308,7 @@ private void loadConfiguration() {
teleportOnVoid = getBoolean("player-damage.teleport-on-void-falling", false); teleportOnVoid = getBoolean("player-damage.teleport-on-void-falling", false);
disableExplosionDamage = getBoolean("player-damage.disable-explosion-damage", false); disableExplosionDamage = getBoolean("player-damage.disable-explosion-damage", false);
disableMobDamage = getBoolean("player-damage.disable-mob-damage", false); disableMobDamage = getBoolean("player-damage.disable-mob-damage", false);
disableDeathMessages = getBoolean("player-damage.disable-death-messages", false);
signChestProtection = getBoolean("chest-protection.enable", false); signChestProtection = getBoolean("chest-protection.enable", false);

View File

@ -51,12 +51,14 @@
import org.bukkit.event.entity.EntityDamageByBlockEvent; import org.bukkit.event.entity.EntityDamageByBlockEvent;
import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.entity.EntityExplodeEvent;
import org.bukkit.event.entity.EntityInteractEvent; import org.bukkit.event.entity.EntityInteractEvent;
import org.bukkit.event.entity.EntityListener; import org.bukkit.event.entity.EntityListener;
import org.bukkit.event.entity.EntityRegainHealthEvent; import org.bukkit.event.entity.EntityRegainHealthEvent;
import org.bukkit.event.entity.ExplosionPrimeEvent; import org.bukkit.event.entity.ExplosionPrimeEvent;
import org.bukkit.event.entity.PigZapEvent; import org.bukkit.event.entity.PigZapEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause; import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.event.painting.PaintingBreakByEntityEvent; import org.bukkit.event.painting.PaintingBreakByEntityEvent;
import org.bukkit.event.painting.PaintingBreakEvent; import org.bukkit.event.painting.PaintingBreakEvent;
@ -112,6 +114,7 @@ public void registerEvents() {
registerEvent("ENTITY_REGAIN_HEALTH", Priority.High); registerEvent("ENTITY_REGAIN_HEALTH", Priority.High);
registerEvent("ENDERMAN_PICKUP", Priority.High); registerEvent("ENDERMAN_PICKUP", Priority.High);
registerEvent("ENDERMAN_PLACE", Priority.High); registerEvent("ENDERMAN_PLACE", Priority.High);
registerEvent("ENTITY_DEATH", Priority.High);
} }
/** /**
@ -148,6 +151,20 @@ public void onEntityInteract(EntityInteractEvent event) {
} }
} }
/**
* Called when an entity dies.
*/
@Override
public void onEntityDeath(EntityDeathEvent event) {
WorldConfiguration wcfg = plugin.getGlobalStateManager().get(event.getEntity().getWorld());
if (wcfg.disableExpDrops) {
event.setDroppedExp(0);
}
if (event instanceof PlayerDeathEvent && wcfg.disableDeathMessages) {
((PlayerDeathEvent) event).setDeathMessage("");
}
}
/** /**
* Called on entity damage by a block. * Called on entity damage by a block.
* *