diff --git a/Bukkit/build.gradle b/Bukkit/build.gradle index 3730e0577..821174878 100644 --- a/Bukkit/build.gradle +++ b/Bukkit/build.gradle @@ -41,6 +41,8 @@ dependencies { implementation("net.alpenblock:BungeePerms:4.0-dev-106") compile("se.hyperver.hyperverse:Core:0.6.0-SNAPSHOT"){ transitive = false } compile('com.sk89q:squirrelid:1.0.0-SNAPSHOT'){ transitive = false } + // logging + implementation('org.apache.logging.log4j:log4j-slf4j-impl:2.8.1') } sourceCompatibility = 1.8 @@ -102,13 +104,19 @@ shadowJar { include(dependency("com.google.inject:guice:4.2.3")) include(dependency("com.google.inject.extensions:guice-assistedinject:4.2.3")) include(dependency("javax.annotation:javax-annotation-api")) + include(dependency('org.apache.logging.log4j:log4j-slf4j-impl')) + include(dependency('org.slf4j:slf4j-api')) } + relocate('net.kyori.text', 'com.plotsquared.formatting.text') relocate("io.papermc.lib", "com.plotsquared.bukkit.paperlib") relocate("org.bstats", "com.plotsquared.metrics") relocate('com.sk89q.squirrelid', 'com.plotsquared.squirrelid') relocate('org.khelekore.prtree', 'com.plotsquared.prtree') + relocate('org.apache.logging.slf4j', 'com.plotsquared.logging.apache') + relocate('org.slf4j', 'com.plotsquared.logging.slf4j') relocate('com.google.inject', 'com.plotsquared.google') + archiveFileName = "${project.name}-${parent.version}.jar" destinationDirectory = file "../target" } diff --git a/Bukkit/pom.xml b/Bukkit/pom.xml index 7c51f3aec..d4848ae84 100644 --- a/Bukkit/pom.xml +++ b/Bukkit/pom.xml @@ -182,6 +182,12 @@ 4.0-dev-106 runtime + + org.apache.logging.log4j + log4j-slf4j-impl + 2.8.1 + runtime + junit junit diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/BukkitPlatform.java b/Bukkit/src/main/java/com/plotsquared/bukkit/BukkitPlatform.java index a2f434e76..a26874ca3 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/BukkitPlatform.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/BukkitPlatform.java @@ -59,9 +59,8 @@ import com.plotsquared.bukkit.uuid.SquirrelIdUUIDService; import com.plotsquared.core.PlotPlatform; import com.plotsquared.core.PlotSquared; import com.plotsquared.core.backup.BackupManager; -import com.plotsquared.core.command.WE_Anywhere; -import com.plotsquared.core.components.ComponentPresetManager; -import com.plotsquared.core.configuration.CaptionUtility; +import com.plotsquared.core.backup.NullBackupManager; +import com.plotsquared.core.backup.SimpleBackupManager; import com.plotsquared.core.configuration.Captions; import com.plotsquared.core.configuration.ChatFormatter; import com.plotsquared.core.configuration.ConfigurationNode; @@ -96,6 +95,7 @@ import com.plotsquared.core.queue.GlobalBlockQueue; import com.plotsquared.core.setup.PlotAreaBuilder; import com.plotsquared.core.setup.SettingsNodesWrapper; import com.plotsquared.core.util.ChatManager; +import com.plotsquared.core.util.ChunkManager; import com.plotsquared.core.util.ConsoleColors; import com.plotsquared.core.util.EconHandler; import com.plotsquared.core.util.EventDispatcher; @@ -105,7 +105,6 @@ import com.plotsquared.core.util.PlatformWorldManager; import com.plotsquared.core.util.PremiumVerification; import com.plotsquared.core.util.ReflectionUtils; import com.plotsquared.core.util.SetupUtils; -import com.plotsquared.core.util.StringMan; import com.plotsquared.core.util.WorldUtil; import com.plotsquared.core.util.task.TaskManager; import com.plotsquared.core.uuid.CacheUUIDService; @@ -134,6 +133,8 @@ import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.File; import java.lang.reflect.Method; @@ -160,6 +161,7 @@ import static com.plotsquared.core.util.ReflectionUtils.getRefClass; @SuppressWarnings("unused") public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPlatform { + private static final Logger logger = LoggerFactory.getLogger("P2/" + BukkitMain.class.getSimpleName()); private static final int BSTATS_ID = 1404; static { @@ -203,9 +205,6 @@ import static com.plotsquared.core.util.ReflectionUtils.getRefClass; } } catch (NumberFormatException e) { e.printStackTrace(); - PlotSquared.debug(StringMan.getString(Bukkit.getBukkitVersion())); - PlotSquared.debug( - StringMan.getString(Bukkit.getBukkitVersion().split("-")[0].split("\\."))); return new int[] {1, 13, 0}; } } @@ -246,14 +245,12 @@ import static com.plotsquared.core.util.ReflectionUtils.getRefClass; } if (PremiumVerification.isPremium()) { - PlotSquared.log( - Captions.PREFIX + "&6PlotSquared version licensed to Spigot user " + getUserID()); - PlotSquared - .log(Captions.PREFIX + "&6https://www.spigotmc.org/resources/" + getResourceID()); - PlotSquared.log(Captions.PREFIX + "&6Download ID: " + getDownloadID()); - PlotSquared.log(Captions.PREFIX + "&6Thanks for supporting us :)"); + logger.info("[P2] PlotSquared version licensed to Spigot user {}", getUserID()); + logger.info("[P2] https://www.spigotmc.org/resources/{}", getResourceID()); + logger.info("[P2] Download ID: {}", getDownloadID()); + logger.info("[P2] Thanks for supporting us :)"); } else { - PlotSquared.log(Captions.PREFIX + "&6Couldn't verify purchase :("); + logger.info("[P2] Couldn't verify purchase :("); } // Database @@ -398,7 +395,7 @@ import static com.plotsquared.core.util.ReflectionUtils.getRefClass; final OfflineModeUUIDService offlineModeUUIDService = new OfflineModeUUIDService(); this.impromptuPipeline.registerService(offlineModeUUIDService); this.backgroundPipeline.registerService(offlineModeUUIDService); - PlotSquared.log(Captions.PREFIX + "(UUID) Using the offline mode UUID service"); + logger.info("[P2] (UUID) Using the offline mode UUID service"); } final OfflinePlayerUUIDService offlinePlayerUUIDService = new OfflinePlayerUUIDService(); @@ -418,8 +415,7 @@ import static com.plotsquared.core.util.ReflectionUtils.getRefClass; final LuckPermsUUIDService luckPermsUUIDService; if (Bukkit.getPluginManager().getPlugin("LuckPerms") != null) { luckPermsUUIDService = new LuckPermsUUIDService(); - PlotSquared - .log(Captions.PREFIX + "(UUID) Using LuckPerms as a complementary UUID service"); + logger.info("[P2] (UUID) Using LuckPerms as a complementary UUID service"); } else { luckPermsUUIDService = null; } @@ -427,8 +423,7 @@ import static com.plotsquared.core.util.ReflectionUtils.getRefClass; final BungeePermsUUIDService bungeePermsUUIDService; if (Bukkit.getPluginManager().getPlugin("BungeePerms") != null) { bungeePermsUUIDService = new BungeePermsUUIDService(); - PlotSquared - .log(Captions.PREFIX + "(UUID) Using BungeePerms as a complementary UUID service"); + logger.info("[P2] (UUID) Using BungeePerms as a complementary UUID service"); } else { bungeePermsUUIDService = null; } @@ -436,8 +431,7 @@ import static com.plotsquared.core.util.ReflectionUtils.getRefClass; final EssentialsUUIDService essentialsUUIDService; if (Bukkit.getPluginManager().getPlugin("Essentials") != null) { essentialsUUIDService = new EssentialsUUIDService(); - PlotSquared - .log(Captions.PREFIX + "(UUID) Using Essentials as a complementary UUID service"); + logger.info("[P2] (UUID) Using Essentials as a complementary UUID service"); } else { essentialsUUIDService = null; } @@ -448,8 +442,7 @@ import static com.plotsquared.core.util.ReflectionUtils.getRefClass; final PaperUUIDService paperUUIDService = new PaperUUIDService(); this.impromptuPipeline.registerService(paperUUIDService); this.backgroundPipeline.registerService(paperUUIDService); - PlotSquared - .log(Captions.PREFIX + "(UUID) Using Paper as a complementary UUID service"); + logger.info("[P2] (UUID) Using Paper as a complementary UUID service"); } this.impromptuPipeline.registerService(sqLiteUUIDService); @@ -505,10 +498,9 @@ import static com.plotsquared.core.util.ReflectionUtils.getRefClass; if (Settings.Enabled_Components.EXTERNAL_PLACEHOLDERS) { ChatFormatter.formatters.add(getInjector().getInstance(PlaceholderFormatter.class)); } - PlotSquared.log(Captions.PREFIX + "&6PlotSquared hooked into PlaceholderAPI"); + logger.info("[P2] PlotSquared hooked into PlaceholderAPI"); } else { - PlotSquared - .debug(Captions.PREFIX + "&6PlaceholderAPI is not in use. Hook deactivated."); + logger.info("[P2] PlaceholderAPI is not in use. Hook deactivated"); } this.startMetrics(); @@ -521,10 +513,6 @@ import static com.plotsquared.core.util.ReflectionUtils.getRefClass; } } - PlotSquared.log( - Captions.PREFIX.getTranslated() + "Using platform world manager: " + this.worldManager - .getName()); - // Clean up potential memory leak Bukkit.getScheduler().runTaskTimer(this, () -> { try { @@ -537,10 +525,6 @@ import static com.plotsquared.core.util.ReflectionUtils.getRefClass; getLogger().warning("Failed to clean up players: " + e.getMessage()); } }, 100L, 100L); - - PlotSquared.log(Captions.PREFIX + CaptionUtility - .format(ConsolePlayer.getConsole(), Captions.ENABLED.getTranslated(), - this.getPluginName())); } private void unload() { @@ -588,7 +572,7 @@ import static com.plotsquared.core.util.ReflectionUtils.getRefClass; final Chunk[] chunks = world.getLoadedChunks(); if (chunks.length == 0) { if (!Bukkit.unloadWorld(world, true)) { - PlotSquared.debug("Failed to unload " + world.getName()); + logger.warn("[P2] Failed to unload {}", world.getName()); } return; } else { @@ -638,8 +622,8 @@ import static com.plotsquared.core.util.ReflectionUtils.getRefClass; } } }); - PlotSquared.log(Captions.PREFIX.getTranslated() + "(UUID) " + uuidQueue.size() - + " UUIDs will be cached."); + + logger.info("[P2] (UUID) {} UUIDs will be cached", uuidQueue.size()); Executors.newSingleThreadScheduledExecutor().schedule(() -> { // Begin by reading all the SQLite cache at once @@ -647,9 +631,7 @@ import static com.plotsquared.core.util.ReflectionUtils.getRefClass; // Now fetch names for all known UUIDs final int totalSize = uuidQueue.size(); int read = 0; - PlotSquared.log(Captions.PREFIX.getTranslated() - + "(UUID) PlotSquared will fetch UUIDs in groups of " - + Settings.UUID.BACKGROUND_LIMIT); + logger.info("[P2] (UUID) PlotSquared will fetch UUIDs in groups of {}", Settings.UUID.BACKGROUND_LIMIT); final List uuidList = new ArrayList<>(Settings.UUID.BACKGROUND_LIMIT); // Used to indicate that the second retrieval has been attempted @@ -657,7 +639,7 @@ import static com.plotsquared.core.util.ReflectionUtils.getRefClass; while (!uuidQueue.isEmpty() || !uuidList.isEmpty()) { if (!uuidList.isEmpty() && secondRun) { - PlotSquared.log("Giving up on last batch. Fetching new batch instead."); + logger.warn("[P2] (UUID) Giving up on last batch. Fetching new batch instead"); uuidList.clear(); } if (uuidList.isEmpty()) { @@ -681,15 +663,14 @@ import static com.plotsquared.core.util.ReflectionUtils.getRefClass; uuidList.clear(); // Print progress final double percentage = ((double) read / (double) totalSize) * 100.0D; - PlotSquared.log(Captions.PREFIX.getTranslated() + String - .format("(UUID) PlotSquared has cached %.1f%% of UUIDs", percentage)); + if (Settings.DEBUG) { + logger.info("[P2] (UUID) PlotSquared has cached {} of UUIDs", String.format("%.1f%%", percentage)); + } } catch (final InterruptedException | ExecutionException e) { - PlotSquared.log("Failed to retrieve that batch. Will try again."); - e.printStackTrace(); + logger.error("[P2] (UUID) Failed to retrieve last batch. Will try again", e); } } - PlotSquared - .log(Captions.PREFIX.getTranslated() + "(UUID) PlotSquared has cached all UUIDs"); + logger.info("[P2] (UUID) PlotSquared has cached all UUIDs"); }, 10, TimeUnit.SECONDS); } @@ -733,7 +714,7 @@ import static com.plotsquared.core.util.ReflectionUtils.getRefClass; } @SuppressWarnings("deprecation") private void runEntityTask() { - PlotSquared.log(Captions.PREFIX + "KillAllEntities started."); + logger.info("[P2] KillAllEntities started"); TaskManager.runTaskRepeat(() -> this.plotAreaManager.forEachPlotArea(plotArea -> { final World world = Bukkit.getWorld(plotArea.getWorldName()); try { @@ -1074,8 +1055,8 @@ import static com.plotsquared.core.util.ReflectionUtils.getRefClass; if (!this.plotAreaManager.hasPlotArea(worldName)) { SetGenCB.setGenerator(BukkitUtil.getWorld(worldName)); } - } catch (Exception e) { - PlotSquared.log("Failed to reload world: " + world + " | " + e.getMessage()); + } catch (final Exception e) { + logger.error("[P2] Failed to reload world: {} | {}", world, e.getMessage()); Bukkit.getServer().unloadWorld(world, false); return; } diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/entity/ReplicatingEntityWrapper.java b/Bukkit/src/main/java/com/plotsquared/bukkit/entity/ReplicatingEntityWrapper.java index 83740e9db..3522863ae 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/entity/ReplicatingEntityWrapper.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/entity/ReplicatingEntityWrapper.java @@ -25,7 +25,7 @@ */ package com.plotsquared.bukkit.entity; -import com.plotsquared.core.PlotSquared; +import com.plotsquared.core.configuration.Settings; import org.bukkit.Art; import org.bukkit.DyeColor; import org.bukkit.Location; @@ -55,11 +55,15 @@ import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.ItemStack; import org.bukkit.util.EulerAngle; import org.bukkit.util.Vector; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.List; public final class ReplicatingEntityWrapper extends EntityWrapper { + private static final Logger logger = LoggerFactory.getLogger("P2/" + ReplicatingEntityWrapper.class.getSimpleName()); + private final short depth; private final int hash; private final EntityBaseStats base = new EntityBaseStats(); @@ -331,10 +335,7 @@ public final class ReplicatingEntityWrapper extends EntityWrapper { this.dataByte = (byte) 0; } storeLiving((LivingEntity) entity); - return; // END LIVING // - default: - PlotSquared.debug("&cCOULD NOT IDENTIFY ENTITY: " + entity.getType()); } } @@ -390,7 +391,7 @@ public final class ReplicatingEntityWrapper extends EntityWrapper { try { entity.getInventory().setContents(this.inventory); } catch (IllegalArgumentException e) { - PlotSquared.debug("&c[WARN] Failed to restore inventory.\n Reason: " + e.getMessage()); + logger.error("[P2] Failed to restore inventory", e); } } @@ -736,7 +737,9 @@ public final class ReplicatingEntityWrapper extends EntityWrapper { restoreLiving((LivingEntity) entity); return entity; default: - PlotSquared.debug("&cCOULD NOT IDENTIFY ENTITY: " + entity.getType()); + if (Settings.DEBUG) { + logger.info("[P2] Could not identify entity: {}", entity.getType()); + } return entity; // END LIVING } diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/listener/ChunkListener.java b/Bukkit/src/main/java/com/plotsquared/bukkit/listener/ChunkListener.java index a5109983d..c22df7c54 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/listener/ChunkListener.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/listener/ChunkListener.java @@ -54,6 +54,8 @@ import org.bukkit.event.entity.ItemSpawnEvent; import org.bukkit.event.world.ChunkLoadEvent; import org.bukkit.event.world.ChunkUnloadEvent; import javax.annotation.Nonnull; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.lang.reflect.Method; import java.util.HashSet; @@ -63,13 +65,15 @@ import static com.plotsquared.core.util.ReflectionUtils.getRefClass; @SuppressWarnings("unused") public class ChunkListener implements Listener { + private static final Logger logger = LoggerFactory.getLogger("P2/" + ChunkListener.class.getSimpleName()); + private final PlotAreaManager plotAreaManager; - + private RefMethod methodGetHandleChunk; private RefField mustSave; private Chunk lastChunk; private boolean ignoreUnload = false; - + @Inject public ChunkListener(@Nonnull final PlotAreaManager plotAreaManager) { this.plotAreaManager = plotAreaManager; if (Settings.Chunk_Processor.AUTO_TRIM) { @@ -79,9 +83,6 @@ public class ChunkListener implements Listener { this.mustSave = classChunk.getField("mustSave"); this.methodGetHandleChunk = classCraftChunk.getMethod("getHandle"); } catch (Throwable ignored) { - PlotSquared.debug(PlotSquared.platform().getPluginName() - + "/Server not compatible for chunk processor trim/gc"); - Settings.Chunk_Processor.AUTO_TRIM = false; } } @@ -257,7 +258,6 @@ public class ChunkListener implements Listener { if (!chunk.isLoaded()) { Bukkit.getScheduler().cancelTask(TaskManager.tasks.get(currentIndex)); TaskManager.tasks.remove(currentIndex); - PlotSquared.debug("Successfully processed and unloaded chunk!"); chunk.unload(true); return; } @@ -265,7 +265,6 @@ public class ChunkListener implements Listener { if (tiles.length == 0) { Bukkit.getScheduler().cancelTask(TaskManager.tasks.get(currentIndex)); TaskManager.tasks.remove(currentIndex); - PlotSquared.debug("Successfully processed and unloaded chunk!"); chunk.unload(true); return; } @@ -275,7 +274,6 @@ public class ChunkListener implements Listener { if (i >= tiles.length - Settings.Chunk_Processor.MAX_TILES) { Bukkit.getScheduler().cancelTask(TaskManager.tasks.get(currentIndex)); TaskManager.tasks.remove(currentIndex); - PlotSquared.debug("Successfully processed and unloaded chunk!"); chunk.unload(true); return; } @@ -302,16 +300,9 @@ public class ChunkListener implements Listener { toRemove--; } } - - PlotSquared.debug( - "PlotSquared detected unsafe chunk and processed: " + (chunk.getX() << 4) + "," + ( - chunk.getX() << 4)); } if (tiles.length > Settings.Chunk_Processor.MAX_TILES) { if (unload) { - PlotSquared.debug( - "PlotSquared detected unsafe chunk: " + (chunk.getX() << 4) + "," + ( - chunk.getX() << 4)); cleanChunk(chunk); return true; } diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/listener/PlayerEvents.java b/Bukkit/src/main/java/com/plotsquared/bukkit/listener/PlayerEvents.java index ea7f6dcd5..d218beac0 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/listener/PlayerEvents.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/listener/PlayerEvents.java @@ -1020,7 +1020,8 @@ import java.util.regex.Pattern; player.sendMessage(spyMessage); } } - PlotSquared.debug(full); + // TODO: Re-implement + // PlotSquared.debug(full); } @EventHandler(priority = EventPriority.LOWEST) public void blockDestroy(BlockBreakEvent event) { @@ -2497,7 +2498,6 @@ import java.util.regex.Pattern; } Player p = event.getPlayer(); if (p == null) { - PlotSquared.debug("PlotSquared does not support HangingPlaceEvent for non-players."); event.setCancelled(true); return; } diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/queue/BukkitLocalQueue.java b/Bukkit/src/main/java/com/plotsquared/bukkit/queue/BukkitLocalQueue.java index 7eaa4004b..fa6ccd69d 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/queue/BukkitLocalQueue.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/queue/BukkitLocalQueue.java @@ -27,7 +27,6 @@ package com.plotsquared.bukkit.queue; import com.plotsquared.bukkit.schematic.StateWrapper; import com.plotsquared.bukkit.util.BukkitBlockUtil; -import com.plotsquared.core.PlotSquared; import com.plotsquared.core.queue.BasicLocalBlockQueue; import com.plotsquared.core.util.BlockUtil; import com.plotsquared.core.util.MainUtil; @@ -84,8 +83,6 @@ public class BukkitLocalQueue extends BasicLocalBlockQueue { World worldObj = Bukkit.getWorld(getWorld()); if (worldObj != null) { worldObj.refreshChunk(x, z); - } else { - PlotSquared.debug("Error Refreshing Chunk"); } } @@ -108,8 +105,6 @@ public class BukkitLocalQueue extends BasicLocalBlockQueue { world.regenerate(region, editSession); } } - } else { - PlotSquared.debug("Error Regenerating Chunk"); } } diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitRegionManager.java b/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitRegionManager.java index da4b2a896..4261528ad 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitRegionManager.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitRegionManager.java @@ -29,6 +29,7 @@ import com.google.inject.Inject; import com.google.inject.Singleton; import com.plotsquared.bukkit.BukkitPlatform; import com.plotsquared.core.PlotSquared; +import com.plotsquared.bukkit.BukkitMain; import com.plotsquared.core.generator.AugmentedUtils; import com.plotsquared.core.location.Location; import com.plotsquared.core.location.PlotLoc; @@ -58,6 +59,8 @@ import org.bukkit.World; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import javax.annotation.Nonnull; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.ArrayDeque; import java.util.ArrayList; @@ -78,6 +81,8 @@ import static com.plotsquared.core.util.entity.EntityCategories.CAP_VEHICLE; @Singleton public class BukkitRegionManager extends RegionManager { + private static final Logger logger = LoggerFactory.getLogger("P2/" + BukkitRegionManager.class.getSimpleName()); + @Inject public BukkitRegionManager(@Nonnull final ChunkManager chunkManager) { super(chunkManager); } @@ -97,8 +102,6 @@ import static com.plotsquared.core.util.entity.EntityCategories.CAP_VEHICLE; } else { final Semaphore semaphore = new Semaphore(1); try { - PlotSquared.debug("Attempting to make an asynchronous call to getLoadedChunks." - + " Will halt the calling thread until completed."); semaphore.acquire(); Bukkit.getScheduler().runTask(BukkitPlatform.getPlugin(BukkitPlatform.class), () -> { for (Chunk chunk : Objects.requireNonNull(Bukkit.getWorld(world)) diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitUtil.java b/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitUtil.java index f5ae64d33..f25fdc621 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitUtil.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitUtil.java @@ -98,6 +98,8 @@ import org.bukkit.entity.Vehicle; import org.bukkit.entity.WaterMob; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.Collection; @@ -113,6 +115,8 @@ import java.util.stream.Stream; @SuppressWarnings({"unused", "WeakerAccess"}) @Singleton public class BukkitUtil extends WorldUtil { + private static final Logger logger = LoggerFactory.getLogger("P2/" + BukkitUtil.class.getSimpleName()); + private static String lastString = null; private static World lastWorld = null; @@ -472,7 +476,6 @@ import java.util.stream.Stream; block.setType(Material.valueOf("OAK_WALL_SIGN"), false); } if (!(block.getBlockData() instanceof WallSign)) { - PlotSquared.debug(block.getBlockData().getAsString()); throw new RuntimeException("Something went wrong generating a sign"); } final Directional sign = (Directional) block.getBlockData(); @@ -513,7 +516,7 @@ import java.util.stream.Stream; @Nonnull final BiomeType biomeType) { final World world = getWorld(worldName); if (world == null) { - PlotSquared.log("An error occurred setting the biome because the world was null."); + logger.warn("[P2] An error occured while setting the biome because the world was null", new RuntimeException()); return; } final Biome biome = BukkitAdapter.adapt(biomeType); @@ -627,7 +630,7 @@ import java.util.stream.Stream; } break; default: { - PlotSquared.log(Captions.PREFIX + "Unknown entity category requested: " + category); + logger.error("[P2] Unknown entity category requested: {}", category); } break; } diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/util/ContentMap.java b/Bukkit/src/main/java/com/plotsquared/bukkit/util/ContentMap.java index 08381ee22..47d6d23ec 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/util/ContentMap.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/util/ContentMap.java @@ -27,7 +27,6 @@ package com.plotsquared.bukkit.util; import com.plotsquared.bukkit.entity.EntityWrapper; import com.plotsquared.bukkit.entity.ReplicatingEntityWrapper; -import com.plotsquared.core.PlotSquared; import com.plotsquared.core.location.Location; import com.plotsquared.core.location.PlotLoc; import com.sk89q.worldedit.bukkit.BukkitWorld; @@ -38,6 +37,8 @@ import org.bukkit.Chunk; import org.bukkit.World; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.HashMap; import java.util.HashSet; @@ -46,6 +47,8 @@ import java.util.Set; public class ContentMap { + private static final Logger logger = LoggerFactory.getLogger("P2/" + ContentMap.class.getSimpleName()); + final Set entities; final Map allBlocks; @@ -123,8 +126,7 @@ public class ContentMap { try { entity.spawn(world, xOffset, zOffset); } catch (Exception e) { - PlotSquared.debug("Failed to restore entity (e): " + e.toString()); - e.printStackTrace(); + logger.error("[P2] Failed to restore entity", e); } } this.entities.clear(); diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/util/UpdateUtility.java b/Bukkit/src/main/java/com/plotsquared/bukkit/util/UpdateUtility.java index 76c2daacb..45fc4f2fb 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/util/UpdateUtility.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/util/UpdateUtility.java @@ -31,12 +31,13 @@ import com.google.gson.stream.JsonReader; import com.google.inject.Inject; import com.plotsquared.core.PlotSquared; import com.plotsquared.core.PlotVersion; -import com.plotsquared.core.configuration.Captions; import com.plotsquared.core.configuration.Settings; import org.bukkit.Bukkit; import org.bukkit.event.Listener; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.scheduler.BukkitTask; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.net.ssl.HttpsURLConnection; import java.io.IOException; @@ -45,6 +46,8 @@ import java.net.URL; public class UpdateUtility implements Listener { + private static final Logger logger = LoggerFactory.getLogger("P2/" + UpdateUtility.class.getSimpleName()); + public static PlotVersion internalVersion; public static String spigotVersion; public static boolean hasUpdate; @@ -69,26 +72,22 @@ public class UpdateUtility implements Listener { .getAsJsonObject(); spigotVersion = result.get("current_version").getAsString(); } catch (IOException e) { - PlotSquared.log(Captions.PREFIX + "&cUnable to check for updates because: " + e); + logger.error("[P2] Unable to check for updates. Error: {}", e.getMessage()); return; } if (internalVersion.isLaterVersion(spigotVersion)) { - PlotSquared - .log(Captions.PREFIX + "&6There appears to be a PlotSquared update available!"); - PlotSquared.log( - Captions.PREFIX + "&6You are running version " + internalVersion.versionString() - + ", &6latest version is " + spigotVersion); - PlotSquared - .log(Captions.PREFIX + "&6https://www.spigotmc.org/resources/77506/updates"); + logger.info("[P2] There appears to be a PlotSquared update available!"); + logger.info("[P2] You are running version {}, the latest version is {}", + internalVersion.versionString(), spigotVersion); + logger.info("[P2] https://www.spigotmc.org/resources/77506/updates"); hasUpdate = true; if (Settings.UpdateChecker.NOTIFY_ONCE) { cancelTask(); } } else if (notify) { notify = false; - PlotSquared.log(Captions.PREFIX - + "Congratulations! You are running the latest PlotSquared version."); + logger.info("[P2] Congratulations! You are running the latest PlotSquared version"); } }, 0L, Settings.UpdateChecker.POLL_RATE * 60 * 20); } diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/uuid/SquirrelIdUUIDService.java b/Bukkit/src/main/java/com/plotsquared/bukkit/uuid/SquirrelIdUUIDService.java index 42cc8df59..3d5f2952a 100644 --- a/Bukkit/src/main/java/com/plotsquared/bukkit/uuid/SquirrelIdUUIDService.java +++ b/Bukkit/src/main/java/com/plotsquared/bukkit/uuid/SquirrelIdUUIDService.java @@ -26,14 +26,15 @@ package com.plotsquared.bukkit.uuid; import com.google.common.util.concurrent.RateLimiter; -import com.plotsquared.core.PlotSquared; -import com.plotsquared.core.configuration.Captions; +import com.plotsquared.core.configuration.Settings; import com.plotsquared.core.uuid.UUIDMapping; import com.plotsquared.core.uuid.UUIDService; import com.sk89q.squirrelid.Profile; import com.sk89q.squirrelid.resolver.HttpRepositoryService; import com.sk89q.squirrelid.resolver.ProfileService; import javax.annotation.Nonnull; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.IOException; import java.util.ArrayList; @@ -47,6 +48,8 @@ import java.util.UUID; @SuppressWarnings("UnstableApiUsage") public class SquirrelIdUUIDService implements UUIDService { + private static final Logger logger = LoggerFactory.getLogger("P2/" + SquirrelIdUUIDService.class.getSimpleName()); + private final ProfileService profileService; private final RateLimiter rateLimiter; @@ -78,7 +81,9 @@ public class SquirrelIdUUIDService implements UUIDService { // go through them one by one // if (uuids.size() >= 2) { - PlotSquared.debug(Captions.PREFIX + "(UUID) Found invalid UUID in batch. Will try each UUID individually."); + if (Settings.DEBUG) { + logger.info("[P2] (UUID) Found invalid UUID in batch. Will try each UUID individually."); + } for (final UUID uuid : uuids) { final List result = this.getNames(Collections.singletonList(uuid)); if (result.isEmpty()) { @@ -86,8 +91,8 @@ public class SquirrelIdUUIDService implements UUIDService { } results.add(result.get(0)); } - } else if (uuids.size() == 1) { - PlotSquared.debug(Captions.PREFIX + "(UUID) Found invalid UUID: " + uuids.get(0)); + } else if (uuids.size() == 1 && Settings.DEBUG) { + logger.info("[P2] (UUID) Found invalid UUID: {}", uuids.get(0)); } } } catch (IOException | InterruptedException e) { diff --git a/Core/build.gradle b/Core/build.gradle index 529db92d4..9743bc080 100644 --- a/Core/build.gradle +++ b/Core/build.gradle @@ -20,6 +20,8 @@ dependencies { compile("com.google.inject:guice:4.2.3") compile("com.google.inject.extensions:guice-assistedinject:4.2.3") compile group: 'com.google.code.findbugs', name: 'annotations', version: '3.0.1' + // logging + implementation("org.apache.logging.log4j:log4j-slf4j-impl:2.8.1") } sourceCompatibility = 1.8 diff --git a/Core/pom.xml b/Core/pom.xml index c04467362..ac6a4ef60 100644 --- a/Core/pom.xml +++ b/Core/pom.xml @@ -116,6 +116,12 @@ 1.7.0-SNAPSHOT runtime + + org.apache.logging.log4j + log4j-slf4j-impl + 2.8.1 + runtime + junit junit diff --git a/Core/src/main/java/com/plotsquared/core/PlotAPI.java b/Core/src/main/java/com/plotsquared/core/PlotAPI.java index 1e85a2f6e..9a83aae5e 100644 --- a/Core/src/main/java/com/plotsquared/core/PlotAPI.java +++ b/Core/src/main/java/com/plotsquared/core/PlotAPI.java @@ -145,7 +145,8 @@ import java.util.UUID; * @see MainUtil#sendConsoleMessage(Captions, String...) */ public void sendConsoleMessage(String message) { - PlotSquared.log(message); + // TODO: Re-implement + // PlotSquared.log(message); } /** diff --git a/Core/src/main/java/com/plotsquared/core/PlotSquared.java b/Core/src/main/java/com/plotsquared/core/PlotSquared.java index ca899a8ca..8ad87780c 100644 --- a/Core/src/main/java/com/plotsquared/core/PlotSquared.java +++ b/Core/src/main/java/com/plotsquared/core/PlotSquared.java @@ -26,6 +26,8 @@ package com.plotsquared.core; import com.plotsquared.core.configuration.Caption; +import com.plotsquared.core.command.WE_Anywhere; +import com.plotsquared.core.components.ComponentPresetManager; import com.plotsquared.core.configuration.Captions; import com.plotsquared.core.configuration.ConfigurationSection; import com.plotsquared.core.configuration.ConfigurationUtil; @@ -46,6 +48,7 @@ import com.plotsquared.core.generator.IndependentPlotGenerator; import com.plotsquared.core.inject.factory.HybridPlotWorldFactory; import com.plotsquared.core.listener.PlotListener; import com.plotsquared.core.location.Location; +import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.plot.BlockBucket; import com.plotsquared.core.plot.Plot; import com.plotsquared.core.plot.PlotArea; @@ -66,6 +69,7 @@ import com.plotsquared.core.util.MathMan; import com.plotsquared.core.util.ReflectionUtils; import com.plotsquared.core.util.StringMan; import com.plotsquared.core.util.logger.ILogger; +import com.plotsquared.core.util.WorldUtil; import com.plotsquared.core.util.query.PlotQuery; import com.plotsquared.core.util.task.TaskManager; import com.plotsquared.core.uuid.UUIDPipeline; @@ -74,6 +78,11 @@ import com.sk89q.worldedit.math.BlockVector2; import lombok.Getter; import lombok.Setter; import javax.annotation.Nullable; +import lombok.NonNull; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.annotation.Nonnull; import java.io.BufferedReader; @@ -117,6 +126,8 @@ import java.util.zip.ZipInputStream; @SuppressWarnings({"WeakerAccess"}) public class PlotSquared { + private static final Logger logger = LoggerFactory.getLogger("P2/" + PlotSquared.class.getSimpleName()); + private static final Set EMPTY_SET = Collections.unmodifiableSet(Collections.emptySet()); private static PlotSquared instance; // Implementation @@ -139,8 +150,6 @@ public class PlotSquared { private HashMap> clustersTmp; public HashMap> plots_tmp; private YamlConfiguration config; - // Implementation logger - @Setter @Getter private ILogger logger; // Platform / Version / Update URL private PlotVersion version; // Files and configuration @@ -163,7 +172,6 @@ public class PlotSquared { this.thread = Thread.currentThread(); this.platform = iPlotMain; - this.logger = iPlotMain; Settings.PLATFORM = platform; // @@ -174,9 +182,9 @@ public class PlotSquared { try { new ReflectionUtils(this.platform.getNMSPackage()); try { - URL url = PlotSquared.class.getProtectionDomain().getCodeSource().getLocation(); + URL logurl = PlotSquared.class.getProtectionDomain().getCodeSource().getLocation(); this.jarFile = new File( - new URL(url.toURI().toString().split("\\!")[0].replaceAll("jar:file", "file")) + new URL(logurl.toURI().toString().split("\\!")[0].replaceAll("jar:file", "file")) .toURI().getPath()); } catch (MalformedURLException | URISyntaxException | SecurityException e) { e.printStackTrace(); @@ -258,42 +266,8 @@ public class PlotSquared { throw new IllegalStateException("Plot platform implementation is missing"); } - /** - * Log a message to the IPlotMain logger. - * - * @param message Message to log - * @see PlotPlatform#log(String) - */ - public static void log(Object message) { - if (message == null || (message instanceof Caption ? - ((Caption) message).getTranslated().isEmpty() : - message.toString().isEmpty())) { - return; - } - if (PlotSquared.get() == null || PlotSquared.get().getLogger() == null) { - System.out.printf("[P2][Info] %s\n", StringMan.getString(message)); - } else { - PlotSquared.get().getLogger().log(StringMan.getString(message)); - } - } - - /** - * Log a message to the IPlotMain logger. - * - * @param message Message to log - * @see PlotPlatform#log(String) - */ - public static void debug(@Nullable Object message) { - if (Settings.DEBUG) { - if (PlotSquared.get() == null || PlotSquared.get().getLogger() == null) { - System.out.printf("[P2][Debug] %s\n", StringMan.getString(message)); - } else { - PlotSquared.get().getLogger().log(StringMan.getString(message)); - } - } - } - public void startExpiryTasks() { + private void startExpiryTasks() { if (Settings.Enabled_Components.PLOT_EXPIRY) { ExpireManager.IMP = new ExpireManager(this.eventDispatcher); ExpireManager.IMP.runAutomatedTask(); @@ -411,21 +385,16 @@ public class PlotSquared { regionInts.forEach(l -> regions.add(BlockVector2.at(l[0], l[1]))); chunkInts.forEach(l -> chunks.add(BlockVector2.at(l[0], l[1]))); int height = (int) list.get(2); - PlotSquared.log( - Captions.PREFIX + "Incomplete road regeneration found. Restarting in world " - + plotArea.getWorldName() + " with height " + height + "."); - PlotSquared.debug(" Regions: " + regions.size()); - PlotSquared.debug(" Chunks: " + chunks.size()); + logger.info("[P2] Incomplete road regeneration found. Restarting in world {} with height {}", plotArea.getWorldName(), height); + logger.info("[P2] - Regions: {}", regions.size()); + logger.info("[P2] - Chunks: {}", chunks.size()); HybridUtils.UPDATE = true; PlotSquared.platform().getHybridUtils().scheduleRoadUpdate(plotArea, regions, height, chunks); } catch (IOException | ClassNotFoundException e) { - PlotSquared.log(Captions.PREFIX + "Error restarting road regeneration."); - e.printStackTrace(); + logger.error("[P2] Error restarting road regeneration", e); } finally { if (!file.delete()) { - PlotSquared.log( - Captions.PREFIX + "Error deleting persistent_regen_data_" + plotArea.getId() - + ". Please manually delete this file."); + logger.error("[P2] Error deleting persistent_regen_data_{}. Please delete this file manually", plotArea.getId()); } } }); @@ -811,7 +780,6 @@ public class PlotSquared { } if (type == PlotAreaType.NORMAL) { if (getPlotAreaManager().getPlotAreas(world, null).length != 0) { - debug("World possibly already loaded: " + world); return; } IndependentPlotGenerator plotGenerator; @@ -839,15 +807,13 @@ public class PlotSquared { // Conventional plot generator PlotArea plotArea = plotGenerator.getNewPlotArea(world, null, null, null); PlotManager plotManager = plotArea.getPlotManager(); - PlotSquared.log(Captions.PREFIX + "&aDetected world load for '" + world + "'"); - PlotSquared - .log(Captions.PREFIX + "&3 - generator: &7" + baseGenerator + ">" + plotGenerator); - PlotSquared.log(Captions.PREFIX + "&3 - plotworld: &7" + plotArea.getClass().getName()); - PlotSquared.log( - Captions.PREFIX + "&3 - getPlotAreaManager(): &7" + plotManager.getClass().getName()); - if (!this.worldConfiguration.contains(path)) { - this.worldConfiguration.createSection(path); - worldSection = this.worldConfiguration.getConfigurationSection(path); + logger.info("[P2] Detected world load for '{}'", world); + logger.info("[P2] - generator: {}>{}", baseGenerator, plotGenerator); + logger.info("[P2] - plot world: {}", plotArea.getClass().getCanonicalName()); + logger.info("[P2] - plot area manager: {}", plotManager.getClass().getCanonicalName()); + if (!this.worlds.contains(path)) { + this.worlds.createSection(path); + worldSection = this.worlds.getConfigurationSection(path); } plotArea.saveConfiguration(worldSection); plotArea.loadDefaultConfiguration(worldSection); @@ -866,10 +832,9 @@ public class PlotSquared { ConfigurationSection areasSection = worldSection.getConfigurationSection("areas"); if (areasSection == null) { if (getPlotAreaManager().getPlotAreas(world, null).length != 0) { - debug("World possibly already loaded: " + world); return; } - PlotSquared.log(Captions.PREFIX + "&aDetected world load for '" + world + "'"); + logger.info("[P2] Detected world load for '{}'", world); String gen_string = worldSection.getString("generator.plugin", platform.getPluginName()); if (type == PlotAreaType.PARTIAL) { Set clusters = @@ -885,8 +850,7 @@ public class PlotSquared { String fullId = name + "-" + pos1 + "-" + pos2; worldSection.createSection("areas." + fullId); DBFunc.replaceWorld(world, world + ";" + name, pos1, pos2); // NPE - - PlotSquared.log(Captions.PREFIX + "&3 - " + name + "-" + pos1 + "-" + pos2); + logger.info("[P2] - {}-{}-{}", name, pos1, pos2); GeneratorWrapper areaGen = this.platform.getGenerator(world, gen_string); if (areaGen == null) { throw new IllegalArgumentException("Invalid Generator: " + gen_string); @@ -900,14 +864,10 @@ public class PlotSquared { } catch (IOException e) { e.printStackTrace(); } - PlotSquared.log( - Captions.PREFIX + "&c | &9generator: &7" + baseGenerator + ">" - + areaGen); - PlotSquared.log(Captions.PREFIX + "&c | &9plotworld: &7" + pa); - PlotSquared.log(Captions.PREFIX + "&c | &9manager: &7" + pa); - PlotSquared.log( - Captions.PREFIX + "&cNote: &7Area created for cluster:" + name - + " (invalid or old configuration?)"); + logger.info("[P2] | generator: {}>{}", baseGenerator, areaGen); + logger.info("[P2] | plot world: {}", pa); + logger.info("[P2] | manager: {}", pa); + logger.info("[P2] Note: Area created for cluster '{}' (invalid or old configuration?)", name); areaGen.getPlotGenerator().initialize(pa); areaGen.augment(pa); toLoad.add(pa); @@ -929,10 +889,9 @@ public class PlotSquared { } catch (IOException e) { e.printStackTrace(); } - PlotSquared - .log(Captions.PREFIX + "&3 - generator: &7" + baseGenerator + ">" + areaGen); - PlotSquared.log(Captions.PREFIX + "&3 - plotworld: &7" + pa); - PlotSquared.log(Captions.PREFIX + "&3 - getPlotAreaManager(): &7" + pa.getPlotManager()); + logger.info("[P2] - generator: {}>{}", baseGenerator, areaGen); + logger.info("[P2] - plot world: {}", pa); + logger.info("[P2] - plot area manager: {}", pa.getPlotManager()); areaGen.getPlotGenerator().initialize(pa); areaGen.augment(pa); addPlotArea(pa); @@ -944,7 +903,7 @@ public class PlotSquared { + PlotAreaType.AUGMENTED + "`"); } for (String areaId : areasSection.getKeys(false)) { - PlotSquared.log(Captions.PREFIX + " - " + areaId); + logger.info("[P2] - {}", areaId); String[] split = areaId.split("(?<=[^;-])-"); if (split.length != 3) { throw new IllegalArgumentException("Invalid Area identifier: " + areaId @@ -1006,11 +965,10 @@ public class PlotSquared { } catch (IOException e) { e.printStackTrace(); } - PlotSquared.log(Captions.PREFIX + "&aDetected area load for '" + world + "'"); - PlotSquared - .log(Captions.PREFIX + "&c | &9generator: &7" + baseGenerator + ">" + areaGen); - PlotSquared.log(Captions.PREFIX + "&c | &9plotworld: &7" + pa); - PlotSquared.log(Captions.PREFIX + "&c | &9manager: &7" + pa.getPlotManager()); + logger.info("[P2] Detected area load for '{}'", world); + logger.info("[P2] | generator: {}>{}", baseGenerator, areaGen); + logger.info("[P2] | plot world: {}", pa); + logger.info("[P2] | manager: {}", pa.getPlotManager()); areaGen.getPlotGenerator().initialize(pa); areaGen.augment(pa); addPlotArea(pa); @@ -1081,7 +1039,7 @@ public class PlotSquared { for (String element : split) { String[] pair = element.split("="); if (pair.length != 2) { - PlotSquared.log("&cNo value provided for: &7" + element); + logger.error("[P2] No value provided for '{}'", element); return false; } String key = pair[0].toLowerCase(); @@ -1129,12 +1087,12 @@ public class PlotSquared { ConfigurationUtil.BLOCK_BUCKET.parseString(value).toString()); break; default: - PlotSquared.log("&cKey not found: &7" + element); + logger.error("[P2] Key not found: {}", element); return false; } } catch (Exception e) { + logger.error("[P2] Invalid value '{}' for arg '{}'", value, element); e.printStackTrace(); - PlotSquared.log("&cInvalid value: &7" + value + " in arg " + element); return false; } } @@ -1201,8 +1159,8 @@ public class PlotSquared { } } } catch (IOException e) { + logger.error("[P2] Could not save {}", file); e.printStackTrace(); - PlotSquared.log("&cCould not save " + file); } } @@ -1224,8 +1182,8 @@ public class PlotSquared { // Close the connection DBFunc.close(); } catch (NullPointerException throwable) { + logger.error("[P2] Could not close database connection", throwable); throwable.printStackTrace(); - PlotSquared.log("&cCould not close database connection!"); } } @@ -1237,10 +1195,9 @@ public class PlotSquared { HybridUtils.regions.isEmpty() && HybridUtils.chunks.isEmpty())) { return; } - PlotSquared.log( - Captions.PREFIX + "Road regeneration incomplete. Saving incomplete regions to disk."); - PlotSquared.debug(" Regions: " + HybridUtils.regions.size()); - PlotSquared.debug(" Chunks: " + HybridUtils.chunks.size()); + logger.info("[P2] Road regeneration incomplete. Saving incomplete regions to disk"); + logger.info("[P2] - regions: {}", HybridUtils.regions.size()); + logger.info("[P2] - chunks: {}", HybridUtils.chunks.size()); ArrayList regions = new ArrayList<>(); ArrayList chunks = new ArrayList<>(); for (BlockVector2 r : HybridUtils.regions) { @@ -1257,16 +1214,14 @@ public class PlotSquared { this.platform.getDirectory() + File.separator + "persistent_regen_data_" + HybridUtils.area .getId() + "_" + HybridUtils.area.getWorldName()); if (file.exists() && !file.delete()) { - PlotSquared.log(Captions.PREFIX - + "persistent_regen_data file already exists and could not be deleted."); + logger.error("[P2] persistent_regene_data file already exists and could not be deleted"); return; } try (ObjectOutputStream oos = new ObjectOutputStream( Files.newOutputStream(file.toPath(), StandardOpenOption.CREATE_NEW))) { oos.writeObject(list); } catch (IOException e) { - PlotSquared.log(Captions.PREFIX + "Error create persistent_regen_data file."); - e.printStackTrace(); + logger.error("[P2] Error creating persistent_region_data file", e); } } @@ -1286,7 +1241,7 @@ public class PlotSquared { File file = MainUtil.getFile(platform.getDirectory(), Storage.SQLite.DB + ".db"); database = new SQLite(file); } else { - PlotSquared.log(Captions.PREFIX + "&cNo storage type is set!"); + logger.error("[P2] No storage type is set. Disabling PlotSquared"); this.platform.shutdown(); //shutdown used instead of disable because no database is set return; } @@ -1304,20 +1259,13 @@ public class PlotSquared { } this.clustersTmp = DBFunc.getClusters(); } catch (ClassNotFoundException | SQLException e) { - PlotSquared.log(Captions.PREFIX - + "&cFailed to open DATABASE connection. The plugin will disable itself."); - if (Storage.MySQL.USE) { - PlotSquared.log("$4MYSQL"); - } else if (Storage.SQLite.USE) { - PlotSquared.log("$4SQLITE"); - } - PlotSquared.log( - "&d==== Here is an ugly stacktrace, if you are interested in those things ==="); + logger.error("[P2] Failed to open database connection ({}). Disabling PlotSquared", Storage.MySQL.USE ? "MySQL" : "SQLite"); + logger.error("[P2] ==== Here is an ugly stacktrace, if you are interested in those things ==="); e.printStackTrace(); - PlotSquared.log("&d==== End of stacktrace ===="); - PlotSquared.log("&6Please go to the " + platform.getPluginName() - + " 'storage.yml' and configure the database correctly."); - this.platform.shutdown(); //shutdown used instead of disable because of database error + logger.error("[P2] &d==== End of stacktrace ===="); + logger.error("[P2] &6Please go to the {} 'storage.yml' and configure the database correctly", + imp().getPluginName()); + this.IMP.shutdown(); //shutdown used instead of disable because of database error } } @@ -1341,7 +1289,7 @@ public class PlotSquared { try { worldConfiguration.save(worldsFile); } catch (IOException e) { - PlotSquared.debug("Failed to save " + platform.getPluginName() + " worlds.yml"); + logger.error("[P2] Failed to save worlds.yml", e); e.printStackTrace(); } } @@ -1374,14 +1322,12 @@ public class PlotSquared { public boolean setupConfigs() { File folder = new File(this.platform.getDirectory(), "config"); if (!folder.exists() && !folder.mkdirs()) { - PlotSquared.log(Captions.PREFIX - + "&cFailed to create the /plugins/config folder. Please create it manually."); + logger.error("[P2] Failed to create the /plugins/config folder. Please create it manually"); } try { this.worldsFile = new File(folder, "worlds.yml"); if (!this.worldsFile.exists() && !this.worldsFile.createNewFile()) { - PlotSquared.log( - "Could not create the worlds file, please create \"worlds.yml\" manually."); + logger.error("[P2] Could not create the worlds file. Please create 'worlds.yml' manually"); } this.worldConfiguration = YamlConfiguration.loadConfiguration(this.worldsFile); @@ -1391,21 +1337,20 @@ public class PlotSquared { .equalsIgnoreCase(LegacyConverter.CONFIGURATION_VERSION) && !this.worldConfiguration .getString("configuration_version").equalsIgnoreCase("v5"))) { // Conversion needed - log(Captions.LEGACY_CONFIG_FOUND.getTranslated()); + logger.info(Captions.LEGACY_CONFIG_FOUND.getTranslated()); try { com.google.common.io.Files .copy(this.worldsFile, new File(folder, "worlds.yml.old")); - log(Captions.LEGACY_CONFIG_BACKUP.getTranslated()); + logger.info(Captions.LEGACY_CONFIG_BACKUP.getTranslated()); final ConfigurationSection worlds = this.worldConfiguration.getConfigurationSection("worlds"); final LegacyConverter converter = new LegacyConverter(worlds); converter.convert(); this.worldConfiguration.set("worlds", worlds); this.setConfigurationVersion(LegacyConverter.CONFIGURATION_VERSION); - log(Captions.LEGACY_CONFIG_DONE.getTranslated()); + logger.info(Captions.LEGACY_CONFIG_DONE.getTranslated()); } catch (final Exception e) { - log(Captions.LEGACY_CONFIG_CONVERSION_FAILED.getTranslated()); - e.printStackTrace(); + logger.error(Captions.LEGACY_CONFIG_CONVERSION_FAILED.getTranslated(), e); } // Disable plugin this.platform.shutdown(); @@ -1415,18 +1360,17 @@ public class PlotSquared { this.worldConfiguration.set("configuration_version", LegacyConverter.CONFIGURATION_VERSION); } } catch (IOException ignored) { - PlotSquared.log("Failed to save settings.yml"); + logger.error("[P2] Failed to save worlds.yml"); } try { this.configFile = new File(folder, "settings.yml"); if (!this.configFile.exists() && !this.configFile.createNewFile()) { - PlotSquared.log( - "Could not create the settings file, please create \"settings.yml\" manually."); + logger.error("[P2] Could not create the settings file. Please create 'settings.yml' manually"); } this.config = YamlConfiguration.loadConfiguration(this.configFile); setupConfig(); } catch (IOException ignored) { - PlotSquared.log("Failed to save settings.yml"); + logger.error("[P2] Failed to save settings.yml"); } try { // TODO: REMOVE @@ -1437,27 +1381,28 @@ public class PlotSquared { styleFile.getParentFile().mkdirs(); } if (!styleFile.createNewFile()) { - PlotSquared.log( - "Could not create the style file, please create \"translations/style.yml\" manually"); + logger.error("[P2] Failed to create the style file. Please create 'translations/style.yml' manually"); } } this.style = YamlConfiguration.loadConfiguration(styleFile); setupStyle(); - this.style.save(styleFile); - } catch (IOException err) { - err.printStackTrace(); - PlotSquared.log("Failed to save style.yml"); + } catch (IOException ignored) { + logger.error("[P2] Failed to save style.yml"); } try { this.storageFile = new File(folder, "storage.yml"); if (!this.storageFile.exists() && !this.storageFile.createNewFile()) { - PlotSquared.log( - "Could not the storage settings file, please create \"storage.yml\" manually."); + logger.error("[P2] Could not create the storage settings file. Please create 'storage.yml' manually"); } YamlConfiguration.loadConfiguration(this.storageFile); setupStorage(); } catch (IOException ignored) { - PlotSquared.log("Failed to save storage.yml"); + logger.error("[P2] Failed to save storage.yml"); + } + try { + this.style.save(this.styleFile); + } catch (IOException e) { + logger.error("[P2] Configuration file saving failed", e); } return true; } @@ -1488,9 +1433,7 @@ public class PlotSquared { if (Settings.DEBUG) { Map components = Settings.getFields(Settings.Enabled_Components.class); for (Entry component : components.entrySet()) { - PlotSquared.log(Captions.PREFIX + String - .format("&cKey: &6%s&c, Value: &6%s", component.getKey(), - component.getValue())); + logger.info("[P2] Key: {} | Value: {}", component.getKey(), component.getValue()); } } } diff --git a/Core/src/main/java/com/plotsquared/core/command/Claim.java b/Core/src/main/java/com/plotsquared/core/command/Claim.java index ea77ae44e..7b51ea6cf 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Claim.java +++ b/Core/src/main/java/com/plotsquared/core/command/Claim.java @@ -48,6 +48,8 @@ import com.plotsquared.core.util.task.RunnableVal; import com.plotsquared.core.util.task.TaskManager; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @CommandDeclaration(command = "claim", aliases = "c", @@ -58,15 +60,17 @@ import javax.annotation.Nullable; usage = "/plot claim") public class Claim extends SubCommand { + private static final Logger logger = LoggerFactory.getLogger("P2/" + Claim.class.getSimpleName()); + private final EventDispatcher eventDispatcher; private final EconHandler econHandler; - + @Inject public Claim(@Nonnull final EventDispatcher eventDispatcher, @Nullable final EconHandler econHandler) { this.eventDispatcher = eventDispatcher; this.econHandler = econHandler; } - + @Override public boolean onCommand(final PlotPlayer player, String[] args) { String schematic = null; if (args.length >= 1) { @@ -145,7 +149,7 @@ public class Claim extends SubCommand { DBFunc.createPlotSafe(plot, () -> TaskManager.getImplementation().sync(new RunnableVal() { @Override public void run(Object value) { if (!plot.claim(player, true, finalSchematic, false)) { - PlotSquared.get().getLogger().log(Captions.PREFIX.getTranslated() + String + logger.info(Captions.PREFIX.getTranslated() + String .format("Failed to claim plot %s", plot.getId().toCommaSeparatedString())); sendMessage(player, Captions.PLOT_NOT_CLAIMED); plot.setOwnerAbs(null); @@ -160,7 +164,7 @@ public class Claim extends SubCommand { } } }), () -> { - PlotSquared.get().getLogger().log(Captions.PREFIX.getTranslated() + String + logger.info(Captions.PREFIX.getTranslated() + String .format("Failed to add plot %s to the database", plot.getId().toCommaSeparatedString())); sendMessage(player, Captions.PLOT_NOT_CLAIMED); diff --git a/Core/src/main/java/com/plotsquared/core/command/Debug.java b/Core/src/main/java/com/plotsquared/core/command/Debug.java index 35d413033..d8e591313 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Debug.java +++ b/Core/src/main/java/com/plotsquared/core/command/Debug.java @@ -40,6 +40,8 @@ import com.plotsquared.core.util.task.TaskManager; import com.plotsquared.core.uuid.UUIDMapping; import com.sk89q.worldedit.world.entity.EntityType; import javax.annotation.Nonnull; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.Collection; import java.util.Comparator; @@ -52,6 +54,8 @@ import java.util.Map; permission = "plots.admin") public class Debug extends SubCommand { + private static final Logger logger = LoggerFactory.getLogger("P2/" + Debug.class.getSimpleName()); + private final PlotAreaManager plotAreaManager; private final RegionManager regionManager; @@ -91,6 +95,13 @@ public class Debug extends SubCommand { } return true; } + if (args.length > 0 && "logging".equalsIgnoreCase(args[0])) { + logger.info("[P2] Info!"); + logger.warn("[P2] Warning!"); + logger.error("[P2] Error!", new RuntimeException()); + logger.debug("[P2] Debug!"); + return true; + } if (args.length > 0 && "entitytypes".equalsIgnoreCase(args[0])) { EntityCategories.init(); player.sendMessage(Captions.PREFIX.getTranslated() + "§cEntity Categories: "); diff --git a/Core/src/main/java/com/plotsquared/core/command/DebugExec.java b/Core/src/main/java/com/plotsquared/core/command/DebugExec.java index f8daa2a89..387320ffb 100644 --- a/Core/src/main/java/com/plotsquared/core/command/DebugExec.java +++ b/Core/src/main/java/com/plotsquared/core/command/DebugExec.java @@ -65,6 +65,8 @@ import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.world.block.BlockState; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.script.Bindings; import javax.script.ScriptContext; @@ -88,6 +90,9 @@ import java.util.concurrent.CompletableFuture; category = CommandCategory.DEBUG) public class DebugExec extends SubCommand { + private static final Logger logger = LoggerFactory.getLogger("P2/" + DebugExec.class.getSimpleName()); + + private final PlotAreaManager plotAreaManager; private final EventDispatcher eventDispatcher; private final WorldEdit worldEdit; @@ -464,7 +469,6 @@ public class DebugExec extends SubCommand { } init(); this.scope.put("PlotPlayer", player); - PlotSquared.debug("> " + script); try { if (async) { final String toExec = script; @@ -476,14 +480,12 @@ public class DebugExec extends SubCommand { } catch (ScriptException e) { e.printStackTrace(); } - PlotSquared - .log("> " + (System.currentTimeMillis() - start) + "ms -> " + result); + logger.info("[P2] > {}ms -> {}", System.currentTimeMillis() - start, result); }); } else { long start = System.currentTimeMillis(); Object result = this.engine.eval(script, this.scope); - PlotSquared - .log("> " + (System.currentTimeMillis() - start) + "ms -> " + result); + logger.info("[P2] > {}ms -> {}", System.currentTimeMillis() - start, result); } return true; } catch (ScriptException e) { diff --git a/Core/src/main/java/com/plotsquared/core/command/Purge.java b/Core/src/main/java/com/plotsquared/core/command/Purge.java index 09c0f44ba..4b51144b1 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Purge.java +++ b/Core/src/main/java/com/plotsquared/core/command/Purge.java @@ -38,6 +38,8 @@ import com.plotsquared.core.plot.PlotId; import com.plotsquared.core.plot.world.PlotAreaManager; import com.plotsquared.core.util.StringMan; import com.plotsquared.core.util.task.TaskManager; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.annotation.Nonnull; import java.util.HashMap; @@ -56,6 +58,8 @@ import java.util.concurrent.atomic.AtomicBoolean; confirmation = true) public class Purge extends SubCommand { + private static final Logger logger = LoggerFactory.getLogger("P2/" + Purge.class.getSimpleName()); + private final PlotAreaManager plotAreaManager; private final PlotListener plotListener; @@ -182,7 +186,9 @@ public class Purge extends SubCommand { "/plot purge " + StringMan.join(args, " ") + " (" + toDelete.size() + " plots)"; boolean finalClear = clear; Runnable run = () -> { - PlotSquared.debug("Calculating plots to purge, please wait..."); + if (Settings.DEBUG) { + logger.info("[P2] Calculating plots to purge, please wait..."); + } HashSet ids = new HashSet<>(); Iterator iterator = toDelete.iterator(); AtomicBoolean cleared = new AtomicBoolean(true); @@ -195,8 +201,11 @@ public class Purge extends SubCommand { try { ids.add(plot.temp); if (finalClear) { - plot.clear(false, true, () -> PlotSquared - .debug("Plot " + plot.getId() + " cleared by purge.")); + plot.clear(false, true, () -> { + if (Settings.DEBUG) { + logger.info("[P2] Plot {} cleared by purge", plot.getId()); + } + }); } else { plot.removeSign(); } @@ -205,12 +214,8 @@ public class Purge extends SubCommand { Purge.this.plotListener.plotEntry(pp, plot); } } catch (NullPointerException e) { - PlotSquared.log( - "NullPointer during purge detected. This is likely because you are " - + "deleting a world that has been removed."); - if (Settings.DEBUG) { - e.printStackTrace(); - } + logger.error("[P2] NullPointer during purge detected. This is likely" + + " because you are deleting a world that has been removed", e); } } cleared.set(true); diff --git a/Core/src/main/java/com/plotsquared/core/command/Trim.java b/Core/src/main/java/com/plotsquared/core/command/Trim.java index 8c400c95e..46dd15e11 100644 --- a/Core/src/main/java/com/plotsquared/core/command/Trim.java +++ b/Core/src/main/java/com/plotsquared/core/command/Trim.java @@ -45,6 +45,8 @@ import com.plotsquared.core.util.task.RunnableVal2; import com.plotsquared.core.util.task.TaskManager; import com.sk89q.worldedit.math.BlockVector2; import com.sk89q.worldedit.regions.CuboidRegion; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.annotation.Nonnull; import java.util.HashSet; @@ -60,6 +62,10 @@ import java.util.Set; category = CommandCategory.ADMINISTRATION) public class Trim extends SubCommand { + private static final Logger logger = LoggerFactory.getLogger("P2/" + Trim.class.getSimpleName()); + public static ArrayList expired = null; + private static volatile boolean TASK = false; + private final PlotAreaManager plotAreaManager; private final WorldUtil worldUtil; private final GlobalBlockQueue blockQueue; @@ -75,8 +81,6 @@ public class Trim extends SubCommand { this.regionManager = regionManager; } - private static volatile boolean TASK = false; - /** * Runs the result task with the parameters (viable, nonViable). * @@ -140,14 +144,15 @@ public class Trim extends SubCommand { @Override public void run(Set viable, final Set nonViable) { Runnable regenTask; if (regen) { - PlotSquared.log("Starting regen task:"); - PlotSquared.log(" - This is a VERY slow command"); - PlotSquared.log(" - It will say `Trim done!` when complete"); + logger.info("[P2] Starting regen task"); + logger.info("[P2] - This is a VERY slow command"); + logger.info("[P2] - It will say 'Trim done!' when complete"); regenTask = new Runnable() { @Override public void run() { if (nonViable.isEmpty()) { Trim.TASK = false; player.sendMessage("Trim done!"); + logger.info("[P2] Trim done!"); return; } Iterator iterator = nonViable.iterator(); diff --git a/Core/src/main/java/com/plotsquared/core/components/ComponentPresetManager.java b/Core/src/main/java/com/plotsquared/core/components/ComponentPresetManager.java index d192f349d..d856944e0 100644 --- a/Core/src/main/java/com/plotsquared/core/components/ComponentPresetManager.java +++ b/Core/src/main/java/com/plotsquared/core/components/ComponentPresetManager.java @@ -46,6 +46,8 @@ import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.world.item.ItemTypes; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.File; import java.io.IOException; @@ -59,6 +61,8 @@ import java.util.stream.Collectors; public class ComponentPresetManager { + private static final Logger logger = LoggerFactory.getLogger("P2/" + ComponentPresetManager.class.getSimpleName()); + private final List presets; private final String guiName; private final EconHandler econHandler; @@ -77,7 +81,7 @@ public class ComponentPresetManager { e.printStackTrace(); } if (!created) { - PlotSquared.log(Captions.PREFIX + "Failed to create components.yml"); + logger.error("[P2] Failed to create components.yml"); this.guiName = "&cInvalid!"; this.presets = new ArrayList<>(); return; @@ -93,8 +97,7 @@ public class ComponentPresetManager { try { yamlConfiguration.save(file); } catch (IOException e) { - PlotSquared.log(Captions.PREFIX + "Failed to save default values to components.yml"); - e.printStackTrace(); + logger.error("[P2] Failed to save default values to components.yml", e); } } this.guiName = yamlConfiguration.getString("title", "&6Plot Components"); @@ -112,8 +115,7 @@ public class ComponentPresetManager { try { yamlConfiguration.save(file); } catch (final IOException e) { - PlotSquared.log(Captions.PREFIX + "Failed to save default values to components.yml"); - e.printStackTrace(); + logger.error("[P2] Failed to save default values to components.yml", e); } this.presets = defaultPreset; } diff --git a/Core/src/main/java/com/plotsquared/core/configuration/Caption.java b/Core/src/main/java/com/plotsquared/core/configuration/Caption.java index bb9cf098f..081bc774a 100644 --- a/Core/src/main/java/com/plotsquared/core/configuration/Caption.java +++ b/Core/src/main/java/com/plotsquared/core/configuration/Caption.java @@ -25,7 +25,6 @@ */ package com.plotsquared.core.configuration; -import com.plotsquared.core.PlotSquared; import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.util.StringMan; @@ -44,7 +43,8 @@ public interface Caption { default boolean send(PlotPlayer caller, Object... args) { String msg = CaptionUtility.format(caller, this, args); if (caller == null) { - PlotSquared.log(msg); + // TODO: Replace with adventure + System.out.println(msg); } else { caller.sendMessage(msg); } diff --git a/Core/src/main/java/com/plotsquared/core/configuration/Config.java b/Core/src/main/java/com/plotsquared/core/configuration/Config.java index 701cca773..3995ff964 100644 --- a/Core/src/main/java/com/plotsquared/core/configuration/Config.java +++ b/Core/src/main/java/com/plotsquared/core/configuration/Config.java @@ -25,10 +25,11 @@ */ package com.plotsquared.core.configuration; -import com.plotsquared.core.PlotSquared; import com.plotsquared.core.configuration.Settings.Enabled_Components; import com.plotsquared.core.configuration.file.YamlConfiguration; import com.plotsquared.core.util.StringMan; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.File; import java.io.PrintWriter; @@ -46,6 +47,8 @@ import java.util.Map; public class Config { + private static final Logger logger = LoggerFactory.getLogger("P2/" + Config.class.getSimpleName()); + /** * Get the value for a node
* Probably throws some error if you try to get a non existent key @@ -68,7 +71,6 @@ public class Config { } } } - PlotSquared.debug("Failed to get config option: " + key); return null; } @@ -95,15 +97,13 @@ public class Config { } field.set(instance, value); return; - } catch (Throwable e) { - PlotSquared.debug( - "Invalid configuration value: " + key + ": " + value + " in " + root - .getSimpleName()); + } catch (final Throwable e) { + logger.error("[P2] Invalid configuration value '{}: {}' in {}", key, value, root.getSimpleName()); e.printStackTrace(); } } } - PlotSquared.debug("Failed to set config option: " + key + ": " + value + " | " + instance); + logger.error("[P2] Failed to set config option '{}: {}' | {}", key, value, instance); } public static boolean load(File file, Class root) { @@ -288,10 +288,10 @@ public class Config { Field field = instance.getClass().getField(toFieldName(split[split.length - 1])); setAccessible(field); return field; - } catch (Throwable e) { - PlotSquared.debug( - "Invalid config field: " + StringMan.join(split, ".") + " for " + toNodeName( - instance.getClass().getSimpleName())); + } catch (final Throwable e) { + logger.error("[P2] Invalid config field: {} for {}", + StringMan.join(split, "."), toNodeName(instance.getClass().getSimpleName())); + e.printStackTrace(); return null; } } diff --git a/Core/src/main/java/com/plotsquared/core/configuration/file/YamlConfiguration.java b/Core/src/main/java/com/plotsquared/core/configuration/file/YamlConfiguration.java index f57cc56f8..3008ca451 100644 --- a/Core/src/main/java/com/plotsquared/core/configuration/file/YamlConfiguration.java +++ b/Core/src/main/java/com/plotsquared/core/configuration/file/YamlConfiguration.java @@ -25,10 +25,12 @@ */ package com.plotsquared.core.configuration.file; -import com.plotsquared.core.PlotSquared; import com.plotsquared.core.configuration.Configuration; import com.plotsquared.core.configuration.ConfigurationSection; import com.plotsquared.core.configuration.InvalidConfigurationException; +import com.plotsquared.core.configuration.Settings; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.yaml.snakeyaml.DumperOptions; import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.error.YAMLException; @@ -45,6 +47,9 @@ import java.util.Map; * Note that this implementation is not synchronized. */ public class YamlConfiguration extends FileConfiguration { + + private static final Logger logger = LoggerFactory.getLogger("P2/" + YamlConfiguration.class.getSimpleName()); + private static final String COMMENT_PREFIX = "# "; private static final String BLANK_CONFIG = "{}\n"; private final DumperOptions yamlOptions = new DumperOptions(); @@ -76,11 +81,13 @@ public class YamlConfiguration extends FileConfiguration { dest = new File(file.getAbsolutePath() + "_broken_" + i++); } Files.copy(file.toPath(), dest.toPath(), StandardCopyOption.REPLACE_EXISTING); - PlotSquared.debug("&dCould not read: &7" + file); - PlotSquared.debug("&dRenamed to: &7" + dest.getName()); - PlotSquared.debug("&c============ Full stacktrace ============"); - ex.printStackTrace(); - PlotSquared.debug("&c========================================="); + if (Settings.DEBUG) { + logger.error("[P2] Could not read: {}", file); + logger.error("[P2] Renamed to: {}", file); + logger.error("[P2] ============ Full stacktrace ============"); + ex.printStackTrace(); + logger.error("[P2] ========================================="); + } } catch (IOException e) { e.printStackTrace(); } diff --git a/Core/src/main/java/com/plotsquared/core/database/SQLManager.java b/Core/src/main/java/com/plotsquared/core/database/SQLManager.java index 22890e695..051e4ac3b 100644 --- a/Core/src/main/java/com/plotsquared/core/database/SQLManager.java +++ b/Core/src/main/java/com/plotsquared/core/database/SQLManager.java @@ -52,6 +52,8 @@ import com.plotsquared.core.util.StringMan; import com.plotsquared.core.util.task.RunnableVal; import com.plotsquared.core.util.task.TaskManager; import javax.annotation.Nonnull; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.sql.Connection; import java.sql.DatabaseMetaData; @@ -83,6 +85,8 @@ import java.util.concurrent.atomic.AtomicInteger; @SuppressWarnings("SqlDialectInspection") public class SQLManager implements AbstractDB { + private static final Logger logger = LoggerFactory.getLogger("P2/" + SQLManager.class.getSimpleName()); + // Public final public final String SET_OWNER; public final String GET_ALL_PLOTS; @@ -370,11 +374,12 @@ public class SQLManager implements AbstractDB { try { task.run(); } catch (Throwable e) { - PlotSquared.debug("============ DATABASE ERROR ============"); - PlotSquared.debug("There was an error updating the database."); - PlotSquared.debug(" - It will be corrected on shutdown"); + logger.error("[P2] ============ DATABASE ERROR ============"); + logger.error("[P2] ============ DATABASE ERROR ============"); + logger.error("[P2] There was an error updating the database."); + logger.error("[P2] - It will be corrected on shutdown"); e.printStackTrace(); - PlotSquared.debug("========================================"); + logger.error("[P2] ========================================"); } } commit(); @@ -424,12 +429,12 @@ public class SQLManager implements AbstractDB { } lastTask = task; } catch (Throwable e) { - PlotSquared.debug("============ DATABASE ERROR ============"); - PlotSquared.debug("There was an error updating the database."); - PlotSquared.debug(" - It will be corrected on shutdown"); - PlotSquared.debug("========================================"); + logger.error("[P2] ============ DATABASE ERROR ============"); + logger.error("[P2] There was an error updating the database."); + logger.error("[P2] - It will be corrected on shutdown"); + logger.error("[P2] ========================================"); e.printStackTrace(); - PlotSquared.debug("========================================"); + logger.error("[P2] ========================================"); } } if (statement != null && task != null) { @@ -469,12 +474,12 @@ public class SQLManager implements AbstractDB { } lastTask = task; } catch (Throwable e) { - PlotSquared.debug("============ DATABASE ERROR ============"); - PlotSquared.debug("There was an error updating the database."); - PlotSquared.debug(" - It will be corrected on shutdown"); - PlotSquared.debug("========================================"); + logger.error("[P2] ============ DATABASE ERROR ============"); + logger.error("[P2] There was an error updating the database."); + logger.error("[P2] - It will be corrected on shutdown"); + logger.error("[P2] ========================================"); e.printStackTrace(); - PlotSquared.debug("========================================"); + logger.error("[P2] ========================================"); } } if (statement != null && task != null) { @@ -515,12 +520,12 @@ public class SQLManager implements AbstractDB { } lastTask = task; } catch (Throwable e) { - PlotSquared.debug("============ DATABASE ERROR ============"); - PlotSquared.debug("There was an error updating the database."); - PlotSquared.debug(" - It will be corrected on shutdown"); - PlotSquared.debug("========================================"); + logger.error("[P2] ============ DATABASE ERROR ============"); + logger.error("[P2] There was an error updating the database."); + logger.error("[P2] - It will be corrected on shutdown"); + logger.error("[P2] ========================================"); e.printStackTrace(); - PlotSquared.debug("========================================"); + logger.error("[P2] ========================================"); } } if (statement != null && task != null) { @@ -544,12 +549,12 @@ public class SQLManager implements AbstractDB { this.plotTasks.clear(); } } catch (Throwable e) { - PlotSquared.debug("============ DATABASE ERROR ============"); - PlotSquared.debug("There was an error updating the database."); - PlotSquared.debug(" - It will be corrected on shutdown"); - PlotSquared.debug("========================================"); + logger.error("[P2] ============ DATABASE ERROR ============"); + logger.error("[P2] There was an error updating the database."); + logger.error("[P2] - It will be corrected on shutdown"); + logger.error("[P2] ========================================"); e.printStackTrace(); - PlotSquared.debug("========================================"); + logger.error("[P2] ========================================"); } return false; } @@ -637,9 +642,7 @@ public class SQLManager implements AbstractDB { } }))))); } catch (SQLException e) { - e.printStackTrace(); - PlotSquared - .debug("&7[WARN] Failed to set all flags and member tiers for plots"); + logger.warn("[P2] Failed to set all flags and member tiers for plots", e); try { SQLManager.this.connection.commit(); } catch (SQLException e1) { @@ -648,8 +651,7 @@ public class SQLManager implements AbstractDB { } }); } catch (Exception e) { - e.printStackTrace(); - PlotSquared.debug("&7[WARN] Failed to set all helpers for plots"); + logger.warn("[P2] Warning! Failed to set all helper for plots", e); try { SQLManager.this.connection.commit(); } catch (SQLException e1) { @@ -718,21 +720,19 @@ public class SQLManager implements AbstractDB { try { preparedStatement.executeBatch(); } catch (final Exception e) { - PlotSquared.log(Captions.PREFIX.getTranslated() - + "Failed to store flag values for plot with entry ID: " + plot.getId()); + logger.error("[P2] Failed to store flag values for plot with entry ID: {}", plot); e.printStackTrace(); continue; } - PlotSquared.debug(Captions.PREFIX.getTranslated() - + "- Finished converting flags for plot with entry ID: " + plot.getId()); + if (Settings.DEBUG) { + logger.info("[P2] - Finished converting flag values for plot with entry ID: {}", + plot.getId()); + } } } catch (final Exception e) { - PlotSquared.log(Captions.PREFIX.getTranslated() + "Failed to store flag values:"); - e.printStackTrace(); + logger.error("[P2] Failed to store flag values", e); } - PlotSquared.log( - Captions.PREFIX.getTranslated() + "Finished converting flags (" + plots.size() - + " plots processed)"); + logger.info("[P2] Finished converting flags ({} plots processed)", plots.size()); whenDone.run(); } @@ -840,8 +840,6 @@ public class SQLManager implements AbstractDB { last = subList.size(); preparedStmt.addBatch(); } - PlotSquared.debug( - "&aBatch 1: " + count + " | " + objList.get(0).getClass().getCanonicalName()); preparedStmt.executeBatch(); preparedStmt.clearParameters(); preparedStmt.close(); @@ -851,8 +849,8 @@ public class SQLManager implements AbstractDB { return; } catch (SQLException e) { if (this.mySQL) { + logger.error("[P2] 1: | {}", objList.get(0).getClass().getCanonicalName()); e.printStackTrace(); - PlotSquared.debug("&cERROR 1: | " + objList.get(0).getClass().getCanonicalName()); } } try { @@ -884,26 +882,23 @@ public class SQLManager implements AbstractDB { last = subList.size(); preparedStmt.addBatch(); } - PlotSquared.debug( - "&aBatch 2: " + count + " | " + objList.get(0).getClass().getCanonicalName()); preparedStmt.executeBatch(); preparedStmt.clearParameters(); preparedStmt.close(); } catch (SQLException e) { e.printStackTrace(); - PlotSquared.debug("&cERROR 2: | " + objList.get(0).getClass().getCanonicalName()); - PlotSquared.debug("&6[WARN] Could not bulk save!"); + logger.error("[P2] 2: | {}", objList.get(0).getClass().getCanonicalName()); + logger.error("[P2] Could not bulk save!"); try (PreparedStatement preparedStmt = this.connection .prepareStatement(mod.getCreateSQL())) { for (T obj : objList) { mod.setSQL(preparedStmt, obj); preparedStmt.addBatch(); } - PlotSquared.debug("&aBatch 3"); preparedStmt.executeBatch(); } catch (SQLException e3) { + logger.error("[P2] Failed to save all", e); e3.printStackTrace(); - PlotSquared.debug("&c[ERROR] Failed to save all!"); } } if (whenDone != null) { @@ -954,9 +949,7 @@ public class SQLManager implements AbstractDB { try { preparedStatement.executeBatch(); } catch (final Exception e) { - PlotSquared.log(Captions.PREFIX.getTranslated() - + "Failed to store settings values for plot with entry ID: " - + legacySettings.id); + logger.error("[P2] Failed to store settings for plot with entry ID: {}", legacySettings.id); e.printStackTrace(); continue; } @@ -968,18 +961,13 @@ public class SQLManager implements AbstractDB { try { preparedStatement.executeBatch(); } catch (final Exception e) { - PlotSquared - .log(Captions.PREFIX.getTranslated() + "Failed to store settings values"); - e.printStackTrace(); + logger.error("[P2] Failed to store settings", e); } } } catch (final Exception e) { - PlotSquared.log(Captions.PREFIX.getTranslated() + "Failed to store settings values:"); - e.printStackTrace(); + logger.error("[P2] Failed to store settings", e); } - PlotSquared.log( - Captions.PREFIX.getTranslated() + "Finished converting settings (" + myList.size() - + " plots processed)"); + logger.info("[P2] Finished converting settihgs ({} plots processed)", myList.size()); whenDone.run(); } @@ -1158,7 +1146,6 @@ public class SQLManager implements AbstractDB { return; } boolean addConstraint = create == tables.length; - PlotSquared.debug("Creating tables"); try (Statement stmt = this.connection.createStatement()) { if (this.mySQL) { stmt.addBatch("CREATE TABLE IF NOT EXISTS `" + this.prefix + "plot` (" @@ -1398,9 +1385,6 @@ public class SQLManager implements AbstractDB { * @param plot */ @Override public void delete(final Plot plot) { - PlotSquared.debug( - "Deleting plot... Id: " + plot.getId() + " World: " + plot.getWorldName() + " Owner: " - + plot.getOwnerAbs() + " Index: " + plot.temp); deleteSettings(plot); deleteDenied(plot); deleteHelpers(plot); @@ -1426,9 +1410,6 @@ public class SQLManager implements AbstractDB { * @param plot */ @Override public void createPlotSettings(final int id, Plot plot) { - PlotSquared.debug( - "Creating plot... Id: " + plot.getId() + " World: " + plot.getWorldName() + " Owner: " - + plot.getOwnerAbs() + " Index: " + id); addPlotTask(plot, new UniqueStatement("createPlotSettings") { @Override public void set(PreparedStatement statement) throws SQLException { statement.setInt(1, id); @@ -1586,7 +1567,6 @@ public class SQLManager implements AbstractDB { "SELECT plot_plot_id, user_uuid, COUNT(*) FROM " + this.prefix + table + " GROUP BY plot_plot_id, user_uuid HAVING COUNT(*) > 1"); if (result.next()) { - PlotSquared.debug("BACKING UP: " + this.prefix + table); result.close(); statement.executeUpdate( "CREATE TABLE " + this.prefix + table + "_tmp AS SELECT * FROM " @@ -1596,7 +1576,6 @@ public class SQLManager implements AbstractDB { "CREATE TABLE " + this.prefix + table + " AS SELECT * FROM " + this.prefix + table + "_tmp"); statement.executeUpdate("DROP TABLE " + this.prefix + table + "_tmp"); - PlotSquared.debug("RESTORING: " + this.prefix + table); } } } catch (SQLException e2) { @@ -1660,40 +1639,20 @@ public class SQLManager implements AbstractDB { try { String flag_str = split[1].replaceAll("¯", ":").replaceAll("\u00B4", ","); - /*PlotFlag flag = GlobalFlagContainer.getInstance().getFlagFromString(split[0]); - if (flag == null) { - PlotSquared.log(Captions.PREFIX.getTranslated() + "Flag not found and therefore ignored: " + split[0]); - continue; - }*/ flagMap.get(id).put(split[0], flag_str); } catch (Exception e) { e.printStackTrace(); } - } /*else { - element = element.replaceAll("\u00AF", ":").replaceAll("\u00B4", ","); - if (StringMan - .isAlpha(element.replaceAll("_", "").replaceAll("-", ""))) { - PlotFlag flag = GlobalFlagContainer.getInstance().getFlagFromString(element); - if (flag == null) { - PlotSquared.log(Captions.PREFIX.getTranslated() + "Flag not found and therefore ignored: " + element); - } - } else { - PlotSquared.log(Captions.PREFIX.getTranslated() + "INVALID FLAG: " + element); - } - }*/ + } } } } } catch (final Exception e) { - PlotSquared.log(Captions.PREFIX.getTranslated() + "Failed to load old flag values:"); - e.printStackTrace(); + logger.error("[P2] Failed to load old flag values", e); return false; } - PlotSquared.log(Captions.PREFIX.getTranslated() + "Loaded " + flagMap.size() - + " plot flag collections..."); - PlotSquared.log(Captions.PREFIX.getTranslated() - + "Attempting to store these flags in the new table..."); - // + logger.info("[P2] Loaded {} plot flag collections...", flagMap.size()); + logger.info("[P2] Attempting to store these flags in the new table..."); try (final PreparedStatement preparedStatement = this.connection.prepareStatement( "INSERT INTO `" + SQLManager.this.prefix + "plot_flags`(`plot_id`, `flag`, `value`) VALUES(?, ?, ?)")) { @@ -1721,9 +1680,7 @@ public class SQLManager implements AbstractDB { try { preparedStatement.executeBatch(); } catch (final Exception e) { - PlotSquared.log(Captions.PREFIX.getTranslated() - + "Failed to store flag values for plot with entry ID: " + plotFlagEntry - .getKey()); + logger.error("[P2] Failed to store flag values for plot with entry ID: {}", plotFlagEntry.getKey()); e.printStackTrace(); continue; } @@ -1731,19 +1688,17 @@ public class SQLManager implements AbstractDB { if (System.currentTimeMillis() - timeStarted >= 1000L || plotsProcessed >= flagMap .size()) { timeStarted = System.currentTimeMillis(); - PlotSquared.log( - Captions.PREFIX.getTranslated() + "... Flag conversion in progress. " - + String.format("%.1f", ((float) flagsProcessed / totalFlags) * 100) - + "% Done"); + logger.info("[P2] ... Flag conversion in progress. {}% done", + String.format("%.1f", ((float) flagsProcessed / totalFlags) * 100)); } - PlotSquared.debug(Captions.PREFIX.getTranslated() - + "- Finished converting flags for plot with entry ID: " + plotFlagEntry - .getKey()); + if (Settings.DEBUG) { + logger.info("[P2] - Finished converting flags for plot with entry ID: {}", + plotFlagEntry.getKey()); + } } } catch (final Exception e) { - PlotSquared.log(Captions.PREFIX.getTranslated() + "Failed to store flag values:"); - e.printStackTrace(); + logger.error("[P2] Failed to store flag values", e); return false; } return true; @@ -1834,9 +1789,8 @@ public class SQLManager implements AbstractDB { time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(parsable) .getTime(); } catch (ParseException e) { - PlotSquared.debug( - "Could not parse date for plot: #" + id + "(" + areaID + ";" - + plot_id + ") (" + parsable + ")"); + logger.error("[P2] Could not parse date for plot: #{}({};{}) ({})", + id, areaID, plot_id, parsable); time = System.currentTimeMillis() + id; } } @@ -1849,10 +1803,9 @@ public class SQLManager implements AbstractDB { if (last != null) { if (Settings.Enabled_Components.DATABASE_PURGER) { toDelete.add(last.temp); - } else { - PlotSquared.debug( - "&cPLOT #" + id + "(" + last + ") in `" + this.prefix - + "plot` is a duplicate. Delete this plot or set `database-purger: true` in the settings.yml."); + } else if (Settings.DEBUG) { + logger.info("[P2] Plot #{}({}) in `{}plot` is a duplicate." + + " Delete this plot or set `database-purger: true` in the settings.yml", id, last, this.prefix); } } } else { @@ -1882,10 +1835,9 @@ public class SQLManager implements AbstractDB { plot.getSettings().getRatings().put(user, r.getInt("rating")); } else if (Settings.Enabled_Components.DATABASE_PURGER) { toDelete.add(id); - } else { - PlotSquared.debug("&cENTRY #" + id + "(" + plot - + ") in `plot_rating` does not exist. Create this plot or set `database-purger: true` in the " - + "settings.yml."); + } else if (Settings.DEBUG) { + logger.info("[P2] Entry #{}({}) in `plot_rating` does not exist." + + " Create this plot or set `database-purger: true` in settings.yml", id, plot); } } deleteRows(toDelete, this.prefix + "plot_rating", "plot_plot_id"); @@ -1911,10 +1863,9 @@ public class SQLManager implements AbstractDB { plot.getTrusted().add(user); } else if (Settings.Enabled_Components.DATABASE_PURGER) { toDelete.add(id); - } else { - PlotSquared.debug("&cENTRY #" + id + "(" + plot - + ") in `plot_helpers` does not exist. Create this plot or set `database-purger: true` in the settings" - + ".yml."); + } else if (Settings.DEBUG) { + logger.info("[P2] Entry #{}({}) in `plot_helpers` does not exist." + + " Create this plot or set `database-purger: true` in settings.yml", id, plot); } } deleteRows(toDelete, this.prefix + "plot_helpers", "plot_plot_id"); @@ -1939,10 +1890,9 @@ public class SQLManager implements AbstractDB { plot.getMembers().add(user); } else if (Settings.Enabled_Components.DATABASE_PURGER) { toDelete.add(id); - } else { - PlotSquared.debug("&cENTRY #" + id + "(" + plot - + ") in `plot_trusted` does not exist. Create this plot or set `database-purger: true` in the settings" - + ".yml."); + } else if (Settings.DEBUG) { + logger.info("[P2] Entry #{}({}) in `plot_trusted` does not exist." + + " Create this plot or set `database-purger: true` in settings.yml", id, plot); } } deleteRows(toDelete, this.prefix + "plot_trusted", "plot_plot_id"); @@ -1967,9 +1917,9 @@ public class SQLManager implements AbstractDB { plot.getDenied().add(user); } else if (Settings.Enabled_Components.DATABASE_PURGER) { toDelete.add(id); - } else { - PlotSquared.debug("&cENTRY " + id - + " in `plot_denied` does not exist. Create this plot or set `database-purger: true` in the settings.yml."); + } else if (Settings.DEBUG) { + logger.info("[P2] Entry #{}({}) in `plot_denied` does not exist." + + " Create this plot or set `database-purger: true` in settings.yml", id, plot); } } deleteRows(toDelete, this.prefix + "plot_denied", "plot_plot_id"); @@ -1990,19 +1940,15 @@ public class SQLManager implements AbstractDB { final PlotFlag plotFlag = GlobalFlagContainer.getInstance().getFlagFromString(flag); if (plotFlag == null) { - PlotSquared.debug("Adding unknown flag to plot with ID " + id); plot.getFlagContainer().addUnknownFlag(flag, value); } else { try { plot.getFlagContainer().addFlag(plotFlag.parse(value)); } catch (final FlagParseException e) { e.printStackTrace(); - PlotSquared - .debug("Plot with ID " + id + " has an invalid value:"); - PlotSquared.debug(Captions.FLAG_PARSE_ERROR.getTranslated() - .replace("%flag_name%", plotFlag.getName()) - .replace("%flag_value%", e.getValue()) - .replace("%error%", e.getErrorMessage())); + logger.error("[P2] Plot with ID {} has an invalid value:", id); + logger.error("[P2] Failed to parse flag '{}', value '{}': {}", + plotFlag.getName(), e.getValue(), e.getErrorMessage()); if (!invalidFlags.containsKey(plot)) { invalidFlags.put(plot, new ArrayList<>()); } @@ -2011,9 +1957,9 @@ public class SQLManager implements AbstractDB { } } else if (Settings.Enabled_Components.DATABASE_PURGER) { toDelete.add(id); - } else { - PlotSquared.debug("&cPlot " + id - + " in `plot_flags` does not exist. Create this plot or set `database-purger: true` in the settings.yml."); + } else if (Settings.DEBUG) { + logger.info("[P2] Entry #{}({}) in `plot_flags` does not exist." + + " Create this plot or set `database-purger: true` in settings.yml", id, plot); } } BlockTypeListFlag.skipCategoryVerification = @@ -2022,9 +1968,11 @@ public class SQLManager implements AbstractDB { for (final Map.Entry>> plotFlagEntry : invalidFlags .entrySet()) { for (final PlotFlag flag : plotFlagEntry.getValue()) { - PlotSquared.debug("&cPlot \"" + plotFlagEntry.getKey() + "\"" - + " had an invalid flag (" + flag.getName() - + "). A fix has been attempted."); + if (Settings.DEBUG) { + logger.info( + "Plot {} has an invalid flag ({}). A fix has been attempted", + plotFlagEntry.getKey(), flag.getName()); + } removeFlag(plotFlagEntry.getKey(), flag); } } @@ -2065,10 +2013,9 @@ public class SQLManager implements AbstractDB { plot.getSettings().setMerged(merged); } else if (Settings.Enabled_Components.DATABASE_PURGER) { toDelete.add(id); - } else { - PlotSquared.debug("&cENTRY #" + id + "(" + plot - + ") in `plot_settings` does not exist. Create this plot or set `database-purger: true` in the settings" - + ".yml."); + } else if (Settings.DEBUG) { + logger.info("[P2] Entry #{}({}) in `plot_settings` does not exist." + + " Create this plot or set `database-purger: true` in settings.yml", id, plot); } } deleteRows(toDelete, this.prefix + "plot_settings", "plot_plot_id"); @@ -2084,16 +2031,16 @@ public class SQLManager implements AbstractDB { for (Entry entry : noExist.entrySet()) { String worldName = entry.getKey(); invalidPlot = true; - PlotSquared.debug("&c[WARNING] Found " + entry.getValue().intValue() - + " plots in DB for non existent world; '" + worldName + "'."); + if (Settings.DEBUG) { + logger.info("[P2] Warning! Found {} plots in DB for non existent world: '{}'", + entry.getValue().intValue(), worldName); + } } - if (invalidPlot) { - PlotSquared.debug( - "&c[WARNING] - Please create the world/s or remove the plots using the purge command"); + if (invalidPlot && Settings.DEBUG) { + logger.info("[P2] Warning! Please create the world(s) or remove the plots using the purge command"); } } catch (SQLException e) { - PlotSquared.debug("&7[WARN] Failed to load plots."); - e.printStackTrace(); + logger.error("[P2] Failed to load plots", e); } return newPlots; } @@ -2134,9 +2081,7 @@ public class SQLManager implements AbstractDB { preparedStatement.setInt(3, id2); preparedStatement.execute(); } catch (final Exception e) { - PlotSquared.log( - Captions.PREFIX.getTranslated() + "Failed to persist swap of " + plot1 + " and " - + plot2 + "!"); + logger.error("[P2] Failed to persist wap of {} and {}", plot1, plot2); e.printStackTrace(); future.complete(false); return; @@ -2234,8 +2179,6 @@ public class SQLManager implements AbstractDB { int count = 0; int last = -1; for (int j = 0; j <= amount; j++) { - int purging = Math.max(j * packet, size); - PlotSquared.debug("Purging " + purging + " / " + size); List subList = uniqueIdsList.subList(j * packet, Math.min(size, (j + 1) * packet)); if (subList.isEmpty()) { @@ -2281,12 +2224,13 @@ public class SQLManager implements AbstractDB { commit(); } } catch (SQLException e) { - e.printStackTrace(); - PlotSquared.debug("&c[ERROR] FAILED TO PURGE PLOTS!"); + logger.error("[P2] Failed to purge plots", e); return; } } - PlotSquared.debug("&6[INFO] SUCCESSFULLY PURGED " + uniqueIds.size() + " PLOTS!"); + if (Settings.DEBUG) { + logger.info("[P2] Successfully purged {} plots", uniqueIds.size()); + } } }); } @@ -2309,8 +2253,8 @@ public class SQLManager implements AbstractDB { } purgeIds(ids); } catch (SQLException e) { + logger.error("[P2] Failed to purge area '{}'", area); e.printStackTrace(); - PlotSquared.debug("&c[ERROR] FAILED TO PURGE AREA '" + area + "'!"); } for (Iterator iterator = plots.iterator(); iterator.hasNext(); ) { PlotId plotId = iterator.next(); @@ -2566,8 +2510,7 @@ public class SQLManager implements AbstractDB { } } } catch (SQLException e) { - PlotSquared - .debug("&7[WARN] Failed to fetch rating for plot " + plot.getId().toString()); + logger.error("[P2] Failed to fetch rating for plot {}", plot.getId().toString()); e.printStackTrace(); } return map; @@ -2786,9 +2729,9 @@ public class SQLManager implements AbstractDB { cluster = clusters.get(id); if (cluster != null) { cluster.helpers.add(user); - } else { - PlotSquared.debug("&cCluster #" + id + "(" + cluster - + ") in cluster_helpers does not exist. Please create the cluster or remove this entry."); + } else if (Settings.DEBUG) { + logger.warn("[P2] Cluster #{}({}) in cluster_helpers does not exist." + + " Please create the cluster or remove this entry", id, cluster); } } // Getting invited @@ -2805,9 +2748,9 @@ public class SQLManager implements AbstractDB { cluster = clusters.get(id); if (cluster != null) { cluster.invited.add(user); - } else { - PlotSquared.debug("&cCluster #" + id + "(" + cluster - + ") in cluster_invited does not exist. Please create the cluster or remove this entry."); + } else if (Settings.DEBUG) { + logger.warn("[P2] Cluster #{}({}) in cluster_helpers does not exist." + + " Please create the cluster or remove this entry", id, cluster); } } resultSet = @@ -2840,9 +2783,9 @@ public class SQLManager implements AbstractDB { merged[3 - i] = (m & 1 << i) != 0; } cluster.settings.setMerged(merged); - } else { - PlotSquared.debug("&cCluster #" + id + "(" + cluster - + ") in cluster_settings does not exist. Please create the cluster or remove this entry."); + } else if (Settings.DEBUG) { + logger.warn("[P2] Cluster #{}({}) in cluster_helpers does not exist." + + " Please create the cluster or remove this entry", id, cluster); } } resultSet.close(); @@ -2851,16 +2794,13 @@ public class SQLManager implements AbstractDB { for (Entry entry : noExist.entrySet()) { String a = entry.getKey(); invalidPlot = true; - PlotSquared.debug("&c[WARNING] Found " + noExist.get(a) - + " clusters in DB for non existent area; '" + a + "'."); + logger.warn("[P2] Warning! Found {} clusters in DB for non existent area; '{}'", noExist.get(a), a); } if (invalidPlot) { - PlotSquared.debug( - "&c[WARNING] - Please create the world/s or remove the clusters using the purge command"); + logger.warn("[P2] Warning! Please create the world(s) or remove the clusters using the purge command"); } } catch (SQLException e) { - PlotSquared.debug("&7[WARN] Failed to load clusters."); - e.printStackTrace(); + logger.error("[P2] Failed to load clusters", e); } return newClusters; } @@ -3052,8 +2992,7 @@ public class SQLManager implements AbstractDB { if (!isValid()) { reconnect(); } - PlotSquared.debug( - "$1All DB transactions during this session are being validated (This may take a while if corrections need to be made)"); + logger.info("[P2] All DB transactions during this session are being validated (This may take a while if corrections need to be made)"); commit(); while (true) { if (!sendBatch()) { @@ -3074,31 +3013,27 @@ public class SQLManager implements AbstractDB { continue; } if (plot.getArea() == null) { - PlotSquared.debug("CRITICAL ERROR IN VALIDATION TASK!"); - PlotSquared.debug("PLOT AREA CANNOT BE NULL! SKIPPING PLOT!"); + logger.error("[P2] CRITICAL ERROR IN VALIDATION TASK!"); + logger.error("[P2] PLOT AREA CANNOT BE NULL! SKIPPING PLOT!"); continue; } if (database == null) { - PlotSquared.debug("CRITICAL ERROR IN VALIDATION TASK!"); - PlotSquared.debug("DATABASE VARIABLE CANNOT BE NULL! NOW ENDING VALIDATION!!"); + logger.error("[P2] CRITICAL ERROR IN VALIDATION TASK!"); + logger.error("[P2] DATABASE VARIABLE CANNOT BE NULL! NOW ENDING VALIDATION!"); break; } HashMap worldPlots = database.get(plot.getArea().toString()); if (worldPlots == null) { - PlotSquared.debug("&8 - &7Creating plot (1): " + plot); toCreate.add(plot); continue; } Plot dataPlot = worldPlots.remove(plot.getId()); if (dataPlot == null) { - PlotSquared.debug("&8 - &7Creating plot (2): " + plot); toCreate.add(plot); continue; } // owner if (!plot.getOwnerAbs().equals(dataPlot.getOwnerAbs())) { - PlotSquared.debug("&8 - &7Setting owner: " + plot + " -> " + MainUtil - .getName(plot.getOwnerAbs())); setOwner(plot, plot.getOwnerAbs()); } // trusted @@ -3107,9 +3042,6 @@ public class SQLManager implements AbstractDB { HashSet toRemove = (HashSet) dataPlot.getTrusted().clone(); toRemove.removeAll(plot.getTrusted()); toAdd.removeAll(dataPlot.getTrusted()); - PlotSquared.debug( - "&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " trusted for: " - + plot); if (!toRemove.isEmpty()) { for (UUID uuid : toRemove) { removeTrusted(plot, uuid); @@ -3126,9 +3058,6 @@ public class SQLManager implements AbstractDB { HashSet toRemove = (HashSet) dataPlot.getMembers().clone(); toRemove.removeAll(plot.getMembers()); toAdd.removeAll(dataPlot.getMembers()); - PlotSquared.debug( - "&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " members for: " - + plot); if (!toRemove.isEmpty()) { for (UUID uuid : toRemove) { removeMember(plot, uuid); @@ -3145,9 +3074,6 @@ public class SQLManager implements AbstractDB { HashSet toRemove = (HashSet) dataPlot.getDenied().clone(); toRemove.removeAll(plot.getDenied()); toAdd.removeAll(dataPlot.getDenied()); - PlotSquared.debug( - "&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " denied for: " - + plot); if (!toRemove.isEmpty()) { for (UUID uuid : toRemove) { removeDenied(plot, uuid); @@ -3162,7 +3088,6 @@ public class SQLManager implements AbstractDB { boolean[] pm = plot.getMerged(); boolean[] dm = dataPlot.getMerged(); if (pm[0] != dm[0] || pm[1] != dm[1]) { - PlotSquared.debug(" - Correcting merge for: " + plot); setMerged(dataPlot, plot.getMerged()); } Set> pf = plot.getFlags(); @@ -3170,7 +3095,6 @@ public class SQLManager implements AbstractDB { if (!pf.isEmpty() && !df.isEmpty()) { if (pf.size() != df.size() || !StringMan .isEqual(StringMan.joinOrdered(pf, ","), StringMan.joinOrdered(df, ","))) { - PlotSquared.debug(" - Correcting flags for: " + plot); // setFlags(plot, pf); // TODO: Re-implement } @@ -3181,8 +3105,7 @@ public class SQLManager implements AbstractDB { HashMap map = entry.getValue(); if (!map.isEmpty()) { for (Entry entry2 : map.entrySet()) { - PlotSquared.debug("$1Plot was deleted: " + entry2.getValue().toString() - + "// TODO implement this when sure safe"); + // TODO implement this when sure safe" } } } diff --git a/Core/src/main/java/com/plotsquared/core/database/SQLite.java b/Core/src/main/java/com/plotsquared/core/database/SQLite.java index 7c6ea7d49..71bdafd88 100644 --- a/Core/src/main/java/com/plotsquared/core/database/SQLite.java +++ b/Core/src/main/java/com/plotsquared/core/database/SQLite.java @@ -26,6 +26,8 @@ package com.plotsquared.core.database; import com.plotsquared.core.PlotSquared; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.File; import java.io.IOException; @@ -40,6 +42,8 @@ import java.sql.Statement; */ public class SQLite extends Database { + private static final Logger logger = LoggerFactory.getLogger("P2/" + SQLite.class.getSimpleName()); + private final String dbLocation; private Connection connection; @@ -64,7 +68,7 @@ public class SQLite extends Database { try { file.createNewFile(); } catch (IOException ignored) { - PlotSquared.debug("&cUnable to create database!"); + logger.error("[P2] Unable to create database"); } } Class.forName("org.sqlite.JDBC"); diff --git a/Core/src/main/java/com/plotsquared/core/generator/HybridPlotWorld.java b/Core/src/main/java/com/plotsquared/core/generator/HybridPlotWorld.java index b8031bc2b..a4a0d3a28 100644 --- a/Core/src/main/java/com/plotsquared/core/generator/HybridPlotWorld.java +++ b/Core/src/main/java/com/plotsquared/core/generator/HybridPlotWorld.java @@ -27,7 +27,6 @@ package com.plotsquared.core.generator; import com.google.inject.assistedinject.Assisted; import com.plotsquared.core.PlotSquared; -import com.plotsquared.core.configuration.Captions; import com.plotsquared.core.configuration.ConfigurationSection; import com.plotsquared.core.configuration.Settings; import com.plotsquared.core.configuration.file.YamlConfiguration; @@ -59,6 +58,8 @@ import com.sk89q.worldedit.world.block.BaseBlock; import lombok.Getter; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.inject.Inject; import java.io.File; @@ -68,7 +69,8 @@ import java.util.Locale; public class HybridPlotWorld extends ClassicPlotWorld { - private static AffineTransform transform = new AffineTransform().rotateY(90); + private static final Logger logger = LoggerFactory.getLogger("P2/" + HybridPlotWorld.class.getSimpleName()); + private static final AffineTransform transform = new AffineTransform().rotateY(90); public boolean ROAD_SCHEMATIC_ENABLED; public boolean PLOT_SCHEMATIC = false; public int PLOT_SCHEMATIC_HEIGHT = -1; @@ -179,13 +181,11 @@ public class HybridPlotWorld extends ClassicPlotWorld { setupSchematics(); } catch (Exception event) { event.printStackTrace(); - PlotSquared.debug("&c - road schematics are disabled for this world."); } // Dump world settings if (Settings.DEBUG) { - PlotSquared.debug(String.format("- Dumping settings for ClassicPlotWorld with name %s", - this.getWorldName())); + logger.info("[P2] - Dumping settings for ClassicPlotWorld with name {}", this.getWorldName()); final Field[] fields = this.getClass().getFields(); for (final Field field : fields) { final String name = field.getName().toLowerCase(Locale.ENGLISH); @@ -201,7 +201,7 @@ public class HybridPlotWorld extends ClassicPlotWorld { } catch (final IllegalAccessException e) { value = String.format("Failed to parse: %s", e.getMessage()); } - PlotSquared.debug(String.format("-- %s = %s", name, value)); + logger.info("[P2] -- {} = {}", name, value); } } } @@ -301,10 +301,14 @@ public class HybridPlotWorld extends ClassicPlotWorld { } } - PlotSquared.debug(Captions.PREFIX + "&3 - plot schematic: &7" + schematic3File.getPath()); + if (Settings.DEBUG) { + logger.info("[P2] - plot schematic: {}", schematic3File.getPath()); + } } if (schematic1 == null || schematic2 == null || this.ROAD_WIDTH == 0) { - PlotSquared.debug(Captions.PREFIX + "&3 - schematic: &7false"); + if (Settings.DEBUG) { + logger.info("[P2] - schematic: false"); + } return; } this.ROAD_SCHEMATIC_ENABLED = true; @@ -380,7 +384,7 @@ public class HybridPlotWorld extends ClassicPlotWorld { int pair = MathMan.pair(x, z); BaseBlock[] existing = this.G_SCH.computeIfAbsent(pair, k -> new BaseBlock[height]); if (y >= height) { - PlotSquared.log("Error adding overlay block. `y > height` "); + logger.error("[P2] Error adding overlay block. `y > height`"); return; } existing[y] = id; diff --git a/Core/src/main/java/com/plotsquared/core/generator/HybridUtils.java b/Core/src/main/java/com/plotsquared/core/generator/HybridUtils.java index bb5e0db42..30586db05 100644 --- a/Core/src/main/java/com/plotsquared/core/generator/HybridUtils.java +++ b/Core/src/main/java/com/plotsquared/core/generator/HybridUtils.java @@ -63,6 +63,8 @@ import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.annotation.Nonnull; import java.io.File; @@ -79,6 +81,9 @@ import java.util.concurrent.atomic.AtomicInteger; public class HybridUtils { + private static final Logger logger = LoggerFactory.getLogger("P2/" + HybridUtils.class.getSimpleName()); + + public static HybridUtils manager; public static Set regions; public static int height; public static Set chunks = new HashSet<>(); @@ -433,24 +438,25 @@ public class HybridUtils { BlockVector2 chunk = iter.next(); iter.remove(); boolean regenedRoad = regenerateRoad(area, chunk, extend); - if (!regenedRoad) { - PlotSquared.debug("Failed to regenerate roads."); + if (!regenedRoad && Settings.DEBUG) { + logger.info("[P2] Failed to regenerate roads"); } chunkManager.unloadChunk(area.getWorldName(), chunk, true); } - PlotSquared.debug("Cancelled road task"); + if (Settings.DEBUG) { + logger.info("[P2] Cancelled road task"); + } return; } count.incrementAndGet(); if (count.intValue() % 20 == 0) { - PlotSquared.debug("PROGRESS: " + 100 * (2048 - chunks.size()) / 2048 + "%"); + logger.info("[P2] Progress: {}%", 100 * (2048 - chunks.size()) / 2048); } if (HybridUtils.regions.isEmpty() && chunks.isEmpty()) { - PlotSquared.debug("Regenerating plot walls"); regeneratePlotWalls(area); HybridUtils.UPDATE = false; - PlotSquared.log("Finished road conversion"); + logger.info("[P2] Finished road conversion"); // CANCEL TASK } else { final Runnable task = this; @@ -462,11 +468,11 @@ public class HybridUtils { HybridUtils.regions.iterator(); BlockVector2 loc = iterator.next(); iterator.remove(); - PlotSquared.debug( - "Updating .mcr: " + loc.getX() + ", " + loc.getZ() - + " (approx 1024 chunks)"); - PlotSquared - .debug(" - Remaining: " + HybridUtils.regions.size()); + if (Settings.DEBUG) { + logger.info("[P2] Updating .mcr: {}, {} (approx 1024 chunks)", + loc.getX(), loc.getZ()); + logger.info("[P2] - Remaining: {}", HybridUtils.regions.size()); + } chunks.addAll(getChunks(loc)); System.gc(); } @@ -482,8 +488,8 @@ public class HybridUtils { iterator.remove(); boolean regenedRoads = regenerateRoad(area, chunk, extend); - if (!regenedRoads) { - PlotSquared.debug("Failed to regenerate road."); + if (!regenedRoads && Settings.DEBUG) { + logger.info("[P2] Failed to regenerate road"); } } } @@ -494,9 +500,8 @@ public class HybridUtils { Iterator iterator = HybridUtils.regions.iterator(); BlockVector2 loc = iterator.next(); iterator.remove(); - PlotSquared.debug( - "[ERROR] Could not update '" + area.getWorldName() + "/region/r." - + loc.getX() + "." + loc.getZ() + ".mca' (Corrupt chunk?)"); + logger.error("[P2] Error! Could not update '{}/region/r.{}.{}.mca' (Corrupt chunk?)", + area.getWorldHash(), loc.getX(), loc.getZ()); int sx = loc.getX() << 5; int sz = loc.getZ() << 5; for (int x = sx; x < sx + 32; x++) { @@ -505,8 +510,6 @@ public class HybridUtils { true); } } - PlotSquared.debug(" - Potentially skipping 1024 chunks"); - PlotSquared.debug(" - TODO: recommend chunkster if corrupt"); } blockQueue.addEmptyTask(() -> TaskManager.runTaskLater(task, 20)); }); diff --git a/Core/src/main/java/com/plotsquared/core/generator/SquarePlotManager.java b/Core/src/main/java/com/plotsquared/core/generator/SquarePlotManager.java index 41edc7603..27e093f1b 100644 --- a/Core/src/main/java/com/plotsquared/core/generator/SquarePlotManager.java +++ b/Core/src/main/java/com/plotsquared/core/generator/SquarePlotManager.java @@ -25,7 +25,6 @@ */ package com.plotsquared.core.generator; -import com.plotsquared.core.PlotSquared; import com.plotsquared.core.location.Direction; import com.plotsquared.core.location.Location; import com.plotsquared.core.plot.Plot; @@ -34,9 +33,10 @@ import com.plotsquared.core.plot.PlotId; import com.plotsquared.core.util.MainUtil; import com.plotsquared.core.util.RegionManager; import com.sk89q.worldedit.regions.CuboidRegion; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.annotation.Nonnull; -import java.util.Arrays; import java.util.Iterator; import java.util.Set; @@ -45,6 +45,8 @@ import java.util.Set; */ public abstract class SquarePlotManager extends GridPlotManager { + private static final Logger logger = LoggerFactory.getLogger("P2/" + SquarePlotManager.class.getSimpleName()); + private final SquarePlotWorld squarePlotWorld; private final RegionManager regionManager; @@ -227,11 +229,9 @@ public abstract class SquarePlotManager extends GridPlotManager { // northwest return plot.getMerged(Direction.NORTHWEST) ? id : null; } - PlotSquared.debug("invalid location: " + Arrays.toString(merged)); } catch (Exception ignored) { - PlotSquared.debug( - "Invalid plot / road width in settings.yml for world: " + squarePlotWorld - .getWorldName()); + logger.error( "Invalid plot / road width in settings.yml for world: {}", squarePlotWorld + .getWorldName()); } return null; } diff --git a/Core/src/main/java/com/plotsquared/core/generator/SquarePlotWorld.java b/Core/src/main/java/com/plotsquared/core/generator/SquarePlotWorld.java index 3d25ae1db..7215f94c6 100644 --- a/Core/src/main/java/com/plotsquared/core/generator/SquarePlotWorld.java +++ b/Core/src/main/java/com/plotsquared/core/generator/SquarePlotWorld.java @@ -25,8 +25,8 @@ */ package com.plotsquared.core.generator; -import com.plotsquared.core.PlotSquared; import com.plotsquared.core.configuration.ConfigurationSection; +import com.plotsquared.core.configuration.Settings; import com.plotsquared.core.configuration.file.YamlConfiguration; import com.plotsquared.core.inject.annotations.WorldConfig; import com.plotsquared.core.plot.PlotId; @@ -34,9 +34,13 @@ import com.plotsquared.core.queue.GlobalBlockQueue; import com.plotsquared.core.util.EconHandler; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public abstract class SquarePlotWorld extends GridPlotWorld { + private static final Logger logger = LoggerFactory.getLogger("P2/" + SquarePlotWorld.class.getSimpleName()); + public int PLOT_WIDTH = 42; public int ROAD_WIDTH = 7; public int ROAD_OFFSET_X = 0; @@ -55,7 +59,10 @@ public abstract class SquarePlotWorld extends GridPlotWorld { @Override public void loadConfiguration(ConfigurationSection config) { if (!config.contains("plot.height")) { - PlotSquared.debug(" - &cConfiguration is null? (" + config.getCurrentPath() + ')'); + if (Settings.DEBUG) { + logger.info("[P2] - Configuration is null? ({})", config.getCurrentPath()); + } + } this.PLOT_WIDTH = config.getInt("plot.size"); this.ROAD_WIDTH = config.getInt("road.width"); diff --git a/Core/src/main/java/com/plotsquared/core/listener/ProcessedWEExtent.java b/Core/src/main/java/com/plotsquared/core/listener/ProcessedWEExtent.java index 5d9de3ba3..fafaa9b1b 100644 --- a/Core/src/main/java/com/plotsquared/core/listener/ProcessedWEExtent.java +++ b/Core/src/main/java/com/plotsquared/core/listener/ProcessedWEExtent.java @@ -25,8 +25,6 @@ */ package com.plotsquared.core.listener; -import com.plotsquared.core.PlotSquared; -import com.plotsquared.core.configuration.Captions; import com.plotsquared.core.configuration.Settings; import com.plotsquared.core.util.WEManager; import com.plotsquared.core.util.WorldUtil; @@ -44,6 +42,8 @@ import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockStateHolder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.annotation.Nonnull; import java.lang.reflect.Field; @@ -53,6 +53,8 @@ import java.util.Set; public class ProcessedWEExtent extends AbstractDelegateExtent { + private static final Logger logger = LoggerFactory.getLogger("P2/" + ProcessedWEExtent.class.getSimpleName()); + private final Set mask; private final String world; private final int max; @@ -104,8 +106,6 @@ public class ProcessedWEExtent extends AbstractDelegateExtent { return false; } else { tileEntityCount[0]++; - PlotSquared.debug(Captions.PREFIX + "&cDetected unsafe WorldEdit: " + location.getX() + "," - + location.getZ()); } } if (WEManager.maskContains(this.mask, location.getX(), location.getY(), location.getZ())) { @@ -136,9 +136,6 @@ public class ProcessedWEExtent extends AbstractDelegateExtent { this.Ecount++; if (this.Ecount > Settings.Chunk_Processor.MAX_ENTITIES) { this.Eblocked = true; - PlotSquared.debug( - Captions.PREFIX + "&cDetected unsafe WorldEdit: " + location.getBlockX() + "," - + location.getBlockZ()); } if (WEManager.maskContains(this.mask, location.getBlockX(), location.getBlockY(), location.getBlockZ())) { diff --git a/Core/src/main/java/com/plotsquared/core/player/ConsolePlayer.java b/Core/src/main/java/com/plotsquared/core/player/ConsolePlayer.java index 271a15e56..c6efe33cd 100644 --- a/Core/src/main/java/com/plotsquared/core/player/ConsolePlayer.java +++ b/Core/src/main/java/com/plotsquared/core/player/ConsolePlayer.java @@ -44,11 +44,14 @@ import com.sk89q.worldedit.world.gamemode.GameModes; import com.sk89q.worldedit.world.item.ItemType; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.UUID; public class ConsolePlayer extends PlotPlayer { + private static final Logger logger = LoggerFactory.getLogger("P2/" + ConsolePlayer.class.getSimpleName()); private static ConsolePlayer instance; private final Actor actor; @@ -127,7 +130,7 @@ public class ConsolePlayer extends PlotPlayer { } @Override public void sendMessage(String message) { - PlotSquared.log(message); + logger.info(message); } @Override public void teleport(Location location, TeleportCause cause) { diff --git a/Core/src/main/java/com/plotsquared/core/player/PlotPlayer.java b/Core/src/main/java/com/plotsquared/core/player/PlotPlayer.java index 9ce053985..7b4c8f530 100644 --- a/Core/src/main/java/com/plotsquared/core/player/PlotPlayer.java +++ b/Core/src/main/java/com/plotsquared/core/player/PlotPlayer.java @@ -56,6 +56,8 @@ import com.sk89q.worldedit.world.gamemode.GameMode; import com.sk89q.worldedit.world.item.ItemType; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.nio.ByteBuffer; import java.util.Collection; @@ -74,6 +76,8 @@ import java.util.concurrent.atomic.AtomicInteger; */ public abstract class PlotPlayer

implements CommandCaller, OfflinePlotPlayer { + private static final Logger logger = LoggerFactory.getLogger("P2/" + PlotPlayer.class.getSimpleName()); + public static final String META_LAST_PLOT = "lastplot"; public static final String META_LOCATION = "location"; @@ -87,11 +91,11 @@ public abstract class PlotPlayer

implements CommandCaller, OfflinePlotPlayer */ private ConcurrentHashMap meta; private int hash; - + private final PlotAreaManager plotAreaManager; private final EventDispatcher eventDispatcher; private final EconHandler econHandler; - + public PlotPlayer(@Nonnull final PlotAreaManager plotAreaManager, @Nonnull final EventDispatcher eventDispatcher, @Nullable final EconHandler econHandler) { this.plotAreaManager = plotAreaManager; this.eventDispatcher = eventDispatcher; @@ -591,9 +595,9 @@ public abstract class PlotPlayer

implements CommandCaller, OfflinePlotPlayer if (Settings.Enabled_Components.BAN_DELETER && isBanned()) { for (Plot owned : getPlots()) { owned.deletePlot(null); - PlotSquared.debug(String - .format("&cPlot &6%s &cwas deleted + cleared due to &6%s&c getting banned", - plot.getId(), getName())); + if (Settings.DEBUG) { + logger.info("[P2] Plot {} was deleted + cleared due to {} getting banned", owned.getId(), getName()); + } } } if (ExpireManager.IMP != null) { diff --git a/Core/src/main/java/com/plotsquared/core/plot/Plot.java b/Core/src/main/java/com/plotsquared/core/plot/Plot.java index 885078f06..70f39aa08 100644 --- a/Core/src/main/java/com/plotsquared/core/plot/Plot.java +++ b/Core/src/main/java/com/plotsquared/core/plot/Plot.java @@ -77,6 +77,8 @@ import com.sk89q.worldedit.world.block.BlockTypes; import lombok.Getter; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.awt.geom.Area; import java.awt.geom.PathIterator; @@ -121,6 +123,8 @@ import static com.plotsquared.core.util.entity.EntityCategories.CAP_VEHICLE; */ public class Plot { + private static final Logger logger = LoggerFactory.getLogger("P2/" + Plot.class.getSimpleName()); + public static final int MAX_HEIGHT = 256; private static Set connected_cache; @@ -1735,9 +1739,6 @@ public class Plot { public boolean claim(@Nonnull final PlotPlayer player, boolean teleport, String schematic) { if (!canClaim(player)) { - PlotSquared.debug(Captions.PREFIX.getTranslated() + String - .format("Player %s attempted to claim plot %s, but was not allowed", - player.getName(), this.getId().toCommaSeparatedString())); return false; } return claim(player, teleport, schematic, true); @@ -1748,9 +1749,8 @@ public class Plot { if (updateDB) { if (!create(player.getUUID(), true)) { - PlotSquared.debug(Captions.PREFIX.getTranslated() + String.format( - "Player %s attempted to claim plot %s, but the database failed to update", - player.getName(), this.getId().toCommaSeparatedString())); + logger.error("[P2] Player {} attempted to claim plot {}, but the database failed to update", + player.getName(), this.getId().toCommaSeparatedString()); return false; } } else { @@ -1838,9 +1838,8 @@ public class Plot { }); return true; } - PlotSquared.get().getLogger().log(Captions.PREFIX.getTranslated() + String - .format("Failed to add plot %s to plot area %s", this.getId().toCommaSeparatedString(), - this.area.toString())); + logger.info("[P2] Failed to add plot {} to plot area {}", + this.getId().toCommaSeparatedString(), this.area.toString()); return false; } @@ -1934,12 +1933,10 @@ public class Plot { */ public boolean moveData(Plot plot, Runnable whenDone) { if (!this.hasOwner()) { - PlotSquared.debug(plot + " is unowned (single)"); TaskManager.runTask(whenDone); return false; } if (plot.hasOwner()) { - PlotSquared.debug(plot + " is unowned (multi)"); TaskManager.runTask(whenDone); return false; } @@ -2645,7 +2642,6 @@ public class Plot { tmp = this.area.getPlotAbs(this.id.getRelative(Direction.NORTH)); if (!tmp.getMerged(Direction.SOUTH)) { // invalid merge - PlotSquared.debug("Fixing invalid merge: " + this); if (tmp.isOwnerAbs(this.getOwnerAbs())) { tmp.getSettings().setMerged(Direction.SOUTH, true); DBFunc.setMerged(tmp, tmp.getSettings().getMerged()); @@ -2662,7 +2658,6 @@ public class Plot { assert tmp != null; if (!tmp.getMerged(Direction.WEST)) { // invalid merge - PlotSquared.debug("Fixing invalid merge: " + this); if (tmp.isOwnerAbs(this.getOwnerAbs())) { tmp.getSettings().setMerged(Direction.WEST, true); DBFunc.setMerged(tmp, tmp.getSettings().getMerged()); @@ -2679,7 +2674,6 @@ public class Plot { assert tmp != null; if (!tmp.getMerged(Direction.NORTH)) { // invalid merge - PlotSquared.debug("Fixing invalid merge: " + this); if (tmp.isOwnerAbs(this.getOwnerAbs())) { tmp.getSettings().setMerged(Direction.NORTH, true); DBFunc.setMerged(tmp, tmp.getSettings().getMerged()); @@ -2695,7 +2689,6 @@ public class Plot { tmp = this.area.getPlotAbs(this.id.getRelative(Direction.WEST)); if (!tmp.getMerged(Direction.EAST)) { // invalid merge - PlotSquared.debug("Fixing invalid merge: " + this); if (tmp.isOwnerAbs(this.getOwnerAbs())) { tmp.getSettings().setMerged(Direction.EAST, true); DBFunc.setMerged(tmp, tmp.getSettings().getMerged()); @@ -2710,10 +2703,6 @@ public class Plot { Plot current; while ((current = frontier.poll()) != null) { if (!current.hasOwner() || current.settings == null) { - // Invalid plot - // merged onto unclaimed plot - PlotSquared.debug( - "Ignoring invalid merged plot: " + current + " | " + current.getOwnerAbs()); continue; } tmpSet.add(current); diff --git a/Core/src/main/java/com/plotsquared/core/plot/PlotArea.java b/Core/src/main/java/com/plotsquared/core/plot/PlotArea.java index 86bb07791..9ad26c0aa 100644 --- a/Core/src/main/java/com/plotsquared/core/plot/PlotArea.java +++ b/Core/src/main/java/com/plotsquared/core/plot/PlotArea.java @@ -68,6 +68,8 @@ import lombok.Getter; import lombok.Setter; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.Collection; @@ -87,6 +89,8 @@ import java.util.function.Consumer; */ public abstract class PlotArea { + private static final Logger logger = LoggerFactory.getLogger("P2/" + PlotArea.class.getSimpleName()); + protected final ConcurrentHashMap plots = new ConcurrentHashMap<>(); @Getter @Nonnull private final String worldName; @Getter private final String id; @@ -381,7 +385,6 @@ public abstract class PlotArea { } } - PlotSquared.log(Captions.PREFIX + "&3 - default flags: &7" + flagBuilder.toString()); this.spawnEggs = config.getBoolean("event.spawn.egg"); this.spawnCustom = config.getBoolean("event.spawn.custom"); this.spawnBreeding = config.getBoolean("event.spawn.breeding"); @@ -417,7 +420,8 @@ public abstract class PlotArea { prefix = ", "; } } - PlotSquared.log(Captions.PREFIX + "&3 - road flags: &7" + roadFlagBuilder.toString()); + + logger.info("[P2] - road flags: {}", roadFlagBuilder.toString()); loadConfiguration(config); } @@ -1113,10 +1117,12 @@ public abstract class PlotArea { try { flags.add(flagInstance.parse(split[1])); } catch (final FlagParseException e) { - PlotSquared.log(Captions.PREFIX.getTranslated() + String.format( - "§cFailed to parse default flag with key §6'%s'§c and value: §6'%s'§c." - + " Reason: %s. This flag will not be added as a default flag.", - e.getFlag().getName(), e.getValue(), e.getErrorMessage())); + logger.warn("[P2] Failed to parse default flag with key '{}' and value '{}'. " + + "Reason: {}. This flag will not be added as a default flag.", + e.getFlag().getName(), + e.getValue(), + e.getErrorMessage()); + e.printStackTrace(); } } } diff --git a/Core/src/main/java/com/plotsquared/core/plot/PlotInventory.java b/Core/src/main/java/com/plotsquared/core/plot/PlotInventory.java index df6155b4e..a810093b0 100644 --- a/Core/src/main/java/com/plotsquared/core/plot/PlotInventory.java +++ b/Core/src/main/java/com/plotsquared/core/plot/PlotInventory.java @@ -25,14 +25,17 @@ */ package com.plotsquared.core.plot; -import com.plotsquared.core.PlotSquared; import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.util.InventoryUtil; import javax.annotation.Nonnull; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class PlotInventory { + private static final Logger logger = LoggerFactory.getLogger("P2/" + PlotInventory.class.getSimpleName()); + private static final String META_KEY = "inventory"; public final PlotPlayer player; public final int size; @@ -40,7 +43,7 @@ public class PlotInventory { private String title; private boolean open = false; private final InventoryUtil inventoryUtil; - + public PlotInventory(@Nonnull final InventoryUtil inventoryUtil, PlotPlayer player, int size, String name) { this.size = size; @@ -75,10 +78,7 @@ public class PlotInventory { if (this.title == null) { return; } - if (hasPlotInventoryOpen(player)) { - PlotSquared.debug(String.format("Failed to open plot inventory for %s " - + "because the player already has an open plot inventory", player.getName())); - } else { + if (!hasPlotInventoryOpen(player)) { this.open = true; setPlotInventoryOpen(player, this); this.inventoryUtil.open(this); diff --git a/Core/src/main/java/com/plotsquared/core/plot/expiration/ExpireManager.java b/Core/src/main/java/com/plotsquared/core/plot/expiration/ExpireManager.java index 6448a1b6c..e805ff87a 100644 --- a/Core/src/main/java/com/plotsquared/core/plot/expiration/ExpireManager.java +++ b/Core/src/main/java/com/plotsquared/core/plot/expiration/ExpireManager.java @@ -48,6 +48,8 @@ import com.plotsquared.core.util.query.PlotQuery; import com.plotsquared.core.util.task.RunnableVal; import com.plotsquared.core.util.task.RunnableVal3; import com.plotsquared.core.util.task.TaskManager; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.annotation.Nonnull; import java.util.ArrayDeque; @@ -57,20 +59,21 @@ import java.util.Collections; import java.util.HashSet; import java.util.Iterator; import java.util.Objects; -import java.util.Set; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentLinkedDeque; public class ExpireManager { + private final Logger logger = LoggerFactory.getLogger("P2/" + ExpireManager.class); + public static ExpireManager IMP; private final ConcurrentHashMap dates_cache; private final ConcurrentHashMap account_age_cache; private final EventDispatcher eventDispatcher; private volatile HashSet plotsToDelete; private ArrayDeque tasks; - + /** * 0 = stopped, 1 = stopping, 2 = running */ @@ -84,7 +87,6 @@ public class ExpireManager { } public void addTask(ExpiryTask task) { - PlotSquared.debug("Adding new expiry task!"); this.tasks.add(task); } @@ -425,21 +427,7 @@ public class ExpireManager { MainUtil.sendMessage(player, Captions.PLOT_REMOVED_USER, plot.toString()); } } - Set plots = plot.getConnectedPlots(); plot.deletePlot(whenDone); - PlotAnalysis changed = plot.getComplexity(null); - int changes = changed == null ? 0 : changed.changes_sd; - int modified = changed == null ? 0 : changed.changes; - PlotSquared.debug( - "$2[&5Expire&dManager$2] &cDeleted expired plot: " + plot + " User:" + plot.getOwner() - + " Delta:" + changes + "/" + modified + " Connected: " + StringMan - .getString(plots)); - PlotSquared.debug("$4 - Area: " + plot.getArea()); - if (plot.hasOwner()) { - PlotSquared.debug("$4 - Owner: " + plot.getOwner()); - } else { - PlotSquared.debug("$4 - Owner: Unowned"); - } } public long getAge(UUID uuid) { diff --git a/Core/src/main/java/com/plotsquared/core/plot/expiration/PlotAnalysis.java b/Core/src/main/java/com/plotsquared/core/plot/expiration/PlotAnalysis.java index 9ef1ff446..49a202fcb 100644 --- a/Core/src/main/java/com/plotsquared/core/plot/expiration/PlotAnalysis.java +++ b/Core/src/main/java/com/plotsquared/core/plot/expiration/PlotAnalysis.java @@ -34,6 +34,8 @@ import com.plotsquared.core.util.MathMan; import com.plotsquared.core.util.query.PlotQuery; import com.plotsquared.core.util.task.RunnableVal; import com.plotsquared.core.util.task.TaskManager; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.lang.reflect.Array; import java.util.ArrayDeque; @@ -44,6 +46,9 @@ import java.util.List; import java.util.concurrent.atomic.AtomicInteger; public class PlotAnalysis { + + private static final Logger logger = LoggerFactory.getLogger("P2/" + PlotAnalysis.class.getSimpleName()); + public static boolean running = false; public int changes; public int faces; @@ -92,22 +97,26 @@ public class PlotAnalysis { */ public static void calcOptimalModifiers(final Runnable whenDone, final double threshold) { if (running) { - PlotSquared.debug("Calibration task already in progress!"); + if (Settings.DEBUG) { + logger.info("[P2] Calibration task already in progress!"); + } return; } if (threshold <= 0 || threshold >= 1) { - PlotSquared.debug( - "Invalid threshold provided! (Cannot be 0 or 100 as then there's no point calibrating)"); + if (Settings.DEBUG) { + logger.info( + "Invalid threshold provided! (Cannot be 0 or 100 as then there's no point in calibrating)"); + } return; } running = true; - PlotSquared.debug(" - Fetching all plots"); final List plots = PlotQuery.newQuery().allPlots().asList(); TaskManager.runTaskAsync(new Runnable() { @Override public void run() { Iterator iterator = plots.iterator(); - PlotSquared.debug( - " - $1Reducing " + plots.size() + " plots to those with sufficient data"); + if (Settings.DEBUG) { + logger.info("[P2] - Reducing {} plots to those with sufficient data", plots.size()); + } while (iterator.hasNext()) { Plot plot = iterator.next(); if (plot.getSettings().getRatings() == null || plot.getSettings().getRatings() @@ -117,11 +126,12 @@ public class PlotAnalysis { plot.addRunning(); } } - PlotSquared.debug(" - | Reduced to " + plots.size() + " plots"); if (plots.size() < 3) { - PlotSquared.debug( - "Calibration cancelled due to insufficient comparison data, please try again later"); + if (Settings.DEBUG) { + logger.info( + "Calibration cancelled due to insufficient comparison data, please try again later"); + } running = false; for (Plot plot : plots) { plot.removeRunning(); @@ -129,7 +139,9 @@ public class PlotAnalysis { return; } - PlotSquared.debug(" - $1Analyzing plot contents (this may take a while)"); + if (Settings.DEBUG) { + logger.info("[P2] - Analyzing plot contents (this may take a while)"); + } int[] changes = new int[plots.size()]; int[] faces = new int[plots.size()]; @@ -155,7 +167,9 @@ public class PlotAnalysis { ratings[i] = (int) ( (plot.getAverageRating() + plot.getSettings().getRatings().size()) * 100); - PlotSquared.debug(" | " + plot + " (rating) " + ratings[i]); + if (Settings.DEBUG) { + logger.info("[P2] | {} (rating) {}", plot, ratings[i]); + } } } }); @@ -167,7 +181,9 @@ public class PlotAnalysis { if (queuePlot == null) { break; } - PlotSquared.debug(" | " + queuePlot); + if (Settings.DEBUG) { + logger.info("[P2] | {}", queuePlot); + } final Object lock = new Object(); TaskManager.runTask(new Runnable() { @Override public void run() { @@ -197,20 +213,25 @@ public class PlotAnalysis { } } - PlotSquared.debug( - " - $1Waiting on plot rating thread: " + mi.intValue() * 100 / plots.size() - + "%"); + if (Settings.DEBUG) { + logger.info("[P2] - Waiting on plot rating thread: {}%", mi.intValue() * 100 / plots.size()); + } + try { ratingAnalysis.join(); } catch (InterruptedException e) { e.printStackTrace(); } - PlotSquared - .debug(" - $1Processing and grouping single plot analysis for bulk processing"); + if (Settings.DEBUG) { + logger.info( + " - Processing and grouping single plot analysis for bulk processing"); + } for (int i = 0; i < plots.size(); i++) { Plot plot = plots.get(i); - PlotSquared.debug(" | " + plot); + if (Settings.DEBUG) { + logger.info("[P2] | {}", plot); + } PlotAnalysis analysis = plot.getComplexity(null); changes[i] = analysis.changes; @@ -226,18 +247,22 @@ public class PlotAnalysis { variety_sd[i] = analysis.variety_sd; } - PlotSquared.debug(" - $1Calculating rankings"); + if (Settings.DEBUG) { + logger.info("[P2] - Calculating rankings"); + } int[] rankRatings = rank(ratings); int n = rankRatings.length; int optimalIndex = (int) Math.round((1 - threshold) * (n - 1)); - PlotSquared.debug(" - $1Calculating rank correlation: "); - PlotSquared.debug( - " - The analyzed plots which were processed and put into bulk data will be compared and correlated to the plot ranking"); - PlotSquared.debug( - " - The calculated correlation constant will then be used to calibrate the threshold for auto plot clearing"); + if (Settings.DEBUG) { + logger.info("[P2] - Calculating rank correlation: "); + logger.info( + " - The analyzed plots which were processed and put into bulk data will be compared and correlated to the plot ranking"); + logger.info( + " - The calculated correlation constant will then be used to calibrate the threshold for auto plot clearing"); + } Settings.Auto_Clear settings = new Settings.Auto_Clear(); @@ -249,7 +274,10 @@ public class PlotAnalysis { settings.CALIBRATION.CHANGES = factorChanges == 1 ? 0 : (int) (factorChanges * 1000 / MathMan.getMean(changes)); - PlotSquared.debug(" - | changes " + factorChanges); + + if (Settings.DEBUG) { + logger.info("[P2] - | changes {}", factorChanges); + } int[] rankFaces = rank(faces); int[] sdFaces = getSD(rankFaces, rankRatings); @@ -258,7 +286,10 @@ public class PlotAnalysis { double factorFaces = getCC(n, sumFaces); settings.CALIBRATION.FACES = factorFaces == 1 ? 0 : (int) (factorFaces * 1000 / MathMan.getMean(faces)); - PlotSquared.debug(" - | faces " + factorFaces); + + if (Settings.DEBUG) { + logger.info("[P2] - | faces {}", factorFaces); + } int[] rankData = rank(data); int[] sdData = getSD(rankData, rankRatings); @@ -267,7 +298,10 @@ public class PlotAnalysis { double factor_data = getCC(n, sum_data); settings.CALIBRATION.DATA = factor_data == 1 ? 0 : (int) (factor_data * 1000 / MathMan.getMean(data)); - PlotSquared.debug(" - | data " + factor_data); + + if (Settings.DEBUG) { + logger.info("[P2] - | data {}", factor_data); + } int[] rank_air = rank(air); int[] sd_air = getSD(rank_air, rankRatings); @@ -276,7 +310,10 @@ public class PlotAnalysis { double factor_air = getCC(n, sum_air); settings.CALIBRATION.AIR = factor_air == 1 ? 0 : (int) (factor_air * 1000 / MathMan.getMean(air)); - PlotSquared.debug(" - | air " + factor_air); + + if (Settings.DEBUG) { + logger.info("[P2] - | air {}", factor_air); + } int[] rank_variety = rank(variety); int[] sd_variety = getSD(rank_variety, rankRatings); @@ -286,7 +323,10 @@ public class PlotAnalysis { settings.CALIBRATION.VARIETY = factor_variety == 1 ? 0 : (int) (factor_variety * 1000 / MathMan.getMean(variety)); - PlotSquared.debug(" - | variety " + factor_variety); + + if (Settings.DEBUG) { + logger.info("[P2] - | variety {}", factor_variety); + } int[] rank_changes_sd = rank(changes_sd); int[] sd_changes_sd = getSD(rank_changes_sd, rankRatings); @@ -296,7 +336,10 @@ public class PlotAnalysis { settings.CALIBRATION.CHANGES_SD = factor_changes_sd == 1 ? 0 : (int) (factor_changes_sd * 1000 / MathMan.getMean(changes_sd)); - PlotSquared.debug(" - | changes_sd " + factor_changes_sd); + + if (Settings.DEBUG) { + logger.info("[P2] - | changed_sd {}", factor_changes_sd); + } int[] rank_faces_sd = rank(faces_sd); int[] sd_faces_sd = getSD(rank_faces_sd, rankRatings); @@ -306,7 +349,10 @@ public class PlotAnalysis { settings.CALIBRATION.FACES_SD = factor_faces_sd == 1 ? 0 : (int) (factor_faces_sd * 1000 / MathMan.getMean(faces_sd)); - PlotSquared.debug(" - | faces_sd " + factor_faces_sd); + + if (Settings.DEBUG) { + logger.info("[P2] - | faced_sd {}", factor_faces_sd); + } int[] rank_data_sd = rank(data_sd); int[] sd_data_sd = getSD(rank_data_sd, rankRatings); @@ -316,7 +362,10 @@ public class PlotAnalysis { settings.CALIBRATION.DATA_SD = factor_data_sd == 1 ? 0 : (int) (factor_data_sd * 1000 / MathMan.getMean(data_sd)); - PlotSquared.debug(" - | data_sd " + factor_data_sd); + + if (Settings.DEBUG) { + logger.info("[P2] - | data_sd {}", factor_data_sd); + } int[] rank_air_sd = rank(air_sd); int[] sd_air_sd = getSD(rank_air_sd, rankRatings); @@ -325,7 +374,10 @@ public class PlotAnalysis { double factor_air_sd = getCC(n, sum_air_sd); settings.CALIBRATION.AIR_SD = factor_air_sd == 1 ? 0 : (int) (factor_air_sd * 1000 / MathMan.getMean(air_sd)); - PlotSquared.debug(" - | air_sd " + factor_air_sd); + + if (Settings.DEBUG) { + logger.info("[P2] - | air_sd {}", factor_air_sd); + } int[] rank_variety_sd = rank(variety_sd); int[] sd_variety_sd = getSD(rank_variety_sd, rankRatings); @@ -335,11 +387,17 @@ public class PlotAnalysis { settings.CALIBRATION.VARIETY_SD = factor_variety_sd == 1 ? 0 : (int) (factor_variety_sd * 1000 / MathMan.getMean(variety_sd)); - PlotSquared.debug(" - | variety_sd " + factor_variety_sd); + + if (Settings.DEBUG) { + logger.info("[P2] - | variety_sd {}", factor_variety_sd); + } int[] complexity = new int[n]; - PlotSquared.debug(" $1Calculating threshold"); + if (Settings.DEBUG) { + logger.info("[P2] Calculating threshold"); + } + int max = 0; int min = 0; for (int i = 0; i < n; i++) { @@ -368,9 +426,10 @@ public class PlotAnalysis { logln("Correlation: "); logln(getCC(n, sum(square(getSD(rankComplexity, rankRatings))))); if (optimalComplexity == Integer.MAX_VALUE) { - PlotSquared.debug( - "Insufficient data to determine correlation! " + optimalIndex + " | " - + n); + if (Settings.DEBUG) { + logger.info("[P2] Insufficient data to determine correlation! {} | {}", + optimalIndex, n); + } running = false; for (Plot plot : plots) { plot.removeRunning(); @@ -388,21 +447,27 @@ public class PlotAnalysis { } // Save calibration - PlotSquared.debug(" $1Saving calibration"); + if (Settings.DEBUG) { + logger.info("[P2] Saving calibration"); + } Settings.AUTO_CLEAR.put("auto-calibrated", settings); Settings.save(PlotSquared.get().getWorldsFile()); - PlotSquared.debug("$1Done!"); running = false; for (Plot plot : plots) { plot.removeRunning(); } + if (Settings.DEBUG) { + logger.info("[P2] Done!"); + } whenDone.run(); } }); } public static void logln(Object obj) { - PlotSquared.debug(log(obj)); + if (Settings.DEBUG) { + logger.info("[P2] " + log(obj)); + } } public static String log(Object obj) { diff --git a/Core/src/main/java/com/plotsquared/core/plot/flag/FlagContainer.java b/Core/src/main/java/com/plotsquared/core/plot/flag/FlagContainer.java index 5c11a258b..016ec4af8 100644 --- a/Core/src/main/java/com/plotsquared/core/plot/flag/FlagContainer.java +++ b/Core/src/main/java/com/plotsquared/core/plot/flag/FlagContainer.java @@ -27,9 +27,12 @@ package com.plotsquared.core.plot.flag; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; -import com.plotsquared.core.PlotSquared; import lombok.EqualsAndHashCode; import lombok.Setter; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -44,6 +47,8 @@ import java.util.Map; */ @EqualsAndHashCode(of = "flagMap") public class FlagContainer { + private static final Logger logger = LoggerFactory.getLogger("P2/" + FlagContainer.class.getSimpleName()); + private final Map unknownFlags = new HashMap<>(); private final Map, PlotFlag> flagMap = new HashMap<>(); private final PlotFlagUpdateHandler plotFlagUpdateHandler; @@ -145,11 +150,9 @@ import java.util.Map; this.updateSubscribers .forEach(subscriber -> subscriber.handle(flag, plotFlagUpdateType)); } catch (IllegalStateException e) { - PlotSquared.log(String.format( - "Flag '%s' (class: '%s') could not be added to the container" - + " because the flag name exceeded the allowed limit of 64 characters." - + " Please tell the developer of that flag to fix this.", flag.getName(), - flag.getClass().getName())); + logger.info("[P2] Flag {} (class '{}') could not be added to the container because the " + + "flag name exceeded the allowed limit of 64 characters. Please tell the developer " + + "of the flag to fix this.", flag.getName(), flag.getClass().getName()); e.printStackTrace(); } } diff --git a/Core/src/main/java/com/plotsquared/core/plot/flag/types/BlockTypeWrapper.java b/Core/src/main/java/com/plotsquared/core/plot/flag/types/BlockTypeWrapper.java index 4228ef7ad..11d31304f 100644 --- a/Core/src/main/java/com/plotsquared/core/plot/flag/types/BlockTypeWrapper.java +++ b/Core/src/main/java/com/plotsquared/core/plot/flag/types/BlockTypeWrapper.java @@ -27,13 +27,15 @@ package com.plotsquared.core.plot.flag.types; import com.google.common.base.Objects; import com.google.common.base.Preconditions; -import com.plotsquared.core.PlotSquared; +import com.plotsquared.core.configuration.Settings; import com.sk89q.worldedit.world.block.BlockCategory; import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockType; import lombok.Getter; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.HashMap; import java.util.Map; @@ -44,6 +46,8 @@ import java.util.Map; */ public class BlockTypeWrapper { + private static final Logger logger = LoggerFactory.getLogger("P2/" + BlockTypeWrapper.class.getSimpleName()); + private static final Map blockTypes = new HashMap<>(); private static final Map blockCategories = new HashMap<>(); @Nullable @Getter private final BlockType blockType; @@ -129,7 +133,9 @@ public class BlockTypeWrapper { && this.blockCategoryId != null) { // only if name is available this.blockCategory = BlockCategory.REGISTRY.get(this.blockCategoryId); if (this.blockCategory == null && !BlockCategory.REGISTRY.values().isEmpty()) { - PlotSquared.debug("- Block category #" + this.blockCategoryId + " does not exist"); + if (Settings.DEBUG) { + logger.info("[P2] - Block category #{} does not exist", this.blockCategoryId); + } this.blockCategory = new NullBlockCategory(this.blockCategoryId); } } diff --git a/Core/src/main/java/com/plotsquared/core/plot/message/PlotMessage.java b/Core/src/main/java/com/plotsquared/core/plot/message/PlotMessage.java index 608974bc9..e5d431935 100644 --- a/Core/src/main/java/com/plotsquared/core/plot/message/PlotMessage.java +++ b/Core/src/main/java/com/plotsquared/core/plot/message/PlotMessage.java @@ -29,18 +29,20 @@ import com.plotsquared.core.PlotSquared; import com.plotsquared.core.configuration.Captions; import com.plotsquared.core.player.PlotPlayer; import com.plotsquared.core.util.ChatManager; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class PlotMessage { + private static final Logger logger = LoggerFactory.getLogger("P2/" + PlotMessage.class.getSimpleName()); + private Object builder; public PlotMessage() { try { reset(ChatManager.manager); } catch (Throwable e) { - PlotSquared.debug( - PlotSquared.platform().getPluginName() + " doesn't support fancy chat for " + PlotSquared - .platform().getServerVersion()); + logger.error("[P2] {} doesn't support fancy chat for {}", PlotSquared.imp().getPluginName(), PlotSquared.get().IMP.getServerVersion()); ChatManager.manager = new PlainChatManager(); reset(ChatManager.manager); } diff --git a/Core/src/main/java/com/plotsquared/core/queue/LocationOffsetDelegateLocalBlockQueue.java b/Core/src/main/java/com/plotsquared/core/queue/LocationOffsetDelegateLocalBlockQueue.java index cea58a95d..eefae99d3 100644 --- a/Core/src/main/java/com/plotsquared/core/queue/LocationOffsetDelegateLocalBlockQueue.java +++ b/Core/src/main/java/com/plotsquared/core/queue/LocationOffsetDelegateLocalBlockQueue.java @@ -25,17 +25,20 @@ */ package com.plotsquared.core.queue; -import com.plotsquared.core.PlotSquared; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.annotation.Nullable; public class LocationOffsetDelegateLocalBlockQueue extends DelegateLocalBlockQueue { + private static final Logger logger = LoggerFactory.getLogger("P2/" + LocationOffsetDelegateLocalBlockQueue.class.getSimpleName()); + private final boolean[][] canPlace; private final int blockX; private final int blockZ; @@ -61,10 +64,6 @@ public class LocationOffsetDelegateLocalBlockQueue extends DelegateLocalBlockQue return super.setBlock(x, y, z, id); } } catch (final Exception e) { - PlotSquared.debug(String.format( - "Failed to set block at: %d;%d;%d (to = %s) with offset %d;%d." - + " Translated to: %d;%d", x, y, z, id, blockX, blockZ, x - blockX, - z - blockZ)); throw e; } return false; diff --git a/Core/src/main/java/com/plotsquared/core/util/Expression.java b/Core/src/main/java/com/plotsquared/core/util/Expression.java index 86bdeea2d..94d1aefc8 100644 --- a/Core/src/main/java/com/plotsquared/core/util/Expression.java +++ b/Core/src/main/java/com/plotsquared/core/util/Expression.java @@ -25,13 +25,18 @@ */ package com.plotsquared.core.util; -import com.plotsquared.core.PlotSquared; import com.plotsquared.core.command.DebugExec; import com.plotsquared.core.command.MainCommand; +import com.plotsquared.core.configuration.Settings; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.script.ScriptException; public abstract class Expression { + + private static final Logger logger = LoggerFactory.getLogger("P2/" + Expression.class.getSimpleName()); + public static Expression constant(final U value) { return new Expression() { @Override public U evaluate(U arg) { @@ -66,7 +71,9 @@ public abstract class Expression { try { return (Double) exec.getEngine().eval(expression.replace("{arg}", "" + arg)); } catch (ScriptException e) { - PlotSquared.debug("Invalid Expression: " + expression); + if (Settings.DEBUG) { + logger.info("[P2] Invalid expression: {}", expression); + } e.printStackTrace(); } return 0d; diff --git a/Core/src/main/java/com/plotsquared/core/util/LegacyConverter.java b/Core/src/main/java/com/plotsquared/core/util/LegacyConverter.java index fdff6c4a2..d940d49fe 100644 --- a/Core/src/main/java/com/plotsquared/core/util/LegacyConverter.java +++ b/Core/src/main/java/com/plotsquared/core/util/LegacyConverter.java @@ -25,7 +25,6 @@ */ package com.plotsquared.core.util; -import com.plotsquared.core.PlotSquared; import com.plotsquared.core.configuration.CaptionUtility; import com.plotsquared.core.configuration.Captions; import com.plotsquared.core.configuration.ConfigurationSection; @@ -33,6 +32,8 @@ import com.plotsquared.core.player.ConsolePlayer; import com.plotsquared.core.plot.BlockBucket; import com.sk89q.worldedit.world.block.BlockState; import javax.annotation.Nonnull; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.Collection; import java.util.HashMap; @@ -45,6 +46,7 @@ import java.util.Map; @SuppressWarnings("unused") public final class LegacyConverter { + private static final Logger logger = LoggerFactory.getLogger("P2/" + LegacyConverter.class.getSimpleName()); public static final String CONFIGURATION_VERSION = "post_flattening"; private static final HashMap TYPE_MAP = new HashMap<>(); @@ -109,7 +111,7 @@ public final class LegacyConverter { @Nonnull final String key, @Nonnull final String block) { final BlockBucket bucket = this.blockToBucket(block); this.setString(section, key, bucket); - PlotSquared.log(CaptionUtility + logger.info(CaptionUtility .format(ConsolePlayer.getConsole(), Captions.LEGACY_CONFIG_REPLACED.getTranslated(), block, bucket.toString())); } @@ -119,7 +121,7 @@ public final class LegacyConverter { final BlockState[] blocks = this.splitBlockList(blockList); final BlockBucket bucket = this.blockListToBucket(blocks); this.setString(section, key, bucket); - PlotSquared.log(CaptionUtility + logger.info(CaptionUtility .format(ConsolePlayer.getConsole(), Captions.LEGACY_CONFIG_REPLACED.getTranslated(), plotBlockArrayString(blocks), bucket.toString())); } diff --git a/Core/src/main/java/com/plotsquared/core/util/MainUtil.java b/Core/src/main/java/com/plotsquared/core/util/MainUtil.java index f8834a696..22e09bf9c 100644 --- a/Core/src/main/java/com/plotsquared/core/util/MainUtil.java +++ b/Core/src/main/java/com/plotsquared/core/util/MainUtil.java @@ -57,6 +57,8 @@ import com.sk89q.worldedit.regions.CuboidRegion; import com.sk89q.worldedit.world.biome.BiomeType; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.File; import java.io.IOException; @@ -98,6 +100,7 @@ import java.util.stream.IntStream; */ public class MainUtil { + private static final Logger logger = LoggerFactory.getLogger("P2/" + MainUtil.class.getSimpleName()); private static final DecimalFormat FLAG_DECIMAL_FORMAT = new DecimalFormat("0"); static { @@ -154,7 +157,6 @@ public class MainUtil { public static void upload(UUID uuid, String file, String extension, final RunnableVal writeTask, final RunnableVal whenDone) { if (writeTask == null) { - PlotSquared.debug("&cWrite task cannot be null"); TaskManager.runTask(whenDone); return; } @@ -216,7 +218,6 @@ public class MainUtil { content = scanner.next().trim(); } if (!content.startsWith("<")) { - PlotSquared.debug(content); } int responseCode = ((HttpURLConnection) con).getResponseCode(); if (responseCode == 200) { @@ -539,7 +540,7 @@ public class MainUtil { if (arg == null) { if (player == null) { if (message) { - PlotSquared.log(Captions.NOT_VALID_PLOT_WORLD); + logger.info("[P2] No plot area string was supplied"); } return null; } @@ -662,7 +663,7 @@ public class MainUtil { if (player == null) { String message = CaptionUtility .format(null, (prefix ? Captions.PREFIX.getTranslated() : "") + msg); - PlotSquared.log(message); + logger.info(message); } else { player.sendMessage(CaptionUtility.format(player, (prefix ? Captions.PREFIX.getTranslated() : "") + Captions.color(msg))); @@ -697,7 +698,7 @@ public class MainUtil { TaskManager.runTaskAsync(() -> { String m = CaptionUtility.format(player, caption, args); if (player == null) { - PlotSquared.log(m); + logger.info(m); } else { player.sendMessage(m); } @@ -914,8 +915,6 @@ public class MainUtil { for (File file : files) { if (file.isDirectory()) { deleteDirectory(file); - } else { - PlotSquared.debug("Deleting file: " + file + " | " + file.delete()); } } } diff --git a/Core/src/main/java/com/plotsquared/core/util/RegionManager.java b/Core/src/main/java/com/plotsquared/core/util/RegionManager.java index c7bbb3b5a..743395523 100644 --- a/Core/src/main/java/com/plotsquared/core/util/RegionManager.java +++ b/Core/src/main/java/com/plotsquared/core/util/RegionManager.java @@ -37,6 +37,8 @@ import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.math.BlockVector2; import com.sk89q.worldedit.regions.CuboidRegion; import com.sk89q.worldedit.world.biome.BiomeType; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.annotation.Nonnull; import java.io.File; @@ -46,6 +48,10 @@ import java.util.Set; public abstract class RegionManager { + private static final Logger logger = LoggerFactory.getLogger("P2/" + RegionManager.class.getSimpleName()); + + public static RegionManager manager = null; + public static BlockVector2 getRegion(Location location) { int x = location.getX() >> 9; int z = location.getZ() >> 9; @@ -147,7 +153,7 @@ public abstract class RegionManager { world + File.separator + "region" + File.separator + "r." + loc.getX() + "." + loc.getZ() + ".mca"; File file = new File(PlotSquared.platform().getWorldContainer(), directory); - PlotSquared.log("&6 - Deleting file: " + file.getName() + " (max 1024 chunks)"); + logger.info("[P2] - Deleting file: {} (max 1024 chunks)", file.getName()); if (file.exists()) { file.delete(); } diff --git a/Core/src/main/java/com/plotsquared/core/util/SchematicHandler.java b/Core/src/main/java/com/plotsquared/core/util/SchematicHandler.java index 29f5d0013..7f933df24 100644 --- a/Core/src/main/java/com/plotsquared/core/util/SchematicHandler.java +++ b/Core/src/main/java/com/plotsquared/core/util/SchematicHandler.java @@ -61,6 +61,8 @@ import com.sk89q.worldedit.world.block.BaseBlock; import javax.annotation.Nonnull; import org.json.JSONArray; import org.json.JSONException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; @@ -94,6 +96,9 @@ import java.util.zip.GZIPOutputStream; public abstract class SchematicHandler { + private static final Logger logger = LoggerFactory.getLogger("P2/" + SchematicHandler.class.getSimpleName()); + public static SchematicHandler manager; + private boolean exportAll = false; private final WorldUtil worldUtil; @@ -151,17 +156,11 @@ public abstract class SchematicHandler { final Runnable THIS = this; getCompoundTag(plot, new RunnableVal() { @Override public void run(final CompoundTag value) { - if (value == null) { - MainUtil.sendMessage(null, "&7 - Skipped plot &c" + plot.getId()); - } else { + if (value != null) { TaskManager.runTaskAsync(() -> { - MainUtil.sendMessage(null, "&6ID: " + plot.getId()); boolean result = save(value, directory + File.separator + name + ".schem"); if (!result) { - MainUtil - .sendMessage(null, "&7 - Failed to save &c" + plot.getId()); - } else { - MainUtil.sendMessage(null, "&7 - &a success: " + plot.getId()); + logger.error("[P2] Failed to save {}", plot.getId()); } TaskManager.runTask(THIS); }); @@ -190,7 +189,6 @@ public abstract class SchematicHandler { whenDone.value = false; } if (schematic == null) { - PlotSquared.debug("Schematic == null :|"); TaskManager.runTask(whenDone); return; } @@ -206,12 +204,6 @@ public abstract class SchematicHandler { + 1) < WIDTH) || ( (region.getMaximumPoint().getZ() - region.getMinimumPoint().getZ() + zOffset + 1) < LENGTH) || (HEIGHT > 256)) { - PlotSquared.debug("Schematic is too large"); - PlotSquared.debug( - "(" + WIDTH + ',' + LENGTH + ',' + HEIGHT + ") is bigger than (" + ( - region.getMaximumPoint().getX() - region.getMinimumPoint().getX()) + ',' - + (region.getMaximumPoint().getZ() - region.getMinimumPoint().getZ()) - + ",256)"); TaskManager.runTask(whenDone); return; } @@ -409,8 +401,6 @@ public abstract class SchematicHandler { return new Schematic(clip); } catch (IOException e) { e.printStackTrace(); - PlotSquared.debug(is.toString() + " | " + is.getClass().getCanonicalName() - + " is not in GZIP format : " + e.getMessage()); } } return null; @@ -436,14 +426,12 @@ public abstract class SchematicHandler { return schematics; } catch (JSONException | IOException e) { e.printStackTrace(); - PlotSquared.debug("ERROR PARSING: " + rawJSON); } return null; } public void upload(final CompoundTag tag, UUID uuid, String file, RunnableVal whenDone) { if (tag == null) { - PlotSquared.debug("&cCannot save empty tag"); TaskManager.runTask(whenDone); return; } @@ -468,7 +456,6 @@ public abstract class SchematicHandler { */ public boolean save(CompoundTag tag, String path) { if (tag == null) { - PlotSquared.debug("&cCannot save empty tag"); return false; } try { diff --git a/Core/src/main/java/com/plotsquared/core/util/logger/ILogger.java b/Core/src/main/java/com/plotsquared/core/util/logger/ILogger.java index 3f9b3d598..c5e145812 100644 --- a/Core/src/main/java/com/plotsquared/core/util/logger/ILogger.java +++ b/Core/src/main/java/com/plotsquared/core/util/logger/ILogger.java @@ -25,6 +25,6 @@ */ package com.plotsquared.core.util.logger; -public interface ILogger { - void log(String message); +@Deprecated public interface ILogger { + @Deprecated void log(String message); } diff --git a/Core/src/main/java/com/plotsquared/core/util/net/IncendoPaster.java b/Core/src/main/java/com/plotsquared/core/util/net/IncendoPaster.java index 46ae63f7d..e37744590 100644 --- a/Core/src/main/java/com/plotsquared/core/util/net/IncendoPaster.java +++ b/Core/src/main/java/com/plotsquared/core/util/net/IncendoPaster.java @@ -26,7 +26,8 @@ package com.plotsquared.core.util.net; import com.google.common.base.Charsets; -import com.plotsquared.core.PlotSquared; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.BufferedReader; import java.io.InputStreamReader; @@ -47,6 +48,8 @@ import java.util.Locale; @SuppressWarnings({"unused", "WeakerAccess"}) public final class IncendoPaster { + private static Logger logger = LoggerFactory.getLogger("P2/" + IncendoPaster.class); + /** * Upload service URL */ @@ -158,7 +161,7 @@ public final class IncendoPaster { if (!httpURLConnection.getResponseMessage().contains("OK")) { if (httpURLConnection.getResponseCode() == 413) { final long size = content.length; - PlotSquared.debug(String.format("Paste Too Big > Size: %dMB", size / 1_000_000)); + logger.error("[P2] Paste too big > size: {}MB", size / 1_000_000); } throw new IllegalStateException(String .format("Server returned status: %d %s", httpURLConnection.getResponseCode(), diff --git a/Core/src/main/java/com/plotsquared/core/uuid/UUIDPipeline.java b/Core/src/main/java/com/plotsquared/core/uuid/UUIDPipeline.java index 839de3e49..5e92691b1 100644 --- a/Core/src/main/java/com/plotsquared/core/uuid/UUIDPipeline.java +++ b/Core/src/main/java/com/plotsquared/core/uuid/UUIDPipeline.java @@ -33,6 +33,8 @@ import com.plotsquared.core.util.ThreadUtils; import com.plotsquared.core.util.task.TaskManager; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.Collection; @@ -62,6 +64,8 @@ import java.util.function.Function; */ public class UUIDPipeline { + private static final Logger logger = LoggerFactory.getLogger("P2/" + UUIDPipeline.class.getSimpleName()); + private final Executor executor; private final List serviceList; private final List>> consumerList; @@ -164,7 +168,7 @@ public class UUIDPipeline { } catch (InterruptedException | ExecutionException e) { e.printStackTrace(); } catch (TimeoutException ignored) { - PlotSquared.log(Captions.PREFIX + " (UUID) Request for " + username + " timed out"); + logger.warn("[P2] (UUID) Request for {} timed out", username); // This is completely valid, we just don't care anymore } return null; @@ -187,7 +191,7 @@ public class UUIDPipeline { } catch (InterruptedException | ExecutionException e) { e.printStackTrace(); } catch (TimeoutException ignored) { - PlotSquared.log(Captions.PREFIX + " (UUID) Request for " + uuid + " timed out"); + logger.warn("[P2] (UUID) Request for {} timed out", uuid); // This is completely valid, we just don't care anymore } return null; @@ -321,7 +325,7 @@ public class UUIDPipeline { this.consume(mappings); return mappings; } else if (Settings.DEBUG) { - PlotSquared.log("Failed to find all usernames"); + logger.info("[P2] (UUID) Failed to find all usernames"); } if (Settings.UUID.UNKNOWN_AS_DEFAULT) { @@ -384,7 +388,7 @@ public class UUIDPipeline { this.consume(mappings); return mappings; } else if (Settings.DEBUG) { - PlotSquared.log("Failed to find all UUIDs"); + logger.info("[P2] (UUID) Failed to find all UUIDs"); } throw new ServiceError("End of pipeline");