Browse Source

Starting to work on Sponge implementation.

master
SimSonic 10 years ago
parent
commit
9d2d5a43ad
  1. 17
      pom.xml
  2. 1
      src/main/java/ru/simsonic/rscPermissions/API/Destination.java
  3. 1
      src/main/java/ru/simsonic/rscPermissions/API/PlayerType.java
  4. 1
      src/main/java/ru/simsonic/rscPermissions/API/RowEntity.java
  5. 1
      src/main/java/ru/simsonic/rscPermissions/API/RowInheritance.java
  6. 1
      src/main/java/ru/simsonic/rscPermissions/API/RowPermission.java
  7. 1
      src/main/java/ru/simsonic/rscPermissions/API/Settings.java
  8. 3
      src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitDatabaseFetcher.java
  9. 1
      src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitEventListener.java
  10. 1
      src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitPermissionManager.java
  11. 1
      src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitPluginConfiguration.java
  12. 2
      src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitRegionProviders.java
  13. 1
      src/main/java/ru/simsonic/rscPermissions/Bukkit/RegionUpdateObserver.java
  14. 1
      src/main/java/ru/simsonic/rscPermissions/Bukkit/WorldEditPermissions.java
  15. 9
      src/main/java/ru/simsonic/rscPermissions/BukkitPluginMain.java
  16. 3
      src/main/java/ru/simsonic/rscPermissions/Engine/Backends/BackendDatabase.java
  17. 3
      src/main/java/ru/simsonic/rscPermissions/Engine/Backends/BackendJson.java
  18. 3
      src/main/java/ru/simsonic/rscPermissions/Engine/Backends/DatabaseContents.java
  19. 2
      src/main/java/ru/simsonic/rscPermissions/Engine/InternalCache.java
  20. 6
      src/main/java/ru/simsonic/rscPermissions/IndependentMain.java
  21. 28
      src/main/java/ru/simsonic/rscPermissions/Sponge/Commands/SpongeCommands.java
  22. 6
      src/main/java/ru/simsonic/rscPermissions/Sponge/SpongeEventListener.java
  23. 50
      src/main/java/ru/simsonic/rscPermissions/Sponge/SpongePermissionManager.java
  24. 96
      src/main/java/ru/simsonic/rscPermissions/Sponge/SpongePluginConfiguration.java
  25. 44
      src/main/java/ru/simsonic/rscPermissions/SpongePluginMain.java

17
pom.xml

@ -4,7 +4,7 @@
<groupId>ru.simsonic</groupId>
<artifactId>rscPermissions</artifactId>
<version>0.9.15b</version>
<version>0.9.16b</version>
<packaging>jar</packaging>
<name>rscPermissions</name>
@ -63,6 +63,14 @@
<version>1.8-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<!-- В связи с появлением Sponge API, разработка будет вестись и под него -->
<dependency>
<groupId>org.spongepowered</groupId>
<artifactId>spongeapi</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<!-- Моя собственная библиотека общего кода для разных проектов -->
<dependency>
<groupId>ru.simsonic</groupId>
<artifactId>rscUtilityLibrary</artifactId>
@ -103,13 +111,6 @@
<version>3.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<!-- В связи с появлением Sponge API, разработка будет вестись и под него -->
<dependency>
<groupId>org.spongepowered</groupId>
<artifactId>spongeapi</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<properties>

1
src/main/java/ru/simsonic/rscPermissions/API/Destination.java

@ -1,4 +1,5 @@
package ru.simsonic.rscPermissions.API;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

1
src/main/java/ru/simsonic/rscPermissions/API/PlayerType.java

@ -1,4 +1,5 @@
package ru.simsonic.rscPermissions.API;
import ru.simsonic.rscPermissions.Engine.Matchers;
public enum PlayerType

1
src/main/java/ru/simsonic/rscPermissions/API/RowEntity.java

@ -1,4 +1,5 @@
package ru.simsonic.rscPermissions.API;
import java.sql.Timestamp;
public class RowEntity implements Cloneable

1
src/main/java/ru/simsonic/rscPermissions/API/RowInheritance.java

@ -1,4 +1,5 @@
package ru.simsonic.rscPermissions.API;
import java.sql.Timestamp;
import java.util.Arrays;
import ru.simsonic.rscUtilityLibrary.TextProcessing.GenericChatCodes;

1
src/main/java/ru/simsonic/rscPermissions/API/RowPermission.java

@ -1,4 +1,5 @@
package ru.simsonic.rscPermissions.API;
import java.sql.Timestamp;
public class RowPermission implements Cloneable

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

@ -1,4 +1,5 @@
package ru.simsonic.rscPermissions.API;
import java.util.Map;
import ru.simsonic.rscUtilityLibrary.ConnectionMySQL.ConnectionParams;

3
src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitDatabaseFetcher.java

@ -1,9 +1,10 @@
package ru.simsonic.rscPermissions.Bukkit;
import java.util.Set;
import java.util.logging.Level;
import org.bukkit.command.CommandSender;
import ru.simsonic.rscPermissions.API.Settings;
import ru.simsonic.rscPermissions.Backends.DatabaseContents;
import ru.simsonic.rscPermissions.Engine.Backends.DatabaseContents;
import ru.simsonic.rscPermissions.BukkitPluginMain;
import ru.simsonic.rscUtilityLibrary.RestartableThread;
import ru.simsonic.rscUtilityLibrary.TextProcessing.GenericChatCodes;

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

@ -1,4 +1,5 @@
package ru.simsonic.rscPermissions.Bukkit;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Map;

1
src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitPermissionManager.java

@ -1,4 +1,5 @@
package ru.simsonic.rscPermissions.Bukkit;
import java.net.InetSocketAddress;
import java.util.ArrayList;
import java.util.Arrays;

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

@ -1,4 +1,5 @@
package ru.simsonic.rscPermissions.Bukkit;
import java.io.File;
import java.util.HashMap;
import java.util.Map;

2
src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitRegionProviders.java

@ -1,9 +1,9 @@
package ru.simsonic.rscPermissions.Bukkit;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.protection.ApplicableRegionSet;
import com.sk89q.worldguard.protection.managers.RegionManager;
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
import java.io.Serializable;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;

1
src/main/java/ru/simsonic/rscPermissions/Bukkit/RegionUpdateObserver.java

@ -1,4 +1,5 @@
package ru.simsonic.rscPermissions.Bukkit;
import org.bukkit.entity.Player;
import ru.simsonic.rscPermissions.BukkitPluginMain;
import ru.simsonic.rscUtilityLibrary.Bukkit.Listeners.MovingPlayersCatcher;

1
src/main/java/ru/simsonic/rscPermissions/Bukkit/WorldEditPermissions.java

@ -11,7 +11,6 @@ import org.bukkit.Server;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.generator.ChunkGenerator;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginDescriptionFile;

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

@ -1,4 +1,5 @@
package ru.simsonic.rscPermissions;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
@ -10,9 +11,9 @@ import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitScheduler;
import org.mcstats.MetricsLite;
import ru.simsonic.rscPermissions.API.Settings;
import ru.simsonic.rscPermissions.Backends.BackendDatabase;
import ru.simsonic.rscPermissions.Backends.BackendJson;
import ru.simsonic.rscPermissions.Backends.DatabaseContents;
import ru.simsonic.rscPermissions.Engine.Backends.BackendDatabase;
import ru.simsonic.rscPermissions.Engine.Backends.BackendJson;
import ru.simsonic.rscPermissions.Engine.Backends.DatabaseContents;
import ru.simsonic.rscPermissions.Bukkit.BukkitEventListener;
import ru.simsonic.rscPermissions.Bukkit.BukkitPermissionManager;
import ru.simsonic.rscPermissions.Bukkit.BukkitPluginConfiguration;
@ -27,7 +28,7 @@ import ru.simsonic.rscUtilityLibrary.TextProcessing.GenericChatCodes;
public final class BukkitPluginMain extends JavaPlugin
{
public static final Logger consoleLog = Bukkit.getLogger();
public final BukkitPluginConfiguration settings = new BukkitPluginConfiguration(this);
public final Settings settings = new BukkitPluginConfiguration(this);
public final BridgeForBukkitAPI bridgeForBukkit = new BridgeForBukkitAPI(this);
public final BukkitEventListener bukkitListener = new BukkitEventListener(this);
public final BackendJson localStorage = new BackendJson(getDataFolder());

3
src/main/java/ru/simsonic/rscPermissions/Backends/BackendDatabase.java → src/main/java/ru/simsonic/rscPermissions/Engine/Backends/BackendDatabase.java

@ -1,4 +1,5 @@
package ru.simsonic.rscPermissions.Backends;
package ru.simsonic.rscPermissions.Engine.Backends;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

3
src/main/java/ru/simsonic/rscPermissions/Backends/BackendJson.java → src/main/java/ru/simsonic/rscPermissions/Engine/Backends/BackendJson.java

@ -1,4 +1,5 @@
package ru.simsonic.rscPermissions.Backends;
package ru.simsonic.rscPermissions.Engine.Backends;
import com.google.gson.Gson;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;

3
src/main/java/ru/simsonic/rscPermissions/Backends/DatabaseContents.java → src/main/java/ru/simsonic/rscPermissions/Engine/Backends/DatabaseContents.java

@ -1,4 +1,5 @@
package ru.simsonic.rscPermissions.Backends;
package ru.simsonic.rscPermissions.Engine.Backends;
import java.util.ArrayList;
import java.util.Date;
import ru.simsonic.rscPermissions.API.Destination;

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

@ -15,7 +15,7 @@ import ru.simsonic.rscPermissions.API.RowEntity;
import ru.simsonic.rscPermissions.API.RowInheritance;
import ru.simsonic.rscPermissions.API.RowPermission;
import ru.simsonic.rscPermissions.API.Settings;
import ru.simsonic.rscPermissions.Backends.DatabaseContents;
import ru.simsonic.rscPermissions.Engine.Backends.DatabaseContents;
import ru.simsonic.rscUtilityLibrary.TextProcessing.GenericChatCodes;
public class InternalCache

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

@ -3,9 +3,9 @@ import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.logging.Logger;
import ru.simsonic.rscPermissions.Backends.BackendDatabase;
import ru.simsonic.rscPermissions.Backends.BackendJson;
import ru.simsonic.rscPermissions.Backends.DatabaseContents;
import ru.simsonic.rscPermissions.Engine.Backends.BackendDatabase;
import ru.simsonic.rscPermissions.Engine.Backends.BackendJson;
import ru.simsonic.rscPermissions.Engine.Backends.DatabaseContents;
import ru.simsonic.rscPermissions.Engine.InternalCache;
import ru.simsonic.rscPermissions.Engine.ResolutionResult;

28
src/main/java/ru/simsonic/rscPermissions/Sponge/Commands/SpongeCommands.java

@ -0,0 +1,28 @@
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;
public class SpongeCommands implements CommandExecutor
{
private final CommandSpec commandHub = CommandSpec.builder()
.setDescription(Texts.of("Hello World Command"))
.setPermission("myplugin.command.helloworld")
.setExecutor(this)
.build();
public SpongeCommands()
{
// game.getCommandDispatcher().register(plugin, commandHub, "helloworld", "hello", "test");
}
@Override
public CommandResult execute(CommandSource src, CommandContext context) throws CommandException
{
src.sendMessage(Texts.of("Hello rscp's World!"));
return CommandResult.success();
}
}

6
src/main/java/ru/simsonic/rscPermissions/Sponge/SpongeEventListener.java

@ -0,0 +1,6 @@
package ru.simsonic.rscPermissions.Sponge;
public class SpongeEventListener
{
}

50
src/main/java/ru/simsonic/rscPermissions/Sponge/SpongePermissionManager.java

@ -0,0 +1,50 @@
package ru.simsonic.rscPermissions.Sponge;
import java.util.Map;
import org.slf4j.Logger;
import org.spongepowered.api.service.permission.PermissionService;
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;
public SpongePermissionManager(SpongePluginMain plugin)
{
this.rscp = plugin;
this.logger = rscp.getLogger();
}
@Override
public SubjectCollection getUserSubjects()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public SubjectCollection getGroupSubjects()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public SubjectData getDefaultData()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public SubjectCollection getSubjects(String identifier)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public Map<String, SubjectCollection> getKnownSubjects()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void registerContextCalculator(ContextCalculator calculator)
{
throw new UnsupportedOperationException("Not supported yet.");
}
}

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

@ -0,0 +1,96 @@
package ru.simsonic.rscPermissions.Sponge;
import java.util.Map;
import ru.simsonic.rscPermissions.API.Settings;
import ru.simsonic.rscPermissions.API.TranslationProvider;
import ru.simsonic.rscPermissions.SpongePluginMain;
import ru.simsonic.rscUtilityLibrary.ConnectionMySQL.ConnectionParams;
public class SpongePluginConfiguration implements Settings
{
private final SpongePluginMain rscp;
public SpongePluginConfiguration(SpongePluginMain plugin)
{
this.rscp = plugin;
}
@Override
public void onLoad()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void readSettings()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public String getDefaultGroup()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public boolean isDefaultForever()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public boolean isAsteriskOP()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public boolean isInMaintenance()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public String getMaintenanceMode()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void setMaintenanceMode(String mode)
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public boolean isUseResidence()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public boolean isUseWorldGuard()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public long getRegionFinderGranularity()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public int getAutoReloadDelayTicks()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public boolean isUseMetrics()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public Map<String, Integer> getSlotLimits()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public TranslationProvider getTranslationProvider()
{
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public ConnectionParams getConnectionParams()
{
throw new UnsupportedOperationException("Not supported yet.");
}
}

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

@ -1,27 +1,69 @@
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.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;
import ru.simsonic.rscPermissions.Engine.Backends.BackendJson;
import ru.simsonic.rscPermissions.Engine.InternalCache;
import ru.simsonic.rscPermissions.Sponge.SpongePermissionManager;
import ru.simsonic.rscPermissions.Sponge.SpongePluginConfiguration;
// Documentation for Sponge: https://docs.spongepowered.org/en/index.html
@Plugin(id = "rscPermissions", name = "rscPermissions", version = "0.9b")
@Plugin(id = "rscPermissions", name = "rscPermissions", version = "0.9.16b")
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
public SpongePluginMain(Logger logger)
{
this.logger = logger;
logger.info("API VERSION IS " + game.getApiVersion());
}
public Logger getLogger()
{
return logger;
}
@Subscribe
public void onServerStart(ServerAboutToStartEvent event)
{
logger.info("onServerStart");
}
@Subscribe
public void onServerStarting(ServerStartingEvent event)
{
logger.info("onServerStarting");
}
@Subscribe
public void onServerStarted(ServerStartedEvent event)
{
logger.info("onServerStarted");
}
@Subscribe
public void onServerStopping(ServerStoppingEvent event)
{
logger.info("onServerStopping");
}
@Subscribe
public void onServerStopped(ServerStoppedEvent event)
{
logger.info("onServerStopped");
}
}

Loading…
Cancel
Save