finished ExpireManager

This commit is contained in:
boy0001 2015-01-10 12:00:26 +11:00
parent 70357da5f3
commit 8885895a1c
6 changed files with 63 additions and 40 deletions

View File

@ -21,6 +21,7 @@
package com.intellectualcrafters.plot; package com.intellectualcrafters.plot;
import com.google.common.io.Files;
import com.intellectualcrafters.plot.api.PlotAPI; import com.intellectualcrafters.plot.api.PlotAPI;
import com.intellectualcrafters.plot.commands.Auto; import com.intellectualcrafters.plot.commands.Auto;
import com.intellectualcrafters.plot.commands.MainCommand; import com.intellectualcrafters.plot.commands.MainCommand;
@ -48,6 +49,7 @@ import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import me.confuser.barapi.BarAPI; import me.confuser.barapi.BarAPI;
import net.milkbowl.vault.economy.Economy; import net.milkbowl.vault.economy.Economy;
import org.apache.commons.lang.StringUtils;
import org.bukkit.*; import org.bukkit.*;
import org.bukkit.command.PluginCommand; import org.bukkit.command.PluginCommand;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
@ -55,10 +57,15 @@ import org.bukkit.entity.Entity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.server.PluginEnableEvent;
import org.bukkit.event.world.WorldLoadEvent; import org.bukkit.event.world.WorldLoadEvent;
import org.bukkit.generator.ChunkGenerator; import org.bukkit.generator.ChunkGenerator;
import org.bukkit.plugin.InvalidDescriptionException;
import org.bukkit.plugin.InvalidPluginException;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.RegisteredServiceProvider; import org.bukkit.plugin.RegisteredServiceProvider;
import org.bukkit.plugin.UnknownDependencyException;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import java.io.File; import java.io.File;
@ -170,13 +177,16 @@ import java.util.concurrent.TimeUnit;
*/ */
private static LinkedHashMap<String, HashMap<PlotId, Plot>> plots; private static LinkedHashMap<String, HashMap<PlotId, Plot>> plots;
/**
* If plotme converter is enabled
*/
private static boolean CONVERT_PLOTME = enablePlotMe();
/** /**
* Return an instance of MySQL * Return an instance of MySQL
*/ */
public static MySQL getMySQL() { public static MySQL getMySQL() {
return mySQL; return mySQL;
} }
/** /**
* Check a range of permissions e.g. 'plots.plot.<0-100>'<br> Returns highest integer in range. * Check a range of permissions e.g. 'plots.plot.<0-100>'<br> Returns highest integer in range.
* *
@ -520,7 +530,7 @@ import java.util.concurrent.TimeUnit;
* @param string message * @param string message
*/ */
public static void sendConsoleSenderMessage(final String string) { public static void sendConsoleSenderMessage(final String string) {
if (getMain().getServer().getConsoleSender() == null) { if (PlotMain.main == null || getMain().getServer().getConsoleSender() == null) {
System.out.println(ChatColor.stripColor(ConsoleColors.fromString(string))); System.out.println(ChatColor.stripColor(ConsoleColors.fromString(string)));
} else { } else {
getMain().getServer().getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', string)); getMain().getServer().getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', string));
@ -835,7 +845,7 @@ import java.util.concurrent.TimeUnit;
public static void worldLoad(WorldLoadEvent event) { public static void worldLoad(WorldLoadEvent event) {
if (!UUIDHandler.CACHED) { if (!UUIDHandler.CACHED) {
UUIDHandler.cacheAll(); UUIDHandler.cacheAll();
if (Bukkit.getServer().getPluginManager().getPlugin("PlotMe") != null) { if (CONVERT_PLOTME) {
try { try {
new PlotMeConverter(PlotMain.getMain()).runAsync(); new PlotMeConverter(PlotMain.getMain()).runAsync();
} catch (final Exception e) { } catch (final Exception e) {
@ -1236,35 +1246,42 @@ import java.util.concurrent.TimeUnit;
Logger.add(LogLevel.GENERAL, "Logger enabled"); Logger.add(LogLevel.GENERAL, "Logger enabled");
} }
public static boolean enablePlotMe() {
File file = new File(new File("").getAbsolutePath() + File.separator + "plugins" + File.separator + "PlotMe-Core.jar");
if (file.exists()) {
sendConsoleSenderMessage("&b==== Copying 'PlotMe-Core.jar' to 'PlotMe_JAR_relocated' for conversion purposes ===");
sendConsoleSenderMessage("&3 - Please ignore the below stacktrace...");
try {
File to = new File(new File(".").getAbsolutePath() + File.separator + "plugins" + File.separator + "PlotMe_JAR_relocated" + File.separator + "PlotMe-Core.jar");
File parent = to.getParentFile();
if(!parent.exists()){
parent.mkdirs();
}
to.createNewFile();
Files.copy(file, to);
file.delete();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return true;
}
file = new File(new File(".").getAbsolutePath() + File.separator + "plugins" + File.separator + "PlotMe.jar");
if (file.exists()) {
return true;
}
return false;
}
/** /**
* On Load. * On Load.
*/ */
@Override @Override
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
final public void onEnable() { final public void onEnable() {
if (Bukkit.getPluginManager().getPlugin("PlotMe") != null) {
/* <sarcasm> CONVERT_PLOTME = true;
* Oh, is this what it looks like?
* Are we stealing coding from PlotMe again?
*/
//Plugin competition = Bukkit.getPluginManager().getPlugin("PlotSquared");
Plugin competition = Bukkit.getPluginManager().getPlugin("PlotMe");
if (competition != null) {
getPluginLoader().disablePlugin(competition);
} }
/*
* Oh no! How unethical of us to steal this above code from PlotMe and only change 1 line of code!
* If only we were good enough to code something like this ourselves!
*
* You guys are hilarious how you intentionally try to make it difficult for your users to to switch plot plugins.
* If we didn't know any better, we'd say you're abusing your position as the most used plot plugin.
* </sarcasm>
* Side note from Empire92: Your continued bullying doesn't give me much incentive to support PlotMe with any of my other plugins:
* - VoxelSniperRegions
* - BiomeGenerator
*/
PlotMain.main = this; PlotMain.main = this;
// Setup the logger mechanics // Setup the logger mechanics
setupLogger(); setupLogger();

View File

@ -24,6 +24,7 @@ package com.intellectualcrafters.plot.commands;
import com.intellectualcrafters.plot.PlotMain; import com.intellectualcrafters.plot.PlotMain;
import com.intellectualcrafters.plot.config.C; import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.database.DBFunc; import com.intellectualcrafters.plot.database.DBFunc;
import com.intellectualcrafters.plot.flag.FlagManager;
import com.intellectualcrafters.plot.object.InfoInventory; import com.intellectualcrafters.plot.object.InfoInventory;
import com.intellectualcrafters.plot.object.Plot; import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotId; import com.intellectualcrafters.plot.object.PlotId;
@ -174,7 +175,7 @@ import java.util.UUID;
final String trusted = getPlayerList(plot.trusted); final String trusted = getPlayerList(plot.trusted);
final String denied = getPlayerList(plot.denied); final String denied = getPlayerList(plot.denied);
final String rating = String.format("%.1f", DBFunc.getRatings(plot)); final String rating = String.format("%.1f", DBFunc.getRatings(plot));
final String flags = "&6" + (StringUtils.join(plot.settings.flags, "").length() > 0 ? StringUtils.join(plot.settings.flags, "&7, &6") : "none"); final String flags = "&6" + (StringUtils.join(FlagManager.getPlotFlags(plot), "").length() > 0 ? StringUtils.join(FlagManager.getPlotFlags(plot), "&7, &6") : "none");
final boolean build = (player == null) || plot.hasRights(player); final boolean build = (player == null) || plot.hasRights(player);
String owner = "none"; String owner = "none";

View File

@ -26,6 +26,7 @@ import com.intellectualcrafters.plot.generator.HybridGen;
import com.intellectualcrafters.plot.object.Plot; import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotId; import com.intellectualcrafters.plot.object.PlotId;
import com.intellectualcrafters.plot.util.UUIDHandler; import com.intellectualcrafters.plot.util.UUIDHandler;
import com.sk89q.worldedit.util.YAMLConfiguration;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.World; import org.bukkit.World;
@ -53,7 +54,6 @@ public class PlotMeConverter {
* PlotMain Object * PlotMain Object
*/ */
private final PlotMain plugin; private final PlotMain plugin;
/** /**
* Constructor * Constructor
* *
@ -70,15 +70,15 @@ public class PlotMeConverter {
public void runAsync() throws Exception { public void runAsync() throws Exception {
// We have to make it wait a couple of seconds // We have to make it wait a couple of seconds
Bukkit.getScheduler().runTaskLater(this.plugin, new Runnable() { Bukkit.getScheduler().runTaskLater(this.plugin, new Runnable() {
@Override @Override
public void run() { public void run() {
try { try {
sendMessage("Conversion has started"); sendMessage("Conversion has started");
sendMessage("Connecting to PlotMe DB"); sendMessage("Connecting to PlotMe DB");
final ArrayList<Plot> createdPlots = new ArrayList<>(); final ArrayList<Plot> createdPlots = new ArrayList<>();
final Plugin plotMePlugin = Bukkit.getPluginManager().getPlugin("PlotMe"); String dataFolder = new File(".").getAbsolutePath() + File.separator + "plugins" + File.separator + "PlotMe" + File.separator;
final FileConfiguration plotConfig = plotMePlugin.getConfig(); File plotMeFile = new File(dataFolder + "config.yml");
final FileConfiguration plotConfig = YamlConfiguration.loadConfiguration(plotMeFile);
int count = 0; int count = 0;
Connection connection; Connection connection;
@ -93,7 +93,7 @@ public class PlotMeConverter {
connection = mySQL.openConnection(); connection = mySQL.openConnection();
} }
else { else {
connection = new SQLite(PlotMain.getMain(), plotMePlugin.getDataFolder() + File.separator +"plots.db").openConnection(); connection = new SQLite(PlotMain.getMain(), dataFolder + File.separator +"plots.db").openConnection();
} }
sendMessage("Collecting plot data"); sendMessage("Collecting plot data");
ResultSet r; ResultSet r;
@ -105,9 +105,9 @@ public class PlotMeConverter {
stmt = connection.createStatement(); stmt = connection.createStatement();
r = stmt.executeQuery("SELECT * FROM `plotmePlots`"); r = stmt.executeQuery("SELECT * FROM `plotmePlots`");
while (r.next()) { while (r.next()) {
count++;
PlotId id = new PlotId(r.getInt("idX"), r.getInt("idZ")); PlotId id = new PlotId(r.getInt("idX"), r.getInt("idZ"));
String name = r.getString("owner"); String name = r.getString("owner");
System.out.print("NAME: "+name);
String world = r.getString("world"); String world = r.getString("world");
if (!plotSize.containsKey(world)) { if (!plotSize.containsKey(world)) {
int size = r.getInt("topZ") - r.getInt("bottomZ"); int size = r.getInt("topZ") - r.getInt("bottomZ");
@ -131,7 +131,6 @@ public class PlotMeConverter {
r = stmt.executeQuery("SELECT * FROM `plotmeAllowed`"); r = stmt.executeQuery("SELECT * FROM `plotmeAllowed`");
while (r.next()) { while (r.next()) {
count++;
PlotId id = new PlotId(r.getInt("idX"), r.getInt("idZ")); PlotId id = new PlotId(r.getInt("idX"), r.getInt("idZ"));
String name = r.getString("player"); String name = r.getString("player");
String world = r.getString("world"); String world = r.getString("world");
@ -170,7 +169,7 @@ public class PlotMeConverter {
} }
} }
sendMessage("Collected " + count + "plots from PlotMe"); sendMessage("Collected " + count + " plots from PlotMe");
for (String world : plots.keySet()) { for (String world : plots.keySet()) {
sendMessage("Copying config for: "+world); sendMessage("Copying config for: "+world);
@ -200,7 +199,7 @@ public class PlotMeConverter {
} }
} }
File PLOTME_DG_FILE = new File(plotMePlugin + File.separator + "PlotMe-DefaultGenerator" + File.separator + "config.yml"); File PLOTME_DG_FILE = new File(dataFolder + File.separator + "PlotMe-DefaultGenerator" + File.separator + "config.yml");
if (PLOTME_DG_FILE.exists()) { if (PLOTME_DG_FILE.exists()) {
YamlConfiguration PLOTME_DG_YML = YamlConfiguration.loadConfiguration(PLOTME_DG_FILE); YamlConfiguration PLOTME_DG_YML = YamlConfiguration.loadConfiguration(PLOTME_DG_FILE);
try { try {
@ -301,8 +300,6 @@ public class PlotMeConverter {
} }
PlotMain.setAllPlotsRaw(DBFunc.getPlots()); PlotMain.setAllPlotsRaw(DBFunc.getPlots());
sendMessage("Disabling PlotMe...");
Bukkit.getPluginManager().disablePlugin(plotMePlugin);
sendMessage("Conversion has finished"); sendMessage("Conversion has finished");
PlotMain.sendConsoleSenderMessage("&cAlthough the server may be functional in it's current state, it is recommended that you restart the server and remove PlotMe to finalize the installation. Please make careful note of any warning messages that may have showed up during conversion."); PlotMain.sendConsoleSenderMessage("&cAlthough the server may be functional in it's current state, it is recommended that you restart the server and remove PlotMe to finalize the installation. Please make careful note of any warning messages that may have showed up during conversion.");

View File

@ -29,6 +29,7 @@ import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotWorld; import com.intellectualcrafters.plot.object.PlotWorld;
import com.sun.istack.internal.NotNull; import com.sun.istack.internal.NotNull;
import org.apache.commons.lang.StringUtils;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;

View File

@ -21,11 +21,13 @@
package com.intellectualcrafters.plot.object; package com.intellectualcrafters.plot.object;
import com.intellectualcrafters.plot.PlotMain;
import com.intellectualcrafters.plot.config.Configuration; import com.intellectualcrafters.plot.config.Configuration;
import com.intellectualcrafters.plot.config.ConfigurationNode; import com.intellectualcrafters.plot.config.ConfigurationNode;
import com.intellectualcrafters.plot.flag.Flag; import com.intellectualcrafters.plot.flag.Flag;
import com.intellectualcrafters.plot.flag.FlagManager; import com.intellectualcrafters.plot.flag.FlagManager;
import org.apache.commons.lang.StringUtils;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.Biome; import org.bukkit.block.Biome;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
@ -312,7 +314,13 @@ public abstract class PlotWorld {
this.DEFAULT_FLAGS = new Flag[] {}; this.DEFAULT_FLAGS = new Flag[] {};
} }
else { else {
this.DEFAULT_FLAGS = FlagManager.parseFlags(flags); try {
this.DEFAULT_FLAGS = FlagManager.parseFlags(flags);
}
catch (Exception e) {
PlotMain.sendConsoleSenderMessage("&cInvalid default flags for "+this.worldname+": "+StringUtils.join(flags,","));
this.DEFAULT_FLAGS = new Flag[] {};
}
} }
this.PVP = config.getBoolean("event.pvp"); this.PVP = config.getBoolean("event.pvp");
this.PVE = config.getBoolean("event.pve"); this.PVE = config.getBoolean("event.pve");

View File

@ -87,7 +87,6 @@ public class ExpireManager {
final World worldobj = Bukkit.getWorld(world); final World worldobj = Bukkit.getWorld(world);
final PlotManager manager = PlotMain.getPlotManager(world); final PlotManager manager = PlotMain.getPlotManager(world);
manager.clearPlot(worldobj, plot, false); manager.clearPlot(worldobj, plot, false);
PlotHelper.clear(worldobj, plot, true);
PlotHelper.removeSign(worldobj, plot); PlotHelper.removeSign(worldobj, plot);
DBFunc.delete(world, plot); DBFunc.delete(world, plot);
PlotMain.removePlot(world, plot.id, true); PlotMain.removePlot(world, plot.id, true);
@ -100,7 +99,7 @@ public class ExpireManager {
} }
} }
}, 1, 20); }, 1200, 1200);
} }
public static boolean isExpired(UUID uuid) { public static boolean isExpired(UUID uuid) {