diff --git a/src/main/java/ru/simsonic/rscPermissions/API/Settings.java b/src/main/java/ru/simsonic/rscPermissions/API/Settings.java index 0289a92..d24dfcd 100644 --- a/src/main/java/ru/simsonic/rscPermissions/API/Settings.java +++ b/src/main/java/ru/simsonic/rscPermissions/API/Settings.java @@ -7,6 +7,7 @@ public interface Settings { public static final String UPDATER_URL = "http://simsonic.github.io/rscPermissions/latest.json"; public static final String CHAT_PREFIX = "{GOLD}[rscp] {_LS}"; + public static final String TEXT_INHERITER = "%"; public static final char SHOW_GROUP_LEVEL = '┏'; public static final String INSTANTIATOR = "?"; @@ -27,6 +28,11 @@ public interface Settings + "([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\." + "([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])" + "(?:/([0-9]|[1-2][0-9]|3[0-2]))$"; + + public static final String DEFAULT_MMODE_MSG_PING = "{_LR}Maintenance mode"; + public static final String DEFAULT_MMODE_MSG_KICK = "{_LR}Sorry! Server is going into maintenance mode."; + public static final String DEFAULT_MMODE_MSG_JOIN = "{_LR}You are not allowed to enter when maintenance is on."; + public void onLoad(); public void onEnable(); public String getDefaultGroup(); diff --git a/src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitPluginConfiguration.java b/src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitPluginConfiguration.java index 0b0b5e6..37c7909 100644 --- a/src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitPluginConfiguration.java +++ b/src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitPluginConfiguration.java @@ -11,26 +11,25 @@ import ru.simsonic.rscMinecraftLibrary.Bukkit.GenericChatCodes; import ru.simsonic.rscPermissions.API.Settings; import ru.simsonic.rscPermissions.API.TranslationProvider; import ru.simsonic.rscPermissions.BukkitPluginMain; -import ru.simsonic.rscPermissions.Engine.Phrases; public class BukkitPluginConfiguration implements Settings { + private final static int CURRENT_CONFIG_VERSION = 4; private final BukkitPluginMain plugin; - private String strDefaultGroup = "Default"; - private String strMaintenanceMode = ""; - private String strMaintenancePingMsg = GenericChatCodes.processStringStatic(Phrases.defaultMaintenancePingMsg); - private String strMaintenanceKickMsg = GenericChatCodes.processStringStatic(Phrases.defaultMaintenanceKickMsg); - private String strMaintenanceJoinMsg = GenericChatCodes.processStringStatic(Phrases.defaultMaintenanceJoinMsg); - private String language = "english"; - private boolean bAlwaysInheritDefault = false; - private boolean bTreatAsteriskAsOP = true; - private boolean bUsingAncestorPrefixes = true; - private boolean bUseMetrics = true; - private boolean bUseWorldGuard = true; - private boolean bUseResidence = true; - private int nAutoReloadDelayTicks = 20 * 900; - private int nRegionFinderGranularity = 1000; - public final int CurrentVersion = 4; + private String strDefaultGroup = "Default"; + private String strMaintenanceMode = ""; + private String strMaintenancePingMsg = GenericChatCodes.processStringStatic(DEFAULT_MMODE_MSG_PING); + private String strMaintenanceKickMsg = GenericChatCodes.processStringStatic(DEFAULT_MMODE_MSG_KICK); + private String strMaintenanceJoinMsg = GenericChatCodes.processStringStatic(DEFAULT_MMODE_MSG_JOIN); + private String language = "english"; + private boolean bAlwaysInheritDefault = false; + private boolean bTreatAsteriskAsOP = true; + private boolean bUsingAncestorPrefixes = true; + private boolean bUseMetrics = true; + private boolean bUseWorldGuard = true; + private boolean bUseResidence = true; + private int nAutoReloadDelayTicks = 20 * 900; + private int nRegionFinderGranularity = 1000; public BukkitPluginConfiguration(final BukkitPluginMain plugin) { this.plugin = plugin; @@ -40,18 +39,18 @@ public class BukkitPluginConfiguration implements Settings { plugin.saveDefaultConfig(); final FileConfiguration config = plugin.getConfig(); - switch(plugin.getConfig().getInt("internal.version", CurrentVersion)) + switch(plugin.getConfig().getInt("internal.version", CURRENT_CONFIG_VERSION)) { case 1: update_v1_to_v2(config); - BukkitPluginMain.consoleLog.info("[rscp] Configuration updated from v1 to v2."); + BukkitPluginMain.consoleLog.info(Settings.CHAT_PREFIX + "Configuration updated from v1 to v2."); case 2: update_v2_to_v3(config); - BukkitPluginMain.consoleLog.info("[rscp] Configuration updated from v2 to v3."); + BukkitPluginMain.consoleLog.info(Settings.CHAT_PREFIX + "Configuration updated from v2 to v3."); case 3: update_v3_to_v4(config); - BukkitPluginMain.consoleLog.info("[rscp] Configuration updated from v3 to v4."); - case CurrentVersion: // Current version + BukkitPluginMain.consoleLog.info(Settings.CHAT_PREFIX + "Configuration updated from v3 to v4."); + case CURRENT_CONFIG_VERSION: // Current version plugin.saveConfig(); break; } @@ -78,9 +77,9 @@ public class BukkitPluginConfiguration implements Settings config.set("settings.slot-limits.premium", 25); } config.set("settings.groups-inherit-parent-prefixes", true); - config.set("settings.maintenances.default.ping-motd", Phrases.defaultMaintenancePingMsg); - config.set("settings.maintenances.default.kick-online", Phrases.defaultMaintenancePingMsg); - config.set("settings.maintenances.default.block-join", Phrases.defaultMaintenancePingMsg); + config.set("settings.maintenances.default.ping-motd", DEFAULT_MMODE_MSG_PING); + config.set("settings.maintenances.default.kick-online", DEFAULT_MMODE_MSG_KICK); + config.set("settings.maintenances.default.block-join", DEFAULT_MMODE_MSG_JOIN); config.set("internal.version", 4); } @Override @@ -130,15 +129,16 @@ public class BukkitPluginConfiguration implements Settings { if(!"".equals(strMaintenanceMode)) { - strMaintenancePingMsg = GenericChatCodes.processStringStatic(plugin.getConfig().getString( - "settings.maintenances." + strMaintenanceMode.toLowerCase() + ".ping-motd", - Phrases.defaultMaintenancePingMsg).replace("{MMODE}", strMaintenanceMode)); - strMaintenanceKickMsg = GenericChatCodes.processStringStatic(plugin.getConfig().getString( - "settings.maintenances." + strMaintenanceMode.toLowerCase() + ".kick-online", - Phrases.defaultMaintenanceKickMsg).replace("{MMODE}", strMaintenanceMode)); - strMaintenanceJoinMsg = GenericChatCodes.processStringStatic(plugin.getConfig().getString( - "settings.maintenances." + strMaintenanceMode.toLowerCase() + ".block-join", - Phrases.defaultMaintenanceJoinMsg).replace("{MMODE}", strMaintenanceMode)); + final String configPath = "settings.maintenances." + strMaintenanceMode.toLowerCase(); + strMaintenancePingMsg = GenericChatCodes.processStringStatic( + plugin.getConfig().getString(configPath + ".ping-motd", DEFAULT_MMODE_MSG_PING) + .replace("{MMODE}", strMaintenanceMode)); + strMaintenanceKickMsg = GenericChatCodes.processStringStatic( + plugin.getConfig().getString(configPath + ".kick-online", DEFAULT_MMODE_MSG_KICK) + .replace("{MMODE}", strMaintenanceMode)); + strMaintenanceJoinMsg = GenericChatCodes.processStringStatic( + plugin.getConfig().getString(configPath + ".block-join", DEFAULT_MMODE_MSG_JOIN) + .replace("{MMODE}", strMaintenanceMode)); } } @Override diff --git a/src/main/java/ru/simsonic/rscPermissions/BukkitPluginMain.java b/src/main/java/ru/simsonic/rscPermissions/BukkitPluginMain.java index dd22833..db00219 100644 --- a/src/main/java/ru/simsonic/rscPermissions/BukkitPluginMain.java +++ b/src/main/java/ru/simsonic/rscPermissions/BukkitPluginMain.java @@ -29,19 +29,22 @@ import ru.simsonic.rscPermissions.Engine.Phrases; public final class BukkitPluginMain extends JavaPlugin { - public static final Logger consoleLog = Bukkit.getLogger(); - public final Settings settings = new BukkitPluginConfiguration(this); - public final BukkitUpdater updating = new BukkitUpdater(this, Settings.UPDATER_URL, Settings.CHAT_PREFIX); - public final BackendJson localStorage = new BackendJson(getDataFolder()); - public final BackendDatabase connection = new BackendDatabase(consoleLog); - public final InternalCache internalCache = new InternalCache(); - public final BukkitCommands commandHelper = new BukkitCommands(this); + public final static Logger consoleLog = Bukkit.getLogger(); + public final Settings settings = new BukkitPluginConfiguration(this); + public final BukkitUpdater updating = new BukkitUpdater(this, Settings.UPDATER_URL, Settings.CHAT_PREFIX); + public final BackendJson localStorage = new BackendJson(getDataFolder()); + public final BackendDatabase connection = new BackendDatabase(consoleLog); + public final InternalCache internalCache = new InternalCache(); + public final BukkitCommands commandHelper = new BukkitCommands(this); public final BridgeForBukkitAPI bridgeForBukkit = new BridgeForBukkitAPI(this); public final BukkitEventListener bukkitListener = new BukkitEventListener(this); public final BukkitPermissionManager permissionManager = new BukkitPermissionManager(this); public final BukkitRegionProviders regionListProvider = new BukkitRegionProviders(this); private final RegionUpdateObserver regionUpdateObserver = new RegionUpdateObserver(this); private MetricsLite metrics; + public BukkitPluginMain() + { + } @Override public void onLoad() { @@ -118,6 +121,12 @@ public final class BukkitPluginMain extends JavaPlugin internalCache.clear(); connection.disconnect(); regionListProvider.deintegrate(); + if(metrics != null) + try + { + metrics.disable(); + } catch(IOException ex) { + } metrics = null; consoleLog.info(Phrases.PLUGIN_DISABLED.toString()); } diff --git a/src/main/java/ru/simsonic/rscPermissions/Engine/Phrases.java b/src/main/java/ru/simsonic/rscPermissions/Engine/Phrases.java index 01d3a65..7fb080b 100644 --- a/src/main/java/ru/simsonic/rscPermissions/Engine/Phrases.java +++ b/src/main/java/ru/simsonic/rscPermissions/Engine/Phrases.java @@ -48,9 +48,6 @@ public enum Phrases HELP_CMD_RELOAD ("help.cmd-reload"), HELP_CMD_HELP ("help.cmd-help"), ; - public final static String defaultMaintenancePingMsg = "{_LR}Maintenance mode"; - public final static String defaultMaintenanceKickMsg = "{_LR}Sorry! Server is going into maintenance mode."; - public final static String defaultMaintenanceJoinMsg = "{_LR}You are not allowed to enter when maintenance is on."; private final String node; private String phrase; private Phrases(String node)