Merge branch 'v6' into feature/v6/platform

# Conflicts:
#	Bukkit/build.gradle
#	Bukkit/src/main/java/com/plotsquared/bukkit/BukkitPlatform.java
#	Bukkit/src/main/java/com/plotsquared/bukkit/listener/ChunkListener.java
#	Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitRegionManager.java
#	Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitUtil.java
#	Bukkit/src/main/java/com/plotsquared/bukkit/uuid/SquirrelIdUUIDService.java
#	Core/build.gradle
#	Core/src/main/java/com/plotsquared/core/PlotSquared.java
#	Core/src/main/java/com/plotsquared/core/command/Claim.java
#	Core/src/main/java/com/plotsquared/core/command/Debug.java
#	Core/src/main/java/com/plotsquared/core/command/DebugExec.java
#	Core/src/main/java/com/plotsquared/core/command/Purge.java
#	Core/src/main/java/com/plotsquared/core/command/Trim.java
#	Core/src/main/java/com/plotsquared/core/components/ComponentPresetManager.java
#	Core/src/main/java/com/plotsquared/core/database/SQLManager.java
#	Core/src/main/java/com/plotsquared/core/generator/HybridPlotWorld.java
#	Core/src/main/java/com/plotsquared/core/generator/HybridUtils.java
#	Core/src/main/java/com/plotsquared/core/generator/SquarePlotManager.java
#	Core/src/main/java/com/plotsquared/core/generator/SquarePlotWorld.java
#	Core/src/main/java/com/plotsquared/core/listener/ProcessedWEExtent.java
#	Core/src/main/java/com/plotsquared/core/player/ConsolePlayer.java
#	Core/src/main/java/com/plotsquared/core/player/PlotPlayer.java
#	Core/src/main/java/com/plotsquared/core/plot/Plot.java
#	Core/src/main/java/com/plotsquared/core/plot/PlotArea.java
#	Core/src/main/java/com/plotsquared/core/plot/PlotInventory.java
#	Core/src/main/java/com/plotsquared/core/plot/expiration/ExpireManager.java
#	Core/src/main/java/com/plotsquared/core/plot/expiration/PlotAnalysis.java
#	Core/src/main/java/com/plotsquared/core/plot/flag/FlagContainer.java
#	Core/src/main/java/com/plotsquared/core/plot/flag/types/BlockTypeWrapper.java
#	Core/src/main/java/com/plotsquared/core/plot/message/PlotMessage.java
#	Core/src/main/java/com/plotsquared/core/util/LegacyConverter.java
#	Core/src/main/java/com/plotsquared/core/util/MainUtil.java
#	Core/src/main/java/com/plotsquared/core/util/RegionManager.java
#	Core/src/main/java/com/plotsquared/core/util/SchematicHandler.java
#	Core/src/main/java/com/plotsquared/core/uuid/UUIDPipeline.java
This commit is contained in:
Alexander Söderberg 2020-07-14 19:05:05 +02:00
commit 97fed21811
No known key found for this signature in database
GPG Key ID: C0207FF7EA146678
51 changed files with 673 additions and 678 deletions

View File

@ -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"
}

View File

@ -182,6 +182,12 @@
<version>4.0-dev-106</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.8.1</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>

View File

@ -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<Player> {
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<UUID> 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;
}

View File

@ -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
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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");
}
}

View File

@ -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))

View File

@ -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;
}

View File

@ -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<EntityWrapper> entities;
final Map<PlotLoc, BaseBlock[]> 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();

View File

@ -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);
}

View File

@ -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<UUIDMapping> 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) {

View File

@ -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

View File

@ -116,6 +116,12 @@
<version>1.7.0-SNAPSHOT</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.8.1</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>

View File

@ -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);
}
/**

View File

@ -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<Plot> EMPTY_SET = Collections.unmodifiableSet(Collections.emptySet());
private static PlotSquared instance;
// Implementation
@ -139,8 +150,6 @@ public class PlotSquared {
private HashMap<String, Set<PlotCluster>> clustersTmp;
public HashMap<String, HashMap<PlotId, Plot>> 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<PlotCluster> 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<int[]> regions = new ArrayList<>();
ArrayList<int[]> 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<String, Object> components = Settings.getFields(Settings.Enabled_Components.class);
for (Entry<String, Object> 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());
}
}
}

View File

@ -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<Object>() {
@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);

View File

@ -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: ");

View File

@ -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) {

View File

@ -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<Integer> ids = new HashSet<>();
Iterator<Plot> 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);

View File

@ -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<Plot> 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<BlockVector2> viable, final Set<BlockVector2> 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<BlockVector2> iterator = nonViable.iterator();

View File

@ -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<ComponentPreset> 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;
}

View File

@ -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);
}

View File

@ -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<br>
* 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<? extends Config> 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;
}
}

View File

@ -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();
}

View File

@ -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<Plot, Collection<PlotFlag<?, ?>>> 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<String, AtomicInteger> 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<Integer> 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<PlotId> 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<String, Integer> 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<PlotId, Plot> 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<UUID> toRemove = (HashSet<UUID>) 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<UUID> toRemove = (HashSet<UUID>) 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<UUID> toRemove = (HashSet<UUID>) 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<PlotFlag<?, ?>> 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<PlotId, Plot> map = entry.getValue();
if (!map.isEmpty()) {
for (Entry<PlotId, Plot> entry2 : map.entrySet()) {
PlotSquared.debug("$1Plot was deleted: " + entry2.getValue().toString()
+ "// TODO implement this when sure safe");
// TODO implement this when sure safe"
}
}
}

View File

@ -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");

View File

@ -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;

View File

@ -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<BlockVector2> regions;
public static int height;
public static Set<BlockVector2> 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<BlockVector2> 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));
});

View File

@ -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;
}

View File

@ -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");

View File

@ -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<CuboidRegion> 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())) {

View File

@ -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<Actor> {
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<Actor> {
}
@Override public void sendMessage(String message) {
PlotSquared.log(message);
logger.info(message);
}
@Override public void teleport(Location location, TeleportCause cause) {

View File

@ -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<P> 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<P> implements CommandCaller, OfflinePlotPlayer
*/
private ConcurrentHashMap<String, Object> 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<P> 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) {

View File

@ -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<Plot> 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);

View File

@ -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<PlotId, Plot> 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();
}
}
}

View File

@ -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);

View File

@ -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<UUID, Long> dates_cache;
private final ConcurrentHashMap<UUID, Long> account_age_cache;
private final EventDispatcher eventDispatcher;
private volatile HashSet<Plot> plotsToDelete;
private ArrayDeque<ExpiryTask> 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<Plot> 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) {

View File

@ -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<Plot> plots = PlotQuery.newQuery().allPlots().asList();
TaskManager.runTaskAsync(new Runnable() {
@Override public void run() {
Iterator<Plot> 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) {

View File

@ -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<String, String> unknownFlags = new HashMap<>();
private final Map<Class<?>, 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();
}
}

View File

@ -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<BlockType, BlockTypeWrapper> blockTypes = new HashMap<>();
private static final Map<String, BlockTypeWrapper> 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);
}
}

View File

@ -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);
}

View File

@ -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;

View File

@ -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<T> {
private static final Logger logger = LoggerFactory.getLogger("P2/" + Expression.class.getSimpleName());
public static <U> Expression<U> constant(final U value) {
return new Expression<U>() {
@Override public U evaluate(U arg) {
@ -66,7 +71,9 @@ public abstract class Expression<T> {
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;

View File

@ -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<String, ConfigurationType> 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()));
}

View File

@ -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<OutputStream> writeTask, final RunnableVal<URL> 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());
}
}
}

View File

@ -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();
}

View File

@ -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<CompoundTag>() {
@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<URL> 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 {

View File

@ -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);
}

View File

@ -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(),

View File

@ -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<UUIDService> serviceList;
private final List<Consumer<List<UUIDMapping>>> 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");