Add logger

This commit is contained in:
Jesse Boyd 2016-05-22 00:45:48 +10:00
parent dc4776d16b
commit 4ceb54b566
8 changed files with 70 additions and 19 deletions

View File

@ -185,7 +185,7 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain
@Override @Override
public void runEntityTask() { public void runEntityTask() {
log(C.PREFIX + "KillAllEntities started."); PS.log(C.PREFIX + "KillAllEntities started.");
TaskManager.runTaskRepeat(new Runnable() { TaskManager.runTaskRepeat(new Runnable() {
@Override @Override
public void run() { public void run() {
@ -514,7 +514,7 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain
Settings.OFFLINE_MODE = true; Settings.OFFLINE_MODE = true;
} }
if (!checkVersion) { if (!checkVersion) {
log(C.PREFIX + " &c[WARN] Titles are disabled - please update your version of Bukkit to support this feature."); PS.log(C.PREFIX + " &c[WARN] Titles are disabled - please update your version of Bukkit to support this feature.");
Settings.TITLES = false; Settings.TITLES = false;
} else { } else {
AbstractTitle.TITLE_CLASS = new DefaultTitle_19(); AbstractTitle.TITLE_CLASS = new DefaultTitle_19();
@ -523,11 +523,11 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain
} }
} }
if (Settings.OFFLINE_MODE) { if (Settings.OFFLINE_MODE) {
log(C.PREFIX PS.log(C.PREFIX
+ " &6PlotSquared is using Offline Mode UUIDs either because of user preference, or because you are using an old version of " + " &6PlotSquared is using Offline Mode UUIDs either because of user preference, or because you are using an old version of "
+ "Bukkit"); + "Bukkit");
} else { } else {
log(C.PREFIX + " &6PlotSquared is using online UUIDs"); PS.log(C.PREFIX + " &6PlotSquared is using online UUIDs");
} }
if (Settings.USE_SQLUUIDHANDLER) { if (Settings.USE_SQLUUIDHANDLER) {
return new SQLUUIDHandler(wrapper); return new SQLUUIDHandler(wrapper);
@ -575,7 +575,7 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain
public void startMetrics() { public void startMetrics() {
Metrics metrics = new Metrics(this); Metrics metrics = new Metrics(this);
metrics.start(); metrics.start();
log(C.PREFIX + "&6Metrics enabled."); PS.log(C.PREFIX + "&6Metrics enabled.");
} }
@Override @Override
@ -599,7 +599,7 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain
SetGenCB.setGenerator(BukkitUtil.getWorld(worldName)); SetGenCB.setGenerator(BukkitUtil.getWorld(worldName));
} }
} catch (Exception ignored) { } catch (Exception ignored) {
log("Failed to reload world: " + world); PS.log("Failed to reload world: " + world);
Bukkit.getServer().unloadWorld(world, false); Bukkit.getServer().unloadWorld(world, false);
} }
} }

View File

@ -539,7 +539,7 @@ public class MemorySection implements ConfigurationSection {
List<?> list = getList(path); List<?> list = getList(path);
if (list == null) { if (list == null) {
PS.get().IMP.log(path + " is null"); PS.get().log(path + " is null");
return new ArrayList<>(0); return new ArrayList<>(0);
} }

View File

@ -3,6 +3,7 @@ package com.intellectualcrafters.plot;
import com.intellectualcrafters.plot.generator.GeneratorWrapper; import com.intellectualcrafters.plot.generator.GeneratorWrapper;
import com.intellectualcrafters.plot.generator.HybridUtils; import com.intellectualcrafters.plot.generator.HybridUtils;
import com.intellectualcrafters.plot.generator.IndependentPlotGenerator; import com.intellectualcrafters.plot.generator.IndependentPlotGenerator;
import com.intellectualcrafters.plot.logger.ILogger;
import com.intellectualcrafters.plot.object.PlotPlayer; import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.util.AbstractTitle; import com.intellectualcrafters.plot.util.AbstractTitle;
import com.intellectualcrafters.plot.util.ChatManager; import com.intellectualcrafters.plot.util.ChatManager;
@ -20,7 +21,7 @@ import com.intellectualcrafters.plot.util.WorldUtil;
import java.io.File; import java.io.File;
import java.util.List; import java.util.List;
public interface IPlotMain { public interface IPlotMain extends ILogger {
/** /**
* Log a message to console. * Log a message to console.

View File

@ -16,6 +16,7 @@ import com.intellectualcrafters.plot.generator.GeneratorWrapper;
import com.intellectualcrafters.plot.generator.HybridPlotWorld; import com.intellectualcrafters.plot.generator.HybridPlotWorld;
import com.intellectualcrafters.plot.generator.HybridUtils; import com.intellectualcrafters.plot.generator.HybridUtils;
import com.intellectualcrafters.plot.generator.IndependentPlotGenerator; import com.intellectualcrafters.plot.generator.IndependentPlotGenerator;
import com.intellectualcrafters.plot.logger.ILogger;
import com.intellectualcrafters.plot.object.Location; import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot; import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotAnalysis; import com.intellectualcrafters.plot.object.PlotAnalysis;
@ -48,7 +49,6 @@ import com.intellectualcrafters.plot.util.WorldUtil;
import com.intellectualcrafters.plot.util.area.QuadMap; import com.intellectualcrafters.plot.util.area.QuadMap;
import com.plotsquared.listener.WESubscriber; import com.plotsquared.listener.WESubscriber;
import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.WorldEdit;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileOutputStream; import java.io.FileOutputStream;
@ -86,6 +86,7 @@ public class PS {
private static PS instance; private static PS instance;
public final IPlotMain IMP; public final IPlotMain IMP;
public ILogger LOGGER;
private final HashSet<Integer> plotAreaHashCheck = new HashSet<>(); private final HashSet<Integer> plotAreaHashCheck = new HashSet<>();
/** /**
* All plot areas mapped by world (quick world access). * All plot areas mapped by world (quick world access).
@ -130,6 +131,7 @@ public class PS {
PS.instance = this; PS.instance = this;
this.thread = Thread.currentThread(); this.thread = Thread.currentThread();
this.IMP = iPlotMain; this.IMP = iPlotMain;
this.LOGGER = iPlotMain;
this.platform = platform; this.platform = platform;
this.version = this.IMP.getPluginVersion(); this.version = this.IMP.getPluginVersion();
try { try {
@ -295,6 +297,27 @@ public class PS {
return PS.instance; return PS.instance;
} }
/**
* Set the logger
* @see com.intellectualcrafters.plot.logger.DelegateLogger
* @see #getLogger()
* @param logger
*/
public void setLogger(ILogger logger) {
if (logger == null) {
throw new IllegalArgumentException("Logger may not be null");
}
LOGGER = logger;
}
/**
* Get the current logger
* @return
*/
public ILogger getLogger() {
return LOGGER;
}
/** /**
* Log a message to the IPlotMain logger. * Log a message to the IPlotMain logger.
* *
@ -302,7 +325,7 @@ public class PS {
* @see IPlotMain#log(String) * @see IPlotMain#log(String)
*/ */
public static void log(Object message) { public static void log(Object message) {
PS.get().IMP.log(StringMan.getString(message)); PS.get().LOGGER.log(StringMan.getString(message));
} }
/** /**

View File

@ -0,0 +1,22 @@
package com.intellectualcrafters.plot.logger;
public class DelegateLogger implements ILogger {
private final ILogger parent;
public DelegateLogger(ILogger parent) {
if (parent == null) {
throw new IllegalArgumentException("Parent cannot be null");
}
this.parent = parent;
}
public ILogger getParent() {
return parent;
}
@Override
public void log(String message) {
parent.log(message);
}
}

View File

@ -0,0 +1,5 @@
package com.intellectualcrafters.plot.logger;
public interface ILogger {
public void log(String message);
}

View File

@ -344,7 +344,7 @@ public abstract class PlotArea {
} }
for (Entry<String, Object> stringObjectEntry : options.entrySet()) { for (Entry<String, Object> stringObjectEntry : options.entrySet()) {
if (!config.contains(stringObjectEntry.getKey())) { if (!config.contains(stringObjectEntry.getKey())) {
PS.get().IMP.log(stringObjectEntry.toString()); PS.get().log(stringObjectEntry.toString());
config.set(stringObjectEntry.getKey(), stringObjectEntry.getValue()); config.set(stringObjectEntry.getKey(), stringObjectEntry.getValue());
} }
} }

View File

@ -122,17 +122,17 @@ public class SpongeMain implements IPlotMain {
@Listener @Listener
public void init(GameInitializationEvent event) { public void init(GameInitializationEvent event) {
log("PlotSquared: Game init"); PS.log("PlotSquared: Game init");
} }
@Listener @Listener
public void onInit(GamePreInitializationEvent event) { public void onInit(GamePreInitializationEvent event) {
log("PlotSquared: Game pre init"); PS.log("PlotSquared: Game pre init");
} }
@Listener @Listener
public void onServerAboutToStart(GameAboutToStartServerEvent event) { public void onServerAboutToStart(GameAboutToStartServerEvent event) {
log("PlotSquared: Server init"); PS.log("PlotSquared: Server init");
THIS = this; THIS = this;
new PS(this, "Sponge"); new PS(this, "Sponge");
this.server = this.game.getServer(); this.server = this.game.getServer();
@ -177,7 +177,7 @@ public class SpongeMain implements IPlotMain {
@Override @Override
public int[] getServerVersion() { public int[] getServerVersion() {
log("Checking minecraft version: Sponge: "); PS.log("Checking minecraft version: Sponge: ");
String version = this.game.getPlatform().getMinecraftVersion().getName(); String version = this.game.getPlatform().getMinecraftVersion().getName();
String[] split = version.split("\\."); String[] split = version.split("\\.");
return new int[]{Integer.parseInt(split[0]), Integer.parseInt(split[1]), split.length == 3 ? Integer.parseInt(split[2]) : 0}; return new int[]{Integer.parseInt(split[0]), Integer.parseInt(split[1]), split.length == 3 ? Integer.parseInt(split[2]) : 0};
@ -248,13 +248,13 @@ public class SpongeMain implements IPlotMain {
@Override @Override
public void registerPlotPlusEvents() { public void registerPlotPlusEvents() {
// TODO Auto-generated method stub // TODO Auto-generated method stub
log("registerPlotPlusEvents is not implemented!"); PS.log("registerPlotPlusEvents is not implemented!");
} }
@Override @Override
public void registerForceFieldEvents() { public void registerForceFieldEvents() {
// TODO Auto-generated method stub // TODO Auto-generated method stub
log("registerForceFieldEvents is not implemented!"); PS.log("registerForceFieldEvents is not implemented!");
} }
@Override @Override
@ -308,9 +308,9 @@ public class SpongeMain implements IPlotMain {
try { try {
SpongeMetrics metrics = new SpongeMetrics(this.game, this.plugin); SpongeMetrics metrics = new SpongeMetrics(this.game, this.plugin);
metrics.start(); metrics.start();
log(C.PREFIX.s() + "&6Metrics enabled."); PS.log(C.PREFIX.s() + "&6Metrics enabled.");
} catch (IOException ignored) { } catch (IOException ignored) {
log(C.PREFIX.s() + "&cFailed to load up metrics."); PS.log(C.PREFIX.s() + "&cFailed to load up metrics.");
} }
} }