Merge master
This commit is contained in:
commit
75571ad8ca
14
pom.xml
14
pom.xml
@ -1,5 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>com.graywolf336</groupId>
|
<groupId>com.graywolf336</groupId>
|
||||||
@ -56,14 +57,14 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.bukkit</groupId>
|
<groupId>org.bukkit</groupId>
|
||||||
<artifactId>bukkit</artifactId>
|
<artifactId>bukkit</artifactId>
|
||||||
<version>1.9-R0.1-SNAPSHOT</version>
|
<version>1.13.2-R0.1-SNAPSHOT</version>
|
||||||
<type>jar</type>
|
<type>jar</type>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.bukkit</groupId>
|
<groupId>org.bukkit</groupId>
|
||||||
<artifactId>craftbukkit</artifactId>
|
<artifactId>craftbukkit</artifactId>
|
||||||
<version>1.9-R0.1-SNAPSHOT</version>
|
<version>1.13.2-R0.1-SNAPSHOT</version>
|
||||||
<type>jar</type>
|
<type>jar</type>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
@ -71,7 +72,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.sk89q.worldedit</groupId>
|
<groupId>com.sk89q.worldedit</groupId>
|
||||||
<artifactId>worldedit-bukkit</artifactId>
|
<artifactId>worldedit-bukkit</artifactId>
|
||||||
<version>6.1</version>
|
<version>7.0.0-SNAPSHOT</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
<optional>true</optional>
|
<optional>true</optional>
|
||||||
</dependency>
|
</dependency>
|
||||||
@ -167,7 +168,6 @@
|
|||||||
<build>
|
<build>
|
||||||
<directory>target</directory>
|
<directory>target</directory>
|
||||||
<outputDirectory>target/classes</outputDirectory>
|
<outputDirectory>target/classes</outputDirectory>
|
||||||
<!-- <sourceDirectory>${basedir}/src</sourceDirectory> -->
|
|
||||||
<defaultGoal>clean install test</defaultGoal>
|
<defaultGoal>clean install test</defaultGoal>
|
||||||
|
|
||||||
<resources>
|
<resources>
|
||||||
@ -324,12 +324,12 @@
|
|||||||
<repository>
|
<repository>
|
||||||
<id>repo-release</id>
|
<id>repo-release</id>
|
||||||
<name>Jail Releases</name>
|
<name>Jail Releases</name>
|
||||||
<url>https://repo2.craftyn.com/repository/internal/</url>
|
<url>https://repo.craftyn.com/repository/internal/</url>
|
||||||
</repository>
|
</repository>
|
||||||
<snapshotRepository>
|
<snapshotRepository>
|
||||||
<id>repo-snapshot</id>
|
<id>repo-snapshot</id>
|
||||||
<name>Jail Snapshots</name>
|
<name>Jail Snapshots</name>
|
||||||
<url>https://repo2.craftyn.com/repository/snapshots/</url>
|
<url>https://repo.craftyn.com/repository/snapshots/</url>
|
||||||
</snapshotRepository>
|
</snapshotRepository>
|
||||||
</distributionManagement>
|
</distributionManagement>
|
||||||
</project>
|
</project>
|
@ -1,6 +1,7 @@
|
|||||||
package com.graywolf336.jail;
|
package com.graywolf336.jail;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.DriverManager;
|
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. */
|
/** Loads the language file from disk, if there is none then we save the default one. */
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
protected void loadLanguage() {
|
protected void loadLanguage() {
|
||||||
String language = pl.getConfig().getString(Settings.LANGUAGE.getPath());
|
String language = pl.getConfig().getString(Settings.LANGUAGE.getPath());
|
||||||
boolean save = false;
|
boolean save = false;
|
||||||
@ -60,18 +60,18 @@ public class JailIO {
|
|||||||
}else {
|
}else {
|
||||||
pl.getLogger().severe("The language file can not be a folder.");
|
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.");
|
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;
|
save = true;
|
||||||
}
|
}
|
||||||
}else {
|
}else {
|
||||||
pl.getLogger().warning("Loading the default language of: en");
|
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.");
|
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;
|
save = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Make sure we have all the new language settings loaded
|
//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 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) {
|
if(save) {
|
||||||
|
@ -19,7 +19,6 @@ import com.graywolf336.jail.enums.Settings;
|
|||||||
import com.graywolf336.jail.events.JailPluginReloadedEvent;
|
import com.graywolf336.jail.events.JailPluginReloadedEvent;
|
||||||
import com.graywolf336.jail.interfaces.IJailPayManager;
|
import com.graywolf336.jail.interfaces.IJailPayManager;
|
||||||
import com.graywolf336.jail.interfaces.IJailStickManager;
|
import com.graywolf336.jail.interfaces.IJailStickManager;
|
||||||
import com.graywolf336.jail.legacy.LegacyManager;
|
|
||||||
import com.graywolf336.jail.listeners.CacheListener;
|
import com.graywolf336.jail.listeners.CacheListener;
|
||||||
import com.graywolf336.jail.listeners.CellSignListener;
|
import com.graywolf336.jail.listeners.CellSignListener;
|
||||||
import com.graywolf336.jail.listeners.EntityListener;
|
import com.graywolf336.jail.listeners.EntityListener;
|
||||||
@ -63,14 +62,6 @@ public class JailMain extends JavaPlugin {
|
|||||||
|
|
||||||
hcm = new HandCuffManager();
|
hcm = new HandCuffManager();
|
||||||
jm = new JailManager(this);
|
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 = new JailIO(this);
|
||||||
io.loadLanguage();
|
io.loadLanguage();
|
||||||
|
|
||||||
@ -83,11 +74,6 @@ public class JailMain extends JavaPlugin {
|
|||||||
|
|
||||||
io.loadJails();
|
io.loadJails();
|
||||||
|
|
||||||
//If we converted something, let's save EVERYTHING including the cells
|
|
||||||
if(lm.wasAnythingConverted()) {
|
|
||||||
io.saveEverything();
|
|
||||||
}
|
|
||||||
|
|
||||||
cmdHand = new CommandHandler(this);
|
cmdHand = new CommandHandler(this);
|
||||||
jh = new JailHandler(this);
|
jh = new JailHandler(this);
|
||||||
pm = new PrisonerManager(this);
|
pm = new PrisonerManager(this);
|
||||||
|
@ -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
|
//only eject them if they're inside a vehicle and also eject anyone else on top of them
|
||||||
if(player.isInsideVehicle()) {
|
if(player.isInsideVehicle()) {
|
||||||
player.getVehicle().eject();
|
player.getVehicle().eject();
|
||||||
player.getPassenger().eject();
|
|
||||||
player.eject();
|
player.eject();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -452,11 +451,10 @@ public class PrisonerManager {
|
|||||||
//the *future* move checkers won't be canceling our moving.
|
//the *future* move checkers won't be canceling our moving.
|
||||||
prisoner.setTeleporting(true);
|
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
|
//them so we can possibly teleport them
|
||||||
if(player.isInsideVehicle()) {
|
if(player.isInsideVehicle()) {
|
||||||
player.getVehicle().eject();
|
player.getVehicle().eject();
|
||||||
player.getPassenger().eject();
|
|
||||||
player.eject();
|
player.eject();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -205,7 +205,7 @@ public class Util {
|
|||||||
* @return The {@link ItemStack} to use for creation
|
* @return The {@link ItemStack} to use for creation
|
||||||
*/
|
*/
|
||||||
public static ItemStack getWand() {
|
public static ItemStack getWand() {
|
||||||
ItemStack wand = new ItemStack(Material.CLAY_BRICK);
|
ItemStack wand = new ItemStack(Material.BRICK);
|
||||||
ItemMeta meta = wand.getItemMeta();
|
ItemMeta meta = wand.getItemMeta();
|
||||||
meta.setDisplayName(ChatColor.AQUA + "Jail Wand");
|
meta.setDisplayName(ChatColor.AQUA + "Jail Wand");
|
||||||
LinkedList<String> lore = new LinkedList<String>();
|
LinkedList<String> lore = new LinkedList<String>();
|
||||||
@ -512,4 +512,22 @@ public class Util {
|
|||||||
Bukkit.getLogger().severe("Unable to restore " + player.getName() + "'s inventory.");
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -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<String> sticks = new LinkedList<String>();
|
|
||||||
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<String> exceptions = (List<String>) OldSettings.getGlobalList(global, s);
|
|
||||||
LinkedList<String> whitelist = new LinkedList<String>();
|
|
||||||
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<String> exceptions = (List<String>) OldSettings.getGlobalList(global, s);
|
|
||||||
LinkedList<String> whitelist = new LinkedList<String>();
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -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();
|
|
||||||
}
|
|
||||||
}
|
|
@ -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<String>()),//done
|
|
||||||
ExecutedCommandsOnRelease("ExecutedCommandsOnRelease", new ArrayList<String>()),//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<String>()),//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;
|
|
||||||
}
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -223,7 +223,7 @@ public class ProtectionListener implements Listener {
|
|||||||
if(pl.getJailManager().isPlayerJailed(event.getPlayer().getUniqueId())) {
|
if(pl.getJailManager().isPlayerJailed(event.getPlayer().getUniqueId())) {
|
||||||
//Next, check if crap trampling protection is enabled
|
//Next, check if crap trampling protection is enabled
|
||||||
if(pl.getConfig().getBoolean(Settings.CROPTRAMPLINGPROTECTION.getPath())) {
|
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) {
|
if(pl.getJailManager().getJailFromLocation(event.getClickedBlock().getLocation()) != null) {
|
||||||
try {
|
try {
|
||||||
long add = Util.getTime(pl.getConfig().getString(Settings.CROPTRAMPLINGPENALTY.getPath()));
|
long add = Util.getTime(pl.getConfig().getString(Settings.CROPTRAMPLINGPENALTY.getPath()));
|
||||||
|
@ -93,7 +93,7 @@ public class CellCreationSteps {
|
|||||||
|
|
||||||
/** Applies the second step, which is adding signs to the cell. */
|
/** Applies the second step, which is adding signs to the cell. */
|
||||||
private void secondStep(CreationPlayer cp, Player player, Block block) {
|
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()));
|
cp.addSign(new SimpleLocation(block.getLocation()));
|
||||||
|
|
||||||
//Set the sign's first text
|
//Set the sign's first text
|
||||||
|
@ -26,7 +26,7 @@ public class TestUtilClass {
|
|||||||
@BeforeClass
|
@BeforeClass
|
||||||
public static void setUp() throws Exception {
|
public static void setUp() throws Exception {
|
||||||
list = new ArrayList<String>();
|
list = new ArrayList<String>();
|
||||||
list.add(Material.SEEDS.toString());
|
list.add(Material.WHEAT_SEEDS.toString());
|
||||||
list.add("coal_ore");
|
list.add("coal_ore");
|
||||||
list.add("torch");
|
list.add("torch");
|
||||||
array = new String[] { Material.SEEDS.toString(), "coal_ore", "torch" };
|
array = new String[] { Material.SEEDS.toString(), "coal_ore", "torch" };
|
||||||
@ -81,7 +81,7 @@ public class TestUtilClass {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testInList() {
|
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(Material.COAL_ORE.toString(), list));
|
||||||
assertTrue(Util.isStringInsideList("tOrCh", list));
|
assertTrue(Util.isStringInsideList("tOrCh", list));
|
||||||
}
|
}
|
||||||
|
@ -100,7 +100,6 @@ public class MockWorldFactory {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
when(mockWorld.getBlockAt(any(Location.class))).thenAnswer(new Answer<Block>() {
|
when(mockWorld.getBlockAt(any(Location.class))).thenAnswer(new Answer<Block>() {
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
public Block answer(InvocationOnMock invocation) throws Throwable {
|
public Block answer(InvocationOnMock invocation) throws Throwable {
|
||||||
Location loc;
|
Location loc;
|
||||||
try {
|
try {
|
||||||
@ -115,7 +114,6 @@ public class MockWorldFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
when(mockBlock.getType()).thenReturn(blockType);
|
when(mockBlock.getType()).thenReturn(blockType);
|
||||||
when(mockBlock.getTypeId()).thenReturn(blockType.getId());
|
|
||||||
when(mockBlock.getWorld()).thenReturn(loc.getWorld());
|
when(mockBlock.getWorld()).thenReturn(loc.getWorld());
|
||||||
when(mockBlock.getX()).thenReturn(loc.getBlockX());
|
when(mockBlock.getX()).thenReturn(loc.getBlockX());
|
||||||
when(mockBlock.getY()).thenReturn(loc.getBlockY());
|
when(mockBlock.getY()).thenReturn(loc.getBlockY());
|
||||||
@ -145,7 +143,6 @@ public class MockWorldFactory {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
when(mockWorld.getBlockAt(any(Location.class))).thenAnswer(new Answer<Block>() {
|
when(mockWorld.getBlockAt(any(Location.class))).thenAnswer(new Answer<Block>() {
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
public Block answer(InvocationOnMock invocation) throws Throwable {
|
public Block answer(InvocationOnMock invocation) throws Throwable {
|
||||||
Location loc;
|
Location loc;
|
||||||
try {
|
try {
|
||||||
@ -158,7 +155,6 @@ public class MockWorldFactory {
|
|||||||
Material blockType = Material.AIR;
|
Material blockType = Material.AIR;
|
||||||
|
|
||||||
when(mockBlock.getType()).thenReturn(blockType);
|
when(mockBlock.getType()).thenReturn(blockType);
|
||||||
when(mockBlock.getTypeId()).thenReturn(blockType.getId());
|
|
||||||
when(mockBlock.getWorld()).thenReturn(loc.getWorld());
|
when(mockBlock.getWorld()).thenReturn(loc.getWorld());
|
||||||
when(mockBlock.getX()).thenReturn(loc.getBlockX());
|
when(mockBlock.getX()).thenReturn(loc.getBlockX());
|
||||||
when(mockBlock.getY()).thenReturn(loc.getBlockY());
|
when(mockBlock.getY()).thenReturn(loc.getBlockY());
|
||||||
|
@ -31,7 +31,7 @@ import org.bukkit.WorldCreator;
|
|||||||
import org.bukkit.WorldType;
|
import org.bukkit.WorldType;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.ConsoleCommandSender;
|
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.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.PlayerInventory;
|
import org.bukkit.inventory.PlayerInventory;
|
||||||
|
Loading…
Reference in New Issue
Block a user