From 175c7db23d0771b48de622e61ab3a201f63e23f4 Mon Sep 17 00:00:00 2001 From: Taah Date: Fri, 25 Aug 2023 01:30:41 -0700 Subject: [PATCH 1/6] Bump the version to 1.4-SNAPSHOT Remove every trace of MongoDB Fix issue where notes were not being notified on a permissions based system --- build.gradle | 2 +- server/src/main/java/dev/plex/Plex.java | 32 +--- .../main/java/dev/plex/admin/AdminList.java | 106 ++++++------- .../main/java/dev/plex/cache/DataUtils.java | 65 +------- .../java/dev/plex/command/impl/NotesCMD.java | 90 +++-------- .../plex/listener/impl/PlayerListener.java | 27 +--- .../main/java/dev/plex/player/PlexPlayer.java | 15 +- .../plex/punishment/PunishmentManager.java | 56 ++----- .../dev/plex/storage/MongoConnection.java | 56 ------- .../java/dev/plex/storage/StorageType.java | 2 +- .../plex/storage/player/MongoPlayerData.java | 147 ------------------ .../main/java/dev/plex/util/PlexUtils.java | 14 +- server/src/main/resources/config.yml | 2 +- 13 files changed, 109 insertions(+), 505 deletions(-) delete mode 100644 server/src/main/java/dev/plex/storage/MongoConnection.java delete mode 100644 server/src/main/java/dev/plex/storage/player/MongoPlayerData.java diff --git a/build.gradle b/build.gradle index 145ff62..753b8fe 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ plugins { } group = "dev.plex" -version = "1.3.1-SNAPSHOT" +version = "1.4-SNAPSHOT" description = "Plex" subprojects { diff --git a/server/src/main/java/dev/plex/Plex.java b/server/src/main/java/dev/plex/Plex.java index 7423766..3f3e0c4 100644 --- a/server/src/main/java/dev/plex/Plex.java +++ b/server/src/main/java/dev/plex/Plex.java @@ -12,12 +12,10 @@ import dev.plex.player.PlexPlayer; import dev.plex.punishment.PunishmentManager; import dev.plex.rank.RankManager; import dev.plex.services.ServiceManager; -import dev.plex.storage.MongoConnection; import dev.plex.storage.RedisConnection; import dev.plex.storage.SQLConnection; import dev.plex.storage.StorageType; import dev.plex.storage.permission.SQLPermissions; -import dev.plex.storage.player.MongoPlayerData; import dev.plex.storage.player.SQLPlayerData; import dev.plex.storage.punishment.SQLNotes; import dev.plex.storage.punishment.SQLPunishment; @@ -52,12 +50,10 @@ public class Plex extends JavaPlugin public File modulesFolder; private StorageType storageType = StorageType.SQLITE; private SQLConnection sqlConnection; - private MongoConnection mongoConnection; +// private MongoConnection mongoConnection; private RedisConnection redisConnection; private PlayerCache playerCache; - - private MongoPlayerData mongoPlayerData; private SQLPlayerData sqlPlayerData; private SQLPunishment sqlPunishment; @@ -118,7 +114,7 @@ public class Plex extends JavaPlugin commands.load(false); sqlConnection = new SQLConnection(); - mongoConnection = new MongoConnection(); +// mongoConnection = new MongoConnection(); redisConnection = new RedisConnection(); playerCache = new PlayerCache(); @@ -167,17 +163,10 @@ public class Plex extends JavaPlugin PlexLog.log("Redis is disabled in the configuration file, not connecting."); } - if (storageType == StorageType.MONGODB) - { - mongoPlayerData = new MongoPlayerData(); - } - else - { - sqlPlayerData = new SQLPlayerData(); - sqlPunishment = new SQLPunishment(); - sqlNotes = new SQLNotes(); - sqlPermissions = new SQLPermissions(); - } + sqlPlayerData = new SQLPlayerData(); + sqlPunishment = new SQLPunishment(); + sqlNotes = new SQLNotes(); + sqlPermissions = new SQLPermissions(); new ListenerHandler(); new CommandHandler(); @@ -228,14 +217,7 @@ public class Plex extends JavaPlugin plugin.getAdminList().removeFromCache(plexPlayer.getUuid()); } - if (mongoPlayerData != null) //back to mongo checking - { - mongoPlayerData.update(plexPlayer); //update the player's document - } - else if (sqlPlayerData != null) //sql checking - { - sqlPlayerData.update(plexPlayer); - } + sqlPlayerData.update(plexPlayer); }); if (redisConnection != null && redisConnection.isEnabled() && redisConnection.getJedis().isConnected()) { diff --git a/server/src/main/java/dev/plex/admin/AdminList.java b/server/src/main/java/dev/plex/admin/AdminList.java index 916cf60..7869354 100644 --- a/server/src/main/java/dev/plex/admin/AdminList.java +++ b/server/src/main/java/dev/plex/admin/AdminList.java @@ -62,32 +62,23 @@ public class AdminList implements PlexBase public List getAllAdmins() { List admins = Lists.newArrayList(); - if (plugin.getStorageType() == StorageType.MONGODB) + try (Connection con = plugin.getSqlConnection().getCon()) { - Datastore store = plugin.getMongoConnection().getDatastore(); - Query query = store.find(PlexPlayer.class); - admins.addAll(query.stream().filter(plexPlayer -> plexPlayer.getRankFromString().isAtLeast(Rank.ADMIN) && plexPlayer.isAdminActive()).map(PlexPlayer::getName).toList()); - } - else - { - try (Connection con = plugin.getSqlConnection().getCon()) - { - PreparedStatement statement = con.prepareStatement("SELECT * FROM `players` WHERE rank IN(?, ?, ?) AND adminActive=true"); - statement.setString(1, Rank.ADMIN.name().toLowerCase()); - statement.setString(2, Rank.SENIOR_ADMIN.name().toLowerCase()); - statement.setString(3, Rank.EXECUTIVE.name().toLowerCase()); + PreparedStatement statement = con.prepareStatement("SELECT * FROM `players` WHERE rank IN(?, ?, ?) AND adminActive=true"); + statement.setString(1, Rank.ADMIN.name().toLowerCase()); + statement.setString(2, Rank.SENIOR_ADMIN.name().toLowerCase()); + statement.setString(3, Rank.EXECUTIVE.name().toLowerCase()); - ResultSet set = statement.executeQuery(); - while (set.next()) - { - admins.add(set.getString("name")); - } - } - catch (SQLException throwables) + ResultSet set = statement.executeQuery(); + while (set.next()) { - throwables.printStackTrace(); + admins.add(set.getString("name")); } } + catch (SQLException throwables) + { + throwables.printStackTrace(); + } return admins; } @@ -99,53 +90,44 @@ public class AdminList implements PlexBase public List getAllAdminPlayers() { List plexPlayers = Lists.newArrayList(); - if (plugin.getStorageType() == StorageType.MONGODB) + try (Connection con = plugin.getSqlConnection().getCon()) { - Datastore store = plugin.getMongoConnection().getDatastore(); - Query query = store.find(PlexPlayer.class); - return query.stream().toList().stream().filter(player -> plugin.getRankManager().isAdmin(player)).collect(Collectors.toList()); - } - else - { - try (Connection con = plugin.getSqlConnection().getCon()) - { - PreparedStatement statement = con.prepareStatement("SELECT * FROM `players` WHERE rank IN(?, ?, ?) AND adminActive=true"); - statement.setString(1, Rank.ADMIN.name().toLowerCase()); - statement.setString(2, Rank.SENIOR_ADMIN.name().toLowerCase()); - statement.setString(3, Rank.EXECUTIVE.name().toLowerCase()); + PreparedStatement statement = con.prepareStatement("SELECT * FROM `players` WHERE rank IN(?, ?, ?) AND adminActive=true"); + statement.setString(1, Rank.ADMIN.name().toLowerCase()); + statement.setString(2, Rank.SENIOR_ADMIN.name().toLowerCase()); + statement.setString(3, Rank.EXECUTIVE.name().toLowerCase()); - ResultSet set = statement.executeQuery(); - while (set.next()) + ResultSet set = statement.executeQuery(); + while (set.next()) + { + String uuid = set.getString("uuid"); + String name = set.getString("name"); + String loginMSG = set.getString("login_msg"); + String prefix = set.getString("prefix"); + String rankName = set.getString("rank").toUpperCase(); + long coins = set.getLong("coins"); + boolean vanished = set.getBoolean("vanished"); + boolean commandspy = set.getBoolean("commandspy"); + List ips = new Gson().fromJson(set.getString("ips"), new TypeToken>() { - String uuid = set.getString("uuid"); - String name = set.getString("name"); - String loginMSG = set.getString("login_msg"); - String prefix = set.getString("prefix"); - String rankName = set.getString("rank").toUpperCase(); - long coins = set.getLong("coins"); - boolean vanished = set.getBoolean("vanished"); - boolean commandspy = set.getBoolean("commandspy"); - List ips = new Gson().fromJson(set.getString("ips"), new TypeToken>() - { - }.getType()); + }.getType()); - PlexPlayer plexPlayer = new PlexPlayer(UUID.fromString(uuid)); - plexPlayer.setName(name); - plexPlayer.setLoginMessage(loginMSG); - plexPlayer.setPrefix(prefix); - plexPlayer.setRank(rankName); - plexPlayer.setIps(ips); - plexPlayer.setCoins(coins); - plexPlayer.setVanished(vanished); - plexPlayer.setCommandSpy(commandspy); - plexPlayers.add(plexPlayer); - } - } - catch (SQLException throwables) - { - throwables.printStackTrace(); + PlexPlayer plexPlayer = new PlexPlayer(UUID.fromString(uuid)); + plexPlayer.setName(name); + plexPlayer.setLoginMessage(loginMSG); + plexPlayer.setPrefix(prefix); + plexPlayer.setRank(rankName); + plexPlayer.setIps(ips); + plexPlayer.setCoins(coins); + plexPlayer.setVanished(vanished); + plexPlayer.setCommandSpy(commandspy); + plexPlayers.add(plexPlayer); } } + catch (SQLException throwables) + { + throwables.printStackTrace(); + } return plexPlayers; } } diff --git a/server/src/main/java/dev/plex/cache/DataUtils.java b/server/src/main/java/dev/plex/cache/DataUtils.java index 8b33bad..6d0d195 100644 --- a/server/src/main/java/dev/plex/cache/DataUtils.java +++ b/server/src/main/java/dev/plex/cache/DataUtils.java @@ -20,26 +20,12 @@ public class DataUtils */ public static boolean hasPlayedBefore(UUID uuid) { - if (Plex.get().getStorageType() == StorageType.MONGODB) - { - return Plex.get().getMongoPlayerData().exists(uuid); - } - else - { - return Plex.get().getSqlPlayerData().exists(uuid); - } + return Plex.get().getSqlPlayerData().exists(uuid); } public static boolean hasPlayedBefore(String username) { - if (Plex.get().getStorageType() == StorageType.MONGODB) - { - return Plex.get().getMongoPlayerData().exists(username); - } - else - { - return Plex.get().getSqlPlayerData().exists(username); - } + return Plex.get().getSqlPlayerData().exists(username); } /** @@ -61,14 +47,7 @@ public class DataUtils return Plex.get().getPlayerCache().getPlexPlayerMap().get(uuid); } - if (Plex.get().getStorageType() == StorageType.MONGODB) - { - return Plex.get().getMongoPlayerData().getByUUID(uuid); - } - else - { - return Plex.get().getSqlPlayerData().getByUUID(uuid, loadExtraData); - } + return Plex.get().getSqlPlayerData().getByUUID(uuid, loadExtraData); } public static PlexPlayer getPlayer(String username) @@ -84,14 +63,7 @@ public class DataUtils return plexPlayer.get(); } - if (Plex.get().getStorageType() == StorageType.MONGODB) - { - return Plex.get().getMongoPlayerData().getByName(username); - } - else - { - return Plex.get().getSqlPlayerData().getByName(username, loadExtraData); - } + return Plex.get().getSqlPlayerData().getByName(username, loadExtraData); } /** @@ -109,14 +81,7 @@ public class DataUtils return player; } - if (Plex.get().getStorageType() == StorageType.MONGODB) - { - return Plex.get().getMongoPlayerData().getByIP(ip); - } - else - { - return Plex.get().getSqlPlayerData().getByIP(ip); - } + return Plex.get().getSqlPlayerData().getByIP(ip); } /** @@ -127,14 +92,7 @@ public class DataUtils */ public static void update(PlexPlayer plexPlayer) { - if (Plex.get().getStorageType() == StorageType.MONGODB) - { - Plex.get().getMongoPlayerData().update(plexPlayer); - } - else - { - Plex.get().getSqlPlayerData().update(plexPlayer); - } + Plex.get().getSqlPlayerData().update(plexPlayer); } /** @@ -145,16 +103,7 @@ public class DataUtils */ public static void insert(PlexPlayer plexPlayer) { - if (Plex.get().getStorageType() == StorageType.MONGODB) - { - Plex.get().getMongoPlayerData().save(plexPlayer); - } - else - { - Plex.get().getSqlPlayerData().insert(plexPlayer); - } + Plex.get().getSqlPlayerData().insert(plexPlayer); } - /* REDIS METHODS AT ONE POINT FOR BANS, AND JSON METHODS FOR PUNISHMENTS */ - } diff --git a/server/src/main/java/dev/plex/command/impl/NotesCMD.java b/server/src/main/java/dev/plex/command/impl/NotesCMD.java index 562bdcd..b4d9e44 100644 --- a/server/src/main/java/dev/plex/command/impl/NotesCMD.java +++ b/server/src/main/java/dev/plex/command/impl/NotesCMD.java @@ -49,27 +49,15 @@ public class NotesCMD extends PlexCommand { case "list": { - if (plugin.getStorageType() != StorageType.MONGODB) + plugin.getSqlNotes().getNotes(plexPlayer.getUuid()).whenComplete((notes, ex) -> { - plugin.getSqlNotes().getNotes(plexPlayer.getUuid()).whenComplete((notes, ex) -> - { - if (notes.size() == 0) - { - send(sender, messageComponent("noNotes")); - return; - } - readNotes(sender, plexPlayer, notes); - }); - } - else - { - List notes = plexPlayer.getNotes(); if (notes.size() == 0) { - return messageComponent("noNotes"); + send(sender, messageComponent("noNotes")); + return; } readNotes(sender, plexPlayer, notes); - } + }); return null; } case "add": @@ -83,14 +71,7 @@ public class NotesCMD extends PlexCommand { Note note = new Note(plexPlayer.getUuid(), content, playerSender.getUniqueId(), ZonedDateTime.now(ZoneId.of(TimeUtils.TIMEZONE))); plexPlayer.getNotes().add(note); - if (plugin.getStorageType() != StorageType.MONGODB) - { - plugin.getSqlNotes().addNote(note); - } - else - { - DataUtils.update(plexPlayer); - } + plugin.getSqlNotes().addNote(note); return messageComponent("noteAdded"); } } @@ -109,59 +90,32 @@ public class NotesCMD extends PlexCommand { return messageComponent("unableToParseNumber", args[2]); } - if (plugin.getStorageType() != StorageType.MONGODB) + plugin.getSqlNotes().getNotes(plexPlayer.getUuid()).whenComplete((notes, ex) -> { - plugin.getSqlNotes().getNotes(plexPlayer.getUuid()).whenComplete((notes, ex) -> + boolean deleted = false; + for (Note note : notes) { - boolean deleted = false; - for (Note note : notes) + if (note.getId() == id) { - if (note.getId() == id) - { - plugin.getSqlNotes().deleteNote(id, plexPlayer.getUuid()).whenComplete((notes1, ex1) -> - send(sender, messageComponent("removedNote", id))); - deleted = true; - } + plugin.getSqlNotes().deleteNote(id, plexPlayer.getUuid()).whenComplete((notes1, ex1) -> + send(sender, messageComponent("removedNote", id))); + deleted = true; } - if (!deleted) - { - send(sender, messageComponent("noteNotFound")); - } - plexPlayer.getNotes().removeIf(note -> note.getId() == id); - }); - } - else - { - if (plexPlayer.getNotes().removeIf(note -> note.getId() == id)) - { - return messageComponent("removedNote", id); } - return messageComponent("noteNotFound"); - } + if (!deleted) + { + send(sender, messageComponent("noteNotFound")); + } + plexPlayer.getNotes().removeIf(note -> note.getId() == id); + }); return null; } case "clear": { - if (plugin.getStorageType() != StorageType.MONGODB) - { - plugin.getSqlNotes().getNotes(plexPlayer.getUuid()).whenComplete((notes, ex) -> - { - for (Note note : notes) - { - plugin.getSqlNotes().deleteNote(note.getId(), plexPlayer.getUuid()); - } - plexPlayer.getNotes().clear(); - send(sender, messageComponent("clearedNotes", notes.size())); - }); - } - else - { - int count = plexPlayer.getNotes().size(); - plexPlayer.getNotes().clear(); - DataUtils.update(plexPlayer); - return messageComponent("clearedNotes", count); - } - return null; + int count = plexPlayer.getNotes().size(); + plexPlayer.getNotes().clear(); + DataUtils.update(plexPlayer); + return messageComponent("clearedNotes", count); } default: { diff --git a/server/src/main/java/dev/plex/listener/impl/PlayerListener.java b/server/src/main/java/dev/plex/listener/impl/PlayerListener.java index 84057ef..bf94b4e 100644 --- a/server/src/main/java/dev/plex/listener/impl/PlayerListener.java +++ b/server/src/main/java/dev/plex/listener/impl/PlayerListener.java @@ -82,28 +82,17 @@ public class PlayerListener extends PlexListener PermissionsUtil.setupPermissions(player); - if (plugin.getStorageType() != StorageType.MONGODB) - { - plexPlayer.loadNotes(); - } + plexPlayer.loadNotes(); - if (plugin.getStorageType() == StorageType.MONGODB) + plugin.getSqlNotes().getNotes(plexPlayer.getUuid()).whenComplete((notes, ex) -> { - plexPlayer.loadPunishments(); - } - - if (plugin.getStorageType() != StorageType.MONGODB) - { - plugin.getSqlNotes().getNotes(plexPlayer.getUuid()).whenComplete((notes, ex) -> + String plural = notes.size() == 1 ? "note." : "notes."; + if (!notes.isEmpty()) { - String plural = notes.size() == 1 ? "note." : "notes."; - if (!notes.isEmpty()) - { - PlexUtils.broadcastToAdmins(Component.text(plexPlayer.getName() + " has " + notes.size() + " " + plural).color(NamedTextColor.GOLD)); - PlexUtils.broadcastToAdmins(Component.text("Click to view their " + plural).clickEvent(ClickEvent.runCommand("/notes " + plexPlayer.getName() + " list")).color(NamedTextColor.GOLD)); - } - }); - } + PlexUtils.broadcastToAdmins(Component.text(plexPlayer.getName() + " has " + notes.size() + " " + plural).color(NamedTextColor.GOLD), "plex.notes.notify"); + PlexUtils.broadcastToAdmins(Component.text("Click to view their " + plural).clickEvent(ClickEvent.runCommand("/notes " + plexPlayer.getName() + " list")).color(NamedTextColor.GOLD), "plex.notes.notify"); + } + }); } // saving the player's data diff --git a/server/src/main/java/dev/plex/player/PlexPlayer.java b/server/src/main/java/dev/plex/player/PlexPlayer.java index 9c83f2c..b3c5d55 100644 --- a/server/src/main/java/dev/plex/player/PlexPlayer.java +++ b/server/src/main/java/dev/plex/player/PlexPlayer.java @@ -91,10 +91,7 @@ public class PlexPlayer if (loadExtraData) { this.loadPunishments(); - if (Plex.get().getStorageType() != StorageType.MONGODB) - { - this.permissions.addAll(Plex.get().getSqlPermissions().getPermissions(this.uuid)); - } +// this.permissions.addAll(Plex.get().getSqlPermissions().getPermissions(this.uuid)); } } @@ -130,18 +127,12 @@ public class PlexPlayer public void loadPunishments() { - if (Plex.get().getStorageType() != StorageType.MONGODB) - { - this.setPunishments(Plex.get().getSqlPunishment().getPunishments(this.getUuid())); - } + this.setPunishments(Plex.get().getSqlPunishment().getPunishments(this.getUuid())); } public void loadNotes() { - if (Plex.get().getStorageType() != StorageType.MONGODB) - { - Plex.get().getSqlNotes().getNotes(this.getUuid()); - } + Plex.get().getSqlNotes().getNotes(this.getUuid()); } public String toJSON() diff --git a/server/src/main/java/dev/plex/punishment/PunishmentManager.java b/server/src/main/java/dev/plex/punishment/PunishmentManager.java index 1a5a865..7876ae5 100644 --- a/server/src/main/java/dev/plex/punishment/PunishmentManager.java +++ b/server/src/main/java/dev/plex/punishment/PunishmentManager.java @@ -102,17 +102,7 @@ public class PunishmentManager implements PlexBase public void issuePunishment(PlexPlayer plexPlayer, Punishment punishment) { plexPlayer.getPunishments().add(punishment); - if (Plex.get().getStorageType() == StorageType.MONGODB) - { - CompletableFuture.runAsync(() -> - { - DataUtils.update(plexPlayer); - }); - } - else - { - Plex.get().getSqlPunishment().insertPunishment(punishment); - } + Plex.get().getSqlPunishment().insertPunishment(punishment); } private boolean isNotEmpty(File file) @@ -160,27 +150,16 @@ public class PunishmentManager implements PlexBase public CompletableFuture> getActiveBans() { - if (Plex.get().getStorageType() == StorageType.MONGODB) + //PlexLog.debug("Checking active bans mysql"); + CompletableFuture> future = new CompletableFuture<>(); + Plex.get().getSqlPunishment().getPunishments().whenComplete((punishments, throwable) -> { - return CompletableFuture.supplyAsync(() -> - { - List players = Plex.get().getMongoPlayerData().getPlayers(); - return players.stream().map(PlexPlayer::getPunishments).flatMap(Collection::stream).filter(Punishment::isActive).filter(punishment -> punishment.getType() == PunishmentType.BAN || punishment.getType() == PunishmentType.TEMPBAN).toList(); - }); - } - else - { - //PlexLog.debug("Checking active bans mysql"); - CompletableFuture> future = new CompletableFuture<>(); - Plex.get().getSqlPunishment().getPunishments().whenComplete((punishments, throwable) -> - { - //PlexLog.debug("Received Punishments"); - List punishmentList = punishments.stream().filter(Punishment::isActive).filter(punishment -> punishment.getType() == PunishmentType.BAN || punishment.getType() == PunishmentType.TEMPBAN).toList(); - //PlexLog.debug("Completing with {0} punishments", punishmentList.size()); - future.complete(punishmentList); - }); - return future; - } + //PlexLog.debug("Received Punishments"); + List punishmentList = punishments.stream().filter(Punishment::isActive).filter(punishment -> punishment.getType() == PunishmentType.BAN || punishment.getType() == PunishmentType.TEMPBAN).toList(); + //PlexLog.debug("Completing with {0} punishments", punishmentList.size()); + future.complete(punishmentList); + }); + return future; } public void unban(Punishment punishment) @@ -190,20 +169,7 @@ public class PunishmentManager implements PlexBase public CompletableFuture unban(UUID uuid) { - if (Plex.get().getStorageType() == StorageType.MONGODB) - { - return CompletableFuture.runAsync(() -> - { - PlexPlayer plexPlayer = DataUtils.getPlayer(uuid); - plexPlayer.setPunishments(plexPlayer.getPunishments().stream().filter(Punishment::isActive).filter(punishment -> punishment.getType() == PunishmentType.BAN || punishment.getType() == PunishmentType.TEMPBAN) - .peek(punishment -> punishment.setActive(false)).collect(Collectors.toList())); - DataUtils.update(plexPlayer); - }); - } - else - { - return Plex.get().getSqlPunishment().removeBan(uuid); - } + return Plex.get().getSqlPunishment().removeBan(uuid); } private void doPunishment(PlexPlayer player, Punishment punishment) diff --git a/server/src/main/java/dev/plex/storage/MongoConnection.java b/server/src/main/java/dev/plex/storage/MongoConnection.java deleted file mode 100644 index dd4b7ea..0000000 --- a/server/src/main/java/dev/plex/storage/MongoConnection.java +++ /dev/null @@ -1,56 +0,0 @@ -package dev.plex.storage; - -import com.mongodb.ConnectionString; -import com.mongodb.MongoClientSettings; -import com.mongodb.client.MongoClient; -import com.mongodb.client.MongoClients; -import dev.morphia.Datastore; -import dev.morphia.Morphia; -import dev.morphia.mapping.MapperOptions; -import dev.plex.PlexBase; -import dev.plex.player.PlexPlayer; -import dev.plex.storage.codec.ZonedDateTimeCodec; -import dev.plex.util.PlexLog; -import org.bson.codecs.configuration.CodecRegistries; - -public class MongoConnection implements PlexBase -{ - // USE MORPHIA API FOR MONGO <3 - - public Datastore getDatastore() - { - if (!plugin.config.getString("data.central.storage").equalsIgnoreCase("mongodb")) - { - return null; - } - String host = plugin.config.getString("data.central.hostname"); - int port = plugin.config.getInt("data.central.port"); - String username = plugin.config.getString("data.central.user"); - String password = plugin.config.getString("data.central.password"); - String database = plugin.config.getString("data.central.db"); - - String connectionString; - if (username != null && password != null && !username.isEmpty() && !password.isEmpty()) - { - if (database != null && !database.isEmpty()) - { - connectionString = "mongodb://" + username + ":" + password + "@" + host + ":" + port + "/?authSource=" + database + "&uuidRepresentation=STANDARD"; - } - else - { - connectionString = "mongodb://" + username + ":" + password + "@" + host + ":" + port + "/?uuidRepresentation=STANDARD"; - } - } - else - { - connectionString = "mongodb://" + host + ":" + port + "/?uuidRepresentation=STANDARD"; - } - PlexLog.debug("Using mongo connection string: " + connectionString); - MongoClient client = MongoClients.create(MongoClientSettings.builder().codecRegistry(CodecRegistries.fromRegistries(MongoClientSettings.getDefaultCodecRegistry(), CodecRegistries.fromCodecs(new ZonedDateTimeCodec()))).applyConnectionString(new ConnectionString(connectionString)).build()); - Datastore datastore = Morphia.createDatastore(client, database == null ? "admin" : database, MapperOptions.DEFAULT); - datastore.getMapper().map(PlexPlayer.class); - datastore.ensureIndexes(); - plugin.setStorageType(StorageType.MONGODB); - return datastore; - } -} diff --git a/server/src/main/java/dev/plex/storage/StorageType.java b/server/src/main/java/dev/plex/storage/StorageType.java index 61e0287..9e5a4e1 100644 --- a/server/src/main/java/dev/plex/storage/StorageType.java +++ b/server/src/main/java/dev/plex/storage/StorageType.java @@ -2,5 +2,5 @@ package dev.plex.storage; public enum StorageType { - MONGODB, MARIADB, SQLITE + MARIADB, SQLITE } diff --git a/server/src/main/java/dev/plex/storage/player/MongoPlayerData.java b/server/src/main/java/dev/plex/storage/player/MongoPlayerData.java deleted file mode 100644 index f92eb51..0000000 --- a/server/src/main/java/dev/plex/storage/player/MongoPlayerData.java +++ /dev/null @@ -1,147 +0,0 @@ -package dev.plex.storage.player; - -import dev.morphia.Datastore; -import dev.morphia.query.Query; -import dev.morphia.query.Update; -import dev.morphia.query.filters.Filters; -import dev.morphia.query.updates.UpdateOperators; -import dev.plex.Plex; -import dev.plex.player.PlexPlayer; - -import java.util.Collections; -import java.util.List; -import java.util.UUID; - -/** - * Mongo fetching utilities for players - */ -public class MongoPlayerData -{ - /** - * The datastore object / database - */ - private final Datastore datastore; - - /** - * Creates an instance of the player data - */ - public MongoPlayerData() - { - this.datastore = Plex.get().getMongoConnection().getDatastore(); - } - - /** - * Checks whether the player exists in mongo's database - * - * @param uuid The unique ID of the player - * @return true if the player was found - */ - public boolean exists(UUID uuid) - { - Query query = datastore.find(PlexPlayer.class) - .filter(Filters.eq("uuid", uuid)); - - return query.first() != null; - } - - public boolean exists(String username) - { - Query query = datastore.find(PlexPlayer.class) - .filter(Filters.regex("name").caseInsensitive().pattern(username)); - - return query.first() != null; - } - - /** - * Gets the player from cache or from mongo's database - * - * @param uuid The unique ID of the player - * @return a PlexPlayer object - * @see PlexPlayer - */ - public PlexPlayer getByUUID(UUID uuid) - { - if (Plex.get().getPlayerCache().getPlexPlayerMap().containsKey(uuid)) - { - return Plex.get().getPlayerCache().getPlexPlayerMap().get(uuid); - } - - Query query2 = datastore.find(PlexPlayer.class).filter(Filters.eq("uuid", uuid)); - return query2.first(); - } - - public PlexPlayer getByName(String username) - { - PlexPlayer player = Plex.get().getPlayerCache().getPlexPlayerMap().values().stream().filter(plexPlayer -> plexPlayer.getName().equalsIgnoreCase(username)).findFirst().orElse(null); - if (player != null) - { - return player; - } - - Query query2 = datastore.find(PlexPlayer.class).filter(Filters.regex("name").caseInsensitive().pattern(username)); - return query2.first(); - } - - /** - * Gets the player from cache or from mongo's database - * - * @param ip The IP address of the player. - * @return a PlexPlayer object - * @see PlexPlayer - */ - public PlexPlayer getByIP(String ip) - { - PlexPlayer player = Plex.get().getPlayerCache().getPlexPlayerMap().values().stream().filter(plexPlayer -> plexPlayer.getIps().contains(ip)).findFirst().orElse(null); - if (player != null) - { - return player; - } - - Query query2 = datastore.find(PlexPlayer.class).filter(Filters.in("ips", Collections.singleton(ip))); - return query2.first(); - } - - /** - * Updates a player's information in the mongo database - * - * @param player The PlexPlayer object - * @see PlexPlayer - */ - public void update(PlexPlayer player) - { - Query filter = datastore.find(PlexPlayer.class) - .filter(Filters.eq("uuid", player.getUuid())); - - Update updateOps = filter.update( - UpdateOperators.set("name", player.getName()), - UpdateOperators.set("loginMessage", player.getLoginMessage()), - UpdateOperators.set("prefix", player.getPrefix()), - UpdateOperators.set("vanished", player.isVanished()), - UpdateOperators.set("commandSpy", player.isCommandSpy()), - UpdateOperators.set("adminActive", player.isAdminActive()), - UpdateOperators.set("rank", player.getRank().toLowerCase()), - UpdateOperators.set("ips", player.getIps()), - UpdateOperators.set("coins", player.getCoins()), - UpdateOperators.set("punishments", player.getPunishments()), - UpdateOperators.set("notes", player.getNotes())); - - updateOps.execute(); - } - - public List getPlayers() - { - return datastore.find(PlexPlayer.class).stream().toList(); - } - - - /** - * Saves the player's information in the database - * - * @param plexPlayer The PlexPlayer object - * @see PlexPlayer - */ - public void save(PlexPlayer plexPlayer) - { - datastore.save(plexPlayer); - } -} \ No newline at end of file diff --git a/server/src/main/java/dev/plex/util/PlexUtils.java b/server/src/main/java/dev/plex/util/PlexUtils.java index 68e2af8..fe9c66a 100644 --- a/server/src/main/java/dev/plex/util/PlexUtils.java +++ b/server/src/main/java/dev/plex/util/PlexUtils.java @@ -90,18 +90,12 @@ public class PlexUtils implements PlexBase } catch (SQLException e) { - if (Plex.get().getMongoConnection().getDatastore() != null) - { - PlexLog.log("Successfully enabled MongoDB!"); - } + PlexLog.error("Unable to connect to the SQL Server"); } } else { - if (Plex.get().getMongoConnection().getDatastore() != null) - { - PlexLog.log("Successfully enabled MongoDB!"); - } + PlexLog.error("Unable to initialize hikari data source!"); } } @@ -241,9 +235,9 @@ public class PlexUtils implements PlexBase Bukkit.broadcast(component); } - public static void broadcastToAdmins(Component component) + public static void broadcastToAdmins(Component component, String permission) { - Bukkit.getOnlinePlayers().stream().filter(pl -> plugin.getPlayerCache().getPlexPlayer(pl.getUniqueId()).isAdminActive()).forEach(pl -> + Bukkit.getOnlinePlayers().stream().filter(pl -> plugin.getPlayerCache().getPlexPlayer(pl.getUniqueId()).isAdminActive() || pl.hasPermission(permission)).forEach(pl -> { pl.sendMessage(component); }); diff --git a/server/src/main/resources/config.yml b/server/src/main/resources/config.yml index c72113f..1a3225e 100644 --- a/server/src/main/resources/config.yml +++ b/server/src/main/resources/config.yml @@ -43,7 +43,7 @@ loginmessages: data: central: - storage: sqlite # Use mariadb, mongodb, or sqlite here + storage: sqlite # Use mariadb, or sqlite here user: "" password: "" hostname: 127.0.0.1 From 7ff6bdb171480269eee5d19511a2c656c748e4bb Mon Sep 17 00:00:00 2001 From: Taah Date: Fri, 25 Aug 2023 04:07:56 -0700 Subject: [PATCH 2/6] Remove rank system entirely and move developer title to being hardcoded --- server/build.gradle | 1 - server/src/main/java/dev/plex/Plex.java | 53 +--- .../src/main/java/dev/plex/admin/Admin.java | 56 ----- .../main/java/dev/plex/admin/AdminList.java | 133 ----------- .../java/dev/plex/command/PlexCommand.java | 226 ++---------------- .../annotation/CommandPermissions.java | 9 - .../dev/plex/command/annotation/System.java | 12 - .../java/dev/plex/command/impl/AdminCMD.java | 187 --------------- .../dev/plex/command/impl/AdminChatCMD.java | 3 +- .../dev/plex/command/impl/AdminworldCMD.java | 3 +- .../dev/plex/command/impl/AdventureCMD.java | 27 +-- .../java/dev/plex/command/impl/BanCMD.java | 24 +- .../dev/plex/command/impl/BlockEditCMD.java | 7 +- .../dev/plex/command/impl/CommandSpyCMD.java | 3 +- .../dev/plex/command/impl/ConsoleSayCMD.java | 3 +- .../dev/plex/command/impl/CreativeCMD.java | 26 +- .../java/dev/plex/command/impl/DebugCMD.java | 5 +- .../dev/plex/command/impl/DeopAllCMD.java | 31 --- .../java/dev/plex/command/impl/DeopCMD.java | 41 ---- .../dev/plex/command/impl/EntityWipeCMD.java | 4 +- .../dev/plex/command/impl/FlatlandsCMD.java | 4 +- .../java/dev/plex/command/impl/FreezeCMD.java | 19 +- .../dev/plex/command/impl/GamemodeCMD.java | 7 +- .../java/dev/plex/command/impl/KickCMD.java | 6 +- .../java/dev/plex/command/impl/ListCMD.java | 19 +- .../dev/plex/command/impl/LocalSpawnCMD.java | 4 +- .../java/dev/plex/command/impl/LockupCMD.java | 19 +- .../command/impl/MasterbuilderworldCMD.java | 4 +- .../dev/plex/command/impl/MobPurgeCMD.java | 4 +- .../java/dev/plex/command/impl/MuteCMD.java | 8 +- .../dev/plex/command/impl/NameHistoryCMD.java | 4 +- .../java/dev/plex/command/impl/NotesCMD.java | 5 +- .../java/dev/plex/command/impl/OpAllCMD.java | 31 --- .../java/dev/plex/command/impl/OpCMD.java | 41 ---- .../java/dev/plex/command/impl/PlexCMD.java | 13 +- .../dev/plex/command/impl/PunishmentsCMD.java | 4 +- .../java/dev/plex/command/impl/RankCMD.java | 58 ----- .../java/dev/plex/command/impl/RawSayCMD.java | 4 +- .../command/impl/RemoveLoginMessageCMD.java | 5 +- .../java/dev/plex/command/impl/SayCMD.java | 4 +- .../plex/command/impl/SetLoginMessageCMD.java | 10 +- .../java/dev/plex/command/impl/SmiteCMD.java | 12 +- .../dev/plex/command/impl/SpectatorCMD.java | 8 +- .../dev/plex/command/impl/SurvivalCMD.java | 8 +- .../java/dev/plex/command/impl/TFMCMD.java | 47 ---- .../java/dev/plex/command/impl/TagCMD.java | 6 +- .../dev/plex/command/impl/TempbanCMD.java | 21 +- .../java/dev/plex/command/impl/ToggleCMD.java | 4 +- .../java/dev/plex/command/impl/UnbanCMD.java | 6 +- .../dev/plex/command/impl/UnfreezeCMD.java | 6 +- .../java/dev/plex/command/impl/UnmuteCMD.java | 6 +- .../java/dev/plex/command/impl/WorldCMD.java | 8 +- .../java/dev/plex/event/AdminAddEvent.java | 39 --- .../java/dev/plex/event/AdminRemoveEvent.java | 39 --- .../dev/plex/event/AdminSetRankEvent.java | 45 ---- .../dev/plex/handlers/CommandHandler.java | 15 +- .../main/java/dev/plex/hook/VaultHook.java | 6 +- .../dev/plex/listener/impl/AdminListener.java | 55 ----- .../dev/plex/listener/impl/ChatListener.java | 3 +- .../plex/listener/impl/CommandListener.java | 19 +- .../plex/listener/impl/PlayerListener.java | 24 +- .../dev/plex/listener/impl/TabListener.java | 42 +--- .../dev/plex/listener/impl/WorldListener.java | 111 +-------- .../main/java/dev/plex/meta/PlayerMeta.java | 62 +++++ .../java/dev/plex/permission/Permission.java | 15 -- .../main/java/dev/plex/player/PlexPlayer.java | 42 +--- .../java/dev/plex/punishment/Punishment.java | 2 - .../java/dev/plex/punishment/extra/Note.java | 2 - .../main/java/dev/plex/rank/RankManager.java | 199 --------------- .../main/java/dev/plex/rank/enums/Rank.java | 56 ----- .../main/java/dev/plex/rank/enums/Title.java | 48 ---- .../java/dev/plex/storage/SQLConnection.java | 40 ++-- .../plex/storage/annotation/PrimaryKey.java | 17 ++ .../storage/codec/ZonedDateTimeCodec.java | 34 --- .../storage/permission/SQLPermissions.java | 96 -------- .../java/dev/plex/util/PermissionsUtil.java | 65 ----- .../main/java/dev/plex/util/PlexUtils.java | 19 +- server/src/main/resources/config.yml | 23 -- 78 files changed, 284 insertions(+), 2093 deletions(-) delete mode 100644 server/src/main/java/dev/plex/admin/Admin.java delete mode 100644 server/src/main/java/dev/plex/admin/AdminList.java delete mode 100644 server/src/main/java/dev/plex/command/annotation/System.java delete mode 100644 server/src/main/java/dev/plex/command/impl/AdminCMD.java delete mode 100644 server/src/main/java/dev/plex/command/impl/DeopAllCMD.java delete mode 100644 server/src/main/java/dev/plex/command/impl/DeopCMD.java delete mode 100644 server/src/main/java/dev/plex/command/impl/OpAllCMD.java delete mode 100644 server/src/main/java/dev/plex/command/impl/OpCMD.java delete mode 100644 server/src/main/java/dev/plex/command/impl/RankCMD.java delete mode 100644 server/src/main/java/dev/plex/command/impl/TFMCMD.java delete mode 100644 server/src/main/java/dev/plex/event/AdminAddEvent.java delete mode 100644 server/src/main/java/dev/plex/event/AdminRemoveEvent.java delete mode 100644 server/src/main/java/dev/plex/event/AdminSetRankEvent.java delete mode 100644 server/src/main/java/dev/plex/listener/impl/AdminListener.java create mode 100644 server/src/main/java/dev/plex/meta/PlayerMeta.java delete mode 100644 server/src/main/java/dev/plex/permission/Permission.java delete mode 100644 server/src/main/java/dev/plex/rank/RankManager.java delete mode 100644 server/src/main/java/dev/plex/rank/enums/Rank.java delete mode 100644 server/src/main/java/dev/plex/rank/enums/Title.java create mode 100644 server/src/main/java/dev/plex/storage/annotation/PrimaryKey.java delete mode 100644 server/src/main/java/dev/plex/storage/codec/ZonedDateTimeCodec.java delete mode 100644 server/src/main/java/dev/plex/storage/permission/SQLPermissions.java delete mode 100644 server/src/main/java/dev/plex/util/PermissionsUtil.java diff --git a/server/build.gradle b/server/build.gradle index ec41120..3688f9b 100644 --- a/server/build.gradle +++ b/server/build.gradle @@ -7,7 +7,6 @@ dependencies { annotationProcessor "org.projectlombok:lombok:1.18.28" library "org.json:json:20230618" library "commons-io:commons-io:2.13.0" - library "dev.morphia.morphia:morphia-core:2.4.1" library "redis.clients:jedis:5.0.0-beta2" library "org.mariadb.jdbc:mariadb-java-client:3.1.4" library "com.zaxxer:HikariCP:5.0.1" diff --git a/server/src/main/java/dev/plex/Plex.java b/server/src/main/java/dev/plex/Plex.java index 3f3e0c4..ce1805d 100644 --- a/server/src/main/java/dev/plex/Plex.java +++ b/server/src/main/java/dev/plex/Plex.java @@ -1,7 +1,5 @@ package dev.plex; -import dev.plex.admin.Admin; -import dev.plex.admin.AdminList; import dev.plex.cache.DataUtils; import dev.plex.cache.PlayerCache; import dev.plex.config.Config; @@ -10,23 +8,16 @@ import dev.plex.handlers.ListenerHandler; import dev.plex.module.ModuleManager; import dev.plex.player.PlexPlayer; import dev.plex.punishment.PunishmentManager; -import dev.plex.rank.RankManager; import dev.plex.services.ServiceManager; import dev.plex.storage.RedisConnection; import dev.plex.storage.SQLConnection; import dev.plex.storage.StorageType; -import dev.plex.storage.permission.SQLPermissions; import dev.plex.storage.player.SQLPlayerData; import dev.plex.storage.punishment.SQLNotes; import dev.plex.storage.punishment.SQLPunishment; -import dev.plex.util.BuildInfo; -import dev.plex.util.BungeeUtil; -import dev.plex.util.PlexLog; -import dev.plex.util.PlexUtils; -import dev.plex.util.UpdateChecker; +import dev.plex.util.*; import dev.plex.util.redis.MessageUtil; import dev.plex.world.CustomWorld; -import java.io.File; import lombok.Getter; import lombok.Setter; import net.milkbowl.vault.chat.Chat; @@ -36,6 +27,8 @@ import org.bukkit.Bukkit; import org.bukkit.plugin.RegisteredServiceProvider; import org.bukkit.plugin.java.JavaPlugin; +import java.io.File; + @Getter @Setter public class Plex extends JavaPlugin @@ -58,16 +51,11 @@ public class Plex extends JavaPlugin private SQLPunishment sqlPunishment; private SQLNotes sqlNotes; - private SQLPermissions sqlPermissions; private ModuleManager moduleManager; - private RankManager rankManager; private ServiceManager serviceManager; private PunishmentManager punishmentManager; - - private AdminList adminList; private UpdateChecker updateChecker; - private String system; private Permission permissions; private Chat chat; @@ -119,8 +107,6 @@ public class Plex extends JavaPlugin playerCache = new PlayerCache(); - system = config.getString("system"); - PlexLog.log("Attempting to connect to DB: {0}", plugin.config.getString("data.central.db")); try { @@ -133,17 +119,14 @@ public class Plex extends JavaPlugin e.printStackTrace(); } - if (system.equals("permissions")) + if (!getServer().getPluginManager().isPluginEnabled("Vault")) { - if (!getServer().getPluginManager().isPluginEnabled("Vault")) - { - throw new RuntimeException("Vault is required to run on the server if you use permissions!"); - } - - permissions = setupPermissions(); - chat = setupChat(); + throw new RuntimeException("Vault is required to run on the server if you use permissions alongside a permissions plugin, we recommend LuckPerms!"); } + permissions = setupPermissions(); + chat = setupChat(); + updateChecker = new UpdateChecker(); PlexLog.log("Update checking enabled"); @@ -166,17 +149,10 @@ public class Plex extends JavaPlugin sqlPlayerData = new SQLPlayerData(); sqlPunishment = new SQLPunishment(); sqlNotes = new SQLNotes(); - sqlPermissions = new SQLPermissions(); new ListenerHandler(); new CommandHandler(); - rankManager = new RankManager(); - rankManager.generateDefaultRanks(); - rankManager.importDefaultRanks(); - adminList = new AdminList(); - PlexLog.log("Rank Manager initialized"); - punishmentManager = new PunishmentManager(); punishmentManager.mergeIndefiniteBans(); PlexLog.log("Punishment System initialized"); @@ -211,12 +187,6 @@ public class Plex extends JavaPlugin Bukkit.getOnlinePlayers().forEach(player -> { PlexPlayer plexPlayer = playerCache.getPlexPlayerMap().get(player.getUniqueId()); //get the player because it's literally impossible for them to not have an object - - if (plugin.getRankManager().isAdmin(plexPlayer)) - { - plugin.getAdminList().removeFromCache(plexPlayer.getUuid()); - } - sqlPlayerData.update(plexPlayer); }); if (redisConnection != null && redisConnection.isEnabled() && redisConnection.getJedis().isConnected()) @@ -246,13 +216,6 @@ public class Plex extends JavaPlugin { PlexPlayer plexPlayer = DataUtils.getPlayer(player.getUniqueId()); playerCache.getPlexPlayerMap().put(player.getUniqueId(), plexPlayer); //put them into the cache - if (plugin.getRankManager().isAdmin(plexPlayer)) - { - Admin admin = new Admin(plexPlayer.getUuid()); - admin.setRank(plexPlayer.getRankFromString()); - - plugin.getAdminList().addToCache(admin); - } }); } diff --git a/server/src/main/java/dev/plex/admin/Admin.java b/server/src/main/java/dev/plex/admin/Admin.java deleted file mode 100644 index 6370a0b..0000000 --- a/server/src/main/java/dev/plex/admin/Admin.java +++ /dev/null @@ -1,56 +0,0 @@ -package dev.plex.admin; - -import dev.plex.rank.enums.Rank; -import lombok.AccessLevel; -import lombok.Getter; -import lombok.Setter; - -import java.util.UUID; - -/** - * Admin object to handle cached admins - */ -@Getter -@Setter -public class Admin -{ - /** - * Gets the unique ID of an admin (immutable) - */ - @Setter(AccessLevel.NONE) - private UUID uuid; - - /** - * Gets the rank of the admin - *
- * Contains a #setRank and #getRank by lombok - */ - private Rank rank; - - /** - * Returns if the admin has command spy or not - *
- * Contains a #isCommandSpy and #setCommandSpy by Lombok - */ - private boolean commandSpy = false; - - /** - * Returns if the admin has admin chat toggled or not - *
- * Contains a #isAdminChat and #setAdminChat by Lombok - */ - private boolean adminChat = false; - - /** - * Creates an admin with the ADMIN rank as the default rank - * - * @param uuid - * @see UUID - * @see Rank - */ - public Admin(UUID uuid) - { - this.uuid = uuid; - this.rank = Rank.ADMIN; - } -} diff --git a/server/src/main/java/dev/plex/admin/AdminList.java b/server/src/main/java/dev/plex/admin/AdminList.java deleted file mode 100644 index 7869354..0000000 --- a/server/src/main/java/dev/plex/admin/AdminList.java +++ /dev/null @@ -1,133 +0,0 @@ -package dev.plex.admin; - -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import com.google.common.reflect.TypeToken; -import com.google.gson.Gson; -import dev.morphia.Datastore; -import dev.morphia.query.Query; -import dev.plex.PlexBase; -import dev.plex.player.PlexPlayer; -import dev.plex.rank.enums.Rank; -import dev.plex.storage.StorageType; - -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.List; -import java.util.Map; -import java.util.UUID; -import java.util.stream.Collectors; - -/** - * Cached storage for Admin objects - * - * @see Admin - */ - -public class AdminList implements PlexBase -{ - /** - * Key / Value storage, where the key is the unique ID of the admin - */ - private final Map admins = Maps.newHashMap(); - - /** - * Adds the admin to cache - * - * @param admin The admin object - */ - public void addToCache(Admin admin) - { - admins.put(admin.getUuid(), admin); - } - - /** - * Removes an admin from the cache - * - * @param uuid The unique ID of the admin - * @see UUID - */ - public void removeFromCache(UUID uuid) - { - admins.remove(uuid); - } - - /** - * Gathers every admins username (cached and in the database) - * - * @return An array list of the names of every admin - */ - public List getAllAdmins() - { - List admins = Lists.newArrayList(); - try (Connection con = plugin.getSqlConnection().getCon()) - { - PreparedStatement statement = con.prepareStatement("SELECT * FROM `players` WHERE rank IN(?, ?, ?) AND adminActive=true"); - statement.setString(1, Rank.ADMIN.name().toLowerCase()); - statement.setString(2, Rank.SENIOR_ADMIN.name().toLowerCase()); - statement.setString(3, Rank.EXECUTIVE.name().toLowerCase()); - - ResultSet set = statement.executeQuery(); - while (set.next()) - { - admins.add(set.getString("name")); - } - } - catch (SQLException throwables) - { - throwables.printStackTrace(); - } - return admins; - } - - /** - * Gathers every admin (cached and in the database) - * - * @return An array list of the names of every admin - */ - public List getAllAdminPlayers() - { - List plexPlayers = Lists.newArrayList(); - try (Connection con = plugin.getSqlConnection().getCon()) - { - PreparedStatement statement = con.prepareStatement("SELECT * FROM `players` WHERE rank IN(?, ?, ?) AND adminActive=true"); - statement.setString(1, Rank.ADMIN.name().toLowerCase()); - statement.setString(2, Rank.SENIOR_ADMIN.name().toLowerCase()); - statement.setString(3, Rank.EXECUTIVE.name().toLowerCase()); - - ResultSet set = statement.executeQuery(); - while (set.next()) - { - String uuid = set.getString("uuid"); - String name = set.getString("name"); - String loginMSG = set.getString("login_msg"); - String prefix = set.getString("prefix"); - String rankName = set.getString("rank").toUpperCase(); - long coins = set.getLong("coins"); - boolean vanished = set.getBoolean("vanished"); - boolean commandspy = set.getBoolean("commandspy"); - List ips = new Gson().fromJson(set.getString("ips"), new TypeToken>() - { - }.getType()); - - PlexPlayer plexPlayer = new PlexPlayer(UUID.fromString(uuid)); - plexPlayer.setName(name); - plexPlayer.setLoginMessage(loginMSG); - plexPlayer.setPrefix(prefix); - plexPlayer.setRank(rankName); - plexPlayer.setIps(ips); - plexPlayer.setCoins(coins); - plexPlayer.setVanished(vanished); - plexPlayer.setCommandSpy(commandspy); - plexPlayers.add(plexPlayer); - } - } - catch (SQLException throwables) - { - throwables.printStackTrace(); - } - return plexPlayers; - } -} diff --git a/server/src/main/java/dev/plex/command/PlexCommand.java b/server/src/main/java/dev/plex/command/PlexCommand.java index 1efc260..1a6b20c 100644 --- a/server/src/main/java/dev/plex/command/PlexCommand.java +++ b/server/src/main/java/dev/plex/command/PlexCommand.java @@ -7,7 +7,6 @@ import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.exception.*; import dev.plex.command.source.RequiredCommandSource; import dev.plex.player.PlexPlayer; -import dev.plex.rank.enums.Rank; import dev.plex.util.PlexLog; import dev.plex.util.PlexUtils; import net.kyori.adventure.audience.Audience; @@ -45,11 +44,6 @@ public abstract class PlexCommand extends Command implements PluginIdentifiableC */ private final CommandPermissions perms; - /** - * Minimum required rank fetched from the permissions - */ - private final Rank level; - /** * Required command source fetched from the permissions */ @@ -72,7 +66,6 @@ public abstract class PlexCommand extends Command implements PluginIdentifiableC { setAliases(Arrays.asList(params.aliases().split(","))); } - this.level = perms.level(); this.commandSource = perms.source(); if (register) @@ -140,34 +133,9 @@ public abstract class PlexCommand extends Command implements PluginIdentifiableC return false; } - if (plugin.getSystem().equalsIgnoreCase("ranks")) + if (!perms.permission().isEmpty() && !player.hasPermission(perms.permission())) { - if (!plexPlayer.getRankFromString().isAtLeast(getLevel())) - { - send(sender, messageComponent("noPermissionRank", ChatColor.stripColor(getLevel().getLoginMessage()))); - return true; - } - else - { - if (getLevel().isAtLeast(Rank.ADMIN) && !plexPlayer.isAdminActive()) - { - send(sender, messageComponent("noPermissionRank", ChatColor.stripColor(getLevel().getLoginMessage()))); - return true; - } - } - } - else if (plugin.getSystem().equalsIgnoreCase("permissions")) - { - if (!perms.permission().isEmpty() && !player.hasPermission(perms.permission())) - { - send(sender, messageComponent("noPermissionNode", perms.permission())); - return true; - } - } - else - { - PlexLog.error("Neither permissions or ranks were selected to be used in the configuration file!"); - send(sender, "There is a server misconfiguration. Please alert a developer or the owner"); + send(sender, messageComponent("noPermissionNode", perms.permission())); return true; } } @@ -176,34 +144,9 @@ public abstract class PlexCommand extends Command implements PluginIdentifiableC { PlexPlayer plexPlayer = DataUtils.getPlayer(sender.getName()); - if (plugin.getSystem().equalsIgnoreCase("ranks")) + if (!perms.permission().isEmpty() && !plugin.getPermissions().playerHas(null, Bukkit.getPlayer(plexPlayer.getName()), perms.permission())) { - if (!plexPlayer.getRankFromString().isAtLeast(getLevel())) - { - send(sender, messageComponent("noPermissionRank", ChatColor.stripColor(getLevel().getLoginMessage()))); - return true; - } - else - { - if (getLevel().isAtLeast(Rank.ADMIN) && !plexPlayer.isAdminActive()) - { - send(sender, messageComponent("noPermissionRank", ChatColor.stripColor(getLevel().getLoginMessage()))); - return true; - } - } - } - else if (plugin.getSystem().equalsIgnoreCase("permissions")) - { - if (!perms.permission().isEmpty() && !plugin.getPermissions().playerHas(null, Bukkit.getPlayer(plexPlayer.getName()), perms.permission())) - { - send(sender, messageComponent("noPermissionNode", perms.permission())); - return true; - } - } - else - { - PlexLog.error("Neither permissions or ranks were selected to be used in the configuration file!"); - send(sender, "There is a server misconfiguration. Please alert a developer or the owner"); + send(sender, messageComponent("noPermissionNode", perms.permission())); return true; } } @@ -286,39 +229,15 @@ public abstract class PlexCommand extends Command implements PluginIdentifiableC * Checks whether a sender has enough permissions or is high enough a rank * * @param sender A CommandSender - * @param rank The rank to check (if the server is using ranks) - * @param permission The permission to check (if the server is using permissions) + * @param permission The permission to check * @return true if the sender has enough permissions - * @see Rank */ - protected boolean checkRank(CommandSender sender, Rank rank, String permission) + protected boolean checkPermission(CommandSender sender, String permission) { if (!isConsole(sender)) { - return checkRank((Player) sender, rank, permission); + return checkPermission((Player) sender, permission); } - /*if (!sender.getName().equalsIgnoreCase("console")) - { - PlexPlayer plexPlayer = DataUtils.getPlayer(sender.getName()); - if (plugin.getSystem().equalsIgnoreCase("ranks")) - { - if (!plexPlayer.getRankFromString().isAtLeast(rank)) - { - throw new CommandFailException(PlexUtils.messageString("noPermissionRank", ChatColor.stripColor(rank.getLoginMessage()))); - } - if (rank.isAtLeast(Rank.ADMIN) && !plexPlayer.isAdminActive()) - { - throw new CommandFailException(PlexUtils.messageString("noPermissionRank", ChatColor.stripColor(rank.getLoginMessage()))); - } - } - else if (plugin.getSystem().equalsIgnoreCase("permissions")) - { - if (!perms.permission().isEmpty() && !plugin.getPermissions().playerHas(null, Bukkit.getOfflinePlayer(plexPlayer.getName()), perms.permission())) - { - throw new CommandFailException(PlexUtils.messageString("noPermissionNode", permission)); - } - } - }*/ return true; } @@ -326,40 +245,16 @@ public abstract class PlexCommand extends Command implements PluginIdentifiableC * Checks whether a sender has enough permissions or is high enough a rank * * @param sender A CommandSender - * @param rank The rank to check (if the server is using ranks) - * @param permission The permission to check (if the server is using permissions) + * @param permission The permission to check * @return true if the sender has enough permissions - * @see Rank */ - protected boolean silentCheckRank(CommandSender sender, Rank rank, String permission) + protected boolean silentCheckPermission(CommandSender sender, String permission) { PlexLog.debug("Checking {0} with {1}", sender.getName(), permission); if (!isConsole(sender)) { - return silentCheckRank((Player) sender, rank, permission); + return silentCheckPermission((Player) sender, permission); } - /*if (!sender.getName().equalsIgnoreCase("console")) - { - PlexPlayer plexPlayer = DataUtils.getPlayer(sender.getName()); - if (plugin.getSystem().equalsIgnoreCase("ranks")) - { - if (!plexPlayer.getRankFromString().isAtLeast(rank)) - { - throw new CommandFailException(PlexUtils.messageString("noPermissionRank", ChatColor.stripColor(rank.getLoginMessage()))); - } - if (rank.isAtLeast(Rank.ADMIN) && !plexPlayer.isAdminActive()) - { - throw new CommandFailException(PlexUtils.messageString("noPermissionRank", ChatColor.stripColor(rank.getLoginMessage()))); - } - } - else if (plugin.getSystem().equalsIgnoreCase("permissions")) - { - if (!perms.permission().isEmpty() && !plugin.getPermissions().playerHas(null, Bukkit.getOfflinePlayer(plexPlayer.getName()), perms.permission())) - { - throw new CommandFailException(PlexUtils.messageString("noPermissionNode", permission)); - } - } - }*/ return true; } @@ -367,47 +262,25 @@ public abstract class PlexCommand extends Command implements PluginIdentifiableC * Checks whether a player has enough permissions or is high enough a rank * * @param player The player object - * @param rank The rank to check (if the server is using ranks) - * @param permission The permission to check (if the server is using permissions) + * @param permission The permission to check * @return true if the sender has enough permissions - * @see Rank */ - protected boolean checkRank(Player player, Rank rank, String permission) + protected boolean checkPermission(Player player, String permission) { if (player instanceof ConsoleCommandSender) { return true; } - PlexPlayer plexPlayer = getPlexPlayer(player); - if (plugin.getSystem().equalsIgnoreCase("ranks")) + if (!permission.isEmpty() && !player.hasPermission(permission)) { - if (!plexPlayer.getRankFromString().isAtLeast(rank) || (rank.isAtLeast(Rank.ADMIN) && !plexPlayer.isAdminActive())) - { - throw new CommandFailException(PlexUtils.messageString("noPermissionRank", ChatColor.stripColor(rank.getLoginMessage()))); - } - } - else if (plugin.getSystem().equalsIgnoreCase("permissions")) - { - if (!permission.isEmpty() && !player.hasPermission(permission)) - { - throw new CommandFailException(PlexUtils.messageString("noPermissionNode", permission)); - } + throw new CommandFailException(PlexUtils.messageString("noPermissionNode", permission)); } return true; } - protected boolean silentCheckRank(Player player, Rank rank, String permission) + protected boolean silentCheckPermission(Player player, String permission) { - PlexPlayer plexPlayer = getPlexPlayer(player); - if (plugin.getSystem().equalsIgnoreCase("ranks")) - { - return rank.isAtLeast(Rank.ADMIN) ? plexPlayer.isAdminActive() && plexPlayer.getRankFromString().isAtLeast(rank) : plexPlayer.getRankFromString().isAtLeast(rank); - } - else if (plugin.getSystem().equalsIgnoreCase("permissions")) - { - return !permission.isEmpty() && player.hasPermission(permission); - } - return false; + return !permission.isEmpty() && player.hasPermission(permission); } /* *//** @@ -419,11 +292,11 @@ public abstract class PlexCommand extends Command implements PluginIdentifiableC * @return true if the sender has enough permissions * @see Rank *//* - protected boolean silentCheckRank(CommandSender sender, Rank rank, String permission) + protected boolean silentCheckPermission(CommandSender sender, Rank rank, String permission) { if (!isConsole(sender)) { - return silentCheckRank((Player) sender, rank, permission); + return silentCheckPermission((Player) sender, rank, permission); } return true; } @@ -437,7 +310,7 @@ public abstract class PlexCommand extends Command implements PluginIdentifiableC * @return true if the sender has enough permissions * @see Rank *//* - protected boolean silentCheckRank(Player player, Rank rank, String permission) + protected boolean silentCheckPermission(Player player, Rank rank, String permission) { PlexPlayer plexPlayer = getPlexPlayer(player); if (plugin.getSystem().equalsIgnoreCase("ranks")) @@ -451,62 +324,6 @@ public abstract class PlexCommand extends Command implements PluginIdentifiableC return true; }*/ - /** - * Checks if a player is an admin - * - * @param plexPlayer The PlexPlayer object - * @return true if the player is an admin - * @see PlexPlayer - */ - protected boolean isAdmin(PlexPlayer plexPlayer) - { - return Plex.get().getRankManager().isAdmin(plexPlayer); - } - - /** - * Checks if a sender is an admin - * - * @param sender A command sender - * @return true if the sender is an admin or if console - */ - protected boolean isAdmin(CommandSender sender) - { - if (!(sender instanceof Player player)) - { - return true; - } - PlexPlayer plexPlayer = getPlexPlayer(player); - return plugin.getRankManager().isAdmin(plexPlayer); - } - - /** - * Checks if a username is an admin - * - * @param name The username - * @return true if the username is an admin - */ - protected boolean isAdmin(String name) - { - PlexPlayer plexPlayer = DataUtils.getPlayer(name); - return plugin.getRankManager().isAdmin(plexPlayer); - } - - /** - * Checks if a sender is a senior admin - * - * @param sender A command sender - * @return true if the sender is a senior admin or if console - */ - protected boolean isSeniorAdmin(CommandSender sender) - { - if (!(sender instanceof Player player)) - { - return true; - } - PlexPlayer plexPlayer = getPlexPlayer(player); - return plugin.getRankManager().isSeniorAdmin(plexPlayer); - } - /** * Gets the UUID of the sender * @@ -682,11 +499,6 @@ public abstract class PlexCommand extends Command implements PluginIdentifiableC return PlexUtils.mmDeserialize(s); } - public Rank getLevel() - { - return level; - } - public CommandMap getMap() { return Plex.get().getServer().getCommandMap(); diff --git a/server/src/main/java/dev/plex/command/annotation/CommandPermissions.java b/server/src/main/java/dev/plex/command/annotation/CommandPermissions.java index 8dc171f..1738d6f 100644 --- a/server/src/main/java/dev/plex/command/annotation/CommandPermissions.java +++ b/server/src/main/java/dev/plex/command/annotation/CommandPermissions.java @@ -1,7 +1,6 @@ package dev.plex.command.annotation; import dev.plex.command.source.RequiredCommandSource; -import dev.plex.rank.enums.Rank; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -12,14 +11,6 @@ import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) public @interface CommandPermissions { - /** - * Minimum rank required - * - * @return Minimum rank required for the command - * @see Rank - */ - Rank level() default Rank.IMPOSTOR; - /** * Required command source * diff --git a/server/src/main/java/dev/plex/command/annotation/System.java b/server/src/main/java/dev/plex/command/annotation/System.java deleted file mode 100644 index efe2ea1..0000000 --- a/server/src/main/java/dev/plex/command/annotation/System.java +++ /dev/null @@ -1,12 +0,0 @@ -package dev.plex.command.annotation; - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; - -@Retention(RetentionPolicy.RUNTIME) -public @interface System -{ - String value() default ""; - - boolean debug() default false; -} diff --git a/server/src/main/java/dev/plex/command/impl/AdminCMD.java b/server/src/main/java/dev/plex/command/impl/AdminCMD.java deleted file mode 100644 index 66b6c93..0000000 --- a/server/src/main/java/dev/plex/command/impl/AdminCMD.java +++ /dev/null @@ -1,187 +0,0 @@ -package dev.plex.command.impl; - -import com.google.common.collect.ImmutableList; -import dev.plex.cache.DataUtils; -import dev.plex.command.PlexCommand; -import dev.plex.command.annotation.CommandParameters; -import dev.plex.command.annotation.CommandPermissions; -import dev.plex.command.annotation.System; -import dev.plex.command.exception.ConsoleOnlyException; -import dev.plex.command.exception.PlayerNotFoundException; -import dev.plex.command.source.RequiredCommandSource; -import dev.plex.event.AdminAddEvent; -import dev.plex.event.AdminRemoveEvent; -import dev.plex.event.AdminSetRankEvent; -import dev.plex.player.PlexPlayer; -import dev.plex.rank.enums.Rank; -import dev.plex.util.PlexUtils; -import net.kyori.adventure.text.Component; -import org.apache.commons.lang3.StringUtils; -import org.bukkit.Bukkit; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Arrays; -import java.util.List; - -@CommandPermissions(level = Rank.OP, source = RequiredCommandSource.ANY) -@CommandParameters(name = "admin", usage = "/ | remove | setrank | list>", aliases = "saconfig,slconfig,adminconfig,adminmanage", description = "Manage all admins") -@System(value = "ranks") -public class AdminCMD extends PlexCommand -{ - //TODO: Better return messages - - @Override - protected Component execute(@NotNull CommandSender sender, @Nullable Player playerSender, String[] args) - { - if (args.length == 0) - { - return usage(); - } - - if (args[0].equalsIgnoreCase("add")) - { - if (args.length != 2) - { - return usage("/admin add "); - } - - if (!isConsole(sender)) - { - throw new ConsoleOnlyException(); - } - - /*UUID targetUUID = PlexUtils.getFromName(args[1]); - - if (targetUUID != null) - { - PlexLog.debug("Admin Adding UUID: " + targetUUID); - }*/ - - if (!DataUtils.hasPlayedBefore(args[1])) - { - throw new PlayerNotFoundException(); - } - PlexPlayer plexPlayer = DataUtils.getPlayer(args[1]); - - if (isAdmin(plexPlayer)) - { - return messageComponent("playerIsAdmin"); - } - - Bukkit.getServer().getPluginManager().callEvent(new AdminAddEvent(sender, plexPlayer)); - return null; - } - if (args[0].equalsIgnoreCase("remove")) - { - if (args.length != 2) - { - return usage("/admin remove "); - } - - if (!isConsole(sender)) - { - throw new ConsoleOnlyException(); - } - - // UUID targetUUID = PlexUtils.getFromName(args[1]); - - if (!DataUtils.hasPlayedBefore(args[1])) - { - throw new PlayerNotFoundException(); - } - PlexPlayer plexPlayer = DataUtils.getPlayer(args[1]); - - if (!isAdmin(plexPlayer)) - { - return messageComponent("playerNotAdmin"); - } - - Bukkit.getServer().getPluginManager().callEvent(new AdminRemoveEvent(sender, plexPlayer)); - return null; - } - - if (args[0].equalsIgnoreCase("setrank")) - { - if (args.length != 3) - { - return usage("/admin setrank "); - } - - if (!isConsole(sender)) - { - throw new ConsoleOnlyException(); - } - - // UUID targetUUID = PlexUtils.getFromName(args[1]); - - if (!DataUtils.hasPlayedBefore(args[1])) - { - throw new PlayerNotFoundException(); - } - - if (!rankExists(args[2])) - { - return messageComponent("rankNotFound"); - } - - Rank rank = Rank.valueOf(args[2].toUpperCase()); - - if (!rank.isAtLeast(Rank.ADMIN)) - { - return messageComponent("rankMustBeHigherThanAdmin"); - } - - PlexPlayer plexPlayer = DataUtils.getPlayer(args[1]); - - if (!isAdmin(plexPlayer)) - { - return messageComponent("playerNotAdmin"); - } - - Bukkit.getServer().getPluginManager().callEvent(new AdminSetRankEvent(sender, plexPlayer, rank)); - - return null; - } - - if (args[0].equalsIgnoreCase("list")) - { - if (args.length != 1) - { - return usage("/admin list"); - } - - return componentFromString("Admins: " + StringUtils.join(plugin.getAdminList().getAllAdmins(), ", ")); - } - return null; - } - - @Override - public @NotNull List tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException - { - if (args.length == 1) - { - return Arrays.asList("add", "remove", "setrank", "list"); - } - else if (args.length == 2 && !args[0].equalsIgnoreCase("list")) - { - return PlexUtils.getPlayerNameList(); - } - return ImmutableList.of(); - } - - - private boolean rankExists(String rank) - { - for (Rank ranks : Rank.values()) - { - if (ranks.name().equalsIgnoreCase(rank)) - { - return true; - } - } - return false; - } -} diff --git a/server/src/main/java/dev/plex/command/impl/AdminChatCMD.java b/server/src/main/java/dev/plex/command/impl/AdminChatCMD.java index d069313..30cf163 100644 --- a/server/src/main/java/dev/plex/command/impl/AdminChatCMD.java +++ b/server/src/main/java/dev/plex/command/impl/AdminChatCMD.java @@ -6,7 +6,6 @@ import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.source.RequiredCommandSource; import dev.plex.player.PlexPlayer; -import dev.plex.rank.enums.Rank; import dev.plex.util.PlexUtils; import dev.plex.util.minimessage.SafeMiniMessage; import dev.plex.util.redis.MessageUtil; @@ -20,7 +19,7 @@ import org.jetbrains.annotations.Nullable; import java.util.UUID; -@CommandPermissions(level = Rank.ADMIN, permission = "plex.adminchat", source = RequiredCommandSource.ANY) +@CommandPermissions(permission = "plex.adminchat", source = RequiredCommandSource.ANY) @CommandParameters(name = "adminchat", description = "Talk privately with other admins", usage = "/ ", aliases = "o,ac,sc,staffchat") public class AdminChatCMD extends PlexCommand { diff --git a/server/src/main/java/dev/plex/command/impl/AdminworldCMD.java b/server/src/main/java/dev/plex/command/impl/AdminworldCMD.java index 96cb2ac..8019615 100644 --- a/server/src/main/java/dev/plex/command/impl/AdminworldCMD.java +++ b/server/src/main/java/dev/plex/command/impl/AdminworldCMD.java @@ -4,7 +4,6 @@ import dev.plex.command.PlexCommand; import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.source.RequiredCommandSource; -import dev.plex.rank.enums.Rank; import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -13,7 +12,7 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -@CommandPermissions(level = Rank.ADMIN, permission = "plex.adminworld", source = RequiredCommandSource.IN_GAME) +@CommandPermissions(permission = "plex.adminworld", source = RequiredCommandSource.IN_GAME) @CommandParameters(name = "adminworld", aliases = "aw", description = "Teleport to the adminworld") public class AdminworldCMD extends PlexCommand { diff --git a/server/src/main/java/dev/plex/command/impl/AdventureCMD.java b/server/src/main/java/dev/plex/command/impl/AdventureCMD.java index 5bae007..0e1b628 100644 --- a/server/src/main/java/dev/plex/command/impl/AdventureCMD.java +++ b/server/src/main/java/dev/plex/command/impl/AdventureCMD.java @@ -7,7 +7,6 @@ import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.exception.CommandFailException; import dev.plex.command.source.RequiredCommandSource; import dev.plex.event.GameModeUpdateEvent; -import dev.plex.rank.enums.Rank; import dev.plex.util.PlexUtils; import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; @@ -19,7 +18,7 @@ import org.jetbrains.annotations.Nullable; import java.util.List; -@CommandPermissions(level = Rank.OP, permission = "plex.gamemode.adventure", source = RequiredCommandSource.ANY) +@CommandPermissions(permission = "plex.gamemode.adventure", source = RequiredCommandSource.ANY) @CommandParameters(name = "adventure", aliases = "gma,egma,eadventure,adventuremode,eadventuremode", description = "Set your own or another player's gamemode to adventure mode") public class AdventureCMD extends PlexCommand { @@ -36,29 +35,27 @@ public class AdventureCMD extends PlexCommand return null; } - if (checkRank(sender, Rank.ADMIN, "plex.gamemode.adventure.others")) + checkPermission(sender, "plex.gamemode.adventure.others"); + if (args[0].equals("-a")) { - if (args[0].equals("-a")) + for (Player targetPlayer : Bukkit.getServer().getOnlinePlayers()) { - for (Player targetPlayer : Bukkit.getServer().getOnlinePlayers()) - { - targetPlayer.setGameMode(GameMode.ADVENTURE); - messageComponent("gameModeSetTo", "adventure"); - } - PlexUtils.broadcast(messageComponent("setEveryoneGameMode", sender.getName(), "adventure")); - return null; + targetPlayer.setGameMode(GameMode.ADVENTURE); + messageComponent("gameModeSetTo", "adventure"); } - - Player nPlayer = getNonNullPlayer(args[0]); - Bukkit.getServer().getPluginManager().callEvent(new GameModeUpdateEvent(sender, nPlayer, GameMode.ADVENTURE)); + PlexUtils.broadcast(messageComponent("setEveryoneGameMode", sender.getName(), "adventure")); + return null; } + + Player nPlayer = getNonNullPlayer(args[0]); + Bukkit.getServer().getPluginManager().callEvent(new GameModeUpdateEvent(sender, nPlayer, GameMode.ADVENTURE)); return null; } @Override public @NotNull List tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException { - if (silentCheckRank(sender, Rank.ADMIN, "plex.gamemode.adventure.others")) + if (silentCheckPermission(sender, "plex.gamemode.adventure.others")) { return PlexUtils.getPlayerNameList(); } diff --git a/server/src/main/java/dev/plex/command/impl/BanCMD.java b/server/src/main/java/dev/plex/command/impl/BanCMD.java index 15d9be7..b3319b7 100644 --- a/server/src/main/java/dev/plex/command/impl/BanCMD.java +++ b/server/src/main/java/dev/plex/command/impl/BanCMD.java @@ -11,7 +11,6 @@ import dev.plex.command.source.RequiredCommandSource; import dev.plex.player.PlexPlayer; import dev.plex.punishment.Punishment; import dev.plex.punishment.PunishmentType; -import dev.plex.rank.enums.Rank; import dev.plex.util.*; import net.kyori.adventure.text.Component; import org.apache.commons.lang3.StringUtils; @@ -24,10 +23,9 @@ import org.jetbrains.annotations.Nullable; import java.time.ZoneId; import java.time.ZonedDateTime; import java.util.List; -import java.util.UUID; @CommandParameters(name = "ban", usage = "/ [reason]", aliases = "offlineban,gtfo", description = "Bans a player, offline or online") -@CommandPermissions(level = Rank.ADMIN, permission = "plex.ban", source = RequiredCommandSource.ANY) +@CommandPermissions(permission = "plex.ban", source = RequiredCommandSource.ANY) public class BanCMD extends PlexCommand { @@ -48,22 +46,6 @@ public class BanCMD extends PlexCommand Player player = Bukkit.getPlayer(plexPlayer.getUuid()); - if (plugin.getSystem().equalsIgnoreCase("ranks")) - { - if (isAdmin(plexPlayer)) - { - if (!isConsole(sender)) - { - assert playerSender != null; - PlexPlayer plexPlayer1 = getPlexPlayer(playerSender); - if (!plexPlayer1.getRankFromString().isAtLeast(plexPlayer.getRankFromString())) - { - return messageComponent("higherRankThanYou"); - } - } - } - } - plugin.getPunishmentManager().isAsyncBanned(plexPlayer.getUuid()).whenComplete((aBoolean, throwable) -> { if (aBoolean) @@ -87,7 +69,7 @@ public class BanCMD extends PlexCommand ZonedDateTime date = ZonedDateTime.now(ZoneId.of(TimeUtils.TIMEZONE)); punishment.setEndDate(date.plusDays(1)); punishment.setCustomTime(false); - punishment.setActive(!isAdmin(plexPlayer)); + punishment.setActive(true); if (player != null) { punishment.setIp(player.getAddress().getAddress().getHostAddress().trim()); @@ -110,6 +92,6 @@ public class BanCMD extends PlexCommand @Override public @NotNull List tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException { - return args.length == 1 && silentCheckRank(sender, Rank.ADMIN, "plex.ban") ? PlexUtils.getPlayerNameList() : ImmutableList.of(); + return args.length == 1 && silentCheckPermission(sender, "plex.ban") ? PlexUtils.getPlayerNameList() : ImmutableList.of(); } } diff --git a/server/src/main/java/dev/plex/command/impl/BlockEditCMD.java b/server/src/main/java/dev/plex/command/impl/BlockEditCMD.java index c5f6617..1cbe064 100644 --- a/server/src/main/java/dev/plex/command/impl/BlockEditCMD.java +++ b/server/src/main/java/dev/plex/command/impl/BlockEditCMD.java @@ -4,7 +4,6 @@ import dev.plex.command.PlexCommand; import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandPermissions; import dev.plex.listener.impl.BlockListener; -import dev.plex.rank.enums.Rank; import dev.plex.util.PlexUtils; import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; @@ -13,7 +12,7 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -@CommandPermissions(level = Rank.ADMIN, permission = "plex.blockedit") +@CommandPermissions(permission = "plex.blockedit") @CommandParameters(name = "blockedit", usage = "/ [list | purge | all | ]", aliases = "bedit", description = "Prevent players from modifying blocks") public class BlockEditCMD extends PlexCommand { @@ -63,7 +62,7 @@ public class BlockEditCMD extends PlexCommand int count = 0; for (final Player player : Bukkit.getOnlinePlayers()) { - if (!silentCheckRank(player, Rank.ADMIN, "plex.blockedit")) + if (!silentCheckPermission(player, "plex.blockedit")) { bl.blockedPlayers.add(player.getName()); ++count; @@ -76,7 +75,7 @@ public class BlockEditCMD extends PlexCommand final Player player = getNonNullPlayer(args[0]); if (!bl.blockedPlayers.contains(player.getName())) { - if (silentCheckRank(player, Rank.ADMIN, "plex.blockedit")) + if (silentCheckPermission(player, "plex.blockedit")) { send(sender, messageComponent("higherRankThanYou")); return null; diff --git a/server/src/main/java/dev/plex/command/impl/CommandSpyCMD.java b/server/src/main/java/dev/plex/command/impl/CommandSpyCMD.java index 8d41644..0e088d4 100644 --- a/server/src/main/java/dev/plex/command/impl/CommandSpyCMD.java +++ b/server/src/main/java/dev/plex/command/impl/CommandSpyCMD.java @@ -6,14 +6,13 @@ import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.source.RequiredCommandSource; import dev.plex.player.PlexPlayer; -import dev.plex.rank.enums.Rank; import net.kyori.adventure.text.Component; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -@CommandPermissions(level = Rank.ADMIN, permission = "plex.commandspy", source = RequiredCommandSource.IN_GAME) +@CommandPermissions(permission = "plex.commandspy", source = RequiredCommandSource.IN_GAME) @CommandParameters(name = "commandspy", aliases = "cmdspy", description = "Spy on other player's commands") public class CommandSpyCMD extends PlexCommand { diff --git a/server/src/main/java/dev/plex/command/impl/ConsoleSayCMD.java b/server/src/main/java/dev/plex/command/impl/ConsoleSayCMD.java index 78aceee..d733168 100644 --- a/server/src/main/java/dev/plex/command/impl/ConsoleSayCMD.java +++ b/server/src/main/java/dev/plex/command/impl/ConsoleSayCMD.java @@ -4,7 +4,6 @@ import dev.plex.command.PlexCommand; import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.source.RequiredCommandSource; -import dev.plex.rank.enums.Rank; import dev.plex.util.PlexUtils; import net.kyori.adventure.text.Component; import org.apache.commons.lang3.StringUtils; @@ -13,7 +12,7 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -@CommandPermissions(level = Rank.ADMIN, permission = "plex.consolesay", source = RequiredCommandSource.CONSOLE) +@CommandPermissions(permission = "plex.consolesay", source = RequiredCommandSource.CONSOLE) @CommandParameters(name = "consolesay", usage = "/ ", description = "Displays a message to everyone", aliases = "csay") public class ConsoleSayCMD extends PlexCommand { diff --git a/server/src/main/java/dev/plex/command/impl/CreativeCMD.java b/server/src/main/java/dev/plex/command/impl/CreativeCMD.java index 0f4842a..bab76ab 100644 --- a/server/src/main/java/dev/plex/command/impl/CreativeCMD.java +++ b/server/src/main/java/dev/plex/command/impl/CreativeCMD.java @@ -7,7 +7,6 @@ import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.exception.CommandFailException; import dev.plex.command.source.RequiredCommandSource; import dev.plex.event.GameModeUpdateEvent; -import dev.plex.rank.enums.Rank; import dev.plex.util.PlexUtils; import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; @@ -19,7 +18,7 @@ import org.jetbrains.annotations.Nullable; import java.util.List; -@CommandPermissions(level = Rank.OP, permission = "plex.gamemode.creative", source = RequiredCommandSource.ANY) +@CommandPermissions(permission = "plex.gamemode.creative", source = RequiredCommandSource.ANY) @CommandParameters(name = "creative", aliases = "gmc,egmc,ecreative,eecreative,creativemode,ecreativemode", description = "Set your own or another player's gamemode to creative mode") public class CreativeCMD extends PlexCommand { @@ -39,30 +38,27 @@ public class CreativeCMD extends PlexCommand return null; } - if (checkRank(sender, Rank.ADMIN, "plex.gamemode.creative.others")) + checkPermission(sender, "plex.gamemode.creative.others"); + if (args[0].equals("-a")) { - if (args[0].equals("-a")) + for (Player targetPlayer : Bukkit.getServer().getOnlinePlayers()) { - for (Player targetPlayer : Bukkit.getServer().getOnlinePlayers()) - { - targetPlayer.setGameMode(GameMode.CREATIVE); - messageComponent("gameModeSetTo", "creative"); - } - PlexUtils.broadcast(messageComponent("setEveryoneGameMode", sender.getName(), "creative")); - return null; + targetPlayer.setGameMode(GameMode.CREATIVE); + messageComponent("gameModeSetTo", "creative"); } - - Player nPlayer = getNonNullPlayer(args[0]); - Bukkit.getServer().getPluginManager().callEvent(new GameModeUpdateEvent(sender, nPlayer, GameMode.CREATIVE)); + PlexUtils.broadcast(messageComponent("setEveryoneGameMode", sender.getName(), "creative")); return null; } + + Player nPlayer = getNonNullPlayer(args[0]); + Bukkit.getServer().getPluginManager().callEvent(new GameModeUpdateEvent(sender, nPlayer, GameMode.CREATIVE)); return null; } @Override public @NotNull List tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException { - if (silentCheckRank(sender, Rank.ADMIN, "plex.gamemode.creative.others")) + if (silentCheckPermission(sender, "plex.gamemode.creative.others")) { return PlexUtils.getPlayerNameList(); } diff --git a/server/src/main/java/dev/plex/command/impl/DebugCMD.java b/server/src/main/java/dev/plex/command/impl/DebugCMD.java index 62931e3..5b7c91b 100644 --- a/server/src/main/java/dev/plex/command/impl/DebugCMD.java +++ b/server/src/main/java/dev/plex/command/impl/DebugCMD.java @@ -4,8 +4,6 @@ import com.google.common.collect.ImmutableList; import dev.plex.command.PlexCommand; import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandPermissions; -import dev.plex.command.annotation.System; -import dev.plex.rank.enums.Rank; import dev.plex.util.GameRuleUtil; import dev.plex.util.PlexLog; import dev.plex.util.PlexUtils; @@ -24,8 +22,7 @@ import java.util.List; import java.util.Locale; @CommandParameters(name = "pdebug", description = "Plex's debug command", usage = "/ | redis-reset | gamerules>") -@CommandPermissions(level = Rank.EXECUTIVE, permission = "plex.debug") -@System(debug = true) +@CommandPermissions(permission = "plex.debug") public class DebugCMD extends PlexCommand { @Override diff --git a/server/src/main/java/dev/plex/command/impl/DeopAllCMD.java b/server/src/main/java/dev/plex/command/impl/DeopAllCMD.java deleted file mode 100644 index 7b37e3e..0000000 --- a/server/src/main/java/dev/plex/command/impl/DeopAllCMD.java +++ /dev/null @@ -1,31 +0,0 @@ -package dev.plex.command.impl; - -import dev.plex.command.PlexCommand; -import dev.plex.command.annotation.CommandParameters; -import dev.plex.command.annotation.CommandPermissions; -import dev.plex.command.annotation.System; -import dev.plex.rank.enums.Rank; -import dev.plex.util.PlexUtils; -import net.kyori.adventure.text.Component; -import org.bukkit.Bukkit; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -@CommandParameters(name = "deopall", description = "Deop everyone on the server", aliases = "deopa") -@CommandPermissions(level = Rank.ADMIN) -@System(value = "ranks") -public class DeopAllCMD extends PlexCommand -{ - @Override - protected Component execute(@NotNull CommandSender sender, @Nullable Player playerSender, String[] args) - { - for (Player player : Bukkit.getOnlinePlayers()) - { - player.setOp(false); - } - PlexUtils.broadcast(messageComponent("deoppedAllPlayers", sender.getName())); - return null; - } -} \ No newline at end of file diff --git a/server/src/main/java/dev/plex/command/impl/DeopCMD.java b/server/src/main/java/dev/plex/command/impl/DeopCMD.java deleted file mode 100644 index 5e8a86f..0000000 --- a/server/src/main/java/dev/plex/command/impl/DeopCMD.java +++ /dev/null @@ -1,41 +0,0 @@ -package dev.plex.command.impl; - -import com.google.common.collect.ImmutableList; -import dev.plex.command.PlexCommand; -import dev.plex.command.annotation.CommandParameters; -import dev.plex.command.annotation.CommandPermissions; -import dev.plex.command.annotation.System; -import dev.plex.rank.enums.Rank; -import dev.plex.util.PlexUtils; -import net.kyori.adventure.text.Component; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -@CommandParameters(name = "deop", description = "Deop a player on the server", usage = "/ ") -@CommandPermissions(level = Rank.ADMIN, permission = "plex.deop") -@System(value = "ranks") -public class DeopCMD extends PlexCommand -{ - @Override - protected Component execute(@NotNull CommandSender sender, @Nullable Player playerSender, String[] args) - { - if (args.length != 1) - { - return usage(); - } - Player player = getNonNullPlayer(args[0]); - player.setOp(false); - PlexUtils.broadcast(messageComponent("deoppedPlayer", sender.getName(), player.getName())); - return null; - } - - @Override - public @NotNull List tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException - { - return args.length == 1 ? PlexUtils.getPlayerNameList() : ImmutableList.of(); - } -} \ No newline at end of file diff --git a/server/src/main/java/dev/plex/command/impl/EntityWipeCMD.java b/server/src/main/java/dev/plex/command/impl/EntityWipeCMD.java index b277709..f5115da 100644 --- a/server/src/main/java/dev/plex/command/impl/EntityWipeCMD.java +++ b/server/src/main/java/dev/plex/command/impl/EntityWipeCMD.java @@ -4,7 +4,7 @@ import dev.plex.command.PlexCommand; import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.source.RequiredCommandSource; -import dev.plex.rank.enums.Rank; + import dev.plex.util.PlexUtils; import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; @@ -18,7 +18,7 @@ import org.jetbrains.annotations.Nullable; import java.util.*; -@CommandPermissions(level = Rank.ADMIN, permission = "plex.entitywipe", source = RequiredCommandSource.ANY) +@CommandPermissions(permission = "plex.entitywipe", source = RequiredCommandSource.ANY) @CommandParameters(name = "entitywipe", description = "Remove various server entities that may cause lag, such as dropped items, minecarts, and boats.", usage = "/ [name]", aliases = "ew,rd") public class EntityWipeCMD extends PlexCommand { diff --git a/server/src/main/java/dev/plex/command/impl/FlatlandsCMD.java b/server/src/main/java/dev/plex/command/impl/FlatlandsCMD.java index eaa9401..25fe4c9 100644 --- a/server/src/main/java/dev/plex/command/impl/FlatlandsCMD.java +++ b/server/src/main/java/dev/plex/command/impl/FlatlandsCMD.java @@ -4,7 +4,7 @@ import dev.plex.command.PlexCommand; import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.source.RequiredCommandSource; -import dev.plex.rank.enums.Rank; + import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -13,7 +13,7 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -@CommandPermissions(level = Rank.OP, permission = "plex.flatlands", source = RequiredCommandSource.IN_GAME) +@CommandPermissions(permission = "plex.flatlands", source = RequiredCommandSource.IN_GAME) @CommandParameters(name = "flatlands", description = "Teleport to the flatlands") public class FlatlandsCMD extends PlexCommand { diff --git a/server/src/main/java/dev/plex/command/impl/FreezeCMD.java b/server/src/main/java/dev/plex/command/impl/FreezeCMD.java index 60bf19e..0d51bd6 100644 --- a/server/src/main/java/dev/plex/command/impl/FreezeCMD.java +++ b/server/src/main/java/dev/plex/command/impl/FreezeCMD.java @@ -7,7 +7,7 @@ import dev.plex.command.annotation.CommandPermissions; import dev.plex.player.PlexPlayer; import dev.plex.punishment.Punishment; import dev.plex.punishment.PunishmentType; -import dev.plex.rank.enums.Rank; + import dev.plex.util.PlexUtils; import dev.plex.util.TimeUtils; import net.kyori.adventure.text.Component; @@ -21,7 +21,7 @@ import java.time.ZonedDateTime; import java.util.List; @CommandParameters(name = "freeze", description = "Freeze a player on the server", usage = "/ ", aliases = "fr") -@CommandPermissions(level = Rank.ADMIN, permission = "plex.freeze") +@CommandPermissions(permission = "plex.freeze") public class FreezeCMD extends PlexCommand { @Override @@ -39,19 +39,6 @@ public class FreezeCMD extends PlexCommand return messageComponent("playerFrozen"); } - if (isAdmin(getPlexPlayer(player))) - { - if (!isConsole(sender)) - { - assert playerSender != null; - PlexPlayer plexPlayer1 = getPlexPlayer(playerSender); - if (!plexPlayer1.getRankFromString().isAtLeast(getPlexPlayer(player).getRankFromString()) && getPlexPlayer(player).isAdminActive()) - { - return messageComponent("higherRankThanYou"); - } - } - } - Punishment punishment = new Punishment(punishedPlayer.getUuid(), getUUID(sender)); punishment.setCustomTime(false); ZonedDateTime date = ZonedDateTime.now(ZoneId.of(TimeUtils.TIMEZONE)); @@ -69,6 +56,6 @@ public class FreezeCMD extends PlexCommand @Override public @NotNull List tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException { - return args.length == 1 && silentCheckRank(sender, Rank.ADMIN, "plex.freeze") ? PlexUtils.getPlayerNameList() : ImmutableList.of(); + return args.length == 1 && silentCheckPermission(sender, "plex.freeze") ? PlexUtils.getPlayerNameList() : ImmutableList.of(); } } \ No newline at end of file diff --git a/server/src/main/java/dev/plex/command/impl/GamemodeCMD.java b/server/src/main/java/dev/plex/command/impl/GamemodeCMD.java index d23cde1..c8afb02 100644 --- a/server/src/main/java/dev/plex/command/impl/GamemodeCMD.java +++ b/server/src/main/java/dev/plex/command/impl/GamemodeCMD.java @@ -6,7 +6,6 @@ import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.exception.CommandFailException; import dev.plex.command.source.RequiredCommandSource; import dev.plex.event.GameModeUpdateEvent; -import dev.plex.rank.enums.Rank; import dev.plex.util.PlexUtils; import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; @@ -21,7 +20,7 @@ import java.util.Collections; import java.util.List; @CommandParameters(name = "gamemode", usage = "/ [player]", description = "Change your gamemode", aliases = "gm,egamemode,gmt,egmt") -@CommandPermissions(level = Rank.OP, permission = "plex.gamemode", source = RequiredCommandSource.ANY) +@CommandPermissions(permission = "plex.gamemode", source = RequiredCommandSource.ANY) public class GamemodeCMD extends PlexCommand { private GameMode gamemode; @@ -62,14 +61,14 @@ public class GamemodeCMD extends PlexCommand case "spectator", "sp", "3", "6" -> { gamemode = GameMode.SPECTATOR; - checkRank(sender, Rank.ADMIN, "plex.gamemode.spectator"); + checkPermission(sender, "plex.gamemode.spectator"); update(sender, playerSender, GameMode.SPECTATOR); return null; } } if (args.length > 1) { - checkRank(sender, Rank.ADMIN, "plex.gamemode.others"); + checkPermission(sender, "plex.gamemode.others"); Player player = getNonNullPlayer(args[1]); Bukkit.getServer().getPluginManager().callEvent(new GameModeUpdateEvent(sender, player, gamemode)); } diff --git a/server/src/main/java/dev/plex/command/impl/KickCMD.java b/server/src/main/java/dev/plex/command/impl/KickCMD.java index 76b8076..6294c6c 100644 --- a/server/src/main/java/dev/plex/command/impl/KickCMD.java +++ b/server/src/main/java/dev/plex/command/impl/KickCMD.java @@ -9,11 +9,10 @@ import dev.plex.command.source.RequiredCommandSource; import dev.plex.player.PlexPlayer; import dev.plex.punishment.Punishment; import dev.plex.punishment.PunishmentType; -import dev.plex.rank.enums.Rank; + import dev.plex.util.BungeeUtil; import dev.plex.util.PlexUtils; import dev.plex.util.TimeUtils; -import dev.plex.util.WebUtils; import net.kyori.adventure.text.Component; import org.apache.commons.lang3.StringUtils; import org.bukkit.Bukkit; @@ -24,10 +23,9 @@ import org.jetbrains.annotations.Nullable; import java.time.ZoneId; import java.time.ZonedDateTime; -import java.util.UUID; @CommandParameters(name = "kick", description = "Kicks a player", usage = "/ ") -@CommandPermissions(level = Rank.ADMIN, permission = "plex.kick", source = RequiredCommandSource.ANY) +@CommandPermissions(permission = "plex.kick", source = RequiredCommandSource.ANY) public class KickCMD extends PlexCommand { @Override diff --git a/server/src/main/java/dev/plex/command/impl/ListCMD.java b/server/src/main/java/dev/plex/command/impl/ListCMD.java index 108fd5e..c10bba5 100644 --- a/server/src/main/java/dev/plex/command/impl/ListCMD.java +++ b/server/src/main/java/dev/plex/command/impl/ListCMD.java @@ -5,7 +5,7 @@ import dev.plex.command.PlexCommand; import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandPermissions; import dev.plex.hook.VaultHook; -import dev.plex.rank.enums.Rank; + import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; @@ -17,7 +17,7 @@ import org.jetbrains.annotations.Nullable; import java.util.List; @CommandParameters(name = "list", description = "Show a list of all online players", aliases = "lsit,who,playerlist,online") -@CommandPermissions(level = Rank.OP, permission = "plex.list") +@CommandPermissions(permission = "plex.list") public class ListCMD extends PlexCommand { @Override @@ -44,18 +44,11 @@ public class ListCMD extends PlexCommand for (int i = 0; i < players.size(); i++) { Player player = players.get(i); - if (plugin.getSystem().equals("ranks")) - { - list = list.append(getPlexPlayer(player).getRankFromString().getPrefix()).append(Component.space()).append(Component.text(player.getName()).color(NamedTextColor.WHITE)); - } - else - { - Component prefix = VaultHook.getPrefix(getPlexPlayer(player)); - if (prefix != null && !prefix.equals(Component.empty()) && !prefix.equals(Component.space())) { - list = list.append(prefix).append(Component.space()); - } - list = list.append(Component.text(player.getName()).color(NamedTextColor.WHITE)); + Component prefix = VaultHook.getPrefix(getPlexPlayer(player)); + if (prefix != null && !prefix.equals(Component.empty()) && !prefix.equals(Component.space())) { + list = list.append(prefix).append(Component.space()); } + list = list.append(Component.text(player.getName()).color(NamedTextColor.WHITE)); if (i != players.size() - 1) { list = list.append(Component.text(",")).append(Component.space()); diff --git a/server/src/main/java/dev/plex/command/impl/LocalSpawnCMD.java b/server/src/main/java/dev/plex/command/impl/LocalSpawnCMD.java index e318b21..b25e72a 100644 --- a/server/src/main/java/dev/plex/command/impl/LocalSpawnCMD.java +++ b/server/src/main/java/dev/plex/command/impl/LocalSpawnCMD.java @@ -4,7 +4,7 @@ import dev.plex.command.PlexCommand; import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.source.RequiredCommandSource; -import dev.plex.rank.enums.Rank; + import net.kyori.adventure.text.Component; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -12,7 +12,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @CommandParameters(name = "localspawn", description = "Teleport to the spawnpoint of the world you are in") -@CommandPermissions(level = Rank.OP, permission = "plex.localspawn", source = RequiredCommandSource.IN_GAME) +@CommandPermissions(permission = "plex.localspawn", source = RequiredCommandSource.IN_GAME) public class LocalSpawnCMD extends PlexCommand { @Override diff --git a/server/src/main/java/dev/plex/command/impl/LockupCMD.java b/server/src/main/java/dev/plex/command/impl/LockupCMD.java index 1aa70a5..8ed2e85 100644 --- a/server/src/main/java/dev/plex/command/impl/LockupCMD.java +++ b/server/src/main/java/dev/plex/command/impl/LockupCMD.java @@ -5,7 +5,7 @@ import dev.plex.command.PlexCommand; import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandPermissions; import dev.plex.player.PlexPlayer; -import dev.plex.rank.enums.Rank; + import dev.plex.util.PlexUtils; import net.kyori.adventure.text.Component; import org.bukkit.command.CommandSender; @@ -16,7 +16,7 @@ import org.jetbrains.annotations.Nullable; import java.util.List; @CommandParameters(name = "lockup", description = "Lockup a player on the server", usage = "/ ") -@CommandPermissions(level = Rank.ADMIN, permission = "plex.lockup") +@CommandPermissions(permission = "plex.lockup") public class LockupCMD extends PlexCommand { @Override @@ -29,19 +29,6 @@ public class LockupCMD extends PlexCommand Player player = getNonNullPlayer(args[0]); PlexPlayer punishedPlayer = getOfflinePlexPlayer(player.getUniqueId()); - if (isAdmin(getPlexPlayer(player))) - { - if (!isConsole(sender)) - { - assert playerSender != null; - PlexPlayer plexPlayer1 = getPlexPlayer(playerSender); - if (!plexPlayer1.getRankFromString().isAtLeast(getPlexPlayer(player).getRankFromString())) - { - return messageComponent("higherRankThanYou"); - } - } - } - punishedPlayer.setLockedUp(!punishedPlayer.isLockedUp()); if (punishedPlayer.isLockedUp()) { @@ -54,6 +41,6 @@ public class LockupCMD extends PlexCommand @Override public @NotNull List tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException { - return args.length == 1 && silentCheckRank(sender, Rank.ADMIN, "plex.lockup") ? PlexUtils.getPlayerNameList() : ImmutableList.of(); + return args.length == 1 && silentCheckPermission(sender, "plex.lockup") ? PlexUtils.getPlayerNameList() : ImmutableList.of(); } } \ No newline at end of file diff --git a/server/src/main/java/dev/plex/command/impl/MasterbuilderworldCMD.java b/server/src/main/java/dev/plex/command/impl/MasterbuilderworldCMD.java index 6af7d22..3270fbe 100644 --- a/server/src/main/java/dev/plex/command/impl/MasterbuilderworldCMD.java +++ b/server/src/main/java/dev/plex/command/impl/MasterbuilderworldCMD.java @@ -4,7 +4,7 @@ import dev.plex.command.PlexCommand; import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.source.RequiredCommandSource; -import dev.plex.rank.enums.Rank; + import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -13,7 +13,7 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -@CommandPermissions(level = Rank.OP, permission = "plex.masterbuilderworld", source = RequiredCommandSource.IN_GAME) +@CommandPermissions(permission = "plex.masterbuilderworld", source = RequiredCommandSource.IN_GAME) @CommandParameters(name = "masterbuilderworld", aliases = "mbw", description = "Teleport to the Master Builder world") public class MasterbuilderworldCMD extends PlexCommand { diff --git a/server/src/main/java/dev/plex/command/impl/MobPurgeCMD.java b/server/src/main/java/dev/plex/command/impl/MobPurgeCMD.java index cfd300d..9296453 100644 --- a/server/src/main/java/dev/plex/command/impl/MobPurgeCMD.java +++ b/server/src/main/java/dev/plex/command/impl/MobPurgeCMD.java @@ -4,7 +4,7 @@ import dev.plex.command.PlexCommand; import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.source.RequiredCommandSource; -import dev.plex.rank.enums.Rank; + import dev.plex.util.PlexUtils; import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; @@ -18,7 +18,7 @@ import org.jetbrains.annotations.Nullable; import java.util.HashMap; -@CommandPermissions(level = Rank.ADMIN, permission = "plex.mobpurge", source = RequiredCommandSource.ANY) +@CommandPermissions(permission = "plex.mobpurge", source = RequiredCommandSource.ANY) @CommandParameters(name = "mobpurge", description = "Purge all mobs.", usage = "/", aliases = "mp") public class MobPurgeCMD extends PlexCommand { diff --git a/server/src/main/java/dev/plex/command/impl/MuteCMD.java b/server/src/main/java/dev/plex/command/impl/MuteCMD.java index f47223d..573ed4a 100644 --- a/server/src/main/java/dev/plex/command/impl/MuteCMD.java +++ b/server/src/main/java/dev/plex/command/impl/MuteCMD.java @@ -7,7 +7,7 @@ import dev.plex.command.annotation.CommandPermissions; import dev.plex.player.PlexPlayer; import dev.plex.punishment.Punishment; import dev.plex.punishment.PunishmentType; -import dev.plex.rank.enums.Rank; + import dev.plex.util.PlexUtils; import dev.plex.util.TimeUtils; import net.kyori.adventure.text.Component; @@ -21,7 +21,7 @@ import java.time.ZonedDateTime; import java.util.List; @CommandParameters(name = "mute", description = "Mute a player on the server", usage = "/ ", aliases = "stfu") -@CommandPermissions(level = Rank.ADMIN, permission = "plex.mute") +@CommandPermissions(permission = "plex.mute") public class MuteCMD extends PlexCommand { @Override @@ -39,7 +39,7 @@ public class MuteCMD extends PlexCommand return messageComponent("playerMuted"); } - if (silentCheckRank(player, Rank.ADMIN, "plex.mute")) + if (silentCheckPermission(player,"plex.mute")) { send(sender, messageComponent("higherRankThanYou")); return null; @@ -62,6 +62,6 @@ public class MuteCMD extends PlexCommand @Override public @NotNull List tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException { - return args.length == 1 && silentCheckRank(sender, Rank.ADMIN, "plex.mute") ? PlexUtils.getPlayerNameList() : ImmutableList.of(); + return args.length == 1 && silentCheckPermission(sender,"plex.mute") ? PlexUtils.getPlayerNameList() : ImmutableList.of(); } } \ No newline at end of file diff --git a/server/src/main/java/dev/plex/command/impl/NameHistoryCMD.java b/server/src/main/java/dev/plex/command/impl/NameHistoryCMD.java index 3a9b2a8..ac20f00 100644 --- a/server/src/main/java/dev/plex/command/impl/NameHistoryCMD.java +++ b/server/src/main/java/dev/plex/command/impl/NameHistoryCMD.java @@ -5,7 +5,7 @@ import com.google.common.collect.Lists; import dev.plex.command.PlexCommand; import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandPermissions; -import dev.plex.rank.enums.Rank; + import dev.plex.util.*; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; @@ -18,7 +18,7 @@ import java.util.Arrays; import java.util.List; @CommandParameters(name = "namehistory", description = "Get the name history of a player", usage = "/ ", aliases = "nh") -@CommandPermissions(level = Rank.OP, permission = "plex.namehistory") +@CommandPermissions(permission = "plex.namehistory") public class NameHistoryCMD extends PlexCommand { @Override diff --git a/server/src/main/java/dev/plex/command/impl/NotesCMD.java b/server/src/main/java/dev/plex/command/impl/NotesCMD.java index b4d9e44..8ced26d 100644 --- a/server/src/main/java/dev/plex/command/impl/NotesCMD.java +++ b/server/src/main/java/dev/plex/command/impl/NotesCMD.java @@ -6,8 +6,7 @@ import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandPermissions; import dev.plex.player.PlexPlayer; import dev.plex.punishment.extra.Note; -import dev.plex.rank.enums.Rank; -import dev.plex.storage.StorageType; + import dev.plex.util.PlexUtils; import dev.plex.util.TimeUtils; import net.kyori.adventure.text.Component; @@ -27,7 +26,7 @@ import java.util.List; import java.util.concurrent.atomic.AtomicReference; @CommandParameters(name = "notes", description = "Manage notes for a player", usage = "/ | remove | clear>") -@CommandPermissions(level = Rank.ADMIN, permission = "plex.notes") +@CommandPermissions(permission = "plex.notes") public class NotesCMD extends PlexCommand { @Override diff --git a/server/src/main/java/dev/plex/command/impl/OpAllCMD.java b/server/src/main/java/dev/plex/command/impl/OpAllCMD.java deleted file mode 100644 index 703c81c..0000000 --- a/server/src/main/java/dev/plex/command/impl/OpAllCMD.java +++ /dev/null @@ -1,31 +0,0 @@ -package dev.plex.command.impl; - -import dev.plex.command.PlexCommand; -import dev.plex.command.annotation.CommandParameters; -import dev.plex.command.annotation.CommandPermissions; -import dev.plex.command.annotation.System; -import dev.plex.rank.enums.Rank; -import dev.plex.util.PlexUtils; -import net.kyori.adventure.text.Component; -import org.bukkit.Bukkit; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -@CommandParameters(name = "opall", description = "Op everyone on the server", aliases = "opa") -@CommandPermissions(level = Rank.ADMIN) -@System(value = "ranks") -public class OpAllCMD extends PlexCommand -{ - @Override - protected Component execute(@NotNull CommandSender sender, @Nullable Player playerSender, String[] args) - { - for (Player player : Bukkit.getOnlinePlayers()) - { - player.setOp(true); - } - PlexUtils.broadcast(messageComponent("oppedAllPlayers", sender.getName())); - return null; - } -} \ No newline at end of file diff --git a/server/src/main/java/dev/plex/command/impl/OpCMD.java b/server/src/main/java/dev/plex/command/impl/OpCMD.java deleted file mode 100644 index bf3625c..0000000 --- a/server/src/main/java/dev/plex/command/impl/OpCMD.java +++ /dev/null @@ -1,41 +0,0 @@ -package dev.plex.command.impl; - -import com.google.common.collect.ImmutableList; -import dev.plex.command.PlexCommand; -import dev.plex.command.annotation.CommandParameters; -import dev.plex.command.annotation.CommandPermissions; -import dev.plex.command.annotation.System; -import dev.plex.rank.enums.Rank; -import dev.plex.util.PlexUtils; -import net.kyori.adventure.text.Component; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.List; - -@CommandParameters(name = "op", description = "Op a player on the server", usage = "/ ") -@CommandPermissions(level = Rank.OP) -@System(value = "ranks") -public class OpCMD extends PlexCommand -{ - @Override - protected Component execute(@NotNull CommandSender sender, @Nullable Player playerSender, String[] args) - { - if (args.length != 1) - { - return usage(); - } - Player player = getNonNullPlayer(args[0]); - player.setOp(true); - PlexUtils.broadcast(messageComponent("oppedPlayer", sender.getName(), player.getName())); - return null; - } - - @Override - public @NotNull List tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException - { - return args.length == 1 ? PlexUtils.getPlayerNameList() : ImmutableList.of(); - } -} \ No newline at end of file diff --git a/server/src/main/java/dev/plex/command/impl/PlexCMD.java b/server/src/main/java/dev/plex/command/impl/PlexCMD.java index 4fb46a5..64a6ddf 100644 --- a/server/src/main/java/dev/plex/command/impl/PlexCMD.java +++ b/server/src/main/java/dev/plex/command/impl/PlexCMD.java @@ -7,7 +7,6 @@ import dev.plex.command.exception.CommandFailException; import dev.plex.command.source.RequiredCommandSource; import dev.plex.module.PlexModule; import dev.plex.module.PlexModuleFile; -import dev.plex.rank.enums.Rank; import dev.plex.util.BuildInfo; import dev.plex.util.PlexUtils; import dev.plex.util.TimeUtils; @@ -25,7 +24,7 @@ import java.util.Collections; import java.util.List; import java.util.stream.Collectors; -@CommandPermissions(level = Rank.IMPOSTOR, source = RequiredCommandSource.ANY) +@CommandPermissions(source = RequiredCommandSource.ANY) @CommandParameters(name = "plex", usage = "/ [reload | redis | modules [reload]]", description = "Show information about Plex or reload it") public class PlexCMD extends PlexCommand { @@ -45,7 +44,7 @@ public class PlexCMD extends PlexCommand } if (args[0].equalsIgnoreCase("reload")) { - checkRank(sender, Rank.SENIOR_ADMIN, "plex.reload"); + checkPermission(sender, "plex.reload"); plugin.config.load(); send(sender, "Reloaded config file"); plugin.messages.load(); @@ -55,10 +54,8 @@ public class PlexCMD extends PlexCommand send(sender, "Reloaded indefinite bans"); plugin.commands.load(); send(sender, "Reloaded blocked commands file"); - plugin.getRankManager().importDefaultRanks(); send(sender, "Imported ranks"); - plugin.setSystem(plugin.config.getString("system")); - if (plugin.getSystem().equalsIgnoreCase("permissions") && !plugin.getServer().getPluginManager().isPluginEnabled("Vault")) + if (!plugin.getServer().getPluginManager().isPluginEnabled("Vault")) { throw new RuntimeException("Vault is required to run on the server if you use permissions!"); } @@ -72,7 +69,7 @@ public class PlexCMD extends PlexCommand } else if (args[0].equalsIgnoreCase("redis")) { - checkRank(sender, Rank.SENIOR_ADMIN, "plex.redis"); + checkPermission(sender, "plex.redis"); if (!plugin.getRedisConnection().isEnabled()) { throw new CommandFailException("&cRedis is not enabled."); @@ -91,7 +88,7 @@ public class PlexCMD extends PlexCommand } if (args[1].equalsIgnoreCase("reload")) { - checkRank(sender, Rank.EXECUTIVE, "plex.modules.reload"); + checkPermission(sender, "plex.modules.reload"); plugin.getModuleManager().reloadModules(); return mmString("All modules reloaded!"); } diff --git a/server/src/main/java/dev/plex/command/impl/PunishmentsCMD.java b/server/src/main/java/dev/plex/command/impl/PunishmentsCMD.java index 43fb5e9..b3e811b 100644 --- a/server/src/main/java/dev/plex/command/impl/PunishmentsCMD.java +++ b/server/src/main/java/dev/plex/command/impl/PunishmentsCMD.java @@ -6,7 +6,7 @@ import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.source.RequiredCommandSource; import dev.plex.menu.PunishmentMenu; -import dev.plex.rank.enums.Rank; + import dev.plex.util.PlexUtils; import net.kyori.adventure.text.Component; import org.bukkit.command.CommandSender; @@ -17,7 +17,7 @@ import org.jetbrains.annotations.Nullable; import java.util.List; @CommandParameters(name = "punishments", usage = "/ [player]", description = "Opens the Punishments GUI", aliases = "punishlist,punishes") -@CommandPermissions(level = Rank.ADMIN, permission = "plex.punishments", source = RequiredCommandSource.IN_GAME) +@CommandPermissions(permission = "plex.punishments", source = RequiredCommandSource.IN_GAME) public class PunishmentsCMD extends PlexCommand { @Override diff --git a/server/src/main/java/dev/plex/command/impl/RankCMD.java b/server/src/main/java/dev/plex/command/impl/RankCMD.java deleted file mode 100644 index e41bad1..0000000 --- a/server/src/main/java/dev/plex/command/impl/RankCMD.java +++ /dev/null @@ -1,58 +0,0 @@ -package dev.plex.command.impl; - -import dev.plex.command.PlexCommand; -import dev.plex.command.annotation.CommandParameters; -import dev.plex.command.annotation.CommandPermissions; -import dev.plex.command.annotation.System; -import dev.plex.command.exception.CommandFailException; -import dev.plex.command.source.RequiredCommandSource; -import dev.plex.rank.enums.Rank; -import dev.plex.util.PlexUtils; -import net.kyori.adventure.text.Component; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.Collections; -import java.util.List; - -@CommandPermissions(level = Rank.OP, permission = "plex.rank", source = RequiredCommandSource.ANY) -@CommandParameters(name = "rank", description = "Displays your rank") -@System(value = "ranks") -public class RankCMD extends PlexCommand -{ - @Override - protected Component execute(@NotNull CommandSender sender, @Nullable Player playerSender, String[] args) - { - if (args.length == 0) - { - if (isConsole(sender)) - { - throw new CommandFailException("When using the console, you must specify a player's rank."); - } - if (!(playerSender == null)) - { - Rank rank = getPlexPlayer(playerSender).getRankFromString(); - return messageComponent("yourRank", rank.isAtLeast(Rank.ADMIN) && !getPlexPlayer(playerSender).isAdminActive() ? (playerSender.isOp() ? Rank.OP.getReadable() : Rank.NONOP.getReadable()) : rank.getReadable()); - } - } - else - { - Player player = getNonNullPlayer(args[0]); - Rank rank = getPlexPlayer(player).getRankFromString(); - return messageComponent("otherRank", player.getName(), rank.isAtLeast(Rank.ADMIN) && !getPlexPlayer(player).isAdminActive() ? (player.isOp() ? Rank.OP.getReadable() : Rank.NONOP.getReadable()) : rank.getReadable()); - } - return null; - } - - @Override - public @NotNull List tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException - { - if (args.length == 1) - { - return PlexUtils.getPlayerNameList(); - } - return Collections.emptyList(); - } -} \ No newline at end of file diff --git a/server/src/main/java/dev/plex/command/impl/RawSayCMD.java b/server/src/main/java/dev/plex/command/impl/RawSayCMD.java index 5d356be..38118cd 100644 --- a/server/src/main/java/dev/plex/command/impl/RawSayCMD.java +++ b/server/src/main/java/dev/plex/command/impl/RawSayCMD.java @@ -4,7 +4,7 @@ import dev.plex.command.PlexCommand; import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.source.RequiredCommandSource; -import dev.plex.rank.enums.Rank; + import dev.plex.util.PlexUtils; import net.kyori.adventure.text.Component; import org.apache.commons.lang3.StringUtils; @@ -13,7 +13,7 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -@CommandPermissions(level = Rank.SENIOR_ADMIN, permission = "plex.rawsay", source = RequiredCommandSource.ANY) +@CommandPermissions(permission = "plex.rawsay", source = RequiredCommandSource.ANY) @CommandParameters(name = "rawsay", usage = "/ ", description = "Displays a raw message to everyone") public class RawSayCMD extends PlexCommand { diff --git a/server/src/main/java/dev/plex/command/impl/RemoveLoginMessageCMD.java b/server/src/main/java/dev/plex/command/impl/RemoveLoginMessageCMD.java index 1d47c44..b9095fd 100644 --- a/server/src/main/java/dev/plex/command/impl/RemoveLoginMessageCMD.java +++ b/server/src/main/java/dev/plex/command/impl/RemoveLoginMessageCMD.java @@ -6,14 +6,13 @@ import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.source.RequiredCommandSource; import dev.plex.player.PlexPlayer; -import dev.plex.rank.enums.Rank; import net.kyori.adventure.text.Component; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -@CommandPermissions(level = Rank.ADMIN, permission = "plex.removeloginmessage", source = RequiredCommandSource.ANY) +@CommandPermissions(permission = "plex.removeloginmessage", source = RequiredCommandSource.ANY) @CommandParameters(name = "removeloginmessage", usage = "/ [-o ]", description = "Remove your own (or someone else's) login message", aliases = "rlm,removeloginmsg") public class RemoveLoginMessageCMD extends PlexCommand { @@ -31,7 +30,7 @@ public class RemoveLoginMessageCMD extends PlexCommand } else if (args[0].equalsIgnoreCase("-o")) { - checkRank(sender, Rank.SENIOR_ADMIN, "plex.removeloginmessage.others"); + checkPermission(sender, "plex.removeloginmessage.others"); if (args.length < 2) { diff --git a/server/src/main/java/dev/plex/command/impl/SayCMD.java b/server/src/main/java/dev/plex/command/impl/SayCMD.java index 29a1573..37390dd 100644 --- a/server/src/main/java/dev/plex/command/impl/SayCMD.java +++ b/server/src/main/java/dev/plex/command/impl/SayCMD.java @@ -4,7 +4,7 @@ import dev.plex.command.PlexCommand; import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.source.RequiredCommandSource; -import dev.plex.rank.enums.Rank; + import dev.plex.util.PlexUtils; import net.kyori.adventure.text.Component; import org.apache.commons.lang3.StringUtils; @@ -13,7 +13,7 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -@CommandPermissions(level = Rank.ADMIN, permission = "plex.say", source = RequiredCommandSource.ANY) +@CommandPermissions(permission = "plex.say", source = RequiredCommandSource.ANY) @CommandParameters(name = "say", usage = "/ ", description = "Displays a message to everyone") public class SayCMD extends PlexCommand { diff --git a/server/src/main/java/dev/plex/command/impl/SetLoginMessageCMD.java b/server/src/main/java/dev/plex/command/impl/SetLoginMessageCMD.java index 57f3e56..d2b28d5 100644 --- a/server/src/main/java/dev/plex/command/impl/SetLoginMessageCMD.java +++ b/server/src/main/java/dev/plex/command/impl/SetLoginMessageCMD.java @@ -7,7 +7,6 @@ import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.exception.CommandFailException; import dev.plex.command.source.RequiredCommandSource; import dev.plex.player.PlexPlayer; -import dev.plex.rank.enums.Rank; import dev.plex.util.PlexLog; import net.kyori.adventure.text.Component; import org.apache.commons.lang3.StringUtils; @@ -16,7 +15,7 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -@CommandPermissions(level = Rank.ADMIN, permission = "plex.setloginmessage", source = RequiredCommandSource.ANY) +@CommandPermissions(permission = "plex.setloginmessage", source = RequiredCommandSource.ANY) @CommandParameters(name = "setloginmessage", usage = "/ [-o ] ", description = "Sets your (or someone else's) login message", aliases = "slm,setloginmsg") public class SetLoginMessageCMD extends PlexCommand { @@ -34,7 +33,7 @@ public class SetLoginMessageCMD extends PlexCommand { if (args[0].equals("-o")) { - checkRank(sender, Rank.SENIOR_ADMIN, "plex.setloginmessage.others"); + checkPermission(sender, "plex.setloginmessage.others"); if (args.length < 2) { @@ -80,10 +79,5 @@ public class SetLoginMessageCMD extends PlexCommand PlexLog.debug("Validating login message has a valid name in it"); throw new CommandFailException(messageString("nameRequired")); } - if (plugin.getSystem().equalsIgnoreCase("ranks") && rankRequired && !message.contains("%rank%")) - { - PlexLog.debug("Validating login message has a valid rank in it"); - throw new CommandFailException(messageString("rankRequired")); - } } } \ No newline at end of file diff --git a/server/src/main/java/dev/plex/command/impl/SmiteCMD.java b/server/src/main/java/dev/plex/command/impl/SmiteCMD.java index 196e917..d92152d 100644 --- a/server/src/main/java/dev/plex/command/impl/SmiteCMD.java +++ b/server/src/main/java/dev/plex/command/impl/SmiteCMD.java @@ -7,7 +7,7 @@ import dev.plex.command.source.RequiredCommandSource; import dev.plex.player.PlexPlayer; import dev.plex.punishment.Punishment; import dev.plex.punishment.PunishmentType; -import dev.plex.rank.enums.Rank; + import dev.plex.util.PlexUtils; import dev.plex.util.TimeUtils; import net.kyori.adventure.text.Component; @@ -28,7 +28,7 @@ import java.time.ZonedDateTime; import java.util.Collections; import java.util.List; -@CommandPermissions(level = Rank.ADMIN, permission = "plex.smite", source = RequiredCommandSource.ANY) +@CommandPermissions(permission = "plex.smite", source = RequiredCommandSource.ANY) @CommandParameters(name = "smite", usage = "/ [reason] [-ci | -q]", description = "Someone being a little bitch? Smite them down...") public class SmiteCMD extends PlexCommand { @@ -96,12 +96,6 @@ public class SmiteCMD extends PlexCommand send(sender, "Smitten " + player.getName() + " quietly."); } - // Deop - if (plugin.getSystem().equalsIgnoreCase("ranks")) - { - player.setOp(false); - } - // Set gamemode to survival player.setGameMode(GameMode.SURVIVAL); @@ -144,7 +138,7 @@ public class SmiteCMD extends PlexCommand @Override public @NotNull List tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException { - if (silentCheckRank(sender, Rank.ADMIN, "plex.smite") && args.length == 1) + if (silentCheckPermission(sender,"plex.smite") && args.length == 1) { return PlexUtils.getPlayerNameList(); } diff --git a/server/src/main/java/dev/plex/command/impl/SpectatorCMD.java b/server/src/main/java/dev/plex/command/impl/SpectatorCMD.java index ea3fbd5..a2f3036 100644 --- a/server/src/main/java/dev/plex/command/impl/SpectatorCMD.java +++ b/server/src/main/java/dev/plex/command/impl/SpectatorCMD.java @@ -7,7 +7,7 @@ import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.exception.CommandFailException; import dev.plex.command.source.RequiredCommandSource; import dev.plex.event.GameModeUpdateEvent; -import dev.plex.rank.enums.Rank; + import dev.plex.util.PlexUtils; import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; @@ -19,7 +19,7 @@ import org.jetbrains.annotations.Nullable; import java.util.List; -@CommandPermissions(level = Rank.ADMIN, permission = "plex.gamemode.spectator", source = RequiredCommandSource.ANY) +@CommandPermissions(permission = "plex.gamemode.spectator", source = RequiredCommandSource.ANY) @CommandParameters(name = "spectator", aliases = "gmsp,egmsp,spec", description = "Set your own or another player's gamemode to spectator mode") public class SpectatorCMD extends PlexCommand { @@ -36,7 +36,7 @@ public class SpectatorCMD extends PlexCommand return null; } - if (checkRank(sender, Rank.ADMIN, "plex.gamemode.spectator.others")) + if (checkPermission(sender,"plex.gamemode.spectator.others")) { if (args[0].equals("-a")) { @@ -58,7 +58,7 @@ public class SpectatorCMD extends PlexCommand @Override public @NotNull List tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException { - if (silentCheckRank(sender, Rank.ADMIN, "plex.gamemode.spectator.others")) + if (silentCheckPermission(sender,"plex.gamemode.spectator.others")) { return PlexUtils.getPlayerNameList(); } diff --git a/server/src/main/java/dev/plex/command/impl/SurvivalCMD.java b/server/src/main/java/dev/plex/command/impl/SurvivalCMD.java index 33e420d..e918001 100644 --- a/server/src/main/java/dev/plex/command/impl/SurvivalCMD.java +++ b/server/src/main/java/dev/plex/command/impl/SurvivalCMD.java @@ -7,7 +7,7 @@ import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.exception.CommandFailException; import dev.plex.command.source.RequiredCommandSource; import dev.plex.event.GameModeUpdateEvent; -import dev.plex.rank.enums.Rank; + import dev.plex.util.PlexUtils; import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; @@ -19,7 +19,7 @@ import org.jetbrains.annotations.Nullable; import java.util.List; -@CommandPermissions(level = Rank.OP, permission = "plex.gamemode.survival", source = RequiredCommandSource.ANY) +@CommandPermissions(permission = "plex.gamemode.survival", source = RequiredCommandSource.ANY) @CommandParameters(name = "survival", aliases = "gms,egms,esurvival,survivalmode,esurvivalmode", description = "Set your own or another player's gamemode to survival mode") public class SurvivalCMD extends PlexCommand { @@ -36,7 +36,7 @@ public class SurvivalCMD extends PlexCommand return null; } - if (checkRank(sender, Rank.ADMIN, "plex.gamemode.survival.others")) + if (checkPermission(sender,"plex.gamemode.survival.others")) { if (args[0].equals("-a")) { @@ -59,7 +59,7 @@ public class SurvivalCMD extends PlexCommand @Override public @NotNull List tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) throws IllegalArgumentException { - if (silentCheckRank(sender, Rank.ADMIN, "plex.gamemode.survival.others")) + if (silentCheckPermission(sender,"plex.gamemode.survival.others")) { return PlexUtils.getPlayerNameList(); } diff --git a/server/src/main/java/dev/plex/command/impl/TFMCMD.java b/server/src/main/java/dev/plex/command/impl/TFMCMD.java deleted file mode 100644 index 298d1fc..0000000 --- a/server/src/main/java/dev/plex/command/impl/TFMCMD.java +++ /dev/null @@ -1,47 +0,0 @@ -package dev.plex.command.impl; - -import com.google.common.base.Splitter; -import dev.plex.command.PlexCommand; -import dev.plex.command.annotation.CommandParameters; -import dev.plex.command.annotation.CommandPermissions; -import dev.plex.command.source.RequiredCommandSource; -import dev.plex.rank.enums.Rank; -import dev.plex.util.PlexUtils; -import net.kyori.adventure.inventory.Book; -import net.kyori.adventure.text.Component; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.ArrayList; -import java.util.List; - -@CommandParameters(name = "totalfreedommod", description = "You can't simpy do that.", aliases = "tfm") -@CommandPermissions(level = Rank.OP, source = RequiredCommandSource.ANY) - -public class TFMCMD extends PlexCommand -{ - @Override - protected Component execute(@NotNull CommandSender sender, @Nullable Player playerSender, @NotNull String[] args) - { - if (playerSender != null) - { - String simpy = "It's not about credit or discredit, it's about copyright of TFM. Looking at Plex's source code, it looks like a bunch of copy-pasted source code from TFM and Aero (utility plugin). You just put it under a different license and pretended it's yours. You can't simpy do that. You have to remove all parts which infringe on the TFM license (as per the TFM repository) and the Aero License (as per the Aero repository) or otherwise comply to the license requirements."; - List pages = Splitter.fixedLength(256).splitToList(simpy); - List pageComponents = new ArrayList<>(); - - for (String page : pages) - { - pageComponents.add(PlexUtils.mmDeserialize("" + page + "")); - } - - playerSender.openBook(Book.builder() - .title(Component.text("TFM License")) - .author(Component.text("Prozza")) - .pages(pageComponents)); - } - - return PlexUtils.mmDeserialize("It's not about credit or discredit, it's about copyright of TFM.
Looking at Plex's source code, it looks like a bunch of copy-pasted source code from TFM and Aero (utility plugin). You just put it under a different license and pretended it's yours.
You can't simpy do that. You have to remove all parts which infringe on the TFM license (as per the TFM repository) and the Aero License (as per the Aero repository) or otherwise comply to the license requirements.
"); - } -} diff --git a/server/src/main/java/dev/plex/command/impl/TagCMD.java b/server/src/main/java/dev/plex/command/impl/TagCMD.java index f99851f..ce9f654 100644 --- a/server/src/main/java/dev/plex/command/impl/TagCMD.java +++ b/server/src/main/java/dev/plex/command/impl/TagCMD.java @@ -6,7 +6,7 @@ import dev.plex.command.annotation.CommandParameters; import dev.plex.command.annotation.CommandPermissions; import dev.plex.command.source.RequiredCommandSource; import dev.plex.player.PlexPlayer; -import dev.plex.rank.enums.Rank; + import dev.plex.util.PlexUtils; import dev.plex.util.minimessage.SafeMiniMessage; import net.kyori.adventure.text.Component; @@ -19,7 +19,7 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -@CommandPermissions(level = Rank.OP, permission = "plex.tag", source = RequiredCommandSource.ANY) +@CommandPermissions(permission = "plex.tag", source = RequiredCommandSource.ANY) @CommandParameters(name = "tag", aliases = "prefix", description = "Set or clear your prefix", usage = "/ | clear >") public class TagCMD extends PlexCommand { @@ -80,7 +80,7 @@ public class TagCMD extends PlexCommand DataUtils.update(player); return messageComponent("prefixCleared"); } - checkRank(sender, Rank.ADMIN, "plex.tag.clear.others"); + checkPermission(sender,"plex.tag.clear.others"); Player target = getNonNullPlayer(args[1]); PlexPlayer plexTarget = DataUtils.getPlayer(target.getUniqueId()); plexTarget.setPrefix(null); diff --git a/server/src/main/java/dev/plex/command/impl/TempbanCMD.java b/server/src/main/java/dev/plex/command/impl/TempbanCMD.java index bbae502..cf3c192 100644 --- a/server/src/main/java/dev/plex/command/impl/TempbanCMD.java +++ b/server/src/main/java/dev/plex/command/impl/TempbanCMD.java @@ -10,7 +10,7 @@ import dev.plex.command.source.RequiredCommandSource; import dev.plex.player.PlexPlayer; import dev.plex.punishment.Punishment; import dev.plex.punishment.PunishmentType; -import dev.plex.rank.enums.Rank; + import dev.plex.util.BungeeUtil; import dev.plex.util.PlexUtils; import dev.plex.util.TimeUtils; @@ -27,7 +27,7 @@ import java.util.List; import java.util.UUID; @CommandParameters(name = "tempban", usage = "/