90 lines
2.1 KiB
Java
90 lines
2.1 KiB
Java
package com.massivecraft.factions.zcore;
|
|
|
|
import java.lang.reflect.Modifier;
|
|
import java.util.logging.Level;
|
|
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.plugin.java.JavaPlugin;
|
|
|
|
import com.massivecraft.mcore.util.Txt;
|
|
import com.massivecraft.mcore.xlib.gson.Gson;
|
|
import com.massivecraft.mcore.xlib.gson.GsonBuilder;
|
|
|
|
|
|
public abstract class MPlugin extends JavaPlugin
|
|
{
|
|
// Persist related
|
|
public Gson gson;
|
|
|
|
// -------------------------------------------- //
|
|
// ENABLE
|
|
// -------------------------------------------- //
|
|
private long timeEnableStart;
|
|
public boolean preEnable()
|
|
{
|
|
log("=== ENABLE START ===");
|
|
timeEnableStart = System.currentTimeMillis();
|
|
|
|
// Ensure basefolder exists!
|
|
this.getDataFolder().mkdirs();
|
|
|
|
this.gson = this.getGsonBuilder().create();
|
|
|
|
return true;
|
|
}
|
|
|
|
public void postEnable()
|
|
{
|
|
log("=== ENABLE DONE (Took "+(System.currentTimeMillis()-timeEnableStart)+"ms) ===");
|
|
}
|
|
|
|
public void onDisable()
|
|
{
|
|
log("Disabled");
|
|
}
|
|
|
|
public void suicide()
|
|
{
|
|
log("Now I suicide!");
|
|
this.getServer().getPluginManager().disablePlugin(this);
|
|
}
|
|
|
|
// -------------------------------------------- //
|
|
// Some inits...
|
|
// You are supposed to override these in the plugin if you aren't satisfied with the defaults
|
|
// The goal is that you always will be satisfied though.
|
|
// -------------------------------------------- //
|
|
|
|
public GsonBuilder getGsonBuilder()
|
|
{
|
|
return new GsonBuilder()
|
|
.setPrettyPrinting()
|
|
.disableHtmlEscaping()
|
|
.serializeNulls()
|
|
.excludeFieldsWithModifiers(Modifier.TRANSIENT, Modifier.VOLATILE);
|
|
}
|
|
|
|
// -------------------------------------------- //
|
|
// LOGGING
|
|
// -------------------------------------------- //
|
|
public void log(Object msg)
|
|
{
|
|
log(Level.INFO, msg);
|
|
}
|
|
|
|
public void log(String str, Object... args)
|
|
{
|
|
log(Level.INFO, Txt.parse(str, args));
|
|
}
|
|
|
|
public void log(Level level, String str, Object... args)
|
|
{
|
|
log(level, Txt.parse(str, args));
|
|
}
|
|
|
|
public void log(Level level, Object msg)
|
|
{
|
|
Bukkit.getLogger().log(level, "["+this.getDescription().getFullName()+"] "+msg);
|
|
}
|
|
}
|