First work on converting the old global config file to the new one.
For #23
This commit is contained in:
parent
065f273c14
commit
060bb125a4
46
README.md
46
README.md
@ -9,37 +9,47 @@ Beta 2 Changes
|
||||
*Changes since Beta 1*
|
||||
* Fix the default Jail Stick not being loaded correctly, [#21](https://github.com/graywolf336/Jail/issues/21)
|
||||
* Implement Scoreboards, with title and time configurable. ([#15](https://github.com/graywolf336/Jail/issues/15))
|
||||
* Convert old data and config values, only some are done and if you don't want the old data delete your `global.yml`
|
||||
* Add config option to disallow the usage of Jail Sticks
|
||||
|
||||
Beta 1 Changes
|
||||
===
|
||||
*Changes since alpha*
|
||||
- MySQL storage is now a valid option for storage ([#18](https://github.com/graywolf336/Jail/issues/18))
|
||||
- MySQL data validation, basically if a cell or prisoner reference a jail which no longer exists they are removed
|
||||
- Fix a bug with not being able to unjail someone forcefully if they were in a cell ([#17](https://github.com/graywolf336/Jail/issues/17))
|
||||
- Add the record keeping system ([#12](https://github.com/graywolf336/Jail/issues/12))
|
||||
- Added Jail Sticks, format of them has slightly changed ([#16](https://github.com/graywolf336/Jail/issues/16))
|
||||
* MySQL storage is now a valid option for storage ([#18](https://github.com/graywolf336/Jail/issues/18))
|
||||
* MySQL data validation, basically if a cell or prisoner reference a jail which no longer exists they are removed
|
||||
* Fix a bug with not being able to unjail someone forcefully if they were in a cell ([#17](https://github.com/graywolf336/Jail/issues/17))
|
||||
* Add the record keeping system ([#12](https://github.com/graywolf336/Jail/issues/12))
|
||||
* Added Jail Sticks, format of them has slightly changed ([#16](https://github.com/graywolf336/Jail/issues/16))
|
||||
|
||||
Changes
|
||||
===
|
||||
*With this being version 3 of this plugin, a couple things have changed but the core concept is still the exact same. Here are some drastic changes:*
|
||||
- Time can now be entered different formats, 3hours or 15mins or 4days
|
||||
- New language system
|
||||
- New config system (per jail configs are going to make a come back)
|
||||
- Items in the config use item names now, **not** the ids
|
||||
* Time can now be entered different formats, 3hours or 15mins or 4days
|
||||
* New language system
|
||||
* New config system (per jail configs are going to make a come back)
|
||||
* Items in the config use item names now, **not** the ids
|
||||
* All commands are prevented by default, now there is **only** a whitelist
|
||||
* All interactions are prevented by default, add to the whitelist what you want
|
||||
* If store inventory is not enabled, inventories are deleted upon jailing
|
||||
* Sign text has a new format, old format will not be converted
|
||||
* Max reason length has been removed, might be added back in if needed
|
||||
|
||||
ToDo
|
||||
===
|
||||
- Guards
|
||||
* Jail pay
|
||||
* Jail set
|
||||
* Jail vote
|
||||
* Jailing for swearing
|
||||
* Guards (PlayerMoveProtectionAction - when they try to move do we teleport them back, let the guards get them, or nothing)
|
||||
* Storing permissions
|
||||
* Update Notifications
|
||||
* Pages on jail list
|
||||
|
||||
Done
|
||||
Notice
|
||||
===
|
||||
- Muted Prisoners are now muted
|
||||
- Implemented counting down time **always use the bukkit scheduler, unless your tick rate is slow as the other way we do it is not always stable**
|
||||
- New command system, internally we handle commands a lot better
|
||||
- Delete commands are now remove
|
||||
- Language system (adding language strings as I use them, be patient with me)
|
||||
- Handcuffs are now implemented
|
||||
- The time passed can be represented by time shorthand, aka "3hours" or "15minutes" or etc (defaults to minutes)
|
||||
* Old messages (language) will not be converted
|
||||
* MaximumAFKTime setting will not convert over, the format isn't clear and the old version didn't provide a way to get values with decimal places
|
||||
* EnableLogging has been removed, we are always going to be logging (unless major request to control this)
|
||||
|
||||
[Jail 3.0 JavaDoc](http://ci.graywolf336.com/job/Jail/javadoc)
|
||||
====
|
||||
|
@ -161,6 +161,13 @@ public class JailMain extends JavaPlugin {
|
||||
}
|
||||
}
|
||||
|
||||
/** Reloads the Jail Sticks, so the new ones can be loaded from the config. */
|
||||
public void reloadJailSticks() {
|
||||
this.jsm.removeAllStickUsers();
|
||||
this.jsm = null;
|
||||
this.jsm = new JailStickManager(this);
|
||||
}
|
||||
|
||||
/** Gets the {@link HandCuffManager} instance. */
|
||||
public HandCuffManager getHandCuffManager() {
|
||||
return this.hcm;
|
||||
|
@ -8,12 +8,13 @@ import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.graywolf336.jail.beans.Stick;
|
||||
import com.graywolf336.jail.enums.Settings;
|
||||
|
||||
/**
|
||||
* Manages the jail stick users.
|
||||
*
|
||||
* @author graywolf336
|
||||
* @version 1.0.0
|
||||
* @version 1.0.1
|
||||
* @since 3.0.0
|
||||
*
|
||||
*/
|
||||
@ -32,7 +33,7 @@ public class JailStickManager {
|
||||
FileConfiguration config = pl.getConfig();
|
||||
|
||||
//item name,time,jail name,reason
|
||||
for(String s : config.getStringList("jailstick")) {
|
||||
for(String s : config.getStringList(Settings.JAILSTICKSTICKS.getPath())) {
|
||||
String[] a = s.split(",");
|
||||
|
||||
//Check if the jail given, if any, exists
|
||||
@ -161,4 +162,11 @@ public class JailStickManager {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/** Removes all the users currently using the sticks. */
|
||||
public void removeAllStickUsers() {
|
||||
for(String s: stickers) {
|
||||
this.removeUsingStick(s);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -96,7 +96,7 @@ public class PrisonerManager {
|
||||
}
|
||||
|
||||
//Log the message, if it is enabled
|
||||
if(pl.getConfig().getBoolean(Settings.LOGJAILING.getPath(), true) && !broadcasted) {
|
||||
if(pl.getConfig().getBoolean(Settings.LOGJAILINGTOCONSOLE.getPath(), true) && !broadcasted) {
|
||||
pl.getServer().getConsoleSender().sendMessage(msg);
|
||||
}
|
||||
}
|
||||
|
@ -51,7 +51,7 @@ public class UnJailCommand implements Command {
|
||||
}
|
||||
}
|
||||
|
||||
if(jm.getPlugin().getConfig().getBoolean(Settings.LOGJAILING.getPath())) {
|
||||
if(jm.getPlugin().getConfig().getBoolean(Settings.LOGJAILINGTOCONSOLE.getPath())) {//TODO: Fix this setting, as this is wrong
|
||||
jm.getPlugin().getLogger().info(jm.getPlugin().getJailIO().getLanguageString(LangString.BROADCASTUNJAILING, new String[] { args[0], sender.getName() }));
|
||||
}
|
||||
}else {
|
||||
|
@ -24,7 +24,7 @@ public class UnJailForceCommand implements Command {
|
||||
jm.getPlugin().getPrisonerManager().forceRelease(jm.getPrisoner(args[0]));
|
||||
sender.sendMessage(jm.getPlugin().getJailIO().getLanguageString(LangString.FORCEUNJAILED, args[0]));
|
||||
|
||||
if(jm.getPlugin().getConfig().getBoolean(Settings.LOGJAILING.getPath())) {
|
||||
if(jm.getPlugin().getConfig().getBoolean(Settings.LOGJAILINGTOCONSOLE.getPath())) {//TODO: Fix this setting being used wrongly
|
||||
jm.getPlugin().getLogger().info(jm.getPlugin().getJailIO().getLanguageString(LangString.BROADCASTUNJAILING, new String[] { args[0], sender.getName() }));
|
||||
}
|
||||
}else {
|
||||
|
@ -6,6 +6,7 @@ import com.graywolf336.jail.JailManager;
|
||||
import com.graywolf336.jail.command.Command;
|
||||
import com.graywolf336.jail.command.CommandInfo;
|
||||
import com.graywolf336.jail.enums.LangString;
|
||||
import com.graywolf336.jail.enums.Settings;
|
||||
|
||||
@CommandInfo(
|
||||
maxArgs = 0,
|
||||
@ -17,12 +18,16 @@ import com.graywolf336.jail.enums.LangString;
|
||||
)
|
||||
public class JailStickCommand implements Command {
|
||||
public boolean execute(JailManager jm, CommandSender sender, String... args) throws Exception {
|
||||
boolean using = jm.getPlugin().getJailStickManager().toggleUsingStick(sender.getName());
|
||||
|
||||
if(using) {
|
||||
sender.sendMessage(jm.getPlugin().getJailIO().getLanguageString(LangString.JAILSTICKENABLED));
|
||||
if(jm.getPlugin().getConfig().getBoolean(Settings.JAILSTICKENABLED.getPath())) {
|
||||
boolean using = jm.getPlugin().getJailStickManager().toggleUsingStick(sender.getName());
|
||||
|
||||
if(using) {
|
||||
sender.sendMessage(jm.getPlugin().getJailIO().getLanguageString(LangString.JAILSTICKENABLED));
|
||||
}else {
|
||||
sender.sendMessage(jm.getPlugin().getJailIO().getLanguageString(LangString.JAILSTICKDISABLED));
|
||||
}
|
||||
}else {
|
||||
sender.sendMessage(jm.getPlugin().getJailIO().getLanguageString(LangString.JAILSTICKDISABLED));
|
||||
sender.sendMessage(jm.getPlugin().getJailIO().getLanguageString(LangString.JAILSTICKUSAGEDISABLED));
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -128,6 +128,8 @@ public enum LangString {
|
||||
JAILSTICKDISABLED ("general"),
|
||||
/** The message sent whenever a player toggles using jail stick to enabled. */
|
||||
JAILSTICKENABLED ("general"),
|
||||
/** The message sent whenever a player tries to toggle using jail stick but the config has it disabled. */
|
||||
JAILSTICKUSAGEDISABLED ("general"),
|
||||
/** Message sent when doing something that requires a cell but the given name of a cell doesn't exist. */
|
||||
NOCELL ("general"),
|
||||
/** Message sent when needing a cell or something and there are no cells. */
|
||||
|
@ -26,18 +26,20 @@ public enum Settings {
|
||||
FOODCONTROLMAX("jailing.during.foodControlMax"),
|
||||
FOODCONTROLMIN("jailing.during.foodControlMin"),
|
||||
IGNORESLEEPINGSTATE("jailing.during.ignoreSleeping"),
|
||||
JAILSTICKENABLED("jailstick.enabled"),
|
||||
JAILSTICKSTICKS("jailstick.sticks"),
|
||||
JAILDEFAULTTIME("jailing.jail.defaultTime"),
|
||||
JAILEDGAMEMODE("jailing.jail.gameMode"),
|
||||
JAILEDSTOREINVENTORY("jailing.jail.storeInventory"),
|
||||
LOGJAILING("jailing.jail.logToConsole"),
|
||||
LOGJAILINGTOCONSOLE("jailing.jail.logToConsole"),
|
||||
MAXAFKTIME("jailing.during.maxAFKTime"),
|
||||
MOVEPENALTY("jailing.during.movePenalty"),
|
||||
MOVEPROTECTION("jailing.during.moveProtection"),
|
||||
OPENCHEST("jailing.during.openChest"),
|
||||
PREVENTINTERACTIONBLOCKS("jailing.during.preventInteractionBlocks"),
|
||||
PREVENTINTERACTIONBLOCKSPENALTY("jailing.during.preventInteractionBlocksPenalty"),
|
||||
PREVENTINTERACTIONITEMS("jailing.during.preventInteractionItems"),
|
||||
PREVENTINTERACTIONITEMSPENALTY("jailing.during.preventInteractionItemsPenalty"),
|
||||
PRISONEROPENCHEST("jailing.during.openChest"),
|
||||
RECIEVEMESSAGES("jailing.during.recieveMessages"),
|
||||
RELEASETOPREVIOUSPOSITION("jailing.release.backToPreviousPosition"),
|
||||
RESTOREPREVIOUSGAMEMODE("jailing.release.restorePreviousGameMode"),
|
||||
|
380
src/main/java/com/graywolf336/jail/legacy/LegacyManager.java
Normal file
380
src/main/java/com/graywolf336/jail/legacy/LegacyManager.java
Normal file
@ -0,0 +1,380 @@
|
||||
package com.graywolf336.jail.legacy;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
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.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;
|
||||
|
||||
public LegacyManager(JailMain plugin) {
|
||||
this.pl = plugin;
|
||||
}
|
||||
|
||||
/** Returns true/false if the old config, global.yml, exists and needs to be converted. */
|
||||
public boolean doWeNeedToConvert() {
|
||||
File f = new File(pl.getDataFolder(), "global.yml");
|
||||
|
||||
return f.exists();
|
||||
}
|
||||
|
||||
public boolean loadOldData() {
|
||||
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());
|
||||
}finally {
|
||||
|
||||
}
|
||||
}else {
|
||||
pl.debug("The old config file, global.yml, was not found so not laoding anything.");
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
loadOldConfig();
|
||||
}catch (Exception e) {
|
||||
pl.getLogger().severe("Failed to load the old configuration for some reason.");
|
||||
return false;
|
||||
}
|
||||
|
||||
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));
|
||||
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.JAILDEFAULTTIME.getPath(), OldSettings.getGlobalInt(global, s));
|
||||
pl.debug(Settings.JAILDEFAULTTIME.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;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
pl.getLogger().info("Converted " + count + " old config value" + (count == 1 ? "" : "s") + ".");
|
||||
}
|
||||
}
|
102
src/main/java/com/graywolf336/jail/legacy/OldSetting.java
Normal file
102
src/main/java/com/graywolf336/jail/legacy/OldSetting.java
Normal file
@ -0,0 +1,102 @@
|
||||
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),//TODO
|
||||
PriceForInfiniteJail("JailPay.PriceForInfiniteJail", 9999),//TODO
|
||||
JailPayCurrency("JailPay.Currency", 0),//TODO
|
||||
|
||||
//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;
|
||||
}
|
||||
}
|
33
src/main/java/com/graywolf336/jail/legacy/OldSettings.java
Normal file
33
src/main/java/com/graywolf336/jail/legacy/OldSettings.java
Normal file
@ -0,0 +1,33 @@
|
||||
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);
|
||||
}
|
||||
}
|
@ -170,7 +170,7 @@ public class ProtectionListener implements Listener {
|
||||
if(event.getAction() == Action.RIGHT_CLICK_BLOCK && event.getClickedBlock().getType() == Material.CHEST) {
|
||||
//Let's get the cell the player is in, then check if it is null or not.
|
||||
if(pl.getJailManager().getJailPlayerIsIn(event.getPlayer().getName()).isJailedInACell(event.getPlayer().getName())) {
|
||||
if(pl.getConfig().getBoolean(Settings.OPENCHEST.getPath())) {
|
||||
if(pl.getConfig().getBoolean(Settings.PRISONEROPENCHEST.getPath())) {
|
||||
//The prisoner is in a cell, so let's check if it is a couple chest.
|
||||
Material bpos1 = event.getClickedBlock().getLocation().add(-1, 0, 0).getBlock().getType();
|
||||
Material bpos2 = event.getClickedBlock().getLocation().add(+1, 0, 0).getBlock().getType();
|
||||
|
@ -63,4 +63,6 @@ jailing:
|
||||
jails:
|
||||
endermenProtection: true
|
||||
explosionProtection: true
|
||||
jailstick: ["stick,30,,Running away"]
|
||||
jailstick:
|
||||
enabled: true
|
||||
sticks: ["stick,30,,Running away"]
|
@ -21,6 +21,7 @@ language:
|
||||
jailremoved: '&9Jail %0% has been successfully deleted.'
|
||||
jailstickdisabled: '&3Jail stick usage: &cdisabled'
|
||||
jailstickenabled: '&3Jail stick usage: &aenabled'
|
||||
jailstickusagedisabled: '&cThe usage of Jail Sticks has been disabled by the Administrator.'
|
||||
nocell: '&cNo cell found by the name of %0% in the jail %1%.'
|
||||
nocells: '&cNo cells found in the jail %0%.'
|
||||
nojail: '&cNo jail found by the name of %0%.'
|
||||
|
Loading…
Reference in New Issue
Block a user