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; } }