Added lava flow logging

This commit is contained in:
Robin Kupper
2011-04-27 12:55:04 +02:00
parent e5ed36ff60
commit 4e2d367513
3 changed files with 28 additions and 5 deletions

View File

@@ -23,6 +23,7 @@ public class Config {
public final boolean logExplosions;
public final boolean logFire;
public final boolean logLeavesDecay;
public final boolean logLavaFlow;
public final boolean logChestAccess;
public final boolean logKills;
public final LogKillsLevel logKillsLevel;
@@ -88,10 +89,12 @@ public class Config {
config.setProperty("logging.logExplosions", false);
if (!subkeys.contains("logFire"))
config.setProperty("logging.logFire", false);
if (!subkeys.contains("logChestAccess"))
config.setProperty("logging.logChestAccess", false);
if (!subkeys.contains("logLeavesDecay"))
config.setProperty("logging.logLeavesDecay", false);
if (!subkeys.contains("logLavaFlow"))
config.setProperty("logging.logLavaFlow", false);
if (!subkeys.contains("logChestAccess"))
config.setProperty("logging.logChestAccess", false);
if (!subkeys.contains("logKills"))
config.setProperty("logging.logKills", false);
if (!subkeys.contains("logKillsLevel"))
@@ -132,6 +135,7 @@ public class Config {
logFire = config.getBoolean("logging.logFire", false);
logChestAccess = config.getBoolean("logging.logChestAccess", false);
logLeavesDecay = config.getBoolean("logging.logLeavesDecay", false);
logLavaFlow = config.getBoolean("logging.logLavaFlow", false);
logKills = config.getBoolean("logging.logKills", false);
try {
logKillsLevel = LogKillsLevel.valueOf(config.getString("logging.logKillsLevel"));

View File

@@ -1,9 +1,11 @@
package de.diddiz.LogBlock;
import org.bukkit.Material;
import org.bukkit.block.BlockFace;
import org.bukkit.block.BlockState;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockBurnEvent;
import org.bukkit.event.block.BlockFromToEvent;
import org.bukkit.event.block.BlockListener;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.event.block.LeavesDecayEvent;
@@ -19,7 +21,23 @@ public class LBBlockListener extends BlockListener
consumer = logblock.getConsumer();
}
//TODO Flow listener
@Override
public void onBlockFromTo(BlockFromToEvent event) {
if (!event.isCancelled()) {
final int typeFrom = event.getBlock().getTypeId();
final int typeTo = event.getToBlock().getTypeId();
if (typeFrom == 10 || typeFrom == 11) {
if (typeTo == 0 || typeTo == 78)
consumer.queueBlockReplace("LavaFlow", event.getToBlock().getState(), 10, (byte)(event.getBlock().getData() + 1));
else if (typeTo == 8 || typeTo == 9) {
if (event.getFace() == BlockFace.DOWN)
consumer.queueBlockReplace("LavaFlow", event.getToBlock().getState(), 10, (byte)0);
else
consumer.queueBlockReplace("LavaFlow", event.getToBlock().getState(), 4, (byte)0);
}
}
}
}
@Override
public void onBlockPlace(BlockPlaceEvent event) {

View File

@@ -127,6 +127,8 @@ public class LogBlock extends JavaPlugin
pm.registerEvent(Type.LEAVES_DECAY, lbBlockListener, Priority.Monitor, this);
if (config.logChestAccess)
pm.registerEvent(Type.PLAYER_INTERACT, lbPlayerListener, Priority.Monitor, this);
if (config.logLavaFlow)
pm.registerEvent(Type.BLOCK_FROMTO, lbBlockListener, Priority.Monitor, this);
if (config.logKills)
pm.registerEvent(Type.ENTITY_DAMAGE, lbEntityListener, Priority.Monitor, this);
if (config.useBukkitScheduler) {
@@ -435,8 +437,8 @@ public class LogBlock extends JavaPlugin
state.execute("CREATE TABLE `lb-players` (playerid SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT, playername varchar(32) NOT NULL DEFAULT '-', PRIMARY KEY (playerid), UNIQUE (playername))");
if (!dbm.getTables(null, null, "lb-players", null).next())
return false;
state.execute("INSERT IGNORE INTO `lb-players` (playername) VALUES ('TNT'), ('Creeper'), ('Fire'), ('LeavesDecay'), ('Ghast'), ('Environment')");
}
state.execute("INSERT IGNORE INTO `lb-players` (playername) VALUES ('TNT'), ('Creeper'), ('Fire'), ('LeavesDecay'), ('Ghast'), ('LavaFlow'), ('Environment'), ('Chicken'), ('Cow'), ('Giant'), ('Pig'), ('PigZombie'), ('Sheep'), ('Skeleton'), ('Slime'), ('Spider'), ('Squid'), ('Wolf'), ('Zombie')");
for (final String table : config.tables.values()) {
if (!dbm.getTables(null, null, table, null).next()) {
log.log(Level.INFO, "[LogBlock] Crating table " + table + ".");
@@ -461,7 +463,6 @@ public class LogBlock extends JavaPlugin
state.execute("CREATE TABLE `" + table + "-kills` (id INT UNSIGNED NOT NULL AUTO_INCREMENT, date DATETIME NOT NULL, killer SMALLINT UNSIGNED, victim SMALLINT UNSIGNED NOT NULL, weapon SMALLINT UNSIGNED NOT NULL, PRIMARY KEY (id));");
if (!dbm.getTables(null, null, table + "-kills", null).next())
return false;
state.execute("INSERT IGNORE INTO `lb-players` (playername) VALUES ('Chicken'), ('Cow'), ('Creeper'), ('Ghast'), ('Giant'), ('Pig'), ('PigZombie'), ('Sheep'), ('Skeleton'), ('Slime'), ('Spider'), ('Squid'), ('Wolf'), ('Zombie')");
}
}
return true;