diff --git a/pom.xml b/pom.xml index b50c67a..73bc275 100644 --- a/pom.xml +++ b/pom.xml @@ -1,5 +1,6 @@ - 4.0.0 com.graywolf336 @@ -56,14 +57,14 @@ org.bukkit bukkit - 1.9-R0.1-SNAPSHOT + 1.13.2-R0.1-SNAPSHOT jar org.bukkit craftbukkit - 1.9-R0.1-SNAPSHOT + 1.13.2-R0.1-SNAPSHOT jar provided @@ -71,7 +72,7 @@ com.sk89q.worldedit worldedit-bukkit - 6.1 + 7.0.0-SNAPSHOT provided true @@ -167,7 +168,6 @@ target target/classes - clean install test @@ -324,12 +324,12 @@ repo-release Jail Releases - https://repo2.craftyn.com/repository/internal/ + https://repo.craftyn.com/repository/internal/ repo-snapshot Jail Snapshots - https://repo2.craftyn.com/repository/snapshots/ + https://repo.craftyn.com/repository/snapshots/ \ No newline at end of file diff --git a/src/main/java/com/graywolf336/jail/JailIO.java b/src/main/java/com/graywolf336/jail/JailIO.java index 6309f81..2bb8efe 100644 --- a/src/main/java/com/graywolf336/jail/JailIO.java +++ b/src/main/java/com/graywolf336/jail/JailIO.java @@ -1,6 +1,7 @@ package com.graywolf336.jail; import java.io.File; +import java.io.InputStreamReader; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; @@ -46,7 +47,6 @@ public class JailIO { } /** Loads the language file from disk, if there is none then we save the default one. */ - @SuppressWarnings("deprecation") protected void loadLanguage() { String language = pl.getConfig().getString(Settings.LANGUAGE.getPath()); boolean save = false; @@ -60,18 +60,18 @@ public class JailIO { }else { pl.getLogger().severe("The language file can not be a folder."); pl.getLogger().severe("As a result, we are reverting back to English as the language."); - Lang.setFile(YamlConfiguration.loadConfiguration(pl.getResource("locales/en.yml"))); + Lang.setFile(YamlConfiguration.loadConfiguration(new InputStreamReader(pl.getResource("locales/en.yml")))); save = true; } }else { pl.getLogger().warning("Loading the default language of: en"); pl.getLogger().warning("If you wish to change this, please rename 'en.yml' to whatever you wish and set the config value to the name of the file."); - Lang.setFile(YamlConfiguration.loadConfiguration(pl.getResource("locales/en.yml"))); + Lang.setFile(YamlConfiguration.loadConfiguration(new InputStreamReader(pl.getResource("locales/en.yml")))); save = true; } //Make sure we have all the new language settings loaded - if(!save) save = Lang.writeNewLanguage(YamlConfiguration.loadConfiguration(pl.getResource("locales/en.yml"))); + if(!save) save = Lang.writeNewLanguage(YamlConfiguration.loadConfiguration(new InputStreamReader(pl.getResource("locales/en.yml")))); //If we have flagged to save the language file, let's save it as en.yml as this flag usually means they didn't have it loaded. if(save) { diff --git a/src/main/java/com/graywolf336/jail/JailMain.java b/src/main/java/com/graywolf336/jail/JailMain.java index bff7f41..d266a03 100644 --- a/src/main/java/com/graywolf336/jail/JailMain.java +++ b/src/main/java/com/graywolf336/jail/JailMain.java @@ -19,7 +19,6 @@ import com.graywolf336.jail.enums.Settings; import com.graywolf336.jail.events.JailPluginReloadedEvent; import com.graywolf336.jail.interfaces.IJailPayManager; import com.graywolf336.jail.interfaces.IJailStickManager; -import com.graywolf336.jail.legacy.LegacyManager; import com.graywolf336.jail.listeners.CacheListener; import com.graywolf336.jail.listeners.CellSignListener; import com.graywolf336.jail.listeners.EntityListener; @@ -63,14 +62,6 @@ public class JailMain extends JavaPlugin { hcm = new HandCuffManager(); jm = new JailManager(this); - - //Try to load the old stuff before we load anything, esp the storage stuff - LegacyManager lm = new LegacyManager(this); - if(lm.doWeNeedToConvert()) { - lm.convertOldData(); - if(!lm.wasAnythingConverted()) getLogger().severe("We was unable to convert some, or all, of the old data."); - } - io = new JailIO(this); io.loadLanguage(); @@ -83,11 +74,6 @@ public class JailMain extends JavaPlugin { io.loadJails(); - //If we converted something, let's save EVERYTHING including the cells - if(lm.wasAnythingConverted()) { - io.saveEverything(); - } - cmdHand = new CommandHandler(this); jh = new JailHandler(this); pm = new PrisonerManager(this); diff --git a/src/main/java/com/graywolf336/jail/PrisonerManager.java b/src/main/java/com/graywolf336/jail/PrisonerManager.java index ae5cb61..786b07d 100644 --- a/src/main/java/com/graywolf336/jail/PrisonerManager.java +++ b/src/main/java/com/graywolf336/jail/PrisonerManager.java @@ -232,7 +232,6 @@ public class PrisonerManager { //only eject them if they're inside a vehicle and also eject anyone else on top of them if(player.isInsideVehicle()) { player.getVehicle().eject(); - player.getPassenger().eject(); player.eject(); } @@ -452,11 +451,10 @@ public class PrisonerManager { //the *future* move checkers won't be canceling our moving. prisoner.setTeleporting(true); - //In case they have somehow got on a vehicle, let's unmount + //In case they have somehow got in a vehicle, let's unmount //them so we can possibly teleport them if(player.isInsideVehicle()) { player.getVehicle().eject(); - player.getPassenger().eject(); player.eject(); } diff --git a/src/main/java/com/graywolf336/jail/Util.java b/src/main/java/com/graywolf336/jail/Util.java index ec87440..44509d0 100644 --- a/src/main/java/com/graywolf336/jail/Util.java +++ b/src/main/java/com/graywolf336/jail/Util.java @@ -205,7 +205,7 @@ public class Util { * @return The {@link ItemStack} to use for creation */ public static ItemStack getWand() { - ItemStack wand = new ItemStack(Material.CLAY_BRICK); + ItemStack wand = new ItemStack(Material.BRICK); ItemMeta meta = wand.getItemMeta(); meta.setDisplayName(ChatColor.AQUA + "Jail Wand"); LinkedList lore = new LinkedList(); @@ -512,4 +512,22 @@ public class Util { Bukkit.getLogger().severe("Unable to restore " + player.getName() + "'s inventory."); } } + + /** + * Checks if the provided class has the provided method. + * + * @param c The {@link Class} to check on. + * @param method The name of the method to check for + * @return whether the method exists or not. + */ + public static boolean doesClassHaveThisMethod(Class c, String method) { + try { + c.getMethod(method); + return true; + } catch (NoSuchMethodException e) { + return true; + } catch (SecurityException e) { + return false; + } + } } diff --git a/src/main/java/com/graywolf336/jail/legacy/LegacyManager.java b/src/main/java/com/graywolf336/jail/legacy/LegacyManager.java deleted file mode 100644 index 16fc1af..0000000 --- a/src/main/java/com/graywolf336/jail/legacy/LegacyManager.java +++ /dev/null @@ -1,448 +0,0 @@ -package com.graywolf336.jail.legacy; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.sql.SQLException; -import java.util.LinkedList; -import java.util.List; - -import org.bukkit.Material; -import org.bukkit.configuration.InvalidConfigurationException; -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.configuration.file.YamlConfiguration; - -import com.google.common.io.Files; -import com.graywolf336.jail.JailMain; -import com.graywolf336.jail.enums.Settings; - -/** - * Manages the old data from Jail 2. - * - * @author graywolf336 - * @since 3.0.0 - * @version 1.0.0 - */ -public class LegacyManager { - private JailMain pl; - private YamlConfiguration global; - private boolean wasConverted; - - public LegacyManager(JailMain plugin) { - this.pl = plugin; - this.wasConverted = false; - } - - /** Returns true/false if the old config, global.yml, exists and needs to be converted. */ - public boolean doWeNeedToConvert() { - return new File(pl.getDataFolder(), "global.yml").exists(); - } - - /** - * Returns true if we converted anything and it was successful. - * - * @return true if everything converted successfully, was if not. - */ - public boolean wasAnythingConverted() { - return this.wasConverted; - } - - public boolean convertOldData() { - File f = new File(pl.getDataFolder(), "global.yml"); - - if(f.exists()) { - global = new YamlConfiguration(); - try { - global.load(f); - } catch (FileNotFoundException e) { - //e.printStackTrace(); - pl.getLogger().severe("Unable to load the old global config, file not found."); - } catch (IOException e) { - //e.printStackTrace(); - pl.getLogger().severe("Unable to load the old global config: " + e.getMessage()); - } catch (InvalidConfigurationException e) { - //e.printStackTrace(); - pl.getLogger().severe("Unable to load the old global config: " + e.getMessage()); - } - }else { - pl.debug("The old config file, global.yml, was not found so not loading anything."); - return false; - } - - try { - pl.getLogger().info("Starting to convert Jail 2.x data to Jail 3.0, this does use a blocking call (getOfflinePlayer) so expect the server to be held up until we are finished..."); - loadOldConfig(); - loadOldData(); - moveOldConfigs(); - this.wasConverted = true; - pl.getLogger().info("...finished converting configs and data."); - return true; - }catch (Exception e) { - if(pl.inDebug()) { - e.printStackTrace(); - } - - pl.debug(e.getMessage()); - pl.getLogger().severe("Failed to load the old configuration for some reason."); - return false; - } - } - - @SuppressWarnings("deprecation") - private void loadOldConfig() { - FileConfiguration c = pl.getConfig(); - - int count = 0; - for(OldSetting s : OldSetting.values()) { - switch(s) { - case Debug: - if(global.contains(s.getString())) { - c.set(Settings.DEBUG.getPath(), OldSettings.getGlobalBoolean(global, s)); - //Only set it true if the old config had true, this way we can still hold the debuggin over - //if the old config had it set to false but the new one has it set to true (until a restart/reload) - if(c.getBoolean(Settings.DEBUG.getPath())) pl.setDebugging(true); - pl.debug(Settings.DEBUG.getPath() + " <-- " + s.getString()); - count++; - } - break; - case BroadcastJailMessage: - if(global.contains(s.getString())) { - c.set(Settings.BROADCASTJAILING.getPath(), OldSettings.getGlobalBoolean(global, s)); - pl.debug(Settings.BROADCASTJAILING.getPath() + " <-- " + s.getString()); - count++; - } - break; - case AllowUpdateNotifications: - if(global.contains(s.getString())) { - c.set(Settings.UPDATENOTIFICATIONS.getPath(), OldSettings.getGlobalBoolean(global, s)); - pl.debug(Settings.UPDATENOTIFICATIONS.getPath() + " <-- " + s.getString()); - count++; - } - break; - case ExecutedCommandsOnJail: - if(global.contains(s.getString())) { - c.set(Settings.COMMANDSONJAIL.getPath(), OldSettings.getGlobalList(global, s)); - pl.debug(Settings.COMMANDSONJAIL.getPath() + " <-- " + s.getString()); - count++; - } - break; - case ExecutedCommandsOnRelease: - if(global.contains(s.getString())) { - c.set(Settings.COMMANDSONRELEASE.getPath(), OldSettings.getGlobalList(global, s)); - pl.debug(Settings.COMMANDSONRELEASE.getPath() + " <-- " + s.getString()); - count++; - } - break; - case AutomaticMute: - if(global.contains(s.getString())) { - c.set(Settings.AUTOMATICMUTE.getPath(), OldSettings.getGlobalBoolean(global, s)); - pl.debug(Settings.AUTOMATICMUTE.getPath() + " <-- " + s.getString()); - count++; - } - break; - case StoreInventory: - if(global.contains(s.getString())) { - c.set(Settings.JAILEDSTOREINVENTORY.getPath(), OldSettings.getGlobalBoolean(global, s)); - pl.debug(Settings.JAILEDSTOREINVENTORY.getPath() + " <-- " + s.getString()); - count++; - } - break; - case CanPrisonerOpenHisChest: - if(global.contains(s.getString())) { - c.set(Settings.PRISONEROPENCHEST.getPath(), OldSettings.getGlobalBoolean(global, s)); - pl.debug(Settings.PRISONEROPENCHEST.getPath() + " <-- " + s.getString()); - count++; - } - break; - case LogJailingIntoConsole: - if(global.contains(s.getString())) { - c.set(Settings.LOGJAILINGTOCONSOLE.getPath(), OldSettings.getGlobalBoolean(global, s)); - pl.debug(Settings.LOGJAILINGTOCONSOLE.getPath() + " <-- " + s.getString()); - count++; - } - break; - case CountdownTimeWhenOffline: - if(global.contains(s.getString())) { - c.set(Settings.COUNTDOWNTIMEOFFLINE.getPath(), OldSettings.getGlobalBoolean(global, s)); - pl.debug(Settings.COUNTDOWNTIMEOFFLINE.getPath() + " <-- " + s.getString()); - count++; - } - break; - case ReleaseBackToPreviousPosition: - if(global.contains(s.getString())) { - c.set(Settings.RELEASETOPREVIOUSPOSITION.getPath(), OldSettings.getGlobalBoolean(global, s)); - pl.debug(Settings.RELEASETOPREVIOUSPOSITION.getPath() + " <-- " + s.getString()); - count++; - } - break; - case IgnorePrisonersSleepingState: - if(global.contains(s.getString())) { - c.set(Settings.IGNORESLEEPINGSTATE.getPath(), OldSettings.getGlobalBoolean(global, s)); - pl.debug(Settings.IGNORESLEEPINGSTATE.getPath() + " <-- " + s.getString()); - count++; - } - break; - case TeleportPrisonerOnRelease: - if(global.contains(s.getString())) { - c.set(Settings.TELEPORTONRELEASE.getPath(), OldSettings.getGlobalBoolean(global, s)); - pl.debug(Settings.TELEPORTONRELEASE.getPath() + " <-- " + s.getString()); - count++; - } - break; - case DefaultJailTime: - if(global.contains(s.getString())) { - c.set(Settings.DEFAULTTIME.getPath(), OldSettings.getGlobalInt(global, s)); - pl.debug(Settings.DEFAULTTIME.getPath() + " <-- " + s.getString()); - count++; - } - break; - case UseBukkitSchedulerTimer: - if(global.contains(s.getString())) { - c.set(Settings.USEBUKKITTIMER.getPath(), OldSettings.getGlobalBoolean(global, s)); - pl.debug(Settings.USEBUKKITTIMER.getPath() + " <-- " + s.getString()); - count++; - } - break; - case EnableJailStick: - if(global.contains(s.getString())) { - c.set(Settings.JAILSTICKENABLED.getPath(), OldSettings.getGlobalBoolean(global, s)); - pl.debug(Settings.JAILSTICKENABLED.getPath() + " <-- " + s.getString()); - count++; - } - break; - case JailStickParameters: - if(global.contains(s.getString())) { - LinkedList sticks = new LinkedList(); - for (String i : OldSettings.getGlobalString(global, s).split(";")) { - String[] info = i.split(","); - //item id,range,time,jail name,reason - Material m = Material.getMaterial(Integer.valueOf(info[0]).intValue()); - - //item name,time,jail name,reason - sticks.push(m.toString().toLowerCase() + "," + info[2] + "," + info[3] + "," + info[4]); - } - c.set(Settings.JAILSTICKSTICKS.getPath(), sticks); - pl.debug(Settings.JAILSTICKSTICKS.getPath() + " <-- " + s.getString()); - count++; - } - break; - case EnableBlockDestroyProtection: - if(global.contains(s.getString())) { - c.set(Settings.BLOCKBREAKPROTECTION.getPath(), OldSettings.getGlobalBoolean(global, s)); - pl.debug(Settings.BLOCKBREAKPROTECTION.getPath() + " <-- " + s.getString()); - count++; - } - break; - case BlockDestroyPenalty: - if(global.contains(s.getString())) { - c.set(Settings.BLOCKBREAKPENALTY.getPath(), OldSettings.getGlobalInt(global, s)); - pl.debug(Settings.BLOCKBREAKPENALTY.getPath() + " <-- " + s.getString()); - count++; - } - break; - case BlockDestroyProtectionExceptions: - if(global.contains(s.getString())) { - @SuppressWarnings("unchecked") - List exceptions = (List) OldSettings.getGlobalList(global, s); - LinkedList whitelist = new LinkedList(); - for(String e : exceptions) { - whitelist.add(Material.getMaterial(Integer.valueOf(e).intValue()).toString().toLowerCase()); - } - - c.set(Settings.BLOCKBREAKWHITELIST.getPath(), whitelist); - pl.debug(Settings.BLOCKBREAKWHITELIST.getPath() + " <-- " + s.getString()); - count++; - } - break; - case EnableBlockPlaceProtection: - if(global.contains(s.getString())) { - c.set(Settings.BLOCKPLACEPROTECTION.getPath(), OldSettings.getGlobalBoolean(global, s)); - pl.debug(Settings.BLOCKPLACEPROTECTION.getPath() + " <-- " + s.getString()); - count++; - } - break; - case BlockPlacePenalty: - if(global.contains(s.getString())) { - c.set(Settings.BLOCKPLACEPENALTY.getPath(), OldSettings.getGlobalInt(global, s)); - pl.debug(Settings.BLOCKPLACEPENALTY.getPath() + " <-- " + s.getString()); - count++; - } - break; - case BlockPlaceProtectionExceptions: - if(global.contains(s.getString())) { - @SuppressWarnings("unchecked") - List exceptions = (List) OldSettings.getGlobalList(global, s); - LinkedList whitelist = new LinkedList(); - for(String e : exceptions) { - whitelist.add(Material.getMaterial(Integer.valueOf(e).intValue()).toString().toLowerCase()); - } - - c.set(Settings.BLOCKPLACEWHITELIST.getPath(), whitelist); - pl.debug(Settings.BLOCKPLACEWHITELIST.getPath() + " <-- " + s.getString()); - count++; - } - break; - case EnablePlayerMoveProtection: - if(global.contains(s.getString())) { - c.set(Settings.MOVEPROTECTION.getPath(), OldSettings.getGlobalBoolean(global, s)); - pl.debug(Settings.MOVEPROTECTION.getPath() + " <-- " + s.getString()); - count++; - } - break; - case PlayerMoveProtectionPenalty: - if(global.contains(s.getString())) { - c.set(Settings.MOVEPENALTY.getPath(), OldSettings.getGlobalInt(global, s)); - pl.debug(Settings.MOVEPENALTY.getPath() + " <-- " + s.getString()); - count++; - } - break; - case WhitelistedCommands: - if(global.contains(s.getString())) { - c.set(Settings.COMMANDWHITELIST.getPath(), OldSettings.getGlobalList(global, s)); - pl.debug(Settings.COMMANDWHITELIST.getPath() + " <-- " + s.getString()); - count++; - } - break; - case CommandProtectionPenalty: - if(global.contains(s.getString())) { - c.set(Settings.COMMANDPENALTY.getPath(), OldSettings.getGlobalInt(global, s)); - pl.debug(Settings.COMMANDPENALTY.getPath() + " <-- " + s.getString()); - count++; - } - break; - case InteractionPenalty: - if(global.contains(s.getString())) { - c.set(Settings.PREVENTINTERACTIONITEMSPENALTY.getPath(), OldSettings.getGlobalInt(global, s)); - pl.debug(Settings.PREVENTINTERACTIONITEMSPENALTY.getPath() + " <-- " + s.getString()); - count++; - } - break; - case EnableExplosionProtection: - if(global.contains(s.getString())) { - c.set(Settings.EXPLOSIONPROTECTION.getPath(), OldSettings.getGlobalBoolean(global, s)); - pl.debug(Settings.EXPLOSIONPROTECTION.getPath() + " <-- " + s.getString()); - count++; - } - break; - case EnableFoodControl: - if(global.contains(s.getString())) { - c.set(Settings.FOODCONTROL.getPath(), OldSettings.getGlobalBoolean(global, s)); - pl.debug(Settings.FOODCONTROL.getPath() + " <-- " + s.getString()); - count++; - } - break; - case FoodControlMinimumFood: - if(global.contains(s.getString())) { - c.set(Settings.FOODCONTROLMIN.getPath(), OldSettings.getGlobalInt(global, s)); - pl.debug(Settings.FOODCONTROLMIN.getPath() + " <-- " + s.getString()); - count++; - } - break; - case FoodControlMaximumFood: - if(global.contains(s.getString())) { - c.set(Settings.FOODCONTROLMAX.getPath(), OldSettings.getGlobalInt(global, s)); - pl.debug(Settings.FOODCONTROLMAX.getPath() + " <-- " + s.getString()); - count++; - } - break; - case PrisonersRecieveMessages: - if(global.contains(s.getString())) { - c.set(Settings.RECIEVEMESSAGES.getPath(), OldSettings.getGlobalBoolean(global, s)); - pl.debug(Settings.RECIEVEMESSAGES.getPath() + " <-- " + s.getString()); - count++; - } - break; - case UseMySQL: - if(global.contains(s.getString())) { - c.set("storage.type", OldSettings.getGlobalBoolean(global, s) ? "mysql" : "sqlite"); - pl.debug(Settings.RECIEVEMESSAGES.getPath() + " <-- " + s.getString()); - count++; - } - break; - case MySQLConn: - if(global.contains(s.getString())) { - //jdbc:mysql://localhost:3306/minecraft - String con = OldSettings.getGlobalString(global, s); - String a = con.split("//")[1]; - //localhost 3306/minecraft - String[] b1 = a.split(":"); - //3306 minecraft - String[] b2 = b1[1].split("/"); - - c.set("storage.mysql.host", b1[0]); - c.set("storage.mysql.port", b2[0]); - c.set("storage.mysql.database", b2[1]); - - pl.debug("storage.mysql <-- " + s.getString()); - count++; - } - break; - case MySQLUsername: - if(global.contains(s.getString())) { - c.set("storage.mysql.username", OldSettings.getGlobalString(global, s)); - pl.debug("storage.mysql.username <-- " + s.getString()); - count++; - } - break; - case MySQLPassword: - if(global.contains(s.getString())) { - c.set("storage.mysql.password", OldSettings.getGlobalString(global, s)); - pl.debug("storage.mysql.password <-- " + s.getString()); - count++; - } - break; - case PricePerMinute: - if(global.contains(s.getString())) { - c.set(Settings.JAILPAYPRICEPERMINUTE.getPath(), OldSettings.getGlobalInt(global, s)); - pl.debug(Settings.JAILPAYPRICEPERMINUTE.getPath() + " <-- " + s.getString()); - count++; - } - break; - case PriceForInfiniteJail: - if(global.contains(s.getString())) { - c.set(Settings.JAILPAYPRICEINFINITE.getPath(), OldSettings.getGlobalInt(global, s)); - pl.debug(Settings.JAILPAYPRICEINFINITE.getPath() + " <-- " + s.getString()); - count++; - } - break; - case JailPayCurrency: - if(global.contains(s.getString())) { - Material mat = Material.getMaterial(OldSettings.getGlobalInt(global, s)); - if(mat != null) { - c.set(Settings.JAILPAYITEM.getPath(), mat.toString().toLowerCase()); - pl.debug(Settings.JAILPAYPRICEINFINITE.getPath() + " <-- " + s.getString()); - count++; - } - } - break; - default: - break; - } - } - - pl.saveConfig(); - pl.getLogger().info("Converted " + count + " old config value" + (count == 1 ? "" : "s") + "."); - } - - private void loadOldData() throws SQLException { - OldInputOutput o = new OldInputOutput(pl, global); - - o.LoadJails(); - o.LoadPrisoners(); - o.LoadCells(); - o.freeConnection(); - } - - private void moveOldConfigs() throws IOException { - File to = new File(pl.getDataFolder() + File.separator + "preJail3Data"); - - Files.move(new File(pl.getDataFolder(), "global.yml"), to); - Files.move(new File(pl.getDataFolder(), "jails.yml"), to); - Files.move(new File(pl.getDataFolder(), "jailLog.txt"), to); - - File sqlite = new File(pl.getDataFolder(), "jail.sqlite"); - if(sqlite.exists()) { - Files.move(sqlite, to); - } - } -} diff --git a/src/main/java/com/graywolf336/jail/legacy/OldInputOutput.java b/src/main/java/com/graywolf336/jail/legacy/OldInputOutput.java deleted file mode 100644 index 1bd198c..0000000 --- a/src/main/java/com/graywolf336/jail/legacy/OldInputOutput.java +++ /dev/null @@ -1,248 +0,0 @@ -package com.graywolf336.jail.legacy; - -import java.io.File; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.concurrent.TimeUnit; - -import org.bukkit.Location; -import org.bukkit.configuration.file.YamlConfiguration; - -import com.graywolf336.jail.JailMain; -import com.graywolf336.jail.beans.Cell; -import com.graywolf336.jail.beans.Jail; -import com.graywolf336.jail.beans.Prisoner; -import com.graywolf336.jail.beans.SimpleLocation; - -public class OldInputOutput { - private JailMain pl; - private Connection connection; - private YamlConfiguration global; - - public OldInputOutput(JailMain plugin, YamlConfiguration global) { - this.pl = plugin; - this.global = global; - } - - public synchronized Connection getConnection() throws SQLException { - if (connection == null) connection = createConnection(); - if(OldSettings.getGlobalBoolean(global, OldSetting.UseMySQL)) { - if(!connection.isValid(10)) connection = createConnection(); - } - return connection; - } - - private Connection createConnection() { - try { - if (OldSettings.getGlobalBoolean(global, OldSetting.UseMySQL)) { - Class.forName("com.mysql.jdbc.Driver"); - Connection ret = DriverManager.getConnection(OldSettings.getGlobalString(global, OldSetting.MySQLConn), OldSettings.getGlobalString(global, OldSetting.MySQLUsername), OldSettings.getGlobalString(global, OldSetting.MySQLPassword)); - ret.setAutoCommit(false); - return ret; - } else { - Class.forName("org.sqlite.JDBC"); - Connection ret = DriverManager.getConnection("jdbc:sqlite:" + new File(pl.getDataFolder().getPath(), "jail.sqlite").getPath()); - ret.setAutoCommit(false); - return ret; - } - } catch (ClassNotFoundException e) { - e.printStackTrace(); - return null; - } catch (SQLException e) { - e.printStackTrace(); - return null; - } - } - - public synchronized void freeConnection() throws SQLException { - Connection conn = getConnection(); - if(conn != null) { - try { - conn.close(); - conn = null; - } catch (SQLException e) { - e.printStackTrace(); - } - } - } - - public void LoadJails() throws SQLException { - PreparedStatement ps = getConnection().prepareStatement("SELECT * FROM jail_zones"); - ResultSet set = ps.executeQuery(); - while (set.next()) { - String name = set.getString("name").toLowerCase(); - double X1 = set.getDouble("X1"); - double Y1 = set.getDouble("Y1"); - double Z1 = set.getDouble("Z1"); - double X2 = set.getDouble("X2"); - double Y2 = set.getDouble("Y2"); - double Z2 = set.getDouble("Z2"); - double teleX = set.getDouble("teleX"); - double teleY = set.getDouble("teleY"); - double teleZ = set.getDouble("teleZ"); - double freeX = set.getDouble("freeX"); - double freeY = set.getDouble("freeY"); - double freeZ = set.getDouble("freeZ"); - String teleWorld = set.getString("teleWorld"); - String freeWorld = set.getString("freeWorld"); - - Jail j = new Jail(pl, name); - j.setWorld(teleWorld); - j.setMaxPoint(new Location(pl.getServer().getWorld(teleWorld), X1, Y1, Z1)); - j.setMinPoint(new Location(pl.getServer().getWorld(teleWorld), X2, Y2, Z2)); - j.setTeleportIn(new Location(pl.getServer().getWorld(teleWorld), teleX, teleY, teleZ)); - j.setTeleportFree(new Location(pl.getServer().getWorld(freeWorld), freeX, freeY, freeZ)); - - pl.getJailManager().addJail(j, false); - } - - set.close(); - ps.close(); - } - - @SuppressWarnings("deprecation") - public void LoadPrisoners() throws SQLException { - if(pl.getJailManager().getJails().size() != 0) { - PreparedStatement ps = getConnection().prepareStatement("SELECT * FROM jail_prisoners"); - ResultSet set = ps.executeQuery(); - while (set.next()) { - Jail j = pl.getJailManager().getJail(set.getString("JailName")); - String name = set.getString("PlayerName").toLowerCase(); - - String transferDest = set.getString("TransferDest"); - boolean transfer = false; - if(!transferDest.isEmpty()) { - j = pl.getJailManager().getJail(transferDest); - transfer = true; - } - - //In the event the jail is null (jail didn't transfer or the prisoner was jailed offline and no jail specified) - //set their jail to the first one we have - if(j == null) { - j = pl.getJailManager().getJails().iterator().next(); - } - - Prisoner p = new Prisoner(pl.getServer().getOfflinePlayer(name).getUniqueId().toString(), name, set.getBoolean("muted"), TimeUnit.MILLISECONDS.convert(set.getInt("RemainTime") / 6, TimeUnit.MINUTES), set.getString("Jailer"), set.getString("reason")); - p.setOfflinePending(set.getBoolean("Offline")); - p.setToBeTransferred(transfer); - - String previousLoc = set.getString("PreviousPosition"); - if(!previousLoc.isEmpty()) { - String[] l = previousLoc.split(","); - p.setPreviousPosition(new Location(pl.getServer().getWorld(l[0]), Integer.parseInt(l[1]), Integer.parseInt(l[2]), Integer.parseInt(l[3]))); - } - - j.addPrisoner(p); - //String permissions = set.getString("Permissions"); TODO - } - - set.close(); - ps.close(); - }else { - pl.getLogger().warning("No prisoners were transferred from the old database since there aren't any jails defined."); - } - } - - public void LoadCells() throws SQLException { - Connection conn; - PreparedStatement ps = null; - ResultSet set = null; - - conn = getConnection(); - ps = conn.prepareStatement("SELECT * FROM jail_cells"); - set = ps.executeQuery(); - while (set.next()) { - String jailname = set.getString("JailName"); - String teleport = set.getString("Teleport"); - String sign = set.getString("Sign"); - String chest = set.getString("Chest"); - String player = set.getString("Player"); - String name = set.getString("Name"); - - if(name.isEmpty()) { - pl.getLogger().warning("We need a cell name in Jail 3.0, refusing to load a cell due to this."); - }else if(jailname.isEmpty()) { - pl.getLogger().warning("Refusing to load a cell (" + name + ") as it does not contain a reference to a valid Jail."); - }else { - Jail j = pl.getJailManager().getJail(jailname); - - if(j == null) { - pl.getLogger().warning("Refusing to load a cell (" + name + ") as it references a Jail which doesn't exist."); - }else if(j.isValidCell(name)) { - pl.getLogger().warning("Refusing to load a duplicate named cell, " + name + ", as another one exists with that same name."); - } else { - Cell c = new Cell(name); - - if(!teleport.isEmpty()) { - String[] l = teleport.split(","); - c.setTeleport(new SimpleLocation(j.getWorldName(), l[0], l[1], l[2])); - }else { - pl.getLogger().warning("Cell " + c.getName() + " in " + j.getName() + " has an empty teleport spot, might be buggy."); - } - - if(!chest.isEmpty()) { - String[] ch = chest.split(","); - c.setChestLocation(new SimpleLocation(j.getWorldName(), Double.valueOf(ch[0]), Double.valueOf(ch[1]), Double.valueOf(ch[2]))); - }else { - pl.getLogger().warning("Cell " + c.getName() + " in " + j.getName() + " has no chest."); - } - - if(!sign.isEmpty()) { - for(String s : sign.split(";")) { - pl.debug(s); - String[] si = s.split(","); - c.addSign(new SimpleLocation(j.getWorldName(), si[0], si[1], si[2])); - } - } - - //Load the prisoner if he is a valid prisoner - if(!player.isEmpty()) { - Prisoner p = j.getPrisonerByLastKnownName(player); - - if(p != null) { - j.removePrisoner(p); - c.setPrisoner(p); - } - } - - j.addCell(c, false); - } - } - } - - set.close(); - ps.close(); - } - - public void DeleteZone(String z) throws SQLException { - Connection conn = getConnection(); - PreparedStatement ps = conn.prepareStatement("DELETE FROM jail_zones WHERE name = ?"); - ps.setString(1, z); - ps.executeUpdate(); - conn.commit(); - ps.close(); - } - - public void DeleteCell(int x, int y, int z) throws SQLException { - Connection conn = getConnection(); - PreparedStatement ps = conn.prepareStatement("DELETE FROM jail_cells WHERE Teleport = ?"); - ps.setString(1, String.valueOf(x) + "," + String.valueOf(y) + "," + String.valueOf(z)); - ps.executeUpdate(); - conn.commit(); - - ps.close(); - } - - public void DeletePrisoner(String p) throws SQLException { - Connection conn = getConnection(); - PreparedStatement ps = conn.prepareStatement("DELETE FROM jail_prisoners WHERE PlayerName = ?"); - ps.setString(1, p); - ps.executeUpdate(); - conn.commit(); - - ps.close(); - } -} diff --git a/src/main/java/com/graywolf336/jail/legacy/OldSetting.java b/src/main/java/com/graywolf336/jail/legacy/OldSetting.java deleted file mode 100644 index 8b2dbfe..0000000 --- a/src/main/java/com/graywolf336/jail/legacy/OldSetting.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.graywolf336.jail.legacy; - -import java.util.ArrayList; -import java.util.Arrays; - -public enum OldSetting { - - Debug("Debug", false),//done - BroadcastJailMessage("Broadcast Jail Message", false),//done - AllowUpdateNotifications("AllowUpdateNotifications", true),//done - ExecutedCommandsOnJail("ExecutedCommandsOnJail", new ArrayList()),//done - ExecutedCommandsOnRelease("ExecutedCommandsOnRelease", new ArrayList()),//done - AutomaticMute("AutomaticMute", false),//done - StoreInventory("StoreInventory", true),//done - CanPrisonerOpenHisChest("CanPrisonerOpenHisChest", true),//done - LogJailingIntoConsole("LogJailingIntoConsole", false),//done - CountdownTimeWhenOffline("CountdownTimeWhenOffline", false),//done - ReleaseBackToPreviousPosition("ReleaseBackToPreviousPosition", false),//done - IgnorePrisonersSleepingState("IgnorePrisonersSleepingState", true),//done - TeleportPrisonerOnRelease("TeleportPrisonerOnRelease", true),//done - DefaultJailTime("DefaultJailTime", -1),//done - UseBukkitSchedulerTimer("UseBukkitSchedulerTimer", true),//done - JailCheckPrisonersPerPage("JailCheckPrisonersPerPage", 15),//TODO - - //JailStick - EnableJailStick("EnableJailStick", false),//done - JailStickParameters("JailStickParameters", "280,5,10,,police;50,5,20,,admin"),//done - - //Protections - EnableBlockDestroyProtection("Protections.EnableBlockDestroyProtection", true),//done - BlockDestroyPenalty("Protections.BlockDestroyPenalty", 15),//done - BlockDestroyProtectionExceptions("Protections.BlockDestroyProtectionExceptions", Arrays.asList(new String[]{"59"})),//done - EnableBlockPlaceProtection("Protections.EnableBlockPlaceProtection", true),//done - BlockPlacePenalty("Protections.BlockPlacePenalty", 10),//done - BlockPlaceProtectionExceptions("Protections.BlockPlaceProtectionExceptions", Arrays.asList(new String[]{"59"})),//done - EnablePlayerMoveProtection("Protections.EnablePlayerMoveProtection", true),//done - PlayerMoveProtectionPenalty("Protections.PlayerMoveProtectionPenalty", 30),//done - PlayerMoveProtectionAction("Protections.PlayerMoveProtectionAction", "teleport"),//TODO - WhitelistedCommands("Protections.WhitelistedCommands", new ArrayList()),//done - CommandProtectionPenalty("Protections.CommandProtectionPenalty", 10),//done - InteractionPenalty("Protections.InteractionPenalty", 10),//done - EnableExplosionProtection("Protections.EnableExplosionProtection", true),//done - EnablePVPProtection("Protections.EnablePVPProtection", true),//TODO: ??? I haven't even tested this out!!!! - EnableChangingPermissions("Protections.EnableChangingPermissions", false),//TODO - PrisonersPermissionsGroups("Protections.PrisonersPermissionsGroups", Arrays.asList("prisoners")),//TODO - RestorePermissionsToEscapedPrisoners("Protections.RestorePermissionsToEscapedPrisoners", true),//TODO - EnableFoodControl("Protections.EnableFoodControl", true),//done - FoodControlMinimumFood("Protections.FoodControlMinimumFood", 10),//done - FoodControlMaximumFood("Protections.FoodControlMaximumFood", 20),//done - PrisonersRecieveMessages("Protections.PlayerRecievesMessages", true), //done - - //JailPay - PricePerMinute("JailPay.PricePerMinute", 10),//done - PriceForInfiniteJail("JailPay.PriceForInfiniteJail", 9999),//done - JailPayCurrency("JailPay.Currency", 0),//done - - //Guards - GuardHealth("Guards.GuardHealth", 8),//TODO - GuardArmor("Guards.GuardArmor", 0),//TODO - GuardDamage("Guards.GuardDamage", 2),//TODO - NumbefOfGuards("Guards.NumberOfGuards", 3),//TODO - GuardInvincibility("Guards.GuardInvincibility", false),//TODO - GuardAttackSpeedPercent("Guards.GuardAttackSpeedPercent", 100),//TODO - RespawnGuards("Guards.RespawnGuards", true),//TODO - GuardTeleportDistance("Guards.GuardTeleportDistance", 10),//TODO - GuardTypes("Guards.GuardTypes", Arrays.asList(new String[] { "Zombie", "Silverfish" })),//TODO - - //Database - UseMySQL("Database.UseMySQL", false),//done - MySQLConn("Database.MySQLConn", "jdbc:mysql://localhost:3306/minecraft"),//done - MySQLUsername("Database.MySQLUSername", "root"),//done - MySQLPassword("Database.MySQLPassword", "password"),//done - - //Jail Vote - VoteJailEnabled("Jail Vote.Enabled", true),//TODO - VoteJailTime("Jail Vote.Time", 5),//TODO - VoteJailReason("Jail Vote.Reason", "Jailed by players"),//TODO - VoteJailVoteTime("Jail Vote.Vote Time", 60),//TODO - - //Jail swearing - EnableJailSwear("Jail Swear.Enabled", false),//TODO - JailSwearTime("Jail Swear.Time", 10),//TODO - BannedWords("Jail Swear.Banned Words", Arrays.asList(new String[] {"shit", "crap", "fuck", "cunt"}));//TODO - - private String name; - private Object def; - - private OldSetting(String Name, Object Def) { - name = Name; - def = Def; - } - - /** The string of the node the value is stored at in the config. */ - public String getString() { - return name; - } - - /** The default value for this config. */ - public Object getDefault() { - return def; - } -} diff --git a/src/main/java/com/graywolf336/jail/legacy/OldSettings.java b/src/main/java/com/graywolf336/jail/legacy/OldSettings.java deleted file mode 100644 index c9575fe..0000000 --- a/src/main/java/com/graywolf336/jail/legacy/OldSettings.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.graywolf336.jail.legacy; - -import java.util.List; - -import org.bukkit.configuration.file.YamlConfiguration; - -public class OldSettings { - - public static Object getGlobalProperty(YamlConfiguration config, OldSetting setting) { - Object property = config.get(setting.getString()); - if (property == null) { - property = setting.getDefault(); - } - - return property; - } - - public static Boolean getGlobalBoolean(YamlConfiguration config, OldSetting setting) { - return (Boolean) getGlobalProperty(config, setting); - } - - public static Integer getGlobalInt(YamlConfiguration config, OldSetting setting) { - return (Integer) getGlobalProperty(config, setting); - } - - public static String getGlobalString(YamlConfiguration config, OldSetting setting) { - return (String) getGlobalProperty(config, setting); - } - - public static List getGlobalList(YamlConfiguration config, OldSetting setting) { - return (List) getGlobalProperty(config, setting); - } -} diff --git a/src/main/java/com/graywolf336/jail/listeners/ProtectionListener.java b/src/main/java/com/graywolf336/jail/listeners/ProtectionListener.java index ebd0488..62520fe 100644 --- a/src/main/java/com/graywolf336/jail/listeners/ProtectionListener.java +++ b/src/main/java/com/graywolf336/jail/listeners/ProtectionListener.java @@ -223,7 +223,7 @@ public class ProtectionListener implements Listener { if(pl.getJailManager().isPlayerJailed(event.getPlayer().getUniqueId())) { //Next, check if crap trampling protection is enabled if(pl.getConfig().getBoolean(Settings.CROPTRAMPLINGPROTECTION.getPath())) { - if(event.getAction() == Action.PHYSICAL && event.getClickedBlock().getType() == Material.SOIL) { + if(event.getAction() == Action.PHYSICAL && event.getClickedBlock().getType() == Material.FARMLAND) { if(pl.getJailManager().getJailFromLocation(event.getClickedBlock().getLocation()) != null) { try { long add = Util.getTime(pl.getConfig().getString(Settings.CROPTRAMPLINGPENALTY.getPath())); diff --git a/src/main/java/com/graywolf336/jail/steps/CellCreationSteps.java b/src/main/java/com/graywolf336/jail/steps/CellCreationSteps.java index 4cbd759..c30ca8c 100644 --- a/src/main/java/com/graywolf336/jail/steps/CellCreationSteps.java +++ b/src/main/java/com/graywolf336/jail/steps/CellCreationSteps.java @@ -93,7 +93,7 @@ public class CellCreationSteps { /** Applies the second step, which is adding signs to the cell. */ private void secondStep(CreationPlayer cp, Player player, Block block) { - if (block.getType() == Material.SIGN_POST || block.getType() == Material.WALL_SIGN) { + if (block.getType() == Material.SIGN || block.getType() == Material.WALL_SIGN) { cp.addSign(new SimpleLocation(block.getLocation())); //Set the sign's first text diff --git a/src/test/java/test/java/com/graywolf336/jail/TestUtilClass.java b/src/test/java/test/java/com/graywolf336/jail/TestUtilClass.java index ac97ad3..9641c29 100644 --- a/src/test/java/test/java/com/graywolf336/jail/TestUtilClass.java +++ b/src/test/java/test/java/com/graywolf336/jail/TestUtilClass.java @@ -26,7 +26,7 @@ public class TestUtilClass { @BeforeClass public static void setUp() throws Exception { list = new ArrayList(); - list.add(Material.SEEDS.toString()); + list.add(Material.WHEAT_SEEDS.toString()); list.add("coal_ore"); list.add("torch"); array = new String[] { Material.SEEDS.toString(), "coal_ore", "torch" }; @@ -81,7 +81,7 @@ public class TestUtilClass { @Test public void testInList() { - assertTrue(Util.isStringInsideList("seeds", list)); + assertTrue(Util.isStringInsideList("wheat_seeds", list)); assertTrue(Util.isStringInsideList(Material.COAL_ORE.toString(), list)); assertTrue(Util.isStringInsideList("tOrCh", list)); } diff --git a/src/test/java/test/java/com/graywolf336/jail/util/MockWorldFactory.java b/src/test/java/test/java/com/graywolf336/jail/util/MockWorldFactory.java index 85de0e4..45b27ac 100644 --- a/src/test/java/test/java/com/graywolf336/jail/util/MockWorldFactory.java +++ b/src/test/java/test/java/com/graywolf336/jail/util/MockWorldFactory.java @@ -100,7 +100,6 @@ public class MockWorldFactory { } }); when(mockWorld.getBlockAt(any(Location.class))).thenAnswer(new Answer() { - @SuppressWarnings("deprecation") public Block answer(InvocationOnMock invocation) throws Throwable { Location loc; try { @@ -115,7 +114,6 @@ public class MockWorldFactory { } when(mockBlock.getType()).thenReturn(blockType); - when(mockBlock.getTypeId()).thenReturn(blockType.getId()); when(mockBlock.getWorld()).thenReturn(loc.getWorld()); when(mockBlock.getX()).thenReturn(loc.getBlockX()); when(mockBlock.getY()).thenReturn(loc.getBlockY()); @@ -145,7 +143,6 @@ public class MockWorldFactory { } }); when(mockWorld.getBlockAt(any(Location.class))).thenAnswer(new Answer() { - @SuppressWarnings("deprecation") public Block answer(InvocationOnMock invocation) throws Throwable { Location loc; try { @@ -158,7 +155,6 @@ public class MockWorldFactory { Material blockType = Material.AIR; when(mockBlock.getType()).thenReturn(blockType); - when(mockBlock.getTypeId()).thenReturn(blockType.getId()); when(mockBlock.getWorld()).thenReturn(loc.getWorld()); when(mockBlock.getX()).thenReturn(loc.getBlockX()); when(mockBlock.getY()).thenReturn(loc.getBlockY()); diff --git a/src/test/java/test/java/com/graywolf336/jail/util/TestInstanceCreator.java b/src/test/java/test/java/com/graywolf336/jail/util/TestInstanceCreator.java index 167b579..938ebce 100644 --- a/src/test/java/test/java/com/graywolf336/jail/util/TestInstanceCreator.java +++ b/src/test/java/test/java/com/graywolf336/jail/util/TestInstanceCreator.java @@ -31,7 +31,7 @@ import org.bukkit.WorldCreator; import org.bukkit.WorldType; import org.bukkit.command.CommandSender; import org.bukkit.command.ConsoleCommandSender; -import org.bukkit.craftbukkit.v1_9_R1.inventory.CraftItemFactory; +import org.bukkit.craftbukkit.v1_13_R2.inventory.CraftItemFactory; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.PlayerInventory;