Moved kill event spam check

This commit is contained in:
Robin Kupper
2011-09-26 17:39:30 +02:00
parent 4fe28fa023
commit da566d00fd
2 changed files with 7 additions and 6 deletions

View File

@@ -38,8 +38,6 @@ public class Consumer extends TimerTask
private final Map<Integer, WorldConfig> worlds;
private final Set<Integer> hiddenPlayers, hiddenBlocks;
private final Set<String> failedPlayers = new HashSet<String>();
private final Map<Integer, Integer> lastAttackedEntity = new HashMap<Integer, Integer>();
private final Map<Integer, Long> lastAttackTime = new HashMap<Integer, Long>();
private final Logger log;
private final LogBlock logblock;
private final Map<Integer, Integer> players = new HashMap<Integer, Integer>();
@@ -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);
}

View File

@@ -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<Integer, WorldConfig> worlds;
private final Map<Integer, Integer> lastAttackedEntity = new HashMap<Integer, Integer>();
private final Map<Integer, Long> lastAttackTime = new HashMap<Integer, Long>();
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());
}
}