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 boolean useBukkitScheduler;
|
||||||
public final int keepLogDays;
|
public final int keepLogDays;
|
||||||
public final boolean dumpDeletedLog;
|
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 boolean logCreeperExplosionsAsPlayerWhoTriggeredThese;
|
||||||
public final LogKillsLevel logKillsLevel;
|
public final LogKillsLevel logKillsLevel;
|
||||||
public final Set<Integer> dontRollback, replaceAnyway;
|
public final Set<Integer> dontRollback, replaceAnyway;
|
||||||
@@ -217,6 +217,8 @@ public class Config
|
|||||||
logDoors = true;
|
logDoors = true;
|
||||||
if (wcfg.logCakes)
|
if (wcfg.logCakes)
|
||||||
logCakes = true;
|
logCakes = true;
|
||||||
|
if (wcfg.logEndermen)
|
||||||
|
logEndermen = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -224,7 +226,7 @@ public class Config
|
|||||||
class WorldConfig
|
class WorldConfig
|
||||||
{
|
{
|
||||||
public final String table;
|
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) {
|
public WorldConfig(File file) {
|
||||||
final Map<String, Object> def = new HashMap<String, Object>();
|
final Map<String, Object> def = new HashMap<String, Object>();
|
||||||
@@ -245,6 +247,7 @@ class WorldConfig
|
|||||||
def.put("logSnowFade", false);
|
def.put("logSnowFade", false);
|
||||||
def.put("logDoors", false);
|
def.put("logDoors", false);
|
||||||
def.put("logCakes", false);
|
def.put("logCakes", false);
|
||||||
|
def.put("logEndermen", false);
|
||||||
final Configuration config = new Configuration(file);
|
final Configuration config = new Configuration(file);
|
||||||
config.load();
|
config.load();
|
||||||
for (final Entry<String, Object> e : def.entrySet())
|
for (final Entry<String, Object> e : def.entrySet())
|
||||||
@@ -268,5 +271,6 @@ class WorldConfig
|
|||||||
logSnowFade = config.getBoolean("logSnowFade", false);
|
logSnowFade = config.getBoolean("logSnowFade", false);
|
||||||
logDoors = config.getBoolean("logDoors", false);
|
logDoors = config.getBoolean("logDoors", false);
|
||||||
logCakes = config.getBoolean("logCakes", false);
|
logCakes = config.getBoolean("logCakes", false);
|
||||||
|
logEndermen = config.getBoolean("logEndermen", false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,15 +1,20 @@
|
|||||||
package de.diddiz.LogBlock;
|
package de.diddiz.LogBlock;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import net.minecraft.server.EntityEnderman;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.Sign;
|
import org.bukkit.block.Sign;
|
||||||
|
import org.bukkit.craftbukkit.entity.CraftEnderman;
|
||||||
import org.bukkit.entity.Creeper;
|
import org.bukkit.entity.Creeper;
|
||||||
|
import org.bukkit.entity.Enderman;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.Fireball;
|
import org.bukkit.entity.Fireball;
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
import org.bukkit.entity.Monster;
|
import org.bukkit.entity.Monster;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.entity.TNTPrimed;
|
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.EntityDamageByEntityEvent;
|
||||||
import org.bukkit.event.entity.EntityDamageEvent;
|
import org.bukkit.event.entity.EntityDamageEvent;
|
||||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
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.PLAYER_COMMAND_PREPROCESS, lbPlayerListener, Priority.Monitor, this);
|
||||||
pm.registerEvent(Type.SERVER_COMMAND, new LBServerListener(this), 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 (config.useBukkitScheduler) {
|
||||||
if (getServer().getScheduler().scheduleAsyncRepeatingTask(this, consumer, config.delayBetweenRuns * 20, config.delayBetweenRuns * 20) > 0)
|
if (getServer().getScheduler().scheduleAsyncRepeatingTask(this, consumer, config.delayBetweenRuns * 20, config.delayBetweenRuns * 20) > 0)
|
||||||
log.info("[LogBlock] Scheduled consumer with bukkit scheduler.");
|
log.info("[LogBlock] Scheduled consumer with bukkit scheduler.");
|
||||||
|
Reference in New Issue
Block a user