Browse Source

Configuration auto update from v3 into v4.

Maintenance modes (MM) are translatable now (through config.yml).
Messages for MM and when slot-limits (SL) deny player from joining are translated now.
When group has empty prefix(suffix) it able to not inherit parent prefixes(suffixes) — turn settings.groups-inherit-parent-prefixes to false.
master
SimSonic 10 years ago
parent
commit
603da36ddc
  1. 16
      src/main/java/ru/simsonic/rscPermissions/API/Settings.java
  2. 19
      src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitEventListener.java
  3. 74
      src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitPluginConfiguration.java
  4. 14
      src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandLock.java
  5. 3
      src/main/java/ru/simsonic/rscPermissions/BukkitPluginMain.java
  6. 11
      src/main/java/ru/simsonic/rscPermissions/Engine/InternalCache.java
  7. 6
      src/main/java/ru/simsonic/rscPermissions/Engine/Phrases.java
  8. 2
      src/main/java/ru/simsonic/rscPermissions/IndependentMain.java
  9. 20
      src/main/java/ru/simsonic/rscPermissions/Sponge/SpongePluginConfiguration.java
  10. 2
      src/main/java/ru/simsonic/rscPermissions/SpongePluginMain.java
  11. 18
      src/main/resources/config.yml
  12. 15
      src/main/resources/languages/english.yml
  13. 15
      src/main/resources/languages/russian.yml

16
src/main/java/ru/simsonic/rscPermissions/API/Settings.java

@ -5,21 +5,25 @@ import ru.simsonic.rscCommonsLibrary.ConnectionMySQL.ConnectionParams;
public interface Settings public interface Settings
{ {
public static final String chatPrefix = "{GOLD}[rscp] {_LS}"; public static final String chatPrefix = "{GOLD}[rscp] {_LS}";
public static final String separator = "."; public static final String separator = ".";
public static final String separatorRegExp = "\\."; public static final String separatorRegExp = "\\.";
public static final String instantiator = "?"; public static final String instantiator = "?";
public static final String textInheriter = "%"; public static final String textInheriter = "%";
public static final char groupLevelTab = '┏'; public static final char groupLevelTab = '┏';
public static final boolean decolorizeForConsole = false; public static final boolean decolorizeForConsole = false;
public void onLoad(); public void onLoad();
public void readSettings(); public void readSettings();
public String getDefaultGroup(); public String getDefaultGroup();
public boolean isDefaultForever(); public boolean isDefaultForever();
public boolean isAsteriskOP(); public boolean isAsteriskOP();
public boolean isUsingAncestorPrefixes();
public boolean isInMaintenance(); public boolean isInMaintenance();
public String getMaintenanceMode(); public String getMaintenanceMode();
public void setMaintenanceMode(String mode); public void setMaintenanceMode(String mode);
public String getMaintenancePingMsg();
public String getMaintenanceKickMsg();
public String getMaintenanceJoinMsg();
public boolean isUseResidence(); public boolean isUseResidence();
public boolean isUseWorldGuard(); public boolean isUseWorldGuard();
public long getRegionFinderGranularity(); public long getRegionFinderGranularity();

19
src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitEventListener.java

@ -14,9 +14,9 @@ import org.bukkit.event.player.PlayerLevelChangeEvent;
import org.bukkit.event.player.PlayerLoginEvent; import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.server.ServerListPingEvent; import org.bukkit.event.server.ServerListPingEvent;
import ru.simsonic.rscMinecraftLibrary.Bukkit.GenericChatCodes;
import ru.simsonic.rscMinecraftLibrary.Bukkit.Tools; import ru.simsonic.rscMinecraftLibrary.Bukkit.Tools;
import ru.simsonic.rscPermissions.BukkitPluginMain; import ru.simsonic.rscPermissions.BukkitPluginMain;
import ru.simsonic.rscPermissions.Engine.Phrases;
import ru.simsonic.rscPermissions.Engine.ResolutionResult; import ru.simsonic.rscPermissions.Engine.ResolutionResult;
public class BukkitEventListener implements Listener public class BukkitEventListener implements Listener
@ -88,11 +88,7 @@ public class BukkitEventListener implements Listener
public void onServerPing(ServerListPingEvent event) public void onServerPing(ServerListPingEvent event)
{ {
if(rscp.settings.isInMaintenance()) if(rscp.settings.isInMaintenance())
{ event.setMotd(rscp.settings.getMaintenancePingMsg());
final String motd = GenericChatCodes.processStringStatic(
"Server is under maintenance");
event.setMotd(motd);
}
} }
private void processMaintenanceLogin(AsyncPlayerPreLoginEvent event, ResolutionResult resolution) private void processMaintenanceLogin(AsyncPlayerPreLoginEvent event, ResolutionResult resolution)
{ {
@ -108,9 +104,7 @@ public class BukkitEventListener implements Listener
event.allow(); event.allow();
return; return;
} }
final String kickMsg = GenericChatCodes.processStringStatic( event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_WHITELIST, rscp.settings.getMaintenanceJoinMsg());
"{_YL}Server is in maintenance mode\nPlease try to connect later...");
event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_WHITELIST, kickMsg);
} }
private void processLimitedSlotsLogin(AsyncPlayerPreLoginEvent event, ResolutionResult resolution) private void processLimitedSlotsLogin(AsyncPlayerPreLoginEvent event, ResolutionResult resolution)
{ {
@ -137,9 +131,7 @@ public class BukkitEventListener implements Listener
event.allow(); event.allow();
return; return;
} }
final String kickMsg = GenericChatCodes.processStringStatic( event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_WHITELIST, Phrases.SERVER_IS_FULL.toString());
"{_LR}Server is too full to allow you enter.\n{_YL}Please try to connect later...");
event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_WHITELIST, kickMsg);
} }
public void setMaintenanceMode(String mMode) public void setMaintenanceMode(String mMode)
{ {
@ -151,14 +143,13 @@ public class BukkitEventListener implements Listener
@Override @Override
public void run() public void run()
{ {
final String kick = rscp.settings.getMaintenanceKickMsg();
for(Player player : Tools.getOnlinePlayers()) for(Player player : Tools.getOnlinePlayers())
{ {
if(player.hasPermission("rscp.maintenance.*")) if(player.hasPermission("rscp.maintenance.*"))
continue; continue;
if(player.hasPermission("rscp.maintenance." + rscp.settings.getMaintenanceMode())) if(player.hasPermission("rscp.maintenance." + rscp.settings.getMaintenanceMode()))
continue; continue;
final String kick = GenericChatCodes.processStringStatic(
"{_LR}Server is going into maintenance mode.\n{_YL}Please try to connect later...");
player.kickPlayer(kick); player.kickPlayer(kick);
} }
} }

74
src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitPluginConfiguration.java

@ -7,24 +7,30 @@ import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
import ru.simsonic.rscCommonsLibrary.ConnectionMySQL.ConnectionParams; import ru.simsonic.rscCommonsLibrary.ConnectionMySQL.ConnectionParams;
import ru.simsonic.rscMinecraftLibrary.Bukkit.GenericChatCodes;
import ru.simsonic.rscPermissions.API.Settings; import ru.simsonic.rscPermissions.API.Settings;
import ru.simsonic.rscPermissions.API.TranslationProvider; import ru.simsonic.rscPermissions.API.TranslationProvider;
import ru.simsonic.rscPermissions.BukkitPluginMain; import ru.simsonic.rscPermissions.BukkitPluginMain;
import ru.simsonic.rscPermissions.Engine.Phrases;
public class BukkitPluginConfiguration implements Settings public class BukkitPluginConfiguration implements Settings
{ {
private final BukkitPluginMain plugin; private final BukkitPluginMain plugin;
private String strDefaultGroup = "Default"; private String strDefaultGroup = "Default";
private String strMaintenanceMode = ""; private String strMaintenanceMode = "";
private String strMaintenancePingMsg = Phrases.defaultMaintenancePingMsg;
private String strMaintenanceKickMsg = Phrases.defaultMaintenanceKickMsg;
private String strMaintenanceJoinMsg = Phrases.defaultMaintenanceJoinMsg;
private String language = "english"; private String language = "english";
private boolean bAlwaysInheritDefault = false; private boolean bAlwaysInheritDefault = false;
private boolean bTreatAsteriskAsOP = true; private boolean bTreatAsteriskAsOP = true;
private boolean bUsingAncestorPrefixes = true;
private boolean bUseMetrics = true; private boolean bUseMetrics = true;
private boolean bUseWorldGuard = true; private boolean bUseWorldGuard = true;
private boolean bUseResidence = true; private boolean bUseResidence = true;
private int nAutoReloadDelayTicks = 20 * 900; private int nAutoReloadDelayTicks = 20 * 900;
private int nRegionFinderGranularity = 1000; private int nRegionFinderGranularity = 1000;
public final int CurrentVersion = 3; public final int CurrentVersion = 4;
public BukkitPluginConfiguration(final BukkitPluginMain plugin) public BukkitPluginConfiguration(final BukkitPluginMain plugin)
{ {
this.plugin = plugin; this.plugin = plugin;
@ -42,6 +48,9 @@ public class BukkitPluginConfiguration implements Settings
case 2: case 2:
update_v2_to_v3(config); update_v2_to_v3(config);
BukkitPluginMain.consoleLog.info("[rscp] Configuration updated from v2 to v3."); BukkitPluginMain.consoleLog.info("[rscp] 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 case CurrentVersion: // Current version
plugin.saveConfig(); plugin.saveConfig();
break; break;
@ -61,20 +70,34 @@ public class BukkitPluginConfiguration implements Settings
config.set("settings.language", "english"); config.set("settings.language", "english");
config.set("internal.version", 3); config.set("internal.version", 3);
} }
private void update_v3_to_v4(FileConfiguration config)
{
if(!config.contains("settings.slot-limits"))
{
config.set("settings.slot-limits.administrators", 5);
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("internal.version", 4);
}
@Override @Override
public void readSettings() public void readSettings()
{ {
plugin.reloadConfig(); plugin.reloadConfig();
final FileConfiguration config = plugin.getConfig(); final FileConfiguration config = plugin.getConfig();
language = config.getString("settings.language", "english"); language = config.getString("settings.language", "english");
strDefaultGroup = config.getString("settings.default-group", "Default"); strDefaultGroup = config.getString("settings.default-group", "Default");
strMaintenanceMode = config.getString("settings.maintenance-mode", ""); strMaintenanceMode = config.getString("settings.maintenance-mode", "");
bAlwaysInheritDefault = config.getBoolean("settings.always-inherit-default-group", false); bAlwaysInheritDefault = config.getBoolean("settings.always-inherit-default-group", false);
bTreatAsteriskAsOP = config.getBoolean("settings.treat-asterisk-as-op", true); bTreatAsteriskAsOP = config.getBoolean("settings.treat-asterisk-as-op", true);
bUseMetrics = config.getBoolean("settings.use-metrics", true); bUsingAncestorPrefixes = config.getBoolean("settings.groups-inherit-parent-prefixes", true);
bUseWorldGuard = config.getBoolean("settings.integration.worldguard", true); bUseWorldGuard = config.getBoolean("settings.integration.worldguard", true);
bUseResidence = config.getBoolean("settings.integration.residence", true); bUseResidence = config.getBoolean("settings.integration.residence", true);
nAutoReloadDelayTicks = config.getInt("settings.auto-reload-delay-sec", 900) * 20; bUseMetrics = config.getBoolean("settings.use-metrics", true);
nAutoReloadDelayTicks = config.getInt("settings.auto-reload-delay-sec", 900) * 20;
nRegionFinderGranularity = config.getInt("settings.region-finder-thread-granularity-msec", 1000); nRegionFinderGranularity = config.getInt("settings.region-finder-thread-granularity-msec", 1000);
if(nAutoReloadDelayTicks <= 0) if(nAutoReloadDelayTicks <= 0)
nAutoReloadDelayTicks = -1; nAutoReloadDelayTicks = -1;
@ -100,6 +123,33 @@ public class BukkitPluginConfiguration implements Settings
strMaintenanceMode = (mode != null) ? mode : ""; strMaintenanceMode = (mode != null) ? mode : "";
plugin.getConfig().set("settings.maintenance-mode", strMaintenanceMode); plugin.getConfig().set("settings.maintenance-mode", strMaintenanceMode);
plugin.saveConfig(); plugin.saveConfig();
if(!"".equals(mode))
{
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));
}
}
@Override
public String getMaintenancePingMsg()
{
return isInMaintenance() ? strMaintenancePingMsg : "";
}
@Override
public String getMaintenanceKickMsg()
{
return isInMaintenance() ? strMaintenanceKickMsg : "";
}
@Override
public String getMaintenanceJoinMsg()
{
return isInMaintenance() ? strMaintenanceJoinMsg : "";
} }
@Override @Override
public boolean isDefaultForever() public boolean isDefaultForever()
@ -111,6 +161,10 @@ public class BukkitPluginConfiguration implements Settings
{ {
return bTreatAsteriskAsOP; return bTreatAsteriskAsOP;
} }
public boolean isUsingAncestorPrefixes()
{
return bUsingAncestorPrefixes;
}
@Override @Override
public boolean isUseMetrics() public boolean isUseMetrics()
{ {

14
src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandLock.java

@ -3,6 +3,7 @@ package ru.simsonic.rscPermissions.Bukkit.Commands;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import ru.simsonic.rscMinecraftLibrary.Bukkit.CommandAnswerException; import ru.simsonic.rscMinecraftLibrary.Bukkit.CommandAnswerException;
import ru.simsonic.rscPermissions.BukkitPluginMain; import ru.simsonic.rscPermissions.BukkitPluginMain;
import ru.simsonic.rscPermissions.Engine.Phrases;
public class CommandLock public class CommandLock
{ {
@ -15,22 +16,17 @@ public class CommandLock
{ {
if(sender.hasPermission("rscp.lock")) if(sender.hasPermission("rscp.lock"))
{ {
final String mMode = (args.length >= 2) ? args[1] : "default"; final String mode = (args.length >= 2) ? args[1] : "default";
String mmon = "Maintenance mode enabled"; rscp.bukkitListener.setMaintenanceMode(mode);
mmon = rscp.getConfig().getString("language.maintenance.locked.default.mmon", mmon); throw new CommandAnswerException(Phrases.MAINTENANCE_ON.toString());
mmon = rscp.getConfig().getString("language.maintenance.locked." + mMode + ".mmon", mmon);
rscp.bukkitListener.setMaintenanceMode(mMode);
throw new CommandAnswerException(mmon);
} }
} }
public void executeUnlock(CommandSender sender) throws CommandAnswerException public void executeUnlock(CommandSender sender) throws CommandAnswerException
{ {
if(sender.hasPermission("rscp.lock")) if(sender.hasPermission("rscp.lock"))
{ {
String mmoff = "Maintenance mode disabled";
mmoff = rscp.getConfig().getString("language.maintenance.unlocked", mmoff);
rscp.bukkitListener.setMaintenanceMode(null); rscp.bukkitListener.setMaintenanceMode(null);
throw new CommandAnswerException(mmoff); throw new CommandAnswerException(Phrases.MAINTENANCE_OFF.toString());
} }
} }
} }

3
src/main/java/ru/simsonic/rscPermissions/BukkitPluginMain.java

@ -55,7 +55,8 @@ public final class BukkitPluginMain extends JavaPlugin
bukkitListener.onEnable(); bukkitListener.onEnable();
internalCache.setDefaultGroup( internalCache.setDefaultGroup(
settings.getDefaultGroup(), settings.getDefaultGroup(),
settings.isDefaultForever()); settings.isDefaultForever(),
settings.isUsingAncestorPrefixes());
Phrases.applyTranslation(settings.getTranslationProvider()); Phrases.applyTranslation(settings.getTranslationProvider());
// Restore temporary cached data from json files // Restore temporary cached data from json files
final DatabaseContents contents = localStorage.retrieveContents(); final DatabaseContents contents = localStorage.retrieveContents();

11
src/main/java/ru/simsonic/rscPermissions/Engine/InternalCache.java

@ -24,13 +24,15 @@ public class InternalCache
private final HashMap<String, RowEntity> entities_u = new HashMap<>(); private final HashMap<String, RowEntity> entities_u = new HashMap<>();
private final RowInheritance defaultInheritance = new RowInheritance(); private final RowInheritance defaultInheritance = new RowInheritance();
private boolean alwaysInheritDefaultGroup = false; private boolean alwaysInheritDefaultGroup = false;
private boolean groupsInheritParentPrefixes = true;
private RowEntity implicit_g; private RowEntity implicit_g;
private RowEntity implicit_u; private RowEntity implicit_u;
public void setDefaultGroup(String defaultGroup, boolean alwaysInheritDefaultGroup) public void setDefaultGroup(String defaultGroup, boolean alwaysInheritDefaultGroup, boolean groupsInheritParentPrefixes)
{ {
defaultInheritance.parent = defaultGroup; defaultInheritance.parent = defaultGroup;
defaultInheritance.deriveInstance(); defaultInheritance.deriveInstance();
this.alwaysInheritDefaultGroup = alwaysInheritDefaultGroup; this.alwaysInheritDefaultGroup = alwaysInheritDefaultGroup;
this.groupsInheritParentPrefixes = groupsInheritParentPrefixes;
} }
public synchronized void fill(DatabaseContents contents) public synchronized void fill(DatabaseContents contents)
{ {
@ -264,12 +266,13 @@ public class InternalCache
private ResolutionResult processPrefixesAndSuffixes(ResolutionParams params, List<ResolutionResult> intermediate) private ResolutionResult processPrefixesAndSuffixes(ResolutionParams params, List<ResolutionResult> intermediate)
{ {
final ResolutionResult result = new ResolutionResult(); final ResolutionResult result = new ResolutionResult();
final boolean gipp = groupsInheritParentPrefixes || params.parentEntity.entityType.equals(EntityType.PLAYER);
result.prefix = params.parentEntity.prefix; result.prefix = params.parentEntity.prefix;
result.suffix = params.parentEntity.suffix; result.suffix = params.parentEntity.suffix;
if(result.prefix == null || "".equals(result.prefix)) if(result.prefix == null || "".equals(result.prefix))
result.prefix = "%"; result.prefix = (gipp ? Settings.textInheriter : "");
if(result.suffix == null || "".equals(result.suffix)) if(result.suffix == null || "".equals(result.suffix))
result.suffix = "%"; result.suffix = (gipp ? Settings.textInheriter : "");
final StringBuilder sbp = new StringBuilder(); final StringBuilder sbp = new StringBuilder();
final StringBuilder sbs = new StringBuilder(); final StringBuilder sbs = new StringBuilder();
for(ResolutionResult inherited : intermediate) for(ResolutionResult inherited : intermediate)

6
src/main/java/ru/simsonic/rscPermissions/Engine/Phrases.java

@ -17,6 +17,9 @@ public enum Phrases
PLUGIN_RELOADED ("generic.reloaded"), PLUGIN_RELOADED ("generic.reloaded"),
PLUGIN_PLAYER_ONLY ("generic.player-only"), PLUGIN_PLAYER_ONLY ("generic.player-only"),
PLUGIN_CONSOLE_ONLY("generic.console-only"), PLUGIN_CONSOLE_ONLY("generic.console-only"),
SERVER_IS_FULL ("generic.server-is-full"),
MAINTENANCE_ON ("generic.maintenance-on"),
MAINTENANCE_OFF ("generic.maintenance-off"),
INTEGRATION_V_Y ("integration.vault-yes"), INTEGRATION_V_Y ("integration.vault-yes"),
INTEGRATION_V_N ("integration.vault-no"), INTEGRATION_V_N ("integration.vault-no"),
INTEGRATION_WE_Y ("integration.worldedit-yes"), INTEGRATION_WE_Y ("integration.worldedit-yes"),
@ -45,6 +48,9 @@ public enum Phrases
HELP_CMD_RELOAD ("help.cmd-reload"), HELP_CMD_RELOAD ("help.cmd-reload"),
HELP_CMD_HELP ("help.cmd-help"), 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 final String node;
private String phrase; private String phrase;
private Phrases(String node) private Phrases(String node)

2
src/main/java/ru/simsonic/rscPermissions/IndependentMain.java

@ -42,7 +42,7 @@ public class IndependentMain
System.out.println("Permission database is empty, stopping."); System.out.println("Permission database is empty, stopping.");
return; return;
} }
intCache.setDefaultGroup("Default", true); intCache.setDefaultGroup("Default", true, true);
intCache.fill(contents); intCache.fill(contents);
final ResolutionResult result = intCache.resolvePlayer("87f946d8212440539d685eab07f8e266"); final ResolutionResult result = intCache.resolvePlayer("87f946d8212440539d685eab07f8e266");
// Sorted output // Sorted output

20
src/main/java/ru/simsonic/rscPermissions/Sponge/SpongePluginConfiguration.java

@ -39,6 +39,11 @@ public class SpongePluginConfiguration implements Settings
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override @Override
public boolean isUsingAncestorPrefixes()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public boolean isInMaintenance() public boolean isInMaintenance()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
@ -54,6 +59,21 @@ public class SpongePluginConfiguration implements Settings
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");
} }
@Override @Override
public String getMaintenancePingMsg()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public String getMaintenanceKickMsg()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public String getMaintenanceJoinMsg()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public boolean isUseResidence() public boolean isUseResidence()
{ {
throw new UnsupportedOperationException("Not supported yet."); throw new UnsupportedOperationException("Not supported yet.");

2
src/main/java/ru/simsonic/rscPermissions/SpongePluginMain.java

@ -18,7 +18,7 @@ import ru.simsonic.rscPermissions.Engine.InternalCache;
import ru.simsonic.rscPermissions.Sponge.SpongePermissionManager; import ru.simsonic.rscPermissions.Sponge.SpongePermissionManager;
import ru.simsonic.rscPermissions.Sponge.SpongePluginConfiguration; import ru.simsonic.rscPermissions.Sponge.SpongePluginConfiguration;
// Documentation for Sponge: https://docs.spongepowered.org/en/index.html // Documentation for Sponge: https://docs.spongepowered.org/ru/index.html
@Plugin(id = "rscPermissions", name = "rscPermissions", version = "0.9.16b") @Plugin(id = "rscPermissions", name = "rscPermissions", version = "0.9.16b")
public class SpongePluginMain public class SpongePluginMain

18
src/main/resources/config.yml

@ -1,22 +1,28 @@
settings: settings:
language: english
default-group: Default default-group: Default
always-inherit-default-group: true always-inherit-default-group: true
groups-inherit-parent-prefixes: true
treat-asterisk-as-op: true treat-asterisk-as-op: true
auto-reload-delay-sec: 900 auto-reload-delay-sec: 900
region-finder-thread-granularity-msec: 1000 region-finder-thread-granularity-msec: 1000
integration:
worldguard: true
residence: true
use-metrics: true
connection: connection:
database: localhost:3306/minecraft database: localhost:3306/minecraft
username: user1 username: user1
password: pass1 password: pass1
prefixes: rscp_ prefixes: rscp_
integration:
worldguard: true
residence: true
use-metrics: true
slot-limits: slot-limits:
administrators: 5 administrators: 5
premium: 25 premium: 25
maintenance-mode: '' maintenance-mode: ''
language: english maintenances:
default:
ping-motd: '{_LR}Maintenance mode'
kick-online: '{_LR}Sorry! Server is going into maintenance mode.'
block-join: '{_LR}You are not allowed to enter when maintenance is on.'
internal: internal:
version: 3 version: 4

15
src/main/resources/languages/english.yml

@ -1,10 +1,13 @@
generic: generic:
enabled: "[rscp] rscPermissions has been successfully enabled." enabled: "[rscp] rscPermissions has been successfully enabled."
disabled: "[rscp] rscPermissions has been disabled." disabled: "[rscp] rscPermissions has been disabled."
reloaded: "[rscp] rscPermissions has been reloaded." reloaded: "[rscp] rscPermissions has been reloaded."
metrics: "[rscp] Metrics enabled." metrics: "[rscp] Metrics enabled."
player-only: "{_LR}This command cannot be run from console." player-only: "{_LR}This command cannot be run from console."
console-only: "{_LR}This command should be run from console." console-only: "{_LR}This command should be run from console."
server-is-full: "{_LR}Server is full, empty slots are in reserve."
maintenance-on: "{_YL}Server is closed for maintenance now."
maintenance-off: "{_YL}Server is open for players now."
integration: integration:
vault-yes: "{_LG}Vault was found and integrated." vault-yes: "{_LG}Vault was found and integrated."
vault-no: "{_LR}There is no Vault found. Vault is highly recommended to be installed on your server." vault-no: "{_LR}There is no Vault found. Vault is highly recommended to be installed on your server."

15
src/main/resources/languages/russian.yml

@ -1,10 +1,13 @@
generic: generic:
enabled: "[rscp] Плагин rscPermissions успешно включён." enabled: "[rscp] Плагин rscPermissions успешно включён."
disabled: "[rscp] Плагин rscPermissions выключен." disabled: "[rscp] Плагин rscPermissions выключен."
reloaded: "[rscp] Плагин rscPermissions перезапущен, конфигурация перечитана." reloaded: "[rscp] Плагин rscPermissions перезапущен, конфигурация перечитана."
metrics: "[rscp] Включён сбор метрики (mcstats.org)." metrics: "[rscp] Включён сбор метрики (mcstats.org)."
player-only: "{_LR}Эта команда не может быть использована из консоли." player-only: "{_LR}Эта команда не может быть использована из консоли."
console-only: "{_LR}Эта команда может быть использована только из консоли." console-only: "{_LR}Эта команда может быть использована только из консоли."
server-is-full: "{_LR}Сервер заполнен, оставшиеся слоты находятся в резерве."
maintenance-on: "{_YL}Сервер закрыт на техническое обслуживание."
maintenance-off: "{_YL}Сервер открыт для свободного входа игроков."
integration: integration:
vault-yes: "{_LG}Vault обнаружён и подключён." vault-yes: "{_LG}Vault обнаружён и подключён."
vault-no: "{_LR}Не удаётся найти плагин Vault. Рекомендуется его скорейшая установка." vault-no: "{_LR}Не удаётся найти плагин Vault. Рекомендуется его скорейшая установка."

Loading…
Cancel
Save