From da566d00fdb38016445d6349837d25cc2ff08233 Mon Sep 17 00:00:00 2001 From: Robin Kupper Date: Mon, 26 Sep 2011 17:39:30 +0200 Subject: [PATCH] Moved kill event spam check --- src/de/diddiz/LogBlock/Consumer.java | 6 ------ src/de/diddiz/LogBlock/LBEntityListener.java | 7 +++++++ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/de/diddiz/LogBlock/Consumer.java b/src/de/diddiz/LogBlock/Consumer.java index 5eaefd4..e10612a 100644 --- a/src/de/diddiz/LogBlock/Consumer.java +++ b/src/de/diddiz/LogBlock/Consumer.java @@ -38,8 +38,6 @@ public class Consumer extends TimerTask private final Map worlds; private final Set hiddenPlayers, hiddenBlocks; private final Set failedPlayers = new HashSet(); - private final Map lastAttackedEntity = new HashMap(); - private final Map lastAttackTime = new HashMap(); private final Logger log; private final LogBlock logblock; private final Map players = new HashMap(); @@ -179,13 +177,9 @@ public class Consumer extends TimerTask public void queueKill(Entity killer, Entity victim) { if (killer == null || victim == null) return; - if (lastAttackedEntity.containsKey(killer.getEntityId()) && lastAttackedEntity.get(killer.getEntityId()) == victim.getEntityId() && System.currentTimeMillis() - lastAttackTime.get(killer.getEntityId()) < 5000) - return; int weapon = 0; if (killer instanceof Player && ((Player)killer).getItemInHand() != null) weapon = ((Player)killer).getItemInHand().getTypeId(); - lastAttackedEntity.put(killer.getEntityId(), victim.getEntityId()); - lastAttackTime.put(killer.getEntityId(), System.currentTimeMillis()); queueKill(victim.getWorld(), entityName(killer), entityName(victim), weapon); } diff --git a/src/de/diddiz/LogBlock/LBEntityListener.java b/src/de/diddiz/LogBlock/LBEntityListener.java index 1228904..cc6f0a7 100644 --- a/src/de/diddiz/LogBlock/LBEntityListener.java +++ b/src/de/diddiz/LogBlock/LBEntityListener.java @@ -1,5 +1,6 @@ package de.diddiz.LogBlock; +import java.util.HashMap; import java.util.Map; import net.minecraft.server.EntityEnderman; import org.bukkit.block.Block; @@ -26,6 +27,8 @@ class LBEntityListener extends EntityListener private final boolean logCreeperExplosionsAsPlayer; private final Config.LogKillsLevel logKillsLevel; private final Map worlds; + private final Map lastAttackedEntity = new HashMap(); + private final Map lastAttackTime = new HashMap(); LBEntityListener(LogBlock logblock) { consumer = logblock.getConsumer(); @@ -46,7 +49,11 @@ class LBEntityListener extends EntityListener return; else if (logKillsLevel == Config.LogKillsLevel.MONSTERS && !((victim instanceof Player || victim instanceof Monster) && killer instanceof Player || killer instanceof Monster)) return; + if (lastAttackedEntity.containsKey(killer.getEntityId()) && lastAttackedEntity.get(killer.getEntityId()) == victim.getEntityId() && System.currentTimeMillis() - lastAttackTime.get(killer.getEntityId()) < 5000) + return; consumer.queueKill(killer, victim); + lastAttackedEntity.put(killer.getEntityId(), victim.getEntityId()); + lastAttackTime.put(killer.getEntityId(), System.currentTimeMillis()); } }