diff --git a/pom.xml b/pom.xml
index dbf8fed..9535ecd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
ru.simsonic
rscPermissions
- 0.9.22b
+ 0.10.0b-SNAPSHOT
jar
rscPermissions
@@ -50,28 +50,28 @@
mysql
mysql-connector-java
- 5.1.36
+ 5.1.38
runtime
com.google.code.gson
gson
- 2.3.1
+ 2.6.2
compile
org.spigotmc
spigot-api
- 1.8-R0.1-SNAPSHOT
+ 1.8.8-R0.1-SNAPSHOT
provided
org.spongepowered
spongeapi
- 2.0
+ 3.0.0
provided
@@ -132,7 +132,7 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.3
+ 3.5.1
1.7
1.7
@@ -160,7 +160,7 @@
org.apache.maven.plugins
maven-shade-plugin
- 2.3
+ 2.4.3
package
diff --git a/src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitDatabaseFetcher.java b/src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitDatabaseFetcher.java
index ad55fc2..af7308a 100644
--- a/src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitDatabaseFetcher.java
+++ b/src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitDatabaseFetcher.java
@@ -28,14 +28,10 @@ public class BukkitDatabaseFetcher extends RestartableThread
BukkitPluginMain.consoleLog.warning("[rscp] Cannot connect to database! Using local cache only.");
return;
}
- final DatabaseContents contents = rscp.connection.retrieveContents();
+ final DatabaseContents contents = remoteToLocal();
rscp.connection.disconnect();
if(contents != null)
{
- contents.normalize();
- rscp.localStorage.cleanup();
- rscp.localStorage.saveContents(contents);
- contents.filterServerId(rscp.getServer().getServerId());
rscp.internalCache.fill(contents);
final Runnable syncTask = new Runnable()
{
@@ -76,4 +72,16 @@ public class BukkitDatabaseFetcher extends RestartableThread
} else
BukkitPluginMain.consoleLog.warning("[rscp] Cannot load data from database.");
}
+ public synchronized DatabaseContents remoteToLocal()
+ {
+ final DatabaseContents contents = rscp.connection.retrieveContents();
+ if(contents != null)
+ {
+ contents.normalize();
+ rscp.localStorage.cleanup();
+ rscp.localStorage.saveContents(contents);
+ contents.filterServerId(rscp.getServer().getServerId());
+ }
+ return contents;
+ }
}
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 f9d8799..be60b39 100644
--- a/src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/BukkitCommands.java
+++ b/src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/BukkitCommands.java
@@ -1,10 +1,8 @@
package ru.simsonic.rscPermissions.Bukkit.Commands;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.logging.Level;
import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
import ru.simsonic.rscCommonsLibrary.RestartableThread;
import ru.simsonic.rscMinecraftLibrary.Bukkit.CommandAnswerException;
import ru.simsonic.rscMinecraftLibrary.Bukkit.GenericChatCodes;
@@ -12,13 +10,12 @@ import ru.simsonic.rscMinecraftLibrary.Bukkit.Tools;
import ru.simsonic.rscPermissions.API.Settings;
import ru.simsonic.rscPermissions.Bukkit.BukkitDatabaseFetcher;
import ru.simsonic.rscPermissions.BukkitPluginMain;
-import ru.simsonic.rscPermissions.Engine.Matchers;
import ru.simsonic.rscPermissions.Engine.Phrases;
-import ru.simsonic.rscPermissions.Engine.ResolutionResult;
public class BukkitCommands
{
private final BukkitPluginMain rscp;
+ private final CommandUser cmdUser;
private final CommandLock cmdLock;
private final CommandFetch cmdFetch;
private final CommandDebug cmdDebug;
@@ -28,6 +25,7 @@ public class BukkitCommands
public BukkitCommands(final BukkitPluginMain plugin)
{
this.rscp = plugin;
+ cmdUser = new CommandUser(rscp);
cmdLock = new CommandLock(rscp);
cmdFetch = new CommandFetch(rscp);
cmdDebug = new CommandDebug(rscp);
@@ -123,16 +121,31 @@ public class BukkitCommands
switch(args[0].toLowerCase())
{
case "user":
- onCommandHubUser(sender, args);
- break;
+ cmdUser.onUserCommandHub(sender, args);
+ return;
case "lock":
cmdLock.executeLock(sender, args);
return;
case "unlock":
cmdLock.executeUnlock(sender);
return;
+ case "fetch":
+ /* rscp fetch */
+ cmdFetch.execute(sender);
+ return;
+ case "debug":
+ /* rscp debug [|toggle] */
+ cmdDebug.execute(sender, args);
+ return;
+ case "reload":
+ /* rscp reload */
+ cmdReload.execute(sender);
+ return;
+ case "update":
+ cmdUpdate.execute(sender, args);
+ return;
case "examplerows":
- /* rscp examplerows */
+ /* DEPRECATED: rscp examplerows */
if(sender.hasPermission("rscp.admin"))
{
threadInsertExampleRows(sender);
@@ -140,6 +153,7 @@ public class BukkitCommands
}
break;
case "import":
+ /* DEPRECATED: rscp import pex-sql*/
if(sender.hasPermission("rscp.admin"))
{
if(args.length > 1)
@@ -157,68 +171,12 @@ public class BukkitCommands
});
}
return;
- case "fetch":
- /* rscp fetch */
- cmdFetch.execute(sender);
- return;
- case "debug":
- /* rscp debug [|toggle] */
- cmdDebug.execute(sender, args);
- return;
- case "reload":
- /* rscp reload */
- cmdReload.execute(sender);
- return;
- case "update":
- cmdUpdate.execute(sender, args);
- return;
case "help":
default:
break;
}
throw new CommandAnswerException(help);
}
- private void onCommandHubUser(CommandSender sender, String[] args) throws CommandAnswerException
- {
- if(sender.hasPermission("rscp.admin") == false)
- throw new CommandAnswerException("Not enough permissions.");
- if(args.length < 3)
- return;
- final Player player = rscp.bridgeForBukkit.findPlayer(args[1]);
- if(player != null)
- args[1] = player.getName();
- final ResolutionResult result = (player != null)
- ? rscp.permissionManager.getResult(player)
- : rscp.permissionManager.getResult(args[1]);
- final ArrayList answer = new ArrayList<>();
- if(Matchers.isCorrectDashlessUUID(args[1]))
- args[1] = Matchers.uuidAddDashes(args[1]);
- switch(args[2].toLowerCase())
- {
- case "lp":
- answer.add("Permission list for user {_YL}" + args[1] + "{_LS}:");
- final ArrayList sorted_keys = new ArrayList<>(result.permissions.keySet());
- Collections.sort(sorted_keys);
- for(String perm : sorted_keys)
- answer.add((result.permissions.get(perm) ? "{_LG}" : "{_LR}") + perm);
- throw new CommandAnswerException(answer);
- case "lg":
- answer.add("Group list for user {_YL}" + args[1] + "{_LS}:");
- for(String group : result.getOrderedGroups())
- answer.add("{_LG}" + group);
- throw new CommandAnswerException(answer);
- case "p":
- case "prefix":
- answer.add("Calculated prefix for user {_YL}" + args[1] + "{_LS} is:");
- answer.add("{_R}\"" + result.prefix + "{_R}\"");
- throw new CommandAnswerException(answer);
- case "s":
- case "suffix":
- answer.add("Calculated suffix for user {_YL}" + args[1] + "{_LS} is:");
- answer.add("{_R}\"" + result.suffix + "{_R}\"");
- throw new CommandAnswerException(answer);
- }
- }
public static boolean argumentToBoolean(String arg, Boolean prevForToggle) throws IllegalArgumentException
{
if(arg == null || "".equals(arg))
diff --git a/src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandUser.java b/src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandUser.java
new file mode 100644
index 0000000..263ad0f
--- /dev/null
+++ b/src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandUser.java
@@ -0,0 +1,109 @@
+package ru.simsonic.rscPermissions.Bukkit.Commands;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+import ru.simsonic.rscMinecraftLibrary.Bukkit.CommandAnswerException;
+import ru.simsonic.rscPermissions.BukkitPluginMain;
+import ru.simsonic.rscPermissions.Engine.Matchers;
+import ru.simsonic.rscPermissions.Engine.ResolutionResult;
+
+public class CommandUser
+{
+ private final BukkitPluginMain rscp;
+ CommandUser(BukkitPluginMain plugin)
+ {
+ this.rscp = plugin;
+ }
+ public void onUserCommandHub(CommandSender sender, String[] args) throws CommandAnswerException
+ {
+ if(sender.hasPermission("rscp.admin"))
+ {
+ if(args.length < 3)
+ return;
+ final Player player = rscp.bridgeForBukkit.findPlayer(args[1]);
+ if(player != null)
+ args[1] = player.getName();
+ final ResolutionResult result = (player != null)
+ ? rscp.permissionManager.getResult(player)
+ : rscp.permissionManager.getResult(args[1]);
+ if(Matchers.isCorrectDashlessUUID(args[1]))
+ args[1] = Matchers.uuidAddDashes(args[1]);
+ switch(args[2].toLowerCase())
+ {
+ case "p":
+ case "prefix":
+ viewPrefix(result, args[1]);
+ break;
+ case "s":
+ case "suffix":
+ viewSuffix(result, args[1]);
+ break;
+ case "listpermissions":
+ case "lp":
+ listPermissions(result, args[1]);
+ break;
+ case "listgroups":
+ case "lg":
+ listGroups(result, args[1]);
+ break;
+ case "addgroup":
+ case "ag":
+ // TO DO HERE
+ addGroup(result, args[1], null, null, null);
+ break;
+ case "removegroup":
+ case "rg":
+ // TO DO HERE
+ removeGroup(result, args[1], null);
+ break;
+ default:
+ break;
+ }
+ } else
+ throw new CommandAnswerException("Not enough permissions.");
+ }
+ private void viewPrefix(ResolutionResult result, String user) throws CommandAnswerException
+ {
+ final ArrayList answer = new ArrayList<>();
+ answer.add("Calculated prefix for user {_YL}" + user + "{_LS} is:");
+ answer.add("{_R}\"" + result.prefix + "{_R}\"");
+ throw new CommandAnswerException(answer);
+ }
+ private void viewSuffix(ResolutionResult result, String user) throws CommandAnswerException
+ {
+ final ArrayList answer = new ArrayList<>();
+ answer.add("Calculated suffix for user {_YL}" + user + "{_LS} is:");
+ answer.add("{_R}\"" + result.suffix + "{_R}\"");
+ throw new CommandAnswerException(answer);
+ }
+ private void listPermissions(ResolutionResult result, String user) throws CommandAnswerException
+ {
+ final ArrayList answer = new ArrayList<>();
+ answer.add("Permission list for user {_YL}" + user + "{_LS}:");
+ final ArrayList sorted_keys = new ArrayList<>(result.permissions.keySet());
+ Collections.sort(sorted_keys);
+ for(String perm : sorted_keys)
+ answer.add((result.permissions.get(perm) ? "{_LG}" : "{_LR}") + perm);
+ throw new CommandAnswerException(answer);
+ }
+ private void listGroups(ResolutionResult result, String user) throws CommandAnswerException
+ {
+ final ArrayList answer = new ArrayList<>();
+ answer.add("Group list for user {_YL}" + user + "{_LS}:");
+ for(String group : result.getOrderedGroups())
+ answer.add("{_LG}" + group);
+ throw new CommandAnswerException(answer);
+ }
+ private void addGroup(ResolutionResult result, String user, String parent, String destination, Integer seconds) throws CommandAnswerException
+ {
+ final ArrayList answer = new ArrayList<>();
+ throw new CommandAnswerException(answer);
+ }
+ private void removeGroup(ResolutionResult result, String user, String parent) throws CommandAnswerException
+ {
+ final ArrayList answer = new ArrayList<>();
+ throw new CommandAnswerException(answer);
+ }
+}
diff --git a/src/main/java/ru/simsonic/rscPermissions/Engine/Backends/BackendDatabase.java b/src/main/java/ru/simsonic/rscPermissions/Engine/Backends/BackendDatabase.java
index 4b7ae5a..e9d4f36 100644
--- a/src/main/java/ru/simsonic/rscPermissions/Engine/Backends/BackendDatabase.java
+++ b/src/main/java/ru/simsonic/rscPermissions/Engine/Backends/BackendDatabase.java
@@ -120,17 +120,25 @@ public class BackendDatabase extends ConnectionMySQL
setupQueryTemplate("{TEXT}", (text != null) ? "'" + text + "'" : "NULL");
executeUpdateT("Update_entity_text");
}
- public synchronized void LockTables()
+ public synchronized void lockTableEntities()
{
- executeUpdate("LOCK TABLES `{DATABASE}`.`{PREFIX}entities`, `{DATABASE}`.`{PREFIX}permissions`, `{DATABASE}`.`{PREFIX}inheritance`;");
+ executeUpdate("LOCK TABLES `{DATABASE}`.`{PREFIX}entities`;");
}
- public synchronized void UnlockTables()
+ public synchronized void lockTablePermissions()
+ {
+ executeUpdate("LOCK TABLES `{DATABASE}`.`{PREFIX}permissions`;");
+ }
+ public synchronized void lockTableInheritance()
+ {
+ executeUpdate("LOCK TABLES `{DATABASE}`.`{PREFIX}inheritance`;");
+ }
+ public synchronized void unlockAllTables()
{
executeUpdate("UNLOCK TABLES;");
}
public synchronized void transactionStart()
{
- executeUpdate("BEGIN TRANSACTION;");
+ executeUpdate("START TRANSACTION;");
}
public synchronized void transactionCommit()
{
@@ -142,12 +150,12 @@ public class BackendDatabase extends ConnectionMySQL
}
public synchronized void modifyDatabase()
{
- LockTables();
+ lockTableEntities();
// FETCH ALL DATA
transactionStart();
// MAKE MODIFICATIONS
transactionCommit();
- UnlockTables();
+ unlockAllTables();
// FETCH ALL DATA AGAIN
}
}
diff --git a/src/main/java/ru/simsonic/rscPermissions/Engine/Backends/DatabaseAction.java b/src/main/java/ru/simsonic/rscPermissions/Engine/Backends/DatabaseAction.java
new file mode 100644
index 0000000..4c7892a
--- /dev/null
+++ b/src/main/java/ru/simsonic/rscPermissions/Engine/Backends/DatabaseAction.java
@@ -0,0 +1,11 @@
+package ru.simsonic.rscPermissions.Engine.Backends;
+
+import ru.simsonic.rscPermissions.API.RowInheritance;
+import ru.simsonic.rscPermissions.API.RowPermission;
+
+public class DatabaseAction
+{
+ public int id;
+ public RowPermission permissions;
+ public RowInheritance inheritance;
+}
diff --git a/src/main/java/ru/simsonic/rscPermissions/Engine/Backends/DatabaseTransaction.java b/src/main/java/ru/simsonic/rscPermissions/Engine/Backends/DatabaseTransaction.java
new file mode 100644
index 0000000..072195b
--- /dev/null
+++ b/src/main/java/ru/simsonic/rscPermissions/Engine/Backends/DatabaseTransaction.java
@@ -0,0 +1,56 @@
+package ru.simsonic.rscPermissions.Engine.Backends;
+
+import java.util.LinkedList;
+import java.util.List;
+import ru.simsonic.rscMinecraftLibrary.Bukkit.CommandAnswerException;
+import ru.simsonic.rscPermissions.BukkitPluginMain;
+
+public class DatabaseTransaction
+{
+ private final BukkitPluginMain rscp;
+ private final List actions = new LinkedList<>();
+ public DatabaseTransaction(BukkitPluginMain rscp)
+ {
+ this.rscp = rscp;
+ }
+ /*
+ What can happen?
+ add permission [destination] [lifetime]
+ remove permission [destination]
+ add group [destination] [lifitime]
+ remove group [destination]
+ */
+ public void apply() throws CommandAnswerException
+ {
+ // START TRANSACTION AND LOCK TABLE
+ rscp.connection.lockTableEntities();
+ rscp.connection.lockTablePermissions();
+ rscp.connection.lockTableInheritance();
+ rscp.connection.transactionStart();
+
+ // SELECT FROM DATABASE INTO LOCAL CACHE TO MAKE IT ACTUAL
+ final DatabaseContents contents = rscp.commandHelper.threadFetchDatabaseContents.remoteToLocal();
+
+ // UNDERSTAND WHAT TO DO
+ if(contents != null)
+ {
+ // OPTIONAL: REMOVE OLD `id`'s WITH POTENTIALLY MULTIPLY DATA
+ if(false)
+ {
+ // OPTIONAL: RESTORE DATA THAT SHOULDN'T BE REMOVED
+ }
+ // OPTIONAL: INSERT NEW DATA THAT SHOULD BE ADDED
+ if(false)
+ {
+
+ }
+ }
+
+ // COMMIT CHANGES AND UNLOCK TABLE
+ rscp.connection.transactionCommit();
+ rscp.connection.unlockAllTables();
+
+ // CALL PLUGIN TO APPLY ALL THIS CHANGES
+ rscp.commandHelper.threadFetchDatabaseContents.run();
+ }
+}
diff --git a/src/main/java/ru/simsonic/rscPermissions/Engine/InternalCache.java b/src/main/java/ru/simsonic/rscPermissions/Engine/InternalCache.java
index 17eda3d..c714949 100644
--- a/src/main/java/ru/simsonic/rscPermissions/Engine/InternalCache.java
+++ b/src/main/java/ru/simsonic/rscPermissions/Engine/InternalCache.java
@@ -221,6 +221,7 @@ public class InternalCache
processPermissions(params, applicablePermissions);
result.permissions = params.finalPerms;
result.groups = params.groupList;
+ result.params = params;
return result;
}
private ResolutionResult resolveParent(ResolutionParams params)
diff --git a/src/main/java/ru/simsonic/rscPermissions/Engine/ResolutionResult.java b/src/main/java/ru/simsonic/rscPermissions/Engine/ResolutionResult.java
index 5b4c712..3130a22 100644
--- a/src/main/java/ru/simsonic/rscPermissions/Engine/ResolutionResult.java
+++ b/src/main/java/ru/simsonic/rscPermissions/Engine/ResolutionResult.java
@@ -11,6 +11,7 @@ public class ResolutionResult
{
public String prefix = "";
public String suffix = "";
+ public ResolutionParams params;
public Map permissions;
protected List groups;
public boolean hasPermission(String permission)
diff --git a/src/main/java/ru/simsonic/rscPermissions/Sponge/Commands/SpongeCommands.java b/src/main/java/ru/simsonic/rscPermissions/Sponge/Commands/SpongeCommands.java
index d7ef53c..366f06e 100644
--- a/src/main/java/ru/simsonic/rscPermissions/Sponge/Commands/SpongeCommands.java
+++ b/src/main/java/ru/simsonic/rscPermissions/Sponge/Commands/SpongeCommands.java
@@ -1,19 +1,19 @@
package ru.simsonic.rscPermissions.Sponge.Commands;
-import org.spongepowered.api.text.Texts;
-import org.spongepowered.api.util.command.CommandException;
-import org.spongepowered.api.util.command.CommandResult;
-import org.spongepowered.api.util.command.CommandSource;
-import org.spongepowered.api.util.command.args.CommandContext;
-import org.spongepowered.api.util.command.spec.CommandExecutor;
-import org.spongepowered.api.util.command.spec.CommandSpec;
+import org.spongepowered.api.command.spec.CommandExecutor;
+import org.spongepowered.api.command.CommandException;
+import org.spongepowered.api.command.CommandResult;
+import org.spongepowered.api.command.CommandSource;
+import org.spongepowered.api.command.args.CommandContext;
+import org.spongepowered.api.command.spec.CommandSpec;
+import org.spongepowered.api.text.Text;
public class SpongeCommands implements CommandExecutor
{
private final CommandSpec commandHub = CommandSpec.builder()
- .setDescription(Texts.of("Hello World Command"))
- .setPermission("myplugin.command.helloworld")
- .setExecutor(this)
+ .description(Text.of("Hello World Command"))
+ .permission("myplugin.command.helloworld")
+ .executor(this)
.build();
public SpongeCommands()
{
@@ -22,7 +22,7 @@ public class SpongeCommands implements CommandExecutor
@Override
public CommandResult execute(CommandSource src, CommandContext context) throws CommandException
{
- src.sendMessage(Texts.of("Hello rscp's World!"));
+ src.sendMessage(Text.of("Hello rscp's World!"));
return CommandResult.success();
}
}
diff --git a/src/main/java/ru/simsonic/rscPermissions/Sponge/SpongePermissionManager.java b/src/main/java/ru/simsonic/rscPermissions/Sponge/SpongePermissionManager.java
index bd6753d..eb459f4 100644
--- a/src/main/java/ru/simsonic/rscPermissions/Sponge/SpongePermissionManager.java
+++ b/src/main/java/ru/simsonic/rscPermissions/Sponge/SpongePermissionManager.java
@@ -1,21 +1,25 @@
package ru.simsonic.rscPermissions.Sponge;
+import java.util.Collection;
import java.util.Map;
+import java.util.Optional;
import org.slf4j.Logger;
+import org.spongepowered.api.service.context.ContextCalculator;
+import org.spongepowered.api.service.permission.PermissionDescription;
import org.spongepowered.api.service.permission.PermissionService;
+import org.spongepowered.api.service.permission.Subject;
import org.spongepowered.api.service.permission.SubjectCollection;
import org.spongepowered.api.service.permission.SubjectData;
-import org.spongepowered.api.service.permission.context.ContextCalculator;
import ru.simsonic.rscPermissions.SpongePluginMain;
public class SpongePermissionManager implements PermissionService
{
private final SpongePluginMain rscp;
- private final Logger logger;
+ // private final Logger logger;
public SpongePermissionManager(SpongePluginMain plugin)
{
this.rscp = plugin;
- this.logger = rscp.getLogger();
+ // this.logger = rscp.getLogger();
}
@Override
public SubjectCollection getUserSubjects()
@@ -43,7 +47,22 @@ public class SpongePermissionManager implements PermissionService
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
- public void registerContextCalculator(ContextCalculator calculator)
+ public void registerContextCalculator(ContextCalculator cc)
+ {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+ @Override
+ public Optional newDescriptionBuilder(Object o)
+ {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+ @Override
+ public Optional getDescription(String string)
+ {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
+ @Override
+ public Collection getDescriptions()
{
throw new UnsupportedOperationException("Not supported yet.");
}
diff --git a/src/main/java/ru/simsonic/rscPermissions/SpongePluginMain.java b/src/main/java/ru/simsonic/rscPermissions/SpongePluginMain.java
index 382cb0b..1be9c27 100644
--- a/src/main/java/ru/simsonic/rscPermissions/SpongePluginMain.java
+++ b/src/main/java/ru/simsonic/rscPermissions/SpongePluginMain.java
@@ -3,13 +3,15 @@ package ru.simsonic.rscPermissions;
import com.google.inject.Inject;
import java.io.File;
import org.slf4j.Logger;
+/*
import org.spongepowered.api.Game;
import org.spongepowered.api.event.Subscribe;
-import org.spongepowered.api.event.state.ServerAboutToStartEvent;
+import org.spongepowered.api.event.sstate.ServerAboutToStartEvent;
import org.spongepowered.api.event.state.ServerStartedEvent;
import org.spongepowered.api.event.state.ServerStartingEvent;
import org.spongepowered.api.event.state.ServerStoppedEvent;
import org.spongepowered.api.event.state.ServerStoppingEvent;
+*/
import org.spongepowered.api.plugin.Plugin;
import ru.simsonic.rscPermissions.API.Settings;
import ru.simsonic.rscPermissions.Engine.Backends.BackendDatabase;
@@ -20,15 +22,18 @@ import ru.simsonic.rscPermissions.Sponge.SpongePluginConfiguration;
// 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.10.0b")
public class SpongePluginMain
{
+ /*
private final Logger logger;
+ */
private final Settings settings = new SpongePluginConfiguration(this);
private final SpongePermissionManager permissionManager = new SpongePermissionManager(this);
public final BackendJson localStorage = new BackendJson(new File(""));
public final BackendDatabase connection = new BackendDatabase(null);
public final InternalCache internalCache = new InternalCache();
+ /*
@Inject
private Game game;
@Inject
@@ -66,4 +71,5 @@ public class SpongePluginMain
{
logger.info("onServerStopped");
}
+ */
}