NewMinecleaner/src/main/java/de/lunarakai/minecleaner/MinecleanerPlugin.java

70 lines
2.6 KiB
Java

package de.lunarakai.minecleaner;
import org.bukkit.plugin.java.JavaPlugin;
import de.iani.cubesidestats.api.CubesideStatisticsAPI;
import de.iani.cubesideutils.bukkit.commands.CommandRouter;
import de.iani.playerUUIDCache.PlayerUUIDCache;
import de.lunarakai.minecleaner.commands.CreateCommand;
import de.lunarakai.minecleaner.commands.DeleteCommand;
import de.lunarakai.minecleaner.commands.DeletePlayerScoreCommand;
import de.lunarakai.minecleaner.commands.InfoCommand;
import de.lunarakai.minecleaner.commands.ListCommand;
import de.lunarakai.minecleaner.commands.StatsCommand;
public final class MinecleanerPlugin extends JavaPlugin {
public static final String PERMISSION_PLAY = "minecleaner.play";
public static final String PERMISSION_ADMIN = "minecleaner.admin";
private MinecleanerManager minecleanerManager;
private ArenaList arenaList;
private CubesideStatisticsAPI cubesideStatistics;
private PlayerUUIDCache playerUUIDCache;
@Override
public void onEnable() {
this.saveDefaultConfig();
getServer().getScheduler().runTask(this, this::onLateEnable);
}
public void onLateEnable() {
playerUUIDCache = (PlayerUUIDCache) getServer().getPluginManager().getPlugin("PlayerUUIDCache");
cubesideStatistics = getServer().getServicesManager().load(CubesideStatisticsAPI.class);
arenaList = new ArenaList(this);
arenaList.load();
minecleanerManager = new MinecleanerManager(this);
getServer().getPluginManager().registerEvents(new MinecleanerListener(this), this);
CommandRouter minecleanerCommand = new CommandRouter(getCommand("minecleaner"));
minecleanerCommand.addCommandMapping(new CreateCommand(this), "create");
minecleanerCommand.addCommandMapping(new DeleteCommand(this), "delete");
minecleanerCommand.addCommandMapping(new ListCommand(this), "list");
minecleanerCommand.addCommandMapping(new StatsCommand(this), "stats");
minecleanerCommand.addCommandMapping(new DeletePlayerScoreCommand(this), "deleteplayerscores");
minecleanerCommand.addCommandMapping(new InfoCommand(this), "info");
}
@Override
public void onDisable() {
if(minecleanerManager != null) {
minecleanerManager.clearAllArenas();
}
}
public ArenaList getArenaList() {
return arenaList;
}
public MinecleanerManager getManager() {
return minecleanerManager;
}
public CubesideStatisticsAPI getCubesideStatistics() {
return cubesideStatistics;
}
public PlayerUUIDCache getPlayerUUIDCache() {
return playerUUIDCache;
}
}