diff --git a/src/main/java/de/diddiz/LogBlock/LogBlock.java b/src/main/java/de/diddiz/LogBlock/LogBlock.java index 0e31eff..4e682f6 100644 --- a/src/main/java/de/diddiz/LogBlock/LogBlock.java +++ b/src/main/java/de/diddiz/LogBlock/LogBlock.java @@ -1,7 +1,27 @@ package de.diddiz.LogBlock; import de.diddiz.LogBlock.config.Config; -import de.diddiz.LogBlock.listeners.*; +import de.diddiz.LogBlock.listeners.BanListener; +import de.diddiz.LogBlock.listeners.BlockBreakLogging; +import de.diddiz.LogBlock.listeners.BlockBurnLogging; +import de.diddiz.LogBlock.listeners.BlockPlaceLogging; +import de.diddiz.LogBlock.listeners.BlockSpreadLogging; +import de.diddiz.LogBlock.listeners.ChatLogging; +import de.diddiz.LogBlock.listeners.ChestAccessLogging; +import de.diddiz.LogBlock.listeners.CreatureInteractLogging; +import de.diddiz.LogBlock.listeners.EndermenLogging; +import de.diddiz.LogBlock.listeners.ExplosionLogging; +import de.diddiz.LogBlock.listeners.FluidFlowLogging; +import de.diddiz.LogBlock.listeners.InteractLogging; +import de.diddiz.LogBlock.listeners.KillLogging; +import de.diddiz.LogBlock.listeners.LeavesDecayLogging; +import de.diddiz.LogBlock.listeners.PlayerInfoLogging; +import de.diddiz.LogBlock.listeners.SignChangeLogging; +import de.diddiz.LogBlock.listeners.SnowFadeLogging; +import de.diddiz.LogBlock.listeners.SnowFormLogging; +import de.diddiz.LogBlock.listeners.StructureGrowLogging; +import de.diddiz.LogBlock.listeners.ToolListener; +import de.diddiz.LogBlock.listeners.WitherLogging; import de.diddiz.util.MySQLConnectionPool; import de.diddiz.worldedit.LogBlockEditSessionFactory; import org.bukkit.ChatColor; @@ -94,11 +114,11 @@ public class LogBlock extends JavaPlugin commandsHandler = new CommandsHandler(this); getCommand("lb").setExecutor(commandsHandler); if (enableAutoClearLog && autoClearLogDelay > 0) - getServer().getScheduler().scheduleAsyncRepeatingTask(this, new AutoClearLog(this), 6000, autoClearLogDelay * 60 * 20); - getServer().getScheduler().scheduleAsyncDelayedTask(this, new DumpedLogImporter(this)); + getServer().getScheduler().runTaskTimerAsynchronously(this, new AutoClearLog(this), 6000, autoClearLogDelay * 60 * 20); + getServer().getScheduler().runTaskAsynchronously(this, new DumpedLogImporter(this)); registerEvents(); if (useBukkitScheduler) { - if (getServer().getScheduler().scheduleAsyncRepeatingTask(this, consumer, delayBetweenRuns * 20, delayBetweenRuns * 20) > 0) + if (getServer().getScheduler().runTaskTimerAsynchronously(this, consumer, delayBetweenRuns * 20, delayBetweenRuns * 20).getTaskId() > 0) getLogger().info("Scheduled consumer with bukkit scheduler."); else { getLogger().warning("Failed to schedule consumer with bukkit scheduler. Now trying schedule with timer."); @@ -110,6 +130,7 @@ public class LogBlock extends JavaPlugin timer.scheduleAtFixedRate(consumer, delayBetweenRuns * 1000, delayBetweenRuns * 1000); getLogger().info("Scheduled consumer with timer."); } + getServer().getScheduler().runTaskAsynchronously(this, new Updater.PlayerCountChecker(this)); for (final Tool tool : toolsByType.values()) if (pm.getPermission("logblock.tools." + tool.name) == null) { final Permission perm = new Permission("logblock.tools." + tool.name, tool.permissionDefault); diff --git a/src/main/java/de/diddiz/LogBlock/Updater.java b/src/main/java/de/diddiz/LogBlock/Updater.java index 01fe971..3888aa2 100644 --- a/src/main/java/de/diddiz/LogBlock/Updater.java +++ b/src/main/java/de/diddiz/LogBlock/Updater.java @@ -1,9 +1,10 @@ package de.diddiz.LogBlock; -import static de.diddiz.LogBlock.config.Config.getLoggedWorlds; -import static de.diddiz.LogBlock.config.Config.isLogging; -import static de.diddiz.util.BukkitUtils.friendlyWorldname; -import static org.bukkit.Bukkit.getLogger; +import de.diddiz.LogBlock.config.WorldConfig; +import org.bukkit.Bukkit; +import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.configuration.file.YamlConfiguration; + import java.io.File; import java.io.IOException; import java.sql.Connection; @@ -12,10 +13,11 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.logging.Level; -import org.bukkit.Bukkit; -import org.bukkit.configuration.ConfigurationSection; -import org.bukkit.configuration.file.YamlConfiguration; -import de.diddiz.LogBlock.config.WorldConfig; + +import static de.diddiz.LogBlock.config.Config.getLoggedWorlds; +import static de.diddiz.LogBlock.config.Config.isLogging; +import static de.diddiz.util.BukkitUtils.friendlyWorldname; +import static org.bukkit.Bukkit.getLogger; class Updater { @@ -197,26 +199,6 @@ class Updater } config.set("version", "1.52"); } - this.logblock.getServer().getScheduler().runTaskAsynchronously(this.logblock, new Thread() { - - @Override - public void run() { - final Connection conn = logblock.getConnection(); - try { - conn.setAutoCommit(true); - final Statement st = conn.createStatement(); - ResultSet rs = st.executeQuery("SELECT auto_increment FROM information_schema.columns AS col join information_schema.tables AS tab ON (col.table_schema=tab.table_schema AND col.table_name=tab.table_name) WHERE col.table_name = 'lb-players' AND col.column_name = 'playerid' AND col.data_type = 'smallint' AND col.table_schema = DATABASE() AND auto_increment > 65000;"); - if (rs.next()) { - logblock.getLogger().warning("Your server reached 65000 players. You should soon update your database table schema - see FAQ: https://github.com/LogBlock/LogBlock/wiki/FAQ#logblock-your-server-reached-65000-players-"); - } - st.close(); - conn.close(); - } catch (final SQLException ex) { - logblock.getLogger().log(Level.SEVERE, "[Updater] Error: ", ex); - } - } - - }); logblock.saveConfig(); return true; } @@ -250,4 +232,32 @@ class Updater throw new SQLException("Table " + table + " not found and failed to create"); } } + + public static class PlayerCountChecker implements Runnable { + + private LogBlock logblock; + + public PlayerCountChecker(LogBlock logblock) { + this.logblock = logblock; + } + + @Override + public void run() { + final Connection conn = logblock.getConnection(); + try { + conn.setAutoCommit(true); + final Statement st = conn.createStatement(); + ResultSet rs = st.executeQuery("SELECT auto_increment FROM information_schema.columns AS col join information_schema.tables AS tab ON (col.table_schema=tab.table_schema AND col.table_name=tab.table_name) WHERE col.table_name = 'lb-players' AND col.column_name = 'playerid' AND col.data_type = 'smallint' AND col.table_schema = DATABASE() AND auto_increment > 65000;"); + if (rs.next()) { + for (int i = 0; i < 6; i++) { + logblock.getLogger().warning("Your server reached 65000 players. You should soon update your database table schema - see FAQ: https://github.com/LogBlock/LogBlock/wiki/FAQ#logblock-your-server-reached-65000-players-"); + } + } + st.close(); + conn.close(); + } catch (final SQLException ex) { + logblock.getLogger().log(Level.SEVERE, "[Updater] Error: ", ex); + } + } + } }