diff --git a/pom.xml b/pom.xml
index ed1a89a..d1b797c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
ru.simsonic
rscPermissions
- 0.9.4a
+ 0.9.6a
jar
rscPermissions
@@ -66,7 +66,7 @@
ru.simsonic
rscUtilityLibrary
- 2.0.2
+ 2.0.3
compile
jar
diff --git a/src/main/java/ru/simsonic/rscPermissions/API/EntityType.java b/src/main/java/ru/simsonic/rscPermissions/API/EntityType.java
index 89600a1..dba6307 100644
--- a/src/main/java/ru/simsonic/rscPermissions/API/EntityType.java
+++ b/src/main/java/ru/simsonic/rscPermissions/API/EntityType.java
@@ -2,9 +2,9 @@ package ru.simsonic.rscPermissions.API;
public enum EntityType
{
- group(0),
- player(1),
- unknown(-1);
+ GROUP(0),
+ PLAYER(1),
+ UNKNOWN(-1);
private final int value;
private EntityType(int value)
{
@@ -15,6 +15,6 @@ public enum EntityType
for(EntityType constant : EntityType.values())
if(constant.value == value)
return constant;
- return unknown;
+ return UNKNOWN;
}
}
diff --git a/src/main/java/ru/simsonic/rscPermissions/API/PlayerType.java b/src/main/java/ru/simsonic/rscPermissions/API/PlayerType.java
index 15d90a5..007adc6 100644
--- a/src/main/java/ru/simsonic/rscPermissions/API/PlayerType.java
+++ b/src/main/java/ru/simsonic/rscPermissions/API/PlayerType.java
@@ -4,12 +4,12 @@ import java.util.regex.Pattern;
public enum PlayerType
{
- name(0), // 16 chars max
- hyphenatedUUID(1), // 550e8400-e29b-41d4-a716-446655440000
- dehyphenatedUUID(2), // 550e8400e29b41d4a716446655440000
- internetWildcard(3), // 192.168.*.*
- internetSubnetMask(4), // 192.168.1.0/16
- inapplicable(-1);
+ NAME(0), // 16 chars max
+ HYPHENATED_UUID(1), // 550e8400-e29b-41d4-a716-446655440000
+ DEHYPHENATED_UUID(2), // 550e8400e29b41d4a716446655440000
+ INTERNET_WILDCARD(3), // 192.168.*.*
+ INTERNET_SUBNETMASK(4), // 192.168.1.0/16
+ INAPPLICABLE(-1);
private final int value;
private PlayerType(int value)
{
@@ -20,7 +20,7 @@ public enum PlayerType
for(PlayerType constant : PlayerType.values())
if(constant.value == value)
return constant;
- return inapplicable;
+ return INAPPLICABLE;
}
private static final Pattern nicknameRegExp = Pattern.compile("^[a-zA-Z0-9_-]{3,16}$");
private static final Pattern hyphenatedRegExp = Pattern.compile("^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$");
@@ -39,13 +39,13 @@ public enum PlayerType
public static PlayerType scanPlayerEntity(String entity)
{
if(entity == null || "".equals(entity))
- return name;
+ return NAME;
if(nicknameRegExp.matcher(entity).matches())
- return name;
+ return NAME;
if(hyphenatedRegExp.matcher(entity.toLowerCase()).matches())
- return hyphenatedUUID;
+ return HYPHENATED_UUID;
if(dehyphenatedRegExp.matcher(entity.toLowerCase()).matches())
- return dehyphenatedUUID;
+ return DEHYPHENATED_UUID;
/*
final Matcher mIP1 = ipWildcardRegExp.matcher(entity);
if(mIP1.matches())
@@ -56,7 +56,7 @@ public enum PlayerType
final String a4 = mIP1.group(4);
// TO DO
long address = 0, mask = 0;
- return internetWildcard;
+ return INTERNET_WILDCARD;
}
final Matcher mIP2 = ipSubnetMaskRegExp.matcher(entity);
if(mIP2.matches())
@@ -68,10 +68,10 @@ public enum PlayerType
final String sn = mIP1.group(5);
// TO DO
long address = 0, mask = 0;
- return internetSubnetMask;
+ return INTERNET_SUBNETMASK;
}
*/
- return inapplicable;
+ return INAPPLICABLE;
}
/*
public static void getAddressDetails(String entity, RowPermission row)
@@ -109,11 +109,11 @@ public enum PlayerType
return false;
switch(this)
{
- case name:
+ case NAME:
return identifier.equals(entity);
- case hyphenatedUUID:
+ case HYPHENATED_UUID:
identifier = identifier.replace("-", "");
- case dehyphenatedUUID:
+ case DEHYPHENATED_UUID:
return entity.equalsIgnoreCase(identifier);
}
return false;
diff --git a/src/main/java/ru/simsonic/rscPermissions/API/RowInheritance.java b/src/main/java/ru/simsonic/rscPermissions/API/RowInheritance.java
index 1d47286..dbff862 100644
--- a/src/main/java/ru/simsonic/rscPermissions/API/RowInheritance.java
+++ b/src/main/java/ru/simsonic/rscPermissions/API/RowInheritance.java
@@ -46,15 +46,15 @@ public class RowInheritance implements Cloneable, Comparable
}
public boolean isEntityApplicable(String identifier)
{
- if(EntityType.group.equals(childType))
+ if(EntityType.GROUP.equals(childType))
return entity.equalsIgnoreCase(identifier);
switch(playerType)
{
- case name:
+ case NAME:
return entity.equals(identifier);
- case hyphenatedUUID:
+ case HYPHENATED_UUID:
identifier = identifier.replace("-", "");
- case dehyphenatedUUID:
+ case DEHYPHENATED_UUID:
return entity.equals(identifier);
}
// TO DO
diff --git a/src/main/java/ru/simsonic/rscPermissions/API/RowPermission.java b/src/main/java/ru/simsonic/rscPermissions/API/RowPermission.java
index 667027e..bb0dcac 100644
--- a/src/main/java/ru/simsonic/rscPermissions/API/RowPermission.java
+++ b/src/main/java/ru/simsonic/rscPermissions/API/RowPermission.java
@@ -21,7 +21,7 @@ public class RowPermission implements Cloneable
}
public boolean isEntityApplicable(String identifier)
{
- if(EntityType.group.equals(entityType))
+ if(EntityType.GROUP.equals(entityType))
return entity.equalsIgnoreCase(identifier);
// TO DO
return false;
diff --git a/src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitPermissionManager.java b/src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitPermissionManager.java
index 6809eb3..de19de0 100644
--- a/src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitPermissionManager.java
+++ b/src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitPermissionManager.java
@@ -3,6 +3,7 @@ import java.net.InetSocketAddress;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
@@ -21,13 +22,14 @@ public class BukkitPermissionManager extends RestartableThread
{
this.rscp = plugin;
}
- private final LinkedBlockingQueue updateQueue = new LinkedBlockingQueue<>();
+ private final LinkedBlockingQueue updateQueue = new LinkedBlockingQueue<>();
private final Map attachments = new HashMap<>();
private final Map> persistentPermissions = new HashMap<>();
private final Map> transientPermissions = new HashMap<>();
- private final Map> groups = new ConcurrentHashMap<>();
- private final Map prefixes = new ConcurrentHashMap<>();
- private final Map suffixes = new ConcurrentHashMap<>();
+ private final Map> groups = new ConcurrentHashMap<>();
+ private final Map prefixes = new ConcurrentHashMap<>();
+ private final Map suffixes = new ConcurrentHashMap<>();
+ private final Set debug = new HashSet<>();
public void recalculateOnlinePlayers()
{
updateQueue.addAll(rscp.getServer().getOnlinePlayers());
@@ -71,6 +73,7 @@ public class BukkitPermissionManager extends RestartableThread
suffixes.remove(player);
persistentPermissions.remove(player);
transientPermissions.remove(player);
+ debug.remove(player);
}
@Override
public void run()
@@ -151,4 +154,15 @@ public class BukkitPermissionManager extends RestartableThread
result.add(socketAddress.getAddress().getHostAddress());
return result.toArray(new String[result.size()]);
}
+ public boolean isDebugging(Player target)
+ {
+ return debug.contains(target);
+ }
+ public void setDebugging(Player target, boolean value)
+ {
+ if(value)
+ debug.add(target);
+ else
+ debug.remove(target);
+ }
}
diff --git a/src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/BukkitCommands.java b/src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/BukkitCommands.java
index 2b785d7..4f685ec 100644
--- a/src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/BukkitCommands.java
+++ b/src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/BukkitCommands.java
@@ -4,14 +4,15 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Map;
import java.util.logging.Level;
-import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
+import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.entity.Player;
import ru.simsonic.rscPermissions.API.Settings;
import ru.simsonic.rscPermissions.Backends.DatabaseContents;
import ru.simsonic.rscPermissions.Bukkit.PermissionsEx_YAML;
import ru.simsonic.rscPermissions.BukkitPluginMain;
-import ru.simsonic.rscUtilityLibrary.CommandProcessing.CommandAnswerException;
+import ru.simsonic.rscPermissions.Engine.Phrases;
+import ru.simsonic.rscUtilityLibrary.Bukkit.Commands.CommandAnswerException;
import ru.simsonic.rscUtilityLibrary.RestartableThread;
import ru.simsonic.rscUtilityLibrary.TextProcessing.GenericChatCodes;
@@ -127,22 +128,13 @@ public class BukkitCommands
threadInsertExampleRows.startDeamon();
return threadInsertExampleRows;
}
- public void onCommand(CommandSender sender, Command cmd, String label, String[] args) throws CommandAnswerException
- {
- switch(cmd.getName().toLowerCase())
- {
- case "rscp":
- onCommandHub(sender, args);
- break;
- }
- }
- private void onCommandHub(CommandSender sender, String[] args) throws CommandAnswerException
+ public void onCommandHub(CommandSender sender, String[] args) throws CommandAnswerException
{
final ArrayList help = new ArrayList<>();
if(sender.hasPermission("rscp.admin"))
help.add("/rscp (user|group) {_LS}-- PermissionsEx-like admin commands");
if(sender.hasPermission("rscp.admin.lock"))
- help.add("/rscp (lock|unlock) {_LS}-- maintenance mode control");
+ help.add("/rscp (lock [mode]|unlock) {_LS}-- maintenance mode control");
if(sender.hasPermission("rscp.admin"))
{
help.add("/rscp (examplerows|import) {_LS}-- possible useful things");
@@ -252,8 +244,34 @@ public class BukkitCommands
return;
case "debug":
/* rscp debug [yes|on|no|off|toggle] */
+ if(sender instanceof ConsoleCommandSender)
+ throw new CommandAnswerException("{_LR}This command cannot be run from console.");
if(sender.hasPermission("rscp.admin"))
- throw new CommandAnswerException("Not implemented yet.");
+ {
+ final Player player = (Player)sender;
+ boolean isDebugging = rscp.permissionManager.isDebugging(player);
+ if(args.length >= 2)
+ switch(args[1].toLowerCase())
+ {
+ case "yes":
+ case "on":
+ isDebugging = true;
+ break;
+ case "no":
+ case "off":
+ isDebugging = false;
+ break;
+ case "toggle":
+ isDebugging = !isDebugging;
+ break;
+ default:
+ throw new CommandAnswerException(help);
+ }
+ else
+ isDebugging = !isDebugging;
+ rscp.permissionManager.setDebugging(player, isDebugging);
+ throw new CommandAnswerException(isDebugging ? Phrases.DEBUG_ON.toString() : Phrases.DEBUG_OFF.toString());
+ }
return;
case "help":
default:
diff --git a/src/main/java/ru/simsonic/rscPermissions/Bukkit/PermissionsEx_YAML.java b/src/main/java/ru/simsonic/rscPermissions/Bukkit/PermissionsEx_YAML.java
index b0fd002..deb3d70 100644
--- a/src/main/java/ru/simsonic/rscPermissions/Bukkit/PermissionsEx_YAML.java
+++ b/src/main/java/ru/simsonic/rscPermissions/Bukkit/PermissionsEx_YAML.java
@@ -3,7 +3,7 @@ import java.io.File;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
-import ru.simsonic.rscUtilityLibrary.CommandProcessing.CommandAnswerException;
+import ru.simsonic.rscUtilityLibrary.Bukkit.Commands.CommandAnswerException;
public final class PermissionsEx_YAML
{
diff --git a/src/main/java/ru/simsonic/rscPermissions/Bukkit/RegionUpdateObserver.java b/src/main/java/ru/simsonic/rscPermissions/Bukkit/RegionUpdateObserver.java
index 59bc028..b4b396d 100644
--- a/src/main/java/ru/simsonic/rscPermissions/Bukkit/RegionUpdateObserver.java
+++ b/src/main/java/ru/simsonic/rscPermissions/Bukkit/RegionUpdateObserver.java
@@ -1,7 +1,7 @@
package ru.simsonic.rscPermissions.Bukkit;
import org.bukkit.entity.Player;
import ru.simsonic.rscPermissions.BukkitPluginMain;
-import ru.simsonic.rscUtilityLibrary.BukkitListeners.MovingPlayersCatcher;
+import ru.simsonic.rscUtilityLibrary.Bukkit.Listeners.MovingPlayersCatcher;
import ru.simsonic.rscUtilityLibrary.RestartableThread;
public class RegionUpdateObserver extends RestartableThread
diff --git a/src/main/java/ru/simsonic/rscPermissions/BukkitPluginMain.java b/src/main/java/ru/simsonic/rscPermissions/BukkitPluginMain.java
index 960db26..8bb9822 100644
--- a/src/main/java/ru/simsonic/rscPermissions/BukkitPluginMain.java
+++ b/src/main/java/ru/simsonic/rscPermissions/BukkitPluginMain.java
@@ -20,7 +20,7 @@ import ru.simsonic.rscPermissions.Bukkit.Commands.BukkitCommands;
import ru.simsonic.rscPermissions.Bukkit.RegionUpdateObserver;
import ru.simsonic.rscPermissions.Engine.InternalCache;
import ru.simsonic.rscPermissions.Engine.Phrases;
-import ru.simsonic.rscUtilityLibrary.CommandProcessing.CommandAnswerException;
+import ru.simsonic.rscUtilityLibrary.Bukkit.Commands.CommandAnswerException;
import ru.simsonic.rscUtilityLibrary.TextProcessing.GenericChatCodes;
public final class BukkitPluginMain extends JavaPlugin
@@ -41,7 +41,7 @@ public final class BukkitPluginMain extends JavaPlugin
public void onLoad()
{
settings.onLoad();
- consoleLog.log(Level.INFO, "[rscp] This server's ID is '{0}'. You can change it in server.properties.", getServer().getServerId());
+ consoleLog.log(Level.INFO, "[rscp] This server`s ID is \"{0}\". You can change it in server.properties.", getServer().getServerId());
consoleLog.log(Level.INFO, "[rscp] rscPermissions has been loaded.");
}
@Override
@@ -66,7 +66,6 @@ public final class BukkitPluginMain extends JavaPlugin
});
// Integrate Metrics
if(settings.isUseMetrics())
- {
try
{
metrics = new MetricsLite(this);
@@ -75,7 +74,6 @@ public final class BukkitPluginMain extends JavaPlugin
} catch(IOException ex) {
consoleLog.log(Level.INFO, "[rscp][Metrics] Exception: {0}", ex);
}
- }
// Register event's dispatcher
getServer().getPluginManager().registerEvents(bukkitListener, this);
regionUpdateObserver.registerListeners();
@@ -125,12 +123,15 @@ public final class BukkitPluginMain extends JavaPlugin
{
try
{
- commandHelper.onCommand(sender, cmd, label, args);
+ switch(cmd.getName().toLowerCase())
+ {
+ case "rscp":
+ commandHelper.onCommandHub(sender, args);
+ break;
+ }
} catch(CommandAnswerException ex) {
for(String answer : ex.getMessageArray())
sender.sendMessage(GenericChatCodes.processStringStatic(Settings.chatPrefix + answer));
- } catch(NullPointerException ex) {
- // These will never occur! I hope...
}
return true;
}
diff --git a/src/main/java/ru/simsonic/rscPermissions/Engine/InternalCache.java b/src/main/java/ru/simsonic/rscPermissions/Engine/InternalCache.java
index 139f0fd..702122b 100644
--- a/src/main/java/ru/simsonic/rscPermissions/Engine/InternalCache.java
+++ b/src/main/java/ru/simsonic/rscPermissions/Engine/InternalCache.java
@@ -21,6 +21,8 @@ public class InternalCache
private final HashMap entities_u = new HashMap<>();
private final RowInheritance defaultInheritance = new RowInheritance();
private boolean alwaysInheritDefaultGroup = false;
+ private RowEntity implicit_g;
+ private RowEntity implicit_u;
public void setDefaultGroup(String defaultGroup, boolean alwaysInheritDefaultGroup)
{
defaultInheritance.parent = defaultGroup;
@@ -33,13 +35,15 @@ public class InternalCache
importEntities(contents);
importPermissions(contents.permissions);
importInheritance(contents.inheritance);
+ implicit_g = entities_g.get("");
+ implicit_u = entities_u.get("");
}
private void importEntities(DatabaseContents contents)
{
final HashSet names_u = new HashSet<>();
final HashSet names_g = new HashSet<>();
for(RowEntity row : contents.entities)
- if(row.entityType == EntityType.group)
+ if(row.entityType == EntityType.GROUP)
{
names_g.add(row.entity);
entities_g.put(row.entity.toLowerCase(), row);
@@ -48,14 +52,14 @@ public class InternalCache
entities_u.put(row.entity, row);
}
for(RowPermission row : contents.permissions)
- if(row.entityType == EntityType.group)
+ if(row.entityType == EntityType.GROUP)
names_g.add(row.entity);
else
names_u.add(row.entity);
for(RowInheritance row : contents.inheritance)
{
names_g.add(row.parent);
- if(row.childType == EntityType.group)
+ if(row.childType == EntityType.GROUP)
names_g.add(row.entity);
else
names_u.add(row.entity);
@@ -68,7 +72,7 @@ public class InternalCache
{
final RowEntity dummy = new RowEntity();
dummy.entity = name;
- dummy.entityType = EntityType.group;
+ dummy.entityType = EntityType.GROUP;
entities_g.put(groupInternalName, dummy);
}
}
@@ -77,7 +81,7 @@ public class InternalCache
{
final RowEntity dummy = new RowEntity();
dummy.entity = name;
- dummy.entityType = EntityType.player;
+ dummy.entityType = EntityType.PLAYER;
entities_u.put(name, dummy);
}
for(RowEntity row : entities_u.values())
@@ -88,7 +92,7 @@ public class InternalCache
final ArrayList permissions_p2g = new ArrayList<>();
final ArrayList permissions_p2u = new ArrayList<>();
for(RowPermission row : rows)
- if(row.entityType == EntityType.group)
+ if(row.entityType == EntityType.GROUP)
{
row.entityObject = entities_g.get(row.entity.toLowerCase());
permissions_p2g.add(row);
@@ -118,7 +122,7 @@ public class InternalCache
final ArrayList inheritance_g2g = new ArrayList<>();
final ArrayList inheritance_g2u = new ArrayList<>();
for(RowInheritance row : rows)
- if(row.childType == EntityType.group)
+ if(row.childType == EntityType.GROUP)
{
row.entityChild = entities_g.get(row.entity.toLowerCase());
row.entityParent = entities_g.get(row.parent.toLowerCase());
@@ -148,7 +152,7 @@ public class InternalCache
Collections.sort(inheritances);
entry.getValue().inheritance = inheritances.toArray(new RowInheritance[inheritances.size()]);
}
- defaultInheritance.childType = EntityType.player;
+ defaultInheritance.childType = EntityType.PLAYER;
defaultInheritance.entityParent = entities_g.get(defaultInheritance.parent.toLowerCase());
}
public synchronized ResolutionResult resolvePlayer(String player)
@@ -166,6 +170,8 @@ public class InternalCache
{
final ArrayList applicablePermissions = new ArrayList<>();
final ArrayList applicableInheritance = new ArrayList<>();
+ if(implicit_u != null && implicit_u.permissions != null)
+ processPermissions(params, Arrays.asList(implicit_u.permissions));
params.groupList = new LinkedHashSet<>();
params.finalPerms = new HashMap<>();
params.instantiator = "";
@@ -199,6 +205,8 @@ public class InternalCache
}
private ResolutionResult resolveParent(ResolutionParams params)
{
+ if(implicit_g != null && implicit_g.permissions != null)
+ processPermissions(params, Arrays.asList(implicit_g.permissions));
final RowEntity currentParent = params.parentEntity;
final String instantiator = params.instantiator;
final ArrayList intermediateResults = new ArrayList<>();
@@ -235,21 +243,18 @@ public class InternalCache
result.prefix = "%";
if(result.suffix == null || "".equals(result.suffix))
result.suffix = "%";
- if(intermediate.size() > 0)
+ final StringBuilder sbp = new StringBuilder();
+ final StringBuilder sbs = new StringBuilder();
+ for(ResolutionResult inherited : intermediate)
{
- final StringBuilder sbp = new StringBuilder();
- final StringBuilder sbs = new StringBuilder();
- for(ResolutionResult inherited : intermediate)
- {
- if(inherited.prefix != null)
- sbp.append(inherited.prefix);
- if(inherited.suffix != null)
- sbs.append(inherited.suffix);
- }
- intermediate.clear();
- result.prefix = result.prefix.replace(Settings.textInheriter, sbp.toString());
- result.suffix = result.suffix.replace(Settings.textInheriter, sbs.toString());
+ if(inherited.prefix != null)
+ sbp.append(inherited.prefix);
+ if(inherited.suffix != null)
+ sbs.append(inherited.suffix);
}
+ intermediate.clear();
+ result.prefix = result.prefix.replace(Settings.textInheriter, sbp.toString());
+ result.suffix = result.suffix.replace(Settings.textInheriter, sbs.toString());
result.prefix = result.prefix.replace(Settings.instantiator, params.instantiator);
result.suffix = result.suffix.replace(Settings.instantiator, params.instantiator);
return result;
@@ -282,5 +287,7 @@ public class InternalCache
{
entities_g.clear();
entities_u.clear();
+ implicit_g = null;
+ implicit_u = null;
}
}
diff --git a/src/main/java/ru/simsonic/rscPermissions/Engine/Phrases.java b/src/main/java/ru/simsonic/rscPermissions/Engine/Phrases.java
index 3a29bf8..072edff 100644
--- a/src/main/java/ru/simsonic/rscPermissions/Engine/Phrases.java
+++ b/src/main/java/ru/simsonic/rscPermissions/Engine/Phrases.java
@@ -20,6 +20,8 @@ public enum Phrases
INTEGRATION_WG_N ("integration.worldguard-no"),
INTEGRATION_R_Y ("integration.residence-yes"),
INTEGRATION_R_N ("integration.residence-no"),
+ DEBUG_ON ("debug.enabled"),
+ DEBUG_OFF ("debug.disabled"),
MYSQL_FETCHED ("mysql.fetched"),
;
private final String node;
@@ -48,12 +50,11 @@ public enum Phrases
try
{
final File langFile = new File(workingDir, langName + ".yml");
- if(!langFile.isFile())
- {
- final FileChannel fileChannel = new FileOutputStream(langFile).getChannel();
- final InputStream langStream = BukkitPluginMain.class.getResourceAsStream("/languages/" + langName + ".yml");
- fileChannel.transferFrom(Channels.newChannel(langStream), 0, Long.MAX_VALUE);
- }
+ if(langFile.isFile())
+ langFile.delete();
+ final FileChannel fileChannel = new FileOutputStream(langFile).getChannel();
+ final InputStream langStream = BukkitPluginMain.class.getResourceAsStream("/languages/" + langName + ".yml");
+ fileChannel.transferFrom(Channels.newChannel(langStream), 0, Long.MAX_VALUE);
} catch(IOException ex) {
}
}
diff --git a/src/main/java/ru/simsonic/rscPermissions/IndependentMain.java b/src/main/java/ru/simsonic/rscPermissions/IndependentMain.java
index e9e84a8..d9cae89 100644
--- a/src/main/java/ru/simsonic/rscPermissions/IndependentMain.java
+++ b/src/main/java/ru/simsonic/rscPermissions/IndependentMain.java
@@ -36,15 +36,15 @@ public class IndependentMain
System.out.println("Loading permissions from json files.");
final DatabaseContents contents = localJsn.retrieveContents();
System.out.println("Filter and calculating permission tree.");
- contents.filterServerId("localtest").filterLifetime();
+ contents.filterServerId("Primary").filterLifetime();
if(contents.isEmpty())
{
System.out.println("Permission database is empty, stopping.");
return;
}
- intCache.setDefaultGroup("Moderators", true);
+ intCache.setDefaultGroup("Default", true);
intCache.fill(contents);
- final ResolutionResult result = intCache.resolvePlayer("rscpTester");
+ final ResolutionResult result = intCache.resolvePlayer("Reality_SC");
// Sorted output
ArrayList perms = new ArrayList<>(result.permissions.keySet());
Collections.sort(perms);
diff --git a/src/main/resources/languages/english.yml b/src/main/resources/languages/english.yml
index c8db691..67ca3d0 100644
--- a/src/main/resources/languages/english.yml
+++ b/src/main/resources/languages/english.yml
@@ -10,5 +10,8 @@ integration:
worldguard-no: "{_YL}WorldGuard was not found."
residence-yes: "{_LG}Residence was found and integrated."
residence-no: "{_YL}Residence was not found."
+debug:
+ enable: "{_LS}You will see a lot of debugging information now."
+ disable: "{_LS}Debugging information is now hidden for you."
mysql:
fetched: "[rscp] "
diff --git a/src/main/resources/languages/russian.yml b/src/main/resources/languages/russian.yml
index df24105..c9ffa33 100644
--- a/src/main/resources/languages/russian.yml
+++ b/src/main/resources/languages/russian.yml
@@ -10,5 +10,8 @@ integration:
worldguard-no: "{_YL}WorldGuard не обнаружен."
residence-yes: "{_LG}Residence обнаружён и подключён."
residence-no: "{_YL}Residence не обнаружен."
+debug:
+ enable: "{_LS}Теперь Вы будете видеть отладочную информацию."
+ disable: "{_LS}Отладочная информация теперь скрыта от Вас."
mysql:
fetched: "[rscp] "