forked from LogBlock/LogBlock
Moved kill event spam check
This commit is contained in:
@@ -38,8 +38,6 @@ public class Consumer extends TimerTask
|
|||||||
private final Map<Integer, WorldConfig> worlds;
|
private final Map<Integer, WorldConfig> worlds;
|
||||||
private final Set<Integer> hiddenPlayers, hiddenBlocks;
|
private final Set<Integer> hiddenPlayers, hiddenBlocks;
|
||||||
private final Set<String> failedPlayers = new HashSet<String>();
|
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 Logger log;
|
||||||
private final LogBlock logblock;
|
private final LogBlock logblock;
|
||||||
private final Map<Integer, Integer> players = new HashMap<Integer, Integer>();
|
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) {
|
public void queueKill(Entity killer, Entity victim) {
|
||||||
if (killer == null || victim == null)
|
if (killer == null || victim == null)
|
||||||
return;
|
return;
|
||||||
if (lastAttackedEntity.containsKey(killer.getEntityId()) && lastAttackedEntity.get(killer.getEntityId()) == victim.getEntityId() && System.currentTimeMillis() - lastAttackTime.get(killer.getEntityId()) < 5000)
|
|
||||||
return;
|
|
||||||
int weapon = 0;
|
int weapon = 0;
|
||||||
if (killer instanceof Player && ((Player)killer).getItemInHand() != null)
|
if (killer instanceof Player && ((Player)killer).getItemInHand() != null)
|
||||||
weapon = ((Player)killer).getItemInHand().getTypeId();
|
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);
|
queueKill(victim.getWorld(), entityName(killer), entityName(victim), weapon);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
package de.diddiz.LogBlock;
|
package de.diddiz.LogBlock;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import net.minecraft.server.EntityEnderman;
|
import net.minecraft.server.EntityEnderman;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
@@ -26,6 +27,8 @@ class LBEntityListener extends EntityListener
|
|||||||
private final boolean logCreeperExplosionsAsPlayer;
|
private final boolean logCreeperExplosionsAsPlayer;
|
||||||
private final Config.LogKillsLevel logKillsLevel;
|
private final Config.LogKillsLevel logKillsLevel;
|
||||||
private final Map<Integer, WorldConfig> worlds;
|
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) {
|
LBEntityListener(LogBlock logblock) {
|
||||||
consumer = logblock.getConsumer();
|
consumer = logblock.getConsumer();
|
||||||
@@ -46,7 +49,11 @@ class LBEntityListener extends EntityListener
|
|||||||
return;
|
return;
|
||||||
else if (logKillsLevel == Config.LogKillsLevel.MONSTERS && !((victim instanceof Player || victim instanceof Monster) && killer instanceof Player || killer instanceof Monster))
|
else if (logKillsLevel == Config.LogKillsLevel.MONSTERS && !((victim instanceof Player || victim instanceof Monster) && killer instanceof Player || killer instanceof Monster))
|
||||||
return;
|
return;
|
||||||
|
if (lastAttackedEntity.containsKey(killer.getEntityId()) && lastAttackedEntity.get(killer.getEntityId()) == victim.getEntityId() && System.currentTimeMillis() - lastAttackTime.get(killer.getEntityId()) < 5000)
|
||||||
|
return;
|
||||||
consumer.queueKill(killer, victim);
|
consumer.queueKill(killer, victim);
|
||||||
|
lastAttackedEntity.put(killer.getEntityId(), victim.getEntityId());
|
||||||
|
lastAttackTime.put(killer.getEntityId(), System.currentTimeMillis());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user