forked from LogBlock/LogBlock
Added enderman logging
This commit is contained in:
@@ -26,7 +26,7 @@ public class Config
|
||||
public final boolean useBukkitScheduler;
|
||||
public final int keepLogDays;
|
||||
public final boolean dumpDeletedLog;
|
||||
public boolean logBlockPlacings, logBlockBreaks, logSignTexts, logExplosions, logFire, logLeavesDecay, logLavaFlow, logWaterFlow, logChestAccess, logButtonsAndLevers, logKills, logChat, logSnowForm, logSnowFade, logDoors, logCakes;
|
||||
public boolean logBlockPlacings, logBlockBreaks, logSignTexts, logExplosions, logFire, logLeavesDecay, logLavaFlow, logWaterFlow, logChestAccess, logButtonsAndLevers, logKills, logChat, logSnowForm, logSnowFade, logDoors, logCakes, logEndermen;
|
||||
public final boolean logCreeperExplosionsAsPlayerWhoTriggeredThese;
|
||||
public final LogKillsLevel logKillsLevel;
|
||||
public final Set<Integer> dontRollback, replaceAnyway;
|
||||
@@ -217,6 +217,8 @@ public class Config
|
||||
logDoors = true;
|
||||
if (wcfg.logCakes)
|
||||
logCakes = true;
|
||||
if (wcfg.logEndermen)
|
||||
logEndermen = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -224,7 +226,7 @@ public class Config
|
||||
class WorldConfig
|
||||
{
|
||||
public final String table;
|
||||
public final boolean logBlockPlacings, logBlockBreaks, logSignTexts, logExplosions, logFire, logLeavesDecay, logLavaFlow, logWaterFlow, logChestAccess, logButtonsAndLevers, logKills, logChat, logSnowForm, logSnowFade, logDoors, logCakes;
|
||||
public final boolean logBlockPlacings, logBlockBreaks, logSignTexts, logExplosions, logFire, logLeavesDecay, logLavaFlow, logWaterFlow, logChestAccess, logButtonsAndLevers, logKills, logChat, logSnowForm, logSnowFade, logDoors, logCakes, logEndermen;
|
||||
|
||||
public WorldConfig(File file) {
|
||||
final Map<String, Object> def = new HashMap<String, Object>();
|
||||
@@ -245,6 +247,7 @@ class WorldConfig
|
||||
def.put("logSnowFade", false);
|
||||
def.put("logDoors", false);
|
||||
def.put("logCakes", false);
|
||||
def.put("logEndermen", false);
|
||||
final Configuration config = new Configuration(file);
|
||||
config.load();
|
||||
for (final Entry<String, Object> e : def.entrySet())
|
||||
@@ -268,5 +271,6 @@ class WorldConfig
|
||||
logSnowFade = config.getBoolean("logSnowFade", false);
|
||||
logDoors = config.getBoolean("logDoors", false);
|
||||
logCakes = config.getBoolean("logCakes", false);
|
||||
logEndermen = config.getBoolean("logEndermen", false);
|
||||
}
|
||||
}
|
||||
|
@@ -1,15 +1,20 @@
|
||||
package de.diddiz.LogBlock;
|
||||
|
||||
import java.util.Map;
|
||||
import net.minecraft.server.EntityEnderman;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.Sign;
|
||||
import org.bukkit.craftbukkit.entity.CraftEnderman;
|
||||
import org.bukkit.entity.Creeper;
|
||||
import org.bukkit.entity.Enderman;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Fireball;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Monster;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.TNTPrimed;
|
||||
import org.bukkit.event.entity.EndermanPickupEvent;
|
||||
import org.bukkit.event.entity.EndermanPlaceEvent;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||
@@ -75,4 +80,20 @@ class LBEntityListener extends EntityListener
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEndermanPickup(EndermanPickupEvent event) {
|
||||
final WorldConfig wcfg = worlds.get(event.getBlock().getWorld().getName().hashCode());
|
||||
if (!event.isCancelled() && wcfg != null && wcfg.logEndermen)
|
||||
consumer.queueBlockBreak("Enderman", event.getBlock().getState());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEndermanPlace(EndermanPlaceEvent event) {
|
||||
final WorldConfig wcfg = worlds.get(event.getLocation().getWorld().getName().hashCode());
|
||||
if (!event.isCancelled() && wcfg != null && wcfg.logEndermen && event.getEntity() instanceof Enderman) {
|
||||
final EntityEnderman enderman = ((CraftEnderman)event.getEntity()).getHandle();
|
||||
consumer.queueBlockPlace("Enderman", event.getLocation(), enderman.getCarriedId(), (byte)enderman.getCarriedData());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -219,6 +219,10 @@ public class LogBlock extends JavaPlugin
|
||||
pm.registerEvent(Type.PLAYER_COMMAND_PREPROCESS, lbPlayerListener, Priority.Monitor, this);
|
||||
pm.registerEvent(Type.SERVER_COMMAND, new LBServerListener(this), Priority.Monitor, this);
|
||||
}
|
||||
if (config.logEndermen) {
|
||||
pm.registerEvent(Type.ENDERMAN_PICKUP, lbEntityListener, Priority.Monitor, this);
|
||||
pm.registerEvent(Type.ENDERMAN_PLACE, lbEntityListener, Priority.Monitor, this);
|
||||
}
|
||||
if (config.useBukkitScheduler) {
|
||||
if (getServer().getScheduler().scheduleAsyncRepeatingTask(this, consumer, config.delayBetweenRuns * 20, config.delayBetweenRuns * 20) > 0)
|
||||
log.info("[LogBlock] Scheduled consumer with bukkit scheduler.");
|
||||
|
Reference in New Issue
Block a user