From bb4f8d1fc67183c34d6bf8933abb7d2f52ed4b5e Mon Sep 17 00:00:00 2001 From: speed <43330808+speedxx@users.noreply.github.com> Date: Mon, 3 Aug 2020 13:50:44 -0400 Subject: [PATCH 01/54] replace private constructors & new attribute names --- .../command/Command_modifyitem.java | 46 ++++++++++--------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_modifyitem.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_modifyitem.java index 75d81ba9..9002dccd 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_modifyitem.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_modifyitem.java @@ -5,11 +5,14 @@ import java.util.List; import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.util.FUtil; import net.minecraft.server.v1_16_R1.NBTTagCompound; +import net.minecraft.server.v1_16_R1.NBTTagInt; import net.minecraft.server.v1_16_R1.NBTTagList; +import net.minecraft.server.v1_16_R1.NBTTagString; import org.apache.commons.lang.StringUtils; import org.bukkit.Material; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; +import org.bukkit.craftbukkit.v1_16_R1.inventory.CraftItemStack; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; @@ -141,13 +144,13 @@ public class Command_modifyitem extends FreedomCommand item.setItemMeta(potionMeta); break; } - // TODO: Fix code here bc 1.15 made some things private for some reason - /*case "attribute": + + case "attribute": if (args.length < 3) { return false; } - net.minecraft.server.v1_15_R1.ItemStack nmsStack = CraftItemStack.asNMSCopy(item); + net.minecraft.server.v1_16_R1.ItemStack nmsStack = CraftItemStack.asNMSCopy(item); NBTTagCompound compound = (nmsStack.hasTag()) ? nmsStack.getTag() : new NBTTagCompound(); NBTTagList modifiers = getAttributeList(nmsStack); NBTTagCompound cmpnd = new NBTTagCompound(); @@ -157,8 +160,8 @@ public class Command_modifyitem extends FreedomCommand msg("Invalid attribute. Please run /attributelist for a list of valid attributes."); return true; } - cmpnd.set("AttributeName", new NBTTagString(attribute.getAttribute())); - cmpnd.set("Name", new NBTTagString(attribute.getAttribute())); + cmpnd.set("AttributeName", NBTTagString.a(attribute.getAttribute())); + cmpnd.set("Name", NBTTagString.a(attribute.getAttribute())); int amount; try { @@ -169,16 +172,16 @@ public class Command_modifyitem extends FreedomCommand msg("The amount specified is not a valid integer."); return true; } - cmpnd.set("Amount", new NBTTagInt(amount)); - cmpnd.set("Operation", new NBTTagInt(0)); - cmpnd.set("UUIDLeast", new NBTTagInt(894654)); - cmpnd.set("UUIDMost", new NBTTagInt(2872)); - cmpnd.set("Slot", new NBTTagString("mainhand")); + cmpnd.set("Amount", NBTTagInt.a(amount)); + cmpnd.set("Operation", NBTTagInt.a(0)); + cmpnd.set("UUIDLeast", NBTTagInt.a(894654)); + cmpnd.set("UUIDMost", NBTTagInt.a(2872)); + cmpnd.set("Slot", NBTTagString.a("mainhand")); modifiers.add(cmpnd); compound.set("AttributeModifiers", modifiers); nmsStack.setTag(compound); item = CraftItemStack.asBukkitCopy(nmsStack); - break;*/ + break; default: return false; } @@ -200,21 +203,20 @@ public class Command_modifyitem extends FreedomCommand return stack.getTag().getList("AttributeModifiers", 10); } - private enum Attribute { - GENERIC_MAX_HEALTH("GENERIC_MAX_HEALTH", "generic.maxHealth"), - GENERIC_FOLLOW_RANGE("GENERIC_FOLLOW_RANGE", "generic.followRange"), - GENERIC_KNOCKBACK_RESISTANCE("GENERIC_KNOCKBACK_RESISTANCE", "generic.knockbackResistance"), - GENERIC_MOVEMENT_SPEED("GENERIC_MOVEMENT_SPEED", "generic.movementSpeed"), - GENERIC_FLYING_SPEED("GENERIC_FLYING_SPEED", "generic.flyingSpeed"), - GENERIC_ATTACK_DAMAGE("GENERIC_ATTACK_DAMAGE", "generic.attackDamage"), - GENERIC_ATTACK_SPEED("GENERIC_ATTACK_SPEED", "generic.attackSpeed"), + GENERIC_MAX_HEALTH("GENERIC_MAX_HEALTH", "generic.max_health"), + GENERIC_FOLLOW_RANGE("GENERIC_FOLLOW_RANGE", "generic.follow_range"), + GENERIC_KNOCKBACK_RESISTANCE("GENERIC_KNOCKBACK_RESISTANCE", "generic.knockback_resistance"), + GENERIC_MOVEMENT_SPEED("GENERIC_MOVEMENT_SPEED", "generic.movement_speed"), + GENERIC_FLYING_SPEED("GENERIC_FLYING_SPEED", "generic.flying_speed"), + GENERIC_ATTACK_DAMAGE("GENERIC_ATTACK_DAMAGE", "generic.attack_damage"), + GENERIC_ATTACK_SPEED("GENERIC_ATTACK_SPEED", "generic.attack_speed"), GENERIC_ARMOR("GENERIC_ARMOR", "generic.armor"), - GENERIC_ARMOR_TOUGHNESS("GENERIC_ARMOR_TOUGHNESS", "generic.armorToughmess"), + GENERIC_ARMOR_TOUGHNESS("GENERIC_ARMOR_TOUGHNESS", "generic.armor_toughmess"), GENERIC_LUCK("GENERIC_LUCK", "generic.luck"), - HORSE_JUMP_STRENGTH("GENERIC_MAX_HEALTH", "horse.JumpStrength"), - ZOMBIE_SPAWN_REINFORCEMENTS("ZOMBIE_SPAWN_REINFORCEMENTS", "zombie.SpawnReinforcements"); + HORSE_JUMP_STRENGTH("GENERIC_MAX_HEALTH", "horse.jump_strength"), + ZOMBIE_SPAWN_REINFORCEMENTS("ZOMBIE_SPAWN_REINFORCEMENTS", "zombie.spawn_reinforcements"); private final String name; private final String attribute; From 3f942613d7fb6ffa11e619558d69a3e9f0da6efe Mon Sep 17 00:00:00 2001 From: speed <43330808+speedxx@users.noreply.github.com> Date: Mon, 3 Aug 2020 13:52:49 -0400 Subject: [PATCH 02/54] add missing mobs here too why not --- .../java/me/totalfreedom/totalfreedommod/util/Groups.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/util/Groups.java b/src/main/java/me/totalfreedom/totalfreedommod/util/Groups.java index bef6a17c..5428f1b8 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/util/Groups.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/util/Groups.java @@ -69,6 +69,8 @@ public class Groups EntityType.HOGLIN, EntityType.HORSE, EntityType.HUSK, + EntityType.ILLUSIONER, + EntityType.IRON_GOLEM, EntityType.LLAMA, EntityType.MAGMA_CUBE, EntityType.MUSHROOM_COW, @@ -78,6 +80,7 @@ public class Groups EntityType.PARROT, EntityType.PHANTOM, EntityType.PIG, + EntityType.PIGLIN, EntityType.PILLAGER, EntityType.POLAR_BEAR, EntityType.PUFFERFISH, @@ -90,6 +93,7 @@ public class Groups EntityType.SKELETON, EntityType.SKELETON_HORSE, EntityType.SLIME, + EntityType.SNOWMAN, EntityType.SPIDER, EntityType.SQUID, EntityType.STRAY, From ae57573eeb218ab97d88d057c564e5672e109d2e Mon Sep 17 00:00:00 2001 From: Nathan Curran <30569566+Focusvity@users.noreply.github.com> Date: Tue, 4 Aug 2020 11:39:59 +1000 Subject: [PATCH 03/54] Fixed modifyitem command --- .../command/Command_modifyitem.java | 30 +++++++++++++------ 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_modifyitem.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_modifyitem.java index 9002dccd..2e094a38 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_modifyitem.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_modifyitem.java @@ -2,6 +2,7 @@ package me.totalfreedom.totalfreedommod.command; import java.util.ArrayList; import java.util.List; +import java.util.Random; import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.util.FUtil; import net.minecraft.server.v1_16_R1.NBTTagCompound; @@ -160,23 +161,34 @@ public class Command_modifyitem extends FreedomCommand msg("Invalid attribute. Please run /attributelist for a list of valid attributes."); return true; } - cmpnd.set("AttributeName", NBTTagString.a(attribute.getAttribute())); - cmpnd.set("Name", NBTTagString.a(attribute.getAttribute())); - int amount; + cmpnd.setString("AttributeName", attribute.getAttribute()); + cmpnd.setString("Name", attribute.getAttribute()); + double amount; try { - amount = Integer.parseInt(args[2]); + amount = Double.parseDouble(args[2]); } catch (NumberFormatException ex) { msg("The amount specified is not a valid integer."); return true; } - cmpnd.set("Amount", NBTTagInt.a(amount)); - cmpnd.set("Operation", NBTTagInt.a(0)); - cmpnd.set("UUIDLeast", NBTTagInt.a(894654)); - cmpnd.set("UUIDMost", NBTTagInt.a(2872)); - cmpnd.set("Slot", NBTTagString.a("mainhand")); + if (Double.isNaN(amount)) + { + msg("The amount specified is illegal."); + return true; + } + cmpnd.setDouble("Amount", amount); + cmpnd.setInt("Operation", 0); + Random random = new Random(); + cmpnd.setIntArray("UUID", new int[] + { + random.nextInt(), + random.nextInt(), + random.nextInt(), + random.nextInt() + }); + cmpnd.setString("Slot", "mainhand"); modifiers.add(cmpnd); compound.set("AttributeModifiers", modifiers); nmsStack.setTag(compound); From c826afe399f75b690e8d029cc993817f2fbcada0 Mon Sep 17 00:00:00 2001 From: Nathan Curran <30569566+Focusvity@users.noreply.github.com> Date: Tue, 4 Aug 2020 11:44:01 +1000 Subject: [PATCH 04/54] Removed some imports --- .../totalfreedommod/command/Command_modifyitem.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_modifyitem.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_modifyitem.java index 2e094a38..96b9ebc6 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_modifyitem.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_modifyitem.java @@ -6,9 +6,7 @@ import java.util.Random; import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.util.FUtil; import net.minecraft.server.v1_16_R1.NBTTagCompound; -import net.minecraft.server.v1_16_R1.NBTTagInt; import net.minecraft.server.v1_16_R1.NBTTagList; -import net.minecraft.server.v1_16_R1.NBTTagString; import org.apache.commons.lang.StringUtils; import org.bukkit.Material; import org.bukkit.command.Command; From 4555a7e3f2d44c448f77bfca62bd542cb5af8016 Mon Sep 17 00:00:00 2001 From: Telesphoreo Date: Tue, 4 Aug 2020 01:31:26 -0500 Subject: [PATCH 05/54] [WIP / DO NOT USE ON PRODUCTION!!] Begin implementing support for SuperVanish and fix bugs - Update dependencies in pom.xml - Replace TotalFreedomMod's vanish system with SuperVanish. It's widely supported by many major plugins and does a better job vanishing players - Fixed a typo in the SQL command for creating admin tables, where the table would not be created on a clean install of TFM - Update bStats Metrics to latest version - Remove the VanishHandler - Sync the permissions.yml from whats on the server. Entries for Essentials and SuperVanish will be added soon KNOWN BUG: - Plugins override TFM commands (e.g. Essentials takes over /list instead of giving it to TFM). I noticed that there is a semicolon before every TFM command. (:/ban, :/list), which is the actual TFM command. I have no idea where / how this bug came from. Urgently needs to be fixed. --- pom.xml | 17 +- .../totalfreedommod/TotalFreedomMod.java | 25 +- .../totalfreedommod/VanishHandler.java | 83 ----- .../totalfreedommod/admin/AdminList.java | 7 +- .../totalfreedommod/bridge/VanishBridge.java | 48 +++ .../totalfreedommod/command/Command_ban.java | 1 - .../totalfreedommod/command/Command_deop.java | 4 +- .../command/Command_invis.java | 2 +- .../totalfreedommod/command/Command_list.java | 11 +- .../command/Command_nickfilter.java | 4 +- .../totalfreedommod/command/Command_op.java | 2 +- .../command/Command_potion.java | 2 +- .../totalfreedommod/command/Command_tag.java | 2 +- .../command/Command_vanish.java | 120 ------- .../command/Command_whohas.java | 2 +- .../command/FreedomCommand.java | 2 +- .../totalfreedommod/discord/Discord.java | 4 +- .../httpd/module/Module_list.java | 4 +- .../httpd/module/Module_players.java | 2 +- .../totalfreedommod/rank/RankManager.java | 2 +- .../totalfreedommod/sql/SQLite.java | 2 +- .../totalfreedommod/util/FUtil.java | 2 +- src/main/java/org/bstats/Metrics.java | 294 +++++++++++------- src/main/resources/permissions.yml | 31 +- src/main/resources/plugin.yml | 2 +- 25 files changed, 297 insertions(+), 378 deletions(-) delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/VanishHandler.java create mode 100644 src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/command/Command_vanish.java diff --git a/pom.xml b/pom.xml index 39d73362..9f71f1e1 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ me.totalfreedom TotalFreedomMod - 5.6 + 2020.9 jar @@ -117,14 +117,14 @@ commons-io commons-io - 2.6 + 2.7 compile org.apache.commons commons-lang3 - 3.9 + 3.11 compile @@ -135,6 +135,13 @@ compile + + com.github.MyzelYam + SuperVanish + 6.1.8 + provided + + org.spigotmc spigot @@ -179,14 +186,14 @@ net.coreprotect coreprotect - 2.16.3 + 2.18.2 provided com.sk89q.worldguard worldguard-bukkit - 7.0.2 + 7.0.3 provided diff --git a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java index c14763a0..692f29d9 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java @@ -3,7 +3,6 @@ package me.totalfreedom.totalfreedommod; import java.io.File; import java.io.InputStream; import java.util.Properties; -import java.util.Set; import me.totalfreedom.totalfreedommod.admin.ActivityLog; import me.totalfreedom.totalfreedommod.admin.AdminList; import me.totalfreedom.totalfreedommod.banning.BanManager; @@ -23,11 +22,11 @@ import me.totalfreedom.totalfreedommod.bridge.EssentialsBridge; import me.totalfreedom.totalfreedommod.bridge.FAWEBridge; import me.totalfreedom.totalfreedommod.bridge.LibsDisguisesBridge; import me.totalfreedom.totalfreedommod.bridge.TFGuildsBridge; +import me.totalfreedom.totalfreedommod.bridge.VanishBridge; import me.totalfreedom.totalfreedommod.bridge.WorldEditBridge; import me.totalfreedom.totalfreedommod.bridge.WorldGuardBridge; import me.totalfreedom.totalfreedommod.caging.Cager; import me.totalfreedom.totalfreedommod.command.CommandLoader; -import me.totalfreedom.totalfreedommod.command.FreedomCommand; import me.totalfreedom.totalfreedommod.config.MainConfig; import me.totalfreedom.totalfreedommod.discord.Discord; import me.totalfreedom.totalfreedommod.freeze.Freezer; @@ -58,16 +57,17 @@ import org.bukkit.generator.ChunkGenerator; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.scheduler.BukkitRunnable; -import org.reflections.Reflections; import org.spigotmc.SpigotConfig; public class TotalFreedomMod extends JavaPlugin { private static TotalFreedomMod plugin; + public static TotalFreedomMod getPlugin() { return plugin; } + public static final String CONFIG_FILENAME = "config.yml"; // public static final BuildProperties build = new BuildProperties(); @@ -136,7 +136,7 @@ public class TotalFreedomMod extends JavaPlugin public SignBlocker snp; public EntityWiper ew; public Sitter st; - public VanishHandler vh; + public VanishBridge vb; //public HubWorldRestrictions hwr; // @@ -185,17 +185,17 @@ public class TotalFreedomMod extends JavaPlugin config = new MainConfig(); config.load(); + if (FUtil.inDeveloperMode()) + { + FLog.debug("Developer mode enabled."); + } + cl = new CommandLoader(); cl.loadCommands(); BackupManager backups = new BackupManager(); backups.createAllBackups(); - if (FUtil.inDeveloperMode()) - { - FLog.debug("Developer mode enabled."); - } - permissions = new PermissionConfig(this); permissions.load(); @@ -233,7 +233,7 @@ public class TotalFreedomMod extends JavaPlugin snp = new SignBlocker(); ew = new EntityWiper(); st = new Sitter(); - vh = new VanishHandler(); + vb = new VanishBridge(); // Single admin utils cs = new CommandSpy(); @@ -281,8 +281,8 @@ public class TotalFreedomMod extends JavaPlugin timer.update(); FLog.info("Version " + pluginVersion + " for " + ServerInterface.COMPILE_NMS_VERSION + " enabled in " + timer.getTotal() + "ms"); - // Metrics @ https://bstats.org/plugin/bukkit/TotalFreedomMod - new Metrics(this); + // Metrics @ https://bstats.org/plugin/bukkit/TotalFreedomMod/2966 + new Metrics(this, 2966); // Add spawnpoints later - https://github.com/TotalFreedom/TotalFreedomMod/issues/438 new BukkitRunnable() @@ -313,7 +313,6 @@ public class TotalFreedomMod extends JavaPlugin public static class BuildProperties { - public String author; public String codename; public String version; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/VanishHandler.java b/src/main/java/me/totalfreedom/totalfreedommod/VanishHandler.java deleted file mode 100644 index 7d1e586d..00000000 --- a/src/main/java/me/totalfreedom/totalfreedommod/VanishHandler.java +++ /dev/null @@ -1,83 +0,0 @@ -package me.totalfreedom.totalfreedommod; - -import me.totalfreedom.totalfreedommod.util.FLog; -import net.md_5.bungee.api.ChatMessageType; -import net.md_5.bungee.api.chat.TextComponent; -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.scheduler.BukkitRunnable; - -public class VanishHandler extends FreedomService -{ - - @Override - public void onStart() - { - } - - @Override - public void onStop() - { - } - - @EventHandler(priority = EventPriority.HIGH) - public void onPlayerJoin(PlayerJoinEvent event) - { - Player player = event.getPlayer(); - - for (Player p : server.getOnlinePlayers()) - { - if (!plugin.al.isAdmin(player) && plugin.al.isVanished(p.getName())) - { - player.hidePlayer(plugin, p); - } - } - - for (Player p : server.getOnlinePlayers()) - { - if (!plugin.al.isAdmin(p) && plugin.al.isVanished(player.getName())) - { - p.hidePlayer(plugin, player); - } - } - - if (plugin.al.isVanished(player.getName())) - { - plugin.esb.setVanished(player.getName(), true); - FLog.info(player.getName() + " joined while still vanished."); - plugin.al.messageAllAdmins(ChatColor.YELLOW + player.getName() + " has joined silently."); - event.setJoinMessage(null); - - new BukkitRunnable() - { - @Override - public void run() - { - if (!plugin.al.isVanished(player.getName())) - { - this.cancel(); - } - - player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(ChatColor.GOLD + "You are hidden from other players.")); - } - }.runTaskTimer(plugin, 0L, 4L); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - Player player = event.getPlayer(); - - if (plugin.al.isVanished(player.getName())) - { - event.setQuitMessage(null); - FLog.info(player.getName() + " left while still vanished."); - plugin.al.messageAllAdmins(ChatColor.YELLOW + player.getName() + " has left silently."); - } - } -} \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java b/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java index 8d2f5b54..c9fcc5a3 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java @@ -2,6 +2,7 @@ package me.totalfreedom.totalfreedommod.admin; import com.google.common.collect.Maps; import com.google.common.collect.Sets; +import de.myzelyam.api.vanish.VanishAPI; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; @@ -19,6 +20,7 @@ import me.totalfreedom.totalfreedommod.util.FUtil; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import org.bukkit.metadata.MetadataValue; public class AdminList extends FreedomService { @@ -31,7 +33,6 @@ public class AdminList extends FreedomService private final Map ipTable = Maps.newHashMap(); public final List verifiedNoAdmins = new ArrayList<>(); public final Map> verifiedNoAdminIps = Maps.newHashMap(); - public static List vanished = new ArrayList<>(); @Override public void onStart() @@ -363,8 +364,8 @@ public class AdminList extends FreedomService updateTables(); } - public boolean isVanished(String player) + public boolean isVanished(Player player) { - return vanished.contains(player); + return VanishAPI.isInvisible(player); } } \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java b/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java new file mode 100644 index 00000000..e96fbc7c --- /dev/null +++ b/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java @@ -0,0 +1,48 @@ +package me.totalfreedom.totalfreedommod.bridge; + +import de.myzelyam.api.vanish.PlayerHideEvent; +import de.myzelyam.api.vanish.PlayerShowEvent; +import me.totalfreedom.totalfreedommod.FreedomService; +import me.totalfreedom.totalfreedommod.player.PlayerData; +import me.totalfreedom.totalfreedommod.rank.Displayable; +import me.totalfreedom.totalfreedommod.util.FUtil; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; + +public class VanishBridge extends FreedomService +{ + @Override + public void onStart() + { + } + + @Override + public void onStop() + { + } + + @EventHandler(priority = EventPriority.HIGH) + public void onPlayerUnvanish(PlayerShowEvent event) + { + Player player = event.getPlayer(); + Displayable display = plugin.rm.getDisplay(player); + String tag = display.getColoredTag(); + + FUtil.bcastMsg(plugin.rm.craftLoginMessage(event.getPlayer(), null)); + plugin.dc.messageChatChannel("**" + player.getName() + " joined the server" + "**"); + PlayerData playerData = plugin.pl.getData(player); + if (playerData.getTag() != null) + { + tag = FUtil.colorize(playerData.getTag()); + } + playerData.setTag(tag); + } + + @EventHandler(priority = EventPriority.HIGH) + public void onPlayerVanish(PlayerHideEvent event) + { + Player player = event.getPlayer(); + plugin.dc.messageChatChannel("**" + player.getName() + " left the server" + "**"); + } +} \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java index dce660e1..ae0a661a 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java @@ -22,7 +22,6 @@ import org.bukkit.entity.Player; @CommandParameters(description = "Bans the specified player.", usage = "/ [reason] [-nrb | -q]", aliases = "gtfo") public class Command_ban extends FreedomCommand { - @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java index 474d639f..d9c500de 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java @@ -31,12 +31,12 @@ public class Command_deop extends FreedomCommand final String targetName = args[0].toLowerCase(); final List matchedPlayerNames = new ArrayList<>(); - for (final Player player : server.getOnlinePlayers()) + for (Player player : server.getOnlinePlayers()) { if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName().toLowerCase().contains(targetName) || player.getName().contains(targetName) || player.getDisplayName().contains(targetName)) { - if (player.isOp() && !AdminList.vanished.contains(player.getName())) + if (player.isOp() && plugin.al.isVanished(player)) { matchedPlayerNames.add(player.getName()); player.setOp(false); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invis.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invis.java index f89113d5..1dc749d4 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invis.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invis.java @@ -43,7 +43,7 @@ public class Command_invis extends FreedomCommand for (Player player : server.getOnlinePlayers()) { - if (player.hasPotionEffect(PotionEffectType.INVISIBILITY) && !plugin.al.isVanished(player.getName())) + if (player.hasPotionEffect(PotionEffectType.INVISIBILITY) && !plugin.al.isVanished(player)) { players.add(player.getName()); if (clear && !plugin.al.isAdmin(player)) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java index 4bced067..ec8da0db 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java @@ -1,5 +1,6 @@ package me.totalfreedom.totalfreedommod.command; +import de.myzelyam.api.vanish.VanishAPI; import java.util.ArrayList; import java.util.List; import me.totalfreedom.totalfreedommod.admin.Admin; @@ -18,7 +19,7 @@ import org.bukkit.entity.Player; @CommandParameters(description = "Lists the real names of all online players.", usage = "/ [-a | -i | -f | -v]", aliases = "who,lsit") public class Command_list extends FreedomCommand { - + public boolean run(final CommandSender sender, final Player playerSender, final Command cmd, final String commandLabel, final String[] args, final boolean senderIsConsole) { if (args.length > 1) @@ -96,7 +97,7 @@ public class Command_list extends FreedomCommand } else { - onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().size() - AdminList.vanished.size()) + onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().size() - VanishAPI.getInvisiblePlayers().size()) .append(ChatColor.BLUE) .append(" out of a maximum ") .append(ChatColor.RED) @@ -109,11 +110,11 @@ public class Command_list extends FreedomCommand { continue; } - if (listFilter == ListFilter.ADMINS && AdminList.vanished.contains(p.getName())) + if (listFilter == ListFilter.ADMINS && plugin.al.isVanished(p)) { continue; } - if (listFilter == ListFilter.VANISHED_ADMINS && !AdminList.vanished.contains(p.getName())) + if (listFilter == ListFilter.VANISHED_ADMINS && !plugin.al.isVanished(p)) { continue; } @@ -125,7 +126,7 @@ public class Command_list extends FreedomCommand { continue; } - if (listFilter == ListFilter.PLAYERS && AdminList.vanished.contains(p.getName())) + if (listFilter == ListFilter.PLAYERS && plugin.al.isVanished(p)) { continue; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickfilter.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickfilter.java index 16d5375a..091fb34c 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickfilter.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickfilter.java @@ -41,11 +41,11 @@ public class Command_nickfilter extends FreedomCommand player = getPlayerByDisplayName(displayName); - if (player == null || plugin.al.isVanished(player.getName()) && !plugin.al.isAdmin(sender)) + if (player == null || plugin.al.isVanished(player) && !plugin.al.isAdmin(sender)) { player = getPlayerByDisplayNameAlt(displayName); - if (player == null || !plugin.al.isVanished(player.getName()) && !plugin.al.isAdmin(sender)) + if (player == null || !plugin.al.isVanished(player) && !plugin.al.isAdmin(sender)) { sender.sendMessage(ChatColor.GRAY + "Can't find player by nickname: " + displayName); return true; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_op.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_op.java index 3d97ee36..c7afdcca 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_op.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_op.java @@ -37,7 +37,7 @@ public class Command_op extends FreedomCommand if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName().toLowerCase().contains(targetName) || player.getName().contains(targetName) || player.getDisplayName().contains(targetName)) { - if (!player.isOp() && !AdminList.vanished.contains(player.getName())) + if (!player.isOp() && !plugin.al.isVanished(player)) { matchedPlayerNames.add(player.getName()); player.setOp(true); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potion.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potion.java index d2c40f9d..67d93388 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potion.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potion.java @@ -104,7 +104,7 @@ public class Command_potion extends FreedomCommand { target = getPlayer(args[4]); - if (target == null || plugin.al.isVanished(target.getName()) && !plugin.al.isAdmin(sender)) + if (target == null || plugin.al.isVanished(target) && !plugin.al.isAdmin(sender)) { msg(FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED); return true; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tag.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tag.java index d002aa47..2d4c9eb6 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tag.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tag.java @@ -48,7 +48,7 @@ public class Command_tag extends FreedomCommand for (final Player player : server.getOnlinePlayers()) { - if (plugin.al.isVanished(player.getName()) && !plugin.al.isAdmin(sender)) + if (plugin.al.isVanished(player) && !plugin.al.isAdmin(sender)) { continue; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_vanish.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_vanish.java deleted file mode 100644 index 82728e7b..00000000 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_vanish.java +++ /dev/null @@ -1,120 +0,0 @@ -package me.totalfreedom.totalfreedommod.command; - -import me.totalfreedom.totalfreedommod.player.PlayerData; -import me.totalfreedom.totalfreedommod.rank.Displayable; -import me.totalfreedom.totalfreedommod.rank.Rank; -import me.totalfreedom.totalfreedommod.util.FLog; -import me.totalfreedom.totalfreedommod.util.FUtil; -import net.md_5.bungee.api.ChatMessageType; -import net.md_5.bungee.api.chat.TextComponent; -import org.apache.commons.lang.StringUtils; -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.bukkit.scheduler.BukkitRunnable; -import static me.totalfreedom.totalfreedommod.util.FUtil.playerMsg; - -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) -@CommandParameters(description = "Vanish/unvanish yourself.", usage = "/ [-s[ilent]]", aliases = "v") -public class Command_vanish extends FreedomCommand -{ - - public boolean run(final CommandSender sender, final Player playerSender, final Command cmd, final String commandLabel, final String[] args, final boolean senderIsConsole) - { - Displayable display = plugin.rm.getDisplay(playerSender); - String displayName = display.getColor() + playerSender.getName(); - String tag = display.getColoredTag(); - boolean silent = false; - if (args.length > 0) - { - if (args[0].equalsIgnoreCase("-s") || args[0].equalsIgnoreCase("-silent")) - { - silent = true; - } - } - - if (plugin.al.isVanished(playerSender.getName())) - { - if (silent) - { - msg(ChatColor.GOLD + "Silently unvanished."); - } - else - { - msg("You have unvanished.", ChatColor.GOLD); - FUtil.bcastMsg(plugin.rm.craftLoginMessage(playerSender, null)); - FUtil.bcastMsg(playerSender.getName() + " joined the game.", ChatColor.YELLOW); - plugin.dc.messageChatChannel("**" + playerSender.getName() + " joined the server" + "**"); - } - - PlayerData playerData = plugin.pl.getData(playerSender); - if (playerData.getTag() != null) - { - tag = FUtil.colorize(playerData.getTag()); - } - - plugin.pl.getData(playerSender).setTag(tag); - FLog.info(playerSender.getName() + " is no longer vanished."); - - for (Player player : server.getOnlinePlayers()) - { - if (plugin.al.isAdmin(player)) - { - playerMsg(player, ChatColor.YELLOW + sender.getName() + " has unvanished and is now visible to everyone."); - } - if (!plugin.al.isAdmin(player)) - { - player.showPlayer(plugin, playerSender); - } - } - plugin.esb.setVanished(playerSender.getName(), false); - playerSender.setPlayerListName(StringUtils.substring(displayName, 0, 16)); - plugin.al.vanished.remove(playerSender.getName()); - } - else - { - new BukkitRunnable() - { - @Override - public void run() - { - if (plugin.al.isVanished(playerSender.getName())) - { - playerSender.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(ChatColor.GOLD + "You are hidden from other players.")); - } - } - }.runTaskTimer(plugin, 0L, 4L); - - if (silent) - { - msg("Silently vanished.", ChatColor.GOLD); - } - else - { - msg ("You have vanished.", ChatColor.GOLD); - FUtil.bcastMsg(playerSender.getName() + " left the game.", ChatColor.YELLOW); - plugin.dc.messageChatChannel("**" + playerSender.getName() + " left the server" + "**"); - } - - FLog.info(playerSender.getName() + " is now vanished."); - for (Player player : server.getOnlinePlayers()) - { - { - if (plugin.al.isAdmin(player)) - { - playerMsg(player, ChatColor.YELLOW + sender.getName() + " has vanished and is now only visible to admins."); - } - if (!plugin.al.isAdmin(player)) - { - player.hidePlayer(plugin, playerSender); - } - } - } - - plugin.esb.setVanished(playerSender.getName(), true); - plugin.al.vanished.add(playerSender.getName()); - } - return true; - } -} \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_whohas.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_whohas.java index cdd2754b..7d4b7030 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_whohas.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_whohas.java @@ -40,7 +40,7 @@ public class Command_whohas extends FreedomCommand for (final Player player : server.getOnlinePlayers()) { - if (!plugin.al.isAdmin(sender) && plugin.al.isVanished(player.getName())) + if (!plugin.al.isAdmin(sender) && plugin.al.isVanished(player)) { continue; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/FreedomCommand.java b/src/main/java/me/totalfreedom/totalfreedommod/command/FreedomCommand.java index 51194d31..9077b369 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/FreedomCommand.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/FreedomCommand.java @@ -305,7 +305,7 @@ public abstract class FreedomCommand implements CommandExecutor, TabCompleter Player player = Bukkit.getPlayer(name); if (player != null) { - if (nullVanished && plugin.al.isVanished(player.getName()) && !plugin.al.isAdmin(sender)) + if (nullVanished && plugin.al.isVanished(player) && !plugin.al.isAdmin(sender)) { return null; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java b/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java index 5076e395..fe200b0e 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java @@ -254,7 +254,7 @@ public class Discord extends FreedomService @EventHandler(priority = EventPriority.MONITOR) public void onPlayerJoin(PlayerJoinEvent event) { - if (!plugin.al.isVanished(event.getPlayer().getName())) + if (!plugin.al.isVanished(event.getPlayer())) { messageChatChannel("**" + deformat(event.getPlayer().getName()) + " joined the server" + "**"); } @@ -263,7 +263,7 @@ public class Discord extends FreedomService @EventHandler(priority = EventPriority.MONITOR) public void onPlayerLeave(PlayerQuitEvent event) { - if (!plugin.al.isVanished(event.getPlayer().getName())) + if (!plugin.al.isVanished(event.getPlayer())) { messageChatChannel("**" + deformat(event.getPlayer().getName()) + " left the server" + "**"); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_list.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_list.java index c4bcf502..8c3fafe5 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_list.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_list.java @@ -40,7 +40,7 @@ public class Module_list extends HTTPDModule for (Player player : Bukkit.getOnlinePlayers()) { - if (plugin.al.isVanished(player.getName())) + if (plugin.al.isVanished(player)) { continue; } @@ -128,7 +128,7 @@ public class Module_list extends HTTPDModule for (Player player : onlinePlayers) { - if (plugin.al.isVanished(player.getName())) + if (plugin.al.isVanished(player)) { continue; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_players.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_players.java index effa05b5..839bbf83 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_players.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_players.java @@ -36,7 +36,7 @@ public class Module_players extends HTTPDModule // All online players for (Player player : Bukkit.getOnlinePlayers()) { - if (!plugin.al.isVanished(player.getName())) + if (!plugin.al.isVanished(player)) { players.add(player.getName()); if (plugin.al.isAdmin(player) && !plugin.al.isAdminImpostor(player)) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/rank/RankManager.java b/src/main/java/me/totalfreedom/totalfreedommod/rank/RankManager.java index 284bcdb8..d52f69fc 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/rank/RankManager.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/rank/RankManager.java @@ -250,7 +250,7 @@ public class RankManager extends FreedomService // Broadcast login message if (isAdmin || FUtil.isDeveloper(player.getName()) || plugin.pl.getData(player).isMasterBuilder() || plugin.pl.getData(player).isDonator()) { - if (!plugin.al.isVanished(player.getName())) + if (!plugin.al.isVanished(player)) { FUtil.bcastMsg(craftLoginMessage(player, null)); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/sql/SQLite.java b/src/main/java/me/totalfreedom/totalfreedommod/sql/SQLite.java index 266fbc69..acbcbaf1 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/sql/SQLite.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/sql/SQLite.java @@ -84,7 +84,7 @@ public class SQLite extends FreedomService { try { - connection.createStatement().execute("CREATE TABLE `admins` (`username` VARCHAR NOT NULL, `ips` VARCHAR NOT NULL, `rank` VARCHAR NOT NULL, `active` BOOLEAN NOT NULL, `last_login` LONG NOT NULL, `login_message` VARCHAR, `command_spy` BOOLEAN NOT NULL, `potion_spy` BOOLEAN NOT NULL, `ac_format` VARCHAR, `old_tags` BOOLEAN NOT NULL, `log_stick` BOOLEAN NOT NULL, `display_discord` BOOLEAN NOT NULL,);"); + connection.createStatement().execute("CREATE TABLE `admins` (`username` VARCHAR NOT NULL, `ips` VARCHAR NOT NULL, `rank` VARCHAR NOT NULL, `active` BOOLEAN NOT NULL, `last_login` LONG NOT NULL, `login_message` VARCHAR, `command_spy` BOOLEAN NOT NULL, `potion_spy` BOOLEAN NOT NULL, `ac_format` VARCHAR, `old_tags` BOOLEAN NOT NULL, `log_stick` BOOLEAN NOT NULL, `display_discord` BOOLEAN NOT NULL);"); } catch (SQLException e) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java b/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java index db9b6332..091f5341 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java @@ -146,7 +146,7 @@ public class FUtil List names = new ArrayList<>(); for (Player player : Bukkit.getOnlinePlayers()) { - if (!TotalFreedomMod.plugin().al.isVanished(player.getName())) + if (!TotalFreedomMod.plugin().al.isVanished(player)) { names.add(player.getName()); } diff --git a/src/main/java/org/bstats/Metrics.java b/src/main/java/org/bstats/Metrics.java index 87545c38..4fd5ae54 100644 --- a/src/main/java/org/bstats/Metrics.java +++ b/src/main/java/org/bstats/Metrics.java @@ -1,12 +1,19 @@ package org.bstats; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.google.gson.JsonPrimitive; +import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.File; import java.io.IOException; +import java.io.InputStreamReader; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.net.URL; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -15,23 +22,22 @@ import java.util.Timer; import java.util.TimerTask; import java.util.UUID; import java.util.concurrent.Callable; +import java.util.logging.Level; import java.util.zip.GZIPOutputStream; import javax.net.ssl.HttpsURLConnection; -import me.totalfreedom.totalfreedommod.util.FLog; import org.bukkit.Bukkit; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; import org.bukkit.plugin.RegisteredServiceProvider; import org.bukkit.plugin.ServicePriority; -import org.bukkit.plugin.java.JavaPlugin; -import org.json.simple.JSONArray; -import org.json.simple.JSONObject; /** * bStats collects some data for plugin authors. *

* Check out https://bStats.org/ to learn more about bStats! */ +@SuppressWarnings({"WeakerAccess", "unused"}) public class Metrics { static @@ -57,14 +63,26 @@ public class Metrics // The url to which the data is sent private static final String URL = "https://bStats.org/submitData/bukkit"; + // Is bStats enabled on this server? + private boolean enabled; + // Should failed requests be logged? private static boolean logFailedRequests; + // Should the sent data be logged? + private static boolean logSentData; + + // Should the response text be logged? + private static boolean logResponseStatusText; + // The uuid of the server private static String serverUUID; // The plugin - private final JavaPlugin plugin; + private final Plugin plugin; + + // The plugin id + private final int pluginId; // A list with all custom charts private final List charts = new ArrayList<>(); @@ -72,15 +90,18 @@ public class Metrics /** * Class constructor. * - * @param plugin The plugin which stats should be submitted. + * @param plugin The plugin which stats should be submitted. + * @param pluginId The id of the plugin. + * It can be found at What is my plugin id? */ - public Metrics(JavaPlugin plugin) + public Metrics(Plugin plugin, int pluginId) { if (plugin == null) { throw new IllegalArgumentException("Plugin cannot be null!"); } this.plugin = plugin; + this.pluginId = pluginId; // Get the config file File bStatsFolder = new File(plugin.getDataFolder().getParentFile(), "bStats"); @@ -90,12 +111,17 @@ public class Metrics // Check if the config file exists if (!config.isSet("serverUuid")) { + // Add default values config.addDefault("enabled", true); // Every server gets it's unique random id. config.addDefault("serverUuid", UUID.randomUUID().toString()); // Should failed request be logged? config.addDefault("logFailedRequests", false); + // Should the sent data be logged? + config.addDefault("logSentData", false); + // Should the response text be logged? + config.addDefault("logResponseStatusText", false); // Inform the server owners about bStats config.options().header( @@ -114,9 +140,13 @@ public class Metrics } // Load the data + enabled = config.getBoolean("enabled", true); serverUUID = config.getString("serverUuid"); logFailedRequests = config.getBoolean("logFailedRequests", false); - if (config.getBoolean("enabled", true)) + logSentData = config.getBoolean("logSentData", false); + logResponseStatusText = config.getBoolean("logResponseStatusText", false); + + if (enabled) { boolean found = false; // Search for all other bStats Metrics classes to see if we are the first one @@ -142,6 +172,16 @@ public class Metrics } } + /** + * Checks if bStats is enabled. + * + * @return Whether bStats is enabled or not. + */ + public boolean isEnabled() + { + return enabled; + } + /** * Adds a custom chart. * @@ -174,14 +214,7 @@ public class Metrics } // Nevertheless we want our code to run in the Bukkit main thread, so we have to use the Bukkit scheduler // Don't be afraid! The connection to the bStats server is still async, only the stats collection is sync ;) - Bukkit.getScheduler().runTask(plugin, new Runnable() - { - @Override - public void run() - { - submitData(); - } - }); + Bukkit.getScheduler().runTask(plugin, () -> submitData()); } }, 1000 * 60 * 5, 1000 * 60 * 30); // Submit the data every 30 minutes, first time after 5 minutes to give other plugins enough time to start @@ -195,26 +228,28 @@ public class Metrics * * @return The plugin specific data. */ - public JSONObject getPluginData() + public JsonObject getPluginData() { - JSONObject data = new JSONObject(); + JsonObject data = new JsonObject(); + String pluginName = plugin.getDescription().getName(); String pluginVersion = plugin.getDescription().getVersion(); - data.put("pluginName", "TotalFreedomMod"); // Append the name of the plugin - data.put("pluginVersion", pluginVersion); // Append the version of the plugin - JSONArray customCharts = new JSONArray(); + data.addProperty("pluginName", pluginName); // Append the name of the plugin + data.addProperty("id", pluginId); // Append the id of the plugin + data.addProperty("pluginVersion", pluginVersion); // Append the version of the plugin + JsonArray customCharts = new JsonArray(); for (CustomChart customChart : charts) { // Add the data of the custom charts - JSONObject chart = customChart.getRequestJsonObject(); + JsonObject chart = customChart.getRequestJsonObject(); if (chart == null) { // If the chart is null, we skip it continue; } customCharts.add(chart); } - data.put("customCharts", customCharts); + data.add("customCharts", customCharts); return data; } @@ -224,7 +259,7 @@ public class Metrics * * @return The server specific data. */ - private JSONObject getServerData() + private JsonObject getServerData() { // Minecraft specific data int playerAmount; @@ -242,8 +277,8 @@ public class Metrics playerAmount = Bukkit.getOnlinePlayers().size(); // Just use the new method if the Reflection failed } int onlineMode = Bukkit.getOnlineMode() ? 1 : 0; - String bukkitVersion = org.bukkit.Bukkit.getVersion(); - bukkitVersion = bukkitVersion.substring(bukkitVersion.indexOf("MC: ") + 4, bukkitVersion.length() - 1); + String bukkitVersion = Bukkit.getVersion(); + String bukkitName = Bukkit.getName(); // OS/Java specific data String javaVersion = System.getProperty("java.version"); @@ -252,19 +287,20 @@ public class Metrics String osVersion = System.getProperty("os.version"); int coreCount = Runtime.getRuntime().availableProcessors(); - JSONObject data = new JSONObject(); + JsonObject data = new JsonObject(); - data.put("serverUUID", serverUUID); + data.addProperty("serverUUID", serverUUID); - data.put("playerAmount", playerAmount); - data.put("onlineMode", onlineMode); - data.put("bukkitVersion", bukkitVersion); + data.addProperty("playerAmount", playerAmount); + data.addProperty("onlineMode", onlineMode); + data.addProperty("bukkitVersion", bukkitVersion); + data.addProperty("bukkitName", bukkitName); - data.put("javaVersion", javaVersion); - data.put("osName", osName); - data.put("osArch", osArch); - data.put("osVersion", osVersion); - data.put("coreCount", coreCount); + data.addProperty("javaVersion", javaVersion); + data.addProperty("osName", osName); + data.addProperty("osArch", osArch); + data.addProperty("osVersion", osVersion); + data.addProperty("coreCount", coreCount); return data; } @@ -274,9 +310,9 @@ public class Metrics */ private void submitData() { - final JSONObject data = getServerData(); + final JsonObject data = getServerData(); - JSONArray pluginData = new JSONArray(); + JsonArray pluginData = new JsonArray(); // Search for all other bStats Metrics classes to get their plugin data for (Class service : Bukkit.getServicesManager().getKnownServices()) { @@ -288,7 +324,34 @@ public class Metrics { try { - pluginData.add(provider.getService().getMethod("getPluginData").invoke(provider.getProvider())); + Object plugin = provider.getService().getMethod("getPluginData").invoke(provider.getProvider()); + if (plugin instanceof JsonObject) + { + pluginData.add((JsonObject)plugin); + } + else + { // old bstats version compatibility + try + { + Class jsonObjectJsonSimple = Class.forName("org.json.simple.JSONObject"); + if (plugin.getClass().isAssignableFrom(jsonObjectJsonSimple)) + { + Method jsonStringGetter = jsonObjectJsonSimple.getDeclaredMethod("toJSONString"); + jsonStringGetter.setAccessible(true); + String jsonString = (String)jsonStringGetter.invoke(plugin); + JsonObject object = new JsonParser().parse(jsonString).getAsJsonObject(); + pluginData.add(object); + } + } + catch (ClassNotFoundException e) + { + // minecraft version 1.14+ + if (logFailedRequests) + { + this.plugin.getLogger().log(Level.SEVERE, "Encountered unexpected exception", e); + } + } + } } catch (NullPointerException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ignored) { @@ -300,26 +363,22 @@ public class Metrics } } - data.put("plugins", pluginData); + data.add("plugins", pluginData); // Create a new thread for the connection to the bStats server - new Thread(new Runnable() + new Thread(() -> { - @Override - public void run() + try { - try + // Send the data + sendData(plugin, data); + } + catch (Exception e) + { + // Something went wrong! :( + if (logFailedRequests) { - // Send the data - sendData(data); - } - catch (Exception e) - { - // Something went wrong! :( - if (logFailedRequests) - { - FLog.warning("Could not submit plugin stats of " + plugin.getName() + e); - } + plugin.getLogger().log(Level.WARNING, "Could not submit plugin stats of " + plugin.getName(), e); } } }).start(); @@ -328,10 +387,11 @@ public class Metrics /** * Sends the data to the bStats server. * - * @param data The data to send. + * @param plugin Any plugin. It's just used to get a logger instance. + * @param data The data to send. * @throws Exception If the request failed. */ - private static void sendData(JSONObject data) throws Exception + private static void sendData(Plugin plugin, JsonObject data) throws Exception { if (data == null) { @@ -341,6 +401,10 @@ public class Metrics { throw new IllegalAccessException("This method must not be called from the main thread!"); } + if (logSentData) + { + plugin.getLogger().info("Sending data to bStats: " + data); + } HttpsURLConnection connection = (HttpsURLConnection)new URL(URL).openConnection(); // Compress the data to save bandwidth @@ -357,12 +421,25 @@ public class Metrics // Send data connection.setDoOutput(true); - DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream()); - outputStream.write(compressedData); - outputStream.flush(); - outputStream.close(); + try (DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream())) + { + outputStream.write(compressedData); + } - connection.getInputStream().close(); // We don't care about the response - Just send our data :) + StringBuilder builder = new StringBuilder(); + try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream()))) + { + String line; + while ((line = bufferedReader.readLine()) != null) + { + builder.append(line); + } + } + + if (logResponseStatusText) + { + plugin.getLogger().info("Sent data to bStats and received response: " + builder); + } } /** @@ -379,9 +456,10 @@ public class Metrics return null; } ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - GZIPOutputStream gzip = new GZIPOutputStream(outputStream); - gzip.write(str.getBytes("UTF-8")); - gzip.close(); + try (GZIPOutputStream gzip = new GZIPOutputStream(outputStream)) + { + gzip.write(str.getBytes(StandardCharsets.UTF_8)); + } return outputStream.toByteArray(); } @@ -408,32 +486,32 @@ public class Metrics this.chartId = chartId; } - private JSONObject getRequestJsonObject() + private JsonObject getRequestJsonObject() { - JSONObject chart = new JSONObject(); - chart.put("chartId", chartId); + JsonObject chart = new JsonObject(); + chart.addProperty("chartId", chartId); try { - JSONObject data = getChartData(); + JsonObject data = getChartData(); if (data == null) { // If the data is null we don't send the chart. return null; } - chart.put("data", data); + chart.add("data", data); } catch (Throwable t) { if (logFailedRequests) { - FLog.warning("Failed to get data for custom chart with id " + chartId + t); + Bukkit.getLogger().log(Level.WARNING, "Failed to get data for custom chart with id " + chartId, t); } return null; } return chart; } - protected abstract JSONObject getChartData() throws Exception; + protected abstract JsonObject getChartData() throws Exception; } @@ -458,16 +536,16 @@ public class Metrics } @Override - protected JSONObject getChartData() throws Exception + protected JsonObject getChartData() throws Exception { - JSONObject data = new JSONObject(); + JsonObject data = new JsonObject(); String value = callable.call(); if (value == null || value.isEmpty()) { // Null = skip the chart return null; } - data.put("value", value); + data.addProperty("value", value); return data; } } @@ -493,10 +571,10 @@ public class Metrics } @Override - protected JSONObject getChartData() throws Exception + protected JsonObject getChartData() throws Exception { - JSONObject data = new JSONObject(); - JSONObject values = new JSONObject(); + JsonObject data = new JsonObject(); + JsonObject values = new JsonObject(); Map map = callable.call(); if (map == null || map.isEmpty()) { @@ -511,14 +589,14 @@ public class Metrics continue; // Skip this invalid } allSkipped = false; - values.put(entry.getKey(), entry.getValue()); + values.addProperty(entry.getKey(), entry.getValue()); } if (allSkipped) { // Null = skip the chart return null; } - data.put("values", values); + data.add("values", values); return data; } } @@ -544,10 +622,10 @@ public class Metrics } @Override - public JSONObject getChartData() throws Exception + public JsonObject getChartData() throws Exception { - JSONObject data = new JSONObject(); - JSONObject values = new JSONObject(); + JsonObject data = new JsonObject(); + JsonObject values = new JsonObject(); Map> map = callable.call(); if (map == null || map.isEmpty()) { @@ -557,17 +635,17 @@ public class Metrics boolean reallyAllSkipped = true; for (Map.Entry> entryValues : map.entrySet()) { - JSONObject value = new JSONObject(); + JsonObject value = new JsonObject(); boolean allSkipped = true; for (Map.Entry valueEntry : map.get(entryValues.getKey()).entrySet()) { - value.put(valueEntry.getKey(), valueEntry.getValue()); + value.addProperty(valueEntry.getKey(), valueEntry.getValue()); allSkipped = false; } if (!allSkipped) { reallyAllSkipped = false; - values.put(entryValues.getKey(), value); + values.add(entryValues.getKey(), value); } } if (reallyAllSkipped) @@ -575,7 +653,7 @@ public class Metrics // Null = skip the chart return null; } - data.put("values", values); + data.add("values", values); return data; } } @@ -601,16 +679,16 @@ public class Metrics } @Override - protected JSONObject getChartData() throws Exception + protected JsonObject getChartData() throws Exception { - JSONObject data = new JSONObject(); + JsonObject data = new JsonObject(); int value = callable.call(); if (value == 0) { // Null = skip the chart return null; } - data.put("value", value); + data.addProperty("value", value); return data; } @@ -637,10 +715,10 @@ public class Metrics } @Override - protected JSONObject getChartData() throws Exception + protected JsonObject getChartData() throws Exception { - JSONObject data = new JSONObject(); - JSONObject values = new JSONObject(); + JsonObject data = new JsonObject(); + JsonObject values = new JsonObject(); Map map = callable.call(); if (map == null || map.isEmpty()) { @@ -655,14 +733,14 @@ public class Metrics continue; // Skip this invalid } allSkipped = false; - values.put(entry.getKey(), entry.getValue()); + values.addProperty(entry.getKey(), entry.getValue()); } if (allSkipped) { // Null = skip the chart return null; } - data.put("values", values); + data.add("values", values); return data; } @@ -689,10 +767,10 @@ public class Metrics } @Override - protected JSONObject getChartData() throws Exception + protected JsonObject getChartData() throws Exception { - JSONObject data = new JSONObject(); - JSONObject values = new JSONObject(); + JsonObject data = new JsonObject(); + JsonObject values = new JsonObject(); Map map = callable.call(); if (map == null || map.isEmpty()) { @@ -701,11 +779,11 @@ public class Metrics } for (Map.Entry entry : map.entrySet()) { - JSONArray categoryValues = new JSONArray(); - categoryValues.add(entry.getValue()); - values.put(entry.getKey(), categoryValues); + JsonArray categoryValues = new JsonArray(); + categoryValues.add(new JsonPrimitive(entry.getValue())); + values.add(entry.getKey(), categoryValues); } - data.put("values", values); + data.add("values", values); return data; } @@ -732,10 +810,10 @@ public class Metrics } @Override - protected JSONObject getChartData() throws Exception + protected JsonObject getChartData() throws Exception { - JSONObject data = new JSONObject(); - JSONObject values = new JSONObject(); + JsonObject data = new JsonObject(); + JsonObject values = new JsonObject(); Map map = callable.call(); if (map == null || map.isEmpty()) { @@ -750,19 +828,19 @@ public class Metrics continue; // Skip this invalid } allSkipped = false; - JSONArray categoryValues = new JSONArray(); + JsonArray categoryValues = new JsonArray(); for (int categoryValue : entry.getValue()) { - categoryValues.add(categoryValue); + categoryValues.add(new JsonPrimitive(categoryValue)); } - values.put(entry.getKey(), categoryValues); + values.add(entry.getKey(), categoryValues); } if (allSkipped) { // Null = skip the chart return null; } - data.put("values", values); + data.add("values", values); return data; } } diff --git a/src/main/resources/permissions.yml b/src/main/resources/permissions.yml index 52e839e9..70a40b63 100644 --- a/src/main/resources/permissions.yml +++ b/src/main/resources/permissions.yml @@ -9,7 +9,8 @@ # This is used to remove all permission begging with the root node # This is useful when a plugin gives all permissions to a player because they are opped remove: - - "coreprotect" + - "voxelsniper" + - "bending" # Operator permission nodes operators: @@ -35,27 +36,12 @@ operators: - "worldedit.removebelow" - "worldedit.removenear" - "worldedit.replacenear" - - "worldedit.clipboard.save" - - "worldedit.clipboard.load" - - "worldedit.schematic.save" - - "worldedit.schematic.load" - - "worldedit.schematic.formats" - # CoreProtect - - "coreprotect.inspect" - - "coreprotect.lookup" - - "coreprotect.help" - - "coreprotect.status" - - "coreprotect.lookup.block" - - "coreprotect.lookup.click" - - "coreprotect.lookup.container" - - "coreprotect.container" - - "coreprotect.core" - - "coreprotect.coreprotect" - - "coreprotect.co" + # LibsDisguises + - "libsdisguises.noactionbar" # WorldGuard - - "worldguard.region.list.own" + - "worldgyardregion.list.own" - "worldguard.region.addmember.own.*" - "worldguard.region.removemember.own.*" - "worldguard.region.info.*" @@ -70,16 +56,19 @@ master_builders: - "worldedit.thaw" - "worldguard.region.bypass.hubworld" - "worldguard.region.bypass.masterbuilderworld" + - "voxelsniper.sniper" + - "voxelsniper.goto" + - "voxelsniper.brush.*" # Super Admin permission nodes super_admins: - "coreprotect.*" - "worldedit.*" - "worldguard.*" + - "bending.*" # Telnet Admin permission nodes telnet_admins: [] # Senior Admin permission nodes -senior_admins: [] - +senior_admins: [] \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index b3400b4f..0db49012 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -2,6 +2,6 @@ name: TotalFreedomMod main: me.totalfreedom.totalfreedommod.TotalFreedomMod version: ${project.version} description: Plugin for the Total Freedom server. -softdepend: [BukkitTelnet, Essentials, LibsDisguises, WorldEdit, WorldGuard, WorldGuardExtraFlags, TFGuilds] +softdepend: [BukkitTelnet, Essentials, LibsDisguises, WorldEdit, WorldGuard, WorldGuardExtraFlags, TFGuilds, SuperVanish, PremiumVanish] authors: [Madgeek1450, Prozza] api-version: 1.16 \ No newline at end of file From 4561641d2b98a7c6cc415f32c2d03aff072e618f Mon Sep 17 00:00:00 2001 From: Nathan Curran <30569566+Focusvity@users.noreply.github.com> Date: Tue, 4 Aug 2020 18:14:42 +1000 Subject: [PATCH 06/54] Plugin-specific registration fix --- .../command/FreedomCommand.java | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/FreedomCommand.java b/src/main/java/me/totalfreedom/totalfreedommod/command/FreedomCommand.java index 9077b369..a5f6594b 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/FreedomCommand.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/FreedomCommand.java @@ -82,10 +82,19 @@ public abstract class FreedomCommand implements CommandExecutor, TabCompleter public void register() { FCommand cmd = new FCommand(this.name); - if (this.aliases != null) cmd.setAliases(Arrays.asList(StringUtils.split(this.aliases, ","))); - if (this.description != null) cmd.setDescription(this.description); - if (this.usage != null) cmd.setUsage(this.usage); - getCommandMap().register("", cmd); + if (this.aliases != null) + { + cmd.setAliases(Arrays.asList(StringUtils.split(this.aliases, ","))); + } + if (this.description != null) + { + cmd.setDescription(this.description); + } + if (this.usage != null) + { + cmd.setUsage(this.usage); + } + getCommandMap().register("totalfreedommod", cmd); cmd.setExecutor(this); } @@ -97,7 +106,7 @@ public abstract class FreedomCommand implements CommandExecutor, TabCompleter { final Field f = Bukkit.getServer().getPluginManager().getClass().getDeclaredField("commandMap"); f.setAccessible(true); - commandMap = (CommandMap) f.get(Bukkit.getServer().getPluginManager()); + commandMap = (CommandMap)f.get(Bukkit.getServer().getPluginManager()); } catch (Exception e) { @@ -110,10 +119,12 @@ public abstract class FreedomCommand implements CommandExecutor, TabCompleter private final class FCommand extends Command { private FreedomCommand cmd = null; + private FCommand(String command) { super(command); } + public void setExecutor(FreedomCommand cmd) { this.cmd = cmd; From 5c50f8f27d7941104ae04181ee02b085bbe76723 Mon Sep 17 00:00:00 2001 From: speedxx <43330808+speedxx@users.noreply.github.com> Date: Tue, 4 Aug 2020 15:11:16 -0400 Subject: [PATCH 07/54] silent joining and leaving fixes --- .../totalfreedommod/bridge/VanishBridge.java | 19 ++++++++++----- .../totalfreedommod/discord/Discord.java | 24 ++----------------- .../totalfreedommod/rank/RankManager.java | 1 - src/main/resources/permissions.yml | 2 +- 4 files changed, 16 insertions(+), 30 deletions(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java b/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java index e96fbc7c..81b08c19 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java @@ -8,10 +8,10 @@ import me.totalfreedom.totalfreedommod.rank.Displayable; import me.totalfreedom.totalfreedommod.util.FUtil; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; public class VanishBridge extends FreedomService { + @Override public void onStart() { @@ -22,15 +22,19 @@ public class VanishBridge extends FreedomService { } - @EventHandler(priority = EventPriority.HIGH) + @EventHandler public void onPlayerUnvanish(PlayerShowEvent event) { Player player = event.getPlayer(); Displayable display = plugin.rm.getDisplay(player); String tag = display.getColoredTag(); - FUtil.bcastMsg(plugin.rm.craftLoginMessage(event.getPlayer(), null)); - plugin.dc.messageChatChannel("**" + player.getName() + " joined the server" + "**"); + if (!event.isSilent()) + { + FUtil.bcastMsg(plugin.rm.craftLoginMessage(event.getPlayer(), null)); + plugin.dc.messageChatChannel("**" + player.getName() + " joined the server" + "**"); + } + PlayerData playerData = plugin.pl.getData(player); if (playerData.getTag() != null) { @@ -39,10 +43,13 @@ public class VanishBridge extends FreedomService playerData.setTag(tag); } - @EventHandler(priority = EventPriority.HIGH) + @EventHandler public void onPlayerVanish(PlayerHideEvent event) { Player player = event.getPlayer(); - plugin.dc.messageChatChannel("**" + player.getName() + " left the server" + "**"); + if (!event.isSilent()) + { + plugin.dc.messageChatChannel("**" + player.getName() + " left the server" + "**"); + } } } \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java b/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java index fe200b0e..26ac92d1 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java @@ -44,12 +44,10 @@ import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.entity.PlayerDeathEvent; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerQuitEvent; public class Discord extends FreedomService { - + public static HashMap LINK_CODES = new HashMap<>(); public static HashMap VERIFICATION_CODES = new HashMap<>(); public ScheduledThreadPoolExecutor RATELIMIT_EXECUTOR; @@ -251,24 +249,6 @@ public class Discord extends FreedomService return VERIFICATION_CODES; } - @EventHandler(priority = EventPriority.MONITOR) - public void onPlayerJoin(PlayerJoinEvent event) - { - if (!plugin.al.isVanished(event.getPlayer())) - { - messageChatChannel("**" + deformat(event.getPlayer().getName()) + " joined the server" + "**"); - } - } - - @EventHandler(priority = EventPriority.MONITOR) - public void onPlayerLeave(PlayerQuitEvent event) - { - if (!plugin.al.isVanished(event.getPlayer())) - { - messageChatChannel("**" + deformat(event.getPlayer().getName()) + " left the server" + "**"); - } - } - @EventHandler(priority = EventPriority.MONITOR) public void onPlayerDeath(PlayerDeathEvent event) { @@ -374,7 +354,7 @@ public class Discord extends FreedomService embedBuilder.setDescription(reason); embedBuilder.setFooter("Reported by " + reporter.getName(), "https://minotar.net/helm/" + reporter.getName() + ".png"); embedBuilder.setTimestamp(Instant.from(ZonedDateTime.now())); - String location = "World: " + reported.getLocation().getWorld().getName() + ", X: " + reported.getLocation().getBlockX() + ", Y: " + reported.getLocation().getBlockY() + ", Z: " + reported.getLocation().getBlockZ(); + String location = "World: " + reported.getLocation().getWorld().getName() + ", X: " + reported.getLocation().getBlockX() + ", Y: " + reported.getLocation().getBlockY() + ", Z: " + reported.getLocation().getBlockZ(); embedBuilder.addField("Location", location, true); embedBuilder.addField("Game Mode", WordUtils.capitalizeFully(reported.getGameMode().name()), true); User user = plugin.esb.getEssentialsUser(reported.getName()); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/rank/RankManager.java b/src/main/java/me/totalfreedom/totalfreedommod/rank/RankManager.java index d52f69fc..0390ad7f 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/rank/RankManager.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/rank/RankManager.java @@ -5,7 +5,6 @@ import me.totalfreedom.totalfreedommod.admin.Admin; import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.player.FPlayer; import me.totalfreedom.totalfreedommod.player.PlayerData; -import me.totalfreedom.totalfreedommod.util.FLog; import me.totalfreedom.totalfreedommod.util.FUtil; import org.apache.commons.lang.StringUtils; import org.bukkit.ChatColor; diff --git a/src/main/resources/permissions.yml b/src/main/resources/permissions.yml index 70a40b63..274d98b0 100644 --- a/src/main/resources/permissions.yml +++ b/src/main/resources/permissions.yml @@ -41,7 +41,7 @@ operators: - "libsdisguises.noactionbar" # WorldGuard - - "worldgyardregion.list.own" + - "worldguardregion.list.own" - "worldguard.region.addmember.own.*" - "worldguard.region.removemember.own.*" - "worldguard.region.info.*" From abe3b68480618e9e3b5f97f0ef8a265f5524d387 Mon Sep 17 00:00:00 2001 From: speed <43330808+speedxx@users.noreply.github.com> Date: Tue, 4 Aug 2020 15:28:40 -0400 Subject: [PATCH 08/54] Update permissions.yml --- src/main/resources/permissions.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/permissions.yml b/src/main/resources/permissions.yml index 274d98b0..fc35d125 100644 --- a/src/main/resources/permissions.yml +++ b/src/main/resources/permissions.yml @@ -41,7 +41,7 @@ operators: - "libsdisguises.noactionbar" # WorldGuard - - "worldguardregion.list.own" + - "worldguard.region.list.own" - "worldguard.region.addmember.own.*" - "worldguard.region.removemember.own.*" - "worldguard.region.info.*" @@ -71,4 +71,4 @@ super_admins: telnet_admins: [] # Senior Admin permission nodes -senior_admins: [] \ No newline at end of file +senior_admins: [] From b73d1df350774186cac0e4f423afcc13ab8f1238 Mon Sep 17 00:00:00 2001 From: Telesphoreo Date: Tue, 4 Aug 2020 15:05:43 -0500 Subject: [PATCH 09/54] baddev --- .../totalfreedommod/discord/Discord.java | 16 +++++++++++++++- .../totalfreedom/totalfreedommod/sql/SQLite.java | 1 - 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java b/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java index 26ac92d1..e39dcd95 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java @@ -44,6 +44,8 @@ import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerQuitEvent; public class Discord extends FreedomService { @@ -272,6 +274,18 @@ public class Discord extends FreedomService startBot(); } + @EventHandler(priority = EventPriority.MONITOR) + public void onPlayerJoin(PlayerJoinEvent event) + { + messageChatChannel("**" + deformat(event.getPlayer().getName()) + " joined the server" + "**"); + } + + @EventHandler(priority = EventPriority.MONITOR) + public void onPlayerLeave(PlayerQuitEvent event) + { + messageChatChannel("**" + deformat(event.getPlayer().getName()) + " left the server" + "**"); + } + public void messageChatChannel(String message) { String chat_channel_id = ConfigEntry.DISCORD_CHAT_CHANNEL_ID.getString(); @@ -378,7 +392,7 @@ public class Discord extends FreedomService Guild server = bot.getGuildById(ConfigEntry.DISCORD_SERVER_ID.getString()); if (server == null) { - FLog.severe("The discord server ID specified is invalid, or the bot is not on the server."); + FLog.severe("The Discord server ID specified is invalid, or the bot is not on the server."); return false; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/sql/SQLite.java b/src/main/java/me/totalfreedom/totalfreedommod/sql/SQLite.java index acbcbaf1..36268312 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/sql/SQLite.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/sql/SQLite.java @@ -35,7 +35,6 @@ public class SQLite extends FreedomService public void connect() { - try { connection = DriverManager.getConnection("jdbc:sqlite:" + plugin.getDataFolder() + "/" + FILE_NAME); From 81df3103b6842466e536277f8e5437481915abb5 Mon Sep 17 00:00:00 2001 From: Seth <13510767+ZeroEpoch1969@users.noreply.github.com> Date: Tue, 4 Aug 2020 15:16:11 -0700 Subject: [PATCH 10/54] Some updates - Added Reddit flair sync - Removed magical saddle because the stacking potato does the same thing - Some internal improvements - Fixed bug where if a service throws an error while starting or stopping it breaks the entire plugin --- pom.xml | 8 +- .../FreedomServiceHandler.java | 30 +++ .../totalfreedommod/TotalFreedomMod.java | 13 +- .../command/CommandLoader.java | 6 +- .../command/CommandPermissions.java | 2 +- .../command/Command_linkreddit.java | 69 ++++++ .../command/Command_magicalsaddle.java | 29 --- .../command/Command_totalfreedommod.java | 8 +- .../command/Command_unlinkreddit.java | 41 ++++ .../totalfreedommod/config/ConfigEntry.java | 16 +- .../totalfreedommod/discord/Discord.java | 2 +- .../totalfreedommod/fun/ItemFun.java | 35 +-- .../totalfreedommod/player/PlayerData.java | 8 +- .../totalfreedommod/player/PlayerList.java | 10 +- .../totalfreedommod/rank/RankManager.java | 1 + .../totalfreedommod/reddit/Reddit.java | 226 ++++++++++++++++++ .../totalfreedommod/shop/Shop.java | 11 + .../totalfreedommod/shop/ShopItem.java | 5 +- .../totalfreedommod/sql/SQLite.java | 8 +- src/main/resources/config.yml | 32 ++- 20 files changed, 466 insertions(+), 94 deletions(-) create mode 100644 src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkreddit.java delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/command/Command_magicalsaddle.java create mode 100644 src/main/java/me/totalfreedom/totalfreedommod/command/Command_unlinkreddit.java create mode 100644 src/main/java/me/totalfreedom/totalfreedommod/reddit/Reddit.java diff --git a/pom.xml b/pom.xml index 9f71f1e1..d159cec9 100644 --- a/pom.xml +++ b/pom.xml @@ -179,7 +179,7 @@ net.dv8tion JDA - 4.0.0_39 + 4.2.0_168 provided @@ -254,6 +254,12 @@ maven-checkstyle-plugin 3.1.1 + + + net.dean.jraw + JRAW + 1.1.0 + diff --git a/src/main/java/me/totalfreedom/totalfreedommod/FreedomServiceHandler.java b/src/main/java/me/totalfreedom/totalfreedommod/FreedomServiceHandler.java index d8960ab8..bb13eebf 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/FreedomServiceHandler.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/FreedomServiceHandler.java @@ -23,4 +23,34 @@ public class FreedomServiceHandler { return services.size(); } + + public void startServices() + { + for (FreedomService service : getServices()) + { + try + { + service.onStart(); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + } + + public void stopServices() + { + for (FreedomService service : getServices()) + { + try + { + service.onStop(); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + } } \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java index 692f29d9..3bd95496 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java @@ -42,6 +42,7 @@ import me.totalfreedom.totalfreedommod.permissions.PermissionManager; import me.totalfreedom.totalfreedommod.player.PlayerList; import me.totalfreedom.totalfreedommod.punishments.PunishmentList; import me.totalfreedom.totalfreedommod.rank.RankManager; +import me.totalfreedom.totalfreedommod.reddit.Reddit; import me.totalfreedom.totalfreedommod.shop.Shop; import me.totalfreedom.totalfreedommod.shop.Votifier; import me.totalfreedom.totalfreedommod.sql.SQLite; @@ -111,6 +112,7 @@ public class TotalFreedomMod extends JavaPlugin public PermbanList pm; public PermissionManager pem; public ProtectArea pa; + public Reddit rd; public GameRuleHandler gr; public CommandSpy cs; public Cager ca; @@ -229,6 +231,7 @@ public class TotalFreedomMod extends JavaPlugin pm = new PermbanList(); pem = new PermissionManager(); pa = new ProtectArea(); + rd = new Reddit(); gr = new GameRuleHandler(); snp = new SignBlocker(); ew = new EntityWiper(); @@ -271,10 +274,7 @@ public class TotalFreedomMod extends JavaPlugin fab = new FAWEBridge(); wgb = new WorldGuardBridge(); - for (FreedomService service : fsh.getServices()) - { - service.onStart(); - } + fsh.startServices(); FLog.info("Started " + fsh.getServiceAmount() + "services."); @@ -301,10 +301,7 @@ public class TotalFreedomMod extends JavaPlugin public void onDisable() { // Stop services and bridges - for (FreedomService service : fsh.getServices()) - { - service.onStop(); - } + fsh.stopServices(); getServer().getScheduler().cancelTasks(plugin); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/CommandLoader.java b/src/main/java/me/totalfreedom/totalfreedommod/command/CommandLoader.java index 9da62dee..fd11e02d 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/CommandLoader.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/CommandLoader.java @@ -65,7 +65,6 @@ public class CommandLoader extends FreedomService { try { - FLog.debug("Loading command class " + commandClass.getSimpleName()); add(commandClass.newInstance()); } catch (InstantiationException | IllegalAccessException | ExceptionInInitializerError ex) @@ -73,10 +72,7 @@ public class CommandLoader extends FreedomService FLog.warning("Failed to register command: /" + commandClass.getSimpleName().replace("Command_" , "")); } } - } - public int getCommandAmount() - { - return commands.size(); + FLog.info("Loaded " + commands.size() + " commands"); } } \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/CommandPermissions.java b/src/main/java/me/totalfreedom/totalfreedommod/command/CommandPermissions.java index b5b00c9c..3db48004 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/CommandPermissions.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/CommandPermissions.java @@ -8,7 +8,7 @@ import me.totalfreedom.totalfreedommod.rank.Rank; public @interface CommandPermissions { - Rank level() default Rank.IMPOSTOR; + Rank level() default Rank.NON_OP; SourceType source() default SourceType.BOTH; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkreddit.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkreddit.java new file mode 100644 index 00000000..2cb92990 --- /dev/null +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkreddit.java @@ -0,0 +1,69 @@ +package me.totalfreedom.totalfreedommod.command; + +import me.totalfreedom.totalfreedommod.rank.Rank; +import net.dean.jraw.ApiException; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +@CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME) +@CommandParameters(description = "Link your reddit account", usage = "/ >") +public class Command_linkreddit extends FreedomCommand +{ + + public boolean run(final CommandSender sender, final Player playerSender, final Command cmd, final String commandLabel, final String[] args, final boolean senderIsConsole) + { + if (!plugin.rd.enabled) + { + msg("The reddit system is currently disabled.", ChatColor.RED); + return true; + } + + if (getData(playerSender).getRedditUsername() != null) + { + msg("Your reddit account is already linked."); + return true; + } + + if (args.length == 0) + { + return false; + } + + if (args.length == 1 && !args[0].equals("code")) + { + String username = args[0]; + String code = plugin.rd.addLinkCode(getData(playerSender), username); + + try + { + plugin.rd.sendModMessage(username, "Link Code", "Please run the following in-game to link your reddit account: /linkreddit code " + code); + } + catch (ApiException e) + { + msg("Could not find a reddit account by the name of " + args[0], ChatColor.RED); + return true; + } + + msg("A linking code has been sent to " + username + ". Please check your mod mail at " + ChatColor.AQUA + "https://www.reddit.com/message/moderator", ChatColor.GREEN); + return true; + } + + String code = args[1]; + String username = plugin.rd.checkLinkCode(code); + + if (username == null) + { + msg(code + " is not a valid code", ChatColor.RED); + return true; + } + + msg("Successfully linked the reddit account " + username + " to your Minecraft account.", ChatColor.GREEN); + if (plugin.rd.updateFlair(playerSender)) + { + msg("Your flair has been updated.", ChatColor.GREEN); + } + return true; + } +} diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_magicalsaddle.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_magicalsaddle.java deleted file mode 100644 index 7241b521..00000000 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_magicalsaddle.java +++ /dev/null @@ -1,29 +0,0 @@ -package me.totalfreedom.totalfreedommod.command; - -import me.totalfreedom.totalfreedommod.rank.Rank; -import me.totalfreedom.totalfreedommod.shop.ShopItem; -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -@CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME) -@CommandParameters(description = "Obtain a magical saddle.", usage = "/") -public class Command_magicalsaddle extends FreedomCommand -{ - - @Override - public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) - { - if (plugin.pl.getData(playerSender).hasItem(ShopItem.MAGICAL_SADDLE)) - { - playerSender.getInventory().addItem(plugin.sh.getMagicalSaddle()); - msg("You have been given a Magical Saddle", ChatColor.GREEN); - } - else - { - msg("You do not own a Magical Saddle! Purchase one from the shop.", ChatColor.RED); - } - return true; - } -} \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_totalfreedommod.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_totalfreedommod.java index a29b4ffa..c5194c55 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_totalfreedommod.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_totalfreedommod.java @@ -35,11 +35,9 @@ public class Command_totalfreedommod extends FreedomCommand } plugin.config.load(); - for (FreedomService service : plugin.fsh.getServices()) - { - service.onStop(); - service.onStart(); - } + + plugin.fsh.stopServices(); + plugin.fsh.startServices(); final String message = String.format("%s v%s reloaded.", TotalFreedomMod.pluginName, diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_unlinkreddit.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_unlinkreddit.java new file mode 100644 index 00000000..b52e2ef5 --- /dev/null +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_unlinkreddit.java @@ -0,0 +1,41 @@ +package me.totalfreedom.totalfreedommod.command; + +import me.totalfreedom.totalfreedommod.player.PlayerData; +import me.totalfreedom.totalfreedommod.rank.Rank; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +@CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME) +@CommandParameters(description = "Unlink your reddit account", usage = "/") +public class Command_unlinkreddit extends FreedomCommand +{ + + @Override + public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) + { + if (!plugin.rd.enabled) + { + msg("The reddit system is currently disabled.", ChatColor.RED); + return true; + } + + PlayerData data = getData(playerSender); + + if (data.getRedditUsername() == null) + { + msg("You don't have a reddit account linked.", ChatColor.RED); + return true; + } + + plugin.rd.removeFlair(data.getRedditUsername()); + + data.setRedditUsername(null); + plugin.pl.save(data); + + msg("Successfully unlinked your reddit account. If you had a flair, it was removed.", ChatColor.GREEN); + + return true; + } +} diff --git a/src/main/java/me/totalfreedom/totalfreedommod/config/ConfigEntry.java b/src/main/java/me/totalfreedom/totalfreedommod/config/ConfigEntry.java index 7094625e..4d3bf2d5 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/config/ConfigEntry.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/config/ConfigEntry.java @@ -83,6 +83,21 @@ public enum ConfigEntry DISCORD_EXECUTIVE_ROLE_ID(String.class, "discord.executive_role_id"), DISCORD_SERVER_OWNER_ROLE_ID(String.class, "discord.server_owner_role_id"), // + REDDIT_SUBREDDIT_NAME(String.class, "reddit.subreddit_name"), + REDDIT_USERNAME(String.class, "reddit.username"), + REDDIT_PASSWORD(String.class, "reddit.password"), + REDDIT_CLIENT_ID(String.class, "reddit.client_id"), + REDDIT_CLIENT_SECRET(String.class, "reddit.client_secret"), + REDDIT_DONATOR_FLAIR_ID(String.class, "reddit.donator_flair_id"), + REDDIT_MASTER_BUILDER_FLAIR_ID(String.class, "reddit.master_builder_flair_id"), + REDDIT_SUPER_FLAIR_ID(String.class, "reddit.super_flair_id"), + REDDIT_TELNET_FLAIR_ID(String.class, "reddit.telnet_flair_id"), + REDDIT_SENIOR_FLAIR_ID(String.class, "reddit.senior_flair_id"), + REDDIT_DEVELOPER_FLAIR_ID(String.class, "reddit.developer_flair_id"), + REDDIT_ASSISTANT_EXECUTIVE_FLAIR_ID(String.class, "reddit.assistant_executive_flair_id"), + REDDIT_EXECUTIVE_FLAIR_ID(String.class, "reddit.executive_flair_id"), + REDDIT_SERVER_OWNER_FLAIR_ID(String.class, "reddit.server_owner_flair_id"), + // DONATION_PROBOARDS_URL(String.class, "donation.proboards_url"), DONATION_GROUP_ID(String.class, "donation.donator_group_id"), DONATION_SESSION_ID(String.class, "donation.session_id"), @@ -103,7 +118,6 @@ public enum ConfigEntry SHOP_PRICES_RIDEABLE_PEARL(Integer.class, "shop.prices.rideable_pearl"), SHOP_PRICES_STACKING_POTATO(Integer.class, "shop.prices.stacking_potato"), SHOP_PRICES_CLOWN_FISH(Integer.class, "shop.prices.clown_fish"), - SHOP_PRICES_MAGICAL_SADDLE(Integer.class, "shop.prices.magical_saddle"), // ADMINLIST_CLEAN_THESHOLD_HOURS(Integer.class, "adminlist.clean_threshold_hours"), ADMINLIST_CONSOLE_IS_SENIOR(Boolean.class, "adminlist.console_is_senior"), diff --git a/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java b/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java index e39dcd95..8198b533 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java @@ -104,7 +104,7 @@ public class Discord extends FreedomService } catch (NoClassDefFoundError e) { - FLog.warning("The JDA plugin is not installed, therefore the bot cannot start."); + FLog.warning("The JDA plugin is not installed, therefore the discord bot cannot start."); FLog.warning("To resolve this error, please download the latest JDA from: https://github.com/TFPatches/Minecraft-JDA/releases"); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/fun/ItemFun.java b/src/main/java/me/totalfreedom/totalfreedommod/fun/ItemFun.java index 32a14036..4bdfc3dc 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/fun/ItemFun.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/fun/ItemFun.java @@ -107,29 +107,14 @@ public class ItemFun extends FreedomService if (player.getInventory().getItemInMainHand().getType().equals(Material.POTATO) || entity.getType().equals(EntityType.PLAYER)) { - if (plugin.sh.isRealItem(plugin.pl.getData(player), ShopItem.STACKING_POTATO, player.getInventory().getItemInMainHand(), plugin.sh.getStackingPotato())) + if (plugin.sh.isRealItem(plugin.pl.getData(player), ShopItem.STACKING_POTATO, player.getInventory(), plugin.sh.getStackingPotato())) { - player.addPassenger(entity); - player.sendMessage("Stacked " + entity.getName()); - } - } - - if (onCooldown(player, ShopItem.MAGICAL_SADDLE)) - { - player.sendMessage(ChatColor.RED + "You're currently on a cool-down for 15 seconds."); - return; - } - - if (player.getInventory().getItemInMainHand().getType().equals(Material.SADDLE) || player.getInventory().getItemInOffHand().getType().equals(Material.SADDLE) || entity.getType().equals(EntityType.PLAYER)) - { - if (plugin.sh.isRealItem(plugin.pl.getData(player), ShopItem.MAGICAL_SADDLE, player.getInventory().getItemInMainHand(), plugin.sh.getMagicalSaddle()) || plugin.sh.isRealItem(plugin.pl.getData(player), ShopItem.MAGICAL_SADDLE, player.getInventory().getItemInOffHand(), plugin.sh.getMagicalSaddle())) - { - entity.addPassenger(player); - cooldown(player, ShopItem.MAGICAL_SADDLE, 15); if (entity instanceof Player) { - entity.sendMessage(ChatColor.GRAY + player.getName() + " is now riding you, run /eject to eject them."); + return; } + player.addPassenger(entity); + player.sendMessage("Stacked " + entity.getName()); } } } @@ -152,7 +137,7 @@ public class ItemFun extends FreedomService return; } - if (!plugin.sh.isRealItem(plugin.pl.getData(player), ShopItem.STACKING_POTATO, player.getInventory().getItemInMainHand(), plugin.sh.getStackingPotato())) + if (!plugin.sh.isRealItem(plugin.pl.getData(player), ShopItem.STACKING_POTATO, player.getInventory(), plugin.sh.getStackingPotato())) { return; } @@ -215,7 +200,7 @@ public class ItemFun extends FreedomService case BLAZE_ROD: { - if (!plugin.sh.isRealItem(plugin.pl.getData(player), ShopItem.LIGHTNING_ROD, player.getInventory().getItemInMainHand(), plugin.sh.getLightningRod())) + if (!plugin.sh.isRealItem(plugin.pl.getData(player), ShopItem.LIGHTNING_ROD, player.getInventory(), plugin.sh.getLightningRod())) { break; } @@ -239,7 +224,7 @@ public class ItemFun extends FreedomService case FIRE_CHARGE: { - if (!plugin.sh.isRealItem(plugin.pl.getData(player), ShopItem.FIRE_BALL, player.getInventory().getItemInMainHand(), plugin.sh.getFireBall())) + if (!plugin.sh.isRealItem(plugin.pl.getData(player), ShopItem.FIRE_BALL, player.getInventory(), plugin.sh.getFireBall())) { break; } @@ -263,7 +248,7 @@ public class ItemFun extends FreedomService final int RADIUS_HIT = 5; final int STRENGTH = 4; - if (!plugin.sh.isRealItem(plugin.pl.getData(player), ShopItem.CLOWN_FISH, player.getInventory().getItemInMainHand(), plugin.sh.getClownFish())) + if (!plugin.sh.isRealItem(plugin.pl.getData(player), ShopItem.CLOWN_FISH, player.getInventory(), plugin.sh.getClownFish())) { break; } @@ -329,7 +314,7 @@ public class ItemFun extends FreedomService if (entity instanceof EnderPearl && entity.getShooter() instanceof Player) { Player player = (Player)entity.getShooter(); - if (plugin.sh.isRealItem(plugin.pl.getData(player), ShopItem.RIDEABLE_PEARL, player.getInventory().getItemInMainHand(), plugin.sh.getRideablePearl())) + if (plugin.sh.isRealItem(plugin.pl.getData(player), ShopItem.RIDEABLE_PEARL, player.getInventory(), plugin.sh.getRideablePearl())) { entity.addPassenger(player); } @@ -390,7 +375,7 @@ public class ItemFun extends FreedomService PlayerData data = plugin.pl.getData(player); PlayerInventory inv = event.getPlayer().getInventory(); ItemStack rod = inv.getItemInMainHand(); - if (plugin.sh.isRealItem(plugin.pl.getData(player), ShopItem.GRAPPLING_HOOK, player.getInventory().getItemInMainHand(), plugin.sh.getGrapplingHook())) + if (plugin.sh.isRealItem(plugin.pl.getData(player), ShopItem.GRAPPLING_HOOK, player.getInventory(), plugin.sh.getGrapplingHook())) { if (event.getState() == PlayerFishEvent.State.REEL_IN || event.getState() == PlayerFishEvent.State.IN_GROUND) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/player/PlayerData.java b/src/main/java/me/totalfreedom/totalfreedommod/player/PlayerData.java index 60db7987..8bac6c98 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/player/PlayerData.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/player/PlayerData.java @@ -50,6 +50,9 @@ public class PlayerData private int totalVotes; @Setter private boolean displayDiscord = true; + @Getter + @Setter + private String redditUsername; public PlayerData(ResultSet resultSet) { @@ -73,6 +76,7 @@ public class PlayerData items.addAll(FUtil.stringToList(resultSet.getString("items"))); totalVotes = resultSet.getInt("total_votes"); displayDiscord = resultSet.getBoolean("display_discord"); + redditUsername = resultSet.getString("reddit_username"); } catch (SQLException e) { @@ -108,7 +112,8 @@ public class PlayerData .append("- Display Discord: ").append(displayDiscord).append("\n") .append("- Tag: ").append(FUtil.colorize(tag)).append(ChatColor.GRAY).append("\n") .append("- Ride Mode: ").append(rideMode).append("\n") - .append("- Backup Codes: ").append(backupCodes.size()).append("/10").append("\n"); + .append("- Backup Codes: ").append(backupCodes.size()).append("/10").append("\n") + .append("- Reddit Username: ").append(redditUsername); return output.toString(); } @@ -244,6 +249,7 @@ public class PlayerData put("items", FUtil.listToString(items)); put("total_votes", totalVotes); put("display_discord", displayDiscord); + put("reddit_username", redditUsername); }}; return map; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/player/PlayerList.java b/src/main/java/me/totalfreedom/totalfreedommod/player/PlayerList.java index 37ab2715..8f7c820b 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/player/PlayerList.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/player/PlayerList.java @@ -178,15 +178,7 @@ public class PlayerList extends FreedomService if (plugin.al.isAdminImpostor(player)) { - Admin admin = null; - for (Admin loopAdmin : plugin.al.getAllAdmins()) - { - if (loopAdmin.getName().equalsIgnoreCase(player.getName())) - { - admin = loopAdmin; - break; - } - } + Admin admin = plugin.al.getEntryByName(player.getName()); admin.setLastLogin(new Date()); admin.addIp(FUtil.getIp(player)); plugin.al.updateTables(); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/rank/RankManager.java b/src/main/java/me/totalfreedom/totalfreedommod/rank/RankManager.java index 0390ad7f..899a66eb 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/rank/RankManager.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/rank/RankManager.java @@ -192,6 +192,7 @@ public class RankManager extends FreedomService fPlayer.setTag(getTag(player, display.getColoredTag())); updatePlayerTeam(player); plugin.pem.setPermissions(player); + plugin.rd.updateFlair(player); } @EventHandler(priority = EventPriority.MONITOR) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/reddit/Reddit.java b/src/main/java/me/totalfreedom/totalfreedommod/reddit/Reddit.java new file mode 100644 index 00000000..a9a87d97 --- /dev/null +++ b/src/main/java/me/totalfreedom/totalfreedommod/reddit/Reddit.java @@ -0,0 +1,226 @@ +package me.totalfreedom.totalfreedommod.reddit; + +import com.google.common.base.Strings; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import me.totalfreedom.totalfreedommod.FreedomService; +import me.totalfreedom.totalfreedommod.config.ConfigEntry; +import me.totalfreedom.totalfreedommod.player.PlayerData; +import me.totalfreedom.totalfreedommod.rank.Displayable; +import me.totalfreedom.totalfreedommod.rank.Rank; +import me.totalfreedom.totalfreedommod.rank.Title; +import me.totalfreedom.totalfreedommod.util.FLog; +import me.totalfreedom.totalfreedommod.util.FUtil; +import net.dean.jraw.ApiException; +import net.dean.jraw.RedditClient; +import net.dean.jraw.http.OkHttpNetworkAdapter; +import net.dean.jraw.http.UserAgent; +import net.dean.jraw.models.CurrentFlair; +import net.dean.jraw.models.Flair; +import net.dean.jraw.oauth.Credentials; +import net.dean.jraw.oauth.OAuthHelper; +import net.dean.jraw.references.SubredditReference; +import org.bukkit.entity.Player; + +public class Reddit extends FreedomService +{ + + private final String SUBREDDIT_NAME = ConfigEntry.REDDIT_SUBREDDIT_NAME.getString(); + private final String USERNAME = ConfigEntry.REDDIT_USERNAME.getString(); + private final String PASSWORD = ConfigEntry.REDDIT_PASSWORD.getString(); + private final String CLIENT_ID = ConfigEntry.REDDIT_CLIENT_ID.getString(); + private final String CLIENT_SECRET = ConfigEntry.REDDIT_CLIENT_SECRET.getString(); + + private final UserAgent userAgent = new UserAgent("bot", "me.totalfreedom.reddit", plugin.build.version, USERNAME); + private final Credentials credentials = Credentials.script(USERNAME, PASSWORD, CLIENT_ID, CLIENT_SECRET); + + private RedditClient reddit = null; + private SubredditReference subreddit = null; + + private HashMap linkCodes = new HashMap<>(); + private HashMap pending = new HashMap<>(); + + private Map flairList = new HashMap<>(); + + private Map flairNameList = new HashMap<>(); + + private List noFlairDisplays = Arrays.asList(Title.VERIFIED_ADMIN, Rank.IMPOSTOR, Rank.NON_OP, Rank.OP); + + public boolean enabled = false; + + @Override + public void onStart() + { + enabled = !Strings.isNullOrEmpty(ConfigEntry.REDDIT_CLIENT_ID.getString()); + if (!enabled) + { + return; + } + + if (reddit == null) + { + try + { + reddit = OAuthHelper.automatic(new OkHttpNetworkAdapter(userAgent), credentials); + reddit.setLogHttp(FUtil.inDeveloperMode()); + } + catch (NoClassDefFoundError e) + { + FLog.warning("The JRAW plugin is not installed, therefore the reddit service cannot start."); + FLog.warning("To resolve this error, please download the latest JRAW from: https://github.com/TFPatches/Minecraft-JRAW/releases"); + enabled = false; + return; + } + catch (NullPointerException e) + { + FLog.warning("Invalid reddit credentials specified, please double check everything in the config."); + enabled = false; + return; + } + } + + if (subreddit == null) + { + subreddit = reddit.subreddit(SUBREDDIT_NAME); + } + + loadFlairList(); + } + + @Override + public void onStop() + { + } + + public void setFlair(String username, String flairID) + { + List flairs = subreddit.userFlairOptions(); + Flair flair = null; + for (Flair f : flairs) + { + if (f.getId().equals(flairID)) + { + flair = f; + break; + } + } + + if (flair == null) + { + return; + } + + subreddit.otherUserFlair(username).updateToTemplate(flair.getId(), ""); + } + + public void removeFlair(String username) + { + subreddit.otherUserFlair(username).updateToTemplate("", ""); + } + + public void sendModMessage(String username, String subject, String body) throws ApiException + { + reddit.me().inbox().compose("/r/" + SUBREDDIT_NAME, username, subject, body); + } + + public String addLinkCode(PlayerData data, String username) + { + String code = FUtil.randomString(10); + linkCodes.put(code, data); + pending.put(data, username); + return code; + } + + public String checkLinkCode(String code) + { + PlayerData data = linkCodes.get(code); + String username = pending.get(data); + if (data == null || username == null) + { + return null; + } + + linkCodes.remove(code); + pending.remove(data); + + data.setRedditUsername(username); + plugin.pl.save(data); + + return username; + } + + public boolean updateFlair(Player player) + { + if (!enabled) + { + return false; + } + + PlayerData data = plugin.pl.getData(player); + String username = data.getRedditUsername(); + Displayable display = plugin.rm.getDisplay(player); + if (username == null) + { + FLog.debug("No reddit account"); + return false; + } + + CurrentFlair currentFlair = subreddit.otherUserFlair(username).current(); + String currentFlairName = currentFlair.getText(); + String currentFlairID = currentFlair.getId(); + String neededFlairID = flairList.get(display); + String neededFlairName = flairNameList.get(display); + + FLog.debug("Current ID: " + currentFlairID); + FLog.debug("Needed ID: " + neededFlairID); + + FLog.debug("Current Name: " + currentFlairName); + FLog.debug("Needed Name: " + neededFlairName); + + + // Work around + //if (currentFlairID == null && neededFlairID != null || currentFlairID != null && neededFlairID != null && !currentFlairID.equals(neededFlairID)) + if (Strings.isNullOrEmpty(currentFlairName) && neededFlairName != null || !Strings.isNullOrEmpty(currentFlairName) && neededFlairName != null && !currentFlairName.equals(neededFlairName)) + { + FLog.debug("Setting flair"); + setFlair(username, neededFlairID); + return true; + } + + if (noFlairDisplays.contains(display) && !Strings.isNullOrEmpty(currentFlairName)) + { + FLog.debug("Removing flair"); + removeFlair(username); + return true; + } + + return false; + } + + public void loadFlairList() + { + flairList.put(Title.OWNER, ConfigEntry.REDDIT_SERVER_OWNER_FLAIR_ID.getString()); + flairList.put(Title.EXECUTIVE, ConfigEntry.REDDIT_EXECUTIVE_FLAIR_ID.getString()); + flairList.put(Title.ASSISTANT_EXECUTIVE, ConfigEntry.REDDIT_ASSISTANT_EXECUTIVE_FLAIR_ID.getString()); + flairList.put(Title.DEVELOPER, ConfigEntry.REDDIT_DEVELOPER_FLAIR_ID.getString()); + flairList.put(Rank.SENIOR_ADMIN, ConfigEntry.REDDIT_SENIOR_FLAIR_ID.getString()); + flairList.put(Rank.TELNET_ADMIN, ConfigEntry.REDDIT_TELNET_FLAIR_ID.getString()); + flairList.put(Rank.SUPER_ADMIN, ConfigEntry.REDDIT_SUPER_FLAIR_ID.getString()); + flairList.put(Title.MASTER_BUILDER, ConfigEntry.REDDIT_MASTER_BUILDER_FLAIR_ID.getString()); + flairList.put(Title.DONATOR, ConfigEntry.REDDIT_DONATOR_FLAIR_ID.getString()); + + // Work around because the current flair id keeps returning null, either a JRAW bug or a reddit bug + flairNameList.put(Title.OWNER, "Server Owner"); + flairNameList.put(Title.EXECUTIVE, "Executive"); + flairNameList.put(Title.ASSISTANT_EXECUTIVE, "Assistant Executive"); + flairNameList.put(Title.DEVELOPER, "Developer"); + flairNameList.put(Rank.SENIOR_ADMIN, "Senior Admin"); + flairNameList.put(Rank.TELNET_ADMIN, "Telnet Admin"); + flairNameList.put(Rank.SUPER_ADMIN, "Super Admin"); + flairNameList.put(Title.MASTER_BUILDER, "Master Builder"); + flairNameList.put(Title.DONATOR, "Premium"); + } + +} diff --git a/src/main/java/me/totalfreedom/totalfreedommod/shop/Shop.java b/src/main/java/me/totalfreedom/totalfreedommod/shop/Shop.java index 5b355ece..b9207b21 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/shop/Shop.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/shop/Shop.java @@ -21,6 +21,7 @@ import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.PlayerInventory; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitTask; @@ -168,6 +169,16 @@ public class Shop extends FreedomService return gui; } + public boolean isRealItem(PlayerData data, ShopItem shopItem, PlayerInventory inventory, ItemStack realItem) + { + if (isRealItem(data, shopItem, inventory.getItemInMainHand(), realItem) || isRealItem(data, shopItem, inventory.getItemInOffHand(), realItem)) + { + return true; + } + + return false; + } + public boolean isRealItem(PlayerData data, ShopItem shopItem, ItemStack givenItem, ItemStack realItem) { if (!data.hasItem(shopItem) || !givenItem.getType().equals(realItem.getType())) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/shop/ShopItem.java b/src/main/java/me/totalfreedom/totalfreedommod/shop/ShopItem.java index 3bbcee01..6eac77c6 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/shop/ShopItem.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/shop/ShopItem.java @@ -12,18 +12,17 @@ public enum ShopItem FIRE_BALL("Fire Ball", Material.FIRE_CHARGE, 14, ConfigEntry.SHOP_PRICES_FIRE_BALL, ChatColor.RED, "fireBall", "/fireball"), RIDEABLE_PEARL("Rideable Ender Pearl", Material.ENDER_PEARL, 16, ConfigEntry.SHOP_PRICES_RIDEABLE_PEARL, ChatColor.DARK_PURPLE, "rideablePearl", "/rideablepearl"), STACKING_POTATO("Stacking Potato", Material.POTATO, 20, ConfigEntry.SHOP_PRICES_STACKING_POTATO, ChatColor.YELLOW, "stackingPotato", "/stackingpotato"), - MAGICAL_SADDLE("Magical Saddle", Material.SADDLE, 22, ConfigEntry.SHOP_PRICES_MAGICAL_SADDLE, ChatColor.DARK_GREEN, "magicalSaddle", "/magicalsaddle"), CLOWN_FISH("Clown Fish", Material.TROPICAL_FISH, 24, ConfigEntry.SHOP_PRICES_CLOWN_FISH, ChatColor.GOLD, "clownFish", "/clownfish"); /* Shop GUI Layout: Dimensions: 9x4 = 36 - Key: g = Grappling Hook, l = Lightning Rod, f = Fire Ball, r = Rideable Ender Pearl, s = Stacking Potato, c = Clown Fish, m = Magical Saddle $ = Coins} + Key: g = Grappling Hook, l = Lightning Rod, f = Fire Ball, r = Rideable Ender Pearl, s = Stacking Potato, c = Clown Fish, $ = Coins} --------- -g-l-f-r- - --s-m-c-- + --s---c-- --------$ */ diff --git a/src/main/java/me/totalfreedom/totalfreedommod/sql/SQLite.java b/src/main/java/me/totalfreedom/totalfreedommod/sql/SQLite.java index 36268312..977ee176 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/sql/SQLite.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/sql/SQLite.java @@ -43,7 +43,6 @@ public class SQLite extends FreedomService catch (SQLException e) { FLog.severe("Failed to connect to the database: " + e.getMessage()); - FLog.info("Successfully disconnected from the database."); } } @@ -83,7 +82,7 @@ public class SQLite extends FreedomService { try { - connection.createStatement().execute("CREATE TABLE `admins` (`username` VARCHAR NOT NULL, `ips` VARCHAR NOT NULL, `rank` VARCHAR NOT NULL, `active` BOOLEAN NOT NULL, `last_login` LONG NOT NULL, `login_message` VARCHAR, `command_spy` BOOLEAN NOT NULL, `potion_spy` BOOLEAN NOT NULL, `ac_format` VARCHAR, `old_tags` BOOLEAN NOT NULL, `log_stick` BOOLEAN NOT NULL, `display_discord` BOOLEAN NOT NULL);"); + connection.createStatement().execute("CREATE TABLE `admins` (`username` VARCHAR NOT NULL, `ips` VARCHAR NOT NULL, `rank` VARCHAR NOT NULL, `active` BOOLEAN NOT NULL, `last_login` LONG NOT NULL, `login_message` VARCHAR, `command_spy` BOOLEAN NOT NULL, `potion_spy` BOOLEAN NOT NULL, `ac_format` VARCHAR, `old_tags` BOOLEAN NOT NULL, `log_stick` BOOLEAN NOT NULL);"); } catch (SQLException e) { @@ -94,7 +93,7 @@ public class SQLite extends FreedomService { try { - connection.createStatement().execute("CREATE TABLE `players` (`username` VARCHAR NOT NULL, `ips` VARCHAR NOT NULL, `notes` VARCHAR, `tag` VARCHAR, `discord_id` VARCHAR, `backup_codes` VARCHAR, `donator` BOOLEAN NOT NULL, `master_builder` BOOLEAN NOT NULL,`verification` BOOLEAN NOT NULL, `ride_mode` VARCHAR NOT NULL, `coins` INT NOT NULL, `items` VARCHAR, `total_votes` INT NOT NULL);"); + connection.createStatement().execute("CREATE TABLE `players` (`username` VARCHAR NOT NULL, `ips` VARCHAR NOT NULL, `notes` VARCHAR, `tag` VARCHAR, `discord_id` VARCHAR, `backup_codes` VARCHAR, `donator` BOOLEAN NOT NULL, `master_builder` BOOLEAN NOT NULL,`verification` BOOLEAN NOT NULL, `ride_mode` VARCHAR NOT NULL, `coins` INT NOT NULL, `items` VARCHAR, `total_votes` INT NOT NULL, `display_discord` BOOLEAN NOT NULL, `reddit_username` VARCHAR NOT NULL);"); } catch (SQLException e) { @@ -271,7 +270,7 @@ public class SQLite extends FreedomService { try { - PreparedStatement statement = connection.prepareStatement("INSERT INTO players VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); + PreparedStatement statement = connection.prepareStatement("INSERT INTO players VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); statement.setString(1, player.getName()); statement.setString(2, FUtil.listToString(player.getIps())); statement.setString(3, FUtil.listToString(player.getNotes())); @@ -286,6 +285,7 @@ public class SQLite extends FreedomService statement.setString(12, FUtil.listToString(player.getItems())); statement.setInt(13, player.getTotalVotes()); statement.setBoolean(14, player.doesDisplayDiscord()); + statement.setString(15, player.getRedditUsername()); statement.executeUpdate(); } catch (SQLException e) diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index ec06bb09..c04675ab 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -83,6 +83,37 @@ discord: executive_role_id: '' # Owner role ID server_owner_role_id: '' + +# Reddit +reddit: + # Name of your subreddit (the r/NAME, excluding r/) + subreddit_name: 'TotalFreedom' + # Username of the bot account + username: '' + # Bot account password + password: '' + # Developer app id (Make one at https://www.reddit.com/prefs/apps (make sure the type is script)) + client_id: '' + # Developer app secret + client_secret: '' + # Donator flair ID + donator_flair_id: '' + # Master Builder flair ID + master_builder_flair_id: '' + # Super Admin flair ID + super_flair_id: '' + # Telnet Admin flair ID + telnet_flair_id: '' + # Senior Admin flair ID + senior_flair_id: '' + # Developer flair ID + developer_flair_id: '' + # Assistant Executive Admin flair ID + assistant_executive_flair_id: '' + # Executive Admin flair ID + executive_flair_id: '' + # Owner flair ID + server_owner_flair_id: '' # The shop shop: @@ -124,7 +155,6 @@ shop: rideable_pearl: 700 stacking_potato: 300 clown_fish: 1500 - magical_saddle: 250 # Admin list adminlist: From ca8758cbb1d3258381665716831862450145ce6d Mon Sep 17 00:00:00 2001 From: Telesphoreo Date: Tue, 4 Aug 2020 17:31:17 -0500 Subject: [PATCH 11/54] oup --- .../me/totalfreedom/totalfreedommod/command/Command_deop.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java index d9c500de..3704a1d3 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java @@ -36,7 +36,7 @@ public class Command_deop extends FreedomCommand if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName().toLowerCase().contains(targetName) || player.getName().contains(targetName) || player.getDisplayName().contains(targetName)) { - if (player.isOp() && plugin.al.isVanished(player)) + if (player.isOp() && !plugin.al.isVanished(player)) { matchedPlayerNames.add(player.getName()); player.setOp(false); From 7224319faef036b657ca938ce70a2d7a6c31b9dd Mon Sep 17 00:00:00 2001 From: DragonSlayer2189 <59424467+DragonSlayer2189@users.noreply.github.com> Date: Tue, 4 Aug 2020 19:13:35 -0400 Subject: [PATCH 12/54] Removed "Build" "break-block" and "place-block" removed these flags from restricted worlds due to it breaking gravity blocks, redstone, pistons, and various other things, blocks still cant be broken due to the onblockplace and onblockbreak event handlers idk how to add this but /summon, /spawnmob, /etree, /ebigtree, and any of those commands aliases also need to be blocked due to them being able to bypass these restrictions --- .../totalfreedom/totalfreedommod/world/WorldRestrictions.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/world/WorldRestrictions.java b/src/main/java/me/totalfreedom/totalfreedommod/world/WorldRestrictions.java index 73d69d81..6b2f31f8 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/world/WorldRestrictions.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/world/WorldRestrictions.java @@ -30,9 +30,6 @@ public class WorldRestrictions extends FreedomService private final Map, Object> flags = new HashMap, Object>() {{ - put(Flags.BLOCK_PLACE, StateFlag.State.DENY); - put(Flags.BLOCK_BREAK, StateFlag.State.DENY); - put(Flags.BUILD, StateFlag.State.DENY); put(Flags.PLACE_VEHICLE, StateFlag.State.DENY); put(Flags.DESTROY_VEHICLE, StateFlag.State.DENY); put(Flags.ENTITY_ITEM_FRAME_DESTROY, StateFlag.State.DENY); From 880b78e528efd6e6cb6e404790975996f2f8b6c8 Mon Sep 17 00:00:00 2001 From: Telesphoreo Date: Wed, 5 Aug 2020 02:01:21 -0500 Subject: [PATCH 13/54] master --- .idea/misc.xml | 2 +- .../totalfreedommod/BackupManager.java | 2 - .../totalfreedommod/TotalFreedomMod.java | 2 +- .../totalfreedommod/admin/AdminList.java | 1 - .../blocking/EventBlocker.java | 13 +- .../blocking/InteractBlocker.java | 1 - .../blocking/command/CommandBlocker.java | 2 +- .../bridge/LibsDisguisesBridge.java | 3 +- .../totalfreedommod/bridge/VanishBridge.java | 14 +- .../totalfreedommod/command/Command_deop.java | 1 - .../command/Command_linkreddit.java | 10 +- .../totalfreedommod/command/Command_list.java | 1 - .../totalfreedommod/command/Command_op.java | 1 - .../command/Command_totalfreedommod.java | 1 - .../command/Command_wildcard.java | 2 - .../totalfreedommod/fun/CurseListener.java | 1 - .../totalfreedommod/reddit/Reddit.java | 10 +- .../totalfreedommod/shop/Shop.java | 30 ++-- .../totalfreedommod/world/WorldManager.java | 4 - src/main/resources/permissions.yml | 153 +++++++++++++++++- src/main/resources/plugin.yml | 2 +- 21 files changed, 197 insertions(+), 59 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 43612005..982bac40 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -7,5 +7,5 @@ - + \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/BackupManager.java b/src/main/java/me/totalfreedom/totalfreedommod/BackupManager.java index e70033d3..43f84789 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/BackupManager.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/BackupManager.java @@ -1,6 +1,5 @@ package me.totalfreedom.totalfreedommod; -import com.sk89q.worldedit.bukkit.BukkitConfiguration; import java.io.File; import me.totalfreedom.totalfreedommod.banning.PermbanList; import me.totalfreedom.totalfreedommod.config.YamlConfig; @@ -9,7 +8,6 @@ import me.totalfreedom.totalfreedommod.punishments.PunishmentList; import me.totalfreedom.totalfreedommod.util.FLog; import me.totalfreedom.totalfreedommod.util.FUtil; import org.bukkit.util.FileUtil; -import org.yaml.snakeyaml.Yaml; public class BackupManager extends FreedomService { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java index 3bd95496..1b3f2de1 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java @@ -276,7 +276,7 @@ public class TotalFreedomMod extends JavaPlugin fsh.startServices(); - FLog.info("Started " + fsh.getServiceAmount() + "services."); + FLog.info("Started " + fsh.getServiceAmount() + " services."); timer.update(); FLog.info("Version " + pluginVersion + " for " + ServerInterface.COMPILE_NMS_VERSION + " enabled in " + timer.getTotal() + "ms"); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java b/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java index c9fcc5a3..2b4d6c61 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java @@ -20,7 +20,6 @@ import me.totalfreedom.totalfreedommod.util.FUtil; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import org.bukkit.metadata.MetadataValue; public class AdminList extends FreedomService { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/EventBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/EventBlocker.java index 9917d90e..fb792036 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/EventBlocker.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/EventBlocker.java @@ -11,13 +11,21 @@ import org.bukkit.Material; import org.bukkit.attribute.Attribute; import org.bukkit.attribute.AttributeModifier; import org.bukkit.block.data.AnaloguePowerable; -import org.bukkit.block.data.BlockData; import org.bukkit.block.data.Powerable; import org.bukkit.entity.Entity; import org.bukkit.entity.Tameable; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; -import org.bukkit.event.block.*; +import org.bukkit.event.block.BlockBurnEvent; +import org.bukkit.event.block.BlockDispenseEvent; +import org.bukkit.event.block.BlockFromToEvent; +import org.bukkit.event.block.BlockGrowEvent; +import org.bukkit.event.block.BlockIgniteEvent; +import org.bukkit.event.block.BlockPhysicsEvent; +import org.bukkit.event.block.BlockPistonExtendEvent; +import org.bukkit.event.block.BlockPistonRetractEvent; +import org.bukkit.event.block.BlockRedstoneEvent; +import org.bukkit.event.block.LeavesDecayEvent; import org.bukkit.event.entity.EntityCombustEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDeathEvent; @@ -27,7 +35,6 @@ import org.bukkit.event.entity.FireworkExplodeEvent; import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerRespawnEvent; -import org.bukkit.material.Redstone; public class EventBlocker extends FreedomService { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java index f33e740b..b7df3bbe 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java @@ -5,7 +5,6 @@ import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.util.Groups; import org.bukkit.ChatColor; import org.bukkit.Material; -import org.bukkit.block.Biome; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlocker.java index a0414fa2..9e893180 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlocker.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlocker.java @@ -12,6 +12,7 @@ import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.util.FLog; import me.totalfreedom.totalfreedommod.util.FUtil; import org.apache.commons.lang.StringUtils; +import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandMap; import org.bukkit.command.CommandSender; @@ -19,7 +20,6 @@ import org.bukkit.command.SimpleCommandMap; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.player.PlayerCommandPreprocessEvent; -import org.bukkit.Bukkit; import org.bukkit.plugin.SimplePluginManager; public class CommandBlocker extends FreedomService diff --git a/src/main/java/me/totalfreedom/totalfreedommod/bridge/LibsDisguisesBridge.java b/src/main/java/me/totalfreedom/totalfreedommod/bridge/LibsDisguisesBridge.java index 20cc105e..fd9df426 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/bridge/LibsDisguisesBridge.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/bridge/LibsDisguisesBridge.java @@ -1,16 +1,15 @@ package me.totalfreedom.totalfreedommod.bridge; +import me.libraryaddict.disguise.BlockedDisguises; import me.libraryaddict.disguise.DisguiseAPI; import me.libraryaddict.disguise.LibsDisguises; import me.totalfreedom.totalfreedommod.FreedomService; import me.totalfreedom.totalfreedommod.util.FLog; -import me.libraryaddict.disguise.BlockedDisguises; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; public class LibsDisguisesBridge extends FreedomService { - private LibsDisguises libsDisguisesPlugin = null; @Override diff --git a/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java b/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java index 81b08c19..fd380598 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java @@ -6,12 +6,12 @@ import me.totalfreedom.totalfreedommod.FreedomService; import me.totalfreedom.totalfreedommod.player.PlayerData; import me.totalfreedom.totalfreedommod.rank.Displayable; import me.totalfreedom.totalfreedommod.util.FUtil; +import org.bukkit.ChatColor; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; public class VanishBridge extends FreedomService { - @Override public void onStart() { @@ -29,7 +29,11 @@ public class VanishBridge extends FreedomService Displayable display = plugin.rm.getDisplay(player); String tag = display.getColoredTag(); - if (!event.isSilent()) + if (event.isSilent()) + { + plugin.al.messageAllAdmins(ChatColor.GOLD + player.getName() + " silently unvanished."); + } + else { FUtil.bcastMsg(plugin.rm.craftLoginMessage(event.getPlayer(), null)); plugin.dc.messageChatChannel("**" + player.getName() + " joined the server" + "**"); @@ -47,7 +51,11 @@ public class VanishBridge extends FreedomService public void onPlayerVanish(PlayerHideEvent event) { Player player = event.getPlayer(); - if (!event.isSilent()) + if (event.isSilent()) + { + plugin.al.messageAllAdmins(ChatColor.GOLD + player.getName() + " silently vanished."); + } + else { plugin.dc.messageChatChannel("**" + player.getName() + " left the server" + "**"); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java index 3704a1d3..56d7e129 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java @@ -2,7 +2,6 @@ package me.totalfreedom.totalfreedommod.command; import java.util.ArrayList; import java.util.List; -import me.totalfreedom.totalfreedommod.admin.AdminList; import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.util.FUtil; import org.apache.commons.lang.StringUtils; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkreddit.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkreddit.java index 2cb92990..f7d3cf35 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkreddit.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkreddit.java @@ -16,13 +16,13 @@ public class Command_linkreddit extends FreedomCommand { if (!plugin.rd.enabled) { - msg("The reddit system is currently disabled.", ChatColor.RED); + msg("The Reddit system is currently disabled.", ChatColor.RED); return true; } if (getData(playerSender).getRedditUsername() != null) { - msg("Your reddit account is already linked."); + msg("Your Reddit account is already linked."); return true; } @@ -38,11 +38,11 @@ public class Command_linkreddit extends FreedomCommand try { - plugin.rd.sendModMessage(username, "Link Code", "Please run the following in-game to link your reddit account: /linkreddit code " + code); + plugin.rd.sendModMessage(username, "Link Code", "Please run the following in-game to link your Reddit account: /linkreddit code " + code); } catch (ApiException e) { - msg("Could not find a reddit account by the name of " + args[0], ChatColor.RED); + msg("Could not find a Reddit account by the name of " + args[0], ChatColor.RED); return true; } @@ -59,7 +59,7 @@ public class Command_linkreddit extends FreedomCommand return true; } - msg("Successfully linked the reddit account " + username + " to your Minecraft account.", ChatColor.GREEN); + msg("Successfully linked the Reddit account " + username + " to your Minecraft account.", ChatColor.GREEN); if (plugin.rd.updateFlair(playerSender)) { msg("Your flair has been updated.", ChatColor.GREEN); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java index ec8da0db..a3ab50d4 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java @@ -4,7 +4,6 @@ import de.myzelyam.api.vanish.VanishAPI; import java.util.ArrayList; import java.util.List; import me.totalfreedom.totalfreedommod.admin.Admin; -import me.totalfreedom.totalfreedommod.admin.AdminList; import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.rank.Displayable; import me.totalfreedom.totalfreedommod.rank.Rank; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_op.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_op.java index c7afdcca..968d4804 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_op.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_op.java @@ -2,7 +2,6 @@ package me.totalfreedom.totalfreedommod.command; import java.util.ArrayList; import java.util.List; -import me.totalfreedom.totalfreedommod.admin.AdminList; import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.util.FUtil; import org.apache.commons.lang.StringUtils; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_totalfreedommod.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_totalfreedommod.java index c5194c55..432fe0b8 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_totalfreedommod.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_totalfreedommod.java @@ -1,6 +1,5 @@ package me.totalfreedom.totalfreedommod.command; -import me.totalfreedom.totalfreedommod.FreedomService; import me.totalfreedom.totalfreedommod.TotalFreedomMod; import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.rank.Rank; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_wildcard.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_wildcard.java index 64050f4e..2fb09757 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_wildcard.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_wildcard.java @@ -1,11 +1,9 @@ package me.totalfreedom.totalfreedommod.command; -import java.nio.channels.FileLock; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import me.totalfreedom.totalfreedommod.rank.Rank; -import me.totalfreedom.totalfreedommod.util.FLog; import org.apache.commons.lang.StringUtils; import org.bukkit.ChatColor; import org.bukkit.command.Command; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/fun/CurseListener.java b/src/main/java/me/totalfreedom/totalfreedommod/fun/CurseListener.java index 4a29f514..50a8f0c4 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/fun/CurseListener.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/fun/CurseListener.java @@ -11,7 +11,6 @@ import static org.bukkit.event.player.PlayerResourcePackStatusEvent.Status; public class CurseListener extends FreedomService { - public HashMap cursedPlayers = new HashMap(); @Override diff --git a/src/main/java/me/totalfreedom/totalfreedommod/reddit/Reddit.java b/src/main/java/me/totalfreedom/totalfreedommod/reddit/Reddit.java index a9a87d97..937903c0 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/reddit/Reddit.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/reddit/Reddit.java @@ -26,7 +26,6 @@ import org.bukkit.entity.Player; public class Reddit extends FreedomService { - private final String SUBREDDIT_NAME = ConfigEntry.REDDIT_SUBREDDIT_NAME.getString(); private final String USERNAME = ConfigEntry.REDDIT_USERNAME.getString(); private final String PASSWORD = ConfigEntry.REDDIT_PASSWORD.getString(); @@ -53,7 +52,7 @@ public class Reddit extends FreedomService @Override public void onStart() { - enabled = !Strings.isNullOrEmpty(ConfigEntry.REDDIT_CLIENT_ID.getString()); + enabled = ConfigEntry.REDDIT_CLIENT_ID.getString() == null; if (!enabled) { return; @@ -68,14 +67,14 @@ public class Reddit extends FreedomService } catch (NoClassDefFoundError e) { - FLog.warning("The JRAW plugin is not installed, therefore the reddit service cannot start."); + FLog.warning("The JRAW plugin is not installed, therefore the Reddit service cannot start."); FLog.warning("To resolve this error, please download the latest JRAW from: https://github.com/TFPatches/Minecraft-JRAW/releases"); enabled = false; return; } catch (NullPointerException e) { - FLog.warning("Invalid reddit credentials specified, please double check everything in the config."); + FLog.warning("Invalid Reddit credentials specified, please double check everything in the config."); enabled = false; return; } @@ -163,7 +162,7 @@ public class Reddit extends FreedomService Displayable display = plugin.rm.getDisplay(player); if (username == null) { - FLog.debug("No reddit account"); + FLog.debug("No Reddit account"); return false; } @@ -222,5 +221,4 @@ public class Reddit extends FreedomService flairNameList.put(Title.MASTER_BUILDER, "Master Builder"); flairNameList.put(Title.DONATOR, "Premium"); } - } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/shop/Shop.java b/src/main/java/me/totalfreedom/totalfreedommod/shop/Shop.java index b9207b21..6fcecc86 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/shop/Shop.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/shop/Shop.java @@ -7,6 +7,7 @@ import java.util.List; import me.totalfreedom.totalfreedommod.FreedomService; import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.player.PlayerData; +import me.totalfreedom.totalfreedommod.util.FLog; import me.totalfreedom.totalfreedommod.util.FUtil; import org.bukkit.ChatColor; import org.bukkit.Material; @@ -19,7 +20,6 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.PlayerInventory; import org.bukkit.inventory.meta.ItemMeta; @@ -28,7 +28,6 @@ import org.bukkit.scheduler.BukkitTask; public class Shop extends FreedomService { - private BukkitTask reactions; public String reactionString = ""; public Date reactionStartTime; @@ -48,7 +47,6 @@ public class Shop extends FreedomService public void startReactionTimer() { - long interval = ConfigEntry.SHOP_REACTIONS_INTERVAL.getInteger() * 20L; reactions = new BukkitRunnable() @@ -70,6 +68,12 @@ public class Shop extends FreedomService public void startReaction() { + if (!ConfigEntry.SHOP_ENABLED.getBoolean()) + { + FLog.debug("The shop is not enabled, therefore a reaction did not start."); + return; + } + reactionString = FUtil.randomString(ConfigEntry.SHOP_REACTIONS_STRING_LENGTH.getInteger()); FUtil.bcastMsg(prefix + ChatColor.AQUA + "Enter the code above to win " + ChatColor.GOLD + coinsPerReactionWin + ChatColor.AQUA + " coins!", false); @@ -86,6 +90,7 @@ public class Shop extends FreedomService { double seconds = 30; double max = seconds; + @Override public void run() { @@ -133,7 +138,7 @@ public class Shop extends FreedomService reactions.cancel(); } } - + public String getShopPrefix() { return FUtil.colorize(ConfigEntry.SHOP_PREFIX.getString()); @@ -223,7 +228,7 @@ public class Shop extends FreedomService ItemStack itemStack = new ItemStack(Material.FIRE_CHARGE); ItemMeta itemMeta = itemStack.getItemMeta(); itemMeta.setDisplayName(ChatColor.RED + "Fire Ball"); - itemMeta.setLore(Arrays.asList(ChatColor.GOLD+ "Yeet this at people")); + itemMeta.setLore(Arrays.asList(ChatColor.GOLD + "Yeet this at people")); itemStack.setItemMeta(itemMeta); return itemStack; } @@ -259,18 +264,6 @@ public class Shop extends FreedomService return itemStack; } - public ItemStack getMagicalSaddle() - { - ItemStack itemStack = new ItemStack(Material.SADDLE); - ItemMeta itemMeta = itemStack.getItemMeta(); - itemMeta.setDisplayName(ChatColor.DARK_GREEN + "Magical Saddle"); - itemMeta.setLore(Arrays.asList(ChatColor.GREEN + "Ride anything you want...")); - itemMeta.addEnchant(Enchantment.DURABILITY, 1, true); - itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS); - itemStack.setItemMeta(itemMeta); - return itemStack; - } - public boolean canAfford(int price, int coins) { if (coins >= price) @@ -333,7 +326,7 @@ public class Shop extends FreedomService return; } - Player player = (Player) event.getWhoClicked(); + Player player = (Player)event.getWhoClicked(); PlayerData playerData = plugin.pl.getData(player); int price = shopItem.getCost(); int coins = playerData.getCoins(); @@ -355,7 +348,6 @@ public class Shop extends FreedomService { player.sendMessage(ChatColor.GREEN + "Run " + shopItem.getCommand() + " to get one!"); } - } public ShopItem getShopItem(int slot) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/world/WorldManager.java b/src/main/java/me/totalfreedom/totalfreedommod/world/WorldManager.java index 61a95871..edb49cd6 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/world/WorldManager.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/world/WorldManager.java @@ -2,17 +2,13 @@ package me.totalfreedom.totalfreedommod.world; import me.totalfreedom.totalfreedommod.FreedomService; import me.totalfreedom.totalfreedommod.config.ConfigEntry; -import me.totalfreedom.totalfreedommod.player.FPlayer; import me.totalfreedom.totalfreedommod.util.FUtil; import org.bukkit.Bukkit; import org.bukkit.ChatColor; -import org.bukkit.Location; import org.bukkit.World; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; -import org.bukkit.event.player.PlayerMoveEvent; -import org.bukkit.event.player.PlayerTeleportEvent; import org.bukkit.event.weather.ThunderChangeEvent; import org.bukkit.event.weather.WeatherChangeEvent; import static me.totalfreedom.totalfreedommod.util.FUtil.playerMsg; diff --git a/src/main/resources/permissions.yml b/src/main/resources/permissions.yml index fc35d125..267cc946 100644 --- a/src/main/resources/permissions.yml +++ b/src/main/resources/permissions.yml @@ -1,5 +1,5 @@ # -# TotalFreedomMod 5.5 Permissions +# TotalFreedomMod 2020.9 Permissions # by ZeroEpoch1969 # @@ -11,9 +11,146 @@ remove: - "voxelsniper" - "bending" + - "essentials" + - "sv" # Operator permission nodes operators: + # Essentials + - "essentials.afk" + - "essentials.afk.message" + - "essentials.afk.auto" + - "essentials.back" + - "essentials.back.*" + - "essentials.balance" + - "essentials.balance.others" + - "essentials.balancetop" + - "essentials.bigtree" + - "essentials.book" + - "essentials.book.title" + - "essentials.book.others" + - "essentials.commandcooldowns.bypass" + - "essentials.compass" + - "essentials.condense" + - "essentials.createkit" + - "essentials.delkit" + - "essentials.delwarp" + - "essentials.depth" + - "essentials.disposal" + - "essentials.eco" + - "essentials.eco.loan" + - "essentials.enderchest" + - "essentials.exp" + - "essentials.exp.give" + - "essentials.exp.others" + - "essentials.exp.set" + - "essentials.ext" + - "essentials.feed" + - "essentials.feed.cooldown.bypass" + - "essentials.firework" + - "essentials.firework.fire" + - "essentials.firework.multiple" + - "essentials.fly" + - "essentials.fly.safelogin" + - "essentials.gc" + - "essentials.getpos" + - "essentials.give" + - "essentials.give.item-all" + - "essentials.god" + - "essentials.god.pvp" # Handled by TFM + - "essentials.hat" + - "essentials.heal" + - "essentials.heal.cooldown.bypass" + - "essentials.help" + - "essentials.home.compass" + - "essentials.home.bed" + - "essentials.ignore" + - "essentials.item" + - "essentials.itemlore" + - "essentials.itemdb" + - "essentials.itemname" + - "essentials.jump" + - "essentials.jump.lock" + - "essentials.kit" + - "essentials.kits.*" + - "essentials.beezooka" + - "essentials.mail" + - "essentials.mail.send" + - "essentials.me" + - "essentials.more" + - "essentials.motd" + - "essentials.msg" + - "essentials.msgtoggle" + - "essentials.near" + - "essentials.near.maxexempt" + - "essentials.nick" + - "essentials.nick.blacklist.bypass" + - "essentials.nick.changecolors" + - "essentials.nick.changecolors.bypass" + - "essentials.nick.rgb" + - "essentials.nocommandcost.all" + - "essentials.oversizedstacks" + - "essentials.pay" + - "essentials.pay.multiple" + - "essentials.payconfirmtoggle" + - "essentials.paytoggle" + - "essentials.ping" + - "essentials.ptime" + - "essentials.pweather" + - "essentials.rtoggle" + - "essentials.realname" + - "essentials.recipe" + - "essentials.remove" + - "essentials.repair" + - "essentials.repair.*" + - "essentials.rest" + - "essentials.rules" + - "essentials.seen" + - "essentials.sell" + - "essentials.sell.*" + - "essentials.home" + - "essentials.sethome" + - "essentials.sethome.bed" + - "essentials.sethome.multiple" + - "essentials.sethome.multiple.unlimited" + - "essentials.delhome" + - "essentials.setwarp" + - "essentials.setworth" + - "essentials.showkit" + - "essentials.skull" + - "essentials.skull.*" + - "essentials.spawn" + - "essentials.spawner" + - "essentials.speed" + - "essentials.speed.fly" + - "essentials.speed.walk" + - "essentials.suicide" + - "essentials.top" + - "essentials.tp" + - "essentials.tp.position" + - "essentials.tpoffline" + - "essentials.tpa" + - "essentials.tpacancel" + - "essentials.tpaccept" + - "essentials.tpahere" + - "essentials.tpdeny" + - "essentials.tppos" + - "essentials.tptoggle" + - "essentials.tree" + - "essentials.unlimited" + - "essentials.unlimited.item-all" + - "essentials.unlimited.others" + - "essentials.warp" + - "essentials.warp.list" + - "essentials.whois" + - "essentials.workbench" + - "essentials.world" + - "essentials.worth" + - "essentials.signs.*" + - "essentials.editsign" + - "essentials.editsign.rgb" + - "essentials.editsign.color" + # WorldEdit - "worldedit.help" - "worldedit.history.undo.self" @@ -66,9 +203,21 @@ super_admins: - "worldedit.*" - "worldguard.*" - "bending.*" + - "essentials.chat.ignoreexempt" + - "essentials.chat.spy" + - "essentials.seen.ip" + - "essentials.seen.ipsearch" + - "essentials.setspawn" + - "essentials.socialspy" + - "essentials.tphere" + - "essentials.tpo" + - "essentials.tpohere" + - "sv.use" + - "sv.toggleitems" # Telnet Admin permission nodes telnet_admins: [] # Senior Admin permission nodes -senior_admins: [] +senior_admins: + - "sv.others" \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 0db49012..87ebb451 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -2,6 +2,6 @@ name: TotalFreedomMod main: me.totalfreedom.totalfreedommod.TotalFreedomMod version: ${project.version} description: Plugin for the Total Freedom server. -softdepend: [BukkitTelnet, Essentials, LibsDisguises, WorldEdit, WorldGuard, WorldGuardExtraFlags, TFGuilds, SuperVanish, PremiumVanish] +#softdepend: [BukkitTelnet, Essentials, LibsDisguises, WorldEdit, WorldGuard, WorldGuardExtraFlags, TFGuilds] authors: [Madgeek1450, Prozza] api-version: 1.16 \ No newline at end of file From 642725252bbd7a790d76d9f916a7e05ecc0be0f3 Mon Sep 17 00:00:00 2001 From: speedxx <43330808+speedxx@users.noreply.github.com> Date: Thu, 6 Aug 2020 16:05:17 -0400 Subject: [PATCH 14/54] fix tossmob not working, toggle stuff - fix tossmob not working, sorta revamp it (#259) - make tossmob and a few other config things toggleable with /toggle (note mp44 and landmines still don't work, i'll probably try and fix those too) - replace if else statements with switch and catch (yandere dev code type beat) --- .../command/Command_toggle.java | 473 ++++++++++-------- .../command/Command_tossmob.java | 59 ++- .../totalfreedommod/fun/ItemFun.java | 41 +- 3 files changed, 329 insertions(+), 244 deletions(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_toggle.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_toggle.java index f32840e8..b09488b7 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_toggle.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_toggle.java @@ -21,220 +21,284 @@ public class Command_toggle extends FreedomCommand { if (args.length == 0) { - msg("Available toggles: "); - msg("- waterplace"); - msg("- fireplace"); - msg("- lavaplace"); - msg("- fluidspread"); - msg("- lavadmg"); - msg("- firespread"); - msg("- frostwalk"); - msg("- firework"); - msg("- prelog"); - msg("- lockdown"); - msg("- petprotect"); - msg("- entitywipe"); - msg("- nonuke [range] [count]"); - msg("- explosives [radius]"); - msg("- unsafeenchs"); - msg("- bells"); - msg("- armorstands"); - msg("- structureblocks"); - msg("- jigsaws"); - msg("- grindstones"); - msg("- jukeboxes"); - msg("- spawners"); - msg("- 4chan"); - msg("- beehives"); - msg("- respawnanchors"); - msg("- autotp"); - msg("- autoclear"); + msg("Available toggles: \n" + + "- waterplace\n" + + "- fireplace\n" + + "- lavaplace\n" + + "- fluidspread\n" + + "- lavadmg\n" + + "- firespread\n" + + "- frostwalk\n" + + "- firework\n" + + "- prelog\n" + + "- lockdown\n" + + "- petprotect\n" + + "- entitywipe\n" + + "- nonuke [range] [count]\n" + + "- explosives [radius]\n" + + "- unsafeenchs\n" + + "- bells\n" + + "- armorstands\n" + + "- structureblocks\n" + + "- jigsaws\n" + + "- grindstones\n" + + "- jukeboxes\n" + + "- spawners\n" + + "- 4chan\n" + + "- beehives\n" + + "- respawnanchors\n" + + "- autotp\n" + + "- autoclear\n" + + "- minecarts\n" + + "- landmines\n" + + "- mp44\n" + + "- tossmob"); + return false; } - if (args[0].equalsIgnoreCase("waterplace")) + switch (args[0].toLowerCase()) { - toggle("Water placement is", ConfigEntry.ALLOW_WATER_PLACE); - return true; - } - else if (args[0].equalsIgnoreCase("frostwalk")) - { - toggle("Frost walker enchantment is", ConfigEntry.ALLOW_FROSTWALKER); - return true; - } - else if (args[0].equalsIgnoreCase("fireplace")) - { - toggle("Fire placement is", ConfigEntry.ALLOW_FIRE_PLACE); - return true; - } - else if (args[0].equalsIgnoreCase("lavaplace")) - { - toggle("Lava placement is", ConfigEntry.ALLOW_LAVA_PLACE); - return true; - } - else if (args[0].equalsIgnoreCase("fluidspread")) - { - toggle("Fluid spread is", ConfigEntry.ALLOW_FLUID_SPREAD); - return true; - } - else if (args[0].equalsIgnoreCase("lavadmg")) - { - toggle("Lava damage is", ConfigEntry.ALLOW_LAVA_DAMAGE); - return true; - } - else if (args[0].equalsIgnoreCase("firespread")) - { - toggle("Fire spread is", ConfigEntry.ALLOW_FIRE_SPREAD); - plugin.gr.setGameRule(GameRuleHandler.GameRule.DO_FIRE_TICK, ConfigEntry.ALLOW_FIRE_SPREAD.getBoolean()); - return true; - } - else if (args[0].equalsIgnoreCase("prelog")) - { - toggle("Command prelogging is", ConfigEntry.ENABLE_PREPROCESS_LOG); - return true; - } - else if (args[0].equalsIgnoreCase("lockdown")) - { - boolean active = !plugin.lp.isLockdownEnabled(); - plugin.lp.setLockdownEnabled(active); - FUtil.adminAction(sender.getName(), (active ? "A" : "De-a") + "ctivating server lockdown", true); - return true; - } - else if (args[0].equalsIgnoreCase("petprotect")) - { - toggle("Tamed pet protection is", ConfigEntry.ENABLE_PET_PROTECT); - return true; - } - else if (args[0].equalsIgnoreCase("entitywipe")) - { - toggle("Automatic entity wiping is", ConfigEntry.AUTO_ENTITY_WIPE); - return true; - } - else if (args[0].equalsIgnoreCase("firework")) - { - toggle("Firework explosion is", ConfigEntry.ALLOW_FIREWORK_EXPLOSION); - return true; - } - else if (args[0].equalsIgnoreCase("nonuke")) - { - if (args.length >= 2) + case "waterplace": { - try - { - ConfigEntry.NUKE_MONITOR_RANGE.setDouble(Math.max(1.0, Math.min(500.0, Double.parseDouble(args[1])))); - } - catch (NumberFormatException ex) - { - } + toggle("Water placement is", ConfigEntry.ALLOW_WATER_PLACE); + break; } - if (args.length >= 3) + + case "frostwalk": { - try - { - ConfigEntry.NUKE_MONITOR_COUNT_BREAK.setInteger(Math.max(1, Math.min(500, Integer.parseInt(args[2])))); - } - catch (NumberFormatException ex) - { - } + toggle("Frost walker enchantment is", ConfigEntry.ALLOW_FROSTWALKER); + break; } - toggle("Nuke monitor is", ConfigEntry.NUKE_MONITOR_ENABLED); - if (ConfigEntry.NUKE_MONITOR_ENABLED.getBoolean()) + + case "fireplace": { - msg("Anti-freecam range is set to " + ConfigEntry.NUKE_MONITOR_RANGE.getDouble() + " blocks."); - msg("Block throttle rate is set to " + ConfigEntry.NUKE_MONITOR_COUNT_BREAK.getInteger() + " blocks destroyed per 5 seconds."); + toggle("Fire placement is", ConfigEntry.ALLOW_FIRE_PLACE); + break; } - return true; - } - else if (args[0].equalsIgnoreCase("explosives")) - { - if (args.length == 2) + + case "lavaplace": { - try - { - ConfigEntry.EXPLOSIVE_RADIUS.setDouble(Math.max(1.0, Math.min(30.0, Double.parseDouble(args[1])))); - } - catch (NumberFormatException ex) - { - msg("The input provided is not a valid integer."); - return true; - } + toggle("Lava placement is", ConfigEntry.ALLOW_LAVA_PLACE); + break; } - toggle("Explosions are", ConfigEntry.ALLOW_EXPLOSIONS); - if (ConfigEntry.ALLOW_EXPLOSIONS.getBoolean()) + + case "fluidspread": { - msg("Radius set to " + ConfigEntry.EXPLOSIVE_RADIUS.getDouble()); + toggle("Fluid spread is", ConfigEntry.ALLOW_FLUID_SPREAD); + break; + } + + case "lavadmg": + { + toggle("Lava damage is", ConfigEntry.ALLOW_LAVA_DAMAGE); + break; + } + + case "firespread": + { + toggle("Fire spread is", ConfigEntry.ALLOW_FIRE_SPREAD); + plugin.gr.setGameRule(GameRuleHandler.GameRule.DO_FIRE_TICK, ConfigEntry.ALLOW_FIRE_SPREAD.getBoolean()); + break; + } + + case "prelog": + { + toggle("Command prelogging is", ConfigEntry.ENABLE_PREPROCESS_LOG); + break; + } + + case "lockdown": + { + boolean active = !plugin.lp.isLockdownEnabled(); + plugin.lp.setLockdownEnabled(active); + FUtil.adminAction(sender.getName(), (active ? "A" : "De-a") + "ctivating server lockdown", true); + break; + } + + case "petprotect": + { + toggle("Tamed pet protection is", ConfigEntry.ENABLE_PET_PROTECT); + break; + } + + case "entitywipe": + { + toggle("Automatic entity wiping is", ConfigEntry.AUTO_ENTITY_WIPE); + break; + } + + case "firework": + { + toggle("Firework explosion is", ConfigEntry.ALLOW_FIREWORK_EXPLOSION); + break; + } + + case "nonuke": + { + if (args.length >= 2) + { + try + { + ConfigEntry.NUKE_MONITOR_RANGE.setDouble(Math.max(1.0, Math.min(500.0, Double.parseDouble(args[1])))); + } + catch (NumberFormatException ex) + { + msg("The input provided is not a valid integer."); + return true; + } + } + + if (args.length >= 3) + { + try + { + ConfigEntry.NUKE_MONITOR_COUNT_BREAK.setInteger(Math.max(1, Math.min(500, Integer.parseInt(args[2])))); + } + catch (NumberFormatException ex) + { + msg("The input provided is not a valid integer."); + return true; + } + } + + toggle("Nuke monitor is", ConfigEntry.NUKE_MONITOR_ENABLED); + + if (ConfigEntry.NUKE_MONITOR_ENABLED.getBoolean()) + { + msg("Anti-freecam range is set to " + ConfigEntry.NUKE_MONITOR_RANGE.getDouble() + " blocks."); + msg("Block throttle rate is set to " + ConfigEntry.NUKE_MONITOR_COUNT_BREAK.getInteger() + " blocks destroyed per 5 seconds."); + } + break; + } + + case "explosives": + { + if (args.length == 2) + { + try + { + ConfigEntry.EXPLOSIVE_RADIUS.setDouble(Math.max(1.0, Math.min(30.0, Double.parseDouble(args[1])))); + } + catch (NumberFormatException ex) + { + msg("The input provided is not a valid integer."); + return true; + } + } + + toggle("Explosions are", ConfigEntry.ALLOW_EXPLOSIONS); + + if (ConfigEntry.ALLOW_EXPLOSIONS.getBoolean()) + { + msg("Radius set to " + ConfigEntry.EXPLOSIVE_RADIUS.getDouble()); + } + break; + } + + case "unsafeenchs": + { + toggle("Unsafe enchantments are", ConfigEntry.ALLOW_UNSAFE_ENCHANTMENTS); + break; + } + + case "bells": + { + toggle("The ringing of bells is", ConfigEntry.ALLOW_BELLS); + break; + } + + case "armorstands": + { + toggle("The placement of armor stands is", ConfigEntry.ALLOW_ARMOR_STANDS); + break; + } + + case "structureblocks": + { + toggle("Structure blocks are", ConfigEntry.ALLOW_STRUCTURE_BLOCKS); + break; + } + + case "jigsaws": + { + toggle("Jigsaws are", ConfigEntry.ALLOW_JIGSAWS); + break; + } + + case "grindstones": + { + toggle("Grindstones are", ConfigEntry.ALLOW_GRINDSTONES); + break; + } + + case "jukeboxes": + { + toggle("Jukeboxes are", ConfigEntry.ALLOW_JUKEBOXES); + break; + } + + case "spawners": + { + toggle("Spawners are", ConfigEntry.ALLOW_SPAWNERS); + break; + } + + case "4chan": + { + toggle("4chan mode is", ConfigEntry.FOURCHAN_ENABLED); + break; + } + + case "beehives": + { + toggle("Beehives are", ConfigEntry.ALLOW_BEEHIVES); + break; + } + + case "respawnanchors": + { + toggle("Respawn anchors are", ConfigEntry.ALLOW_RESPAWN_ANCHORS); + break; + } + + case "autotp": + { + toggle("Teleportation on join is", ConfigEntry.AUTO_TP); + break; + } + + case "autoclear": + { + toggle("Clearing inventories on join is", ConfigEntry.AUTO_CLEAR); + break; + } + + case "minecarts": + { + toggle("Minecarts are", ConfigEntry.ALLOW_MINECARTS); + break; + } + + case "landmines": + { + toggle("Landmines are", ConfigEntry.LANDMINES_ENABLED); + break; + } + + case "mp44": + { + toggle("MP44 is", ConfigEntry.MP44_ENABLED); + break; + } + + case "tossmob": + { + toggle("Tossmob is", ConfigEntry.TOSSMOB_ENABLED); + break; } - return true; - } - else if (args[0].equalsIgnoreCase("unsafeenchs")) - { - toggle("Invalid enchantments are", ConfigEntry.ALLOW_UNSAFE_ENCHANTMENTS); - return true; - } - else if (args[0].equalsIgnoreCase("bells")) - { - toggle("The ringing of bells is", ConfigEntry.ALLOW_BELLS); - return true; - } - else if (args[0].equalsIgnoreCase("armorstands")) - { - toggle("The placement of armor stands is", ConfigEntry.ALLOW_ARMOR_STANDS); - return true; - } - else if (args[0].equalsIgnoreCase("structureblocks")) - { - toggle("Structure blocks are", ConfigEntry.ALLOW_STRUCTURE_BLOCKS); - return true; - } - else if (args[0].equalsIgnoreCase("jigsaws")) - { - toggle("Jigsaws are", ConfigEntry.ALLOW_JIGSAWS); - return true; - } - else if (args[0].equalsIgnoreCase("grindstones")) - { - toggle("Grindstones are", ConfigEntry.ALLOW_GRINDSTONES); - return true; - } - else if (args[0].equalsIgnoreCase("jukeboxes")) - { - toggle("Jukeboxes are", ConfigEntry.ALLOW_JUKEBOXES); - return true; - } - else if (args[0].equalsIgnoreCase("spawners")) - { - toggle("Spawners are", ConfigEntry.ALLOW_SPAWNERS); - return true; - } - else if (args[0].equalsIgnoreCase("4chan")) - { - toggle("4chan mode is", ConfigEntry.FOURCHAN_ENABLED); - return true; - } - else if (args[0].equalsIgnoreCase("beehives")) - { - toggle("Beehives are", ConfigEntry.ALLOW_BEEHIVES); - return true; - } - else if (args[0].equalsIgnoreCase("respawnanchors")) - { - toggle("Respawn anchors are", ConfigEntry.ALLOW_RESPAWN_ANCHORS); - return true; - } - else if (args[0].equalsIgnoreCase("autotp")) - { - toggle("Teleportation on join is", ConfigEntry.AUTO_TP); - return true; - } - else if (args[0].equalsIgnoreCase("autoclear")) - { - toggle("Clearing inventories on join is", ConfigEntry.AUTO_CLEAR); - return true; - } - else - { - return false; } + return true; } private void toggle(final String name, final ConfigEntry entry) @@ -245,16 +309,19 @@ public class Command_toggle extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { + if (!plugin.al.isAdmin(sender)) + { + return Collections.emptyList(); + } + if (args.length == 1) { return Arrays.asList( "waterplace", "fireplace", "lavaplace", "fluidspread", "lavadmg", "firespread", "frostwalk", "firework", "prelog", "lockdown", "petprotect", "entitywipe", "nonuke", "explosives", "unsafeenchs", "bells", "armorstands", "structureblocks", "jigsaws", "grindstones", "jukeboxes", "spawners", "4chan", "beehives", - "respawnanchors", "autotp", "autoclear"); + "respawnanchors", "autotp", "autoclear", "minecarts", "mp44", "landmines", "tossmob"); } - return Collections.emptyList(); } -} - +} \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tossmob.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tossmob.java index a14bd900..491159a8 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tossmob.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tossmob.java @@ -1,9 +1,12 @@ package me.totalfreedom.totalfreedommod.command; +import java.util.ArrayList; +import java.util.List; import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.player.FPlayer; import me.totalfreedom.totalfreedommod.rank.Rank; -import me.totalfreedom.totalfreedommod.util.DepreciationAggregator; +import me.totalfreedom.totalfreedommod.util.FUtil; +import me.totalfreedom.totalfreedommod.util.Groups; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.command.Command; @@ -27,12 +30,17 @@ public class Command_tossmob extends FreedomCommand return true; } + if (args.length == 0) + { + return false; + } + FPlayer playerData = plugin.pl.getPlayer(playerSender); EntityType type = null; if (args.length >= 1) { - if ("off".equals(args[0])) + if (args[0].equalsIgnoreCase("off")) { playerData.disableMobThrower(); msg("MobThrower is disabled.", ChatColor.GREEN); @@ -41,32 +49,29 @@ public class Command_tossmob extends FreedomCommand if (args[0].equalsIgnoreCase("list")) { - StringBuilder sb = new StringBuilder(); - for (EntityType loop : EntityType.values()) - { - if (loop.isAlive()) - { - sb.append(" ").append(DepreciationAggregator.getName_EntityType(loop)); - } - } - msg("Supported mobs: " + sb.toString().trim(), ChatColor.GREEN); + msg("Supported mobs: " + getAllMobNames(), ChatColor.GREEN); return true; } - for (EntityType loopType : EntityType.values()) + for (EntityType loop : EntityType.values()) { - if (DepreciationAggregator.getName_EntityType(loopType).toLowerCase().equalsIgnoreCase(args[0])) + if (loop != null && loop.name().equalsIgnoreCase(args[0])) { - type = loopType; + type = loop; break; } } if (type == null) { - msg(args[0] + " is not a supported mob type. Using a pig instead.", ChatColor.RED); - msg("By the way, you can type /tossmob list to see all possible mobs.", ChatColor.RED); - type = EntityType.PIG; + msg("Unknown entity type: " + args[0], ChatColor.RED); + return true; + } + + if (!Groups.MOB_TYPES.contains(type)) + { + msg(FUtil.formatName(type.name()) + " is an entity, however it is not a mob.", ChatColor.RED); + return true; } } @@ -77,8 +82,10 @@ public class Command_tossmob extends FreedomCommand { speed = Double.parseDouble(args[1]); } - catch (NumberFormatException nfex) + catch (NumberFormatException ex) { + msg("The input provided is not a valid integer."); + return true; } } @@ -92,12 +99,20 @@ public class Command_tossmob extends FreedomCommand } playerData.enableMobThrower(type, speed); - msg("MobThrower is enabled. Creature: " + type + " - Speed: " + speed + ".", ChatColor.GREEN); + msg("MobThrower is enabled. Mob: " + type + " - Speed: " + speed + ".", ChatColor.GREEN); msg("Left click while holding a " + Material.BONE.toString() + " to throw mobs!", ChatColor.GREEN); - msg("Type '/tossmob off' to disable. -By Madgeek1450", ChatColor.GREEN); + msg("Type '/tossmob off' to disable. -By Madgeek1450", ChatColor.GREEN); playerSender.getEquipment().setItemInMainHand(new ItemStack(Material.BONE, 1)); - return true; } -} + public static List getAllMobNames() + { + List names = new ArrayList<>(); + for (EntityType entityType : Groups.MOB_TYPES) + { + names.add(entityType.name()); + } + return names; + } +} \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/fun/ItemFun.java b/src/main/java/me/totalfreedom/totalfreedommod/fun/ItemFun.java index 4bdfc3dc..dcf04c75 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/fun/ItemFun.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/fun/ItemFun.java @@ -104,6 +104,7 @@ public class ItemFun extends FreedomService Player player = event.getPlayer(); Entity entity = event.getRightClicked(); + FPlayer fPlayer = plugin.pl.getPlayer(player); if (player.getInventory().getItemInMainHand().getType().equals(Material.POTATO) || entity.getType().equals(EntityType.PLAYER)) { @@ -117,12 +118,32 @@ public class ItemFun extends FreedomService player.sendMessage("Stacked " + entity.getName()); } } + + if (player.getInventory().getItemInMainHand().getType().equals(Material.BONE) || entity.getType().equals(EntityType.PLAYER)) + { + if (!fPlayer.mobThrowerEnabled()) + { + return; + } + + Location playerLoc = player.getLocation(); + Vector direction = playerLoc.getDirection().normalize(); + + LivingEntity livingEntity = (LivingEntity)event.getRightClicked(); + EntityType entityType = livingEntity.getType(); + if (!(entityType == fPlayer.mobThrowerCreature())) + { + return; + } + + livingEntity.setVelocity(direction.multiply(fPlayer.mobThrowerSpeed())); + fPlayer.enqueueMob(livingEntity); + } } @EventHandler(priority = EventPriority.MONITOR) public void onEntityDamage(EntityDamageByEntityEvent event) { - Entity entity = event.getEntity(); if (entity instanceof Player || !(event.getDamager() instanceof Player)) @@ -160,24 +181,6 @@ public class ItemFun extends FreedomService switch (event.getMaterial()) { - case BONE: - { - if (!fPlayer.mobThrowerEnabled()) - { - break; - } - - Location player_pos = player.getLocation(); - Vector direction = player_pos.getDirection().normalize(); - - LivingEntity rezzed_mob = (LivingEntity)player.getWorld().spawnEntity(player_pos.add(direction.multiply(2.0)), fPlayer.mobThrowerCreature()); - rezzed_mob.setVelocity(direction.multiply(fPlayer.mobThrowerSpeed())); - fPlayer.enqueueMob(rezzed_mob); - - event.setCancelled(true); - break; - } - case GUNPOWDER: { if (!fPlayer.isMP44Armed()) From 877c174e2dee85c493db99d544832bcdfa6bc312 Mon Sep 17 00:00:00 2001 From: speedxx <43330808+speedxx@users.noreply.github.com> Date: Thu, 6 Aug 2020 16:17:18 -0400 Subject: [PATCH 15/54] I hate PacksGamingHD. --- .../command/Command_toggle.java | 65 +++++++++---------- 1 file changed, 32 insertions(+), 33 deletions(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_toggle.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_toggle.java index b09488b7..77f2694d 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_toggle.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_toggle.java @@ -21,39 +21,38 @@ public class Command_toggle extends FreedomCommand { if (args.length == 0) { - msg("Available toggles: \n" - + "- waterplace\n" - + "- fireplace\n" - + "- lavaplace\n" - + "- fluidspread\n" - + "- lavadmg\n" - + "- firespread\n" - + "- frostwalk\n" - + "- firework\n" - + "- prelog\n" - + "- lockdown\n" - + "- petprotect\n" - + "- entitywipe\n" - + "- nonuke [range] [count]\n" - + "- explosives [radius]\n" - + "- unsafeenchs\n" - + "- bells\n" - + "- armorstands\n" - + "- structureblocks\n" - + "- jigsaws\n" - + "- grindstones\n" - + "- jukeboxes\n" - + "- spawners\n" - + "- 4chan\n" - + "- beehives\n" - + "- respawnanchors\n" - + "- autotp\n" - + "- autoclear\n" - + "- minecarts\n" - + "- landmines\n" - + "- mp44\n" - + "- tossmob"); - + msg("Available toggles: "); + msg("- waterplace"); + msg("- fireplace"); + msg("- lavaplace"); + msg("- fluidspread"); + msg("- lavadmg"); + msg("- firespread"); + msg("- frostwalk"); + msg("- firework"); + msg("- prelog"); + msg("- lockdown"); + msg("- petprotect"); + msg("- entitywipe"); + msg("- nonuke [range] [count]"); + msg("- explosives [radius]"); + msg("- unsafeenchs"); + msg("- bells"); + msg("- armorstands"); + msg("- structureblocks"); + msg("- jigsaws"); + msg("- grindstones"); + msg("- jukeboxes"); + msg("- spawners"); + msg("- 4chan"); + msg("- beehives"); + msg("- respawnanchors"); + msg("- autotp"); + msg("- autoclear"); + msg("- minecarts"); + msg("- landmines"); + msg("- mp44"); + msg("- tossmob"); return false; } From 30d5a1d8881ff7708ee84efa50eff53d82f80705 Mon Sep 17 00:00:00 2001 From: speedxx <43330808+speedxx@users.noreply.github.com> Date: Fri, 7 Aug 2020 20:51:47 -0400 Subject: [PATCH 16/54] -q arg for more commands - add `-q` arg for tban, warn, and tempban - add reasons to tban (#259) --- .idea/misc.xml | 2 +- .../totalfreedommod/command/Command_tban.java | 89 ++++++++++++++----- .../command/Command_tempban.java | 41 ++++++--- .../totalfreedommod/command/Command_warn.java | 56 +++++++----- 4 files changed, 132 insertions(+), 56 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 982bac40..602a0ddb 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -7,5 +7,5 @@ - + \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tban.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tban.java index a768890b..e7ce0b6a 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tban.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tban.java @@ -8,6 +8,7 @@ import me.totalfreedom.totalfreedommod.punishments.Punishment; import me.totalfreedom.totalfreedommod.punishments.PunishmentType; import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.util.FUtil; +import org.apache.commons.lang.StringUtils; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.command.Command; @@ -15,7 +16,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH, blockHostConsole = true) -@CommandParameters(description = "Temporarily bans a player for five minutes.", usage = "/ [reason]", aliases = "noob") +@CommandParameters(description = "Temporarily bans a player for five minutes.", usage = "/ [-q] [reason]", aliases = "noob") public class Command_tban extends FreedomCommand { @@ -27,6 +28,17 @@ public class Command_tban extends FreedomCommand return false; } + boolean quiet = args[0].equalsIgnoreCase("-q"); + if (quiet) + { + args = org.apache.commons.lang3.ArrayUtils.subarray(args, 1, args.length); + + if (args.length < 1) + { + return false; + } + } + final String username; final List ips = new ArrayList<>(); @@ -49,27 +61,65 @@ public class Command_tban extends FreedomCommand final PlayerData entry = plugin.pl.getData(player); username = player.getName(); ips.addAll(entry.getIps()); - - // Strike with lightning - final Location targetPos = player.getLocation(); - for (int x = -1; x <= 1; x++) - { - for (int z = -1; z <= 1; z++) - { - final Location strike_pos = new Location(targetPos.getWorld(), targetPos.getBlockX() + x, targetPos.getBlockY(), targetPos.getBlockZ() + z); - targetPos.getWorld().strikeLightning(strike_pos); - } - } - - // Kill player - player.setHealth(0.0); } String reason = null; - - if (player != null) + if (args.length > 1) { - FUtil.bcastMsg(sender.getName() + " - Tempbanning: " + player.getName() + " for 5 minutes", ChatColor.RED); + reason = StringUtils.join(args, " ", 1, args.length); + } + + StringBuilder kick = new StringBuilder() + .append(ChatColor.RED) + .append("You have been temporarily banned for five minutes. Please read totalfreedom.me for more info."); + + if (!quiet) + { + // Strike with lightning + if (player != null) + { + final Location targetPos = player.getLocation(); + for (int x = -1; x <= 1; x++) + { + for (int z = -1; z <= 1; z++) + { + final Location strike_pos = new Location(targetPos.getWorld(), targetPos.getBlockX() + x, targetPos.getBlockY(), targetPos.getBlockZ() + z); + targetPos.getWorld().strikeLightning(strike_pos); + } + } + + // Kill player + player.setHealth(0.0); + + if (reason != null) + { + FUtil.adminAction(sender.getName(), "Tempbanning " + player.getName() + " for 5 minutes - Reason: " + reason, true); + kick.append("\n") + .append(ChatColor.RED) + .append("Reason: ") + .append(ChatColor.GOLD) + .append(reason); + } + else + { + FUtil.adminAction(sender.getName(), "Tempbanning " + player.getName() + " for 5 minutes", true); + } + } + } + else + { + if (player != null) + { + if (reason != null) + { + msg("Quietly temporarily banned " + player.getName() + " for 5 minutes."); + kick.append("\n") + .append(ChatColor.RED) + .append("Reason: ") + .append(ChatColor.GOLD) + .append(reason); + } + } } // Ban player @@ -83,12 +133,11 @@ public class Command_tban extends FreedomCommand // Kick player if (player != null) { - player.kickPlayer(ChatColor.RED + "You have been temporarily banned for five minutes. Please read totalfreedom.me for more info."); + player.kickPlayer(kick.toString()); } // Log ban plugin.pul.logPunishment(new Punishment(username, ips.get(0), sender.getName(), PunishmentType.TEMPBAN, reason)); - return true; } } \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tempban.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tempban.java index 4310387a..c1d85427 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tempban.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tempban.java @@ -18,7 +18,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) -@CommandParameters(description = "Temporarily ban someone.", usage = "/ [playername] [duration] [reason]") +@CommandParameters(description = "Temporarily ban someone.", usage = "/ [-q] [duration] [reason]") public class Command_tempban extends FreedomCommand { @@ -32,6 +32,17 @@ public class Command_tempban extends FreedomCommand return false; } + boolean quiet = args[0].equalsIgnoreCase("-q"); + if (quiet) + { + args = org.apache.commons.lang3.ArrayUtils.subarray(args, 1, args.length); + + if (args.length < 1) + { + return false; + } + } + final String username; final List ips = new ArrayList<>(); @@ -55,6 +66,7 @@ public class Command_tempban extends FreedomCommand username = player.getName(); ips.addAll(entry.getIps()); } + final StringBuilder message = new StringBuilder("Temporarily banned " + player.getName()); Date expires = FUtil.parseDateOffset("30m"); @@ -72,18 +84,25 @@ public class Command_tempban extends FreedomCommand message.append(", Reason: \"").append(reason).append("\""); } - // strike with lightning effect: - final Location targetPos = player.getLocation(); - for (int x = -1; x <= 1; x++) + if (!quiet) { - for (int z = -1; z <= 1; z++) + // Strike with lightning + final Location targetPos = player.getLocation(); + for (int x = -1; x <= 1; x++) { - final Location strike_pos = new Location(targetPos.getWorld(), targetPos.getBlockX() + x, targetPos.getBlockY(), targetPos.getBlockZ() + z); - targetPos.getWorld().strikeLightningEffect(strike_pos); + for (int z = -1; z <= 1; z++) + { + final Location strike_pos = new Location(targetPos.getWorld(), targetPos.getBlockX() + x, targetPos.getBlockY(), targetPos.getBlockZ() + z); + targetPos.getWorld().strikeLightningEffect(strike_pos); + } } - } - FUtil.adminAction(sender.getName(), message.toString(), true); + FUtil.adminAction(sender.getName(), message.toString(), true); + } + else + { + msg("Quietly temporarily banned " + player.getName() + "."); + } Ban ban = Ban.forPlayerName(username, sender, expires, reason); for (String ip : ips) @@ -92,9 +111,7 @@ public class Command_tempban extends FreedomCommand } plugin.bm.addBan(ban); player.kickPlayer(ban.bakeKickMessage()); - plugin.pul.logPunishment(new Punishment(player.getName(), FUtil.getIp(player), sender.getName(), PunishmentType.TEMPBAN, reason)); - return true; } -} +} \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_warn.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_warn.java index ad7f46aa..e3c86f5f 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_warn.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_warn.java @@ -9,33 +9,40 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) -@CommandParameters(description = "Warns the specified player.", usage = "/ ") +@CommandParameters(description = "Warns the specified player.", usage = "/ [-q] ") public class Command_warn extends FreedomCommand { @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (args.length < 2) + if (args.length == 0) { return false; } - Player player = getPlayer(args[0]); + boolean quiet = args[0].equalsIgnoreCase("-q"); + if (quiet) + { + args = org.apache.commons.lang3.ArrayUtils.subarray(args, 1, args.length); + if (args.length < 1) + { + return false; + } + } + + Player player = getPlayer(args[0]); if (player == null) { msg(PLAYER_NOT_FOUND); return true; } - if (sender instanceof Player) + if (playerSender == player) { - if (player.equals(playerSender)) - { - msg(ChatColor.RED + "Please, don't try to warn yourself."); - return true; - } + msg(ChatColor.RED + "Please, don't try to warn yourself."); + return true; } if (plugin.al.isAdmin(player)) @@ -45,23 +52,26 @@ public class Command_warn extends FreedomCommand } String warnReason = StringUtils.join(ArrayUtils.subarray(args, 1, args.length), " "); - - msg(player, ChatColor.RED + "[WARNING] You received a warning from " + sender.getName() + ": " + warnReason); player.sendTitle(ChatColor.RED + "You've been warned.", ChatColor.YELLOW + "Reason: " + warnReason, 20, 100, 60); msg(ChatColor.GREEN + "You have successfully warned " + player.getName()); - final StringBuilder adminNotice = new StringBuilder() - .append(ChatColor.RED) - .append(sender.getName()) - .append(" - ") - .append("Warning: ") - .append(player.getName()) - .append(" - Reason: ") - .append(ChatColor.YELLOW) - .append(warnReason); - plugin.al.messageAllAdmins(adminNotice.toString()); + if (quiet) + { + msg("Warned " + player.getName() + " quietly"); + return true; + } + + msg(player, ChatColor.RED + "[WARNING] You received a warning from " + sender.getName() + ": " + warnReason); + String adminNotice = ChatColor.RED + + sender.getName() + + " - " + + "Warning: " + + player.getName() + + " - Reason: " + + ChatColor.YELLOW + + warnReason; + plugin.al.messageAllAdmins(adminNotice); plugin.pl.getPlayer(player).incrementWarnings(); - return true; } -} +} \ No newline at end of file From 2ecde80b5fa4473ba897cab38b3fb7becac51109 Mon Sep 17 00:00:00 2001 From: Seth <13510767+ZeroEpoch1969@users.noreply.github.com> Date: Fri, 7 Aug 2020 22:51:09 -0700 Subject: [PATCH 17/54] AMP automation --- .../me/totalfreedom/totalfreedommod/AMP.java | 187 ++++++++++++++++++ .../totalfreedommod/{reddit => }/Reddit.java | 5 +- .../totalfreedommod/TotalFreedomMod.java | 3 +- .../totalfreedommod/admin/Admin.java | 24 +-- .../totalfreedommod/command/Command_amp.java | 101 ++++++++++ .../command/Command_donator.java | 2 +- .../totalfreedommod/command/Command_doom.java | 1 + .../command/Command_myadmin.java | 10 +- .../command/Command_saconfig.java | 8 +- .../totalfreedommod/config/ConfigEntry.java | 4 + .../totalfreedommod/discord/Discord.java | 28 ++- .../totalfreedommod/shop/Shop.java | 2 +- .../totalfreedommod/sql/SQLite.java | 6 +- .../totalfreedommod/util/FUtil.java | 20 +- src/main/resources/config.yml | 9 + 15 files changed, 355 insertions(+), 55 deletions(-) create mode 100644 src/main/java/me/totalfreedom/totalfreedommod/AMP.java rename src/main/java/me/totalfreedom/totalfreedommod/{reddit => }/Reddit.java (98%) create mode 100644 src/main/java/me/totalfreedom/totalfreedommod/command/Command_amp.java diff --git a/src/main/java/me/totalfreedom/totalfreedommod/AMP.java b/src/main/java/me/totalfreedom/totalfreedommod/AMP.java new file mode 100644 index 00000000..32b0fc45 --- /dev/null +++ b/src/main/java/me/totalfreedom/totalfreedommod/AMP.java @@ -0,0 +1,187 @@ +package me.totalfreedom.totalfreedommod; + +import java.io.IOException; +import java.util.Arrays; +import java.util.List; +import joptsimple.internal.Strings; +import lombok.Getter; +import me.totalfreedom.totalfreedommod.admin.Admin; +import me.totalfreedom.totalfreedommod.config.ConfigEntry; +import me.totalfreedom.totalfreedommod.rank.Rank; +import me.totalfreedom.totalfreedommod.util.FLog; +import me.totalfreedom.totalfreedommod.util.FUtil; +import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; +import org.json.simple.parser.ParseException; + +public class AMP extends FreedomService +{ + + public String URL = ConfigEntry.AMP_URL.getString(); + private String API_URL = URL + "/API/Core"; + private String USERNAME = ConfigEntry.AMP_USERNAME.getString(); + private String PASSWORD = ConfigEntry.AMP_PASSWORD.getString(); + private String SESSION_ID; + + @Getter + private boolean enabled = !Strings.isNullOrEmpty(URL); + + private final List headers = Arrays.asList("Accept:application/json"); + + public void onStart() + { + if (enabled) + { + login(); + } + } + + public void onStop() + { + if (enabled) + { + logout(); + } + } + + public void login() + { + JSONObject json = new JSONObject(); + json.put("username", USERNAME); + json.put("password", PASSWORD); + json.put("token", ""); + json.put("rememberMe", false); + + String response; + try + { + response = FUtil.sendRequest(API_URL + "/Login", "POST", headers, json.toJSONString()); + } + catch (IOException e) + { + e.printStackTrace(); + return; + } + + JSONObject jsonResponse; + try + { + jsonResponse = (JSONObject)new JSONParser().parse(response); + } + catch (ParseException e) + { + e.printStackTrace(); + return; + } + + Object sessionID = jsonResponse.get("sessionID"); + if (sessionID == null) + { + FLog.warning("Invalid AMP credentials have been specified in the config"); + enabled = false; + return; + } + SESSION_ID = sessionID.toString(); + FLog.info("Logged into AMP"); + } + + public void logout() + { + JSONObject json = new JSONObject(); + json.put("SESSIONID", SESSION_ID); + + try + { + FUtil.sendRequest(API_URL + "/Logout", "POST", headers, json.toJSONString()); + } + catch (IOException e) + { + e.printStackTrace(); + return; + } + + FLog.info("Logged out of AMP"); + } + + public void updateAccountStatus(Admin admin) + { + String username = admin.getAmpUsername(); + + if (username == null || !enabled) + { + return; + } + + if (!admin.isActive() || admin.getRank() != Rank.SENIOR_ADMIN) + { + FLog.debug("Disabling amp acc"); + setAccountEnabled(username, false); + return; + } + + FLog.debug("Enabling amp acc"); + setAccountEnabled(username, true); + } + + public void createAccount(String username, String password) + { + makeAccount(username); + setPassword(username, password); + } + + public void setAccountEnabled(String username, boolean enable) + { + JSONObject json = new JSONObject(); + json.put("Username", username); + json.put("Disabled", !enable); + json.put("PasswordExpires", false); + json.put("CannotChangePassword", false); + json.put("MustChangePassword", false); + json.put("SESSIONID", SESSION_ID); + + try + { + FUtil.sendRequest(API_URL + "/UpdateUserInfo", "POST", headers, json.toJSONString()); + } + catch (IOException e) + { + e.printStackTrace(); + return; + } + } + + private void makeAccount(String username) + { + JSONObject json = new JSONObject(); + json.put("Username", username); + json.put("SESSIONID", SESSION_ID); + + try + { + FUtil.sendRequest(API_URL + "/CreateUser", "POST", headers, json.toJSONString()); + } + catch (IOException e) + { + e.printStackTrace(); + return; + } + } + + public void setPassword(String username, String password) + { + JSONObject json = new JSONObject(); + json.put("Username", username); + json.put("NewPassword", password); + json.put("SESSIONID", SESSION_ID); + + try + { + FUtil.sendRequest(API_URL + "/ResetUserPassword", "POST", headers, json.toJSONString()); + } + catch (IOException e) + { + e.printStackTrace(); + return; + } + } +} diff --git a/src/main/java/me/totalfreedom/totalfreedommod/reddit/Reddit.java b/src/main/java/me/totalfreedom/totalfreedommod/Reddit.java similarity index 98% rename from src/main/java/me/totalfreedom/totalfreedommod/reddit/Reddit.java rename to src/main/java/me/totalfreedom/totalfreedommod/Reddit.java index 937903c0..6f34f053 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/reddit/Reddit.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/Reddit.java @@ -1,11 +1,10 @@ -package me.totalfreedom.totalfreedommod.reddit; +package me.totalfreedom.totalfreedommod; import com.google.common.base.Strings; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; -import me.totalfreedom.totalfreedommod.FreedomService; import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.player.PlayerData; import me.totalfreedom.totalfreedommod.rank.Displayable; @@ -126,7 +125,7 @@ public class Reddit extends FreedomService public String addLinkCode(PlayerData data, String username) { - String code = FUtil.randomString(10); + String code = FUtil.randomAlphanumericString(10); linkCodes.put(code, data); pending.put(data, username); return code; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java index 1b3f2de1..74334bff 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java @@ -42,7 +42,6 @@ import me.totalfreedom.totalfreedommod.permissions.PermissionManager; import me.totalfreedom.totalfreedommod.player.PlayerList; import me.totalfreedom.totalfreedommod.punishments.PunishmentList; import me.totalfreedom.totalfreedommod.rank.RankManager; -import me.totalfreedom.totalfreedommod.reddit.Reddit; import me.totalfreedom.totalfreedommod.shop.Shop; import me.totalfreedom.totalfreedommod.shop.Votifier; import me.totalfreedom.totalfreedommod.sql.SQLite; @@ -139,6 +138,7 @@ public class TotalFreedomMod extends JavaPlugin public EntityWiper ew; public Sitter st; public VanishBridge vb; + public AMP amp; //public HubWorldRestrictions hwr; // @@ -237,6 +237,7 @@ public class TotalFreedomMod extends JavaPlugin ew = new EntityWiper(); st = new Sitter(); vb = new VanishBridge(); + amp = new AMP(); // Single admin utils cs = new CommandSpy(); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/admin/Admin.java b/src/main/java/me/totalfreedom/totalfreedommod/admin/Admin.java index b87aa1fd..86b3d6f2 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/admin/Admin.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/admin/Admin.java @@ -1,8 +1,8 @@ package me.totalfreedom.totalfreedommod.admin; -import com.google.common.collect.Lists; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -29,7 +29,7 @@ public class Admin @Setter private Rank rank = Rank.SUPER_ADMIN; @Getter - private final List ips = Lists.newArrayList(); + private final List ips = new ArrayList<>(); @Getter @Setter private Date lastLogin = new Date(); @@ -50,7 +50,7 @@ public class Admin private Boolean oldTags = false; @Getter @Setter - private Boolean logStick = false; + private String ampUsername = null; public Admin(Player player) { @@ -73,7 +73,7 @@ public class Admin this.potionSpy = resultSet.getBoolean("potion_spy"); this.acFormat = resultSet.getString("ac_format"); this.oldTags = resultSet.getBoolean("old_tags"); - this.logStick = resultSet.getBoolean("log_stick"); + this.ampUsername = resultSet.getString("amp_username"); } catch (SQLException e) { @@ -95,18 +95,11 @@ public class Admin .append("- Potion Spy: ").append(potionSpy).append("\n") .append("- Admin Chat Format: ").append(acFormat).append("\n") .append("- Old Tags: ").append(oldTags).append("\n") - .append("- Log Stick: ").append(logStick).append("\n"); + .append("- AMP Username: ").append(ampUsername).append("\n"); return output.toString(); } - public void loadFrom(Player player) - { - name = player.getName(); - ips.clear(); - ips.add(FUtil.getIp(player)); - } - public Map toSQLStorable() { Map map = new HashMap() @@ -121,16 +114,11 @@ public class Admin put("potion_spy", potionSpy); put("ac_format", acFormat); put("old_tags", oldTags); - put("log_stick", logStick); + put("amp_username", ampUsername); }}; return map; } - public boolean isAtLeast(Rank pRank) - { - return rank.isAtLeast(pRank); - } - public boolean hasLoginMessage() { return loginMessage != null && !loginMessage.isEmpty(); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_amp.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_amp.java new file mode 100644 index 00000000..5f606249 --- /dev/null +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_amp.java @@ -0,0 +1,101 @@ +package me.totalfreedom.totalfreedommod.command; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import me.totalfreedom.totalfreedommod.admin.Admin; +import me.totalfreedom.totalfreedommod.player.PlayerData; +import me.totalfreedom.totalfreedommod.rank.Rank; +import me.totalfreedom.totalfreedommod.util.FUtil; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_IN_GAME) +@CommandParameters(description = "Manage your AMP account", usage = "/ ") +public class Command_amp extends FreedomCommand +{ + + @Override + public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) + { + + if (!plugin.amp.isEnabled()) + { + msg("AMP integration is currently disabled.", ChatColor.RED); + return true; + } + + PlayerData playerData = getData(playerSender); + + if (playerData.getDiscordID() == null) + { + msg("You must have a linked discord account.", ChatColor.RED); + return true; + } + + if (args.length == 0) + { + return false; + } + + if (args[0].equals("create")) + { + msg("Creating your AMP account...", ChatColor.GREEN); + Admin admin = getAdmin(playerSender); + + if (admin.getAmpUsername() != null) + { + msg("You already have an AMP account.", ChatColor.RED); + return true; + } + + String username = sender.getName(); + String password = FUtil.randomString(30); + + admin.setAmpUsername(username); + plugin.al.save(admin); + plugin.al.updateTables(); + + plugin.amp.createAccount(username, password); + plugin.dc.sendAMPInfo(playerData, username, password); + msg("Successfully created your AMP account. Check your DMs from " + plugin.dc.formatBotTag() + " on discord to get your credentials.", ChatColor.GREEN); + return true; + } + else if (args[0].equals("resetpassword")) + { + Admin admin = getAdmin(playerSender); + + if (admin.getAmpUsername() == null) + { + msg("You do not have an AMP account.", ChatColor.RED); + return true; + } + + msg("Resetting your password...", ChatColor.GREEN); + + String username = admin.getAmpUsername(); + String password = FUtil.randomString(30); + plugin.amp.setPassword(username,password); + plugin.dc.sendAMPInfo(playerData, username, password); + + msg("Successfully reset your AMP account password. Check your DMs from " + plugin.dc.formatBotTag() + " on discord to get your credentials.", ChatColor.GREEN); + return true; + } + + return false; + } + + @Override + public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) + { + if (args.length == 1 && plugin.al.isSeniorAdmin(sender)) + { + return Arrays.asList("create", "resetpassword"); + } + + return Collections.emptyList(); + } + +} diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_donator.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_donator.java index ef626487..50ec5bc2 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_donator.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_donator.java @@ -77,7 +77,7 @@ public class Command_donator extends FreedomCommand try { - FUtil.postRequestToEndpoint(url, "POST", headers, payload); + FUtil.sendRequest(url, "POST", headers, payload); } catch (IOException e) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_doom.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_doom.java index 741c7c67..2cf8579c 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_doom.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_doom.java @@ -51,6 +51,7 @@ public class Command_doom extends FreedomCommand admin.setActive(false); plugin.al.save(admin); plugin.al.updateTables(); + plugin.amp.updateAccountStatus(admin); if (plugin.dc.enabled && ConfigEntry.DISCORD_ROLE_SYNC.getBoolean()) { plugin.dc.syncRoles(admin, plugin.pl.getData(admin.getName()).getDiscordID()); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_myadmin.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_myadmin.java index 7c4854b6..b1e4cef0 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_myadmin.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_myadmin.java @@ -204,14 +204,6 @@ public class Command_myadmin extends FreedomCommand msg((target.getOldTags() ? "Enabled" : "Disabled") + " old tags."); return true; } - case "logstick": - { - target.setLogStick(!target.getLogStick()); - plugin.al.save(target); - plugin.al.updateTables(); - msg((target.getLogStick() ? "Enabled" : "Disabled") + " log-stick lookup."); - return true; - } case "syncroles": { @@ -262,7 +254,7 @@ public class Command_myadmin extends FreedomCommand } List singleArguments = Arrays.asList("clearips", "setlogin", "setacformat"); - List doubleArguments = Arrays.asList("clearip", "clearlogin", "clearacformat", "oldtags", "logstick", "syncroles"); + List doubleArguments = Arrays.asList("clearip", "clearlogin", "clearacformat", "oldtags", "syncroles"); if (args.length == 1) { List options = new ArrayList<>(); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_saconfig.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_saconfig.java index e2a28424..f10f0e30 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_saconfig.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_saconfig.java @@ -111,6 +111,8 @@ public class Command_saconfig extends FreedomCommand plugin.dc.syncRoles(admin, plugin.pl.getData(admin.getName()).getDiscordID()); } + plugin.amp.updateAccountStatus(admin); + msg("Set " + admin.getName() + "'s rank to " + rank.getName()); return true; } @@ -203,6 +205,7 @@ public class Command_saconfig extends FreedomCommand plugin.al.addAdmin(admin); plugin.rm.updateDisplay(player); + plugin.amp.updateAccountStatus(admin); } else // Existing admin { @@ -239,6 +242,7 @@ public class Command_saconfig extends FreedomCommand { plugin.dc.syncRoles(admin, plugin.pl.getData(player).getDiscordID()); } + plugin.amp.updateAccountStatus(admin); } if (player != null) @@ -289,9 +293,11 @@ public class Command_saconfig extends FreedomCommand if (plugin.dc.enabled && ConfigEntry.DISCORD_ROLE_SYNC.getBoolean()) { - plugin.dc.syncRoles(admin, plugin.pl.getData(player).getDiscordID()); + plugin.dc.syncRoles(admin, plugin.pl.getData(admin.getName()).getDiscordID()); } + plugin.amp.updateAccountStatus(admin); + return true; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/config/ConfigEntry.java b/src/main/java/me/totalfreedom/totalfreedommod/config/ConfigEntry.java index 4d3bf2d5..9fa1ee00 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/config/ConfigEntry.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/config/ConfigEntry.java @@ -98,6 +98,10 @@ public enum ConfigEntry REDDIT_EXECUTIVE_FLAIR_ID(String.class, "reddit.executive_flair_id"), REDDIT_SERVER_OWNER_FLAIR_ID(String.class, "reddit.server_owner_flair_id"), // + AMP_URL(String.class, "amp.url"), + AMP_USERNAME(String.class, "amp.username"), + AMP_PASSWORD(String.class, "amp.password"), + // DONATION_PROBOARDS_URL(String.class, "donation.proboards_url"), DONATION_GROUP_ID(String.class, "donation.donator_group_id"), DONATION_SESSION_ID(String.class, "donation.session_id"), diff --git a/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java b/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java index 8198b533..93b7f615 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java @@ -1,6 +1,5 @@ package me.totalfreedom.totalfreedommod.discord; -import com.earth2me.essentials.User; import com.google.common.base.Strings; import java.io.File; import java.io.FileWriter; @@ -21,6 +20,7 @@ import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.player.PlayerData; import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.util.FLog; +import me.totalfreedom.totalfreedommod.util.FUtil; import net.dv8tion.jda.api.AccountType; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.JDA; @@ -33,6 +33,7 @@ import net.dv8tion.jda.api.entities.PrivateChannel; import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.SelfUser; import net.dv8tion.jda.api.entities.TextChannel; +import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.events.ReadyEvent; import net.dv8tion.jda.api.hooks.ListenerAdapter; import net.dv8tion.jda.internal.utils.concurrent.CountingThreadFactory; @@ -144,11 +145,19 @@ public class Discord extends FreedomService } } + public void sendAMPInfo(PlayerData playerData, String username, String password) + { + User user = bot.getUserById(playerData.getDiscordID()); + String message = "The following is your AMP details:\n\nUsername: " + username + "\nPassword: " + password + "\n\nYou can connect to AMP at " + plugin.amp.URL; + PrivateChannel privateChannel = user.openPrivateChannel().complete(); + privateChannel.sendMessage(message).complete(); + } + public boolean sendBackupCodes(PlayerData playerData) { List codes = generateBackupCodes(); List encryptedCodes = generateEncryptedBackupCodes(codes); - net.dv8tion.jda.api.entities.User user = bot.getUserById(playerData.getDiscordID()); + User user = bot.getUserById(playerData.getDiscordID()); File file = generateBackupCodesFile(playerData.getName(), codes); if (file == null) { @@ -167,22 +176,11 @@ public class Discord extends FreedomService List codes = new ArrayList<>(); for (int i = 0; i < 10; i++) { - codes.add(randomString(10)); + codes.add(FUtil.randomAlphanumericString(10)); } return codes; } - public String randomString(int size) - { - List chars = Arrays.asList("ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz".split("(?!^)")); - StringBuilder stringBuilder = new StringBuilder(); - for (int i = 0; i < size; i++) - { - stringBuilder.append(chars.get(random.nextInt(chars.size()))); - } - return stringBuilder.toString(); - } - public String generateCode(int size) { String code = ""; @@ -371,7 +369,7 @@ public class Discord extends FreedomService String location = "World: " + reported.getLocation().getWorld().getName() + ", X: " + reported.getLocation().getBlockX() + ", Y: " + reported.getLocation().getBlockY() + ", Z: " + reported.getLocation().getBlockZ(); embedBuilder.addField("Location", location, true); embedBuilder.addField("Game Mode", WordUtils.capitalizeFully(reported.getGameMode().name()), true); - User user = plugin.esb.getEssentialsUser(reported.getName()); + com.earth2me.essentials.User user = plugin.esb.getEssentialsUser(reported.getName()); embedBuilder.addField("God Mode", WordUtils.capitalizeFully(String.valueOf(user.isGodModeEnabled())), true); if (user.getNickname() != null) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/shop/Shop.java b/src/main/java/me/totalfreedom/totalfreedommod/shop/Shop.java index 6fcecc86..aa0a73b2 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/shop/Shop.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/shop/Shop.java @@ -74,7 +74,7 @@ public class Shop extends FreedomService return; } - reactionString = FUtil.randomString(ConfigEntry.SHOP_REACTIONS_STRING_LENGTH.getInteger()); + reactionString = FUtil.randomAlphanumericString(ConfigEntry.SHOP_REACTIONS_STRING_LENGTH.getInteger()); FUtil.bcastMsg(prefix + ChatColor.AQUA + "Enter the code above to win " + ChatColor.GOLD + coinsPerReactionWin + ChatColor.AQUA + " coins!", false); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/sql/SQLite.java b/src/main/java/me/totalfreedom/totalfreedommod/sql/SQLite.java index 977ee176..68df1534 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/sql/SQLite.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/sql/SQLite.java @@ -70,7 +70,7 @@ public class SQLite extends FreedomService { try { - connection.createStatement().execute("CREATE TABLE `bans` ( `name` VARCHAR, `ips` VARCHAR, `by` VARCHAR NOT NULL, `at` LONG NOT NULL, `expires` LONG, `reason` VARCHAR );"); + connection.createStatement().execute("CREATE TABLE `bans` (`name` VARCHAR, `ips` VARCHAR, `by` VARCHAR NOT NULL, `at` LONG NOT NULL, `expires` LONG, `reason` VARCHAR);"); } catch (SQLException e) { @@ -82,7 +82,7 @@ public class SQLite extends FreedomService { try { - connection.createStatement().execute("CREATE TABLE `admins` (`username` VARCHAR NOT NULL, `ips` VARCHAR NOT NULL, `rank` VARCHAR NOT NULL, `active` BOOLEAN NOT NULL, `last_login` LONG NOT NULL, `login_message` VARCHAR, `command_spy` BOOLEAN NOT NULL, `potion_spy` BOOLEAN NOT NULL, `ac_format` VARCHAR, `old_tags` BOOLEAN NOT NULL, `log_stick` BOOLEAN NOT NULL);"); + connection.createStatement().execute("CREATE TABLE `admins` (`username` VARCHAR NOT NULL, `ips` VARCHAR NOT NULL, `rank` VARCHAR NOT NULL, `active` BOOLEAN NOT NULL, `last_login` LONG NOT NULL, `login_message` VARCHAR, `command_spy` BOOLEAN NOT NULL, `potion_spy` BOOLEAN NOT NULL, `ac_format` VARCHAR, `old_tags` BOOLEAN NOT NULL, `amp_username` VARCHAR);"); } catch (SQLException e) { @@ -257,7 +257,7 @@ public class SQLite extends FreedomService statement.setBoolean(8, admin.getPotionSpy()); statement.setString(9, admin.getAcFormat()); statement.setBoolean(10, admin.getOldTags()); - statement.setBoolean(11, admin.getLogStick()); + statement.setString(11, admin.getAmpUsername()); statement.executeUpdate(); } catch (SQLException e) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java b/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java index 091f5341..1c54355f 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java @@ -223,7 +223,7 @@ public class FUtil List headers = new ArrayList<>(); headers.add("Accept:application/json"); headers.add("Content-Type:application/json"); - String response = postRequestToEndpoint("https://api.mojang.com/profiles/minecraft", "POST", headers, json.toString()); + String response = sendRequest("https://api.mojang.com/profiles/minecraft", "POST", headers, json.toString()); // Don't care how stupid this looks, couldn't find anything to parse a json string to something readable in java with something not horrendously huge, maybe im just retarded Pattern pattern = Pattern.compile("(?<=\"id\":\")[a-f0-9].{31}"); Matcher matcher = pattern.matcher(response); @@ -240,7 +240,7 @@ public class FUtil return null; } - public static String postRequestToEndpoint(String endpoint, String method, Listheaders, String body) throws IOException + public static String sendRequest(String endpoint, String method, Listheaders, String body) throws IOException { URL url = new URL(endpoint); HttpsURLConnection connection = (HttpsURLConnection)url.openConnection(); @@ -639,12 +639,26 @@ public class FUtil } public static String randomString(int length) + { + String characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvxyz0123456789-_=+[]{};:,.<>~"; + String randomString = ""; + for (int i = 0; i < length; i++) + { + int selectedCharacter = randomInteger(1, characters.length()) - 1; + + randomString += characters.charAt(selectedCharacter); + } + + return randomString; + + } + + public static String randomAlphanumericString(int length) { String characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvxyz0123456789"; String randomString = ""; for (int i = 0; i < length; i++) { - int selectedCharacter = randomInteger(1, characters.length()) - 1; randomString += characters.charAt(selectedCharacter); diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index c04675ab..9f3f3349 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -114,6 +114,15 @@ reddit: executive_flair_id: '' # Owner flair ID server_owner_flair_id: '' + +# AMP +amp: + # URL - do not leave a trailing forward slash + url: '' + # Username + username: '' + # Password + password: '' # The shop shop: From 087e4a0d9c6b763a2eb13bed657ea2c17204a1cc Mon Sep 17 00:00:00 2001 From: speedxx <43330808+speedxx@users.noreply.github.com> Date: Sat, 8 Aug 2020 23:20:06 -0400 Subject: [PATCH 18/54] fix adminchat bug --- .../totalfreedommod/command/Command_saconfig.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_saconfig.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_saconfig.java index f10f0e30..251e0cb1 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_saconfig.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_saconfig.java @@ -284,6 +284,12 @@ public class Command_saconfig extends FreedomCommand FUtil.adminAction(sender.getName(), "Removing " + admin.getName() + " from the admin list", true); admin.setActive(false); + + if (plugin.pl.getPlayer(player).inAdminChat()) + { + plugin.pl.getPlayer(player).setAdminChat(false); + } + plugin.al.save(admin); plugin.al.updateTables(); if (player != null) @@ -343,4 +349,4 @@ public class Command_saconfig extends FreedomCommand return Collections.emptyList(); } -} +} \ No newline at end of file From f4f25c1590534d7c243c9c222143e95bfeca3d69 Mon Sep 17 00:00:00 2001 From: Seth <13510767+ZeroEpoch1969@users.noreply.github.com> Date: Sun, 9 Aug 2020 17:47:53 -0700 Subject: [PATCH 19/54] useless --- .../totalfreedommod/banning/Ban.java | 29 +------------------ 1 file changed, 1 insertion(+), 28 deletions(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/banning/Ban.java b/src/main/java/me/totalfreedom/totalfreedommod/banning/Ban.java index 11a56c04..01ef8cea 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/banning/Ban.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/banning/Ban.java @@ -13,14 +13,12 @@ import java.util.Set; import lombok.Getter; import lombok.Setter; import me.totalfreedom.totalfreedommod.config.ConfigEntry; -import me.totalfreedom.totalfreedommod.config.IConfig; import me.totalfreedom.totalfreedommod.util.FUtil; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; -import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; -public class Ban implements IConfig +public class Ban { public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd \'at\' HH:mm:ss z"); @@ -238,31 +236,6 @@ public class Ban implements IConfig return !(hasUsername() && !(getUsername().equalsIgnoreCase(ban.getUsername()))); } - @Override - public int hashCode() - { - int hash = 7; - hash = 79 * hash + (this.username != null ? this.username.toLowerCase().hashCode() : 0); - hash = 79 * hash + (this.ips != null ? this.ips.hashCode() : 0); - return hash; - } - - @Override - public void loadFrom(ConfigurationSection cs) - { - } - - @Override - public void saveTo(ConfigurationSection cs) - { - } - - @Override - public boolean isValid() - { - return username != null || !ips.isEmpty(); - } - private void dedupeIps() { From 4003db6dd9d5fadb7d8a215df9ca79369386ccd9 Mon Sep 17 00:00:00 2001 From: Seth <13510767+ZeroEpoch1969@users.noreply.github.com> Date: Sun, 9 Aug 2020 17:48:42 -0700 Subject: [PATCH 20/54] Permbans are now indefinite bans. --- .../totalfreedommod/BackupManager.java | 4 +- .../banning/IndefiniteBan.java | 63 ++++++++ .../banning/IndefiniteBanList.java | 140 ++++++++++++++++++ .../totalfreedommod/banning/PermbanList.java | 92 ------------ ...and_permban.java => Command_indefban.java} | 15 +- ...le_permbans.java => Module_indefbans.java} | 12 +- src/main/resources/indefinitebans.yml | 15 ++ src/main/resources/permbans.yml | 10 -- 8 files changed, 232 insertions(+), 119 deletions(-) create mode 100644 src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBan.java create mode 100644 src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBanList.java delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/banning/PermbanList.java rename src/main/java/me/totalfreedom/totalfreedommod/command/{Command_permban.java => Command_indefban.java} (57%) rename src/main/java/me/totalfreedom/totalfreedommod/httpd/module/{Module_permbans.java => Module_indefbans.java} (71%) create mode 100644 src/main/resources/indefinitebans.yml delete mode 100644 src/main/resources/permbans.yml diff --git a/src/main/java/me/totalfreedom/totalfreedommod/BackupManager.java b/src/main/java/me/totalfreedom/totalfreedommod/BackupManager.java index 43f84789..e70bbf36 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/BackupManager.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/BackupManager.java @@ -1,7 +1,7 @@ package me.totalfreedom.totalfreedommod; import java.io.File; -import me.totalfreedom.totalfreedommod.banning.PermbanList; +import me.totalfreedom.totalfreedommod.banning.IndefiniteBanList; import me.totalfreedom.totalfreedommod.config.YamlConfig; import me.totalfreedom.totalfreedommod.permissions.PermissionConfig; import me.totalfreedom.totalfreedommod.punishments.PunishmentList; @@ -29,7 +29,7 @@ public class BackupManager extends FreedomService public void createAllBackups() { createBackups(TotalFreedomMod.CONFIG_FILENAME, true); - createBackups(PermbanList.CONFIG_FILENAME); + createBackups(IndefiniteBanList.CONFIG_FILENAME); createBackups(PermissionConfig.PERMISSIONS_FILENAME, true); createBackups(PunishmentList.CONFIG_FILENAME); createBackups("database.db"); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBan.java b/src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBan.java new file mode 100644 index 00000000..1e3efcbe --- /dev/null +++ b/src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBan.java @@ -0,0 +1,63 @@ +package me.totalfreedom.totalfreedommod.banning; + +import com.google.common.collect.Lists; +import java.util.List; +import java.util.UUID; +import lombok.Getter; +import lombok.Setter; +import me.totalfreedom.totalfreedommod.config.IConfig; +import me.totalfreedom.totalfreedommod.util.FLog; +import org.bukkit.configuration.ConfigurationSection; + +public class IndefiniteBan implements IConfig +{ + + @Getter + @Setter + private String username = null; + @Getter + @Setter + private UUID uuid = null; + @Getter + private final List ips = Lists.newArrayList(); + @Getter + @Setter + private String reason = null; + + public IndefiniteBan() + { + } + + @Override + public void loadFrom(ConfigurationSection cs) + { + this.username = cs.getName(); + try + { + String strUUID = cs.getString("uuid", null); + if (strUUID != null) + { + UUID uuid = UUID.fromString(strUUID); + this.uuid = uuid; + } + } + catch (IllegalArgumentException e) + { + FLog.warning("Failed to load indefinite banned UUID for " + this.username + ". Make sure the UUID is in the correct format with dashes."); + } + this.ips.clear(); + this.ips.addAll(cs.getStringList("ips")); + this.reason = cs.getString("reason", null); + } + + @Override + public void saveTo(ConfigurationSection cs) + { + } + + @Override + public boolean isValid() + { + return username != null; + } +} diff --git a/src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBanList.java b/src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBanList.java new file mode 100644 index 00000000..042cdf75 --- /dev/null +++ b/src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBanList.java @@ -0,0 +1,140 @@ +package me.totalfreedom.totalfreedommod.banning; + +import com.google.common.base.Strings; +import com.google.common.collect.Sets; +import java.util.Set; +import java.util.UUID; +import lombok.Getter; +import me.totalfreedom.totalfreedommod.FreedomService; +import me.totalfreedom.totalfreedommod.config.ConfigEntry; +import me.totalfreedom.totalfreedommod.config.YamlConfig; +import me.totalfreedom.totalfreedommod.util.FLog; +import me.totalfreedom.totalfreedommod.util.FUtil; +import org.bukkit.ChatColor; +import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.player.PlayerLoginEvent; + +public class IndefiniteBanList extends FreedomService +{ + + public static final String CONFIG_FILENAME = "indefinitebans.yml"; + + @Getter + private final Set indefBans = Sets.newHashSet(); + + @Getter + private int nameBanCount = 0; + + @Getter + private int uuidBanCount = 0; + + @Getter + private int ipBanCount = 0; + + @Override + public void onStart() + { + indefBans.clear(); + + final YamlConfig config = new YamlConfig(plugin, CONFIG_FILENAME, true); + config.load(); + + for (String name : config.getKeys(false)) + { + if (!config.isConfigurationSection(name)) + { + FLog.warning("Could not load indefinite ban for " + name + ": Invalid format!"); + continue; + } + + IndefiniteBan indefBan = new IndefiniteBan(); + ConfigurationSection cs = config.getConfigurationSection(name); + indefBan.loadFrom(cs); + + if (!indefBan.isValid()) + { + FLog.warning("Not adding indefinite ban for " + name + ": Missing information."); + continue; + } + + indefBans.add(indefBan); + } + + updateCount(); + + FLog.info("Loaded " + nameBanCount + " indefinite name bans, " + uuidBanCount + " UUID bans, and " + ipBanCount + " ip bans"); + } + + @Override + public void onStop() + { + } + + @EventHandler(priority = EventPriority.LOWEST) + public void onPlayerLogin(PlayerLoginEvent event) + { + final String username = event.getPlayer().getName(); + final UUID uuid = event.getPlayer().getUniqueId(); + final String ip = FUtil.getIp(event); + + String bannedBy = ""; + IndefiniteBan ban = null; + + for (IndefiniteBan indefBan : indefBans) + { + if (username.toLowerCase().equals(indefBan.getUsername().toLowerCase())) + { + bannedBy = "username"; + ban = indefBan; + break; + } + else if (indefBan.getUuid() != null && indefBan.getUuid().equals(uuid)) + { + bannedBy = "UUID"; + ban = indefBan; + break; + } + else if (indefBan.getIps().contains(ip)) + { + bannedBy = "IP address"; + ban = indefBan; + break; + } + } + + if (ban != null) + { + String kickMessage = ChatColor.RED + "Your " + bannedBy + " is indefinitely banned from this server."; + String reason = ban.getReason(); + if (!Strings.isNullOrEmpty(reason)) + { + kickMessage += "\nReason: " + ChatColor.GOLD + reason; + } + String appealURL = ConfigEntry.SERVER_INDEFBAN_URL.getString(); + if (!Strings.isNullOrEmpty(appealURL)) + { + kickMessage += ChatColor.RED + "\n\nRelease procedures are available at\n" + ChatColor.GOLD + ConfigEntry.SERVER_INDEFBAN_URL.getString(); + } + event.disallow(PlayerLoginEvent.Result.KICK_OTHER, kickMessage); + } + } + + private void updateCount() + { + nameBanCount = 0; + uuidBanCount = 0; + ipBanCount = 0; + + for (IndefiniteBan indefBan : indefBans) + { + nameBanCount += 1; + if (indefBan.getUuid() != null) + { + uuidBanCount += 1; + } + ipBanCount += indefBan.getIps().size(); + } + } +} diff --git a/src/main/java/me/totalfreedom/totalfreedommod/banning/PermbanList.java b/src/main/java/me/totalfreedom/totalfreedommod/banning/PermbanList.java deleted file mode 100644 index 7265bab6..00000000 --- a/src/main/java/me/totalfreedom/totalfreedommod/banning/PermbanList.java +++ /dev/null @@ -1,92 +0,0 @@ -package me.totalfreedom.totalfreedommod.banning; - -import com.google.common.collect.Sets; -import java.util.Set; -import lombok.Getter; -import me.totalfreedom.totalfreedommod.FreedomService; -import me.totalfreedom.totalfreedommod.config.ConfigEntry; -import me.totalfreedom.totalfreedommod.config.YamlConfig; -import me.totalfreedom.totalfreedommod.util.FLog; -import me.totalfreedom.totalfreedommod.util.FUtil; -import org.bukkit.ChatColor; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.player.PlayerLoginEvent; - -public class PermbanList extends FreedomService -{ - - public static final String CONFIG_FILENAME = "permbans.yml"; - - @Getter - private final Set permbannedNames = Sets.newHashSet(); - @Getter - private final Set permbannedIps = Sets.newHashSet(); - - @Override - public void onStart() - { - permbannedNames.clear(); - permbannedIps.clear(); - - final YamlConfig config = new YamlConfig(plugin, CONFIG_FILENAME, true); - config.load(); - - for (String name : config.getKeys(false)) - { - permbannedNames.add(name.toLowerCase().trim()); - permbannedIps.addAll(config.getStringList(name)); - } - - FLog.info("Loaded " + permbannedIps.size() + " perm IP bans and " + permbannedNames.size() + " perm username bans."); - } - - @Override - public void onStop() - { - } - - @EventHandler(priority = EventPriority.LOWEST) - public void onPlayerLogin(PlayerLoginEvent event) - { - final String username = event.getPlayer().getName(); - final String ip = FUtil.getIp(event); - - // Permbanned IPs - for (String testIp : getPermbannedIps()) - { - if (FUtil.fuzzyIpMatch(testIp, ip, 4)) - { - event.disallow(PlayerLoginEvent.Result.KICK_OTHER, - ChatColor.RED + "Your IP address is permanently banned from this server.\n" - + "Release procedures are available at\n" - + ChatColor.GOLD + ConfigEntry.SERVER_PERMBAN_URL.getString()); - return; - } - } - - // Permbanned usernames - for (String testPlayer : getPermbannedNames()) - { - if (testPlayer.equalsIgnoreCase(username)) - { - event.disallow(PlayerLoginEvent.Result.KICK_OTHER, - ChatColor.RED + "Your username is permanently banned from this server.\n" - + "Release procedures are available at\n" - + ChatColor.GOLD + ConfigEntry.SERVER_PERMBAN_URL.getString()); - return; - } - } - - } - - public Set getPermbannedNames() - { - return this.permbannedNames; - } - - public Set getPermbannedIps() - { - return this.permbannedIps; - } -} diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permban.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_indefban.java similarity index 57% rename from src/main/java/me/totalfreedom/totalfreedommod/command/Command_permban.java rename to src/main/java/me/totalfreedom/totalfreedommod/command/Command_indefban.java index ba8f8ef8..32f5f1bb 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permban.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_indefban.java @@ -1,14 +1,13 @@ package me.totalfreedom.totalfreedommod.command; import me.totalfreedom.totalfreedommod.rank.Rank; -import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_CONSOLE) -@CommandParameters(description = "Reload the permban list.", usage = "/ reload", aliases = "pb") -public class Command_permban extends FreedomCommand +@CommandParameters(description = "Reload the indefinite ban list.", usage = "/ reload", aliases = "ib") +public class Command_indefban extends FreedomCommand { @Override @@ -24,12 +23,10 @@ public class Command_permban extends FreedomCommand return false; } - msg("Reloading permban list...", ChatColor.RED); - plugin.pm.onStop(); - plugin.pm.onStart(); - msg("Reloaded permban list."); - msg(plugin.pm.getPermbannedIps().size() + " IPs and " - + plugin.pm.getPermbannedNames().size() + " usernames loaded."); + msg("Reloading the indefinite ban list..."); + plugin.im.onStop(); + plugin.im.onStart(); + msg("Reloaded the indefinite ban list."); return true; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_permbans.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_indefbans.java similarity index 71% rename from src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_permbans.java rename to src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_indefbans.java index a26c3d05..152390b3 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_permbans.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_indefbans.java @@ -3,14 +3,14 @@ package me.totalfreedom.totalfreedommod.httpd.module; import java.io.File; import me.totalfreedom.totalfreedommod.TotalFreedomMod; import me.totalfreedom.totalfreedommod.admin.Admin; -import me.totalfreedom.totalfreedommod.banning.PermbanList; +import me.totalfreedom.totalfreedommod.banning.IndefiniteBanList; import me.totalfreedom.totalfreedommod.httpd.HTTPDaemon; import me.totalfreedom.totalfreedommod.httpd.NanoHTTPD; -public class Module_permbans extends HTTPDModule +public class Module_indefbans extends HTTPDModule { - public Module_permbans(TotalFreedomMod plugin, NanoHTTPD.HTTPSession session) + public Module_indefbans(TotalFreedomMod plugin, NanoHTTPD.HTTPSession session) { super(plugin, session); } @@ -18,17 +18,17 @@ public class Module_permbans extends HTTPDModule @Override public NanoHTTPD.Response getResponse() { - File permbanFile = new File(plugin.getDataFolder(), PermbanList.CONFIG_FILENAME); + File permbanFile = new File(plugin.getDataFolder(), IndefiniteBanList.CONFIG_FILENAME); final String remoteAddress = socket.getInetAddress().getHostAddress(); if (!isAuthorized(remoteAddress)) { return new NanoHTTPD.Response(NanoHTTPD.Response.Status.NOT_FOUND, NanoHTTPD.MIME_PLAINTEXT, - "You may not view the permban list. Your IP, " + remoteAddress + ", is not registered to an admin on the server."); + "You may not view the indefinite ban list. Your IP, " + remoteAddress + ", is not registered to an admin on the server."); } if (permbanFile.exists()) { - return HTTPDaemon.serveFileBasic(new File(plugin.getDataFolder(), PermbanList.CONFIG_FILENAME)); + return HTTPDaemon.serveFileBasic(new File(plugin.getDataFolder(), IndefiniteBanList.CONFIG_FILENAME)); } else { diff --git a/src/main/resources/indefinitebans.yml b/src/main/resources/indefinitebans.yml new file mode 100644 index 00000000..4e4404ce --- /dev/null +++ b/src/main/resources/indefinitebans.yml @@ -0,0 +1,15 @@ +# +# TotalFreedomMod Indefinite Bans +# + +badplayer1: + uuid: '123e4567-e89b-12d3-a456-426614174000' + ips: + - 123.123.123.123 + - 321.321.321.321 + reason: 'bad player' +badplayer2: + ips: + - 111.111.111.111 +badplayer3: + ips: [] diff --git a/src/main/resources/permbans.yml b/src/main/resources/permbans.yml deleted file mode 100644 index 0df32bba..00000000 --- a/src/main/resources/permbans.yml +++ /dev/null @@ -1,10 +0,0 @@ -# -# TotalFreedomMod 5.5 Permanent Bans -# - -badplayer1: - - 123.123.123.123 - - 321.321.321.321 -badplayer2: - - 111.111.111.111 -badplayer3: [] From 54df0e08f5a7cb6d38c0d269087d9109ec111385 Mon Sep 17 00:00:00 2001 From: Seth <13510767+ZeroEpoch1969@users.noreply.github.com> Date: Sun, 9 Aug 2020 17:49:20 -0700 Subject: [PATCH 21/54] Revert "Permbans are now indefinite bans." This reverts commit 4003db6dd9d5fadb7d8a215df9ca79369386ccd9. --- .../totalfreedommod/BackupManager.java | 4 +- .../banning/IndefiniteBan.java | 63 -------- .../banning/IndefiniteBanList.java | 140 ------------------ .../totalfreedommod/banning/PermbanList.java | 92 ++++++++++++ ...and_indefban.java => Command_permban.java} | 15 +- ...le_indefbans.java => Module_permbans.java} | 12 +- src/main/resources/indefinitebans.yml | 15 -- src/main/resources/permbans.yml | 10 ++ 8 files changed, 119 insertions(+), 232 deletions(-) delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBan.java delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBanList.java create mode 100644 src/main/java/me/totalfreedom/totalfreedommod/banning/PermbanList.java rename src/main/java/me/totalfreedom/totalfreedommod/command/{Command_indefban.java => Command_permban.java} (57%) rename src/main/java/me/totalfreedom/totalfreedommod/httpd/module/{Module_indefbans.java => Module_permbans.java} (71%) delete mode 100644 src/main/resources/indefinitebans.yml create mode 100644 src/main/resources/permbans.yml diff --git a/src/main/java/me/totalfreedom/totalfreedommod/BackupManager.java b/src/main/java/me/totalfreedom/totalfreedommod/BackupManager.java index e70bbf36..43f84789 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/BackupManager.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/BackupManager.java @@ -1,7 +1,7 @@ package me.totalfreedom.totalfreedommod; import java.io.File; -import me.totalfreedom.totalfreedommod.banning.IndefiniteBanList; +import me.totalfreedom.totalfreedommod.banning.PermbanList; import me.totalfreedom.totalfreedommod.config.YamlConfig; import me.totalfreedom.totalfreedommod.permissions.PermissionConfig; import me.totalfreedom.totalfreedommod.punishments.PunishmentList; @@ -29,7 +29,7 @@ public class BackupManager extends FreedomService public void createAllBackups() { createBackups(TotalFreedomMod.CONFIG_FILENAME, true); - createBackups(IndefiniteBanList.CONFIG_FILENAME); + createBackups(PermbanList.CONFIG_FILENAME); createBackups(PermissionConfig.PERMISSIONS_FILENAME, true); createBackups(PunishmentList.CONFIG_FILENAME); createBackups("database.db"); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBan.java b/src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBan.java deleted file mode 100644 index 1e3efcbe..00000000 --- a/src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBan.java +++ /dev/null @@ -1,63 +0,0 @@ -package me.totalfreedom.totalfreedommod.banning; - -import com.google.common.collect.Lists; -import java.util.List; -import java.util.UUID; -import lombok.Getter; -import lombok.Setter; -import me.totalfreedom.totalfreedommod.config.IConfig; -import me.totalfreedom.totalfreedommod.util.FLog; -import org.bukkit.configuration.ConfigurationSection; - -public class IndefiniteBan implements IConfig -{ - - @Getter - @Setter - private String username = null; - @Getter - @Setter - private UUID uuid = null; - @Getter - private final List ips = Lists.newArrayList(); - @Getter - @Setter - private String reason = null; - - public IndefiniteBan() - { - } - - @Override - public void loadFrom(ConfigurationSection cs) - { - this.username = cs.getName(); - try - { - String strUUID = cs.getString("uuid", null); - if (strUUID != null) - { - UUID uuid = UUID.fromString(strUUID); - this.uuid = uuid; - } - } - catch (IllegalArgumentException e) - { - FLog.warning("Failed to load indefinite banned UUID for " + this.username + ". Make sure the UUID is in the correct format with dashes."); - } - this.ips.clear(); - this.ips.addAll(cs.getStringList("ips")); - this.reason = cs.getString("reason", null); - } - - @Override - public void saveTo(ConfigurationSection cs) - { - } - - @Override - public boolean isValid() - { - return username != null; - } -} diff --git a/src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBanList.java b/src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBanList.java deleted file mode 100644 index 042cdf75..00000000 --- a/src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBanList.java +++ /dev/null @@ -1,140 +0,0 @@ -package me.totalfreedom.totalfreedommod.banning; - -import com.google.common.base.Strings; -import com.google.common.collect.Sets; -import java.util.Set; -import java.util.UUID; -import lombok.Getter; -import me.totalfreedom.totalfreedommod.FreedomService; -import me.totalfreedom.totalfreedommod.config.ConfigEntry; -import me.totalfreedom.totalfreedommod.config.YamlConfig; -import me.totalfreedom.totalfreedommod.util.FLog; -import me.totalfreedom.totalfreedommod.util.FUtil; -import org.bukkit.ChatColor; -import org.bukkit.configuration.ConfigurationSection; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.player.PlayerLoginEvent; - -public class IndefiniteBanList extends FreedomService -{ - - public static final String CONFIG_FILENAME = "indefinitebans.yml"; - - @Getter - private final Set indefBans = Sets.newHashSet(); - - @Getter - private int nameBanCount = 0; - - @Getter - private int uuidBanCount = 0; - - @Getter - private int ipBanCount = 0; - - @Override - public void onStart() - { - indefBans.clear(); - - final YamlConfig config = new YamlConfig(plugin, CONFIG_FILENAME, true); - config.load(); - - for (String name : config.getKeys(false)) - { - if (!config.isConfigurationSection(name)) - { - FLog.warning("Could not load indefinite ban for " + name + ": Invalid format!"); - continue; - } - - IndefiniteBan indefBan = new IndefiniteBan(); - ConfigurationSection cs = config.getConfigurationSection(name); - indefBan.loadFrom(cs); - - if (!indefBan.isValid()) - { - FLog.warning("Not adding indefinite ban for " + name + ": Missing information."); - continue; - } - - indefBans.add(indefBan); - } - - updateCount(); - - FLog.info("Loaded " + nameBanCount + " indefinite name bans, " + uuidBanCount + " UUID bans, and " + ipBanCount + " ip bans"); - } - - @Override - public void onStop() - { - } - - @EventHandler(priority = EventPriority.LOWEST) - public void onPlayerLogin(PlayerLoginEvent event) - { - final String username = event.getPlayer().getName(); - final UUID uuid = event.getPlayer().getUniqueId(); - final String ip = FUtil.getIp(event); - - String bannedBy = ""; - IndefiniteBan ban = null; - - for (IndefiniteBan indefBan : indefBans) - { - if (username.toLowerCase().equals(indefBan.getUsername().toLowerCase())) - { - bannedBy = "username"; - ban = indefBan; - break; - } - else if (indefBan.getUuid() != null && indefBan.getUuid().equals(uuid)) - { - bannedBy = "UUID"; - ban = indefBan; - break; - } - else if (indefBan.getIps().contains(ip)) - { - bannedBy = "IP address"; - ban = indefBan; - break; - } - } - - if (ban != null) - { - String kickMessage = ChatColor.RED + "Your " + bannedBy + " is indefinitely banned from this server."; - String reason = ban.getReason(); - if (!Strings.isNullOrEmpty(reason)) - { - kickMessage += "\nReason: " + ChatColor.GOLD + reason; - } - String appealURL = ConfigEntry.SERVER_INDEFBAN_URL.getString(); - if (!Strings.isNullOrEmpty(appealURL)) - { - kickMessage += ChatColor.RED + "\n\nRelease procedures are available at\n" + ChatColor.GOLD + ConfigEntry.SERVER_INDEFBAN_URL.getString(); - } - event.disallow(PlayerLoginEvent.Result.KICK_OTHER, kickMessage); - } - } - - private void updateCount() - { - nameBanCount = 0; - uuidBanCount = 0; - ipBanCount = 0; - - for (IndefiniteBan indefBan : indefBans) - { - nameBanCount += 1; - if (indefBan.getUuid() != null) - { - uuidBanCount += 1; - } - ipBanCount += indefBan.getIps().size(); - } - } -} diff --git a/src/main/java/me/totalfreedom/totalfreedommod/banning/PermbanList.java b/src/main/java/me/totalfreedom/totalfreedommod/banning/PermbanList.java new file mode 100644 index 00000000..7265bab6 --- /dev/null +++ b/src/main/java/me/totalfreedom/totalfreedommod/banning/PermbanList.java @@ -0,0 +1,92 @@ +package me.totalfreedom.totalfreedommod.banning; + +import com.google.common.collect.Sets; +import java.util.Set; +import lombok.Getter; +import me.totalfreedom.totalfreedommod.FreedomService; +import me.totalfreedom.totalfreedommod.config.ConfigEntry; +import me.totalfreedom.totalfreedommod.config.YamlConfig; +import me.totalfreedom.totalfreedommod.util.FLog; +import me.totalfreedom.totalfreedommod.util.FUtil; +import org.bukkit.ChatColor; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.player.PlayerLoginEvent; + +public class PermbanList extends FreedomService +{ + + public static final String CONFIG_FILENAME = "permbans.yml"; + + @Getter + private final Set permbannedNames = Sets.newHashSet(); + @Getter + private final Set permbannedIps = Sets.newHashSet(); + + @Override + public void onStart() + { + permbannedNames.clear(); + permbannedIps.clear(); + + final YamlConfig config = new YamlConfig(plugin, CONFIG_FILENAME, true); + config.load(); + + for (String name : config.getKeys(false)) + { + permbannedNames.add(name.toLowerCase().trim()); + permbannedIps.addAll(config.getStringList(name)); + } + + FLog.info("Loaded " + permbannedIps.size() + " perm IP bans and " + permbannedNames.size() + " perm username bans."); + } + + @Override + public void onStop() + { + } + + @EventHandler(priority = EventPriority.LOWEST) + public void onPlayerLogin(PlayerLoginEvent event) + { + final String username = event.getPlayer().getName(); + final String ip = FUtil.getIp(event); + + // Permbanned IPs + for (String testIp : getPermbannedIps()) + { + if (FUtil.fuzzyIpMatch(testIp, ip, 4)) + { + event.disallow(PlayerLoginEvent.Result.KICK_OTHER, + ChatColor.RED + "Your IP address is permanently banned from this server.\n" + + "Release procedures are available at\n" + + ChatColor.GOLD + ConfigEntry.SERVER_PERMBAN_URL.getString()); + return; + } + } + + // Permbanned usernames + for (String testPlayer : getPermbannedNames()) + { + if (testPlayer.equalsIgnoreCase(username)) + { + event.disallow(PlayerLoginEvent.Result.KICK_OTHER, + ChatColor.RED + "Your username is permanently banned from this server.\n" + + "Release procedures are available at\n" + + ChatColor.GOLD + ConfigEntry.SERVER_PERMBAN_URL.getString()); + return; + } + } + + } + + public Set getPermbannedNames() + { + return this.permbannedNames; + } + + public Set getPermbannedIps() + { + return this.permbannedIps; + } +} diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_indefban.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permban.java similarity index 57% rename from src/main/java/me/totalfreedom/totalfreedommod/command/Command_indefban.java rename to src/main/java/me/totalfreedom/totalfreedommod/command/Command_permban.java index 32f5f1bb..ba8f8ef8 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_indefban.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permban.java @@ -1,13 +1,14 @@ package me.totalfreedom.totalfreedommod.command; import me.totalfreedom.totalfreedommod.rank.Rank; +import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_CONSOLE) -@CommandParameters(description = "Reload the indefinite ban list.", usage = "/ reload", aliases = "ib") -public class Command_indefban extends FreedomCommand +@CommandParameters(description = "Reload the permban list.", usage = "/ reload", aliases = "pb") +public class Command_permban extends FreedomCommand { @Override @@ -23,10 +24,12 @@ public class Command_indefban extends FreedomCommand return false; } - msg("Reloading the indefinite ban list..."); - plugin.im.onStop(); - plugin.im.onStart(); - msg("Reloaded the indefinite ban list."); + msg("Reloading permban list...", ChatColor.RED); + plugin.pm.onStop(); + plugin.pm.onStart(); + msg("Reloaded permban list."); + msg(plugin.pm.getPermbannedIps().size() + " IPs and " + + plugin.pm.getPermbannedNames().size() + " usernames loaded."); return true; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_indefbans.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_permbans.java similarity index 71% rename from src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_indefbans.java rename to src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_permbans.java index 152390b3..a26c3d05 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_indefbans.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_permbans.java @@ -3,14 +3,14 @@ package me.totalfreedom.totalfreedommod.httpd.module; import java.io.File; import me.totalfreedom.totalfreedommod.TotalFreedomMod; import me.totalfreedom.totalfreedommod.admin.Admin; -import me.totalfreedom.totalfreedommod.banning.IndefiniteBanList; +import me.totalfreedom.totalfreedommod.banning.PermbanList; import me.totalfreedom.totalfreedommod.httpd.HTTPDaemon; import me.totalfreedom.totalfreedommod.httpd.NanoHTTPD; -public class Module_indefbans extends HTTPDModule +public class Module_permbans extends HTTPDModule { - public Module_indefbans(TotalFreedomMod plugin, NanoHTTPD.HTTPSession session) + public Module_permbans(TotalFreedomMod plugin, NanoHTTPD.HTTPSession session) { super(plugin, session); } @@ -18,17 +18,17 @@ public class Module_indefbans extends HTTPDModule @Override public NanoHTTPD.Response getResponse() { - File permbanFile = new File(plugin.getDataFolder(), IndefiniteBanList.CONFIG_FILENAME); + File permbanFile = new File(plugin.getDataFolder(), PermbanList.CONFIG_FILENAME); final String remoteAddress = socket.getInetAddress().getHostAddress(); if (!isAuthorized(remoteAddress)) { return new NanoHTTPD.Response(NanoHTTPD.Response.Status.NOT_FOUND, NanoHTTPD.MIME_PLAINTEXT, - "You may not view the indefinite ban list. Your IP, " + remoteAddress + ", is not registered to an admin on the server."); + "You may not view the permban list. Your IP, " + remoteAddress + ", is not registered to an admin on the server."); } if (permbanFile.exists()) { - return HTTPDaemon.serveFileBasic(new File(plugin.getDataFolder(), IndefiniteBanList.CONFIG_FILENAME)); + return HTTPDaemon.serveFileBasic(new File(plugin.getDataFolder(), PermbanList.CONFIG_FILENAME)); } else { diff --git a/src/main/resources/indefinitebans.yml b/src/main/resources/indefinitebans.yml deleted file mode 100644 index 4e4404ce..00000000 --- a/src/main/resources/indefinitebans.yml +++ /dev/null @@ -1,15 +0,0 @@ -# -# TotalFreedomMod Indefinite Bans -# - -badplayer1: - uuid: '123e4567-e89b-12d3-a456-426614174000' - ips: - - 123.123.123.123 - - 321.321.321.321 - reason: 'bad player' -badplayer2: - ips: - - 111.111.111.111 -badplayer3: - ips: [] diff --git a/src/main/resources/permbans.yml b/src/main/resources/permbans.yml new file mode 100644 index 00000000..0df32bba --- /dev/null +++ b/src/main/resources/permbans.yml @@ -0,0 +1,10 @@ +# +# TotalFreedomMod 5.5 Permanent Bans +# + +badplayer1: + - 123.123.123.123 + - 321.321.321.321 +badplayer2: + - 111.111.111.111 +badplayer3: [] From 44b7307e4dcec8752a7d6b2f289842445df58caa Mon Sep 17 00:00:00 2001 From: Seth <13510767+ZeroEpoch1969@users.noreply.github.com> Date: Sun, 9 Aug 2020 17:49:35 -0700 Subject: [PATCH 22/54] Revert "Revert "Permbans are now indefinite bans."" This reverts commit 54df0e08f5a7cb6d38c0d269087d9109ec111385. --- .../totalfreedommod/BackupManager.java | 4 +- .../banning/IndefiniteBan.java | 63 ++++++++ .../banning/IndefiniteBanList.java | 140 ++++++++++++++++++ .../totalfreedommod/banning/PermbanList.java | 92 ------------ ...and_permban.java => Command_indefban.java} | 15 +- ...le_permbans.java => Module_indefbans.java} | 12 +- src/main/resources/indefinitebans.yml | 15 ++ src/main/resources/permbans.yml | 10 -- 8 files changed, 232 insertions(+), 119 deletions(-) create mode 100644 src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBan.java create mode 100644 src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBanList.java delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/banning/PermbanList.java rename src/main/java/me/totalfreedom/totalfreedommod/command/{Command_permban.java => Command_indefban.java} (57%) rename src/main/java/me/totalfreedom/totalfreedommod/httpd/module/{Module_permbans.java => Module_indefbans.java} (71%) create mode 100644 src/main/resources/indefinitebans.yml delete mode 100644 src/main/resources/permbans.yml diff --git a/src/main/java/me/totalfreedom/totalfreedommod/BackupManager.java b/src/main/java/me/totalfreedom/totalfreedommod/BackupManager.java index 43f84789..e70bbf36 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/BackupManager.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/BackupManager.java @@ -1,7 +1,7 @@ package me.totalfreedom.totalfreedommod; import java.io.File; -import me.totalfreedom.totalfreedommod.banning.PermbanList; +import me.totalfreedom.totalfreedommod.banning.IndefiniteBanList; import me.totalfreedom.totalfreedommod.config.YamlConfig; import me.totalfreedom.totalfreedommod.permissions.PermissionConfig; import me.totalfreedom.totalfreedommod.punishments.PunishmentList; @@ -29,7 +29,7 @@ public class BackupManager extends FreedomService public void createAllBackups() { createBackups(TotalFreedomMod.CONFIG_FILENAME, true); - createBackups(PermbanList.CONFIG_FILENAME); + createBackups(IndefiniteBanList.CONFIG_FILENAME); createBackups(PermissionConfig.PERMISSIONS_FILENAME, true); createBackups(PunishmentList.CONFIG_FILENAME); createBackups("database.db"); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBan.java b/src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBan.java new file mode 100644 index 00000000..1e3efcbe --- /dev/null +++ b/src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBan.java @@ -0,0 +1,63 @@ +package me.totalfreedom.totalfreedommod.banning; + +import com.google.common.collect.Lists; +import java.util.List; +import java.util.UUID; +import lombok.Getter; +import lombok.Setter; +import me.totalfreedom.totalfreedommod.config.IConfig; +import me.totalfreedom.totalfreedommod.util.FLog; +import org.bukkit.configuration.ConfigurationSection; + +public class IndefiniteBan implements IConfig +{ + + @Getter + @Setter + private String username = null; + @Getter + @Setter + private UUID uuid = null; + @Getter + private final List ips = Lists.newArrayList(); + @Getter + @Setter + private String reason = null; + + public IndefiniteBan() + { + } + + @Override + public void loadFrom(ConfigurationSection cs) + { + this.username = cs.getName(); + try + { + String strUUID = cs.getString("uuid", null); + if (strUUID != null) + { + UUID uuid = UUID.fromString(strUUID); + this.uuid = uuid; + } + } + catch (IllegalArgumentException e) + { + FLog.warning("Failed to load indefinite banned UUID for " + this.username + ". Make sure the UUID is in the correct format with dashes."); + } + this.ips.clear(); + this.ips.addAll(cs.getStringList("ips")); + this.reason = cs.getString("reason", null); + } + + @Override + public void saveTo(ConfigurationSection cs) + { + } + + @Override + public boolean isValid() + { + return username != null; + } +} diff --git a/src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBanList.java b/src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBanList.java new file mode 100644 index 00000000..042cdf75 --- /dev/null +++ b/src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBanList.java @@ -0,0 +1,140 @@ +package me.totalfreedom.totalfreedommod.banning; + +import com.google.common.base.Strings; +import com.google.common.collect.Sets; +import java.util.Set; +import java.util.UUID; +import lombok.Getter; +import me.totalfreedom.totalfreedommod.FreedomService; +import me.totalfreedom.totalfreedommod.config.ConfigEntry; +import me.totalfreedom.totalfreedommod.config.YamlConfig; +import me.totalfreedom.totalfreedommod.util.FLog; +import me.totalfreedom.totalfreedommod.util.FUtil; +import org.bukkit.ChatColor; +import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.player.PlayerLoginEvent; + +public class IndefiniteBanList extends FreedomService +{ + + public static final String CONFIG_FILENAME = "indefinitebans.yml"; + + @Getter + private final Set indefBans = Sets.newHashSet(); + + @Getter + private int nameBanCount = 0; + + @Getter + private int uuidBanCount = 0; + + @Getter + private int ipBanCount = 0; + + @Override + public void onStart() + { + indefBans.clear(); + + final YamlConfig config = new YamlConfig(plugin, CONFIG_FILENAME, true); + config.load(); + + for (String name : config.getKeys(false)) + { + if (!config.isConfigurationSection(name)) + { + FLog.warning("Could not load indefinite ban for " + name + ": Invalid format!"); + continue; + } + + IndefiniteBan indefBan = new IndefiniteBan(); + ConfigurationSection cs = config.getConfigurationSection(name); + indefBan.loadFrom(cs); + + if (!indefBan.isValid()) + { + FLog.warning("Not adding indefinite ban for " + name + ": Missing information."); + continue; + } + + indefBans.add(indefBan); + } + + updateCount(); + + FLog.info("Loaded " + nameBanCount + " indefinite name bans, " + uuidBanCount + " UUID bans, and " + ipBanCount + " ip bans"); + } + + @Override + public void onStop() + { + } + + @EventHandler(priority = EventPriority.LOWEST) + public void onPlayerLogin(PlayerLoginEvent event) + { + final String username = event.getPlayer().getName(); + final UUID uuid = event.getPlayer().getUniqueId(); + final String ip = FUtil.getIp(event); + + String bannedBy = ""; + IndefiniteBan ban = null; + + for (IndefiniteBan indefBan : indefBans) + { + if (username.toLowerCase().equals(indefBan.getUsername().toLowerCase())) + { + bannedBy = "username"; + ban = indefBan; + break; + } + else if (indefBan.getUuid() != null && indefBan.getUuid().equals(uuid)) + { + bannedBy = "UUID"; + ban = indefBan; + break; + } + else if (indefBan.getIps().contains(ip)) + { + bannedBy = "IP address"; + ban = indefBan; + break; + } + } + + if (ban != null) + { + String kickMessage = ChatColor.RED + "Your " + bannedBy + " is indefinitely banned from this server."; + String reason = ban.getReason(); + if (!Strings.isNullOrEmpty(reason)) + { + kickMessage += "\nReason: " + ChatColor.GOLD + reason; + } + String appealURL = ConfigEntry.SERVER_INDEFBAN_URL.getString(); + if (!Strings.isNullOrEmpty(appealURL)) + { + kickMessage += ChatColor.RED + "\n\nRelease procedures are available at\n" + ChatColor.GOLD + ConfigEntry.SERVER_INDEFBAN_URL.getString(); + } + event.disallow(PlayerLoginEvent.Result.KICK_OTHER, kickMessage); + } + } + + private void updateCount() + { + nameBanCount = 0; + uuidBanCount = 0; + ipBanCount = 0; + + for (IndefiniteBan indefBan : indefBans) + { + nameBanCount += 1; + if (indefBan.getUuid() != null) + { + uuidBanCount += 1; + } + ipBanCount += indefBan.getIps().size(); + } + } +} diff --git a/src/main/java/me/totalfreedom/totalfreedommod/banning/PermbanList.java b/src/main/java/me/totalfreedom/totalfreedommod/banning/PermbanList.java deleted file mode 100644 index 7265bab6..00000000 --- a/src/main/java/me/totalfreedom/totalfreedommod/banning/PermbanList.java +++ /dev/null @@ -1,92 +0,0 @@ -package me.totalfreedom.totalfreedommod.banning; - -import com.google.common.collect.Sets; -import java.util.Set; -import lombok.Getter; -import me.totalfreedom.totalfreedommod.FreedomService; -import me.totalfreedom.totalfreedommod.config.ConfigEntry; -import me.totalfreedom.totalfreedommod.config.YamlConfig; -import me.totalfreedom.totalfreedommod.util.FLog; -import me.totalfreedom.totalfreedommod.util.FUtil; -import org.bukkit.ChatColor; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.player.PlayerLoginEvent; - -public class PermbanList extends FreedomService -{ - - public static final String CONFIG_FILENAME = "permbans.yml"; - - @Getter - private final Set permbannedNames = Sets.newHashSet(); - @Getter - private final Set permbannedIps = Sets.newHashSet(); - - @Override - public void onStart() - { - permbannedNames.clear(); - permbannedIps.clear(); - - final YamlConfig config = new YamlConfig(plugin, CONFIG_FILENAME, true); - config.load(); - - for (String name : config.getKeys(false)) - { - permbannedNames.add(name.toLowerCase().trim()); - permbannedIps.addAll(config.getStringList(name)); - } - - FLog.info("Loaded " + permbannedIps.size() + " perm IP bans and " + permbannedNames.size() + " perm username bans."); - } - - @Override - public void onStop() - { - } - - @EventHandler(priority = EventPriority.LOWEST) - public void onPlayerLogin(PlayerLoginEvent event) - { - final String username = event.getPlayer().getName(); - final String ip = FUtil.getIp(event); - - // Permbanned IPs - for (String testIp : getPermbannedIps()) - { - if (FUtil.fuzzyIpMatch(testIp, ip, 4)) - { - event.disallow(PlayerLoginEvent.Result.KICK_OTHER, - ChatColor.RED + "Your IP address is permanently banned from this server.\n" - + "Release procedures are available at\n" - + ChatColor.GOLD + ConfigEntry.SERVER_PERMBAN_URL.getString()); - return; - } - } - - // Permbanned usernames - for (String testPlayer : getPermbannedNames()) - { - if (testPlayer.equalsIgnoreCase(username)) - { - event.disallow(PlayerLoginEvent.Result.KICK_OTHER, - ChatColor.RED + "Your username is permanently banned from this server.\n" - + "Release procedures are available at\n" - + ChatColor.GOLD + ConfigEntry.SERVER_PERMBAN_URL.getString()); - return; - } - } - - } - - public Set getPermbannedNames() - { - return this.permbannedNames; - } - - public Set getPermbannedIps() - { - return this.permbannedIps; - } -} diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permban.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_indefban.java similarity index 57% rename from src/main/java/me/totalfreedom/totalfreedommod/command/Command_permban.java rename to src/main/java/me/totalfreedom/totalfreedommod/command/Command_indefban.java index ba8f8ef8..32f5f1bb 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permban.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_indefban.java @@ -1,14 +1,13 @@ package me.totalfreedom.totalfreedommod.command; import me.totalfreedom.totalfreedommod.rank.Rank; -import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_CONSOLE) -@CommandParameters(description = "Reload the permban list.", usage = "/ reload", aliases = "pb") -public class Command_permban extends FreedomCommand +@CommandParameters(description = "Reload the indefinite ban list.", usage = "/ reload", aliases = "ib") +public class Command_indefban extends FreedomCommand { @Override @@ -24,12 +23,10 @@ public class Command_permban extends FreedomCommand return false; } - msg("Reloading permban list...", ChatColor.RED); - plugin.pm.onStop(); - plugin.pm.onStart(); - msg("Reloaded permban list."); - msg(plugin.pm.getPermbannedIps().size() + " IPs and " - + plugin.pm.getPermbannedNames().size() + " usernames loaded."); + msg("Reloading the indefinite ban list..."); + plugin.im.onStop(); + plugin.im.onStart(); + msg("Reloaded the indefinite ban list."); return true; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_permbans.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_indefbans.java similarity index 71% rename from src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_permbans.java rename to src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_indefbans.java index a26c3d05..152390b3 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_permbans.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_indefbans.java @@ -3,14 +3,14 @@ package me.totalfreedom.totalfreedommod.httpd.module; import java.io.File; import me.totalfreedom.totalfreedommod.TotalFreedomMod; import me.totalfreedom.totalfreedommod.admin.Admin; -import me.totalfreedom.totalfreedommod.banning.PermbanList; +import me.totalfreedom.totalfreedommod.banning.IndefiniteBanList; import me.totalfreedom.totalfreedommod.httpd.HTTPDaemon; import me.totalfreedom.totalfreedommod.httpd.NanoHTTPD; -public class Module_permbans extends HTTPDModule +public class Module_indefbans extends HTTPDModule { - public Module_permbans(TotalFreedomMod plugin, NanoHTTPD.HTTPSession session) + public Module_indefbans(TotalFreedomMod plugin, NanoHTTPD.HTTPSession session) { super(plugin, session); } @@ -18,17 +18,17 @@ public class Module_permbans extends HTTPDModule @Override public NanoHTTPD.Response getResponse() { - File permbanFile = new File(plugin.getDataFolder(), PermbanList.CONFIG_FILENAME); + File permbanFile = new File(plugin.getDataFolder(), IndefiniteBanList.CONFIG_FILENAME); final String remoteAddress = socket.getInetAddress().getHostAddress(); if (!isAuthorized(remoteAddress)) { return new NanoHTTPD.Response(NanoHTTPD.Response.Status.NOT_FOUND, NanoHTTPD.MIME_PLAINTEXT, - "You may not view the permban list. Your IP, " + remoteAddress + ", is not registered to an admin on the server."); + "You may not view the indefinite ban list. Your IP, " + remoteAddress + ", is not registered to an admin on the server."); } if (permbanFile.exists()) { - return HTTPDaemon.serveFileBasic(new File(plugin.getDataFolder(), PermbanList.CONFIG_FILENAME)); + return HTTPDaemon.serveFileBasic(new File(plugin.getDataFolder(), IndefiniteBanList.CONFIG_FILENAME)); } else { diff --git a/src/main/resources/indefinitebans.yml b/src/main/resources/indefinitebans.yml new file mode 100644 index 00000000..4e4404ce --- /dev/null +++ b/src/main/resources/indefinitebans.yml @@ -0,0 +1,15 @@ +# +# TotalFreedomMod Indefinite Bans +# + +badplayer1: + uuid: '123e4567-e89b-12d3-a456-426614174000' + ips: + - 123.123.123.123 + - 321.321.321.321 + reason: 'bad player' +badplayer2: + ips: + - 111.111.111.111 +badplayer3: + ips: [] diff --git a/src/main/resources/permbans.yml b/src/main/resources/permbans.yml deleted file mode 100644 index 0df32bba..00000000 --- a/src/main/resources/permbans.yml +++ /dev/null @@ -1,10 +0,0 @@ -# -# TotalFreedomMod 5.5 Permanent Bans -# - -badplayer1: - - 123.123.123.123 - - 321.321.321.321 -badplayer2: - - 111.111.111.111 -badplayer3: [] From 00f94e47f1b1fc7b51ac9e4a21142dcbfa5ded9e Mon Sep 17 00:00:00 2001 From: Seth <13510767+ZeroEpoch1969@users.noreply.github.com> Date: Sun, 9 Aug 2020 17:49:52 -0700 Subject: [PATCH 23/54] github is a love hate relationship --- .../me/totalfreedom/totalfreedommod/TotalFreedomMod.java | 6 +++--- .../totalfreedommod/command/Command_serverstats.java | 9 +++++---- .../totalfreedom/totalfreedommod/config/ConfigEntry.java | 2 +- .../totalfreedom/totalfreedommod/httpd/HTTPDaemon.java | 4 ++-- src/main/resources/activitylog.yml | 2 +- src/main/resources/config.yml | 9 ++++----- src/main/resources/permissions.yml | 3 +-- src/main/resources/punishments.yml | 2 +- 8 files changed, 18 insertions(+), 19 deletions(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java index 74334bff..6625e77a 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java @@ -6,7 +6,7 @@ import java.util.Properties; import me.totalfreedom.totalfreedommod.admin.ActivityLog; import me.totalfreedom.totalfreedommod.admin.AdminList; import me.totalfreedom.totalfreedommod.banning.BanManager; -import me.totalfreedom.totalfreedommod.banning.PermbanList; +import me.totalfreedom.totalfreedommod.banning.IndefiniteBanList; import me.totalfreedom.totalfreedommod.blocking.BlockBlocker; import me.totalfreedom.totalfreedommod.blocking.EditBlocker; import me.totalfreedom.totalfreedommod.blocking.EventBlocker; @@ -108,7 +108,7 @@ public class TotalFreedomMod extends JavaPlugin public Discord dc; public PunishmentList pul; public BanManager bm; - public PermbanList pm; + public IndefiniteBanList im; public PermissionManager pem; public ProtectArea pa; public Reddit rd; @@ -228,7 +228,7 @@ public class TotalFreedomMod extends JavaPlugin dc = new Discord(); pul = new PunishmentList(); bm = new BanManager(); - pm = new PermbanList(); + im = new IndefiniteBanList(); pem = new PermissionManager(); pa = new ProtectArea(); rd = new Reddit(); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_serverstats.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_serverstats.java index 8da61478..ecb40bb3 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_serverstats.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_serverstats.java @@ -18,10 +18,11 @@ public class Command_serverstats extends FreedomCommand msg("-==" + ConfigEntry.SERVER_NAME.getString() + " server stats==-", ChatColor.GOLD); msg("Total opped players: " + server.getOperators().size(), ChatColor.RED); msg("Total staff: " + plugin.al.getAllAdmins().size() + " (" + plugin.al.getActiveAdmins().size() + " active)", ChatColor.BLUE); - int tpbips = plugin.pm.getPermbannedIps().size(); - int tpbns = plugin.pm.getPermbannedNames().size(); - int tpbs = tpbips + tpbns; - msg("Total perm bans: " + tpbs + " (" + tpbips + " ips " + tpbns + " names)", ChatColor.GREEN); + int bans = plugin.im.getIndefBans().size(); + int nameBans = plugin.im.getNameBanCount(); + int uuidBans = plugin.im.getUuidBanCount(); + int ipBans = plugin.im.getIpBanCount(); + msg("Total indefinite ban entries: " + bans + " (" + nameBans + " name bans, " + uuidBans + " UUID bans, and " + ipBans + " IP bans)", ChatColor.GREEN); return true; } } \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/config/ConfigEntry.java b/src/main/java/me/totalfreedom/totalfreedommod/config/ConfigEntry.java index 9fa1ee00..e09c2649 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/config/ConfigEntry.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/config/ConfigEntry.java @@ -59,7 +59,7 @@ public enum ConfigEntry SERVER_ASSISTANT_EXECUTIVES(List.class, "server.assistant_executives"), SERVER_MASTER_BUILDER_MANAGEMENT(List.class, "server.master_builder_management"), SERVER_BAN_URL(String.class, "server.ban_url"), - SERVER_PERMBAN_URL(String.class, "server.permban_url"), + SERVER_INDEFBAN_URL(String.class, "server.indefban_url"), SERVER_TABLIST_HEADER(String.class, "server.tablist_header"), SERVER_TABLIST_FOOTER(String.class, "server.tablist_footer"), // diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/HTTPDaemon.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/HTTPDaemon.java index 6f4275a7..51589acc 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/HTTPDaemon.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/HTTPDaemon.java @@ -19,7 +19,7 @@ import me.totalfreedom.totalfreedommod.httpd.module.Module_help; import me.totalfreedom.totalfreedommod.httpd.module.Module_list; import me.totalfreedom.totalfreedommod.httpd.module.Module_logfile; import me.totalfreedom.totalfreedommod.httpd.module.Module_logs; -import me.totalfreedom.totalfreedommod.httpd.module.Module_permbans; +import me.totalfreedom.totalfreedommod.httpd.module.Module_indefbans; import me.totalfreedom.totalfreedommod.httpd.module.Module_players; import me.totalfreedom.totalfreedommod.httpd.module.Module_punishments; import me.totalfreedom.totalfreedommod.httpd.module.Module_schematic; @@ -59,7 +59,7 @@ public class HTTPDaemon extends FreedomService module("list", Module_list.class, false); module("logfile", Module_logfile.class, true); module("logs", Module_logs.class, true); - module("permbans", Module_permbans.class, true); + module("indefbans", Module_indefbans.class, true); module("players", Module_players.class, false); module("punishments", Module_punishments.class, true); module("schematic", Module_schematic.class, true); diff --git a/src/main/resources/activitylog.yml b/src/main/resources/activitylog.yml index e32ef42a..0e06fc49 100644 --- a/src/main/resources/activitylog.yml +++ b/src/main/resources/activitylog.yml @@ -1,3 +1,3 @@ # -# TotalFreedomMod 5.5 Activity Log +# TotalFreedomMod Activity Log # diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 9f3f3349..a3ad86ba 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,6 +1,5 @@ # -# TotalFreedomMod 5.5 Configuration -# by Madgeek1450 and Prozza +# TotalFreedomMod Configuration # # Generic server information @@ -44,10 +43,10 @@ server: master_builder_management: [] # URL players should appeal for bans at - ban_url: http://totalfreedom.boards.net/ + ban_url: '' # URL players should appeal for permanent bans at - permban_url: http://bit.ly/TF_PermBan + indefban_url: '' # What to display at the top of the tab list tablist_header: '' @@ -425,7 +424,7 @@ announcer: - 'Player vs player while in creative or god mode is forbidden!' - 'Spawn killing is forbidden!' - 'Invisible potions are allowed!' - - 'Serial griefing and trolling will result in a permanent ban!' + - 'Serial griefing and trolling will result in an indefinite ban!' - 'Racism, nazism, and sexism are strictly forbidden!' - 'Join our Discord server! Link: https://discordapp.com/invite/XXjmAmV/' diff --git a/src/main/resources/permissions.yml b/src/main/resources/permissions.yml index 267cc946..b1fa4aa5 100644 --- a/src/main/resources/permissions.yml +++ b/src/main/resources/permissions.yml @@ -1,6 +1,5 @@ # -# TotalFreedomMod 2020.9 Permissions -# by ZeroEpoch1969 +# TotalFreedomMod Permissions # # Note that every group inherits the previous groups' permissions diff --git a/src/main/resources/punishments.yml b/src/main/resources/punishments.yml index 74b68c48..b2bb87dd 100644 --- a/src/main/resources/punishments.yml +++ b/src/main/resources/punishments.yml @@ -1,3 +1,3 @@ # -# TotalFreedomMod 5.5 Player Punishments +# TotalFreedomMod Player Punishments # From aab4f55b7d091a393944177e8e9656d591d9cf0d Mon Sep 17 00:00:00 2001 From: Seth <13510767+ZeroEpoch1969@users.noreply.github.com> Date: Sun, 9 Aug 2020 22:25:04 -0700 Subject: [PATCH 24/54] UUID definite bans --- .../totalfreedommod/banning/Ban.java | 24 +++++++++--- .../totalfreedommod/banning/BanManager.java | 38 +++++++++++++++++-- .../totalfreedommod/command/Command_ban.java | 12 +++++- .../command/Command_tempban.java | 13 ++++++- .../totalfreedommod/sql/SQLite.java | 20 ++++++---- 5 files changed, 90 insertions(+), 17 deletions(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/banning/Ban.java b/src/main/java/me/totalfreedom/totalfreedommod/banning/Ban.java index 01ef8cea..0dc1e56e 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/banning/Ban.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/banning/Ban.java @@ -10,6 +10,7 @@ import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; +import java.util.UUID; import lombok.Getter; import lombok.Setter; import me.totalfreedom.totalfreedommod.config.ConfigEntry; @@ -27,6 +28,9 @@ public class Ban @Setter private String username = null; @Getter + @Setter + private UUID uuid = null; + @Getter private final List ips = Lists.newArrayList(); @Getter @Setter @@ -45,9 +49,10 @@ public class Ban { } - public Ban(String username, String ip, String by, Date at, Date expire, String reason) + public Ban(String username, UUID uuid, String ip, String by, Date at, Date expire, String reason) { this(username, + uuid, Arrays.asList(ip), by, at, @@ -55,9 +60,10 @@ public class Ban reason); } - public Ban(String username, List ips, String by, Date at, Date expire, String reason) + public Ban(String username, UUID uuid, List ips, String by, Date at, Date expire, String reason) { this.username = username; + this.uuid = uuid; if (ips != null) { this.ips.addAll(ips); @@ -78,12 +84,12 @@ public class Ban public static Ban forPlayerIp(Player player, CommandSender by, Date expiry, String reason) { - return new Ban(null, Arrays.asList(FUtil.getIp(player)), by.getName(), Date.from(Instant.now()), expiry, reason); + return new Ban(null, null, Arrays.asList(FUtil.getIp(player)), by.getName(), Date.from(Instant.now()), expiry, reason); } public static Ban forPlayerIp(String ip, CommandSender by, Date expiry, String reason) { - return new Ban(null, ip, by.getName(), Date.from(Instant.now()), expiry, reason); + return new Ban(null, null, ip, by.getName(), Date.from(Instant.now()), expiry, reason); } // @@ -96,7 +102,8 @@ public class Ban public static Ban forPlayerName(String player, CommandSender by, Date expiry, String reason) { return new Ban(player, - new ArrayList(), + null, + new ArrayList<>(), by.getName(), Date.from(Instant.now()), expiry, @@ -113,6 +120,7 @@ public class Ban public static Ban forPlayer(Player player, CommandSender by, Date expiry, String reason) { return new Ban(player.getName(), + player.getUniqueId(), FUtil.getIp(player), by.getName(), Date.from(Instant.now()), @@ -123,6 +131,7 @@ public class Ban public static Ban forPlayerFuzzy(Player player, CommandSender by, Date expiry, String reason) { return new Ban(player.getName(), + player.getUniqueId(), FUtil.getFuzzyIp(FUtil.getIp(player)), by.getName(), Date.from(Instant.now()), @@ -135,6 +144,11 @@ public class Ban return username != null && !username.isEmpty(); } + public boolean hasUUID() + { + return uuid != null; + } + public boolean addIp(String ip) { return ips.add(ip); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/banning/BanManager.java b/src/main/java/me/totalfreedom/totalfreedommod/banning/BanManager.java index 76ee3c27..31292a97 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/banning/BanManager.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/banning/BanManager.java @@ -12,6 +12,7 @@ import java.util.Date; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.UUID; import me.totalfreedom.totalfreedommod.FreedomService; import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.player.PlayerData; @@ -27,8 +28,9 @@ public class BanManager extends FreedomService { private final Set bans = Sets.newHashSet(); - private final Map ipBans = Maps.newHashMap(); private final Map nameBans = Maps.newHashMap(); + private final Map uuidBans = Maps.newHashMap(); + private final Map ipBans = Maps.newHashMap(); private final List unbannableUsernames = Lists.newArrayList(); // @@ -44,12 +46,18 @@ public class BanManager extends FreedomService while (banSet.next()) { String name = banSet.getString("name"); + UUID uuid = null; + String strUUID = banSet.getString("uuid"); + if (strUUID != null) + { + uuid = UUID.fromString(strUUID); + } List ips = FUtil.stringToList(banSet.getString("ips")); String by = banSet.getString("by"); Date at = new Date(banSet.getLong("at")); Date expires = new Date(banSet.getLong("expires")); String reason = banSet.getString("reason"); - Ban ban = new Ban(name, ips, by, at, expires, reason); + Ban ban = new Ban(name, uuid, ips, by, at, expires, reason); bans.add(ban); } } @@ -136,6 +144,18 @@ public class BanManager extends FreedomService return null; } + public Ban getByUUID(UUID uuid) + { + final Ban directBan = uuidBans.get(uuid); + + if (directBan != null && !directBan.isExpired()) + { + return directBan; + } + + return null; + } + public Ban unbanIp(String ip) { final Ban ban = getByIp(ip); @@ -224,13 +244,19 @@ public class BanManager extends FreedomService public void onPlayerLogin(PlayerLoginEvent event) { final String username = event.getPlayer().getName(); + final UUID uuid = event.getPlayer().getUniqueId(); final String ip = FUtil.getIp(event); // Regular ban Ban ban = getByUsername(username); if (ban == null) { - ban = getByIp(ip); + ban = getByUUID(uuid); + + if (ban == null) + { + ban = getByIp(ip); + } } if (ban != null && !ban.isExpired()) @@ -279,6 +305,7 @@ public class BanManager extends FreedomService } nameBans.clear(); + uuidBans.clear(); ipBans.clear(); for (Ban ban : bans) { @@ -287,6 +314,11 @@ public class BanManager extends FreedomService nameBans.put(ban.getUsername().toLowerCase(), ban); } + if (ban.hasUUID()) + { + uuidBans.put(ban.getUuid(), ban); + } + if (ban.hasIps()) { for (String ip : ban.getIps()) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java index ae0a661a..06cb6c0f 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java @@ -121,7 +121,17 @@ public class Command_ban extends FreedomCommand } // Ban player - Ban ban = Ban.forPlayerName(username, sender, null, reason); + Ban ban; + + if (player != null) + { + ban = Ban.forPlayer(player, sender, null, reason); + } + else + { + ban = Ban.forPlayerName(username, sender, null, reason); + } + for (String ip : ips) { ban.addIp(ip); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tempban.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tempban.java index c1d85427..c4d8dc47 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tempban.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tempban.java @@ -104,7 +104,18 @@ public class Command_tempban extends FreedomCommand msg("Quietly temporarily banned " + player.getName() + "."); } - Ban ban = Ban.forPlayerName(username, sender, expires, reason); + + Ban ban; + + if (player != null) + { + ban = Ban.forPlayer(player, sender, null, reason); + } + else + { + ban = Ban.forPlayerName(username, sender, null, reason); + } + for (String ip : ips) { ban.addIp(ip); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/sql/SQLite.java b/src/main/java/me/totalfreedom/totalfreedommod/sql/SQLite.java index 68df1534..16caddd3 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/sql/SQLite.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/sql/SQLite.java @@ -70,7 +70,7 @@ public class SQLite extends FreedomService { try { - connection.createStatement().execute("CREATE TABLE `bans` (`name` VARCHAR, `ips` VARCHAR, `by` VARCHAR NOT NULL, `at` LONG NOT NULL, `expires` LONG, `reason` VARCHAR);"); + connection.createStatement().execute("CREATE TABLE `bans` (`name` VARCHAR, `uuid` VARCHAR, `ips` VARCHAR, `by` VARCHAR NOT NULL, `at` LONG NOT NULL, `expires` LONG, `reason` VARCHAR);"); } catch (SQLException e) { @@ -378,13 +378,19 @@ public class SQLite extends FreedomService { try { - PreparedStatement statement = connection.prepareStatement("INSERT INTO bans VALUES (?, ?, ?, ?, ?, ?)"); + PreparedStatement statement = connection.prepareStatement("INSERT INTO bans VALUES (?, ?, ?, ?, ?, ?, ?)"); statement.setString(1, ban.getUsername()); - statement.setString(2, FUtil.listToString(ban.getIps())); - statement.setString(3, ban.getBy()); - statement.setLong(4, ban.getAt().getTime()); - statement.setLong(5, ban.getExpiryUnix()); - statement.setString(6, ban.getReason()); + String uuid = null; + if (ban.hasUUID()) + { + uuid = ban.getUuid().toString(); + } + statement.setString(2, uuid); + statement.setString(3, FUtil.listToString(ban.getIps())); + statement.setString(4, ban.getBy()); + statement.setLong(5, ban.getAt().getTime()); + statement.setLong(6, ban.getExpiryUnix()); + statement.setString(7, ban.getReason()); statement.executeUpdate(); } catch (SQLException e) From 9f006325b4374896b451763e972167be938ba513 Mon Sep 17 00:00:00 2001 From: Seth <13510767+ZeroEpoch1969@users.noreply.github.com> Date: Sun, 9 Aug 2020 22:25:16 -0700 Subject: [PATCH 25/54] This is no longer needed --- .../command/Command_onlinemode.java | 84 ------------------- 1 file changed, 84 deletions(-) delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/command/Command_onlinemode.java diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_onlinemode.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_onlinemode.java deleted file mode 100644 index 4b077da8..00000000 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_onlinemode.java +++ /dev/null @@ -1,84 +0,0 @@ -package me.totalfreedom.totalfreedommod.command; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import me.totalfreedom.totalfreedommod.rank.Rank; -import me.totalfreedom.totalfreedommod.util.FLog; -import me.totalfreedom.totalfreedommod.util.FUtil; -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -@CommandPermissions(level = Rank.NON_OP, source = SourceType.BOTH) -@CommandParameters(description = "Switch server to premium or cracked.", usage = "/ ") -public class Command_onlinemode extends FreedomCommand -{ - - @Override - public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) - { - if (args.length < 1) - { - msg("Server is currently running with 'online-mode=" + (server.getOnlineMode() ? "true" : "false") + "'.", ChatColor.WHITE); - msg("\"/onlinemode on\" and \"/onlinemode off\" can be used to change online mode from the console.", ChatColor.WHITE); - } - else - { - boolean onlineMode; - - if (sender instanceof Player && !plugin.al.isSeniorAdmin(sender)) - { - noPerms(); - return true; - } - - if (args[0].equalsIgnoreCase("on")) - { - onlineMode = true; - } - else if (args[0].equalsIgnoreCase("off")) - { - onlineMode = false; - } - else - { - return false; - } - - try - { - plugin.si.setOnlineMode(onlineMode); - - if (onlineMode) - { - for (Player player : server.getOnlinePlayers()) - { - player.kickPlayer("Server is activating \"online-mode=true\". Please reconnect."); - } - } - - FUtil.adminAction(sender.getName(), "Turning player validation " + (onlineMode ? "on" : "off") + ".", true); - - server.reload(); - } - catch (Exception ex) - { - FLog.severe(ex); - } - } - return true; - } - - @Override - public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) - { - if (args.length == 1 && plugin.al.isAdmin(sender) && !(sender instanceof Player)) - { - return Arrays.asList("on", "off"); - } - - return Collections.emptyList(); - } -} From 306c8bc8b9c750654e966ae0cdc73a9727fbeecf Mon Sep 17 00:00:00 2001 From: Telesphoreo Date: Wed, 12 Aug 2020 18:51:10 -0500 Subject: [PATCH 26/54] ok --- src/main/resources/plugin.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 87ebb451..1465512f 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -2,6 +2,6 @@ name: TotalFreedomMod main: me.totalfreedom.totalfreedommod.TotalFreedomMod version: ${project.version} description: Plugin for the Total Freedom server. -#softdepend: [BukkitTelnet, Essentials, LibsDisguises, WorldEdit, WorldGuard, WorldGuardExtraFlags, TFGuilds] +loadbefore: [BukkitTelnet, Essentials, LibsDisguises, WorldEdit, WorldGuard, WorldGuardExtraFlags, TFGuilds] authors: [Madgeek1450, Prozza] api-version: 1.16 \ No newline at end of file From 541abb1ba801cf001c7281a8c46010495b38ae7b Mon Sep 17 00:00:00 2001 From: Telesphoreo Date: Wed, 12 Aug 2020 22:07:15 -0500 Subject: [PATCH 27/54] whoever commented the shit out in the pom.xml: i hope both sides of your pillow are warm tonight --- pom.xml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index d159cec9..032257c0 100644 --- a/pom.xml +++ b/pom.xml @@ -104,6 +104,11 @@ rayzr-repo https://cdn.rawgit.com/Rayzr522/maven-repo/master/ + + + ess-repo + https://ci.ender.zone/plugin/repository/everything/ + @@ -172,7 +177,7 @@ net.ess3 EssentialsX - 2.16.1 + 2.18.0 provided @@ -247,6 +252,7 @@ com.github.speedxx TFGuilds master + provided @@ -259,6 +265,7 @@ net.dean.jraw JRAW 1.1.0 + provided @@ -344,7 +351,8 @@ - + + From e294ef8312ab0ed99ec747c2c052e6d0e4728200 Mon Sep 17 00:00:00 2001 From: Telesphoreo Date: Thu, 13 Aug 2020 14:34:03 -0500 Subject: [PATCH 28/54] Reimplement vanish command - SuperVanish has a wack permission system, and it didn't work in some rare circumstances. Added back TFMs vanish with the SuperVanish API - Fixed the permission nodes so admins can see other admins, like how it was in TFM --- .../totalfreedommod/bridge/VanishBridge.java | 3 +- .../command/Command_permissions.java | 1 - .../command/Command_vanish.java | 44 +++++++++++++++++++ .../permissions/PermissionConfig.java | 5 --- .../permissions/PermissionManager.java | 2 - src/main/resources/permissions.yml | 2 +- src/main/resources/plugin.yml | 2 +- 7 files changed, 48 insertions(+), 11 deletions(-) create mode 100644 src/main/java/me/totalfreedom/totalfreedommod/command/Command_vanish.java diff --git a/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java b/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java index fd380598..097309b6 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java @@ -35,6 +35,7 @@ public class VanishBridge extends FreedomService } else { + plugin.al.messageAllAdmins(ChatColor.GOLD + player.getName() + " unvanished and is now visible to all players."); FUtil.bcastMsg(plugin.rm.craftLoginMessage(event.getPlayer(), null)); plugin.dc.messageChatChannel("**" + player.getName() + " joined the server" + "**"); } @@ -53,7 +54,7 @@ public class VanishBridge extends FreedomService Player player = event.getPlayer(); if (event.isSilent()) { - plugin.al.messageAllAdmins(ChatColor.GOLD + player.getName() + " silently vanished."); + plugin.al.messageAllAdmins(ChatColor.GOLD + player.getName() + " vanished and is now only visible to admins."); } else { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permissions.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permissions.java index d328cc6b..ecfa2477 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permissions.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permissions.java @@ -12,7 +12,6 @@ import org.bukkit.permissions.PermissionAttachmentInfo; @CommandParameters(description = "Check your permissions", usage = "/ [prefix | reload]") public class Command_permissions extends FreedomCommand { - @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_vanish.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_vanish.java new file mode 100644 index 00000000..4a20ae47 --- /dev/null +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_vanish.java @@ -0,0 +1,44 @@ +package me.totalfreedom.totalfreedommod.command; + +import de.myzelyam.api.vanish.VanishAPI; +import me.totalfreedom.totalfreedommod.rank.Rank; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) +@CommandParameters(description = "Hide yourself from other players", usage = "/ [-s]", aliases = "v,ev,evanish") +public class Command_vanish extends FreedomCommand +{ + @Override + public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) + { + if (args.length == 0) + { + if (!VanishAPI.isInvisible(playerSender)) + { + VanishAPI.hidePlayer(playerSender); + } + else + { + VanishAPI.showPlayer(playerSender); + } + } + else if (args[0].equalsIgnoreCase("-s") || args[0].equalsIgnoreCase("-v")) + { + if (!VanishAPI.isInvisible(playerSender)) + { + VanishAPI.getPlugin().getVisibilityChanger().hidePlayer(playerSender, null, true); + } + else + { + VanishAPI.getPlugin().getVisibilityChanger().showPlayer(playerSender, null, true); + } + } + else + { + return false; + } + return true; + } +} \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/permissions/PermissionConfig.java b/src/main/java/me/totalfreedom/totalfreedommod/permissions/PermissionConfig.java index e1a004da..77ea542b 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/permissions/PermissionConfig.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/permissions/PermissionConfig.java @@ -15,7 +15,6 @@ import org.bukkit.configuration.file.YamlConfiguration; public class PermissionConfig extends FreedomService { - public static final String PERMISSIONS_FILENAME = "permissions.yml"; // private final EnumMap entries; @@ -60,13 +59,11 @@ public class PermissionConfig extends FreedomService @Override public void onStart() { - } @Override public void onStop() { - } public void load() @@ -167,7 +164,6 @@ public class PermissionConfig extends FreedomService public static class PermissionDefaults { - private YamlConfiguration defaults = null; private PermissionDefaults(InputStream defaultConfig) @@ -190,5 +186,4 @@ public class PermissionConfig extends FreedomService return defaults.get(path); } } - } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/permissions/PermissionManager.java b/src/main/java/me/totalfreedom/totalfreedommod/permissions/PermissionManager.java index 5ebc094d..06f2bb90 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/permissions/PermissionManager.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/permissions/PermissionManager.java @@ -17,7 +17,6 @@ import org.bukkit.permissions.PermissionAttachmentInfo; public class PermissionManager extends FreedomService { - public Map> permissions = Maps.newHashMap(); public Map attachments = Maps.newHashMap(); @@ -35,7 +34,6 @@ public class PermissionManager extends FreedomService public void loadPermissionNodes() { - FLog.info("Loading permission nodes..."); permissions.clear(); diff --git a/src/main/resources/permissions.yml b/src/main/resources/permissions.yml index b1fa4aa5..bbfe3d96 100644 --- a/src/main/resources/permissions.yml +++ b/src/main/resources/permissions.yml @@ -211,7 +211,7 @@ super_admins: - "essentials.tphere" - "essentials.tpo" - "essentials.tpohere" - - "sv.use" + - "sv.see" - "sv.toggleitems" # Telnet Admin permission nodes diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 1465512f..56e8e6eb 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -2,6 +2,6 @@ name: TotalFreedomMod main: me.totalfreedom.totalfreedommod.TotalFreedomMod version: ${project.version} description: Plugin for the Total Freedom server. -loadbefore: [BukkitTelnet, Essentials, LibsDisguises, WorldEdit, WorldGuard, WorldGuardExtraFlags, TFGuilds] +loadbefore: [BukkitTelnet, Essentials, LibsDisguises, WorldEdit, WorldGuard, WorldGuardExtraFlags, TFGuilds, SuperVanish, PremiumVanish] authors: [Madgeek1450, Prozza] api-version: 1.16 \ No newline at end of file From 51e1191816342610faf0042e80f3ae44977030d8 Mon Sep 17 00:00:00 2001 From: Telesphoreo Date: Thu, 13 Aug 2020 22:14:12 -0500 Subject: [PATCH 29/54] Increase range on tpr --- .../totalfreedommod/command/Command_tprandom.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tprandom.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tprandom.java index 88917974..fa57e979 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tprandom.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tprandom.java @@ -15,8 +15,8 @@ public class Command_tprandom extends FreedomCommand @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - int x = FUtil.randomInteger(-10000, 10000); - int z = FUtil.randomInteger(-10000, 10000); + int x = FUtil.randomInteger(-50000, 50000); + int z = FUtil.randomInteger(-50000, 50000); int y = playerSender.getWorld().getHighestBlockYAt(x, z); Location location = new Location(playerSender.getLocation().getWorld(), x, y, z); playerSender.teleport(location); From 8628e88e3ab5bbda6f3cd2a4efc6d31d2ebc0ebd Mon Sep 17 00:00:00 2001 From: DragonSlayer2189 <59424467+DragonSlayer2189@users.noreply.github.com> Date: Fri, 14 Aug 2020 00:29:50 -0400 Subject: [PATCH 30/54] added "banned (user) quietly" message did i do this right, idk java --- .../totalfreedom/totalfreedommod/command/Command_ban.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java index 06cb6c0f..2c196606 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java @@ -104,7 +104,10 @@ public class Command_ban extends FreedomCommand } } } - + else + { + sender.sendMessage(ChatColor.GRAY + "Banned " + player.getName() + " quietly."); + } // Kill player player.setHealth(0.0); } @@ -172,4 +175,4 @@ public class Command_ban extends FreedomCommand return true; } -} \ No newline at end of file +} From 6dbc99690af3a573b8ec80141d71f7a3bc63e11a Mon Sep 17 00:00:00 2001 From: DragonSlayer2189 <59424467+DragonSlayer2189@users.noreply.github.com> Date: Fri, 14 Aug 2020 00:34:01 -0400 Subject: [PATCH 31/54] added "kicked (user) quietly" msg once again, did i do this right --- .../me/totalfreedom/totalfreedommod/command/Command_kick.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kick.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kick.java index c18f503b..46b28b89 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kick.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kick.java @@ -71,6 +71,10 @@ public class Command_kick extends FreedomCommand { FUtil.adminAction(sender.getName(), "Kicking " + player.getName(), true); } + else + { + sender.sendMessage(ChatColor.GRAY + "Kicked " + player.getName() + " quietly."); + } } player.kickPlayer(builder.toString()); From e79145ee54f2929ff7d7b6b6a79e701c1d4fe3e0 Mon Sep 17 00:00:00 2001 From: speedxx <43330808+speedxx@users.noreply.github.com> Date: Fri, 14 Aug 2020 21:56:04 -0400 Subject: [PATCH 32/54] fix exceptions, properly teleport player in /ride - fixes ArrayIndexOutOfBoundsException in /ride - teleport sender properly if target is in different world for /ride - fixes IllegalArgumentException in /stopsound --- .../totalfreedommod/command/Command_ride.java | 40 +++++++++++-------- .../command/Command_stopsound.java | 34 +++++++++------- 2 files changed, 43 insertions(+), 31 deletions(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ride.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ride.java index c64707ce..7f41a5fb 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ride.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ride.java @@ -8,7 +8,6 @@ import me.totalfreedom.totalfreedommod.player.PlayerData; import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.util.FUtil; import org.bukkit.ChatColor; -import org.bukkit.Location; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -17,7 +16,9 @@ import org.bukkit.entity.Player; @CommandParameters(description = "Ride on the top of the specified player.", usage = "/ >") public class Command_ride extends FreedomCommand { + private final Map RIDE_REQUESTS = new HashMap<>(); // requested, requester + @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { @@ -40,6 +41,7 @@ public class Command_ride extends FreedomCommand msg("You don't have a request currently."); return true; } + Player requester = RIDE_REQUESTS.get(playerSender); if (requester == null) { @@ -47,8 +49,15 @@ public class Command_ride extends FreedomCommand RIDE_REQUESTS.remove(playerSender); return true; } + msg("Request accepted."); requester.sendMessage(ChatColor.GRAY + "Your request has been accepted."); + + if (requester.getWorld() != playerSender.getWorld()) + { + requester.teleport(playerSender); + } + playerSender.addPassenger(requester); return true; } @@ -73,15 +82,18 @@ public class Command_ride extends FreedomCommand return true; } - if (args[0].equalsIgnoreCase("mode")) + if (args.length >= 2) { - if (args[1].equalsIgnoreCase("normal") || args[1].equalsIgnoreCase("off") || args[1].equalsIgnoreCase("ask")) + if (args[0].equalsIgnoreCase("mode")) { - PlayerData playerDataSender = plugin.pl.getData(playerSender); - playerDataSender.setRideMode(args[1].toLowerCase()); - plugin.pl.save(playerDataSender); - msg("Ride mode is now set to " + args[1].toLowerCase() + "."); - return true; + if (args[1].equalsIgnoreCase("normal") || args[1].equalsIgnoreCase("off") || args[1].equalsIgnoreCase("ask")) + { + PlayerData playerDataSender = plugin.pl.getData(playerSender); + playerDataSender.setRideMode(args[1].toLowerCase()); + plugin.pl.save(playerDataSender); + msg("Ride mode is now set to " + args[1].toLowerCase() + "."); + return true; + } } } @@ -133,17 +145,11 @@ public class Command_ride extends FreedomCommand if (player.getWorld() != playerSender.getWorld()) { - msg("Player is in another world. (" + player.getWorld().getName() + ")"); - return true; - } - else - { - Location loc = player.getLocation(); - playerSender.teleport(new Location(loc.getWorld(),loc.getX(), loc.getY(), loc.getZ())); + playerSender.teleport(player); } player.addPassenger(playerSender); - + msg(player, playerSender.getName() + " is now riding you, run /eject to eject them."); return true; } -} +} \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_stopsound.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_stopsound.java index 5ad72320..1e0acb92 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_stopsound.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_stopsound.java @@ -18,30 +18,36 @@ public class Command_stopsound extends FreedomCommand @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (args.length > 0) { - Sound sound = Sound.valueOf(args[0].toUpperCase()); - if (sound != null) + Sound sound = null; + + for (Sound loop : Sound.values()) { - playerSender.stopSound(sound); - msg("Stopped all " + sound.name() + " sounds", ChatColor.GREEN); + if (loop != null && loop.name().equalsIgnoreCase(args[0])) + { + sound = Sound.valueOf(args[0].toUpperCase()); + break; + } } - else + + if (sound == null) { msg(args[0] + " is not a valid sound.", ChatColor.RED); + return true; } + + playerSender.stopSound(sound); + msg("Stopped all " + sound.name() + " sounds", ChatColor.GREEN); + return true; } - else + + for (Sound sound : Sound.values()) { - for (Sound sound : Sound.values()) - { - playerSender.stopSound(sound); - } - msg("Stopped all sounds.", ChatColor.GREEN); - + playerSender.stopSound(sound); } + msg("Stopped all sounds.", ChatColor.GREEN); return true; } @@ -64,4 +70,4 @@ public class Command_stopsound extends FreedomCommand } return sounds; } -} +} \ No newline at end of file From f5b5fcd5ef9c288aae8ae39a65e4eec370b18fa5 Mon Sep 17 00:00:00 2001 From: Seth <13510767+ZeroEpoch1969@users.noreply.github.com> Date: Fri, 14 Aug 2020 23:44:57 -0700 Subject: [PATCH 33/54] Admins are now known as staff To other developers: If you find places where staff are refered to as only admins pls fix it for me. --- pom.xml | 4 +- .../me/totalfreedom/totalfreedommod/AMP.java | 8 +- .../totalfreedommod/AntiSpam.java | 4 +- .../totalfreedommod/ChatManager.java | 34 +- .../totalfreedommod/CommandSpy.java | 4 +- .../totalfreedommod/LoginProcess.java | 10 +- .../totalfreedommod/Monitors.java | 2 +- .../totalfreedom/totalfreedommod/Muter.java | 4 +- .../totalfreedommod/ProtectArea.java | 392 ------------------ .../totalfreedom/totalfreedommod/Reddit.java | 12 +- .../totalfreedommod/ServerPing.java | 2 +- .../totalfreedommod/TotalFreedomMod.java | 20 +- .../totalfreedommod/admin/AdminList.java | 370 ----------------- .../totalfreedommod/banning/BanManager.java | 2 +- .../totalfreedommod/blocking/EditBlocker.java | 4 +- .../blocking/EventBlocker.java | 2 +- .../blocking/InteractBlocker.java | 4 +- .../totalfreedommod/blocking/PVPBlocker.java | 2 +- .../blocking/command/CommandBlocker.java | 2 +- .../blocking/command/CommandBlockerRank.java | 8 +- .../bridge/BukkitTelnetBridge.java | 30 +- .../bridge/LibsDisguisesBridge.java | 4 +- .../totalfreedommod/bridge/VanishBridge.java | 6 +- .../totalfreedommod/caging/Cager.java | 2 +- .../command/Command_adventure.java | 4 +- .../command/Command_aeclear.java | 4 +- .../totalfreedommod/command/Command_amp.java | 22 +- .../command/Command_announce.java | 2 +- .../command/Command_autoclear.java | 2 +- .../command/Command_autotp.java | 2 +- .../totalfreedommod/command/Command_ban.java | 4 +- .../command/Command_banip.java | 4 +- .../command/Command_banlist.java | 4 +- .../command/Command_banname.java | 4 +- .../command/Command_blockcmd.java | 16 +- .../command/Command_blockedit.java | 14 +- .../command/Command_blockpvp.java | 14 +- .../command/Command_blockredstone.java | 8 +- .../totalfreedommod/command/Command_cage.java | 10 +- .../totalfreedommod/command/Command_cake.java | 2 +- .../command/Command_cartsit.java | 2 +- .../command/Command_clearchat.java | 6 +- .../command/Command_cleardiscordqueue.java | 2 +- .../command/Command_clearinventory.java | 6 +- .../command/Command_cmdspy.java | 14 +- .../command/Command_consolesay.java | 2 +- .../command/Command_cookie.java | 2 +- .../command/Command_creative.java | 4 +- .../command/Command_curse.java | 4 +- .../command/Command_denick.java | 4 +- .../totalfreedommod/command/Command_deop.java | 6 +- .../command/Command_deopall.java | 4 +- .../command/Command_disguisetoggle.java | 4 +- .../command/Command_donator.java | 2 +- .../totalfreedommod/command/Command_doom.java | 24 +- .../command/Command_entitywipe.java | 4 +- .../command/Command_expel.java | 2 +- .../command/Command_explode.java | 4 +- .../command/Command_explosivearrows.java | 2 +- .../command/Command_findip.java | 2 +- .../command/Command_forcekill.java | 2 +- .../command/Command_freeze.java | 12 +- .../command/Command_fuckoff.java | 2 +- .../command/Command_health.java | 2 +- .../command/Command_hubworld.java | 4 +- .../command/Command_indefban.java | 2 +- .../command/Command_invis.java | 10 +- .../command/Command_invsee.java | 6 +- .../command/Command_jumppads.java | 2 +- .../totalfreedommod/command/Command_kick.java | 6 +- .../command/Command_kicknoob.java | 10 +- .../command/Command_lastcmd.java | 2 +- .../command/Command_linkdiscord.java | 2 +- .../totalfreedommod/command/Command_list.java | 66 +-- .../command/Command_lockup.java | 10 +- .../totalfreedommod/command/Command_logs.java | 2 +- .../command/Command_makeopregion.java | 2 +- .../command/Command_manageshop.java | 2 +- .../command/Command_manuallyverify.java | 4 +- .../command/Command_massmurder.java | 2 +- .../command/Command_masterbuilderworld.java | 4 +- .../command/Command_mbconfig.java | 6 +- .../command/Command_moblimiter.java | 2 +- .../command/Command_mobpurge.java | 4 +- .../totalfreedommod/command/Command_mute.java | 14 +- ...mand_myadmin.java => Command_mystaff.java} | 80 ++-- .../command/Command_nickclean.java | 6 +- .../command/Command_nickfilter.java | 4 +- .../command/Command_notes.java | 2 +- .../totalfreedommod/command/Command_op.java | 4 +- .../command/Command_opall.java | 2 +- .../totalfreedommod/command/Command_opme.java | 2 +- .../totalfreedommod/command/Command_ops.java | 4 +- .../command/Command_orbit.java | 4 +- .../command/Command_permissions.java | 2 +- .../command/Command_playtime.java | 4 +- .../command/Command_plugincontrol.java | 4 +- .../command/Command_potion.java | 20 +- .../command/Command_potionspy.java | 24 +- .../command/Command_protectarea.java | 104 ----- .../command/Command_purgeall.java | 4 +- .../command/Command_rawsay.java | 2 +- .../command/Command_reactionbar.java | 2 +- .../command/Command_report.java | 4 +- .../totalfreedommod/command/Command_ride.java | 2 +- .../totalfreedommod/command/Command_ro.java | 10 +- .../totalfreedommod/command/Command_rock.java | 2 +- .../totalfreedommod/command/Command_say.java | 2 +- .../command/Command_scare.java | 4 +- .../command/Command_serverstats.java | 2 +- .../command/Command_setlimit.java | 4 +- .../command/Command_setspawnworld.java | 2 +- .../command/Command_settotalvotes.java | 2 +- ...nd_saconfig.java => Command_slconfig.java} | 148 +++---- .../command/Command_smite.java | 2 +- .../command/Command_spectate.java | 2 +- .../command/Command_spectator.java | 2 +- ..._adminchat.java => Command_staffchat.java} | 13 +- ..._admininfo.java => Command_staffinfo.java} | 12 +- ..._adminmode.java => Command_staffmode.java} | 20 +- ...dminworld.java => Command_staffworld.java} | 22 +- .../totalfreedommod/command/Command_stop.java | 2 +- .../command/Command_survival.java | 4 +- .../totalfreedommod/command/Command_tag.java | 16 +- .../command/Command_tagnyan.java | 4 +- .../command/Command_tagrainbow.java | 2 +- .../totalfreedommod/command/Command_tban.java | 6 +- .../command/Command_tempban.java | 4 +- .../command/Command_toggle.java | 6 +- .../command/Command_togglechat.java | 4 +- .../command/Command_totalfreedommod.java | 2 +- .../command/Command_trail.java | 2 +- .../command/Command_unban.java | 4 +- .../command/Command_unbanip.java | 4 +- .../command/Command_unbanname.java | 4 +- .../command/Command_unblockcmd.java | 4 +- .../command/Command_uncage.java | 4 +- .../command/Command_undisguiseall.java | 4 +- .../command/Command_unlinkdiscord.java | 2 +- .../command/Command_unmute.java | 4 +- .../command/Command_vanish.java | 2 +- ...oadmin.java => Command_verifynostaff.java} | 28 +- .../totalfreedommod/command/Command_warn.java | 8 +- .../command/Command_whitelist.java | 22 +- .../command/Command_whohas.java | 8 +- .../command/Command_wildcard.java | 2 +- .../command/Command_wipecoreprotectdata.java | 4 +- .../command/Command_wipeflatlands.java | 2 +- .../command/Command_wipepunishments.java | 6 +- .../command/Command_wiperegions.java | 4 +- .../command/Command_wipeuserdata.java | 6 +- .../command/Command_wipewarps.java | 4 +- .../command/FreedomCommand.java | 22 +- .../totalfreedommod/config/ConfigEntry.java | 26 +- .../totalfreedommod/discord/Discord.java | 79 ++-- .../discord/DiscordToMinecraftListener.java | 12 +- .../discord/PrivateMessageListener.java | 8 +- .../totalfreedommod/freeze/FreezeData.java | 4 +- .../totalfreedommod/freeze/Freezer.java | 2 +- .../totalfreedommod/httpd/HTTPDaemon.java | 4 +- .../httpd/module/Module_activitylog.java | 6 +- .../httpd/module/Module_bans.java | 4 +- .../httpd/module/Module_indefbans.java | 4 +- .../httpd/module/Module_list.java | 42 +- .../httpd/module/Module_logfile.java | 4 +- .../httpd/module/Module_players.java | 16 +- .../httpd/module/Module_punishments.java | 4 +- .../httpd/module/Module_schematic.java | 6 +- .../{Module_admins.java => Module_staff.java} | 8 +- .../permissions/PermissionEntry.java | 6 +- .../permissions/PermissionManager.java | 28 +- .../totalfreedommod/player/FPlayer.java | 4 +- .../totalfreedommod/player/PlayerList.java | 40 +- .../totalfreedommod/rank/Rank.java | 30 +- .../totalfreedommod/rank/RankManager.java | 62 +-- .../totalfreedommod/sql/SQLite.java | 65 ++- .../{admin => staff}/ActivityLog.java | 6 +- .../{admin => staff}/ActivityLogEntry.java | 2 +- .../totalfreedommod/staff/StaffList.java | 370 +++++++++++++++++ .../Admin.java => staff/StaffMember.java} | 18 +- .../totalfreedommod/util/FSync.java | 2 +- .../totalfreedommod/util/FUtil.java | 6 +- .../{AdminWorld.java => StaffWorld.java} | 10 +- .../totalfreedommod/world/WorldManager.java | 12 +- .../world/WorldRestrictions.java | 4 +- src/main/resources/config.yml | 52 +-- src/main/resources/permissions.yml | 12 +- 187 files changed, 1228 insertions(+), 1787 deletions(-) delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/ProtectArea.java delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java rename src/main/java/me/totalfreedom/totalfreedommod/command/{Command_myadmin.java => Command_mystaff.java} (76%) delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/command/Command_protectarea.java rename src/main/java/me/totalfreedom/totalfreedommod/command/{Command_saconfig.java => Command_slconfig.java} (58%) rename src/main/java/me/totalfreedom/totalfreedommod/command/{Command_adminchat.java => Command_staffchat.java} (69%) rename src/main/java/me/totalfreedom/totalfreedommod/command/{Command_admininfo.java => Command_staffinfo.java} (72%) rename src/main/java/me/totalfreedom/totalfreedommod/command/{Command_adminmode.java => Command_staffmode.java} (70%) rename src/main/java/me/totalfreedom/totalfreedommod/command/{Command_adminworld.java => Command_staffworld.java} (88%) rename src/main/java/me/totalfreedom/totalfreedommod/command/{Command_verifynoadmin.java => Command_verifynostaff.java} (71%) rename src/main/java/me/totalfreedom/totalfreedommod/httpd/module/{Module_admins.java => Module_staff.java} (85%) rename src/main/java/me/totalfreedom/totalfreedommod/{admin => staff}/ActivityLog.java (97%) rename src/main/java/me/totalfreedom/totalfreedommod/{admin => staff}/ActivityLogEntry.java (98%) create mode 100644 src/main/java/me/totalfreedom/totalfreedommod/staff/StaffList.java rename src/main/java/me/totalfreedom/totalfreedommod/{admin/Admin.java => staff/StaffMember.java} (91%) rename src/main/java/me/totalfreedom/totalfreedommod/world/{AdminWorld.java => StaffWorld.java} (95%) diff --git a/pom.xml b/pom.xml index 032257c0..b733dc88 100644 --- a/pom.xml +++ b/pom.xml @@ -249,9 +249,9 @@ - com.github.speedxx + com.github.TFPatches TFGuilds - master + ad93b9ed00 provided diff --git a/src/main/java/me/totalfreedom/totalfreedommod/AMP.java b/src/main/java/me/totalfreedom/totalfreedommod/AMP.java index 32b0fc45..8f78ef22 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/AMP.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/AMP.java @@ -5,7 +5,7 @@ import java.util.Arrays; import java.util.List; import joptsimple.internal.Strings; import lombok.Getter; -import me.totalfreedom.totalfreedommod.admin.Admin; +import me.totalfreedom.totalfreedommod.staff.StaffMember; import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.util.FLog; @@ -103,16 +103,16 @@ public class AMP extends FreedomService FLog.info("Logged out of AMP"); } - public void updateAccountStatus(Admin admin) + public void updateAccountStatus(StaffMember staffMember) { - String username = admin.getAmpUsername(); + String username = staffMember.getAmpUsername(); if (username == null || !enabled) { return; } - if (!admin.isActive() || admin.getRank() != Rank.SENIOR_ADMIN) + if (!staffMember.isActive() || staffMember.getRank() != Rank.ADMIN) { FLog.debug("Disabling amp acc"); setAccountEnabled(username, false); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/AntiSpam.java b/src/main/java/me/totalfreedom/totalfreedommod/AntiSpam.java index 54764e87..af015222 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/AntiSpam.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/AntiSpam.java @@ -62,7 +62,7 @@ public class AntiSpam extends FreedomService { final Player player = event.getPlayer(); - if (plugin.al.isAdmin(player)) + if (plugin.sl.isStaff(player)) { return; } @@ -109,7 +109,7 @@ public class AntiSpam extends FreedomService return; } - if (plugin.al.isAdmin(player)) + if (plugin.sl.isStaff(player)) { return; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java b/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java index 079ef884..e03c66f0 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java @@ -1,7 +1,7 @@ package me.totalfreedom.totalfreedommod; import com.google.common.base.Strings; -import me.totalfreedom.totalfreedommod.admin.Admin; +import me.totalfreedom.totalfreedommod.staff.StaffMember; import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.player.FPlayer; import me.totalfreedom.totalfreedommod.player.PlayerData; @@ -65,7 +65,7 @@ public class ChatManager extends FreedomService return; } - if (!ConfigEntry.TOGGLE_CHAT.getBoolean() && !plugin.al.isAdmin(player)) + if (!ConfigEntry.TOGGLE_CHAT.getBoolean() && !plugin.sl.isStaff(player)) { event.setCancelled(true); playerMsg(player, "Chat is currently disabled.", org.bukkit.ChatColor.RED); @@ -123,7 +123,7 @@ public class ChatManager extends FreedomService } // Check for mentions - Boolean mentionEveryone = ChatColor.stripColor(message).toLowerCase().contains("@everyone") && plugin.al.isAdmin(player); + Boolean mentionEveryone = ChatColor.stripColor(message).toLowerCase().contains("@everyone") && plugin.sl.isStaff(player); for (Player p : server.getOnlinePlayers()) { if (ChatColor.stripColor(message).toLowerCase().contains("@" + p.getName().toLowerCase()) || mentionEveryone) @@ -136,16 +136,16 @@ public class ChatManager extends FreedomService event.setFormat(format); // Send to discord - if (!ConfigEntry.ADMIN_ONLY_MODE.getBoolean() && !Bukkit.hasWhitelist() && !plugin.pl.getPlayer(player).isMuted() && !plugin.tfg.inGuildChat(player)) + if (!ConfigEntry.STAFF_ONLY_MODE.getBoolean() && !Bukkit.hasWhitelist() && !plugin.pl.getPlayer(player).isMuted() && !plugin.tfg.inGuildChat(player)) { plugin.dc.messageChatChannel(plugin.dc.deformat(player.getName()) + " \u00BB " + ChatColor.stripColor(message)); } } - public ChatColor getColor(Admin admin, Displayable display) + public ChatColor getColor(StaffMember staffMember, Displayable display) { ChatColor color = display.getColor(); - if (admin.getOldTags()) + if (staffMember.getOldTags()) { if (color.equals(ChatColor.AQUA)) @@ -164,10 +164,10 @@ public class ChatManager extends FreedomService return color; } - public String getColoredTag(Admin admin, Displayable display) + public String getColoredTag(StaffMember staffMember, Displayable display) { ChatColor color = display.getColor(); - if (admin.getOldTags()) + if (staffMember.getOldTags()) { if (color.equals(ChatColor.AQUA)) @@ -186,26 +186,26 @@ public class ChatManager extends FreedomService return color + display.getAbbr(); } - public void adminChat(CommandSender sender, String message) + public void staffChat(CommandSender sender, String message) { Displayable display = plugin.rm.getDisplay(sender); - FLog.info("[ADMIN] " + sender.getName() + " " + display.getTag() + ": " + message, true); + FLog.info("[STAFF] " + sender.getName() + " " + display.getTag() + ": " + message, true); for (Player player : server.getOnlinePlayers()) { - if (plugin.al.isAdmin(player)) + if (plugin.sl.isStaff(player)) { - Admin admin = plugin.al.getAdmin(player); - if (!Strings.isNullOrEmpty(admin.getAcFormat())) + StaffMember staffMember = plugin.sl.getAdmin(player); + if (!Strings.isNullOrEmpty(staffMember.getAcFormat())) { - String format = admin.getAcFormat(); - ChatColor color = getColor(admin, display); + String format = staffMember.getAcFormat(); + ChatColor color = getColor(staffMember, display); String msg = format.replace("%name%", sender.getName()).replace("%rank%", display.getAbbr()).replace("%rankcolor%", color.toString()).replace("%msg%", message); player.sendMessage(FUtil.colorize(msg)); } else { - player.sendMessage("[" + ChatColor.AQUA + "ADMIN" + ChatColor.WHITE + "] " + ChatColor.DARK_RED + sender.getName() + ChatColor.DARK_GRAY + " [" + getColoredTag(admin, display) + ChatColor.DARK_GRAY + "]" + ChatColor.WHITE + ": " + ChatColor.GOLD + FUtil.colorize(message)); + player.sendMessage("[" + ChatColor.AQUA + "STAFF" + ChatColor.WHITE + "] " + ChatColor.DARK_RED + sender.getName() + ChatColor.DARK_GRAY + " [" + getColoredTag(staffMember, display) + ChatColor.DARK_GRAY + "]" + ChatColor.WHITE + ": " + ChatColor.GOLD + FUtil.colorize(message)); } } } @@ -215,7 +215,7 @@ public class ChatManager extends FreedomService { for (Player player : server.getOnlinePlayers()) { - if (plugin.al.isAdmin(player)) + if (plugin.sl.isStaff(player)) { playerMsg(player, ChatColor.RED + "[REPORTS] " + ChatColor.GOLD + reporter.getName() + " has reported " + reported.getName() + " for " + report); FLog.info("[REPORTS] " + reporter.getName() + " has reported " + reported.getName() + " for " + report); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/CommandSpy.java b/src/main/java/me/totalfreedom/totalfreedommod/CommandSpy.java index 4da218d3..5bc0ddc0 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/CommandSpy.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/CommandSpy.java @@ -23,9 +23,9 @@ public class CommandSpy extends FreedomService { for (Player player : server.getOnlinePlayers()) { - if (plugin.al.isAdmin(player) && plugin.al.getAdmin(player).getCommandSpy()) + if (plugin.sl.isStaff(player) && plugin.sl.getAdmin(player).getCommandSpy()) { - if (plugin.al.isAdmin(event.getPlayer()) && !plugin.al.isSeniorAdmin(player)) + if (plugin.sl.isStaff(event.getPlayer()) && !plugin.sl.isAdmin(player)) { continue; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java b/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java index f921bd71..fb411f2f 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java @@ -53,7 +53,7 @@ public class LoginProcess extends FreedomService public void onPlayerPreLogin(AsyncPlayerPreLoginEvent event) { final String ip = event.getAddress().getHostAddress().trim(); - final boolean isAdmin = plugin.al.getEntryByIp(ip) != null; + final boolean isAdmin = plugin.sl.getEntryByIp(ip) != null; // Check if the player is already online for (Player onlinePlayer : server.getOnlinePlayers()) @@ -114,7 +114,7 @@ public class LoginProcess extends FreedomService } // Check if player is admin - final boolean isAdmin = plugin.al.getEntryByIp(ip) != null; + final boolean isAdmin = plugin.sl.getEntryByIp(ip) != null; // Validation below this point if (isAdmin) // Player is admin @@ -127,7 +127,7 @@ public class LoginProcess extends FreedomService { for (Player onlinePlayer : server.getOnlinePlayers()) { - if (!plugin.al.isAdmin(onlinePlayer)) + if (!plugin.sl.isStaff(onlinePlayer)) { onlinePlayer.kickPlayer("You have been kicked to free up room for an admin."); count--; @@ -226,7 +226,7 @@ public class LoginProcess extends FreedomService player.setPlayerListFooter(FUtil.colorize(ConfigEntry.SERVER_TABLIST_FOOTER.getString()).replace("\\n", "\n")); } - if (!plugin.al.isAdmin(player)) + if (!plugin.sl.isStaff(player)) { String tag = playerData.getTag(); if (tag != null) @@ -244,7 +244,7 @@ public class LoginProcess extends FreedomService FLog.info(noteMessage); for (Player p : server.getOnlinePlayers()) { - if (plugin.al.isAdminImpostor(p)) + if (plugin.sl.isAdminImpostor(p)) { notice.send(p); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/Monitors.java b/src/main/java/me/totalfreedom/totalfreedommod/Monitors.java index a74ee0aa..2842332f 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/Monitors.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/Monitors.java @@ -34,7 +34,7 @@ public class Monitors extends FreedomService { for (Player player : recentlyThrownPotions.keySet()) { - if (plugin.al.isAdmin(player) && plugin.al.getAdmin(player).getPotionSpy()) + if (plugin.sl.isStaff(player) && plugin.sl.getAdmin(player).getPotionSpy()) { List playerThrownPotions = recentlyThrownPotions.get(player); ThrownPotion latestThrownPotion = playerThrownPotions.get(playerThrownPotions.size() - 1); // Get most recently thrown potion for the position. diff --git a/src/main/java/me/totalfreedom/totalfreedommod/Muter.java b/src/main/java/me/totalfreedom/totalfreedommod/Muter.java index 97891bef..203d3e77 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/Muter.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/Muter.java @@ -45,7 +45,7 @@ public class Muter extends FreedomService return; } - if (plugin.al.isAdminSync(player)) + if (plugin.sl.isStaffSync(player)) { fPlayer.setMuted(false); MUTED_PLAYERS.remove(player.getName()); @@ -70,7 +70,7 @@ public class Muter extends FreedomService } String message = event.getMessage(); - if (plugin.al.isAdmin(player)) + if (plugin.sl.isStaff(player)) { fPlayer.setMuted(false); return; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/ProtectArea.java b/src/main/java/me/totalfreedom/totalfreedommod/ProtectArea.java deleted file mode 100644 index 9dbcde21..00000000 --- a/src/main/java/me/totalfreedom/totalfreedommod/ProtectArea.java +++ /dev/null @@ -1,392 +0,0 @@ -package me.totalfreedom.totalfreedommod; - -import com.google.common.collect.Maps; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.io.Serializable; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import me.totalfreedom.totalfreedommod.config.ConfigEntry; -import me.totalfreedom.totalfreedommod.util.FLog; -import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.World; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.block.BlockBreakEvent; -import org.bukkit.event.block.BlockPlaceEvent; -import org.bukkit.util.Vector; - -public class ProtectArea extends FreedomService -{ - - public static final String DATA_FILENAME = "protectedareas.dat"; - public static final double MAX_RADIUS = 50.0; - // - private final Map areas = Maps.newHashMap(); - - @Override - public void onStart() - { - if (!ConfigEntry.PROTECTAREA_ENABLED.getBoolean()) - { - return; - } - - File input = new File(plugin.getDataFolder(), DATA_FILENAME); - try - { - if (input.exists()) - { - FileInputStream fis = new FileInputStream(input); - ObjectInputStream ois = new ObjectInputStream(fis); - areas.clear(); - areas.putAll((HashMap)ois.readObject()); - ois.close(); - fis.close(); - } - } - catch (Exception ex) - { - input.delete(); - FLog.severe(ex); - } - - cleanProtectedAreas(); - } - - @Override - public void onStop() - { - save(); - } - - public void save() - { - try - { - FileOutputStream fos = new FileOutputStream(new File(plugin.getDataFolder(), DATA_FILENAME)); - ObjectOutputStream oos = new ObjectOutputStream(fos); - oos.writeObject(areas); - oos.close(); - fos.close(); - } - catch (Exception ex) - { - FLog.severe(ex); - } - } - - @EventHandler(priority = EventPriority.NORMAL) - public void onBlockBreak(BlockBreakEvent event) - { - if (!ConfigEntry.PROTECTAREA_ENABLED.getBoolean()) - { - return; - } - - final Player player = event.getPlayer(); - if (plugin.al.isAdmin(player)) - { - return; - } - - final Location location = event.getBlock().getLocation(); - - if (isInProtectedArea(location)) - { - event.setCancelled(true); - } - } - - @EventHandler(priority = EventPriority.NORMAL) - public void onBlockPlace(BlockPlaceEvent event) - { - if (!ConfigEntry.PROTECTAREA_ENABLED.getBoolean()) - { - return; - } - - final Player player = event.getPlayer(); - if (plugin.al.isAdmin(player)) - { - return; - } - - final Location location = event.getBlock().getLocation(); - - if (isInProtectedArea(location)) - { - event.setCancelled(true); - } - } - - public boolean isInProtectedArea(final Location modifyLocation) - { - boolean doSave = false; - boolean inProtectedArea = false; - - final Iterator> it = areas.entrySet().iterator(); - - while (it.hasNext()) - { - final SerializableProtectedRegion region = it.next().getValue(); - - Location regionCenter = null; - try - { - regionCenter = region.getLocation(); - } - catch (SerializableProtectedRegion.CantFindWorldException ex) - { - it.remove(); - doSave = true; - continue; - } - - if (regionCenter != null) - { - if (modifyLocation.getWorld() == regionCenter.getWorld()) - { - final double regionRadius = region.getRadius(); - if (modifyLocation.distanceSquared(regionCenter) <= (regionRadius * regionRadius)) - { - inProtectedArea = true; - break; - } - } - } - } - - if (doSave) - { - save(); - } - - return inProtectedArea; - } - - public boolean isInProtectedArea(final Vector min, final Vector max, final String worldName) - { - boolean doSave = false; - boolean inProtectedArea = false; - - final Iterator> it = areas.entrySet().iterator(); - - while (it.hasNext()) - { - final SerializableProtectedRegion region = it.next().getValue(); - - Location regionCenter = null; - try - { - regionCenter = region.getLocation(); - } - catch (SerializableProtectedRegion.CantFindWorldException ex) - { - it.remove(); - doSave = true; - continue; - } - - if (regionCenter != null) - { - if (worldName.equals(regionCenter.getWorld().getName())) - { - if (cubeIntersectsSphere(min, max, regionCenter.toVector(), region.getRadius())) - { - inProtectedArea = true; - break; - } - } - } - } - - if (doSave) - { - save(); - } - - return inProtectedArea; - } - - private boolean cubeIntersectsSphere(Vector min, Vector max, Vector sphere, double radius) - { - double d = square(radius); - - if (sphere.getX() < min.getX()) - { - d -= square(sphere.getX() - min.getX()); - } - else if (sphere.getX() > max.getX()) - { - d -= square(sphere.getX() - max.getX()); - } - if (sphere.getY() < min.getY()) - { - d -= square(sphere.getY() - min.getY()); - } - else if (sphere.getY() > max.getY()) - { - d -= square(sphere.getY() - max.getY()); - } - if (sphere.getZ() < min.getZ()) - { - d -= square(sphere.getZ() - min.getZ()); - } - else if (sphere.getZ() > max.getZ()) - { - d -= square(sphere.getZ() - max.getZ()); - } - - return d > 0; - } - - private double square(double v) - { - return v * v; - } - - public void addProtectedArea(String label, Location location, double radius) - { - areas.put(label.toLowerCase(), new SerializableProtectedRegion(location, radius)); - save(); - } - - public void removeProtectedArea(String label) - { - areas.remove(label.toLowerCase()); - save(); - } - - public void clearProtectedAreas() - { - clearProtectedAreas(true); - } - - public void clearProtectedAreas(boolean createSpawnpointProtectedAreas) - { - areas.clear(); - - if (createSpawnpointProtectedAreas) - { - autoAddSpawnpoints(); - } - - save(); - } - - public void cleanProtectedAreas() - { - boolean doSave = false; - - final Iterator> it = areas.entrySet().iterator(); - - while (it.hasNext()) - { - try - { - it.next().getValue().getLocation(); - } - catch (SerializableProtectedRegion.CantFindWorldException ex) - { - it.remove(); - doSave = true; - } - } - - if (doSave) - { - save(); - } - } - - public Set getProtectedAreaLabels() - { - return areas.keySet(); - } - - public void autoAddSpawnpoints() - { - if (!ConfigEntry.PROTECTAREA_ENABLED.getBoolean()) - { - return; - } - - if (ConfigEntry.PROTECTAREA_SPAWNPOINTS.getBoolean()) - { - for (World world : Bukkit.getWorlds()) - { - addProtectedArea("spawn_" + world.getName(), world.getSpawnLocation(), ConfigEntry.PROTECTAREA_RADIUS.getDouble()); - } - } - } - - public static class SerializableProtectedRegion implements Serializable - { - - private static final long serialVersionUID = 213123517828282L; - private final double x, y, z; - private final double radius; - private final String worldName; - private final UUID worldUUID; - private transient Location location = null; - - public SerializableProtectedRegion(final Location location, final double radius) - { - this.x = location.getX(); - this.y = location.getY(); - this.z = location.getZ(); - this.radius = radius; - this.worldName = location.getWorld().getName(); - this.worldUUID = location.getWorld().getUID(); - this.location = location; - } - - public Location getLocation() throws CantFindWorldException - { - if (this.location == null) - { - World world = Bukkit.getWorld(this.worldUUID); - - if (world == null) - { - world = Bukkit.getWorld(this.worldName); - } - - if (world == null) - { - throw new CantFindWorldException("Can't find world " + this.worldName + ", UUID: " + this.worldUUID.toString()); - } - - location = new Location(world, x, y, z); - } - return this.location; - } - - public double getRadius() - { - return radius; - } - - public class CantFindWorldException extends Exception - { - - private static final long serialVersionUID = 1L; - - public CantFindWorldException(String string) - { - super(string); - } - } - - } - -} diff --git a/src/main/java/me/totalfreedom/totalfreedommod/Reddit.java b/src/main/java/me/totalfreedom/totalfreedommod/Reddit.java index 6f34f053..c82b3d4b 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/Reddit.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/Reddit.java @@ -203,9 +203,9 @@ public class Reddit extends FreedomService flairList.put(Title.EXECUTIVE, ConfigEntry.REDDIT_EXECUTIVE_FLAIR_ID.getString()); flairList.put(Title.ASSISTANT_EXECUTIVE, ConfigEntry.REDDIT_ASSISTANT_EXECUTIVE_FLAIR_ID.getString()); flairList.put(Title.DEVELOPER, ConfigEntry.REDDIT_DEVELOPER_FLAIR_ID.getString()); - flairList.put(Rank.SENIOR_ADMIN, ConfigEntry.REDDIT_SENIOR_FLAIR_ID.getString()); - flairList.put(Rank.TELNET_ADMIN, ConfigEntry.REDDIT_TELNET_FLAIR_ID.getString()); - flairList.put(Rank.SUPER_ADMIN, ConfigEntry.REDDIT_SUPER_FLAIR_ID.getString()); + flairList.put(Rank.ADMIN, ConfigEntry.REDDIT_ADMIN_FLAIR_ID.getString()); + flairList.put(Rank.MOD, ConfigEntry.REDDIT_MOD_FLAIR_ID.getString()); + flairList.put(Rank.TRIAL_MOD, ConfigEntry.REDDIT_TRIAL_MOD_FLAIR_ID.getString()); flairList.put(Title.MASTER_BUILDER, ConfigEntry.REDDIT_MASTER_BUILDER_FLAIR_ID.getString()); flairList.put(Title.DONATOR, ConfigEntry.REDDIT_DONATOR_FLAIR_ID.getString()); @@ -214,9 +214,9 @@ public class Reddit extends FreedomService flairNameList.put(Title.EXECUTIVE, "Executive"); flairNameList.put(Title.ASSISTANT_EXECUTIVE, "Assistant Executive"); flairNameList.put(Title.DEVELOPER, "Developer"); - flairNameList.put(Rank.SENIOR_ADMIN, "Senior Admin"); - flairNameList.put(Rank.TELNET_ADMIN, "Telnet Admin"); - flairNameList.put(Rank.SUPER_ADMIN, "Super Admin"); + flairNameList.put(Rank.ADMIN, "Admin"); + flairNameList.put(Rank.MOD, "Mod"); + flairNameList.put(Rank.TRIAL_MOD, "Trial Mod"); flairNameList.put(Title.MASTER_BUILDER, "Master Builder"); flairNameList.put(Title.DONATOR, "Premium"); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/ServerPing.java b/src/main/java/me/totalfreedom/totalfreedommod/ServerPing.java index a5a91ab8..5a9c8edb 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/ServerPing.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/ServerPing.java @@ -32,7 +32,7 @@ public class ServerPing extends FreedomService if (ConfigEntry.ADMIN_ONLY_MODE.getBoolean()) { - event.setMotd(FUtil.colorize(ConfigEntry.SERVER_ADMINMODE_MOTD.getString())); + event.setMotd(FUtil.colorize(ConfigEntry.SERVER_STAFFMODE_MOTD.getString())); return; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java index 6625e77a..9ed62f77 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java @@ -3,8 +3,8 @@ package me.totalfreedom.totalfreedommod; import java.io.File; import java.io.InputStream; import java.util.Properties; -import me.totalfreedom.totalfreedommod.admin.ActivityLog; -import me.totalfreedom.totalfreedommod.admin.AdminList; +import me.totalfreedom.totalfreedommod.staff.ActivityLog; +import me.totalfreedom.totalfreedommod.staff.StaffList; import me.totalfreedom.totalfreedommod.banning.BanManager; import me.totalfreedom.totalfreedommod.banning.IndefiniteBanList; import me.totalfreedom.totalfreedommod.blocking.BlockBlocker; @@ -56,7 +56,6 @@ import org.bukkit.Bukkit; import org.bukkit.generator.ChunkGenerator; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; -import org.bukkit.scheduler.BukkitRunnable; import org.spigotmc.SpigotConfig; public class TotalFreedomMod extends JavaPlugin @@ -87,7 +86,7 @@ public class TotalFreedomMod extends JavaPlugin public SavedFlags sf; public WorldManager wm; public LogViewer lv; - public AdminList al; + public StaffList sl; public ActivityLog acl; public RankManager rm; public CommandBlocker cb; @@ -110,7 +109,6 @@ public class TotalFreedomMod extends JavaPlugin public BanManager bm; public IndefiniteBanList im; public PermissionManager pem; - public ProtectArea pa; public Reddit rd; public GameRuleHandler gr; public CommandSpy cs; @@ -207,7 +205,7 @@ public class TotalFreedomMod extends JavaPlugin wm = new WorldManager(); lv = new LogViewer(); sql = new SQLite(); - al = new AdminList(); + sl = new StaffList(); acl = new ActivityLog(); rm = new RankManager(); cb = new CommandBlocker(); @@ -230,7 +228,6 @@ public class TotalFreedomMod extends JavaPlugin bm = new BanManager(); im = new IndefiniteBanList(); pem = new PermissionManager(); - pa = new ProtectArea(); rd = new Reddit(); gr = new GameRuleHandler(); snp = new SignBlocker(); @@ -285,15 +282,6 @@ public class TotalFreedomMod extends JavaPlugin // Metrics @ https://bstats.org/plugin/bukkit/TotalFreedomMod/2966 new Metrics(this, 2966); - // Add spawnpoints later - https://github.com/TotalFreedom/TotalFreedomMod/issues/438 - new BukkitRunnable() - { - @Override - public void run() - { - plugin.pa.autoAddSpawnpoints(); - } - }.runTaskLater(plugin, 60L); // little workaround to stop spigot from autorestarting - causing AMP to detach from process. SpigotConfig.config.set("settings.restart-on-crash", false); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java b/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java deleted file mode 100644 index 2b4d6c61..00000000 --- a/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java +++ /dev/null @@ -1,370 +0,0 @@ -package me.totalfreedom.totalfreedommod.admin; - -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; -import de.myzelyam.api.vanish.VanishAPI; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.TimeUnit; -import lombok.Getter; -import me.totalfreedom.totalfreedommod.FreedomService; -import me.totalfreedom.totalfreedommod.config.ConfigEntry; -import me.totalfreedom.totalfreedommod.rank.Rank; -import me.totalfreedom.totalfreedommod.util.FLog; -import me.totalfreedom.totalfreedommod.util.FUtil; -import org.bukkit.Bukkit; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -public class AdminList extends FreedomService -{ - @Getter - private final Set allAdmins = Sets.newHashSet(); // Includes disabled admins - // Only active admins below - @Getter - private final Set activeAdmins = Sets.newHashSet(); - private final Map nameTable = Maps.newHashMap(); - private final Map ipTable = Maps.newHashMap(); - public final List verifiedNoAdmins = new ArrayList<>(); - public final Map> verifiedNoAdminIps = Maps.newHashMap(); - - @Override - public void onStart() - { - load(); - deactivateOldEntries(false); - } - - @Override - public void onStop() - { - } - - public void load() - { - allAdmins.clear(); - try - { - ResultSet adminSet = plugin.sql.getAdminList(); - { - while (adminSet.next()) - { - Admin admin = new Admin(adminSet); - allAdmins.add(admin); - } - } - } - catch (SQLException e) - { - FLog.severe("Failed to load adminlist: " + e.getMessage()); - } - - updateTables(); - FLog.info("Loaded " + allAdmins.size() + " admins (" + nameTable.size() + " active, " + ipTable.size() + " IPs)"); - } - - public void messageAllAdmins(String message) - { - for (Player player : server.getOnlinePlayers()) - { - if (isAdmin(player)) - { - player.sendMessage(message); - } - } - } - - public synchronized boolean isAdminSync(CommandSender sender) - { - return isAdmin(sender); - } - - public List getActiveAdminNames() - { - List names = new ArrayList(); - for (Admin admin : activeAdmins) - { - names.add(admin.getName()); - } - return names; - } - - public boolean isAdmin(CommandSender sender) - { - if (!(sender instanceof Player)) - { - return true; - } - - Admin admin = getAdmin((Player)sender); - - return admin != null && admin.isActive(); - } - - public boolean isTelnetAdmin(CommandSender sender) - { - Admin admin = getAdmin(sender); - if (admin == null) - { - return false; - } - - return admin.getRank().ordinal() >= Rank.TELNET_ADMIN.ordinal(); - } - - public boolean isSeniorAdmin(CommandSender sender) - { - Admin admin = getAdmin(sender); - if (admin == null) - { - return false; - } - - return admin.getRank().ordinal() >= Rank.SENIOR_ADMIN.ordinal(); - } - - public Admin getAdmin(CommandSender sender) - { - if (sender instanceof Player) - { - return getAdmin((Player)sender); - } - - return getEntryByName(sender.getName()); - } - - public Admin getAdmin(Player player) - { - // Find admin - String ip = FUtil.getIp(player); - Admin admin = getEntryByName(player.getName()); - - // Admin by name - if (admin != null) - { - // Check if we're in online mode, - // Or the players IP is in the admin entry - if (Bukkit.getOnlineMode() || admin.getIps().contains(ip)) - { - if (!admin.getIps().contains(ip)) - { - // Add the new IP if we have to - admin.addIp(ip); - save(admin); - updateTables(); - } - return admin; - } - } - - // Admin by ip - admin = getEntryByIp(ip); - if (admin != null) - { - // Set the new username - String oldName = admin.getName(); - admin.setName(player.getName()); - plugin.sql.updateAdminName(oldName, admin.getName()); - updateTables(); - } - - return null; - } - - public Admin getEntryByName(String name) - { - return nameTable.get(name.toLowerCase()); - } - - public Admin getEntryByIp(String ip) - { - return ipTable.get(ip); - } - - public Admin getEntryByIpFuzzy(String needleIp) - { - final Admin directAdmin = getEntryByIp(needleIp); - if (directAdmin != null) - { - return directAdmin; - } - - for (String ip : ipTable.keySet()) - { - if (FUtil.fuzzyIpMatch(needleIp, ip, 3)) - { - return ipTable.get(ip); - } - } - - return null; - } - - public void updateLastLogin(Player player) - { - final Admin admin = getAdmin(player); - if (admin == null) - { - return; - } - - admin.setLastLogin(new Date()); - admin.setName(player.getName()); - save(admin); - } - - public boolean isAdminImpostor(Player player) - { - return getEntryByName(player.getName()) != null && !isAdmin(player) && !isVerifiedAdmin(player); - } - - public boolean isVerifiedAdmin(Player player) - { - return verifiedNoAdmins.contains(player.getName()) && verifiedNoAdminIps.get(player.getName()).contains(FUtil.getIp(player)); - } - - public boolean isIdentityMatched(Player player) - { - if (Bukkit.getOnlineMode()) - { - return true; - } - - Admin admin = getAdmin(player); - return admin == null ? false : admin.getName().equalsIgnoreCase(player.getName()); - } - - public boolean addAdmin(Admin admin) - { - if (!admin.isValid()) - { - logger.warning("Could not add admin: " + admin.getName() + " Admin is missing details!"); - return false; - } - - // Store admin, update views - allAdmins.add(admin); - updateTables(); - - // Save admin - plugin.sql.addAdmin(admin); - - return true; - } - - public boolean removeAdmin(Admin admin) - { - if (admin.getRank().isAtLeast(Rank.TELNET_ADMIN)) - { - if (plugin.btb != null) - { - plugin.btb.killTelnetSessions(admin.getName()); - } - } - - // Remove admin, update views - if (!allAdmins.remove(admin)) - { - return false; - } - updateTables(); - - // Unsave admin - plugin.sql.removeAdmin(admin); - - return true; - } - - public void updateTables() - { - activeAdmins.clear(); - nameTable.clear(); - ipTable.clear(); - - for (Admin admin : allAdmins) - { - if (!admin.isActive()) - { - continue; - } - - activeAdmins.add(admin); - nameTable.put(admin.getName().toLowerCase(), admin); - - for (String ip : admin.getIps()) - { - ipTable.put(ip, admin); - } - - } - } - - public Set getAdminNames() - { - return nameTable.keySet(); - } - - public Set getAdminIps() - { - return ipTable.keySet(); - } - - public void save(Admin admin) - { - try - { - ResultSet currentSave = plugin.sql.getAdminByName(admin.getName()); - for (Map.Entry entry : admin.toSQLStorable().entrySet()) - { - Object storedValue = plugin.sql.getValue(currentSave, entry.getKey(), entry.getValue()); - if (storedValue != null && !storedValue.equals(entry.getValue()) || storedValue == null && entry.getValue() != null || entry.getValue() == null) - { - plugin.sql.setAdminValue(admin, entry.getKey(), entry.getValue()); - } - } - } - catch (SQLException e) - { - FLog.severe("Failed to save admin: " + e.getMessage()); - } - } - - public void deactivateOldEntries(boolean verbose) - { - for (Admin admin : allAdmins) - { - if (!admin.isActive() || admin.getRank().isAtLeast(Rank.SENIOR_ADMIN)) - { - continue; - } - - final Date lastLogin = admin.getLastLogin(); - final long lastLoginHours = TimeUnit.HOURS.convert(new Date().getTime() - lastLogin.getTime(), TimeUnit.MILLISECONDS); - - if (lastLoginHours < ConfigEntry.ADMINLIST_CLEAN_THESHOLD_HOURS.getInteger()) - { - continue; - } - - if (verbose) - { - FUtil.adminAction("TotalFreedomMod", "Deactivating admin " + admin.getName() + ", inactive for " + lastLoginHours + " hours", true); - } - - admin.setActive(false); - save(admin); - } - - updateTables(); - } - - public boolean isVanished(Player player) - { - return VanishAPI.isInvisible(player); - } -} \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/banning/BanManager.java b/src/main/java/me/totalfreedom/totalfreedommod/banning/BanManager.java index 31292a97..c07a3979 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/banning/BanManager.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/banning/BanManager.java @@ -271,7 +271,7 @@ public class BanManager extends FreedomService final Player player = event.getPlayer(); final PlayerData data = plugin.pl.getData(player); - if (!plugin.al.isAdmin(player)) + if (!plugin.sl.isStaff(player)) { return; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/EditBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/EditBlocker.java index 0a7217e0..a27c4248 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/EditBlocker.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/EditBlocker.java @@ -30,7 +30,7 @@ public class EditBlocker extends FreedomService return; } - if (plugin.al.isAdminSync(event.getPlayer())) + if (plugin.sl.isStaffSync(event.getPlayer())) { fPlayer.setEditBlocked(false); return; @@ -49,7 +49,7 @@ public class EditBlocker extends FreedomService return; } - if (plugin.al.isAdminSync(event.getPlayer())) + if (plugin.sl.isStaffSync(event.getPlayer())) { fPlayer.setEditBlocked(false); return; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/EventBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/EventBlocker.java index fb792036..0e774701 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/EventBlocker.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/EventBlocker.java @@ -148,7 +148,7 @@ public class EventBlocker extends FreedomService @EventHandler(priority = EventPriority.NORMAL) public void onPlayerDropItem(PlayerDropItemEvent event) { - if (!plugin.al.isAdmin(event.getPlayer())) + if (!plugin.sl.isStaff(event.getPlayer())) { event.setCancelled(true); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java index b7df3bbe..b2dfadb2 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java @@ -90,7 +90,7 @@ public class InteractBlocker extends FreedomService { case WATER_BUCKET: { - if (plugin.al.isAdmin(player) || ConfigEntry.ALLOW_WATER_PLACE.getBoolean()) + if (plugin.sl.isStaff(player) || ConfigEntry.ALLOW_WATER_PLACE.getBoolean()) { break; } @@ -103,7 +103,7 @@ public class InteractBlocker extends FreedomService case LAVA_BUCKET: { - if (plugin.al.isAdmin(player) || ConfigEntry.ALLOW_LAVA_PLACE.getBoolean()) + if (plugin.sl.isStaff(player) || ConfigEntry.ALLOW_LAVA_PLACE.getBoolean()) { break; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/PVPBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/PVPBlocker.java index b6efd382..de388454 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/PVPBlocker.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/PVPBlocker.java @@ -61,7 +61,7 @@ public class PVPBlocker extends FreedomService } } - if (player != null & !plugin.al.isAdmin(player)) + if (player != null & !plugin.sl.isStaff(player)) { if (player.getGameMode() == GameMode.CREATIVE) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlocker.java index 9e893180..0f19a90e 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlocker.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlocker.java @@ -171,7 +171,7 @@ public class CommandBlocker extends FreedomService for (String part : commandParts) { - if (command.startsWith("/") && !plugin.al.isAdmin(sender) && (part.contains("#copy") || part.contains("#clipboard"))) + if (command.startsWith("/") && !plugin.sl.isStaff(sender) && (part.contains("#copy") || part.contains("#clipboard"))) { FUtil.playerMsg(sender, "WorldEdit copy variables are disabled."); return true; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlockerRank.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlockerRank.java index 84f7b6eb..91a145cf 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlockerRank.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlockerRank.java @@ -1,7 +1,7 @@ package me.totalfreedom.totalfreedommod.blocking.command; import me.totalfreedom.totalfreedommod.TotalFreedomMod; -import me.totalfreedom.totalfreedommod.admin.Admin; +import me.totalfreedom.totalfreedommod.staff.StaffMember; import me.totalfreedom.totalfreedommod.rank.Rank; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -40,10 +40,10 @@ public enum CommandBlockerRank return TELNET; } - Admin admin = TotalFreedomMod.plugin().al.getAdmin(sender); - if (admin != null) + StaffMember staffMember = TotalFreedomMod.plugin().sl.getAdmin(sender); + if (staffMember != null) { - if (admin.getRank() == Rank.SENIOR_ADMIN) + if (staffMember.getRank() == Rank.ADMIN) { return SENIOR; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/bridge/BukkitTelnetBridge.java b/src/main/java/me/totalfreedom/totalfreedommod/bridge/BukkitTelnetBridge.java index 607ad49d..d8c3d397 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/bridge/BukkitTelnetBridge.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/bridge/BukkitTelnetBridge.java @@ -10,7 +10,7 @@ import me.totalfreedom.bukkittelnet.api.TelnetPreLoginEvent; import me.totalfreedom.bukkittelnet.api.TelnetRequestDataTagsEvent; import me.totalfreedom.bukkittelnet.session.ClientSession; import me.totalfreedom.totalfreedommod.FreedomService; -import me.totalfreedom.totalfreedommod.admin.Admin; +import me.totalfreedom.totalfreedommod.staff.StaffMember; import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.util.FLog; import org.bukkit.entity.Player; @@ -43,15 +43,15 @@ public class BukkitTelnetBridge extends FreedomService return; } - final Admin admin = plugin.al.getEntryByIpFuzzy(ip); + final StaffMember staffMember = plugin.sl.getEntryByIpFuzzy(ip); - if (admin == null || !admin.isActive() || !admin.getRank().hasConsoleVariant()) + if (staffMember == null || !staffMember.isActive() || !staffMember.getRank().hasConsoleVariant()) { return; } event.setBypassPassword(true); - event.setName(admin.getName()); + event.setName(staffMember.getName()); } @EventHandler(priority = EventPriority.NORMAL) @@ -77,14 +77,14 @@ public class BukkitTelnetBridge extends FreedomService boolean isTelnetAdmin = false; boolean isSeniorAdmin = false; - final Admin admin = plugin.al.getAdmin(player); - if (admin != null) + final StaffMember staffMember = plugin.sl.getAdmin(player); + if (staffMember != null) { - boolean active = admin.isActive(); + boolean active = staffMember.isActive(); isAdmin = active; - isSeniorAdmin = active && admin.getRank() == Rank.SENIOR_ADMIN; - isTelnetAdmin = active && (isSeniorAdmin || admin.getRank() == Rank.TELNET_ADMIN); + isSeniorAdmin = active && staffMember.getRank() == Rank.ADMIN; + isTelnetAdmin = active && (isSeniorAdmin || staffMember.getRank() == Rank.MOD); } playerTags.put("tfm.admin.isAdmin", isAdmin); @@ -121,22 +121,22 @@ public class BukkitTelnetBridge extends FreedomService return bukkitTelnetPlugin; } - public List getConnectedAdmins() + public List getConnectedAdmins() { - List admins = new ArrayList<>(); + List staffMembers = new ArrayList<>(); final BukkitTelnet telnet = getBukkitTelnetPlugin(); if (telnet != null) { for (ClientSession session : telnet.appender.getSessions()) { - Admin admin = plugin.al.getEntryByName(session.getUserName().toLowerCase()); - if (admin != null && !admins.contains(admin)) + StaffMember staffMember = plugin.sl.getEntryByName(session.getUserName().toLowerCase()); + if (staffMember != null && !staffMembers.contains(staffMember)) { - admins.add(admin); + staffMembers.add(staffMember); } } } - return admins; + return staffMembers; } public void killTelnetSessions(final String name) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/bridge/LibsDisguisesBridge.java b/src/main/java/me/totalfreedom/totalfreedommod/bridge/LibsDisguisesBridge.java index fd9df426..bf3cdca0 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/bridge/LibsDisguisesBridge.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/bridge/LibsDisguisesBridge.java @@ -63,7 +63,7 @@ public class LibsDisguisesBridge extends FreedomService return null; } - public void undisguiseAll(boolean admins) + public void undisguiseAll(boolean staff) { try { @@ -78,7 +78,7 @@ public class LibsDisguisesBridge extends FreedomService { if (DisguiseAPI.isDisguised(player)) { - if (!admins && plugin.al.isAdmin(player)) + if (!staff && plugin.sl.isStaff(player)) { continue; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java b/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java index 097309b6..2cd4798b 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java @@ -31,11 +31,11 @@ public class VanishBridge extends FreedomService if (event.isSilent()) { - plugin.al.messageAllAdmins(ChatColor.GOLD + player.getName() + " silently unvanished."); + plugin.sl.messageAllAdmins(ChatColor.GOLD + player.getName() + " silently unvanished."); } else { - plugin.al.messageAllAdmins(ChatColor.GOLD + player.getName() + " unvanished and is now visible to all players."); + plugin.sl.messageAllAdmins(ChatColor.GOLD + player.getName() + " unvanished and is now visible to all players."); FUtil.bcastMsg(plugin.rm.craftLoginMessage(event.getPlayer(), null)); plugin.dc.messageChatChannel("**" + player.getName() + " joined the server" + "**"); } @@ -54,7 +54,7 @@ public class VanishBridge extends FreedomService Player player = event.getPlayer(); if (event.isSilent()) { - plugin.al.messageAllAdmins(ChatColor.GOLD + player.getName() + " vanished and is now only visible to admins."); + plugin.sl.messageAllAdmins(ChatColor.GOLD + player.getName() + " vanished and is now only visible to admins."); } else { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/caging/Cager.java b/src/main/java/me/totalfreedom/totalfreedommod/caging/Cager.java index f006955c..504d9f72 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/caging/Cager.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/caging/Cager.java @@ -31,7 +31,7 @@ public class Cager extends FreedomService { Player player = event.getPlayer(); if (player == null - || plugin.al.isAdmin(player)) + || plugin.sl.isStaff(player)) { return; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_adventure.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_adventure.java index 1252dce1..49736cd2 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_adventure.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_adventure.java @@ -28,7 +28,7 @@ public class Command_adventure extends FreedomCommand return true; } - checkRank(Rank.SUPER_ADMIN); + checkRank(Rank.TRIAL_MOD); if (args[0].equals("-a")) { @@ -37,7 +37,7 @@ public class Command_adventure extends FreedomCommand targetPlayer.setGameMode(GameMode.ADVENTURE); } - FUtil.adminAction(sender.getName(), "Changing everyone's gamemode to adventure", false); + FUtil.staffAction(sender.getName(), "Changing everyone's gamemode to adventure", false); msg("Your gamemode has been set to adventure."); return true; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_aeclear.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_aeclear.java index 3127abbf..5fc4ba28 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_aeclear.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_aeclear.java @@ -9,7 +9,7 @@ import org.bukkit.entity.AreaEffectCloud; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Clears lingering potion area effect clouds.", usage = "/", aliases = "aec") public class Command_aeclear extends FreedomCommand { @@ -17,7 +17,7 @@ public class Command_aeclear extends FreedomCommand @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - FUtil.adminAction(sender.getName(), "Removing all area effect clouds.", true); + FUtil.staffAction(sender.getName(), "Removing all area effect clouds.", true); int removed = 0; for (World world : server.getWorlds()) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_amp.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_amp.java index 5f606249..45064db9 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_amp.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_amp.java @@ -3,7 +3,7 @@ package me.totalfreedom.totalfreedommod.command; import java.util.Arrays; import java.util.Collections; import java.util.List; -import me.totalfreedom.totalfreedommod.admin.Admin; +import me.totalfreedom.totalfreedommod.staff.StaffMember; import me.totalfreedom.totalfreedommod.player.PlayerData; import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.util.FUtil; @@ -12,7 +12,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "Manage your AMP account", usage = "/ ") public class Command_amp extends FreedomCommand { @@ -43,9 +43,9 @@ public class Command_amp extends FreedomCommand if (args[0].equals("create")) { msg("Creating your AMP account...", ChatColor.GREEN); - Admin admin = getAdmin(playerSender); + StaffMember staffMember = getAdmin(playerSender); - if (admin.getAmpUsername() != null) + if (staffMember.getAmpUsername() != null) { msg("You already have an AMP account.", ChatColor.RED); return true; @@ -54,9 +54,9 @@ public class Command_amp extends FreedomCommand String username = sender.getName(); String password = FUtil.randomString(30); - admin.setAmpUsername(username); - plugin.al.save(admin); - plugin.al.updateTables(); + staffMember.setAmpUsername(username); + plugin.sl.save(staffMember); + plugin.sl.updateTables(); plugin.amp.createAccount(username, password); plugin.dc.sendAMPInfo(playerData, username, password); @@ -65,9 +65,9 @@ public class Command_amp extends FreedomCommand } else if (args[0].equals("resetpassword")) { - Admin admin = getAdmin(playerSender); + StaffMember staffMember = getAdmin(playerSender); - if (admin.getAmpUsername() == null) + if (staffMember.getAmpUsername() == null) { msg("You do not have an AMP account.", ChatColor.RED); return true; @@ -75,7 +75,7 @@ public class Command_amp extends FreedomCommand msg("Resetting your password...", ChatColor.GREEN); - String username = admin.getAmpUsername(); + String username = staffMember.getAmpUsername(); String password = FUtil.randomString(30); plugin.amp.setPassword(username,password); plugin.dc.sendAMPInfo(playerData, username, password); @@ -90,7 +90,7 @@ public class Command_amp extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (args.length == 1 && plugin.al.isSeniorAdmin(sender)) + if (args.length == 1 && plugin.sl.isAdmin(sender)) { return Arrays.asList("create", "resetpassword"); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_announce.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_announce.java index 4abaf2b0..8e216bc1 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_announce.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_announce.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.MOD, source = SourceType.BOTH) @CommandParameters(description = "Make an announcement anonymously to operators.", usage = "/ ") public class Command_announce extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autoclear.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autoclear.java index 66aa34f5..37a74954 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autoclear.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autoclear.java @@ -5,7 +5,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Toggle whether or not a player has their inventory automatically cleared when they join", usage = "/ ") public class Command_autoclear extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autotp.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autotp.java index f52e82b5..5b50a5f5 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autotp.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autotp.java @@ -5,7 +5,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Toggle whether or not a player is automatically teleported when they join", usage = "/ ") public class Command_autotp extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java index 06cb6c0f..163530be 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java @@ -18,7 +18,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH, blockHostConsole = true) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH, blockHostConsole = true) @CommandParameters(description = "Bans the specified player.", usage = "/ [reason] [-nrb | -q]", aliases = "gtfo") public class Command_ban extends FreedomCommand { @@ -151,7 +151,7 @@ public class Command_ban extends FreedomCommand bcast.append(" - Reason: ").append(ChatColor.YELLOW).append(reason); } msg(sender, ChatColor.GRAY + username + " has been banned and IP is: " + StringUtils.join(ips, ", ")); - FUtil.adminAction(sender.getName(), String.format(bcast.toString()), true); + FUtil.staffAction(sender.getName(), String.format(bcast.toString()), true); } // Kick player and handle others on IP diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banip.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banip.java index 272960cc..7a408d2a 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banip.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banip.java @@ -11,7 +11,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH, blockHostConsole = true) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH, blockHostConsole = true) @CommandParameters(description = "Bans the specified ip.", usage = "/ [reason] [-q]") public class Command_banip extends FreedomCommand { @@ -72,7 +72,7 @@ public class Command_banip extends FreedomCommand { // Broadcast FLog.info(ChatColor.RED + sender.getName() + " - Banned the IP " + ip); - String message = ChatColor.RED + sender.getName() + " - Banned " + (plugin.al.isAdmin(player) ? "the IP " + ip : "an IP"); + String message = ChatColor.RED + sender.getName() + " - Banned " + (plugin.sl.isStaff(player) ? "the IP " + ip : "an IP"); player.sendMessage(message); } } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banlist.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banlist.java index b16883a2..366559c5 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banlist.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banlist.java @@ -18,9 +18,9 @@ public class Command_banlist extends FreedomCommand { if (args[0].equalsIgnoreCase("purge")) { - checkRank(Rank.SENIOR_ADMIN); + checkRank(Rank.ADMIN); - FUtil.adminAction(sender.getName(), "Purging the ban list", true); + FUtil.staffAction(sender.getName(), "Purging the ban list", true); int amount = plugin.bm.purge(); msg("Purged " + amount + " player bans."); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banname.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banname.java index 2c6c977d..0d0ccd70 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banname.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banname.java @@ -10,7 +10,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH, blockHostConsole = true) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH, blockHostConsole = true) @CommandParameters(description = "Bans the specified name.", usage = "/ [reason] [-q]") public class Command_banname extends FreedomCommand { @@ -55,7 +55,7 @@ public class Command_banname extends FreedomCommand if (!silent) { - FUtil.adminAction(sender.getName(), "Banned the name " + name, true); + FUtil.staffAction(sender.getName(), "Banned the name " + name, true); } Player player = getPlayer(name); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockcmd.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockcmd.java index 32a42f8f..73c536d9 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockcmd.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockcmd.java @@ -8,7 +8,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Block all commands for everyone on the server, or a specific player.", usage = "/ <-a | purge | >", aliases = "blockcommands,blockcommand,bc,bcmd") public class Command_blockcmd extends FreedomCommand { @@ -23,7 +23,7 @@ public class Command_blockcmd extends FreedomCommand if (args[0].equals("purge")) { - FUtil.adminAction(sender.getName(), "Unblocking commands for all players", true); + FUtil.staffAction(sender.getName(), "Unblocking commands for all players", true); int counter = 0; for (Player player : server.getOnlinePlayers()) { @@ -40,18 +40,18 @@ public class Command_blockcmd extends FreedomCommand if (args[0].equals("-a")) { - FUtil.adminAction(sender.getName(), "Blocking commands for all non-admins", true); + FUtil.staffAction(sender.getName(), "Blocking commands for all non-staff", true); int counter = 0; for (Player player : server.getOnlinePlayers()) { - if (isAdmin(player)) + if (isStaff(player)) { continue; } counter += 1; plugin.pl.getPlayer(player).setCommandsBlocked(true); - msg(player, "Your commands have been blocked by an admin.", ChatColor.RED); + msg(player, "Your commands have been blocked by a staff member.", ChatColor.RED); } msg("Blocked commands for " + counter + " players."); @@ -66,9 +66,9 @@ public class Command_blockcmd extends FreedomCommand return true; } - if (isAdmin(player)) + if (isStaff(player)) { - msg(player.getName() + " is an admin, and cannot have their commands blocked."); + msg(player.getName() + " is a staff member, and cannot have their commands blocked."); return true; } @@ -76,7 +76,7 @@ public class Command_blockcmd extends FreedomCommand if (!playerdata.allCommandsBlocked()) { playerdata.setCommandsBlocked(true); - FUtil.adminAction(sender.getName(), "Blocking all commands for " + player.getName(), true); + FUtil.staffAction(sender.getName(), "Blocking all commands for " + player.getName(), true); msg("Blocked commands for " + player.getName() + "."); } else diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockedit.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockedit.java index 70b9f15d..cc948d7e 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockedit.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockedit.java @@ -10,7 +10,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Restricts/unrestricts block modification abilities for everyone on the server or a certain player.", usage = "/ [[-s] [reason] | list | purge | all]") public class Command_blockedit extends FreedomCommand { @@ -46,7 +46,7 @@ public class Command_blockedit extends FreedomCommand if (args[0].equals("purge")) { - FUtil.adminAction(sender.getName(), "Unblocking block modification abilities for all players.", true); + FUtil.staffAction(sender.getName(), "Unblocking block modification abilities for all players.", true); int count = 0; for (final Player player : this.server.getOnlinePlayers()) { @@ -63,11 +63,11 @@ public class Command_blockedit extends FreedomCommand if (args[0].equals("all")) { - FUtil.adminAction(sender.getName(), "Blocking block modification abilities for all non-admins.", true); + FUtil.staffAction(sender.getName(), "Blocking block modification abilities for all non-staff.", true); int counter = 0; for (final Player player : this.server.getOnlinePlayers()) { - if (!plugin.al.isAdmin(player)) + if (!plugin.sl.isStaff(player)) { final FPlayer playerdata = plugin.pl.getPlayer(player); playerdata.setEditBlocked(true); @@ -105,20 +105,20 @@ public class Command_blockedit extends FreedomCommand final FPlayer pd = plugin.pl.getPlayer(player2); if (pd.isEditBlocked()) { - FUtil.adminAction(sender.getName(), "Unblocking block modification abilities for " + player2.getName(), true); + FUtil.staffAction(sender.getName(), "Unblocking block modification abilities for " + player2.getName(), true); pd.setEditBlocked(false); msg("Unblocking block modification abilities for " + player2.getName()); msg(player2, "Your block modification abilities have been restored.", ChatColor.RED); } else { - if (plugin.al.isAdmin(player2)) + if (plugin.sl.isStaff(player2)) { msg(player2.getName() + " is an admin, and cannot have their block edits blocked."); return true; } - FUtil.adminAction(sender.getName(), "Blocking block modification abilities for " + player2.getName(), true); + FUtil.staffAction(sender.getName(), "Blocking block modification abilities for " + player2.getName(), true); pd.setEditBlocked(true); if (smite) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockpvp.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockpvp.java index d9393dcb..32498376 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockpvp.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockpvp.java @@ -10,7 +10,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Toggle PVP mode for everyone or a certain player.", usage = "/ [[-s] [reason] | list | purge | all]", aliases = "pvpblock,pvpmode") public class Command_blockpvp extends FreedomCommand { @@ -46,7 +46,7 @@ public class Command_blockpvp extends FreedomCommand if (args[0].equals("purge")) { - FUtil.adminAction(sender.getName(), "Enabling PVP for all players.", true); + FUtil.staffAction(sender.getName(), "Enabling PVP for all players.", true); int count = 0; for (Player player : server.getOnlinePlayers()) { @@ -64,11 +64,11 @@ public class Command_blockpvp extends FreedomCommand if (args[0].equals("all")) { - FUtil.adminAction(sender.getName(), "Disabling PVP for all non-admins", true); + FUtil.staffAction(sender.getName(), "Disabling PVP for all non-staff", true); int counter = 0; for (Player player : server.getOnlinePlayers()) { - if (!plugin.al.isAdmin(player)) + if (!plugin.sl.isStaff(player)) { final FPlayer playerdata = plugin.pl.getPlayer(player); playerdata.setPvpBlocked(true); @@ -106,20 +106,20 @@ public class Command_blockpvp extends FreedomCommand final FPlayer pd = plugin.pl.getPlayer(p); if (pd.isPvpBlocked()) { - FUtil.adminAction(sender.getName(), "Enabling PVP for " + p.getName(), true); + FUtil.staffAction(sender.getName(), "Enabling PVP for " + p.getName(), true); pd.setPvpBlocked(false); msg("Enabling PVP for " + p.getName()); msg(p, "Your PVP have been enabled.", ChatColor.GREEN); } else { - if (plugin.al.isAdmin(p)) + if (plugin.sl.isStaff(p)) { msg(p.getName() + " is an admin, and cannot have their PVP disabled."); return true; } - FUtil.adminAction(sender.getName(), "Disabling PVP for " + p.getName(), true); + FUtil.staffAction(sender.getName(), "Disabling PVP for " + p.getName(), true); pd.setPvpBlocked(true); if (smite) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockredstone.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockredstone.java index 312abcce..1dfc7a43 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockredstone.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockredstone.java @@ -8,7 +8,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Blocks redstone on the server.", usage = "/", aliases = "bre") public class Command_blockredstone extends FreedomCommand { @@ -18,14 +18,14 @@ public class Command_blockredstone extends FreedomCommand if (ConfigEntry.ALLOW_REDSTONE.getBoolean()) { ConfigEntry.ALLOW_REDSTONE.setBoolean(false); - FUtil.adminAction(sender.getName(), "Blocking all redstone", true); + FUtil.staffAction(sender.getName(), "Blocking all redstone", true); new BukkitRunnable() { public void run() { if (!ConfigEntry.ALLOW_REDSTONE.getBoolean()) { - FUtil.adminAction("TotalFreedom", "Unblocking all redstone", false); + FUtil.staffAction("TotalFreedom", "Unblocking all redstone", false); ConfigEntry.ALLOW_REDSTONE.setBoolean(true); } } @@ -34,7 +34,7 @@ public class Command_blockredstone extends FreedomCommand else { ConfigEntry.ALLOW_REDSTONE.setBoolean(true); - FUtil.adminAction(sender.getName(), "Unblocking all redstone", true); + FUtil.staffAction(sender.getName(), "Unblocking all redstone", true); } return true; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cage.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cage.java index df4f1eba..95535a5f 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cage.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cage.java @@ -15,7 +15,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Place a cage around someone with certain blocks, or someone's player head.", usage = "/ [head | block] [playername | blockname]") public class Command_cage extends FreedomCommand { @@ -30,7 +30,7 @@ public class Command_cage extends FreedomCommand String skullName = null; if ("purge".equals(args[0])) { - FUtil.adminAction(sender.getName(), "Uncaging all players", true); + FUtil.staffAction(sender.getName(), "Uncaging all players", true); for (Player player : server.getOnlinePlayers()) { final FPlayer fPlayer = plugin.pl.getPlayer(player); @@ -101,11 +101,11 @@ public class Command_cage extends FreedomCommand if (outerMaterial == Material.PLAYER_HEAD) { - FUtil.adminAction(sender.getName(), "Caging " + player.getName() + " in " + skullName, true); + FUtil.staffAction(sender.getName(), "Caging " + player.getName() + " in " + skullName, true); } else { - FUtil.adminAction(sender.getName(), "Caging " + player.getName(), true); + FUtil.staffAction(sender.getName(), "Caging " + player.getName(), true); } return true; } @@ -113,7 +113,7 @@ public class Command_cage extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (!plugin.al.isAdmin(sender)) + if (!plugin.sl.isStaff(sender)) { return null; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cake.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cake.java index 9b38f804..40afd1de 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cake.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cake.java @@ -10,7 +10,7 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.MOD, source = SourceType.BOTH) @CommandParameters(description = "For the people that are still alive - gives a cake to everyone on the server.", usage = "/") public class Command_cake extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cartsit.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cartsit.java index fe66cdd4..722c4a1b 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cartsit.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cartsit.java @@ -16,7 +16,7 @@ public class Command_cartsit extends FreedomCommand { Player targetPlayer = playerSender; - if (args.length == 1 && plugin.al.isAdmin(sender)) + if (args.length == 1 && plugin.sl.isStaff(sender)) { targetPlayer = getPlayer(args[0]); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearchat.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearchat.java index 35ed9dee..f6d590ed 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearchat.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearchat.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Clears the chat.", usage = "/", aliases = "cc") public class Command_clearchat extends FreedomCommand { @@ -16,7 +16,7 @@ public class Command_clearchat extends FreedomCommand { for (Player player : server.getOnlinePlayers()) { - if (!plugin.al.isAdmin(player)) + if (!plugin.sl.isStaff(player)) { for (int i = 0; i < 100; i++) { @@ -24,7 +24,7 @@ public class Command_clearchat extends FreedomCommand } } } - FUtil.adminAction(sender.getName(), "Cleared chat", true); + FUtil.staffAction(sender.getName(), "Cleared chat", true); return true; } } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cleardiscordqueue.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cleardiscordqueue.java index 8346fb70..a9b0b152 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cleardiscordqueue.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cleardiscordqueue.java @@ -5,7 +5,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_CONSOLE) +@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_CONSOLE) @CommandParameters(description = "Clear the discord message queue.", usage = "/") public class Command_cleardiscordqueue extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearinventory.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearinventory.java index f005d52f..e946d2bc 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearinventory.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearinventory.java @@ -29,11 +29,11 @@ public class Command_clearinventory extends FreedomCommand } else { - if (plugin.al.isAdmin(sender)) + if (plugin.sl.isStaff(sender)) { if (args[0].equals("-a")) { - FUtil.adminAction(sender.getName(), "Clearing everyone's inventory", true); + FUtil.staffAction(sender.getName(), "Clearing everyone's inventory", true); for (Player player : server.getOnlinePlayers()) { player.getInventory().clear(); @@ -67,7 +67,7 @@ public class Command_clearinventory extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (args.length == 1 && plugin.al.isAdmin(sender)) + if (args.length == 1 && plugin.sl.isStaff(sender)) { List players = FUtil.getPlayerList(); players.add("-a"); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cmdspy.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cmdspy.java index 6a6a8f8c..c31e1d5b 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cmdspy.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cmdspy.java @@ -1,12 +1,12 @@ package me.totalfreedom.totalfreedommod.command; -import me.totalfreedom.totalfreedommod.admin.Admin; +import me.totalfreedom.totalfreedommod.staff.StaffMember; import me.totalfreedom.totalfreedommod.rank.Rank; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "Spy on commands", usage = "/", aliases = "commandspy") public class Command_cmdspy extends FreedomCommand { @@ -14,11 +14,11 @@ public class Command_cmdspy extends FreedomCommand @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - Admin admin = plugin.al.getAdmin(playerSender); - admin.setCommandSpy(!admin.getCommandSpy()); - msg("CommandSpy " + (admin.getCommandSpy() ? "enabled." : "disabled.")); - plugin.al.save(admin); - plugin.al.updateTables(); + StaffMember staffMember = plugin.sl.getAdmin(playerSender); + staffMember.setCommandSpy(!staffMember.getCommandSpy()); + msg("CommandSpy " + (staffMember.getCommandSpy() ? "enabled." : "disabled.")); + plugin.sl.save(staffMember); + plugin.sl.updateTables(); return true; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_consolesay.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_consolesay.java index 745e20ed..6193e32c 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_consolesay.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_consolesay.java @@ -8,7 +8,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_CONSOLE) +@CommandPermissions(level = Rank.MOD, source = SourceType.ONLY_CONSOLE) @CommandParameters(description = "Telnet/Console command - Send a chat message with chat formatting over telnet.", usage = "/ ", aliases = "csay") public class Command_consolesay extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cookie.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cookie.java index 764981f4..aec2d717 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cookie.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cookie.java @@ -11,7 +11,7 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.MOD, source = SourceType.BOTH) @CommandParameters(description = "For those who have no friends - gives a cookie to everyone on the server.", usage = "/") public class Command_cookie extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_creative.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_creative.java index c81edfab..92bf02ee 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_creative.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_creative.java @@ -28,7 +28,7 @@ public class Command_creative extends FreedomCommand return true; } - checkRank(Rank.SUPER_ADMIN); + checkRank(Rank.TRIAL_MOD); if (args[0].equals("-a")) { @@ -37,7 +37,7 @@ public class Command_creative extends FreedomCommand targetPlayer.setGameMode(GameMode.CREATIVE); } - FUtil.adminAction(sender.getName(), "Changing everyone's gamemode to creative", false); + FUtil.staffAction(sender.getName(), "Changing everyone's gamemode to creative", false); msg("Your gamemode has been set to creative."); return true; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_curse.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_curse.java index c17b9eea..85f81ac6 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_curse.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_curse.java @@ -9,7 +9,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "Curse someone - sends a cursed texture pack to the specified player.", usage = "/ ") public class Command_curse extends FreedomCommand { @@ -57,7 +57,7 @@ public class Command_curse extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (args.length == 1 && plugin.al.isAdmin(sender) && FUtil.isExecutive(sender.getName())) + if (args.length == 1 && plugin.sl.isStaff(sender) && FUtil.isExecutive(sender.getName())) { return FUtil.getPlayerList(); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_denick.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_denick.java index a03aacb0..cd395cfa 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_denick.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_denick.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Essentials Interface Command - Remove the nickname of all players on the server.", usage = "/") public class Command_denick extends FreedomCommand { @@ -20,7 +20,7 @@ public class Command_denick extends FreedomCommand return true; } - FUtil.adminAction(sender.getName(), "Removing all nicknames", false); + FUtil.staffAction(sender.getName(), "Removing all nicknames", false); for (Player player : server.getOnlinePlayers()) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java index 56d7e129..0b989867 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java @@ -9,7 +9,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Deop a player", usage = "/ ") public class Command_deop extends FreedomCommand { @@ -35,7 +35,7 @@ public class Command_deop extends FreedomCommand if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName().toLowerCase().contains(targetName) || player.getName().contains(targetName) || player.getDisplayName().contains(targetName)) { - if (player.isOp() && !plugin.al.isVanished(player)) + if (player.isOp() && !plugin.sl.isVanished(player)) { matchedPlayerNames.add(player.getName()); player.setOp(false); @@ -48,7 +48,7 @@ public class Command_deop extends FreedomCommand { if (!silent) { - FUtil.adminAction(sender.getName(), "De-opping " + StringUtils.join(matchedPlayerNames, ", "), false); + FUtil.staffAction(sender.getName(), "De-opping " + StringUtils.join(matchedPlayerNames, ", "), false); } } else diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deopall.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deopall.java index 1eb990cf..b0eedd51 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deopall.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deopall.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH, blockHostConsole = true) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH, blockHostConsole = true) @CommandParameters(description = "Deop everyone on the server.", usage = "/") public class Command_deopall extends FreedomCommand { @@ -14,7 +14,7 @@ public class Command_deopall extends FreedomCommand @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - FUtil.adminAction(sender.getName(), "De-opping all players on the server", true); + FUtil.staffAction(sender.getName(), "De-opping all players on the server", true); for (Player player : server.getOnlinePlayers()) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_disguisetoggle.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_disguisetoggle.java index 64121cf0..ff6ac8d1 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_disguisetoggle.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_disguisetoggle.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Toggle LibsDisguises for everyone online.", usage = "/", aliases = "dtoggle") public class Command_disguisetoggle extends FreedomCommand { @@ -20,7 +20,7 @@ public class Command_disguisetoggle extends FreedomCommand return true; } - FUtil.adminAction(sender.getName(), (plugin.ldb.isDisguisesEnabled() ? "Disabling" : "Enabling") + " disguises", false); + FUtil.staffAction(sender.getName(), (plugin.ldb.isDisguisesEnabled() ? "Disabling" : "Enabling") + " disguises", false); if (plugin.ldb.isDisguisesEnabled()) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_donator.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_donator.java index 50ec5bc2..a0100491 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_donator.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_donator.java @@ -13,7 +13,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_CONSOLE) +@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_CONSOLE) @CommandParameters(description = "Adds or removes donators", usage = "/ [forum_user]") public class Command_donator extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_doom.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_doom.java index 2cf8579c..b9b06cae 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_doom.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_doom.java @@ -1,6 +1,6 @@ package me.totalfreedom.totalfreedommod.command; -import me.totalfreedom.totalfreedommod.admin.Admin; +import me.totalfreedom.totalfreedommod.staff.StaffMember; import me.totalfreedom.totalfreedommod.banning.Ban; import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.punishments.Punishment; @@ -17,7 +17,7 @@ import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.util.Vector; -@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_CONSOLE, blockHostConsole = true) +@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_CONSOLE, blockHostConsole = true) @CommandParameters(description = "Sends the specified player to their doom.", usage = "/ [reason]") public class Command_doom extends FreedomCommand { @@ -38,23 +38,23 @@ public class Command_doom extends FreedomCommand return true; } - FUtil.adminAction(sender.getName(), "Casting oblivion over " + player.getName(), true); + FUtil.staffAction(sender.getName(), "Casting oblivion over " + player.getName(), true); FUtil.bcastMsg(player.getName() + " will be completely obliviated!", ChatColor.RED); final String ip = player.getAddress().getAddress().getHostAddress().trim(); // Remove from admin - Admin admin = getAdmin(player); - if (admin != null) + StaffMember staffMember = getAdmin(player); + if (staffMember != null) { - FUtil.adminAction(sender.getName(), "Removing " + player.getName() + " from the admin list", true); - admin.setActive(false); - plugin.al.save(admin); - plugin.al.updateTables(); - plugin.amp.updateAccountStatus(admin); + FUtil.staffAction(sender.getName(), "Removing " + player.getName() + " from the staff list", true); + staffMember.setActive(false); + plugin.sl.save(staffMember); + plugin.sl.updateTables(); + plugin.amp.updateAccountStatus(staffMember); if (plugin.dc.enabled && ConfigEntry.DISCORD_ROLE_SYNC.getBoolean()) { - plugin.dc.syncRoles(admin, plugin.pl.getData(admin.getName()).getDiscordID()); + plugin.dc.syncRoles(staffMember, plugin.pl.getData(staffMember.getName()).getDiscordID()); } } @@ -120,7 +120,7 @@ public class Command_doom extends FreedomCommand public void run() { // message - FUtil.adminAction(sender.getName(), "Banning " + player.getName(), true); + FUtil.staffAction(sender.getName(), "Banning " + player.getName(), true); msg(sender, player.getName() + " has been banned and IP is: " + ip); // generate explosion diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_entitywipe.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_entitywipe.java index e82b27c1..47333c69 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_entitywipe.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_entitywipe.java @@ -12,7 +12,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Remove various server entities that may cause lag, such as dropped items, minecarts, and boats.", usage = "/ [name | -a]", aliases = "ew,rd") public class Command_entitywipe extends FreedomCommand { @@ -54,7 +54,7 @@ public class Command_entitywipe extends FreedomCommand entityName = FUtil.formatName(type.name()); } - FUtil.adminAction(sender.getName(), "Purging all " + (type != null ? entityName + "s" : "entities"), true); + FUtil.staffAction(sender.getName(), "Purging all " + (type != null ? entityName + "s" : "entities"), true); int count; if (type != null) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_expel.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_expel.java index e1c9c279..13ab38c8 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_expel.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_expel.java @@ -11,7 +11,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.util.Vector; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "Push people away from you.", usage = "/ [radius] [strength]") public class Command_expel extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explode.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explode.java index ef4068b1..372016da 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explode.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explode.java @@ -10,7 +10,7 @@ import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.util.Vector; -@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Surprise someone.", usage = "/ ") public class Command_explode extends FreedomCommand { @@ -58,7 +58,7 @@ public class Command_explode extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (args.length == 1 && plugin.al.isAdmin(sender)) + if (args.length == 1 && plugin.sl.isStaff(sender)) { return FUtil.getPlayerList(); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explosivearrows.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explosivearrows.java index 62aa0f8d..4f21376a 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explosivearrows.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explosivearrows.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.MOD, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "Make arrows explode", usage = "/", aliases = "ea") public class Command_explosivearrows extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_findip.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_findip.java index b374f569..300d136e 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_findip.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_findip.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Shows all IPs registered to a player", usage = "/ ", aliases = "showip,listip") public class Command_findip extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_forcekill.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_forcekill.java index 4877457f..a7c4d1ce 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_forcekill.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_forcekill.java @@ -13,7 +13,7 @@ public class Command_forcekill extends FreedomCommand @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (!plugin.al.isAdmin(sender) && !senderIsConsole) + if (!plugin.sl.isMod(sender) && !senderIsConsole) { playerSender.setHealth(0); return true; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_freeze.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_freeze.java index 8c50aec3..c0405010 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_freeze.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_freeze.java @@ -8,7 +8,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Freeze/Unfreeze a specified player, or all non-admins on the server.", usage = "/ [target | purge]", aliases = "fr") public class Command_freeze extends FreedomCommand { @@ -23,15 +23,15 @@ public class Command_freeze extends FreedomCommand if (!gFreeze) { - FUtil.adminAction(sender.getName(), "Disabling global player freeze", false); + FUtil.staffAction(sender.getName(), "Disabling global player freeze", false); msg("Players are now free to move."); return true; } - FUtil.adminAction(sender.getName(), "Enabling global player freeze", false); + FUtil.staffAction(sender.getName(), "Enabling global player freeze", false); for (Player player : server.getOnlinePlayers()) { - if (!isAdmin(player)) + if (!isStaff(player)) { player.sendTitle(ChatColor.RED + "You've been globally frozen.", ChatColor.YELLOW + "Please be patient and you will be unfrozen shortly.", 20, 100, 60); msg(player, "You have been globally frozen due to an OP breaking the rules, please wait and you will be unfrozen soon.", ChatColor.RED); @@ -44,10 +44,10 @@ public class Command_freeze extends FreedomCommand if (args[0].equals("purge")) { - FUtil.adminAction(sender.getName(), "Unfreezing all players", false); + FUtil.staffAction(sender.getName(), "Unfreezing all players", false); for (Player player : server.getOnlinePlayers()) { - if (!isAdmin(player)) + if (!isStaff(player)) { player.sendTitle(ChatColor.GREEN + "You've been unfrozen.", ChatColor.YELLOW + "You may now move again.", 20, 100, 60); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_fuckoff.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_fuckoff.java index ab5cb382..e1cf22e2 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_fuckoff.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_fuckoff.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "You'll never even see it coming - repeatedly push players away from you until command is untoggled.", usage = "/ ") public class Command_fuckoff extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_health.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_health.java index f17867b8..617c7d2c 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_health.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_health.java @@ -13,7 +13,7 @@ import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitTask; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "View server health, such as ticks-per-second, memory, etc.", usage = "/") public class Command_health extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_hubworld.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_hubworld.java index 4e9eff37..97ab3f3f 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_hubworld.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_hubworld.java @@ -152,7 +152,7 @@ public class Command_hubworld extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (!plugin.al.isAdmin(sender)) + if (!plugin.sl.isStaff(sender)) { return Collections.emptyList(); } @@ -177,7 +177,7 @@ public class Command_hubworld extends FreedomCommand // TODO: Redo this properly private void assertCommandPerms(CommandSender sender, Player playerSender) throws PermissionDeniedException { - if (!(sender instanceof Player) || playerSender == null || !plugin.al.isSeniorAdmin(playerSender)) + if (!(sender instanceof Player) || playerSender == null || !plugin.sl.isAdmin(playerSender)) { throw new PermissionDeniedException(); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_indefban.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_indefban.java index 32f5f1bb..e645bbd3 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_indefban.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_indefban.java @@ -5,7 +5,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_CONSOLE) +@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_CONSOLE) @CommandParameters(description = "Reload the indefinite ban list.", usage = "/ reload", aliases = "ib") public class Command_indefban extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invis.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invis.java index 1dc749d4..b1e4a8a9 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invis.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invis.java @@ -26,11 +26,11 @@ public class Command_invis extends FreedomCommand { if (args[0].equalsIgnoreCase("clear")) { - if(!plugin.al.isAdmin(sender)) + if(!plugin.sl.isStaff(sender)) return noPerms(); else { - FUtil.adminAction(sender.getName(), "Clearing all invisibility potion effects from all players", true); + FUtil.staffAction(sender.getName(), "Clearing all invisibility potion effects from all players", true); clear = true; } } @@ -43,10 +43,10 @@ public class Command_invis extends FreedomCommand for (Player player : server.getOnlinePlayers()) { - if (player.hasPotionEffect(PotionEffectType.INVISIBILITY) && !plugin.al.isVanished(player)) + if (player.hasPotionEffect(PotionEffectType.INVISIBILITY) && !plugin.sl.isVanished(player)) { players.add(player.getName()); - if (clear && !plugin.al.isAdmin(player)) + if (clear && !plugin.sl.isStaff(player)) { player.removePotionEffect((PotionEffectType.INVISIBILITY)); clears++; @@ -71,7 +71,7 @@ public class Command_invis extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (args.length == 1 && plugin.al.isAdmin(sender)) + if (args.length == 1 && plugin.sl.isStaff(sender)) return Arrays.asList("clear"); return Collections.emptyList(); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invsee.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invsee.java index 68f31b62..d4d06ea1 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invsee.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invsee.java @@ -35,7 +35,7 @@ public class Command_invsee extends FreedomCommand return true; } - if (plugin.al.isAdmin(player) && !plugin.al.isAdmin(playerSender)) + if (plugin.sl.isStaff(player) && !plugin.sl.isStaff(playerSender)) { msg("You cannot spy on administrators."); return true; @@ -44,7 +44,7 @@ public class Command_invsee extends FreedomCommand Inventory inv; - if (plugin.al.isAdmin(player)) + if (plugin.sl.isStaff(player)) { if (args.length > 1) { @@ -75,7 +75,7 @@ public class Command_invsee extends FreedomCommand return true; } - if (!plugin.al.isAdmin(player)) + if (!plugin.sl.isStaff(player)) { if (args.length > 1) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_jumppads.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_jumppads.java index 604ce9be..1ec12b73 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_jumppads.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_jumppads.java @@ -95,7 +95,7 @@ public class Command_jumppads extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (!plugin.al.isAdmin(sender)) + if (!plugin.sl.isStaff(sender)) { return Collections.emptyList(); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kick.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kick.java index c18f503b..1c575ce0 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kick.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kick.java @@ -12,7 +12,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Kick the specified player.", usage = "/ [reason] [-q]") public class Command_kick extends FreedomCommand { @@ -65,11 +65,11 @@ public class Command_kick extends FreedomCommand { if (reason != null) { - FUtil.adminAction(sender.getName(), "Kicking " + player.getName() + " - Reason: " + reason, true); + FUtil.staffAction(sender.getName(), "Kicking " + player.getName() + " - Reason: " + reason, true); } else { - FUtil.adminAction(sender.getName(), "Kicking " + player.getName(), true); + FUtil.staffAction(sender.getName(), "Kicking " + player.getName(), true); } } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kicknoob.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kicknoob.java index b8b8c810..ce1ce71d 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kicknoob.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kicknoob.java @@ -7,21 +7,21 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TELNET_ADMIN, source = SourceType.BOTH) -@CommandParameters(description = "Kick all non-admins on server.", usage = "/", aliases = "kickall") +@CommandPermissions(level = Rank.MOD, source = SourceType.BOTH) +@CommandParameters(description = "Kick all non-staff on server.", usage = "/", aliases = "kickall") public class Command_kicknoob extends FreedomCommand { @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - FUtil.adminAction(sender.getName(), "Disconnecting all non-admins.", true); + FUtil.staffAction(sender.getName(), "Disconnecting all non-staff.", true); for (Player player : server.getOnlinePlayers()) { - if (!plugin.al.isAdmin(player)) + if (!plugin.sl.isStaff(player)) { - player.kickPlayer(ChatColor.RED + "All non-admins were kicked by " + sender.getName() + "."); + player.kickPlayer(ChatColor.RED + "All non-staff were kicked by " + sender.getName() + "."); } } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lastcmd.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lastcmd.java index 34600c1a..f0f4343f 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lastcmd.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lastcmd.java @@ -7,7 +7,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Show the last command the specified player used.", usage = "/ ") public class Command_lastcmd extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkdiscord.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkdiscord.java index a6510fc0..94dca915 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkdiscord.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkdiscord.java @@ -22,7 +22,7 @@ public class Command_linkdiscord extends FreedomCommand return true; } - if (args.length > 1 && plugin.al.isAdmin(playerSender)) + if (args.length > 1 && plugin.sl.isStaff(playerSender)) { PlayerData playerData = plugin.pl.getData(args[0]); if (playerData == null) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java index a3ab50d4..f6fcc6b5 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java @@ -3,7 +3,7 @@ package me.totalfreedom.totalfreedommod.command; import de.myzelyam.api.vanish.VanishAPI; import java.util.ArrayList; import java.util.List; -import me.totalfreedom.totalfreedommod.admin.Admin; +import me.totalfreedom.totalfreedommod.staff.StaffMember; import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.rank.Displayable; import me.totalfreedom.totalfreedommod.rank.Rank; @@ -15,7 +15,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @CommandPermissions(level = Rank.IMPOSTOR, source = SourceType.BOTH) -@CommandParameters(description = "Lists the real names of all online players.", usage = "/ [-a | -i | -f | -v]", aliases = "who,lsit") +@CommandParameters(description = "Lists the real names of all online players.", usage = "/ [-s | -i | -f | -v]", aliases = "who,lsit") public class Command_list extends FreedomCommand { @@ -41,20 +41,20 @@ public class Command_list extends FreedomCommand String s = args[0]; switch (s) { - case "-a": + case "-s": { - listFilter = ListFilter.ADMINS; + listFilter = ListFilter.STAFF; break; } case "-v": { - checkRank(Rank.SUPER_ADMIN); - listFilter = ListFilter.VANISHED_ADMINS; + checkRank(Rank.TRIAL_MOD); + listFilter = ListFilter.VANISHED_STAFF; break; } case "-t": { - checkRank(Rank.TELNET_ADMIN); + checkRank(Rank.MOD); listFilter = ListFilter.TELNET_SESSIONS; break; } @@ -83,15 +83,15 @@ public class Command_list extends FreedomCommand List n = new ArrayList<>(); - if (listFilter == ListFilter.TELNET_SESSIONS && plugin.al.isAdmin(sender) && plugin.al.getAdmin(sender).getRank().isAtLeast(Rank.TELNET_ADMIN)) + if (listFilter == ListFilter.TELNET_SESSIONS && plugin.sl.isStaff(sender) && plugin.sl.getAdmin(sender).getRank().isAtLeast(Rank.MOD)) { - List connectedAdmins = plugin.btb.getConnectedAdmins(); - onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(connectedAdmins.size()) + List connectedStaffMembers = plugin.btb.getConnectedAdmins(); + onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(connectedStaffMembers.size()) .append(ChatColor.BLUE) - .append(" admins connected to telnet."); - for (Admin admin : connectedAdmins) + .append(" staff connected to telnet."); + for (StaffMember staffMember : connectedStaffMembers) { - n.add(plugin.rm.getDisplay(admin).getColoredTag() + admin.getName()); + n.add(plugin.rm.getDisplay(staffMember).getColoredTag() + staffMember.getName()); } } else @@ -105,19 +105,19 @@ public class Command_list extends FreedomCommand .append(" players online."); for (Player p : server.getOnlinePlayers()) { - if (listFilter == ListFilter.ADMINS && !plugin.al.isAdmin(p)) + if (listFilter == ListFilter.STAFF && !plugin.sl.isStaff(p)) { continue; } - if (listFilter == ListFilter.ADMINS && plugin.al.isVanished(p)) + if (listFilter == ListFilter.STAFF && plugin.sl.isVanished(p)) { continue; } - if (listFilter == ListFilter.VANISHED_ADMINS && !plugin.al.isVanished(p)) + if (listFilter == ListFilter.VANISHED_STAFF && !plugin.sl.isVanished(p)) { continue; } - if (listFilter == ListFilter.IMPOSTORS && !plugin.al.isAdminImpostor(p)) + if (listFilter == ListFilter.IMPOSTORS && !plugin.sl.isAdminImpostor(p)) { continue; } @@ -125,20 +125,13 @@ public class Command_list extends FreedomCommand { continue; } - if (listFilter == ListFilter.PLAYERS && plugin.al.isVanished(p)) + if (listFilter == ListFilter.PLAYERS && plugin.sl.isVanished(p)) { continue; } final Displayable display = plugin.rm.getDisplay(p); - if (!senderIsConsole && plugin.al.isAdmin(playerSender) && plugin.al.getAdmin(playerSender).getOldTags()) - { - n.add(getOldPrefix(display) + p.getName()); - } - else - { - n.add(display.getColoredTag() + p.getName()); - } + n.add(display.getColoredTag() + p.getName()); } } String playerType = listFilter.toString().toLowerCase().replace('_', ' '); @@ -162,29 +155,12 @@ public class Command_list extends FreedomCommand return true; } - public String getOldPrefix(Displayable display) - { - ChatColor color = display.getColor(); - - if (color.equals(ChatColor.AQUA)) - { - color = ChatColor.GOLD; - } - else if (color.equals(ChatColor.GOLD)) - { - color = ChatColor.LIGHT_PURPLE; - } - - String prefix = "[" + display.getAbbr() + "]"; - - return color + prefix; - } private enum ListFilter { PLAYERS, - ADMINS, - VANISHED_ADMINS, + STAFF, + VANISHED_STAFF, TELNET_SESSIONS, FAMOUS_PLAYERS, IMPOSTORS diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lockup.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lockup.java index 92222b16..4d3d4fb8 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lockup.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lockup.java @@ -9,7 +9,7 @@ import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitTask; -@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.BOTH, blockHostConsole = true) +@CommandPermissions(level = Rank.ADMIN, source = SourceType.BOTH, blockHostConsole = true) @CommandParameters(description = "This is evil, and I never should have wrote it - blocks specified player's input.", usage = "/ on | off> [-q]>") public class Command_lockup extends FreedomCommand { @@ -22,7 +22,7 @@ public class Command_lockup extends FreedomCommand { if (args[0].equalsIgnoreCase("all")) { - FUtil.adminAction(sender.getName(), "Locking up all players", true); + FUtil.staffAction(sender.getName(), "Locking up all players", true); for (Player player : server.getOnlinePlayers()) { @@ -32,7 +32,7 @@ public class Command_lockup extends FreedomCommand } else if (args[0].equalsIgnoreCase("purge")) { - FUtil.adminAction(sender.getName(), "Unlocking all players", true); + FUtil.staffAction(sender.getName(), "Unlocking all players", true); for (Player player : server.getOnlinePlayers()) { cancelLockup(player); @@ -59,7 +59,7 @@ public class Command_lockup extends FreedomCommand if (!silent) { - FUtil.adminAction(sender.getName(), "Locking up " + player.getName(), true); + FUtil.staffAction(sender.getName(), "Locking up " + player.getName(), true); } startLockup(player); msg("Locked up " + player.getName() + "."); @@ -76,7 +76,7 @@ public class Command_lockup extends FreedomCommand if (!silent) { - FUtil.adminAction(sender.getName(), "Unlocking " + player.getName(), true); + FUtil.staffAction(sender.getName(), "Unlocking " + player.getName(), true); } cancelLockup(player); msg("Unlocked " + player.getName() + "."); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_logs.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_logs.java index 5fae0ac8..190245b5 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_logs.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_logs.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "Register your connection with the TFM logviewer.", usage = "/ [off]") public class Command_logs extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_makeopregion.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_makeopregion.java index e61f8642..a1e64b00 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_makeopregion.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_makeopregion.java @@ -19,7 +19,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "Make a WorldGuard region for an OP.", usage = "/ ", aliases = "mor") public class Command_makeopregion extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manageshop.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manageshop.java index de71f1dd..30ea0d05 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manageshop.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manageshop.java @@ -10,7 +10,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_CONSOLE) +@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_CONSOLE) @CommandParameters(description = "Manage the shop", usage = "/ | items: ", aliases = "ms") public class Command_manageshop extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manuallyverify.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manuallyverify.java index 8141e729..6c875b0a 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manuallyverify.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manuallyverify.java @@ -7,7 +7,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Manually verify someone", usage = "/ ", aliases="mv") public class Command_manuallyverify extends FreedomCommand { @@ -39,7 +39,7 @@ public class Command_manuallyverify extends FreedomCommand return true; } - FUtil.adminAction(sender.getName(), "Manually verifying player " + player.getName(), false); + FUtil.staffAction(sender.getName(), "Manually verifying player " + player.getName(), false); player.setOp(true); player.sendMessage(YOU_ARE_OP); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_massmurder.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_massmurder.java index e5ed5857..bfa587b7 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_massmurder.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_massmurder.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.ADMIN, source = SourceType.BOTH) @CommandParameters(description = "seth's personal command", usage = "/ ", aliases = "genocide") public class Command_massmurder extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_masterbuilderworld.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_masterbuilderworld.java index b368a18b..1ee29f31 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_masterbuilderworld.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_masterbuilderworld.java @@ -152,7 +152,7 @@ public class Command_masterbuilderworld extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (!plugin.al.isAdmin(sender)) + if (!plugin.sl.isStaff(sender)) { return Collections.emptyList(); } @@ -177,7 +177,7 @@ public class Command_masterbuilderworld extends FreedomCommand // TODO: Redo this properly private void assertCommandPerms(CommandSender sender, Player playerSender) throws PermissionDeniedException { - if (!(sender instanceof Player) || playerSender == null || !plugin.al.isSeniorAdmin(playerSender)) + if (!(sender instanceof Player) || playerSender == null || !plugin.sl.isAdmin(playerSender)) { throw new PermissionDeniedException(); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mbconfig.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mbconfig.java index cbc0e349..7cbc0297 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mbconfig.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mbconfig.java @@ -65,7 +65,7 @@ public class Command_mbconfig extends FreedomCommand if (data.isMasterBuilder() && plugin.pl.isPlayerImpostor(player)) { - FUtil.adminAction(sender.getName(), "Re-adding " + player.getName() + " to the Master Builder list", true); + FUtil.staffAction(sender.getName(), "Re-adding " + player.getName() + " to the Master Builder list", true); player.setOp(true); player.sendMessage(YOU_ARE_OP); @@ -79,7 +79,7 @@ public class Command_mbconfig extends FreedomCommand } else if (!data.isMasterBuilder()) { - FUtil.adminAction(sender.getName(), "Adding " + player.getName() + " to the Master Builder list", true); + FUtil.staffAction(sender.getName(), "Adding " + player.getName() + " to the Master Builder list", true); data.setMasterBuilder(true); data.setVerification(true); plugin.pl.save(data); @@ -113,7 +113,7 @@ public class Command_mbconfig extends FreedomCommand return true; } - FUtil.adminAction(sender.getName(), "Removing " + data.getName() + " from the Master Builder list", true); + FUtil.staffAction(sender.getName(), "Removing " + data.getName() + " from the Master Builder list", true); data.setMasterBuilder(false); if (data.getDiscordID() == null) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_moblimiter.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_moblimiter.java index 2f3d1e94..05454acd 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_moblimiter.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_moblimiter.java @@ -7,7 +7,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Control mob limiting parameters.", usage = "/ |dragon|giant|ghast|slime>") public class Command_moblimiter extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mobpurge.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mobpurge.java index e6797d8e..cb7bcf9c 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mobpurge.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mobpurge.java @@ -12,7 +12,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Purge all mobs in all worlds.", usage = "/ [name]", aliases = "mp") public class Command_mobpurge extends FreedomCommand { @@ -46,7 +46,7 @@ public class Command_mobpurge extends FreedomCommand mobName = FUtil.formatName(type.name()); } - FUtil.adminAction(sender.getName(), "Purging all " + (type != null ? mobName + "s" : "mobs"), true); + FUtil.staffAction(sender.getName(), "Purging all " + (type != null ? mobName + "s" : "mobs"), true); int count = plugin.ew.purgeMobs(type); msg(count + " " + (type != null ? mobName : "mob") + FUtil.showS(count) + " removed."); return true; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mute.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mute.java index 538ff60e..52f23767 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mute.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mute.java @@ -16,7 +16,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Mutes a player with brute force.", usage = "/ <[-s | -q] [reason] | list | purge | all>", aliases = "stfu") public class Command_mute extends FreedomCommand { @@ -53,7 +53,7 @@ public class Command_mute extends FreedomCommand if (args[0].equals("purge")) { - FUtil.adminAction(sender.getName(), "Unmuting all players.", true); + FUtil.staffAction(sender.getName(), "Unmuting all players.", true); FPlayer info; int count = 0; for (Player mp : server.getOnlinePlayers()) @@ -73,13 +73,13 @@ public class Command_mute extends FreedomCommand if (args[0].equals("all")) { - FUtil.adminAction(sender.getName(), "Muting all non-admins", true); + FUtil.staffAction(sender.getName(), "Muting all non-admins", true); FPlayer playerdata; int counter = 0; for (Player player : server.getOnlinePlayers()) { - if (!plugin.al.isAdmin(player)) + if (!plugin.sl.isStaff(player)) { player.sendTitle(ChatColor.RED + "You've been muted globally.", ChatColor.YELLOW + "Please be patient and you will be unmuted shortly.", 20, 100, 60); playerdata = plugin.pl.getPlayer(player); @@ -120,7 +120,7 @@ public class Command_mute extends FreedomCommand } FPlayer playerdata = plugin.pl.getPlayer(player); - if (plugin.al.isAdmin(player)) + if (plugin.sl.isStaff(player)) { msg(player.getName() + " is an admin, and can't be muted."); return true; @@ -140,7 +140,7 @@ public class Command_mute extends FreedomCommand return true; } - FUtil.adminAction(sender.getName(), "Muting " + player.getName(), true); + FUtil.staffAction(sender.getName(), "Muting " + player.getName(), true); if (smite) { @@ -163,7 +163,7 @@ public class Command_mute extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (!plugin.al.isAdmin(sender)) + if (!plugin.sl.isStaff(sender)) { return null; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_myadmin.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mystaff.java similarity index 76% rename from src/main/java/me/totalfreedom/totalfreedommod/command/Command_myadmin.java rename to src/main/java/me/totalfreedom/totalfreedommod/command/Command_mystaff.java index b1e4cef0..e9c70f43 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_myadmin.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mystaff.java @@ -4,7 +4,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; -import me.totalfreedom.totalfreedommod.admin.Admin; +import me.totalfreedom.totalfreedommod.staff.StaffMember; import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.player.PlayerData; import me.totalfreedom.totalfreedommod.rank.Rank; @@ -15,9 +15,9 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) -@CommandParameters(description = "Manage your admin entry.", usage = "/ [-o ] | setlogin | clearlogin | setacformat | clearacformat> | oldtags | logstick | syncroles>") -public class Command_myadmin extends FreedomCommand +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME) +@CommandParameters(description = "Manage your staff entry.", usage = "/ [-o ] | setlogin | clearlogin | setacformat | clearacformat> | oldtags | logstick | syncroles>") +public class Command_mystaff extends FreedomCommand { @Override @@ -29,13 +29,13 @@ public class Command_myadmin extends FreedomCommand } Player init = null; - Admin target = getAdmin(playerSender); + StaffMember target = getAdmin(playerSender); Player targetPlayer = playerSender; // -o switch if (args[0].equals("-o")) { - checkRank(Rank.SENIOR_ADMIN); + checkRank(Rank.ADMIN); init = playerSender; targetPlayer = getPlayer(args[1]); if (targetPlayer == null) @@ -47,7 +47,7 @@ public class Command_myadmin extends FreedomCommand target = getAdmin(targetPlayer); if (target == null) { - msg("That player is not an admin", ChatColor.RED); + msg("That player is not a staff member", ChatColor.RED); return true; } @@ -72,19 +72,19 @@ public class Command_myadmin extends FreedomCommand if (init == null) { - FUtil.adminAction(sender.getName(), "Clearing my supered IPs", true); + FUtil.staffAction(sender.getName(), "Clearing my IPs", true); } else { - FUtil.adminAction(sender.getName(), "Clearing " + target.getName() + "' supered IPs", true); + FUtil.staffAction(sender.getName(), "Clearing " + target.getName() + "' IPs", true); } int counter = target.getIps().size() - 1; target.clearIPs(); target.addIp(targetIp); - plugin.al.save(target); - plugin.al.updateTables(); + plugin.sl.save(target); + plugin.sl.updateTables(); plugin.pl.syncIps(target); @@ -121,16 +121,16 @@ public class Command_myadmin extends FreedomCommand } else { - msg("You cannot remove that admin's current IP."); + msg("You cannot remove that staff members's current IP."); } return true; } - FUtil.adminAction(sender.getName(), "Removing a supered IP" + (init == null ? "" : " from " + targetPlayer.getName() + "'s IPs"), true); + FUtil.staffAction(sender.getName(), "Removing an IP" + (init == null ? "" : " from " + targetPlayer.getName() + "'s IPs"), true); target.removeIp(args[1]); - plugin.al.save(target); - plugin.al.updateTables(); + plugin.sl.save(target); + plugin.sl.updateTables(); plugin.pl.syncIps(target); @@ -141,6 +141,7 @@ public class Command_myadmin extends FreedomCommand case "setlogin": { + checkRank(Rank.MOD); if (args.length < 2) { return false; @@ -158,50 +159,43 @@ public class Command_myadmin extends FreedomCommand msg("Your login message cannot be more than 100 characters (excluding your rank and your name)", ChatColor.RED); return true; } - FUtil.adminAction(sender.getName(), "Setting personal login message" + (init == null ? "" : " for " + targetPlayer.getName()), false); + FUtil.staffAction(sender.getName(), "Setting personal login message" + (init == null ? "" : " for " + targetPlayer.getName()), false); target.setLoginMessage(message); String previewMessage = plugin.rm.craftLoginMessage(targetPlayer, message); msg((init == null ? "Your" : targetPlayer.getName() + "'s") + " login message is now: "); msg("> " + previewMessage); - plugin.al.save(target); - plugin.al.updateTables(); + plugin.sl.save(target); + plugin.sl.updateTables(); return true; } case "clearlogin": { - FUtil.adminAction(sender.getName(), "Clearing personal login message" + (init == null ? "" : " for " + targetPlayer.getName()), false); + checkRank(Rank.MOD); + FUtil.staffAction(sender.getName(), "Clearing personal login message" + (init == null ? "" : " for " + targetPlayer.getName()), false); target.setLoginMessage(null); - plugin.al.save(target); - plugin.al.updateTables(); + plugin.sl.save(target); + plugin.sl.updateTables(); return true; } - case "setacformat": + case "setscformat": { String format = StringUtils.join(args, " ", 1, args.length); target.setAcFormat(format); - plugin.al.save(target); - plugin.al.updateTables(); - msg("Set admin chat format to \"" + format + "\".", ChatColor.GRAY); - String example = format.replace("%name%", "ExampleAdmin").replace("%rank%", Rank.TELNET_ADMIN.getAbbr()).replace("%rankcolor%", Rank.TELNET_ADMIN.getColor().toString()).replace("%msg%", "The quick brown fox jumps over the lazy dog."); + plugin.sl.save(target); + plugin.sl.updateTables(); + msg("Set staff chat format to \"" + format + "\".", ChatColor.GRAY); + String example = format.replace("%name%", "ExampleStaff").replace("%rank%", Rank.MOD.getAbbr()).replace("%rankcolor%", Rank.MOD.getColor().toString()).replace("%msg%", "The quick brown fox jumps over the lazy dog."); msg(ChatColor.GRAY + "Example: " + FUtil.colorize(example)); return true; } - case "clearacformat": + case "clearscformat": { target.setAcFormat(null); - plugin.al.save(target); - plugin.al.updateTables(); - msg("Cleared admin chat format.", ChatColor.GRAY); - return true; - } - case "oldtags": - { - target.setOldTags(!target.getOldTags()); - plugin.al.save(target); - plugin.al.updateTables(); - msg((target.getOldTags() ? "Enabled" : "Disabled") + " old tags."); + plugin.sl.save(target); + plugin.sl.updateTables(); + msg("Cleared staff chat format.", ChatColor.GRAY); return true; } @@ -248,7 +242,7 @@ public class Command_myadmin extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (!plugin.al.isAdmin(sender)) + if (!plugin.sl.isStaff(sender)) { return Collections.emptyList(); } @@ -275,7 +269,7 @@ public class Command_myadmin extends FreedomCommand { if (args[0].equals("clearip")) { - List ips = plugin.al.getAdmin(sender).getIps(); + List ips = plugin.sl.getAdmin(sender).getIps(); ips.remove(FUtil.getIp((Player) sender)); return ips; } @@ -296,10 +290,10 @@ public class Command_myadmin extends FreedomCommand { if (args[0].equals("-o") && args[2].equals("clearip")) { - Admin admin = plugin.al.getEntryByName(args[1]); - if (admin != null) + StaffMember staffMember = plugin.sl.getEntryByName(args[1]); + if (staffMember != null) { - return admin.getIps(); + return staffMember.getIps(); } } } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickclean.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickclean.java index de963d8b..14ba4604 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickclean.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickclean.java @@ -16,7 +16,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Essentials Interface Command - Remove illegal chatcodes from nicknames of one or all players on server.", usage = "/ [player]", aliases = "nc") public class Command_nickclean extends FreedomCommand { @@ -53,12 +53,12 @@ public class Command_nickclean extends FreedomCommand return true; } - FUtil.adminAction(sender.getName(), "Cleaning " + player.getName() + "'s nickname", false); + FUtil.staffAction(sender.getName(), "Cleaning " + player.getName() + "'s nickname", false); cleanNickname(player); return true; } - FUtil.adminAction(sender.getName(), "Cleaning all nicknames", false); + FUtil.staffAction(sender.getName(), "Cleaning all nicknames", false); for (final Player player : server.getOnlinePlayers()) { cleanNickname(player); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickfilter.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickfilter.java index 091fb34c..74087862 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickfilter.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickfilter.java @@ -41,11 +41,11 @@ public class Command_nickfilter extends FreedomCommand player = getPlayerByDisplayName(displayName); - if (player == null || plugin.al.isVanished(player) && !plugin.al.isAdmin(sender)) + if (player == null || plugin.sl.isVanished(player) && !plugin.sl.isStaff(sender)) { player = getPlayerByDisplayNameAlt(displayName); - if (player == null || !plugin.al.isVanished(player) && !plugin.al.isAdmin(sender)) + if (player == null || !plugin.sl.isVanished(player) && !plugin.sl.isStaff(sender)) { sender.sendMessage(ChatColor.GRAY + "Can't find player by nickname: " + displayName); return true; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_notes.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_notes.java index 43c63234..81173fa4 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_notes.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_notes.java @@ -13,7 +13,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Manage notes for a player", usage = "/ | remove | clear>") public class Command_notes extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_op.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_op.java index 968d4804..7b824a7a 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_op.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_op.java @@ -36,7 +36,7 @@ public class Command_op extends FreedomCommand if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName().toLowerCase().contains(targetName) || player.getName().contains(targetName) || player.getDisplayName().contains(targetName)) { - if (!player.isOp() && !plugin.al.isVanished(player)) + if (!player.isOp() && !plugin.sl.isVanished(player)) { matchedPlayerNames.add(player.getName()); player.setOp(true); @@ -49,7 +49,7 @@ public class Command_op extends FreedomCommand { if (!silent) { - FUtil.adminAction(sender.getName(), "Opping " + StringUtils.join(matchedPlayerNames, ", "), false); + FUtil.staffAction(sender.getName(), "Opping " + StringUtils.join(matchedPlayerNames, ", "), false); } } else diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opall.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opall.java index b728a7fd..4ce3dd88 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opall.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opall.java @@ -14,7 +14,7 @@ public class Command_opall extends FreedomCommand @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - FUtil.adminAction(sender.getName(), "Opping all players on the server", false); + FUtil.staffAction(sender.getName(), "Opping all players on the server", false); for (Player player : server.getOnlinePlayers()) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opme.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opme.java index eaadd8fc..b39e8429 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opme.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opme.java @@ -14,7 +14,7 @@ public class Command_opme extends FreedomCommand @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - FUtil.adminAction(sender.getName(), "Opping " + sender.getName(), false); + FUtil.staffAction(sender.getName(), "Opping " + sender.getName(), false); sender.setOp(true); sender.sendMessage(FreedomCommand.YOU_ARE_OP); return true; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ops.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ops.java index cb7e697f..3ac97109 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ops.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ops.java @@ -42,13 +42,13 @@ public class Command_ops extends FreedomCommand if (args[0].equals("purge")) { - if (!plugin.al.isAdmin(sender)) + if (!plugin.sl.isStaff(sender)) { noPerms(); return true; } - FUtil.adminAction(sender.getName(), "Purging all operators", true); + FUtil.staffAction(sender.getName(), "Purging all operators", true); for (OfflinePlayer player : server.getOperators()) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_orbit.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_orbit.java index b9aeb7ff..91c25594 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_orbit.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_orbit.java @@ -10,7 +10,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.util.Vector; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.MOD, source = SourceType.BOTH) @CommandParameters(description = "POW!!! Right in the kisser! One of these days Alice, straight to the Moon - Sends the specified player into orbit.", usage = "/ [< | stop>]") public class Command_orbit extends FreedomCommand @@ -60,7 +60,7 @@ public class Command_orbit extends FreedomCommand playerdata.startOrbiting(strength); player.setVelocity(new Vector(0, strength, 0)); - FUtil.adminAction(sender.getName(), "Orbiting " + player.getName(), false); + FUtil.staffAction(sender.getName(), "Orbiting " + player.getName(), false); return true; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permissions.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permissions.java index ecfa2477..2c9c8eeb 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permissions.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permissions.java @@ -15,7 +15,7 @@ public class Command_permissions extends FreedomCommand @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (args.length > 0 && args[0].equals("reload") && plugin.al.isAdmin(sender)) + if (args.length > 0 && args[0].equals("reload") && plugin.sl.isStaff(sender)) { plugin.permissions.load(); plugin.pem.loadPermissionNodes(); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_playtime.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_playtime.java index 276bbd7d..493ff68d 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_playtime.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_playtime.java @@ -3,14 +3,14 @@ package me.totalfreedom.totalfreedommod.command; import java.time.Instant; import java.util.Date; import java.util.List; -import me.totalfreedom.totalfreedommod.admin.ActivityLogEntry; +import me.totalfreedom.totalfreedommod.staff.ActivityLogEntry; import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.util.FUtil; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "Gets your playtime statistics.", usage = "/") public class Command_playtime extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_plugincontrol.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_plugincontrol.java index db928089..7b2313e2 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_plugincontrol.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_plugincontrol.java @@ -13,7 +13,7 @@ import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginManager; -@CommandPermissions(level = Rank.TELNET_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.MOD, source = SourceType.BOTH) @CommandParameters(description = "Enable, disable, or reload a specified plugin, as well as list all plugins on the server.", usage = "/ < > | list>", aliases = "plc") public class Command_plugincontrol extends FreedomCommand { @@ -135,7 +135,7 @@ public class Command_plugincontrol extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (!plugin.al.isAdmin(sender)) + if (!plugin.sl.isStaff(sender)) { return Collections.emptyList(); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potion.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potion.java index 67d93388..258286d3 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potion.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potion.java @@ -41,12 +41,12 @@ public class Command_potion extends FreedomCommand } else if (args[0].equalsIgnoreCase("clearall")) { - if (!(plugin.al.isAdmin(sender) || senderIsConsole)) + if (!(plugin.sl.isStaff(sender) || senderIsConsole)) { noPerms(); return true; } - FUtil.adminAction(sender.getName(), "Cleared all potion effects from all players", true); + FUtil.staffAction(sender.getName(), "Cleared all potion effects from all players", true); for (Player target : server.getOnlinePlayers()) { for (PotionEffect potion_effect : target.getActivePotionEffects()) @@ -76,9 +76,9 @@ public class Command_potion extends FreedomCommand return true; } - if (!plugin.al.isAdmin(sender)) + if (!plugin.sl.isStaff(sender)) { - msg(ChatColor.RED + "Only admins can clear potion effects from other players."); + msg(ChatColor.RED + "Only staff can clear potion effects from other players."); return true; } @@ -104,7 +104,7 @@ public class Command_potion extends FreedomCommand { target = getPlayer(args[4]); - if (target == null || plugin.al.isVanished(target) && !plugin.al.isAdmin(sender)) + if (target == null || plugin.sl.isVanished(target) && !plugin.sl.isStaff(sender)) { msg(FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED); return true; @@ -117,9 +117,9 @@ public class Command_potion extends FreedomCommand return true; } - if (!plugin.al.isAdmin(sender)) + if (!plugin.sl.isStaff(sender)) { - sender.sendMessage(ChatColor.RED + "Only admins can apply potion effects to other players."); + sender.sendMessage(ChatColor.RED + "Only staff can apply potion effects to other players."); return true; } @@ -183,7 +183,7 @@ public class Command_potion extends FreedomCommand { List arguments = new ArrayList<>(); arguments.addAll(Arrays.asList("list", "clear", "add")); - if (plugin.al.isAdmin(sender)) + if (plugin.sl.isStaff(sender)) { arguments.add("clearall"); } @@ -193,7 +193,7 @@ public class Command_potion extends FreedomCommand { if (args[0].equals("clear")) { - if (plugin.al.isAdmin(sender)) + if (plugin.sl.isStaff(sender)) { return FUtil.getPlayerList(); } @@ -217,7 +217,7 @@ public class Command_potion extends FreedomCommand return Arrays.asList(""); } } - else if (args.length == 5 && plugin.al.isAdmin(sender)) + else if (args.length == 5 && plugin.sl.isStaff(sender)) { if (args[0].equals("add")) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potionspy.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potionspy.java index 9a1e7a21..a2fc6133 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potionspy.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potionspy.java @@ -4,7 +4,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; -import me.totalfreedom.totalfreedommod.admin.Admin; +import me.totalfreedom.totalfreedommod.staff.StaffMember; import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.util.FUtil; import org.apache.commons.lang.math.NumberUtils; @@ -15,8 +15,8 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.entity.ThrownPotion; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) -@CommandParameters(description = "Allows admins to see potions that are thrown.", usage = "/ | history [player] ", aliases = "potspy") +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME) +@CommandParameters(description = "Allows staff to see potions that are thrown.", usage = "/ | history [player] ", aliases = "potspy") public class Command_potionspy extends FreedomCommand { private String titleText = "&8&m------------------&r &ePotionSpy &8&m------------------&r"; @@ -28,11 +28,11 @@ public class Command_potionspy extends FreedomCommand @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - Admin admin = plugin.al.getAdmin(playerSender); + StaffMember staffMember = plugin.sl.getAdmin(playerSender); if (args.length <= 0) { - setPotionSpyState(admin, !admin.getPotionSpy()); + setPotionSpyState(staffMember, !staffMember.getPotionSpy()); return true; } else @@ -41,12 +41,12 @@ public class Command_potionspy extends FreedomCommand { case "enable": case "on": - setPotionSpyState(admin, true); + setPotionSpyState(staffMember, true); break; case "disable": case "off": - setPotionSpyState(admin, false); + setPotionSpyState(staffMember, false); break; case "history": @@ -176,12 +176,12 @@ public class Command_potionspy extends FreedomCommand return true; } - private void setPotionSpyState(Admin admin, boolean state) + private void setPotionSpyState(StaffMember staffMember, boolean state) { - admin.setPotionSpy(state); - plugin.al.save(admin); - plugin.al.updateTables(); - msg("PotionSpy is now " + (admin.getPotionSpy() ? "enabled." : "disabled.")); + staffMember.setPotionSpy(state); + plugin.sl.save(staffMember); + plugin.sl.updateTables(); + msg("PotionSpy is now " + (staffMember.getPotionSpy() ? "enabled." : "disabled.")); } /** diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_protectarea.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_protectarea.java deleted file mode 100644 index 1803aba7..00000000 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_protectarea.java +++ /dev/null @@ -1,104 +0,0 @@ -package me.totalfreedom.totalfreedommod.command; - -import me.totalfreedom.totalfreedommod.ProtectArea; -import me.totalfreedom.totalfreedommod.config.ConfigEntry; -import me.totalfreedom.totalfreedommod.rank.Rank; -import org.apache.commons.lang.StringUtils; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) -@CommandParameters( - description = "Protect areas so that only admins can directly modify blocks in those areas. WorldEdit and other such plugins might bypass this.", - usage = "/ | add - + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 032257c0..da9c2b15 100644 --- a/pom.xml +++ b/pom.xml @@ -140,13 +140,6 @@ compile - - com.github.MyzelYam - SuperVanish - 6.1.8 - provided - - org.spigotmc spigot @@ -209,12 +202,6 @@ provided - - me.rayzr522 - jsonmessage - 1.0.0 - - com.github.vexsoftware votifier diff --git a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java index 6625e77a..4760a4a3 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java @@ -22,7 +22,6 @@ import me.totalfreedom.totalfreedommod.bridge.EssentialsBridge; import me.totalfreedom.totalfreedommod.bridge.FAWEBridge; import me.totalfreedom.totalfreedommod.bridge.LibsDisguisesBridge; import me.totalfreedom.totalfreedommod.bridge.TFGuildsBridge; -import me.totalfreedom.totalfreedommod.bridge.VanishBridge; import me.totalfreedom.totalfreedommod.bridge.WorldEditBridge; import me.totalfreedom.totalfreedommod.bridge.WorldGuardBridge; import me.totalfreedom.totalfreedommod.caging.Cager; @@ -137,7 +136,7 @@ public class TotalFreedomMod extends JavaPlugin public SignBlocker snp; public EntityWiper ew; public Sitter st; - public VanishBridge vb; + public VanishHandler vh; public AMP amp; //public HubWorldRestrictions hwr; @@ -236,7 +235,7 @@ public class TotalFreedomMod extends JavaPlugin snp = new SignBlocker(); ew = new EntityWiper(); st = new Sitter(); - vb = new VanishBridge(); + vh = new VanishHandler(); amp = new AMP(); // Single admin utils diff --git a/src/main/java/me/totalfreedom/totalfreedommod/VanishHandler.java b/src/main/java/me/totalfreedom/totalfreedommod/VanishHandler.java new file mode 100644 index 00000000..7d1e586d --- /dev/null +++ b/src/main/java/me/totalfreedom/totalfreedommod/VanishHandler.java @@ -0,0 +1,83 @@ +package me.totalfreedom.totalfreedommod; + +import me.totalfreedom.totalfreedommod.util.FLog; +import net.md_5.bungee.api.ChatMessageType; +import net.md_5.bungee.api.chat.TextComponent; +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.scheduler.BukkitRunnable; + +public class VanishHandler extends FreedomService +{ + + @Override + public void onStart() + { + } + + @Override + public void onStop() + { + } + + @EventHandler(priority = EventPriority.HIGH) + public void onPlayerJoin(PlayerJoinEvent event) + { + Player player = event.getPlayer(); + + for (Player p : server.getOnlinePlayers()) + { + if (!plugin.al.isAdmin(player) && plugin.al.isVanished(p.getName())) + { + player.hidePlayer(plugin, p); + } + } + + for (Player p : server.getOnlinePlayers()) + { + if (!plugin.al.isAdmin(p) && plugin.al.isVanished(player.getName())) + { + p.hidePlayer(plugin, player); + } + } + + if (plugin.al.isVanished(player.getName())) + { + plugin.esb.setVanished(player.getName(), true); + FLog.info(player.getName() + " joined while still vanished."); + plugin.al.messageAllAdmins(ChatColor.YELLOW + player.getName() + " has joined silently."); + event.setJoinMessage(null); + + new BukkitRunnable() + { + @Override + public void run() + { + if (!plugin.al.isVanished(player.getName())) + { + this.cancel(); + } + + player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(ChatColor.GOLD + "You are hidden from other players.")); + } + }.runTaskTimer(plugin, 0L, 4L); + } + } + + @EventHandler + public void onPlayerLeave(PlayerQuitEvent event) + { + Player player = event.getPlayer(); + + if (plugin.al.isVanished(player.getName())) + { + event.setQuitMessage(null); + FLog.info(player.getName() + " left while still vanished."); + plugin.al.messageAllAdmins(ChatColor.YELLOW + player.getName() + " has left silently."); + } + } +} \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java b/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java index 2b4d6c61..8d2f5b54 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java @@ -2,7 +2,6 @@ package me.totalfreedom.totalfreedommod.admin; import com.google.common.collect.Maps; import com.google.common.collect.Sets; -import de.myzelyam.api.vanish.VanishAPI; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; @@ -32,6 +31,7 @@ public class AdminList extends FreedomService private final Map ipTable = Maps.newHashMap(); public final List verifiedNoAdmins = new ArrayList<>(); public final Map> verifiedNoAdminIps = Maps.newHashMap(); + public static List vanished = new ArrayList<>(); @Override public void onStart() @@ -363,8 +363,8 @@ public class AdminList extends FreedomService updateTables(); } - public boolean isVanished(Player player) + public boolean isVanished(String player) { - return VanishAPI.isInvisible(player); + return vanished.contains(player); } } \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java b/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java deleted file mode 100644 index 097309b6..00000000 --- a/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java +++ /dev/null @@ -1,64 +0,0 @@ -package me.totalfreedom.totalfreedommod.bridge; - -import de.myzelyam.api.vanish.PlayerHideEvent; -import de.myzelyam.api.vanish.PlayerShowEvent; -import me.totalfreedom.totalfreedommod.FreedomService; -import me.totalfreedom.totalfreedommod.player.PlayerData; -import me.totalfreedom.totalfreedommod.rank.Displayable; -import me.totalfreedom.totalfreedommod.util.FUtil; -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; - -public class VanishBridge extends FreedomService -{ - @Override - public void onStart() - { - } - - @Override - public void onStop() - { - } - - @EventHandler - public void onPlayerUnvanish(PlayerShowEvent event) - { - Player player = event.getPlayer(); - Displayable display = plugin.rm.getDisplay(player); - String tag = display.getColoredTag(); - - if (event.isSilent()) - { - plugin.al.messageAllAdmins(ChatColor.GOLD + player.getName() + " silently unvanished."); - } - else - { - plugin.al.messageAllAdmins(ChatColor.GOLD + player.getName() + " unvanished and is now visible to all players."); - FUtil.bcastMsg(plugin.rm.craftLoginMessage(event.getPlayer(), null)); - plugin.dc.messageChatChannel("**" + player.getName() + " joined the server" + "**"); - } - - PlayerData playerData = plugin.pl.getData(player); - if (playerData.getTag() != null) - { - tag = FUtil.colorize(playerData.getTag()); - } - playerData.setTag(tag); - } - - @EventHandler - public void onPlayerVanish(PlayerHideEvent event) - { - Player player = event.getPlayer(); - if (event.isSilent()) - { - plugin.al.messageAllAdmins(ChatColor.GOLD + player.getName() + " vanished and is now only visible to admins."); - } - else - { - plugin.dc.messageChatChannel("**" + player.getName() + " left the server" + "**"); - } - } -} \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java index a3ab50d4..d2ee0af0 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java @@ -1,9 +1,9 @@ package me.totalfreedom.totalfreedommod.command; -import de.myzelyam.api.vanish.VanishAPI; import java.util.ArrayList; import java.util.List; import me.totalfreedom.totalfreedommod.admin.Admin; +import me.totalfreedom.totalfreedommod.admin.AdminList; import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.rank.Displayable; import me.totalfreedom.totalfreedommod.rank.Rank; @@ -96,7 +96,7 @@ public class Command_list extends FreedomCommand } else { - onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().size() - VanishAPI.getInvisiblePlayers().size()) + onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().size() - AdminList.vanished.size()) .append(ChatColor.BLUE) .append(" out of a maximum ") .append(ChatColor.RED) @@ -109,11 +109,11 @@ public class Command_list extends FreedomCommand { continue; } - if (listFilter == ListFilter.ADMINS && plugin.al.isVanished(p)) + if (listFilter == ListFilter.ADMINS && plugin.al.isVanished(p.getName())) { continue; } - if (listFilter == ListFilter.VANISHED_ADMINS && !plugin.al.isVanished(p)) + if (listFilter == ListFilter.VANISHED_ADMINS && !plugin.al.isVanished(p.getName())) { continue; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_vanish.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_vanish.java deleted file mode 100644 index 4a20ae47..00000000 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_vanish.java +++ /dev/null @@ -1,44 +0,0 @@ -package me.totalfreedom.totalfreedommod.command; - -import de.myzelyam.api.vanish.VanishAPI; -import me.totalfreedom.totalfreedommod.rank.Rank; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) -@CommandParameters(description = "Hide yourself from other players", usage = "/ [-s]", aliases = "v,ev,evanish") -public class Command_vanish extends FreedomCommand -{ - @Override - public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) - { - if (args.length == 0) - { - if (!VanishAPI.isInvisible(playerSender)) - { - VanishAPI.hidePlayer(playerSender); - } - else - { - VanishAPI.showPlayer(playerSender); - } - } - else if (args[0].equalsIgnoreCase("-s") || args[0].equalsIgnoreCase("-v")) - { - if (!VanishAPI.isInvisible(playerSender)) - { - VanishAPI.getPlugin().getVisibilityChanger().hidePlayer(playerSender, null, true); - } - else - { - VanishAPI.getPlugin().getVisibilityChanger().showPlayer(playerSender, null, true); - } - } - else - { - return false; - } - return true; - } -} \ No newline at end of file From da80f1b69e6f6eeb9bf4f36cbebfc44f02c449d6 Mon Sep 17 00:00:00 2001 From: Telesphoreo Date: Sat, 15 Aug 2020 17:41:23 -0500 Subject: [PATCH 39/54] Revert "Merge branch 'development' of https://github.com/TFPatches/TotalFreedomMod into development" This reverts commit 4407e9e6ec7c39b0f45138ab381ae3c57395f6b0, reversing changes made to e4c9ea656ee799c3820bf6feb5861dcfba1d64bb. --- pom.xml | 4 +- .../me/totalfreedom/totalfreedommod/AMP.java | 8 +- .../totalfreedommod/AntiSpam.java | 4 +- .../totalfreedommod/ChatManager.java | 62 ++- .../totalfreedommod/CommandSpy.java | 4 +- .../totalfreedommod/LoginProcess.java | 20 +- .../totalfreedommod/Monitors.java | 2 +- .../totalfreedom/totalfreedommod/Muter.java | 4 +- .../totalfreedommod/ProtectArea.java | 392 ++++++++++++++++++ .../totalfreedom/totalfreedommod/Reddit.java | 12 +- .../totalfreedommod/ServerPing.java | 4 +- .../totalfreedommod/TotalFreedomMod.java | 20 +- .../{staff => admin}/ActivityLog.java | 6 +- .../{staff => admin}/ActivityLogEntry.java | 2 +- .../StaffMember.java => admin/Admin.java} | 18 +- .../totalfreedommod/admin/AdminList.java | 370 +++++++++++++++++ .../totalfreedommod/banning/BanManager.java | 2 +- .../totalfreedommod/blocking/EditBlocker.java | 4 +- .../blocking/EventBlocker.java | 2 +- .../blocking/InteractBlocker.java | 4 +- .../totalfreedommod/blocking/PVPBlocker.java | 2 +- .../blocking/command/CommandBlocker.java | 2 +- .../blocking/command/CommandBlockerRank.java | 8 +- .../bridge/BukkitTelnetBridge.java | 30 +- .../bridge/LibsDisguisesBridge.java | 4 +- .../totalfreedommod/caging/Cager.java | 2 +- ..._staffchat.java => Command_adminchat.java} | 13 +- ..._staffinfo.java => Command_admininfo.java} | 12 +- ..._staffmode.java => Command_adminmode.java} | 20 +- ...taffworld.java => Command_adminworld.java} | 22 +- .../command/Command_adventure.java | 4 +- .../command/Command_aeclear.java | 4 +- .../totalfreedommod/command/Command_amp.java | 22 +- .../command/Command_announce.java | 2 +- .../command/Command_autoclear.java | 2 +- .../command/Command_autotp.java | 2 +- .../totalfreedommod/command/Command_ban.java | 4 +- .../command/Command_banip.java | 4 +- .../command/Command_banlist.java | 4 +- .../command/Command_banname.java | 4 +- .../command/Command_blockcmd.java | 16 +- .../command/Command_blockedit.java | 14 +- .../command/Command_blockpvp.java | 14 +- .../command/Command_blockredstone.java | 8 +- .../totalfreedommod/command/Command_cage.java | 10 +- .../totalfreedommod/command/Command_cake.java | 2 +- .../command/Command_cartsit.java | 2 +- .../command/Command_clearchat.java | 6 +- .../command/Command_cleardiscordqueue.java | 2 +- .../command/Command_clearinventory.java | 6 +- .../command/Command_cmdspy.java | 14 +- .../command/Command_consolesay.java | 2 +- .../command/Command_cookie.java | 2 +- .../command/Command_creative.java | 4 +- .../command/Command_curse.java | 4 +- .../command/Command_denick.java | 4 +- .../totalfreedommod/command/Command_deop.java | 6 +- .../command/Command_deopall.java | 4 +- .../command/Command_disguisetoggle.java | 4 +- .../command/Command_donator.java | 2 +- .../totalfreedommod/command/Command_doom.java | 24 +- .../command/Command_entitywipe.java | 4 +- .../command/Command_expel.java | 2 +- .../command/Command_explode.java | 4 +- .../command/Command_explosivearrows.java | 2 +- .../command/Command_findip.java | 2 +- .../command/Command_forcekill.java | 2 +- .../command/Command_freeze.java | 12 +- .../command/Command_fuckoff.java | 2 +- .../command/Command_health.java | 2 +- .../command/Command_hubworld.java | 4 +- .../command/Command_indefban.java | 2 +- .../command/Command_invis.java | 10 +- .../command/Command_invsee.java | 6 +- .../command/Command_jumppads.java | 2 +- .../totalfreedommod/command/Command_kick.java | 6 +- .../command/Command_kicknoob.java | 10 +- .../command/Command_lastcmd.java | 2 +- .../command/Command_linkdiscord.java | 2 +- .../totalfreedommod/command/Command_list.java | 70 +++- .../command/Command_lockup.java | 10 +- .../totalfreedommod/command/Command_logs.java | 2 +- .../command/Command_makeopregion.java | 2 +- .../command/Command_manageshop.java | 2 +- .../command/Command_manuallyverify.java | 4 +- .../command/Command_massmurder.java | 2 +- .../command/Command_masterbuilderworld.java | 4 +- .../command/Command_mbconfig.java | 6 +- .../command/Command_moblimiter.java | 2 +- .../command/Command_mobpurge.java | 4 +- .../totalfreedommod/command/Command_mute.java | 14 +- ...mand_mystaff.java => Command_myadmin.java} | 80 ++-- .../command/Command_nickclean.java | 6 +- .../command/Command_nickfilter.java | 4 +- .../command/Command_notes.java | 2 +- .../totalfreedommod/command/Command_op.java | 4 +- .../command/Command_opall.java | 2 +- .../totalfreedommod/command/Command_opme.java | 2 +- .../totalfreedommod/command/Command_ops.java | 4 +- .../command/Command_orbit.java | 4 +- .../command/Command_permissions.java | 2 +- .../command/Command_playtime.java | 4 +- .../command/Command_plugincontrol.java | 4 +- .../command/Command_potion.java | 20 +- .../command/Command_potionspy.java | 24 +- .../command/Command_protectarea.java | 104 +++++ .../command/Command_purgeall.java | 4 +- .../command/Command_rawsay.java | 2 +- .../command/Command_reactionbar.java | 2 +- .../command/Command_report.java | 4 +- .../totalfreedommod/command/Command_ride.java | 2 +- .../totalfreedommod/command/Command_ro.java | 10 +- .../totalfreedommod/command/Command_rock.java | 2 +- ...nd_slconfig.java => Command_saconfig.java} | 148 +++---- .../totalfreedommod/command/Command_say.java | 2 +- .../command/Command_scare.java | 4 +- .../command/Command_serverstats.java | 2 +- .../command/Command_setlimit.java | 4 +- .../command/Command_setspawnworld.java | 8 +- .../command/Command_settotalvotes.java | 2 +- .../command/Command_smite.java | 2 +- .../command/Command_spectate.java | 2 +- .../command/Command_spectator.java | 2 +- .../totalfreedommod/command/Command_stop.java | 2 +- .../command/Command_survival.java | 4 +- .../totalfreedommod/command/Command_tag.java | 16 +- .../command/Command_tagnyan.java | 4 +- .../command/Command_tagrainbow.java | 2 +- .../totalfreedommod/command/Command_tban.java | 6 +- .../command/Command_tempban.java | 4 +- .../command/Command_toggle.java | 6 +- .../command/Command_togglechat.java | 4 +- .../command/Command_totalfreedommod.java | 2 +- .../command/Command_trail.java | 2 +- .../command/Command_unban.java | 4 +- .../command/Command_unbanip.java | 4 +- .../command/Command_unbanname.java | 4 +- .../command/Command_unblockcmd.java | 4 +- .../command/Command_uncage.java | 4 +- .../command/Command_undisguiseall.java | 4 +- .../command/Command_unlinkdiscord.java | 2 +- .../command/Command_unmute.java | 4 +- .../command/Command_vanish.java | 44 -- ...ostaff.java => Command_verifynoadmin.java} | 28 +- .../totalfreedommod/command/Command_warn.java | 8 +- .../command/Command_whitelist.java | 22 +- .../command/Command_whohas.java | 8 +- .../command/Command_wildcard.java | 2 +- .../command/Command_wipecoreprotectdata.java | 4 +- .../command/Command_wipeflatlands.java | 2 +- .../command/Command_wipepunishments.java | 6 +- .../command/Command_wiperegions.java | 4 +- .../command/Command_wipeuserdata.java | 6 +- .../command/Command_wipewarps.java | 4 +- .../command/FreedomCommand.java | 22 +- .../totalfreedommod/config/ConfigEntry.java | 26 +- .../totalfreedommod/discord/Discord.java | 79 ++-- .../discord/DiscordToMinecraftListener.java | 12 +- .../discord/PrivateMessageListener.java | 8 +- .../totalfreedommod/freeze/FreezeData.java | 4 +- .../totalfreedommod/freeze/Freezer.java | 2 +- .../totalfreedommod/httpd/HTTPDaemon.java | 4 +- .../httpd/module/Module_activitylog.java | 6 +- .../{Module_staff.java => Module_admins.java} | 8 +- .../httpd/module/Module_bans.java | 4 +- .../httpd/module/Module_indefbans.java | 4 +- .../httpd/module/Module_list.java | 42 +- .../httpd/module/Module_logfile.java | 4 +- .../httpd/module/Module_players.java | 18 +- .../httpd/module/Module_punishments.java | 4 +- .../httpd/module/Module_schematic.java | 6 +- .../permissions/PermissionEntry.java | 6 +- .../permissions/PermissionManager.java | 28 +- .../totalfreedommod/player/FPlayer.java | 4 +- .../totalfreedommod/player/PlayerList.java | 40 +- .../totalfreedommod/rank/Rank.java | 30 +- .../totalfreedommod/rank/RankManager.java | 62 +-- .../totalfreedommod/sql/SQLite.java | 65 +-- .../totalfreedommod/staff/StaffList.java | 370 ----------------- .../totalfreedommod/util/FSync.java | 2 +- .../totalfreedommod/util/FUtil.java | 6 +- .../{StaffWorld.java => AdminWorld.java} | 10 +- .../totalfreedommod/world/WorldManager.java | 12 +- .../world/WorldRestrictions.java | 4 +- src/main/resources/config.yml | 52 ++- src/main/resources/permissions.yml | 12 +- 186 files changed, 1828 insertions(+), 1275 deletions(-) create mode 100644 src/main/java/me/totalfreedom/totalfreedommod/ProtectArea.java rename src/main/java/me/totalfreedom/totalfreedommod/{staff => admin}/ActivityLog.java (97%) rename src/main/java/me/totalfreedom/totalfreedommod/{staff => admin}/ActivityLogEntry.java (98%) rename src/main/java/me/totalfreedom/totalfreedommod/{staff/StaffMember.java => admin/Admin.java} (91%) create mode 100644 src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java rename src/main/java/me/totalfreedom/totalfreedommod/command/{Command_staffchat.java => Command_adminchat.java} (69%) rename src/main/java/me/totalfreedom/totalfreedommod/command/{Command_staffinfo.java => Command_admininfo.java} (72%) rename src/main/java/me/totalfreedom/totalfreedommod/command/{Command_staffmode.java => Command_adminmode.java} (70%) rename src/main/java/me/totalfreedom/totalfreedommod/command/{Command_staffworld.java => Command_adminworld.java} (88%) rename src/main/java/me/totalfreedom/totalfreedommod/command/{Command_mystaff.java => Command_myadmin.java} (76%) create mode 100644 src/main/java/me/totalfreedom/totalfreedommod/command/Command_protectarea.java rename src/main/java/me/totalfreedom/totalfreedommod/command/{Command_slconfig.java => Command_saconfig.java} (58%) delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/command/Command_vanish.java rename src/main/java/me/totalfreedom/totalfreedommod/command/{Command_verifynostaff.java => Command_verifynoadmin.java} (71%) rename src/main/java/me/totalfreedom/totalfreedommod/httpd/module/{Module_staff.java => Module_admins.java} (85%) delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/staff/StaffList.java rename src/main/java/me/totalfreedom/totalfreedommod/world/{StaffWorld.java => AdminWorld.java} (95%) diff --git a/pom.xml b/pom.xml index 2fadd7ff..da9c2b15 100644 --- a/pom.xml +++ b/pom.xml @@ -236,9 +236,9 @@ - com.github.TFPatches + com.github.speedxx TFGuilds - ad93b9ed00 + master provided diff --git a/src/main/java/me/totalfreedom/totalfreedommod/AMP.java b/src/main/java/me/totalfreedom/totalfreedommod/AMP.java index 8f78ef22..32b0fc45 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/AMP.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/AMP.java @@ -5,7 +5,7 @@ import java.util.Arrays; import java.util.List; import joptsimple.internal.Strings; import lombok.Getter; -import me.totalfreedom.totalfreedommod.staff.StaffMember; +import me.totalfreedom.totalfreedommod.admin.Admin; import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.util.FLog; @@ -103,16 +103,16 @@ public class AMP extends FreedomService FLog.info("Logged out of AMP"); } - public void updateAccountStatus(StaffMember staffMember) + public void updateAccountStatus(Admin admin) { - String username = staffMember.getAmpUsername(); + String username = admin.getAmpUsername(); if (username == null || !enabled) { return; } - if (!staffMember.isActive() || staffMember.getRank() != Rank.ADMIN) + if (!admin.isActive() || admin.getRank() != Rank.SENIOR_ADMIN) { FLog.debug("Disabling amp acc"); setAccountEnabled(username, false); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/AntiSpam.java b/src/main/java/me/totalfreedom/totalfreedommod/AntiSpam.java index af015222..54764e87 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/AntiSpam.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/AntiSpam.java @@ -62,7 +62,7 @@ public class AntiSpam extends FreedomService { final Player player = event.getPlayer(); - if (plugin.sl.isStaff(player)) + if (plugin.al.isAdmin(player)) { return; } @@ -109,7 +109,7 @@ public class AntiSpam extends FreedomService return; } - if (plugin.sl.isStaff(player)) + if (plugin.al.isAdmin(player)) { return; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java b/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java index 723f6316..079ef884 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java @@ -1,7 +1,7 @@ package me.totalfreedom.totalfreedommod; import com.google.common.base.Strings; -import me.totalfreedom.totalfreedommod.staff.StaffMember; +import me.totalfreedom.totalfreedommod.admin.Admin; import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.player.FPlayer; import me.totalfreedom.totalfreedommod.player.PlayerData; @@ -65,7 +65,7 @@ public class ChatManager extends FreedomService return; } - if (!ConfigEntry.TOGGLE_CHAT.getBoolean() && !plugin.sl.isStaff(player)) + if (!ConfigEntry.TOGGLE_CHAT.getBoolean() && !plugin.al.isAdmin(player)) { event.setCancelled(true); playerMsg(player, "Chat is currently disabled.", org.bukkit.ChatColor.RED); @@ -123,7 +123,7 @@ public class ChatManager extends FreedomService } // Check for mentions - Boolean mentionEveryone = ChatColor.stripColor(message).toLowerCase().contains("@everyone") && plugin.sl.isStaff(player); + Boolean mentionEveryone = ChatColor.stripColor(message).toLowerCase().contains("@everyone") && plugin.al.isAdmin(player); for (Player p : server.getOnlinePlayers()) { if (ChatColor.stripColor(message).toLowerCase().contains("@" + p.getName().toLowerCase()) || mentionEveryone) @@ -136,44 +136,76 @@ public class ChatManager extends FreedomService event.setFormat(format); // Send to discord - if (!ConfigEntry.STAFF_ONLY_MODE.getBoolean() && !Bukkit.hasWhitelist() && !plugin.pl.getPlayer(player).isMuted() && !plugin.tfg.inGuildChat(player)) + if (!ConfigEntry.ADMIN_ONLY_MODE.getBoolean() && !Bukkit.hasWhitelist() && !plugin.pl.getPlayer(player).isMuted() && !plugin.tfg.inGuildChat(player)) { plugin.dc.messageChatChannel(plugin.dc.deformat(player.getName()) + " \u00BB " + ChatColor.stripColor(message)); } } - public ChatColor getColor(Displayable display) + public ChatColor getColor(Admin admin, Displayable display) { ChatColor color = display.getColor(); + if (admin.getOldTags()) + { + + if (color.equals(ChatColor.AQUA)) + { + color = ChatColor.GOLD; + } + else if (color.equals(ChatColor.GOLD)) + { + color = ChatColor.LIGHT_PURPLE; + } + else if (color.equals(ChatColor.DARK_RED)) + { + color = ChatColor.BLUE; + } + } return color; } - public String getColoredTag(Displayable display) + public String getColoredTag(Admin admin, Displayable display) { ChatColor color = display.getColor(); + if (admin.getOldTags()) + { + + if (color.equals(ChatColor.AQUA)) + { + color = ChatColor.GOLD; + } + else if (color.equals(ChatColor.GOLD)) + { + color = ChatColor.LIGHT_PURPLE; + } + else if (color.equals(ChatColor.DARK_RED)) + { + color = ChatColor.BLUE; + } + } return color + display.getAbbr(); } - public void staffChat(CommandSender sender, String message) + public void adminChat(CommandSender sender, String message) { Displayable display = plugin.rm.getDisplay(sender); - FLog.info("[STAFF] " + sender.getName() + " " + display.getTag() + ": " + message, true); + FLog.info("[ADMIN] " + sender.getName() + " " + display.getTag() + ": " + message, true); for (Player player : server.getOnlinePlayers()) { - if (plugin.sl.isStaff(player)) + if (plugin.al.isAdmin(player)) { - StaffMember staffMember = plugin.sl.getAdmin(player); - if (!Strings.isNullOrEmpty(staffMember.getAcFormat())) + Admin admin = plugin.al.getAdmin(player); + if (!Strings.isNullOrEmpty(admin.getAcFormat())) { - String format = staffMember.getAcFormat(); - ChatColor color = getColor(display); + String format = admin.getAcFormat(); + ChatColor color = getColor(admin, display); String msg = format.replace("%name%", sender.getName()).replace("%rank%", display.getAbbr()).replace("%rankcolor%", color.toString()).replace("%msg%", message); player.sendMessage(FUtil.colorize(msg)); } else { - player.sendMessage("[" + ChatColor.AQUA + "STAFF" + ChatColor.WHITE + "] " + ChatColor.DARK_RED + sender.getName() + ChatColor.DARK_GRAY + " [" + getColoredTag(display) + ChatColor.DARK_GRAY + "]" + ChatColor.WHITE + ": " + ChatColor.GOLD + FUtil.colorize(message)); + player.sendMessage("[" + ChatColor.AQUA + "ADMIN" + ChatColor.WHITE + "] " + ChatColor.DARK_RED + sender.getName() + ChatColor.DARK_GRAY + " [" + getColoredTag(admin, display) + ChatColor.DARK_GRAY + "]" + ChatColor.WHITE + ": " + ChatColor.GOLD + FUtil.colorize(message)); } } } @@ -183,7 +215,7 @@ public class ChatManager extends FreedomService { for (Player player : server.getOnlinePlayers()) { - if (plugin.sl.isStaff(player)) + if (plugin.al.isAdmin(player)) { playerMsg(player, ChatColor.RED + "[REPORTS] " + ChatColor.GOLD + reporter.getName() + " has reported " + reported.getName() + " for " + report); FLog.info("[REPORTS] " + reporter.getName() + " has reported " + reported.getName() + " for " + report); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/CommandSpy.java b/src/main/java/me/totalfreedom/totalfreedommod/CommandSpy.java index 5bc0ddc0..4da218d3 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/CommandSpy.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/CommandSpy.java @@ -23,9 +23,9 @@ public class CommandSpy extends FreedomService { for (Player player : server.getOnlinePlayers()) { - if (plugin.sl.isStaff(player) && plugin.sl.getAdmin(player).getCommandSpy()) + if (plugin.al.isAdmin(player) && plugin.al.getAdmin(player).getCommandSpy()) { - if (plugin.sl.isStaff(event.getPlayer()) && !plugin.sl.isAdmin(player)) + if (plugin.al.isAdmin(event.getPlayer()) && !plugin.al.isSeniorAdmin(player)) { continue; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java b/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java index 55da8cb3..f921bd71 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java @@ -53,7 +53,7 @@ public class LoginProcess extends FreedomService public void onPlayerPreLogin(AsyncPlayerPreLoginEvent event) { final String ip = event.getAddress().getHostAddress().trim(); - final boolean isAdmin = plugin.sl.getEntryByIp(ip) != null; + final boolean isAdmin = plugin.al.getEntryByIp(ip) != null; // Check if the player is already online for (Player onlinePlayer : server.getOnlinePlayers()) @@ -114,7 +114,7 @@ public class LoginProcess extends FreedomService } // Check if player is admin - final boolean isAdmin = plugin.sl.getEntryByIp(ip) != null; + final boolean isAdmin = plugin.al.getEntryByIp(ip) != null; // Validation below this point if (isAdmin) // Player is admin @@ -127,7 +127,7 @@ public class LoginProcess extends FreedomService { for (Player onlinePlayer : server.getOnlinePlayers()) { - if (!plugin.sl.isStaff(onlinePlayer)) + if (!plugin.al.isAdmin(onlinePlayer)) { onlinePlayer.kickPlayer("You have been kicked to free up room for an admin."); count--; @@ -149,7 +149,7 @@ public class LoginProcess extends FreedomService return; } - // Player is not a staff member + // Player is not an admin // Server full check if (server.getOnlinePlayers().size() >= server.getMaxPlayers()) { @@ -157,8 +157,8 @@ public class LoginProcess extends FreedomService return; } - // Staff-only mode - if (ConfigEntry.STAFF_ONLY_MODE.getBoolean()) + // Admin-only mode + if (ConfigEntry.ADMIN_ONLY_MODE.getBoolean()) { event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "Server is temporarily open to admins only."); return; @@ -226,7 +226,7 @@ public class LoginProcess extends FreedomService player.setPlayerListFooter(FUtil.colorize(ConfigEntry.SERVER_TABLIST_FOOTER.getString()).replace("\\n", "\n")); } - if (!plugin.sl.isStaff(player)) + if (!plugin.al.isAdmin(player)) { String tag = playerData.getTag(); if (tag != null) @@ -244,7 +244,7 @@ public class LoginProcess extends FreedomService FLog.info(noteMessage); for (Player p : server.getOnlinePlayers()) { - if (plugin.sl.isAdminImpostor(p)) + if (plugin.al.isAdminImpostor(p)) { notice.send(p); } @@ -257,9 +257,9 @@ public class LoginProcess extends FreedomService @Override public void run() { - if (ConfigEntry.STAFF_ONLY_MODE.getBoolean()) + if (ConfigEntry.ADMIN_ONLY_MODE.getBoolean()) { - player.sendMessage(ChatColor.RED + "Server is currently closed to non-staff."); + player.sendMessage(ChatColor.RED + "Server is currently closed to non-admins."); } if (lockdownEnabled) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/Monitors.java b/src/main/java/me/totalfreedom/totalfreedommod/Monitors.java index 2842332f..a74ee0aa 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/Monitors.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/Monitors.java @@ -34,7 +34,7 @@ public class Monitors extends FreedomService { for (Player player : recentlyThrownPotions.keySet()) { - if (plugin.sl.isStaff(player) && plugin.sl.getAdmin(player).getPotionSpy()) + if (plugin.al.isAdmin(player) && plugin.al.getAdmin(player).getPotionSpy()) { List playerThrownPotions = recentlyThrownPotions.get(player); ThrownPotion latestThrownPotion = playerThrownPotions.get(playerThrownPotions.size() - 1); // Get most recently thrown potion for the position. diff --git a/src/main/java/me/totalfreedom/totalfreedommod/Muter.java b/src/main/java/me/totalfreedom/totalfreedommod/Muter.java index 203d3e77..97891bef 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/Muter.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/Muter.java @@ -45,7 +45,7 @@ public class Muter extends FreedomService return; } - if (plugin.sl.isStaffSync(player)) + if (plugin.al.isAdminSync(player)) { fPlayer.setMuted(false); MUTED_PLAYERS.remove(player.getName()); @@ -70,7 +70,7 @@ public class Muter extends FreedomService } String message = event.getMessage(); - if (plugin.sl.isStaff(player)) + if (plugin.al.isAdmin(player)) { fPlayer.setMuted(false); return; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/ProtectArea.java b/src/main/java/me/totalfreedom/totalfreedommod/ProtectArea.java new file mode 100644 index 00000000..9dbcde21 --- /dev/null +++ b/src/main/java/me/totalfreedom/totalfreedommod/ProtectArea.java @@ -0,0 +1,392 @@ +package me.totalfreedom.totalfreedommod; + +import com.google.common.collect.Maps; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.Serializable; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; +import java.util.UUID; +import me.totalfreedom.totalfreedommod.config.ConfigEntry; +import me.totalfreedom.totalfreedommod.util.FLog; +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.block.BlockPlaceEvent; +import org.bukkit.util.Vector; + +public class ProtectArea extends FreedomService +{ + + public static final String DATA_FILENAME = "protectedareas.dat"; + public static final double MAX_RADIUS = 50.0; + // + private final Map areas = Maps.newHashMap(); + + @Override + public void onStart() + { + if (!ConfigEntry.PROTECTAREA_ENABLED.getBoolean()) + { + return; + } + + File input = new File(plugin.getDataFolder(), DATA_FILENAME); + try + { + if (input.exists()) + { + FileInputStream fis = new FileInputStream(input); + ObjectInputStream ois = new ObjectInputStream(fis); + areas.clear(); + areas.putAll((HashMap)ois.readObject()); + ois.close(); + fis.close(); + } + } + catch (Exception ex) + { + input.delete(); + FLog.severe(ex); + } + + cleanProtectedAreas(); + } + + @Override + public void onStop() + { + save(); + } + + public void save() + { + try + { + FileOutputStream fos = new FileOutputStream(new File(plugin.getDataFolder(), DATA_FILENAME)); + ObjectOutputStream oos = new ObjectOutputStream(fos); + oos.writeObject(areas); + oos.close(); + fos.close(); + } + catch (Exception ex) + { + FLog.severe(ex); + } + } + + @EventHandler(priority = EventPriority.NORMAL) + public void onBlockBreak(BlockBreakEvent event) + { + if (!ConfigEntry.PROTECTAREA_ENABLED.getBoolean()) + { + return; + } + + final Player player = event.getPlayer(); + if (plugin.al.isAdmin(player)) + { + return; + } + + final Location location = event.getBlock().getLocation(); + + if (isInProtectedArea(location)) + { + event.setCancelled(true); + } + } + + @EventHandler(priority = EventPriority.NORMAL) + public void onBlockPlace(BlockPlaceEvent event) + { + if (!ConfigEntry.PROTECTAREA_ENABLED.getBoolean()) + { + return; + } + + final Player player = event.getPlayer(); + if (plugin.al.isAdmin(player)) + { + return; + } + + final Location location = event.getBlock().getLocation(); + + if (isInProtectedArea(location)) + { + event.setCancelled(true); + } + } + + public boolean isInProtectedArea(final Location modifyLocation) + { + boolean doSave = false; + boolean inProtectedArea = false; + + final Iterator> it = areas.entrySet().iterator(); + + while (it.hasNext()) + { + final SerializableProtectedRegion region = it.next().getValue(); + + Location regionCenter = null; + try + { + regionCenter = region.getLocation(); + } + catch (SerializableProtectedRegion.CantFindWorldException ex) + { + it.remove(); + doSave = true; + continue; + } + + if (regionCenter != null) + { + if (modifyLocation.getWorld() == regionCenter.getWorld()) + { + final double regionRadius = region.getRadius(); + if (modifyLocation.distanceSquared(regionCenter) <= (regionRadius * regionRadius)) + { + inProtectedArea = true; + break; + } + } + } + } + + if (doSave) + { + save(); + } + + return inProtectedArea; + } + + public boolean isInProtectedArea(final Vector min, final Vector max, final String worldName) + { + boolean doSave = false; + boolean inProtectedArea = false; + + final Iterator> it = areas.entrySet().iterator(); + + while (it.hasNext()) + { + final SerializableProtectedRegion region = it.next().getValue(); + + Location regionCenter = null; + try + { + regionCenter = region.getLocation(); + } + catch (SerializableProtectedRegion.CantFindWorldException ex) + { + it.remove(); + doSave = true; + continue; + } + + if (regionCenter != null) + { + if (worldName.equals(regionCenter.getWorld().getName())) + { + if (cubeIntersectsSphere(min, max, regionCenter.toVector(), region.getRadius())) + { + inProtectedArea = true; + break; + } + } + } + } + + if (doSave) + { + save(); + } + + return inProtectedArea; + } + + private boolean cubeIntersectsSphere(Vector min, Vector max, Vector sphere, double radius) + { + double d = square(radius); + + if (sphere.getX() < min.getX()) + { + d -= square(sphere.getX() - min.getX()); + } + else if (sphere.getX() > max.getX()) + { + d -= square(sphere.getX() - max.getX()); + } + if (sphere.getY() < min.getY()) + { + d -= square(sphere.getY() - min.getY()); + } + else if (sphere.getY() > max.getY()) + { + d -= square(sphere.getY() - max.getY()); + } + if (sphere.getZ() < min.getZ()) + { + d -= square(sphere.getZ() - min.getZ()); + } + else if (sphere.getZ() > max.getZ()) + { + d -= square(sphere.getZ() - max.getZ()); + } + + return d > 0; + } + + private double square(double v) + { + return v * v; + } + + public void addProtectedArea(String label, Location location, double radius) + { + areas.put(label.toLowerCase(), new SerializableProtectedRegion(location, radius)); + save(); + } + + public void removeProtectedArea(String label) + { + areas.remove(label.toLowerCase()); + save(); + } + + public void clearProtectedAreas() + { + clearProtectedAreas(true); + } + + public void clearProtectedAreas(boolean createSpawnpointProtectedAreas) + { + areas.clear(); + + if (createSpawnpointProtectedAreas) + { + autoAddSpawnpoints(); + } + + save(); + } + + public void cleanProtectedAreas() + { + boolean doSave = false; + + final Iterator> it = areas.entrySet().iterator(); + + while (it.hasNext()) + { + try + { + it.next().getValue().getLocation(); + } + catch (SerializableProtectedRegion.CantFindWorldException ex) + { + it.remove(); + doSave = true; + } + } + + if (doSave) + { + save(); + } + } + + public Set getProtectedAreaLabels() + { + return areas.keySet(); + } + + public void autoAddSpawnpoints() + { + if (!ConfigEntry.PROTECTAREA_ENABLED.getBoolean()) + { + return; + } + + if (ConfigEntry.PROTECTAREA_SPAWNPOINTS.getBoolean()) + { + for (World world : Bukkit.getWorlds()) + { + addProtectedArea("spawn_" + world.getName(), world.getSpawnLocation(), ConfigEntry.PROTECTAREA_RADIUS.getDouble()); + } + } + } + + public static class SerializableProtectedRegion implements Serializable + { + + private static final long serialVersionUID = 213123517828282L; + private final double x, y, z; + private final double radius; + private final String worldName; + private final UUID worldUUID; + private transient Location location = null; + + public SerializableProtectedRegion(final Location location, final double radius) + { + this.x = location.getX(); + this.y = location.getY(); + this.z = location.getZ(); + this.radius = radius; + this.worldName = location.getWorld().getName(); + this.worldUUID = location.getWorld().getUID(); + this.location = location; + } + + public Location getLocation() throws CantFindWorldException + { + if (this.location == null) + { + World world = Bukkit.getWorld(this.worldUUID); + + if (world == null) + { + world = Bukkit.getWorld(this.worldName); + } + + if (world == null) + { + throw new CantFindWorldException("Can't find world " + this.worldName + ", UUID: " + this.worldUUID.toString()); + } + + location = new Location(world, x, y, z); + } + return this.location; + } + + public double getRadius() + { + return radius; + } + + public class CantFindWorldException extends Exception + { + + private static final long serialVersionUID = 1L; + + public CantFindWorldException(String string) + { + super(string); + } + } + + } + +} diff --git a/src/main/java/me/totalfreedom/totalfreedommod/Reddit.java b/src/main/java/me/totalfreedom/totalfreedommod/Reddit.java index c82b3d4b..6f34f053 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/Reddit.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/Reddit.java @@ -203,9 +203,9 @@ public class Reddit extends FreedomService flairList.put(Title.EXECUTIVE, ConfigEntry.REDDIT_EXECUTIVE_FLAIR_ID.getString()); flairList.put(Title.ASSISTANT_EXECUTIVE, ConfigEntry.REDDIT_ASSISTANT_EXECUTIVE_FLAIR_ID.getString()); flairList.put(Title.DEVELOPER, ConfigEntry.REDDIT_DEVELOPER_FLAIR_ID.getString()); - flairList.put(Rank.ADMIN, ConfigEntry.REDDIT_ADMIN_FLAIR_ID.getString()); - flairList.put(Rank.MOD, ConfigEntry.REDDIT_MOD_FLAIR_ID.getString()); - flairList.put(Rank.TRIAL_MOD, ConfigEntry.REDDIT_TRIAL_MOD_FLAIR_ID.getString()); + flairList.put(Rank.SENIOR_ADMIN, ConfigEntry.REDDIT_SENIOR_FLAIR_ID.getString()); + flairList.put(Rank.TELNET_ADMIN, ConfigEntry.REDDIT_TELNET_FLAIR_ID.getString()); + flairList.put(Rank.SUPER_ADMIN, ConfigEntry.REDDIT_SUPER_FLAIR_ID.getString()); flairList.put(Title.MASTER_BUILDER, ConfigEntry.REDDIT_MASTER_BUILDER_FLAIR_ID.getString()); flairList.put(Title.DONATOR, ConfigEntry.REDDIT_DONATOR_FLAIR_ID.getString()); @@ -214,9 +214,9 @@ public class Reddit extends FreedomService flairNameList.put(Title.EXECUTIVE, "Executive"); flairNameList.put(Title.ASSISTANT_EXECUTIVE, "Assistant Executive"); flairNameList.put(Title.DEVELOPER, "Developer"); - flairNameList.put(Rank.ADMIN, "Admin"); - flairNameList.put(Rank.MOD, "Mod"); - flairNameList.put(Rank.TRIAL_MOD, "Trial Mod"); + flairNameList.put(Rank.SENIOR_ADMIN, "Senior Admin"); + flairNameList.put(Rank.TELNET_ADMIN, "Telnet Admin"); + flairNameList.put(Rank.SUPER_ADMIN, "Super Admin"); flairNameList.put(Title.MASTER_BUILDER, "Master Builder"); flairNameList.put(Title.DONATOR, "Premium"); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/ServerPing.java b/src/main/java/me/totalfreedom/totalfreedommod/ServerPing.java index e87f8005..a5a91ab8 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/ServerPing.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/ServerPing.java @@ -30,9 +30,9 @@ public class ServerPing extends FreedomService return; } - if (ConfigEntry.STAFF_ONLY_MODE.getBoolean()) + if (ConfigEntry.ADMIN_ONLY_MODE.getBoolean()) { - event.setMotd(FUtil.colorize(ConfigEntry.SERVER_STAFFMODE_MOTD.getString())); + event.setMotd(FUtil.colorize(ConfigEntry.SERVER_ADMINMODE_MOTD.getString())); return; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java index a7d66ff1..4760a4a3 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java @@ -3,8 +3,8 @@ package me.totalfreedom.totalfreedommod; import java.io.File; import java.io.InputStream; import java.util.Properties; -import me.totalfreedom.totalfreedommod.staff.ActivityLog; -import me.totalfreedom.totalfreedommod.staff.StaffList; +import me.totalfreedom.totalfreedommod.admin.ActivityLog; +import me.totalfreedom.totalfreedommod.admin.AdminList; import me.totalfreedom.totalfreedommod.banning.BanManager; import me.totalfreedom.totalfreedommod.banning.IndefiniteBanList; import me.totalfreedom.totalfreedommod.blocking.BlockBlocker; @@ -55,6 +55,7 @@ import org.bukkit.Bukkit; import org.bukkit.generator.ChunkGenerator; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; +import org.bukkit.scheduler.BukkitRunnable; import org.spigotmc.SpigotConfig; public class TotalFreedomMod extends JavaPlugin @@ -85,7 +86,7 @@ public class TotalFreedomMod extends JavaPlugin public SavedFlags sf; public WorldManager wm; public LogViewer lv; - public StaffList sl; + public AdminList al; public ActivityLog acl; public RankManager rm; public CommandBlocker cb; @@ -108,6 +109,7 @@ public class TotalFreedomMod extends JavaPlugin public BanManager bm; public IndefiniteBanList im; public PermissionManager pem; + public ProtectArea pa; public Reddit rd; public GameRuleHandler gr; public CommandSpy cs; @@ -204,7 +206,7 @@ public class TotalFreedomMod extends JavaPlugin wm = new WorldManager(); lv = new LogViewer(); sql = new SQLite(); - sl = new StaffList(); + al = new AdminList(); acl = new ActivityLog(); rm = new RankManager(); cb = new CommandBlocker(); @@ -227,6 +229,7 @@ public class TotalFreedomMod extends JavaPlugin bm = new BanManager(); im = new IndefiniteBanList(); pem = new PermissionManager(); + pa = new ProtectArea(); rd = new Reddit(); gr = new GameRuleHandler(); snp = new SignBlocker(); @@ -281,6 +284,15 @@ public class TotalFreedomMod extends JavaPlugin // Metrics @ https://bstats.org/plugin/bukkit/TotalFreedomMod/2966 new Metrics(this, 2966); + // Add spawnpoints later - https://github.com/TotalFreedom/TotalFreedomMod/issues/438 + new BukkitRunnable() + { + @Override + public void run() + { + plugin.pa.autoAddSpawnpoints(); + } + }.runTaskLater(plugin, 60L); // little workaround to stop spigot from autorestarting - causing AMP to detach from process. SpigotConfig.config.set("settings.restart-on-crash", false); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/staff/ActivityLog.java b/src/main/java/me/totalfreedom/totalfreedommod/admin/ActivityLog.java similarity index 97% rename from src/main/java/me/totalfreedom/totalfreedommod/staff/ActivityLog.java rename to src/main/java/me/totalfreedom/totalfreedommod/admin/ActivityLog.java index 565d4051..41ab9505 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/staff/ActivityLog.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/admin/ActivityLog.java @@ -1,4 +1,4 @@ -package me.totalfreedom.totalfreedommod.staff; +package me.totalfreedom.totalfreedommod.admin; import com.google.common.collect.Maps; import java.util.Map; @@ -167,7 +167,7 @@ public class ActivityLog extends FreedomService public void onPlayerJoin(PlayerJoinEvent event) { Player player = event.getPlayer(); - if (plugin.sl.isStaff(player)) + if (plugin.al.isAdmin(player)) { getActivityLog(event.getPlayer()).addLogin(); plugin.acl.save(); @@ -179,7 +179,7 @@ public class ActivityLog extends FreedomService public void onPlayerQuit(PlayerQuitEvent event) { Player player = event.getPlayer(); - if (plugin.sl.isStaff(player)) + if (plugin.al.isAdmin(player)) { getActivityLog(event.getPlayer()).addLogout(); plugin.acl.save(); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/staff/ActivityLogEntry.java b/src/main/java/me/totalfreedom/totalfreedommod/admin/ActivityLogEntry.java similarity index 98% rename from src/main/java/me/totalfreedom/totalfreedommod/staff/ActivityLogEntry.java rename to src/main/java/me/totalfreedom/totalfreedommod/admin/ActivityLogEntry.java index 56302845..7904e35f 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/staff/ActivityLogEntry.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/admin/ActivityLogEntry.java @@ -1,4 +1,4 @@ -package me.totalfreedom.totalfreedommod.staff; +package me.totalfreedom.totalfreedommod.admin; import com.google.common.collect.Lists; import java.time.Instant; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/staff/StaffMember.java b/src/main/java/me/totalfreedom/totalfreedommod/admin/Admin.java similarity index 91% rename from src/main/java/me/totalfreedom/totalfreedommod/staff/StaffMember.java rename to src/main/java/me/totalfreedom/totalfreedommod/admin/Admin.java index 41d80d42..86b3d6f2 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/staff/StaffMember.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/admin/Admin.java @@ -1,4 +1,4 @@ -package me.totalfreedom.totalfreedommod.staff; +package me.totalfreedom.totalfreedommod.admin; import java.sql.ResultSet; import java.sql.SQLException; @@ -17,7 +17,7 @@ import me.totalfreedom.totalfreedommod.util.FUtil; import org.apache.commons.lang.StringUtils; import org.bukkit.entity.Player; -public class StaffMember +public class Admin { @Getter @@ -27,7 +27,7 @@ public class StaffMember private boolean active = true; @Getter @Setter - private Rank rank = Rank.TRIAL_MOD; + private Rank rank = Rank.SUPER_ADMIN; @Getter private final List ips = new ArrayList<>(); @Getter @@ -47,15 +47,18 @@ public class StaffMember private String acFormat = null; @Getter @Setter + private Boolean oldTags = false; + @Getter + @Setter private String ampUsername = null; - public StaffMember(Player player) + public Admin(Player player) { this.name = player.getName(); this.ips.add(FUtil.getIp(player)); } - public StaffMember(ResultSet resultSet) + public Admin(ResultSet resultSet) { try { @@ -69,6 +72,7 @@ public class StaffMember this.commandSpy = resultSet.getBoolean("command_spy"); this.potionSpy = resultSet.getBoolean("potion_spy"); this.acFormat = resultSet.getString("ac_format"); + this.oldTags = resultSet.getBoolean("old_tags"); this.ampUsername = resultSet.getString("amp_username"); } catch (SQLException e) @@ -90,6 +94,7 @@ public class StaffMember .append("- Is Active: ").append(active).append("\n") .append("- Potion Spy: ").append(potionSpy).append("\n") .append("- Admin Chat Format: ").append(acFormat).append("\n") + .append("- Old Tags: ").append(oldTags).append("\n") .append("- AMP Username: ").append(ampUsername).append("\n"); return output.toString(); @@ -108,6 +113,7 @@ public class StaffMember put("command_spy", commandSpy); put("potion_spy", potionSpy); put("ac_format", acFormat); + put("old_tags", oldTags); put("amp_username", ampUsername); }}; return map; @@ -156,7 +162,7 @@ public class StaffMember if (!active) { - if (getRank().isAtLeast(Rank.MOD)) + if (getRank().isAtLeast(Rank.TELNET_ADMIN)) { if (plugin.btb != null) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java b/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java new file mode 100644 index 00000000..8d2f5b54 --- /dev/null +++ b/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java @@ -0,0 +1,370 @@ +package me.totalfreedom.totalfreedommod.admin; + +import com.google.common.collect.Maps; +import com.google.common.collect.Sets; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.TimeUnit; +import lombok.Getter; +import me.totalfreedom.totalfreedommod.FreedomService; +import me.totalfreedom.totalfreedommod.config.ConfigEntry; +import me.totalfreedom.totalfreedommod.rank.Rank; +import me.totalfreedom.totalfreedommod.util.FLog; +import me.totalfreedom.totalfreedommod.util.FUtil; +import org.bukkit.Bukkit; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class AdminList extends FreedomService +{ + @Getter + private final Set allAdmins = Sets.newHashSet(); // Includes disabled admins + // Only active admins below + @Getter + private final Set activeAdmins = Sets.newHashSet(); + private final Map nameTable = Maps.newHashMap(); + private final Map ipTable = Maps.newHashMap(); + public final List verifiedNoAdmins = new ArrayList<>(); + public final Map> verifiedNoAdminIps = Maps.newHashMap(); + public static List vanished = new ArrayList<>(); + + @Override + public void onStart() + { + load(); + deactivateOldEntries(false); + } + + @Override + public void onStop() + { + } + + public void load() + { + allAdmins.clear(); + try + { + ResultSet adminSet = plugin.sql.getAdminList(); + { + while (adminSet.next()) + { + Admin admin = new Admin(adminSet); + allAdmins.add(admin); + } + } + } + catch (SQLException e) + { + FLog.severe("Failed to load adminlist: " + e.getMessage()); + } + + updateTables(); + FLog.info("Loaded " + allAdmins.size() + " admins (" + nameTable.size() + " active, " + ipTable.size() + " IPs)"); + } + + public void messageAllAdmins(String message) + { + for (Player player : server.getOnlinePlayers()) + { + if (isAdmin(player)) + { + player.sendMessage(message); + } + } + } + + public synchronized boolean isAdminSync(CommandSender sender) + { + return isAdmin(sender); + } + + public List getActiveAdminNames() + { + List names = new ArrayList(); + for (Admin admin : activeAdmins) + { + names.add(admin.getName()); + } + return names; + } + + public boolean isAdmin(CommandSender sender) + { + if (!(sender instanceof Player)) + { + return true; + } + + Admin admin = getAdmin((Player)sender); + + return admin != null && admin.isActive(); + } + + public boolean isTelnetAdmin(CommandSender sender) + { + Admin admin = getAdmin(sender); + if (admin == null) + { + return false; + } + + return admin.getRank().ordinal() >= Rank.TELNET_ADMIN.ordinal(); + } + + public boolean isSeniorAdmin(CommandSender sender) + { + Admin admin = getAdmin(sender); + if (admin == null) + { + return false; + } + + return admin.getRank().ordinal() >= Rank.SENIOR_ADMIN.ordinal(); + } + + public Admin getAdmin(CommandSender sender) + { + if (sender instanceof Player) + { + return getAdmin((Player)sender); + } + + return getEntryByName(sender.getName()); + } + + public Admin getAdmin(Player player) + { + // Find admin + String ip = FUtil.getIp(player); + Admin admin = getEntryByName(player.getName()); + + // Admin by name + if (admin != null) + { + // Check if we're in online mode, + // Or the players IP is in the admin entry + if (Bukkit.getOnlineMode() || admin.getIps().contains(ip)) + { + if (!admin.getIps().contains(ip)) + { + // Add the new IP if we have to + admin.addIp(ip); + save(admin); + updateTables(); + } + return admin; + } + } + + // Admin by ip + admin = getEntryByIp(ip); + if (admin != null) + { + // Set the new username + String oldName = admin.getName(); + admin.setName(player.getName()); + plugin.sql.updateAdminName(oldName, admin.getName()); + updateTables(); + } + + return null; + } + + public Admin getEntryByName(String name) + { + return nameTable.get(name.toLowerCase()); + } + + public Admin getEntryByIp(String ip) + { + return ipTable.get(ip); + } + + public Admin getEntryByIpFuzzy(String needleIp) + { + final Admin directAdmin = getEntryByIp(needleIp); + if (directAdmin != null) + { + return directAdmin; + } + + for (String ip : ipTable.keySet()) + { + if (FUtil.fuzzyIpMatch(needleIp, ip, 3)) + { + return ipTable.get(ip); + } + } + + return null; + } + + public void updateLastLogin(Player player) + { + final Admin admin = getAdmin(player); + if (admin == null) + { + return; + } + + admin.setLastLogin(new Date()); + admin.setName(player.getName()); + save(admin); + } + + public boolean isAdminImpostor(Player player) + { + return getEntryByName(player.getName()) != null && !isAdmin(player) && !isVerifiedAdmin(player); + } + + public boolean isVerifiedAdmin(Player player) + { + return verifiedNoAdmins.contains(player.getName()) && verifiedNoAdminIps.get(player.getName()).contains(FUtil.getIp(player)); + } + + public boolean isIdentityMatched(Player player) + { + if (Bukkit.getOnlineMode()) + { + return true; + } + + Admin admin = getAdmin(player); + return admin == null ? false : admin.getName().equalsIgnoreCase(player.getName()); + } + + public boolean addAdmin(Admin admin) + { + if (!admin.isValid()) + { + logger.warning("Could not add admin: " + admin.getName() + " Admin is missing details!"); + return false; + } + + // Store admin, update views + allAdmins.add(admin); + updateTables(); + + // Save admin + plugin.sql.addAdmin(admin); + + return true; + } + + public boolean removeAdmin(Admin admin) + { + if (admin.getRank().isAtLeast(Rank.TELNET_ADMIN)) + { + if (plugin.btb != null) + { + plugin.btb.killTelnetSessions(admin.getName()); + } + } + + // Remove admin, update views + if (!allAdmins.remove(admin)) + { + return false; + } + updateTables(); + + // Unsave admin + plugin.sql.removeAdmin(admin); + + return true; + } + + public void updateTables() + { + activeAdmins.clear(); + nameTable.clear(); + ipTable.clear(); + + for (Admin admin : allAdmins) + { + if (!admin.isActive()) + { + continue; + } + + activeAdmins.add(admin); + nameTable.put(admin.getName().toLowerCase(), admin); + + for (String ip : admin.getIps()) + { + ipTable.put(ip, admin); + } + + } + } + + public Set getAdminNames() + { + return nameTable.keySet(); + } + + public Set getAdminIps() + { + return ipTable.keySet(); + } + + public void save(Admin admin) + { + try + { + ResultSet currentSave = plugin.sql.getAdminByName(admin.getName()); + for (Map.Entry entry : admin.toSQLStorable().entrySet()) + { + Object storedValue = plugin.sql.getValue(currentSave, entry.getKey(), entry.getValue()); + if (storedValue != null && !storedValue.equals(entry.getValue()) || storedValue == null && entry.getValue() != null || entry.getValue() == null) + { + plugin.sql.setAdminValue(admin, entry.getKey(), entry.getValue()); + } + } + } + catch (SQLException e) + { + FLog.severe("Failed to save admin: " + e.getMessage()); + } + } + + public void deactivateOldEntries(boolean verbose) + { + for (Admin admin : allAdmins) + { + if (!admin.isActive() || admin.getRank().isAtLeast(Rank.SENIOR_ADMIN)) + { + continue; + } + + final Date lastLogin = admin.getLastLogin(); + final long lastLoginHours = TimeUnit.HOURS.convert(new Date().getTime() - lastLogin.getTime(), TimeUnit.MILLISECONDS); + + if (lastLoginHours < ConfigEntry.ADMINLIST_CLEAN_THESHOLD_HOURS.getInteger()) + { + continue; + } + + if (verbose) + { + FUtil.adminAction("TotalFreedomMod", "Deactivating admin " + admin.getName() + ", inactive for " + lastLoginHours + " hours", true); + } + + admin.setActive(false); + save(admin); + } + + updateTables(); + } + + public boolean isVanished(String player) + { + return vanished.contains(player); + } +} \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/banning/BanManager.java b/src/main/java/me/totalfreedom/totalfreedommod/banning/BanManager.java index c07a3979..31292a97 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/banning/BanManager.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/banning/BanManager.java @@ -271,7 +271,7 @@ public class BanManager extends FreedomService final Player player = event.getPlayer(); final PlayerData data = plugin.pl.getData(player); - if (!plugin.sl.isStaff(player)) + if (!plugin.al.isAdmin(player)) { return; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/EditBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/EditBlocker.java index a27c4248..0a7217e0 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/EditBlocker.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/EditBlocker.java @@ -30,7 +30,7 @@ public class EditBlocker extends FreedomService return; } - if (plugin.sl.isStaffSync(event.getPlayer())) + if (plugin.al.isAdminSync(event.getPlayer())) { fPlayer.setEditBlocked(false); return; @@ -49,7 +49,7 @@ public class EditBlocker extends FreedomService return; } - if (plugin.sl.isStaffSync(event.getPlayer())) + if (plugin.al.isAdminSync(event.getPlayer())) { fPlayer.setEditBlocked(false); return; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/EventBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/EventBlocker.java index 0e774701..fb792036 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/EventBlocker.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/EventBlocker.java @@ -148,7 +148,7 @@ public class EventBlocker extends FreedomService @EventHandler(priority = EventPriority.NORMAL) public void onPlayerDropItem(PlayerDropItemEvent event) { - if (!plugin.sl.isStaff(event.getPlayer())) + if (!plugin.al.isAdmin(event.getPlayer())) { event.setCancelled(true); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java index b2dfadb2..b7df3bbe 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java @@ -90,7 +90,7 @@ public class InteractBlocker extends FreedomService { case WATER_BUCKET: { - if (plugin.sl.isStaff(player) || ConfigEntry.ALLOW_WATER_PLACE.getBoolean()) + if (plugin.al.isAdmin(player) || ConfigEntry.ALLOW_WATER_PLACE.getBoolean()) { break; } @@ -103,7 +103,7 @@ public class InteractBlocker extends FreedomService case LAVA_BUCKET: { - if (plugin.sl.isStaff(player) || ConfigEntry.ALLOW_LAVA_PLACE.getBoolean()) + if (plugin.al.isAdmin(player) || ConfigEntry.ALLOW_LAVA_PLACE.getBoolean()) { break; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/PVPBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/PVPBlocker.java index de388454..b6efd382 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/PVPBlocker.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/PVPBlocker.java @@ -61,7 +61,7 @@ public class PVPBlocker extends FreedomService } } - if (player != null & !plugin.sl.isStaff(player)) + if (player != null & !plugin.al.isAdmin(player)) { if (player.getGameMode() == GameMode.CREATIVE) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlocker.java index 0f19a90e..9e893180 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlocker.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlocker.java @@ -171,7 +171,7 @@ public class CommandBlocker extends FreedomService for (String part : commandParts) { - if (command.startsWith("/") && !plugin.sl.isStaff(sender) && (part.contains("#copy") || part.contains("#clipboard"))) + if (command.startsWith("/") && !plugin.al.isAdmin(sender) && (part.contains("#copy") || part.contains("#clipboard"))) { FUtil.playerMsg(sender, "WorldEdit copy variables are disabled."); return true; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlockerRank.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlockerRank.java index 91a145cf..84f7b6eb 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlockerRank.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlockerRank.java @@ -1,7 +1,7 @@ package me.totalfreedom.totalfreedommod.blocking.command; import me.totalfreedom.totalfreedommod.TotalFreedomMod; -import me.totalfreedom.totalfreedommod.staff.StaffMember; +import me.totalfreedom.totalfreedommod.admin.Admin; import me.totalfreedom.totalfreedommod.rank.Rank; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -40,10 +40,10 @@ public enum CommandBlockerRank return TELNET; } - StaffMember staffMember = TotalFreedomMod.plugin().sl.getAdmin(sender); - if (staffMember != null) + Admin admin = TotalFreedomMod.plugin().al.getAdmin(sender); + if (admin != null) { - if (staffMember.getRank() == Rank.ADMIN) + if (admin.getRank() == Rank.SENIOR_ADMIN) { return SENIOR; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/bridge/BukkitTelnetBridge.java b/src/main/java/me/totalfreedom/totalfreedommod/bridge/BukkitTelnetBridge.java index d8c3d397..607ad49d 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/bridge/BukkitTelnetBridge.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/bridge/BukkitTelnetBridge.java @@ -10,7 +10,7 @@ import me.totalfreedom.bukkittelnet.api.TelnetPreLoginEvent; import me.totalfreedom.bukkittelnet.api.TelnetRequestDataTagsEvent; import me.totalfreedom.bukkittelnet.session.ClientSession; import me.totalfreedom.totalfreedommod.FreedomService; -import me.totalfreedom.totalfreedommod.staff.StaffMember; +import me.totalfreedom.totalfreedommod.admin.Admin; import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.util.FLog; import org.bukkit.entity.Player; @@ -43,15 +43,15 @@ public class BukkitTelnetBridge extends FreedomService return; } - final StaffMember staffMember = plugin.sl.getEntryByIpFuzzy(ip); + final Admin admin = plugin.al.getEntryByIpFuzzy(ip); - if (staffMember == null || !staffMember.isActive() || !staffMember.getRank().hasConsoleVariant()) + if (admin == null || !admin.isActive() || !admin.getRank().hasConsoleVariant()) { return; } event.setBypassPassword(true); - event.setName(staffMember.getName()); + event.setName(admin.getName()); } @EventHandler(priority = EventPriority.NORMAL) @@ -77,14 +77,14 @@ public class BukkitTelnetBridge extends FreedomService boolean isTelnetAdmin = false; boolean isSeniorAdmin = false; - final StaffMember staffMember = plugin.sl.getAdmin(player); - if (staffMember != null) + final Admin admin = plugin.al.getAdmin(player); + if (admin != null) { - boolean active = staffMember.isActive(); + boolean active = admin.isActive(); isAdmin = active; - isSeniorAdmin = active && staffMember.getRank() == Rank.ADMIN; - isTelnetAdmin = active && (isSeniorAdmin || staffMember.getRank() == Rank.MOD); + isSeniorAdmin = active && admin.getRank() == Rank.SENIOR_ADMIN; + isTelnetAdmin = active && (isSeniorAdmin || admin.getRank() == Rank.TELNET_ADMIN); } playerTags.put("tfm.admin.isAdmin", isAdmin); @@ -121,22 +121,22 @@ public class BukkitTelnetBridge extends FreedomService return bukkitTelnetPlugin; } - public List getConnectedAdmins() + public List getConnectedAdmins() { - List staffMembers = new ArrayList<>(); + List admins = new ArrayList<>(); final BukkitTelnet telnet = getBukkitTelnetPlugin(); if (telnet != null) { for (ClientSession session : telnet.appender.getSessions()) { - StaffMember staffMember = plugin.sl.getEntryByName(session.getUserName().toLowerCase()); - if (staffMember != null && !staffMembers.contains(staffMember)) + Admin admin = plugin.al.getEntryByName(session.getUserName().toLowerCase()); + if (admin != null && !admins.contains(admin)) { - staffMembers.add(staffMember); + admins.add(admin); } } } - return staffMembers; + return admins; } public void killTelnetSessions(final String name) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/bridge/LibsDisguisesBridge.java b/src/main/java/me/totalfreedom/totalfreedommod/bridge/LibsDisguisesBridge.java index bf3cdca0..fd9df426 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/bridge/LibsDisguisesBridge.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/bridge/LibsDisguisesBridge.java @@ -63,7 +63,7 @@ public class LibsDisguisesBridge extends FreedomService return null; } - public void undisguiseAll(boolean staff) + public void undisguiseAll(boolean admins) { try { @@ -78,7 +78,7 @@ public class LibsDisguisesBridge extends FreedomService { if (DisguiseAPI.isDisguised(player)) { - if (!staff && plugin.sl.isStaff(player)) + if (!admins && plugin.al.isAdmin(player)) { continue; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/caging/Cager.java b/src/main/java/me/totalfreedom/totalfreedommod/caging/Cager.java index 504d9f72..f006955c 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/caging/Cager.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/caging/Cager.java @@ -31,7 +31,7 @@ public class Cager extends FreedomService { Player player = event.getPlayer(); if (player == null - || plugin.sl.isStaff(player)) + || plugin.al.isAdmin(player)) { return; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_staffchat.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_adminchat.java similarity index 69% rename from src/main/java/me/totalfreedom/totalfreedommod/command/Command_staffchat.java rename to src/main/java/me/totalfreedom/totalfreedommod/command/Command_adminchat.java index 2d47ccf4..20431c73 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_staffchat.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_adminchat.java @@ -7,9 +7,12 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) -@CommandParameters(description = "Talk privately with other staff on the server.", usage = "/ [message]", aliases = "o,sc") -public class Command_staffchat extends FreedomCommand +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandParameters( + description = "Talk privately with other administrators on the server.", + usage = "/ [message...]", + aliases = "o,ac") +public class Command_adminchat extends FreedomCommand { @Override @@ -25,11 +28,11 @@ public class Command_staffchat extends FreedomCommand FPlayer userinfo = plugin.pl.getPlayer(playerSender); userinfo.setAdminChat(!userinfo.inAdminChat()); - msg("Toggled your staff chat " + (userinfo.inAdminChat() ? "on" : "off") + "."); + msg("Toggled your admin chat " + (userinfo.inAdminChat() ? "on" : "off") + "."); } else { - plugin.cm.staffChat(sender, StringUtils.join(args, " ")); + plugin.cm.adminChat(sender, StringUtils.join(args, " ")); } return true; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_staffinfo.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_admininfo.java similarity index 72% rename from src/main/java/me/totalfreedom/totalfreedommod/command/Command_staffinfo.java rename to src/main/java/me/totalfreedom/totalfreedommod/command/Command_admininfo.java index 8284a31b..f3f05af6 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_staffinfo.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_admininfo.java @@ -11,22 +11,22 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @CommandPermissions(level = Rank.OP, source = SourceType.BOTH) -@CommandParameters(description = "Information on how to apply for admin.", usage = "/", aliases = "si") -public class Command_staffinfo extends FreedomCommand +@CommandParameters(description = "Information on how to apply for admin.", usage = "/", aliases = "ai") +public class Command_admininfo extends FreedomCommand { @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - List staffInfo = ConfigEntry.STAFF_INFO.getStringList(); + List adminInfo = ConfigEntry.ADMIN_INFO.getStringList(); - if (staffInfo.isEmpty()) + if (adminInfo.isEmpty()) { - msg("The staff information section of the config.yml file has not been configured.", ChatColor.RED); + msg("The admin information section of the config.yml file has not been configured.", ChatColor.RED); } else { - msg(FUtil.colorize(StringUtils.join(staffInfo, "\n"))); + msg(FUtil.colorize(StringUtils.join(adminInfo, "\n"))); } return true; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_staffmode.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_adminmode.java similarity index 70% rename from src/main/java/me/totalfreedom/totalfreedommod/command/Command_staffmode.java rename to src/main/java/me/totalfreedom/totalfreedommod/command/Command_adminmode.java index f9984011..ae6647d4 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_staffmode.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_adminmode.java @@ -10,9 +10,9 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.MOD, source = SourceType.BOTH) -@CommandParameters(description = "Denies joining of operators and only allows staff members to join.", usage = "/ [on | off]") -public class Command_staffmode extends FreedomCommand +@CommandPermissions(level = Rank.TELNET_ADMIN, source = SourceType.BOTH) +@CommandParameters(description = "Denies joining of operators and only allows admins to join.", usage = "/ [on | off]") +public class Command_adminmode extends FreedomCommand { @Override @@ -25,19 +25,19 @@ public class Command_staffmode extends FreedomCommand if (args[0].equalsIgnoreCase("off")) { - ConfigEntry.STAFF_ONLY_MODE.setBoolean(false); - FUtil.staffAction(sender.getName(), "Opening the server to all players.", true); + ConfigEntry.ADMIN_ONLY_MODE.setBoolean(false); + FUtil.adminAction(sender.getName(), "Opening the server to all players.", true); return true; } else if (args[0].equalsIgnoreCase("on")) { - ConfigEntry.STAFF_ONLY_MODE.setBoolean(true); - FUtil.staffAction(sender.getName(), "Closing the server to non-staff.", true); + ConfigEntry.ADMIN_ONLY_MODE.setBoolean(true); + FUtil.adminAction(sender.getName(), "Closing the server to non-admins.", true); for (Player player : server.getOnlinePlayers()) { - if (!isStaff(player)) + if (!isAdmin(player)) { - player.kickPlayer("Server is now closed to non-staff."); + player.kickPlayer("Server is now closed to non-admins."); } } return true; @@ -49,7 +49,7 @@ public class Command_staffmode extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (args.length == 1 && plugin.sl.isStaff(sender) && !(sender instanceof Player)) + if (args.length == 1 && plugin.al.isAdmin(sender) && !(sender instanceof Player)) { return Arrays.asList("on", "off"); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_staffworld.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_adminworld.java similarity index 88% rename from src/main/java/me/totalfreedom/totalfreedommod/command/Command_staffworld.java rename to src/main/java/me/totalfreedom/totalfreedommod/command/Command_adminworld.java index 82db13cc..bf1406eb 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_staffworld.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_adminworld.java @@ -12,10 +12,10 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @CommandPermissions(level = Rank.OP, source = SourceType.BOTH) -@CommandParameters(description = "Allows for staff to configure time, and weather of the AdminWorld, and allows for staff and ops to go to the AdminWorld.", +@CommandParameters(description = "Allows for admins to configure time, and weather of the AdminWorld, and allows for admins and ops to go to the AdminWorld.", usage = "/ [time | weather ]", aliases = "aw") -public class Command_staffworld extends FreedomCommand +public class Command_adminworld extends FreedomCommand { private enum CommandMode @@ -63,7 +63,7 @@ public class Command_staffworld extends FreedomCommand World adminWorld = null; try { - adminWorld = plugin.wm.staffworld.getWorld(); + adminWorld = plugin.wm.adminworld.getWorld(); } catch (Exception ex) { @@ -76,8 +76,8 @@ public class Command_staffworld extends FreedomCommand } else { - msg("Going to the StaffWorld."); - plugin.wm.staffworld.sendToWorld(playerSender); + msg("Going to the AdminWorld."); + plugin.wm.adminworld.sendToWorld(playerSender); } break; @@ -91,8 +91,8 @@ public class Command_staffworld extends FreedomCommand WorldTime timeOfDay = WorldTime.getByAlias(args[1]); if (timeOfDay != null) { - plugin.wm.staffworld.setTimeOfDay(timeOfDay); - msg("StaffWorld time set to: " + timeOfDay.name()); + plugin.wm.adminworld.setTimeOfDay(timeOfDay); + msg("AdminWorld time set to: " + timeOfDay.name()); } else { @@ -115,8 +115,8 @@ public class Command_staffworld extends FreedomCommand WorldWeather weatherMode = WorldWeather.getByAlias(args[1]); if (weatherMode != null) { - plugin.wm.staffworld.setWeatherMode(weatherMode); - msg("StaffWorld weather set to: " + weatherMode.name()); + plugin.wm.adminworld.setWeatherMode(weatherMode); + msg("AdminWorld weather set to: " + weatherMode.name()); } else { @@ -152,7 +152,7 @@ public class Command_staffworld extends FreedomCommand // TODO: Redo this properly private void assertCommandPerms(CommandSender sender, Player playerSender) throws PermissionDeniedException { - if (!(sender instanceof Player) || playerSender == null || !isStaff(sender)) + if (!(sender instanceof Player) || playerSender == null || !isAdmin(sender)) { throw new PermissionDeniedException(); } @@ -177,7 +177,7 @@ public class Command_staffworld extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (!plugin.sl.isStaff(sender)) + if (!plugin.al.isAdmin(sender)) { return Collections.emptyList(); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_adventure.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_adventure.java index 49736cd2..1252dce1 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_adventure.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_adventure.java @@ -28,7 +28,7 @@ public class Command_adventure extends FreedomCommand return true; } - checkRank(Rank.TRIAL_MOD); + checkRank(Rank.SUPER_ADMIN); if (args[0].equals("-a")) { @@ -37,7 +37,7 @@ public class Command_adventure extends FreedomCommand targetPlayer.setGameMode(GameMode.ADVENTURE); } - FUtil.staffAction(sender.getName(), "Changing everyone's gamemode to adventure", false); + FUtil.adminAction(sender.getName(), "Changing everyone's gamemode to adventure", false); msg("Your gamemode has been set to adventure."); return true; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_aeclear.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_aeclear.java index 5fc4ba28..3127abbf 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_aeclear.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_aeclear.java @@ -9,7 +9,7 @@ import org.bukkit.entity.AreaEffectCloud; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Clears lingering potion area effect clouds.", usage = "/", aliases = "aec") public class Command_aeclear extends FreedomCommand { @@ -17,7 +17,7 @@ public class Command_aeclear extends FreedomCommand @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - FUtil.staffAction(sender.getName(), "Removing all area effect clouds.", true); + FUtil.adminAction(sender.getName(), "Removing all area effect clouds.", true); int removed = 0; for (World world : server.getWorlds()) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_amp.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_amp.java index 45064db9..5f606249 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_amp.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_amp.java @@ -3,7 +3,7 @@ package me.totalfreedom.totalfreedommod.command; import java.util.Arrays; import java.util.Collections; import java.util.List; -import me.totalfreedom.totalfreedommod.staff.StaffMember; +import me.totalfreedom.totalfreedommod.admin.Admin; import me.totalfreedom.totalfreedommod.player.PlayerData; import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.util.FUtil; @@ -12,7 +12,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "Manage your AMP account", usage = "/ ") public class Command_amp extends FreedomCommand { @@ -43,9 +43,9 @@ public class Command_amp extends FreedomCommand if (args[0].equals("create")) { msg("Creating your AMP account...", ChatColor.GREEN); - StaffMember staffMember = getAdmin(playerSender); + Admin admin = getAdmin(playerSender); - if (staffMember.getAmpUsername() != null) + if (admin.getAmpUsername() != null) { msg("You already have an AMP account.", ChatColor.RED); return true; @@ -54,9 +54,9 @@ public class Command_amp extends FreedomCommand String username = sender.getName(); String password = FUtil.randomString(30); - staffMember.setAmpUsername(username); - plugin.sl.save(staffMember); - plugin.sl.updateTables(); + admin.setAmpUsername(username); + plugin.al.save(admin); + plugin.al.updateTables(); plugin.amp.createAccount(username, password); plugin.dc.sendAMPInfo(playerData, username, password); @@ -65,9 +65,9 @@ public class Command_amp extends FreedomCommand } else if (args[0].equals("resetpassword")) { - StaffMember staffMember = getAdmin(playerSender); + Admin admin = getAdmin(playerSender); - if (staffMember.getAmpUsername() == null) + if (admin.getAmpUsername() == null) { msg("You do not have an AMP account.", ChatColor.RED); return true; @@ -75,7 +75,7 @@ public class Command_amp extends FreedomCommand msg("Resetting your password...", ChatColor.GREEN); - String username = staffMember.getAmpUsername(); + String username = admin.getAmpUsername(); String password = FUtil.randomString(30); plugin.amp.setPassword(username,password); plugin.dc.sendAMPInfo(playerData, username, password); @@ -90,7 +90,7 @@ public class Command_amp extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (args.length == 1 && plugin.sl.isAdmin(sender)) + if (args.length == 1 && plugin.al.isSeniorAdmin(sender)) { return Arrays.asList("create", "resetpassword"); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_announce.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_announce.java index 8e216bc1..4abaf2b0 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_announce.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_announce.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Make an announcement anonymously to operators.", usage = "/ ") public class Command_announce extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autoclear.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autoclear.java index 37a74954..66aa34f5 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autoclear.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autoclear.java @@ -5,7 +5,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Toggle whether or not a player has their inventory automatically cleared when they join", usage = "/ ") public class Command_autoclear extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autotp.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autotp.java index 5b50a5f5..f52e82b5 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autotp.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autotp.java @@ -5,7 +5,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Toggle whether or not a player is automatically teleported when they join", usage = "/ ") public class Command_autotp extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java index 163530be..06cb6c0f 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java @@ -18,7 +18,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH, blockHostConsole = true) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH, blockHostConsole = true) @CommandParameters(description = "Bans the specified player.", usage = "/ [reason] [-nrb | -q]", aliases = "gtfo") public class Command_ban extends FreedomCommand { @@ -151,7 +151,7 @@ public class Command_ban extends FreedomCommand bcast.append(" - Reason: ").append(ChatColor.YELLOW).append(reason); } msg(sender, ChatColor.GRAY + username + " has been banned and IP is: " + StringUtils.join(ips, ", ")); - FUtil.staffAction(sender.getName(), String.format(bcast.toString()), true); + FUtil.adminAction(sender.getName(), String.format(bcast.toString()), true); } // Kick player and handle others on IP diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banip.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banip.java index 7a408d2a..272960cc 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banip.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banip.java @@ -11,7 +11,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH, blockHostConsole = true) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH, blockHostConsole = true) @CommandParameters(description = "Bans the specified ip.", usage = "/ [reason] [-q]") public class Command_banip extends FreedomCommand { @@ -72,7 +72,7 @@ public class Command_banip extends FreedomCommand { // Broadcast FLog.info(ChatColor.RED + sender.getName() + " - Banned the IP " + ip); - String message = ChatColor.RED + sender.getName() + " - Banned " + (plugin.sl.isStaff(player) ? "the IP " + ip : "an IP"); + String message = ChatColor.RED + sender.getName() + " - Banned " + (plugin.al.isAdmin(player) ? "the IP " + ip : "an IP"); player.sendMessage(message); } } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banlist.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banlist.java index 366559c5..b16883a2 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banlist.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banlist.java @@ -18,9 +18,9 @@ public class Command_banlist extends FreedomCommand { if (args[0].equalsIgnoreCase("purge")) { - checkRank(Rank.ADMIN); + checkRank(Rank.SENIOR_ADMIN); - FUtil.staffAction(sender.getName(), "Purging the ban list", true); + FUtil.adminAction(sender.getName(), "Purging the ban list", true); int amount = plugin.bm.purge(); msg("Purged " + amount + " player bans."); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banname.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banname.java index 0d0ccd70..2c6c977d 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banname.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banname.java @@ -10,7 +10,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH, blockHostConsole = true) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH, blockHostConsole = true) @CommandParameters(description = "Bans the specified name.", usage = "/ [reason] [-q]") public class Command_banname extends FreedomCommand { @@ -55,7 +55,7 @@ public class Command_banname extends FreedomCommand if (!silent) { - FUtil.staffAction(sender.getName(), "Banned the name " + name, true); + FUtil.adminAction(sender.getName(), "Banned the name " + name, true); } Player player = getPlayer(name); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockcmd.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockcmd.java index 73c536d9..32a42f8f 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockcmd.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockcmd.java @@ -8,7 +8,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Block all commands for everyone on the server, or a specific player.", usage = "/ <-a | purge | >", aliases = "blockcommands,blockcommand,bc,bcmd") public class Command_blockcmd extends FreedomCommand { @@ -23,7 +23,7 @@ public class Command_blockcmd extends FreedomCommand if (args[0].equals("purge")) { - FUtil.staffAction(sender.getName(), "Unblocking commands for all players", true); + FUtil.adminAction(sender.getName(), "Unblocking commands for all players", true); int counter = 0; for (Player player : server.getOnlinePlayers()) { @@ -40,18 +40,18 @@ public class Command_blockcmd extends FreedomCommand if (args[0].equals("-a")) { - FUtil.staffAction(sender.getName(), "Blocking commands for all non-staff", true); + FUtil.adminAction(sender.getName(), "Blocking commands for all non-admins", true); int counter = 0; for (Player player : server.getOnlinePlayers()) { - if (isStaff(player)) + if (isAdmin(player)) { continue; } counter += 1; plugin.pl.getPlayer(player).setCommandsBlocked(true); - msg(player, "Your commands have been blocked by a staff member.", ChatColor.RED); + msg(player, "Your commands have been blocked by an admin.", ChatColor.RED); } msg("Blocked commands for " + counter + " players."); @@ -66,9 +66,9 @@ public class Command_blockcmd extends FreedomCommand return true; } - if (isStaff(player)) + if (isAdmin(player)) { - msg(player.getName() + " is a staff member, and cannot have their commands blocked."); + msg(player.getName() + " is an admin, and cannot have their commands blocked."); return true; } @@ -76,7 +76,7 @@ public class Command_blockcmd extends FreedomCommand if (!playerdata.allCommandsBlocked()) { playerdata.setCommandsBlocked(true); - FUtil.staffAction(sender.getName(), "Blocking all commands for " + player.getName(), true); + FUtil.adminAction(sender.getName(), "Blocking all commands for " + player.getName(), true); msg("Blocked commands for " + player.getName() + "."); } else diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockedit.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockedit.java index cc948d7e..70b9f15d 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockedit.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockedit.java @@ -10,7 +10,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Restricts/unrestricts block modification abilities for everyone on the server or a certain player.", usage = "/ [[-s] [reason] | list | purge | all]") public class Command_blockedit extends FreedomCommand { @@ -46,7 +46,7 @@ public class Command_blockedit extends FreedomCommand if (args[0].equals("purge")) { - FUtil.staffAction(sender.getName(), "Unblocking block modification abilities for all players.", true); + FUtil.adminAction(sender.getName(), "Unblocking block modification abilities for all players.", true); int count = 0; for (final Player player : this.server.getOnlinePlayers()) { @@ -63,11 +63,11 @@ public class Command_blockedit extends FreedomCommand if (args[0].equals("all")) { - FUtil.staffAction(sender.getName(), "Blocking block modification abilities for all non-staff.", true); + FUtil.adminAction(sender.getName(), "Blocking block modification abilities for all non-admins.", true); int counter = 0; for (final Player player : this.server.getOnlinePlayers()) { - if (!plugin.sl.isStaff(player)) + if (!plugin.al.isAdmin(player)) { final FPlayer playerdata = plugin.pl.getPlayer(player); playerdata.setEditBlocked(true); @@ -105,20 +105,20 @@ public class Command_blockedit extends FreedomCommand final FPlayer pd = plugin.pl.getPlayer(player2); if (pd.isEditBlocked()) { - FUtil.staffAction(sender.getName(), "Unblocking block modification abilities for " + player2.getName(), true); + FUtil.adminAction(sender.getName(), "Unblocking block modification abilities for " + player2.getName(), true); pd.setEditBlocked(false); msg("Unblocking block modification abilities for " + player2.getName()); msg(player2, "Your block modification abilities have been restored.", ChatColor.RED); } else { - if (plugin.sl.isStaff(player2)) + if (plugin.al.isAdmin(player2)) { msg(player2.getName() + " is an admin, and cannot have their block edits blocked."); return true; } - FUtil.staffAction(sender.getName(), "Blocking block modification abilities for " + player2.getName(), true); + FUtil.adminAction(sender.getName(), "Blocking block modification abilities for " + player2.getName(), true); pd.setEditBlocked(true); if (smite) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockpvp.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockpvp.java index 32498376..d9393dcb 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockpvp.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockpvp.java @@ -10,7 +10,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Toggle PVP mode for everyone or a certain player.", usage = "/ [[-s] [reason] | list | purge | all]", aliases = "pvpblock,pvpmode") public class Command_blockpvp extends FreedomCommand { @@ -46,7 +46,7 @@ public class Command_blockpvp extends FreedomCommand if (args[0].equals("purge")) { - FUtil.staffAction(sender.getName(), "Enabling PVP for all players.", true); + FUtil.adminAction(sender.getName(), "Enabling PVP for all players.", true); int count = 0; for (Player player : server.getOnlinePlayers()) { @@ -64,11 +64,11 @@ public class Command_blockpvp extends FreedomCommand if (args[0].equals("all")) { - FUtil.staffAction(sender.getName(), "Disabling PVP for all non-staff", true); + FUtil.adminAction(sender.getName(), "Disabling PVP for all non-admins", true); int counter = 0; for (Player player : server.getOnlinePlayers()) { - if (!plugin.sl.isStaff(player)) + if (!plugin.al.isAdmin(player)) { final FPlayer playerdata = plugin.pl.getPlayer(player); playerdata.setPvpBlocked(true); @@ -106,20 +106,20 @@ public class Command_blockpvp extends FreedomCommand final FPlayer pd = plugin.pl.getPlayer(p); if (pd.isPvpBlocked()) { - FUtil.staffAction(sender.getName(), "Enabling PVP for " + p.getName(), true); + FUtil.adminAction(sender.getName(), "Enabling PVP for " + p.getName(), true); pd.setPvpBlocked(false); msg("Enabling PVP for " + p.getName()); msg(p, "Your PVP have been enabled.", ChatColor.GREEN); } else { - if (plugin.sl.isStaff(p)) + if (plugin.al.isAdmin(p)) { msg(p.getName() + " is an admin, and cannot have their PVP disabled."); return true; } - FUtil.staffAction(sender.getName(), "Disabling PVP for " + p.getName(), true); + FUtil.adminAction(sender.getName(), "Disabling PVP for " + p.getName(), true); pd.setPvpBlocked(true); if (smite) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockredstone.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockredstone.java index 1dfc7a43..312abcce 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockredstone.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockredstone.java @@ -8,7 +8,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Blocks redstone on the server.", usage = "/", aliases = "bre") public class Command_blockredstone extends FreedomCommand { @@ -18,14 +18,14 @@ public class Command_blockredstone extends FreedomCommand if (ConfigEntry.ALLOW_REDSTONE.getBoolean()) { ConfigEntry.ALLOW_REDSTONE.setBoolean(false); - FUtil.staffAction(sender.getName(), "Blocking all redstone", true); + FUtil.adminAction(sender.getName(), "Blocking all redstone", true); new BukkitRunnable() { public void run() { if (!ConfigEntry.ALLOW_REDSTONE.getBoolean()) { - FUtil.staffAction("TotalFreedom", "Unblocking all redstone", false); + FUtil.adminAction("TotalFreedom", "Unblocking all redstone", false); ConfigEntry.ALLOW_REDSTONE.setBoolean(true); } } @@ -34,7 +34,7 @@ public class Command_blockredstone extends FreedomCommand else { ConfigEntry.ALLOW_REDSTONE.setBoolean(true); - FUtil.staffAction(sender.getName(), "Unblocking all redstone", true); + FUtil.adminAction(sender.getName(), "Unblocking all redstone", true); } return true; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cage.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cage.java index 95535a5f..df4f1eba 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cage.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cage.java @@ -15,7 +15,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Place a cage around someone with certain blocks, or someone's player head.", usage = "/ [head | block] [playername | blockname]") public class Command_cage extends FreedomCommand { @@ -30,7 +30,7 @@ public class Command_cage extends FreedomCommand String skullName = null; if ("purge".equals(args[0])) { - FUtil.staffAction(sender.getName(), "Uncaging all players", true); + FUtil.adminAction(sender.getName(), "Uncaging all players", true); for (Player player : server.getOnlinePlayers()) { final FPlayer fPlayer = plugin.pl.getPlayer(player); @@ -101,11 +101,11 @@ public class Command_cage extends FreedomCommand if (outerMaterial == Material.PLAYER_HEAD) { - FUtil.staffAction(sender.getName(), "Caging " + player.getName() + " in " + skullName, true); + FUtil.adminAction(sender.getName(), "Caging " + player.getName() + " in " + skullName, true); } else { - FUtil.staffAction(sender.getName(), "Caging " + player.getName(), true); + FUtil.adminAction(sender.getName(), "Caging " + player.getName(), true); } return true; } @@ -113,7 +113,7 @@ public class Command_cage extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (!plugin.sl.isStaff(sender)) + if (!plugin.al.isAdmin(sender)) { return null; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cake.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cake.java index 40afd1de..9b38f804 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cake.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cake.java @@ -10,7 +10,7 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; -@CommandPermissions(level = Rank.MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "For the people that are still alive - gives a cake to everyone on the server.", usage = "/") public class Command_cake extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cartsit.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cartsit.java index 722c4a1b..fe66cdd4 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cartsit.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cartsit.java @@ -16,7 +16,7 @@ public class Command_cartsit extends FreedomCommand { Player targetPlayer = playerSender; - if (args.length == 1 && plugin.sl.isStaff(sender)) + if (args.length == 1 && plugin.al.isAdmin(sender)) { targetPlayer = getPlayer(args[0]); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearchat.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearchat.java index f6d590ed..35ed9dee 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearchat.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearchat.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Clears the chat.", usage = "/", aliases = "cc") public class Command_clearchat extends FreedomCommand { @@ -16,7 +16,7 @@ public class Command_clearchat extends FreedomCommand { for (Player player : server.getOnlinePlayers()) { - if (!plugin.sl.isStaff(player)) + if (!plugin.al.isAdmin(player)) { for (int i = 0; i < 100; i++) { @@ -24,7 +24,7 @@ public class Command_clearchat extends FreedomCommand } } } - FUtil.staffAction(sender.getName(), "Cleared chat", true); + FUtil.adminAction(sender.getName(), "Cleared chat", true); return true; } } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cleardiscordqueue.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cleardiscordqueue.java index a9b0b152..8346fb70 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cleardiscordqueue.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cleardiscordqueue.java @@ -5,7 +5,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_CONSOLE) +@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_CONSOLE) @CommandParameters(description = "Clear the discord message queue.", usage = "/") public class Command_cleardiscordqueue extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearinventory.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearinventory.java index e946d2bc..f005d52f 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearinventory.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearinventory.java @@ -29,11 +29,11 @@ public class Command_clearinventory extends FreedomCommand } else { - if (plugin.sl.isStaff(sender)) + if (plugin.al.isAdmin(sender)) { if (args[0].equals("-a")) { - FUtil.staffAction(sender.getName(), "Clearing everyone's inventory", true); + FUtil.adminAction(sender.getName(), "Clearing everyone's inventory", true); for (Player player : server.getOnlinePlayers()) { player.getInventory().clear(); @@ -67,7 +67,7 @@ public class Command_clearinventory extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (args.length == 1 && plugin.sl.isStaff(sender)) + if (args.length == 1 && plugin.al.isAdmin(sender)) { List players = FUtil.getPlayerList(); players.add("-a"); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cmdspy.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cmdspy.java index c31e1d5b..6a6a8f8c 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cmdspy.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cmdspy.java @@ -1,12 +1,12 @@ package me.totalfreedom.totalfreedommod.command; -import me.totalfreedom.totalfreedommod.staff.StaffMember; +import me.totalfreedom.totalfreedommod.admin.Admin; import me.totalfreedom.totalfreedommod.rank.Rank; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "Spy on commands", usage = "/", aliases = "commandspy") public class Command_cmdspy extends FreedomCommand { @@ -14,11 +14,11 @@ public class Command_cmdspy extends FreedomCommand @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - StaffMember staffMember = plugin.sl.getAdmin(playerSender); - staffMember.setCommandSpy(!staffMember.getCommandSpy()); - msg("CommandSpy " + (staffMember.getCommandSpy() ? "enabled." : "disabled.")); - plugin.sl.save(staffMember); - plugin.sl.updateTables(); + Admin admin = plugin.al.getAdmin(playerSender); + admin.setCommandSpy(!admin.getCommandSpy()); + msg("CommandSpy " + (admin.getCommandSpy() ? "enabled." : "disabled.")); + plugin.al.save(admin); + plugin.al.updateTables(); return true; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_consolesay.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_consolesay.java index 6193e32c..745e20ed 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_consolesay.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_consolesay.java @@ -8,7 +8,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.MOD, source = SourceType.ONLY_CONSOLE) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_CONSOLE) @CommandParameters(description = "Telnet/Console command - Send a chat message with chat formatting over telnet.", usage = "/ ", aliases = "csay") public class Command_consolesay extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cookie.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cookie.java index aec2d717..764981f4 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cookie.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cookie.java @@ -11,7 +11,7 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; -@CommandPermissions(level = Rank.MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "For those who have no friends - gives a cookie to everyone on the server.", usage = "/") public class Command_cookie extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_creative.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_creative.java index 92bf02ee..c81edfab 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_creative.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_creative.java @@ -28,7 +28,7 @@ public class Command_creative extends FreedomCommand return true; } - checkRank(Rank.TRIAL_MOD); + checkRank(Rank.SUPER_ADMIN); if (args[0].equals("-a")) { @@ -37,7 +37,7 @@ public class Command_creative extends FreedomCommand targetPlayer.setGameMode(GameMode.CREATIVE); } - FUtil.staffAction(sender.getName(), "Changing everyone's gamemode to creative", false); + FUtil.adminAction(sender.getName(), "Changing everyone's gamemode to creative", false); msg("Your gamemode has been set to creative."); return true; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_curse.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_curse.java index 85f81ac6..c17b9eea 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_curse.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_curse.java @@ -9,7 +9,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "Curse someone - sends a cursed texture pack to the specified player.", usage = "/ ") public class Command_curse extends FreedomCommand { @@ -57,7 +57,7 @@ public class Command_curse extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (args.length == 1 && plugin.sl.isStaff(sender) && FUtil.isExecutive(sender.getName())) + if (args.length == 1 && plugin.al.isAdmin(sender) && FUtil.isExecutive(sender.getName())) { return FUtil.getPlayerList(); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_denick.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_denick.java index cd395cfa..a03aacb0 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_denick.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_denick.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Essentials Interface Command - Remove the nickname of all players on the server.", usage = "/") public class Command_denick extends FreedomCommand { @@ -20,7 +20,7 @@ public class Command_denick extends FreedomCommand return true; } - FUtil.staffAction(sender.getName(), "Removing all nicknames", false); + FUtil.adminAction(sender.getName(), "Removing all nicknames", false); for (Player player : server.getOnlinePlayers()) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java index 0b989867..56d7e129 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java @@ -9,7 +9,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Deop a player", usage = "/ ") public class Command_deop extends FreedomCommand { @@ -35,7 +35,7 @@ public class Command_deop extends FreedomCommand if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName().toLowerCase().contains(targetName) || player.getName().contains(targetName) || player.getDisplayName().contains(targetName)) { - if (player.isOp() && !plugin.sl.isVanished(player)) + if (player.isOp() && !plugin.al.isVanished(player)) { matchedPlayerNames.add(player.getName()); player.setOp(false); @@ -48,7 +48,7 @@ public class Command_deop extends FreedomCommand { if (!silent) { - FUtil.staffAction(sender.getName(), "De-opping " + StringUtils.join(matchedPlayerNames, ", "), false); + FUtil.adminAction(sender.getName(), "De-opping " + StringUtils.join(matchedPlayerNames, ", "), false); } } else diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deopall.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deopall.java index b0eedd51..1eb990cf 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deopall.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deopall.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH, blockHostConsole = true) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH, blockHostConsole = true) @CommandParameters(description = "Deop everyone on the server.", usage = "/") public class Command_deopall extends FreedomCommand { @@ -14,7 +14,7 @@ public class Command_deopall extends FreedomCommand @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - FUtil.staffAction(sender.getName(), "De-opping all players on the server", true); + FUtil.adminAction(sender.getName(), "De-opping all players on the server", true); for (Player player : server.getOnlinePlayers()) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_disguisetoggle.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_disguisetoggle.java index ff6ac8d1..64121cf0 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_disguisetoggle.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_disguisetoggle.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Toggle LibsDisguises for everyone online.", usage = "/", aliases = "dtoggle") public class Command_disguisetoggle extends FreedomCommand { @@ -20,7 +20,7 @@ public class Command_disguisetoggle extends FreedomCommand return true; } - FUtil.staffAction(sender.getName(), (plugin.ldb.isDisguisesEnabled() ? "Disabling" : "Enabling") + " disguises", false); + FUtil.adminAction(sender.getName(), (plugin.ldb.isDisguisesEnabled() ? "Disabling" : "Enabling") + " disguises", false); if (plugin.ldb.isDisguisesEnabled()) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_donator.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_donator.java index a0100491..50ec5bc2 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_donator.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_donator.java @@ -13,7 +13,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_CONSOLE) +@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_CONSOLE) @CommandParameters(description = "Adds or removes donators", usage = "/ [forum_user]") public class Command_donator extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_doom.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_doom.java index b9b06cae..2cf8579c 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_doom.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_doom.java @@ -1,6 +1,6 @@ package me.totalfreedom.totalfreedommod.command; -import me.totalfreedom.totalfreedommod.staff.StaffMember; +import me.totalfreedom.totalfreedommod.admin.Admin; import me.totalfreedom.totalfreedommod.banning.Ban; import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.punishments.Punishment; @@ -17,7 +17,7 @@ import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.util.Vector; -@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_CONSOLE, blockHostConsole = true) +@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_CONSOLE, blockHostConsole = true) @CommandParameters(description = "Sends the specified player to their doom.", usage = "/ [reason]") public class Command_doom extends FreedomCommand { @@ -38,23 +38,23 @@ public class Command_doom extends FreedomCommand return true; } - FUtil.staffAction(sender.getName(), "Casting oblivion over " + player.getName(), true); + FUtil.adminAction(sender.getName(), "Casting oblivion over " + player.getName(), true); FUtil.bcastMsg(player.getName() + " will be completely obliviated!", ChatColor.RED); final String ip = player.getAddress().getAddress().getHostAddress().trim(); // Remove from admin - StaffMember staffMember = getAdmin(player); - if (staffMember != null) + Admin admin = getAdmin(player); + if (admin != null) { - FUtil.staffAction(sender.getName(), "Removing " + player.getName() + " from the staff list", true); - staffMember.setActive(false); - plugin.sl.save(staffMember); - plugin.sl.updateTables(); - plugin.amp.updateAccountStatus(staffMember); + FUtil.adminAction(sender.getName(), "Removing " + player.getName() + " from the admin list", true); + admin.setActive(false); + plugin.al.save(admin); + plugin.al.updateTables(); + plugin.amp.updateAccountStatus(admin); if (plugin.dc.enabled && ConfigEntry.DISCORD_ROLE_SYNC.getBoolean()) { - plugin.dc.syncRoles(staffMember, plugin.pl.getData(staffMember.getName()).getDiscordID()); + plugin.dc.syncRoles(admin, plugin.pl.getData(admin.getName()).getDiscordID()); } } @@ -120,7 +120,7 @@ public class Command_doom extends FreedomCommand public void run() { // message - FUtil.staffAction(sender.getName(), "Banning " + player.getName(), true); + FUtil.adminAction(sender.getName(), "Banning " + player.getName(), true); msg(sender, player.getName() + " has been banned and IP is: " + ip); // generate explosion diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_entitywipe.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_entitywipe.java index 47333c69..e82b27c1 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_entitywipe.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_entitywipe.java @@ -12,7 +12,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Remove various server entities that may cause lag, such as dropped items, minecarts, and boats.", usage = "/ [name | -a]", aliases = "ew,rd") public class Command_entitywipe extends FreedomCommand { @@ -54,7 +54,7 @@ public class Command_entitywipe extends FreedomCommand entityName = FUtil.formatName(type.name()); } - FUtil.staffAction(sender.getName(), "Purging all " + (type != null ? entityName + "s" : "entities"), true); + FUtil.adminAction(sender.getName(), "Purging all " + (type != null ? entityName + "s" : "entities"), true); int count; if (type != null) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_expel.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_expel.java index 13ab38c8..e1c9c279 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_expel.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_expel.java @@ -11,7 +11,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.util.Vector; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "Push people away from you.", usage = "/ [radius] [strength]") public class Command_expel extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explode.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explode.java index 372016da..ef4068b1 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explode.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explode.java @@ -10,7 +10,7 @@ import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.util.Vector; -@CommandPermissions(level = Rank.ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Surprise someone.", usage = "/ ") public class Command_explode extends FreedomCommand { @@ -58,7 +58,7 @@ public class Command_explode extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (args.length == 1 && plugin.sl.isStaff(sender)) + if (args.length == 1 && plugin.al.isAdmin(sender)) { return FUtil.getPlayerList(); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explosivearrows.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explosivearrows.java index 4f21376a..62aa0f8d 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explosivearrows.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explosivearrows.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.MOD, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "Make arrows explode", usage = "/", aliases = "ea") public class Command_explosivearrows extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_findip.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_findip.java index 300d136e..b374f569 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_findip.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_findip.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Shows all IPs registered to a player", usage = "/ ", aliases = "showip,listip") public class Command_findip extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_forcekill.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_forcekill.java index a7c4d1ce..4877457f 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_forcekill.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_forcekill.java @@ -13,7 +13,7 @@ public class Command_forcekill extends FreedomCommand @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (!plugin.sl.isMod(sender) && !senderIsConsole) + if (!plugin.al.isAdmin(sender) && !senderIsConsole) { playerSender.setHealth(0); return true; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_freeze.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_freeze.java index c0405010..8c50aec3 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_freeze.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_freeze.java @@ -8,7 +8,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Freeze/Unfreeze a specified player, or all non-admins on the server.", usage = "/ [target | purge]", aliases = "fr") public class Command_freeze extends FreedomCommand { @@ -23,15 +23,15 @@ public class Command_freeze extends FreedomCommand if (!gFreeze) { - FUtil.staffAction(sender.getName(), "Disabling global player freeze", false); + FUtil.adminAction(sender.getName(), "Disabling global player freeze", false); msg("Players are now free to move."); return true; } - FUtil.staffAction(sender.getName(), "Enabling global player freeze", false); + FUtil.adminAction(sender.getName(), "Enabling global player freeze", false); for (Player player : server.getOnlinePlayers()) { - if (!isStaff(player)) + if (!isAdmin(player)) { player.sendTitle(ChatColor.RED + "You've been globally frozen.", ChatColor.YELLOW + "Please be patient and you will be unfrozen shortly.", 20, 100, 60); msg(player, "You have been globally frozen due to an OP breaking the rules, please wait and you will be unfrozen soon.", ChatColor.RED); @@ -44,10 +44,10 @@ public class Command_freeze extends FreedomCommand if (args[0].equals("purge")) { - FUtil.staffAction(sender.getName(), "Unfreezing all players", false); + FUtil.adminAction(sender.getName(), "Unfreezing all players", false); for (Player player : server.getOnlinePlayers()) { - if (!isStaff(player)) + if (!isAdmin(player)) { player.sendTitle(ChatColor.GREEN + "You've been unfrozen.", ChatColor.YELLOW + "You may now move again.", 20, 100, 60); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_fuckoff.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_fuckoff.java index e1cf22e2..ab5cb382 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_fuckoff.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_fuckoff.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "You'll never even see it coming - repeatedly push players away from you until command is untoggled.", usage = "/ ") public class Command_fuckoff extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_health.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_health.java index 617c7d2c..f17867b8 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_health.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_health.java @@ -13,7 +13,7 @@ import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitTask; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "View server health, such as ticks-per-second, memory, etc.", usage = "/") public class Command_health extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_hubworld.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_hubworld.java index 97ab3f3f..4e9eff37 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_hubworld.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_hubworld.java @@ -152,7 +152,7 @@ public class Command_hubworld extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (!plugin.sl.isStaff(sender)) + if (!plugin.al.isAdmin(sender)) { return Collections.emptyList(); } @@ -177,7 +177,7 @@ public class Command_hubworld extends FreedomCommand // TODO: Redo this properly private void assertCommandPerms(CommandSender sender, Player playerSender) throws PermissionDeniedException { - if (!(sender instanceof Player) || playerSender == null || !plugin.sl.isAdmin(playerSender)) + if (!(sender instanceof Player) || playerSender == null || !plugin.al.isSeniorAdmin(playerSender)) { throw new PermissionDeniedException(); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_indefban.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_indefban.java index e645bbd3..32f5f1bb 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_indefban.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_indefban.java @@ -5,7 +5,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_CONSOLE) +@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_CONSOLE) @CommandParameters(description = "Reload the indefinite ban list.", usage = "/ reload", aliases = "ib") public class Command_indefban extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invis.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invis.java index b1e4a8a9..1dc749d4 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invis.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invis.java @@ -26,11 +26,11 @@ public class Command_invis extends FreedomCommand { if (args[0].equalsIgnoreCase("clear")) { - if(!plugin.sl.isStaff(sender)) + if(!plugin.al.isAdmin(sender)) return noPerms(); else { - FUtil.staffAction(sender.getName(), "Clearing all invisibility potion effects from all players", true); + FUtil.adminAction(sender.getName(), "Clearing all invisibility potion effects from all players", true); clear = true; } } @@ -43,10 +43,10 @@ public class Command_invis extends FreedomCommand for (Player player : server.getOnlinePlayers()) { - if (player.hasPotionEffect(PotionEffectType.INVISIBILITY) && !plugin.sl.isVanished(player)) + if (player.hasPotionEffect(PotionEffectType.INVISIBILITY) && !plugin.al.isVanished(player)) { players.add(player.getName()); - if (clear && !plugin.sl.isStaff(player)) + if (clear && !plugin.al.isAdmin(player)) { player.removePotionEffect((PotionEffectType.INVISIBILITY)); clears++; @@ -71,7 +71,7 @@ public class Command_invis extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (args.length == 1 && plugin.sl.isStaff(sender)) + if (args.length == 1 && plugin.al.isAdmin(sender)) return Arrays.asList("clear"); return Collections.emptyList(); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invsee.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invsee.java index d4d06ea1..68f31b62 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invsee.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invsee.java @@ -35,7 +35,7 @@ public class Command_invsee extends FreedomCommand return true; } - if (plugin.sl.isStaff(player) && !plugin.sl.isStaff(playerSender)) + if (plugin.al.isAdmin(player) && !plugin.al.isAdmin(playerSender)) { msg("You cannot spy on administrators."); return true; @@ -44,7 +44,7 @@ public class Command_invsee extends FreedomCommand Inventory inv; - if (plugin.sl.isStaff(player)) + if (plugin.al.isAdmin(player)) { if (args.length > 1) { @@ -75,7 +75,7 @@ public class Command_invsee extends FreedomCommand return true; } - if (!plugin.sl.isStaff(player)) + if (!plugin.al.isAdmin(player)) { if (args.length > 1) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_jumppads.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_jumppads.java index 1ec12b73..604ce9be 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_jumppads.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_jumppads.java @@ -95,7 +95,7 @@ public class Command_jumppads extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (!plugin.sl.isStaff(sender)) + if (!plugin.al.isAdmin(sender)) { return Collections.emptyList(); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kick.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kick.java index 1c575ce0..c18f503b 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kick.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kick.java @@ -12,7 +12,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Kick the specified player.", usage = "/ [reason] [-q]") public class Command_kick extends FreedomCommand { @@ -65,11 +65,11 @@ public class Command_kick extends FreedomCommand { if (reason != null) { - FUtil.staffAction(sender.getName(), "Kicking " + player.getName() + " - Reason: " + reason, true); + FUtil.adminAction(sender.getName(), "Kicking " + player.getName() + " - Reason: " + reason, true); } else { - FUtil.staffAction(sender.getName(), "Kicking " + player.getName(), true); + FUtil.adminAction(sender.getName(), "Kicking " + player.getName(), true); } } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kicknoob.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kicknoob.java index ce1ce71d..b8b8c810 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kicknoob.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kicknoob.java @@ -7,21 +7,21 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.MOD, source = SourceType.BOTH) -@CommandParameters(description = "Kick all non-staff on server.", usage = "/", aliases = "kickall") +@CommandPermissions(level = Rank.TELNET_ADMIN, source = SourceType.BOTH) +@CommandParameters(description = "Kick all non-admins on server.", usage = "/", aliases = "kickall") public class Command_kicknoob extends FreedomCommand { @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - FUtil.staffAction(sender.getName(), "Disconnecting all non-staff.", true); + FUtil.adminAction(sender.getName(), "Disconnecting all non-admins.", true); for (Player player : server.getOnlinePlayers()) { - if (!plugin.sl.isStaff(player)) + if (!plugin.al.isAdmin(player)) { - player.kickPlayer(ChatColor.RED + "All non-staff were kicked by " + sender.getName() + "."); + player.kickPlayer(ChatColor.RED + "All non-admins were kicked by " + sender.getName() + "."); } } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lastcmd.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lastcmd.java index f0f4343f..34600c1a 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lastcmd.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lastcmd.java @@ -7,7 +7,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Show the last command the specified player used.", usage = "/ ") public class Command_lastcmd extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkdiscord.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkdiscord.java index 94dca915..a6510fc0 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkdiscord.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkdiscord.java @@ -22,7 +22,7 @@ public class Command_linkdiscord extends FreedomCommand return true; } - if (args.length > 1 && plugin.sl.isStaff(playerSender)) + if (args.length > 1 && plugin.al.isAdmin(playerSender)) { PlayerData playerData = plugin.pl.getData(args[0]); if (playerData == null) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java index f6fcc6b5..d2ee0af0 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java @@ -1,9 +1,9 @@ package me.totalfreedom.totalfreedommod.command; -import de.myzelyam.api.vanish.VanishAPI; import java.util.ArrayList; import java.util.List; -import me.totalfreedom.totalfreedommod.staff.StaffMember; +import me.totalfreedom.totalfreedommod.admin.Admin; +import me.totalfreedom.totalfreedommod.admin.AdminList; import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.rank.Displayable; import me.totalfreedom.totalfreedommod.rank.Rank; @@ -15,7 +15,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @CommandPermissions(level = Rank.IMPOSTOR, source = SourceType.BOTH) -@CommandParameters(description = "Lists the real names of all online players.", usage = "/ [-s | -i | -f | -v]", aliases = "who,lsit") +@CommandParameters(description = "Lists the real names of all online players.", usage = "/ [-a | -i | -f | -v]", aliases = "who,lsit") public class Command_list extends FreedomCommand { @@ -41,20 +41,20 @@ public class Command_list extends FreedomCommand String s = args[0]; switch (s) { - case "-s": + case "-a": { - listFilter = ListFilter.STAFF; + listFilter = ListFilter.ADMINS; break; } case "-v": { - checkRank(Rank.TRIAL_MOD); - listFilter = ListFilter.VANISHED_STAFF; + checkRank(Rank.SUPER_ADMIN); + listFilter = ListFilter.VANISHED_ADMINS; break; } case "-t": { - checkRank(Rank.MOD); + checkRank(Rank.TELNET_ADMIN); listFilter = ListFilter.TELNET_SESSIONS; break; } @@ -83,20 +83,20 @@ public class Command_list extends FreedomCommand List n = new ArrayList<>(); - if (listFilter == ListFilter.TELNET_SESSIONS && plugin.sl.isStaff(sender) && plugin.sl.getAdmin(sender).getRank().isAtLeast(Rank.MOD)) + if (listFilter == ListFilter.TELNET_SESSIONS && plugin.al.isAdmin(sender) && plugin.al.getAdmin(sender).getRank().isAtLeast(Rank.TELNET_ADMIN)) { - List connectedStaffMembers = plugin.btb.getConnectedAdmins(); - onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(connectedStaffMembers.size()) + List connectedAdmins = plugin.btb.getConnectedAdmins(); + onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(connectedAdmins.size()) .append(ChatColor.BLUE) - .append(" staff connected to telnet."); - for (StaffMember staffMember : connectedStaffMembers) + .append(" admins connected to telnet."); + for (Admin admin : connectedAdmins) { - n.add(plugin.rm.getDisplay(staffMember).getColoredTag() + staffMember.getName()); + n.add(plugin.rm.getDisplay(admin).getColoredTag() + admin.getName()); } } else { - onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().size() - VanishAPI.getInvisiblePlayers().size()) + onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().size() - AdminList.vanished.size()) .append(ChatColor.BLUE) .append(" out of a maximum ") .append(ChatColor.RED) @@ -105,19 +105,19 @@ public class Command_list extends FreedomCommand .append(" players online."); for (Player p : server.getOnlinePlayers()) { - if (listFilter == ListFilter.STAFF && !plugin.sl.isStaff(p)) + if (listFilter == ListFilter.ADMINS && !plugin.al.isAdmin(p)) { continue; } - if (listFilter == ListFilter.STAFF && plugin.sl.isVanished(p)) + if (listFilter == ListFilter.ADMINS && plugin.al.isVanished(p.getName())) { continue; } - if (listFilter == ListFilter.VANISHED_STAFF && !plugin.sl.isVanished(p)) + if (listFilter == ListFilter.VANISHED_ADMINS && !plugin.al.isVanished(p.getName())) { continue; } - if (listFilter == ListFilter.IMPOSTORS && !plugin.sl.isAdminImpostor(p)) + if (listFilter == ListFilter.IMPOSTORS && !plugin.al.isAdminImpostor(p)) { continue; } @@ -125,13 +125,20 @@ public class Command_list extends FreedomCommand { continue; } - if (listFilter == ListFilter.PLAYERS && plugin.sl.isVanished(p)) + if (listFilter == ListFilter.PLAYERS && plugin.al.isVanished(p)) { continue; } final Displayable display = plugin.rm.getDisplay(p); - n.add(display.getColoredTag() + p.getName()); + if (!senderIsConsole && plugin.al.isAdmin(playerSender) && plugin.al.getAdmin(playerSender).getOldTags()) + { + n.add(getOldPrefix(display) + p.getName()); + } + else + { + n.add(display.getColoredTag() + p.getName()); + } } } String playerType = listFilter.toString().toLowerCase().replace('_', ' '); @@ -155,12 +162,29 @@ public class Command_list extends FreedomCommand return true; } + public String getOldPrefix(Displayable display) + { + ChatColor color = display.getColor(); + + if (color.equals(ChatColor.AQUA)) + { + color = ChatColor.GOLD; + } + else if (color.equals(ChatColor.GOLD)) + { + color = ChatColor.LIGHT_PURPLE; + } + + String prefix = "[" + display.getAbbr() + "]"; + + return color + prefix; + } private enum ListFilter { PLAYERS, - STAFF, - VANISHED_STAFF, + ADMINS, + VANISHED_ADMINS, TELNET_SESSIONS, FAMOUS_PLAYERS, IMPOSTORS diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lockup.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lockup.java index 4d3d4fb8..92222b16 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lockup.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lockup.java @@ -9,7 +9,7 @@ import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitTask; -@CommandPermissions(level = Rank.ADMIN, source = SourceType.BOTH, blockHostConsole = true) +@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.BOTH, blockHostConsole = true) @CommandParameters(description = "This is evil, and I never should have wrote it - blocks specified player's input.", usage = "/ on | off> [-q]>") public class Command_lockup extends FreedomCommand { @@ -22,7 +22,7 @@ public class Command_lockup extends FreedomCommand { if (args[0].equalsIgnoreCase("all")) { - FUtil.staffAction(sender.getName(), "Locking up all players", true); + FUtil.adminAction(sender.getName(), "Locking up all players", true); for (Player player : server.getOnlinePlayers()) { @@ -32,7 +32,7 @@ public class Command_lockup extends FreedomCommand } else if (args[0].equalsIgnoreCase("purge")) { - FUtil.staffAction(sender.getName(), "Unlocking all players", true); + FUtil.adminAction(sender.getName(), "Unlocking all players", true); for (Player player : server.getOnlinePlayers()) { cancelLockup(player); @@ -59,7 +59,7 @@ public class Command_lockup extends FreedomCommand if (!silent) { - FUtil.staffAction(sender.getName(), "Locking up " + player.getName(), true); + FUtil.adminAction(sender.getName(), "Locking up " + player.getName(), true); } startLockup(player); msg("Locked up " + player.getName() + "."); @@ -76,7 +76,7 @@ public class Command_lockup extends FreedomCommand if (!silent) { - FUtil.staffAction(sender.getName(), "Unlocking " + player.getName(), true); + FUtil.adminAction(sender.getName(), "Unlocking " + player.getName(), true); } cancelLockup(player); msg("Unlocked " + player.getName() + "."); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_logs.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_logs.java index 190245b5..5fae0ac8 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_logs.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_logs.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "Register your connection with the TFM logviewer.", usage = "/ [off]") public class Command_logs extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_makeopregion.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_makeopregion.java index a1e64b00..e61f8642 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_makeopregion.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_makeopregion.java @@ -19,7 +19,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "Make a WorldGuard region for an OP.", usage = "/ ", aliases = "mor") public class Command_makeopregion extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manageshop.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manageshop.java index 30ea0d05..de71f1dd 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manageshop.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manageshop.java @@ -10,7 +10,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_CONSOLE) +@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_CONSOLE) @CommandParameters(description = "Manage the shop", usage = "/ | items: ", aliases = "ms") public class Command_manageshop extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manuallyverify.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manuallyverify.java index 6c875b0a..8141e729 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manuallyverify.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manuallyverify.java @@ -7,7 +7,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Manually verify someone", usage = "/ ", aliases="mv") public class Command_manuallyverify extends FreedomCommand { @@ -39,7 +39,7 @@ public class Command_manuallyverify extends FreedomCommand return true; } - FUtil.staffAction(sender.getName(), "Manually verifying player " + player.getName(), false); + FUtil.adminAction(sender.getName(), "Manually verifying player " + player.getName(), false); player.setOp(true); player.sendMessage(YOU_ARE_OP); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_massmurder.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_massmurder.java index bfa587b7..e5ed5857 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_massmurder.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_massmurder.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "seth's personal command", usage = "/ ", aliases = "genocide") public class Command_massmurder extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_masterbuilderworld.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_masterbuilderworld.java index 1ee29f31..b368a18b 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_masterbuilderworld.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_masterbuilderworld.java @@ -152,7 +152,7 @@ public class Command_masterbuilderworld extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (!plugin.sl.isStaff(sender)) + if (!plugin.al.isAdmin(sender)) { return Collections.emptyList(); } @@ -177,7 +177,7 @@ public class Command_masterbuilderworld extends FreedomCommand // TODO: Redo this properly private void assertCommandPerms(CommandSender sender, Player playerSender) throws PermissionDeniedException { - if (!(sender instanceof Player) || playerSender == null || !plugin.sl.isAdmin(playerSender)) + if (!(sender instanceof Player) || playerSender == null || !plugin.al.isSeniorAdmin(playerSender)) { throw new PermissionDeniedException(); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mbconfig.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mbconfig.java index 7cbc0297..cbc0e349 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mbconfig.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mbconfig.java @@ -65,7 +65,7 @@ public class Command_mbconfig extends FreedomCommand if (data.isMasterBuilder() && plugin.pl.isPlayerImpostor(player)) { - FUtil.staffAction(sender.getName(), "Re-adding " + player.getName() + " to the Master Builder list", true); + FUtil.adminAction(sender.getName(), "Re-adding " + player.getName() + " to the Master Builder list", true); player.setOp(true); player.sendMessage(YOU_ARE_OP); @@ -79,7 +79,7 @@ public class Command_mbconfig extends FreedomCommand } else if (!data.isMasterBuilder()) { - FUtil.staffAction(sender.getName(), "Adding " + player.getName() + " to the Master Builder list", true); + FUtil.adminAction(sender.getName(), "Adding " + player.getName() + " to the Master Builder list", true); data.setMasterBuilder(true); data.setVerification(true); plugin.pl.save(data); @@ -113,7 +113,7 @@ public class Command_mbconfig extends FreedomCommand return true; } - FUtil.staffAction(sender.getName(), "Removing " + data.getName() + " from the Master Builder list", true); + FUtil.adminAction(sender.getName(), "Removing " + data.getName() + " from the Master Builder list", true); data.setMasterBuilder(false); if (data.getDiscordID() == null) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_moblimiter.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_moblimiter.java index 05454acd..2f3d1e94 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_moblimiter.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_moblimiter.java @@ -7,7 +7,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Control mob limiting parameters.", usage = "/ |dragon|giant|ghast|slime>") public class Command_moblimiter extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mobpurge.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mobpurge.java index cb7bcf9c..e6797d8e 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mobpurge.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mobpurge.java @@ -12,7 +12,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Purge all mobs in all worlds.", usage = "/ [name]", aliases = "mp") public class Command_mobpurge extends FreedomCommand { @@ -46,7 +46,7 @@ public class Command_mobpurge extends FreedomCommand mobName = FUtil.formatName(type.name()); } - FUtil.staffAction(sender.getName(), "Purging all " + (type != null ? mobName + "s" : "mobs"), true); + FUtil.adminAction(sender.getName(), "Purging all " + (type != null ? mobName + "s" : "mobs"), true); int count = plugin.ew.purgeMobs(type); msg(count + " " + (type != null ? mobName : "mob") + FUtil.showS(count) + " removed."); return true; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mute.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mute.java index 52f23767..538ff60e 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mute.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mute.java @@ -16,7 +16,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Mutes a player with brute force.", usage = "/ <[-s | -q] [reason] | list | purge | all>", aliases = "stfu") public class Command_mute extends FreedomCommand { @@ -53,7 +53,7 @@ public class Command_mute extends FreedomCommand if (args[0].equals("purge")) { - FUtil.staffAction(sender.getName(), "Unmuting all players.", true); + FUtil.adminAction(sender.getName(), "Unmuting all players.", true); FPlayer info; int count = 0; for (Player mp : server.getOnlinePlayers()) @@ -73,13 +73,13 @@ public class Command_mute extends FreedomCommand if (args[0].equals("all")) { - FUtil.staffAction(sender.getName(), "Muting all non-admins", true); + FUtil.adminAction(sender.getName(), "Muting all non-admins", true); FPlayer playerdata; int counter = 0; for (Player player : server.getOnlinePlayers()) { - if (!plugin.sl.isStaff(player)) + if (!plugin.al.isAdmin(player)) { player.sendTitle(ChatColor.RED + "You've been muted globally.", ChatColor.YELLOW + "Please be patient and you will be unmuted shortly.", 20, 100, 60); playerdata = plugin.pl.getPlayer(player); @@ -120,7 +120,7 @@ public class Command_mute extends FreedomCommand } FPlayer playerdata = plugin.pl.getPlayer(player); - if (plugin.sl.isStaff(player)) + if (plugin.al.isAdmin(player)) { msg(player.getName() + " is an admin, and can't be muted."); return true; @@ -140,7 +140,7 @@ public class Command_mute extends FreedomCommand return true; } - FUtil.staffAction(sender.getName(), "Muting " + player.getName(), true); + FUtil.adminAction(sender.getName(), "Muting " + player.getName(), true); if (smite) { @@ -163,7 +163,7 @@ public class Command_mute extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (!plugin.sl.isStaff(sender)) + if (!plugin.al.isAdmin(sender)) { return null; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mystaff.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_myadmin.java similarity index 76% rename from src/main/java/me/totalfreedom/totalfreedommod/command/Command_mystaff.java rename to src/main/java/me/totalfreedom/totalfreedommod/command/Command_myadmin.java index e9c70f43..b1e4cef0 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mystaff.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_myadmin.java @@ -4,7 +4,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; -import me.totalfreedom.totalfreedommod.staff.StaffMember; +import me.totalfreedom.totalfreedommod.admin.Admin; import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.player.PlayerData; import me.totalfreedom.totalfreedommod.rank.Rank; @@ -15,9 +15,9 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME) -@CommandParameters(description = "Manage your staff entry.", usage = "/ [-o ] | setlogin | clearlogin | setacformat | clearacformat> | oldtags | logstick | syncroles>") -public class Command_mystaff extends FreedomCommand +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) +@CommandParameters(description = "Manage your admin entry.", usage = "/ [-o ] | setlogin | clearlogin | setacformat | clearacformat> | oldtags | logstick | syncroles>") +public class Command_myadmin extends FreedomCommand { @Override @@ -29,13 +29,13 @@ public class Command_mystaff extends FreedomCommand } Player init = null; - StaffMember target = getAdmin(playerSender); + Admin target = getAdmin(playerSender); Player targetPlayer = playerSender; // -o switch if (args[0].equals("-o")) { - checkRank(Rank.ADMIN); + checkRank(Rank.SENIOR_ADMIN); init = playerSender; targetPlayer = getPlayer(args[1]); if (targetPlayer == null) @@ -47,7 +47,7 @@ public class Command_mystaff extends FreedomCommand target = getAdmin(targetPlayer); if (target == null) { - msg("That player is not a staff member", ChatColor.RED); + msg("That player is not an admin", ChatColor.RED); return true; } @@ -72,19 +72,19 @@ public class Command_mystaff extends FreedomCommand if (init == null) { - FUtil.staffAction(sender.getName(), "Clearing my IPs", true); + FUtil.adminAction(sender.getName(), "Clearing my supered IPs", true); } else { - FUtil.staffAction(sender.getName(), "Clearing " + target.getName() + "' IPs", true); + FUtil.adminAction(sender.getName(), "Clearing " + target.getName() + "' supered IPs", true); } int counter = target.getIps().size() - 1; target.clearIPs(); target.addIp(targetIp); - plugin.sl.save(target); - plugin.sl.updateTables(); + plugin.al.save(target); + plugin.al.updateTables(); plugin.pl.syncIps(target); @@ -121,16 +121,16 @@ public class Command_mystaff extends FreedomCommand } else { - msg("You cannot remove that staff members's current IP."); + msg("You cannot remove that admin's current IP."); } return true; } - FUtil.staffAction(sender.getName(), "Removing an IP" + (init == null ? "" : " from " + targetPlayer.getName() + "'s IPs"), true); + FUtil.adminAction(sender.getName(), "Removing a supered IP" + (init == null ? "" : " from " + targetPlayer.getName() + "'s IPs"), true); target.removeIp(args[1]); - plugin.sl.save(target); - plugin.sl.updateTables(); + plugin.al.save(target); + plugin.al.updateTables(); plugin.pl.syncIps(target); @@ -141,7 +141,6 @@ public class Command_mystaff extends FreedomCommand case "setlogin": { - checkRank(Rank.MOD); if (args.length < 2) { return false; @@ -159,43 +158,50 @@ public class Command_mystaff extends FreedomCommand msg("Your login message cannot be more than 100 characters (excluding your rank and your name)", ChatColor.RED); return true; } - FUtil.staffAction(sender.getName(), "Setting personal login message" + (init == null ? "" : " for " + targetPlayer.getName()), false); + FUtil.adminAction(sender.getName(), "Setting personal login message" + (init == null ? "" : " for " + targetPlayer.getName()), false); target.setLoginMessage(message); String previewMessage = plugin.rm.craftLoginMessage(targetPlayer, message); msg((init == null ? "Your" : targetPlayer.getName() + "'s") + " login message is now: "); msg("> " + previewMessage); - plugin.sl.save(target); - plugin.sl.updateTables(); + plugin.al.save(target); + plugin.al.updateTables(); return true; } case "clearlogin": { - checkRank(Rank.MOD); - FUtil.staffAction(sender.getName(), "Clearing personal login message" + (init == null ? "" : " for " + targetPlayer.getName()), false); + FUtil.adminAction(sender.getName(), "Clearing personal login message" + (init == null ? "" : " for " + targetPlayer.getName()), false); target.setLoginMessage(null); - plugin.sl.save(target); - plugin.sl.updateTables(); + plugin.al.save(target); + plugin.al.updateTables(); return true; } - case "setscformat": + case "setacformat": { String format = StringUtils.join(args, " ", 1, args.length); target.setAcFormat(format); - plugin.sl.save(target); - plugin.sl.updateTables(); - msg("Set staff chat format to \"" + format + "\".", ChatColor.GRAY); - String example = format.replace("%name%", "ExampleStaff").replace("%rank%", Rank.MOD.getAbbr()).replace("%rankcolor%", Rank.MOD.getColor().toString()).replace("%msg%", "The quick brown fox jumps over the lazy dog."); + plugin.al.save(target); + plugin.al.updateTables(); + msg("Set admin chat format to \"" + format + "\".", ChatColor.GRAY); + String example = format.replace("%name%", "ExampleAdmin").replace("%rank%", Rank.TELNET_ADMIN.getAbbr()).replace("%rankcolor%", Rank.TELNET_ADMIN.getColor().toString()).replace("%msg%", "The quick brown fox jumps over the lazy dog."); msg(ChatColor.GRAY + "Example: " + FUtil.colorize(example)); return true; } - case "clearscformat": + case "clearacformat": { target.setAcFormat(null); - plugin.sl.save(target); - plugin.sl.updateTables(); - msg("Cleared staff chat format.", ChatColor.GRAY); + plugin.al.save(target); + plugin.al.updateTables(); + msg("Cleared admin chat format.", ChatColor.GRAY); + return true; + } + case "oldtags": + { + target.setOldTags(!target.getOldTags()); + plugin.al.save(target); + plugin.al.updateTables(); + msg((target.getOldTags() ? "Enabled" : "Disabled") + " old tags."); return true; } @@ -242,7 +248,7 @@ public class Command_mystaff extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (!plugin.sl.isStaff(sender)) + if (!plugin.al.isAdmin(sender)) { return Collections.emptyList(); } @@ -269,7 +275,7 @@ public class Command_mystaff extends FreedomCommand { if (args[0].equals("clearip")) { - List ips = plugin.sl.getAdmin(sender).getIps(); + List ips = plugin.al.getAdmin(sender).getIps(); ips.remove(FUtil.getIp((Player) sender)); return ips; } @@ -290,10 +296,10 @@ public class Command_mystaff extends FreedomCommand { if (args[0].equals("-o") && args[2].equals("clearip")) { - StaffMember staffMember = plugin.sl.getEntryByName(args[1]); - if (staffMember != null) + Admin admin = plugin.al.getEntryByName(args[1]); + if (admin != null) { - return staffMember.getIps(); + return admin.getIps(); } } } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickclean.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickclean.java index 14ba4604..de963d8b 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickclean.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickclean.java @@ -16,7 +16,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Essentials Interface Command - Remove illegal chatcodes from nicknames of one or all players on server.", usage = "/ [player]", aliases = "nc") public class Command_nickclean extends FreedomCommand { @@ -53,12 +53,12 @@ public class Command_nickclean extends FreedomCommand return true; } - FUtil.staffAction(sender.getName(), "Cleaning " + player.getName() + "'s nickname", false); + FUtil.adminAction(sender.getName(), "Cleaning " + player.getName() + "'s nickname", false); cleanNickname(player); return true; } - FUtil.staffAction(sender.getName(), "Cleaning all nicknames", false); + FUtil.adminAction(sender.getName(), "Cleaning all nicknames", false); for (final Player player : server.getOnlinePlayers()) { cleanNickname(player); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickfilter.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickfilter.java index 74087862..091fb34c 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickfilter.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickfilter.java @@ -41,11 +41,11 @@ public class Command_nickfilter extends FreedomCommand player = getPlayerByDisplayName(displayName); - if (player == null || plugin.sl.isVanished(player) && !plugin.sl.isStaff(sender)) + if (player == null || plugin.al.isVanished(player) && !plugin.al.isAdmin(sender)) { player = getPlayerByDisplayNameAlt(displayName); - if (player == null || !plugin.sl.isVanished(player) && !plugin.sl.isStaff(sender)) + if (player == null || !plugin.al.isVanished(player) && !plugin.al.isAdmin(sender)) { sender.sendMessage(ChatColor.GRAY + "Can't find player by nickname: " + displayName); return true; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_notes.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_notes.java index 81173fa4..43c63234 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_notes.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_notes.java @@ -13,7 +13,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Manage notes for a player", usage = "/ | remove | clear>") public class Command_notes extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_op.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_op.java index 7b824a7a..968d4804 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_op.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_op.java @@ -36,7 +36,7 @@ public class Command_op extends FreedomCommand if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName().toLowerCase().contains(targetName) || player.getName().contains(targetName) || player.getDisplayName().contains(targetName)) { - if (!player.isOp() && !plugin.sl.isVanished(player)) + if (!player.isOp() && !plugin.al.isVanished(player)) { matchedPlayerNames.add(player.getName()); player.setOp(true); @@ -49,7 +49,7 @@ public class Command_op extends FreedomCommand { if (!silent) { - FUtil.staffAction(sender.getName(), "Opping " + StringUtils.join(matchedPlayerNames, ", "), false); + FUtil.adminAction(sender.getName(), "Opping " + StringUtils.join(matchedPlayerNames, ", "), false); } } else diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opall.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opall.java index 4ce3dd88..b728a7fd 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opall.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opall.java @@ -14,7 +14,7 @@ public class Command_opall extends FreedomCommand @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - FUtil.staffAction(sender.getName(), "Opping all players on the server", false); + FUtil.adminAction(sender.getName(), "Opping all players on the server", false); for (Player player : server.getOnlinePlayers()) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opme.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opme.java index b39e8429..eaadd8fc 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opme.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opme.java @@ -14,7 +14,7 @@ public class Command_opme extends FreedomCommand @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - FUtil.staffAction(sender.getName(), "Opping " + sender.getName(), false); + FUtil.adminAction(sender.getName(), "Opping " + sender.getName(), false); sender.setOp(true); sender.sendMessage(FreedomCommand.YOU_ARE_OP); return true; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ops.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ops.java index 3ac97109..cb7e697f 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ops.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ops.java @@ -42,13 +42,13 @@ public class Command_ops extends FreedomCommand if (args[0].equals("purge")) { - if (!plugin.sl.isStaff(sender)) + if (!plugin.al.isAdmin(sender)) { noPerms(); return true; } - FUtil.staffAction(sender.getName(), "Purging all operators", true); + FUtil.adminAction(sender.getName(), "Purging all operators", true); for (OfflinePlayer player : server.getOperators()) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_orbit.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_orbit.java index 91c25594..b9aeb7ff 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_orbit.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_orbit.java @@ -10,7 +10,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.util.Vector; -@CommandPermissions(level = Rank.MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "POW!!! Right in the kisser! One of these days Alice, straight to the Moon - Sends the specified player into orbit.", usage = "/ [< | stop>]") public class Command_orbit extends FreedomCommand @@ -60,7 +60,7 @@ public class Command_orbit extends FreedomCommand playerdata.startOrbiting(strength); player.setVelocity(new Vector(0, strength, 0)); - FUtil.staffAction(sender.getName(), "Orbiting " + player.getName(), false); + FUtil.adminAction(sender.getName(), "Orbiting " + player.getName(), false); return true; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permissions.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permissions.java index 2c9c8eeb..ecfa2477 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permissions.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permissions.java @@ -15,7 +15,7 @@ public class Command_permissions extends FreedomCommand @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (args.length > 0 && args[0].equals("reload") && plugin.sl.isStaff(sender)) + if (args.length > 0 && args[0].equals("reload") && plugin.al.isAdmin(sender)) { plugin.permissions.load(); plugin.pem.loadPermissionNodes(); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_playtime.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_playtime.java index 493ff68d..276bbd7d 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_playtime.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_playtime.java @@ -3,14 +3,14 @@ package me.totalfreedom.totalfreedommod.command; import java.time.Instant; import java.util.Date; import java.util.List; -import me.totalfreedom.totalfreedommod.staff.ActivityLogEntry; +import me.totalfreedom.totalfreedommod.admin.ActivityLogEntry; import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.util.FUtil; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "Gets your playtime statistics.", usage = "/") public class Command_playtime extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_plugincontrol.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_plugincontrol.java index 7b2313e2..db928089 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_plugincontrol.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_plugincontrol.java @@ -13,7 +13,7 @@ import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginManager; -@CommandPermissions(level = Rank.MOD, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TELNET_ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Enable, disable, or reload a specified plugin, as well as list all plugins on the server.", usage = "/ < > | list>", aliases = "plc") public class Command_plugincontrol extends FreedomCommand { @@ -135,7 +135,7 @@ public class Command_plugincontrol extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (!plugin.sl.isStaff(sender)) + if (!plugin.al.isAdmin(sender)) { return Collections.emptyList(); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potion.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potion.java index 258286d3..67d93388 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potion.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potion.java @@ -41,12 +41,12 @@ public class Command_potion extends FreedomCommand } else if (args[0].equalsIgnoreCase("clearall")) { - if (!(plugin.sl.isStaff(sender) || senderIsConsole)) + if (!(plugin.al.isAdmin(sender) || senderIsConsole)) { noPerms(); return true; } - FUtil.staffAction(sender.getName(), "Cleared all potion effects from all players", true); + FUtil.adminAction(sender.getName(), "Cleared all potion effects from all players", true); for (Player target : server.getOnlinePlayers()) { for (PotionEffect potion_effect : target.getActivePotionEffects()) @@ -76,9 +76,9 @@ public class Command_potion extends FreedomCommand return true; } - if (!plugin.sl.isStaff(sender)) + if (!plugin.al.isAdmin(sender)) { - msg(ChatColor.RED + "Only staff can clear potion effects from other players."); + msg(ChatColor.RED + "Only admins can clear potion effects from other players."); return true; } @@ -104,7 +104,7 @@ public class Command_potion extends FreedomCommand { target = getPlayer(args[4]); - if (target == null || plugin.sl.isVanished(target) && !plugin.sl.isStaff(sender)) + if (target == null || plugin.al.isVanished(target) && !plugin.al.isAdmin(sender)) { msg(FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED); return true; @@ -117,9 +117,9 @@ public class Command_potion extends FreedomCommand return true; } - if (!plugin.sl.isStaff(sender)) + if (!plugin.al.isAdmin(sender)) { - sender.sendMessage(ChatColor.RED + "Only staff can apply potion effects to other players."); + sender.sendMessage(ChatColor.RED + "Only admins can apply potion effects to other players."); return true; } @@ -183,7 +183,7 @@ public class Command_potion extends FreedomCommand { List arguments = new ArrayList<>(); arguments.addAll(Arrays.asList("list", "clear", "add")); - if (plugin.sl.isStaff(sender)) + if (plugin.al.isAdmin(sender)) { arguments.add("clearall"); } @@ -193,7 +193,7 @@ public class Command_potion extends FreedomCommand { if (args[0].equals("clear")) { - if (plugin.sl.isStaff(sender)) + if (plugin.al.isAdmin(sender)) { return FUtil.getPlayerList(); } @@ -217,7 +217,7 @@ public class Command_potion extends FreedomCommand return Arrays.asList(""); } } - else if (args.length == 5 && plugin.sl.isStaff(sender)) + else if (args.length == 5 && plugin.al.isAdmin(sender)) { if (args[0].equals("add")) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potionspy.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potionspy.java index a2fc6133..9a1e7a21 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potionspy.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potionspy.java @@ -4,7 +4,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; -import me.totalfreedom.totalfreedommod.staff.StaffMember; +import me.totalfreedom.totalfreedommod.admin.Admin; import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.util.FUtil; import org.apache.commons.lang.math.NumberUtils; @@ -15,8 +15,8 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.entity.ThrownPotion; -@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME) -@CommandParameters(description = "Allows staff to see potions that are thrown.", usage = "/ | history [player] ", aliases = "potspy") +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) +@CommandParameters(description = "Allows admins to see potions that are thrown.", usage = "/ | history [player] ", aliases = "potspy") public class Command_potionspy extends FreedomCommand { private String titleText = "&8&m------------------&r &ePotionSpy &8&m------------------&r"; @@ -28,11 +28,11 @@ public class Command_potionspy extends FreedomCommand @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - StaffMember staffMember = plugin.sl.getAdmin(playerSender); + Admin admin = plugin.al.getAdmin(playerSender); if (args.length <= 0) { - setPotionSpyState(staffMember, !staffMember.getPotionSpy()); + setPotionSpyState(admin, !admin.getPotionSpy()); return true; } else @@ -41,12 +41,12 @@ public class Command_potionspy extends FreedomCommand { case "enable": case "on": - setPotionSpyState(staffMember, true); + setPotionSpyState(admin, true); break; case "disable": case "off": - setPotionSpyState(staffMember, false); + setPotionSpyState(admin, false); break; case "history": @@ -176,12 +176,12 @@ public class Command_potionspy extends FreedomCommand return true; } - private void setPotionSpyState(StaffMember staffMember, boolean state) + private void setPotionSpyState(Admin admin, boolean state) { - staffMember.setPotionSpy(state); - plugin.sl.save(staffMember); - plugin.sl.updateTables(); - msg("PotionSpy is now " + (staffMember.getPotionSpy() ? "enabled." : "disabled.")); + admin.setPotionSpy(state); + plugin.al.save(admin); + plugin.al.updateTables(); + msg("PotionSpy is now " + (admin.getPotionSpy() ? "enabled." : "disabled.")); } /** diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_protectarea.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_protectarea.java new file mode 100644 index 00000000..1803aba7 --- /dev/null +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_protectarea.java @@ -0,0 +1,104 @@ +package me.totalfreedom.totalfreedommod.command; + +import me.totalfreedom.totalfreedommod.ProtectArea; +import me.totalfreedom.totalfreedommod.config.ConfigEntry; +import me.totalfreedom.totalfreedommod.rank.Rank; +import org.apache.commons.lang.StringUtils; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandParameters( + description = "Protect areas so that only admins can directly modify blocks in those areas. WorldEdit and other such plugins might bypass this.", + usage = "/ | add - + \ No newline at end of file diff --git a/pom.xml b/pom.xml index da9c2b15..032257c0 100644 --- a/pom.xml +++ b/pom.xml @@ -140,6 +140,13 @@ compile + + com.github.MyzelYam + SuperVanish + 6.1.8 + provided + + org.spigotmc spigot @@ -202,6 +209,12 @@ provided + + me.rayzr522 + jsonmessage + 1.0.0 + + com.github.vexsoftware votifier diff --git a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java index 4760a4a3..6625e77a 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java @@ -22,6 +22,7 @@ import me.totalfreedom.totalfreedommod.bridge.EssentialsBridge; import me.totalfreedom.totalfreedommod.bridge.FAWEBridge; import me.totalfreedom.totalfreedommod.bridge.LibsDisguisesBridge; import me.totalfreedom.totalfreedommod.bridge.TFGuildsBridge; +import me.totalfreedom.totalfreedommod.bridge.VanishBridge; import me.totalfreedom.totalfreedommod.bridge.WorldEditBridge; import me.totalfreedom.totalfreedommod.bridge.WorldGuardBridge; import me.totalfreedom.totalfreedommod.caging.Cager; @@ -136,7 +137,7 @@ public class TotalFreedomMod extends JavaPlugin public SignBlocker snp; public EntityWiper ew; public Sitter st; - public VanishHandler vh; + public VanishBridge vb; public AMP amp; //public HubWorldRestrictions hwr; @@ -235,7 +236,7 @@ public class TotalFreedomMod extends JavaPlugin snp = new SignBlocker(); ew = new EntityWiper(); st = new Sitter(); - vh = new VanishHandler(); + vb = new VanishBridge(); amp = new AMP(); // Single admin utils diff --git a/src/main/java/me/totalfreedom/totalfreedommod/VanishHandler.java b/src/main/java/me/totalfreedom/totalfreedommod/VanishHandler.java deleted file mode 100644 index 7d1e586d..00000000 --- a/src/main/java/me/totalfreedom/totalfreedommod/VanishHandler.java +++ /dev/null @@ -1,83 +0,0 @@ -package me.totalfreedom.totalfreedommod; - -import me.totalfreedom.totalfreedommod.util.FLog; -import net.md_5.bungee.api.ChatMessageType; -import net.md_5.bungee.api.chat.TextComponent; -import org.bukkit.ChatColor; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.scheduler.BukkitRunnable; - -public class VanishHandler extends FreedomService -{ - - @Override - public void onStart() - { - } - - @Override - public void onStop() - { - } - - @EventHandler(priority = EventPriority.HIGH) - public void onPlayerJoin(PlayerJoinEvent event) - { - Player player = event.getPlayer(); - - for (Player p : server.getOnlinePlayers()) - { - if (!plugin.al.isAdmin(player) && plugin.al.isVanished(p.getName())) - { - player.hidePlayer(plugin, p); - } - } - - for (Player p : server.getOnlinePlayers()) - { - if (!plugin.al.isAdmin(p) && plugin.al.isVanished(player.getName())) - { - p.hidePlayer(plugin, player); - } - } - - if (plugin.al.isVanished(player.getName())) - { - plugin.esb.setVanished(player.getName(), true); - FLog.info(player.getName() + " joined while still vanished."); - plugin.al.messageAllAdmins(ChatColor.YELLOW + player.getName() + " has joined silently."); - event.setJoinMessage(null); - - new BukkitRunnable() - { - @Override - public void run() - { - if (!plugin.al.isVanished(player.getName())) - { - this.cancel(); - } - - player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(ChatColor.GOLD + "You are hidden from other players.")); - } - }.runTaskTimer(plugin, 0L, 4L); - } - } - - @EventHandler - public void onPlayerLeave(PlayerQuitEvent event) - { - Player player = event.getPlayer(); - - if (plugin.al.isVanished(player.getName())) - { - event.setQuitMessage(null); - FLog.info(player.getName() + " left while still vanished."); - plugin.al.messageAllAdmins(ChatColor.YELLOW + player.getName() + " has left silently."); - } - } -} \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java b/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java index 8d2f5b54..2b4d6c61 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java @@ -2,6 +2,7 @@ package me.totalfreedom.totalfreedommod.admin; import com.google.common.collect.Maps; import com.google.common.collect.Sets; +import de.myzelyam.api.vanish.VanishAPI; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; @@ -31,7 +32,6 @@ public class AdminList extends FreedomService private final Map ipTable = Maps.newHashMap(); public final List verifiedNoAdmins = new ArrayList<>(); public final Map> verifiedNoAdminIps = Maps.newHashMap(); - public static List vanished = new ArrayList<>(); @Override public void onStart() @@ -363,8 +363,8 @@ public class AdminList extends FreedomService updateTables(); } - public boolean isVanished(String player) + public boolean isVanished(Player player) { - return vanished.contains(player); + return VanishAPI.isInvisible(player); } } \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java b/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java new file mode 100644 index 00000000..097309b6 --- /dev/null +++ b/src/main/java/me/totalfreedom/totalfreedommod/bridge/VanishBridge.java @@ -0,0 +1,64 @@ +package me.totalfreedom.totalfreedommod.bridge; + +import de.myzelyam.api.vanish.PlayerHideEvent; +import de.myzelyam.api.vanish.PlayerShowEvent; +import me.totalfreedom.totalfreedommod.FreedomService; +import me.totalfreedom.totalfreedommod.player.PlayerData; +import me.totalfreedom.totalfreedommod.rank.Displayable; +import me.totalfreedom.totalfreedommod.util.FUtil; +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; + +public class VanishBridge extends FreedomService +{ + @Override + public void onStart() + { + } + + @Override + public void onStop() + { + } + + @EventHandler + public void onPlayerUnvanish(PlayerShowEvent event) + { + Player player = event.getPlayer(); + Displayable display = plugin.rm.getDisplay(player); + String tag = display.getColoredTag(); + + if (event.isSilent()) + { + plugin.al.messageAllAdmins(ChatColor.GOLD + player.getName() + " silently unvanished."); + } + else + { + plugin.al.messageAllAdmins(ChatColor.GOLD + player.getName() + " unvanished and is now visible to all players."); + FUtil.bcastMsg(plugin.rm.craftLoginMessage(event.getPlayer(), null)); + plugin.dc.messageChatChannel("**" + player.getName() + " joined the server" + "**"); + } + + PlayerData playerData = plugin.pl.getData(player); + if (playerData.getTag() != null) + { + tag = FUtil.colorize(playerData.getTag()); + } + playerData.setTag(tag); + } + + @EventHandler + public void onPlayerVanish(PlayerHideEvent event) + { + Player player = event.getPlayer(); + if (event.isSilent()) + { + plugin.al.messageAllAdmins(ChatColor.GOLD + player.getName() + " vanished and is now only visible to admins."); + } + else + { + plugin.dc.messageChatChannel("**" + player.getName() + " left the server" + "**"); + } + } +} \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java index d2ee0af0..a3ab50d4 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java @@ -1,9 +1,9 @@ package me.totalfreedom.totalfreedommod.command; +import de.myzelyam.api.vanish.VanishAPI; import java.util.ArrayList; import java.util.List; import me.totalfreedom.totalfreedommod.admin.Admin; -import me.totalfreedom.totalfreedommod.admin.AdminList; import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.rank.Displayable; import me.totalfreedom.totalfreedommod.rank.Rank; @@ -96,7 +96,7 @@ public class Command_list extends FreedomCommand } else { - onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().size() - AdminList.vanished.size()) + onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().size() - VanishAPI.getInvisiblePlayers().size()) .append(ChatColor.BLUE) .append(" out of a maximum ") .append(ChatColor.RED) @@ -109,11 +109,11 @@ public class Command_list extends FreedomCommand { continue; } - if (listFilter == ListFilter.ADMINS && plugin.al.isVanished(p.getName())) + if (listFilter == ListFilter.ADMINS && plugin.al.isVanished(p)) { continue; } - if (listFilter == ListFilter.VANISHED_ADMINS && !plugin.al.isVanished(p.getName())) + if (listFilter == ListFilter.VANISHED_ADMINS && !plugin.al.isVanished(p)) { continue; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_vanish.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_vanish.java new file mode 100644 index 00000000..4a20ae47 --- /dev/null +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_vanish.java @@ -0,0 +1,44 @@ +package me.totalfreedom.totalfreedommod.command; + +import de.myzelyam.api.vanish.VanishAPI; +import me.totalfreedom.totalfreedommod.rank.Rank; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) +@CommandParameters(description = "Hide yourself from other players", usage = "/ [-s]", aliases = "v,ev,evanish") +public class Command_vanish extends FreedomCommand +{ + @Override + public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) + { + if (args.length == 0) + { + if (!VanishAPI.isInvisible(playerSender)) + { + VanishAPI.hidePlayer(playerSender); + } + else + { + VanishAPI.showPlayer(playerSender); + } + } + else if (args[0].equalsIgnoreCase("-s") || args[0].equalsIgnoreCase("-v")) + { + if (!VanishAPI.isInvisible(playerSender)) + { + VanishAPI.getPlugin().getVisibilityChanger().hidePlayer(playerSender, null, true); + } + else + { + VanishAPI.getPlugin().getVisibilityChanger().showPlayer(playerSender, null, true); + } + } + else + { + return false; + } + return true; + } +} \ No newline at end of file From 53038ca3b272255666620b1b3316d4a656ab633d Mon Sep 17 00:00:00 2001 From: Telesphoreo Date: Sat, 15 Aug 2020 17:42:46 -0500 Subject: [PATCH 41/54] fuck intellij --- pom.xml | 4 +- .../me/totalfreedom/totalfreedommod/AMP.java | 8 +- .../totalfreedommod/AntiSpam.java | 4 +- .../totalfreedommod/ChatManager.java | 62 +-- .../totalfreedommod/CommandSpy.java | 4 +- .../totalfreedommod/LoginProcess.java | 20 +- .../totalfreedommod/Monitors.java | 2 +- .../totalfreedom/totalfreedommod/Muter.java | 4 +- .../totalfreedommod/ProtectArea.java | 392 ------------------ .../totalfreedom/totalfreedommod/Reddit.java | 12 +- .../totalfreedommod/ServerPing.java | 4 +- .../totalfreedommod/TotalFreedomMod.java | 20 +- .../totalfreedommod/banning/BanManager.java | 2 +- .../totalfreedommod/blocking/EditBlocker.java | 4 +- .../blocking/EventBlocker.java | 2 +- .../blocking/InteractBlocker.java | 4 +- .../totalfreedommod/blocking/PVPBlocker.java | 2 +- .../blocking/command/CommandBlocker.java | 2 +- .../blocking/command/CommandBlockerRank.java | 8 +- .../bridge/BukkitTelnetBridge.java | 30 +- .../bridge/LibsDisguisesBridge.java | 4 +- .../totalfreedommod/caging/Cager.java | 2 +- .../command/Command_adventure.java | 4 +- .../command/Command_aeclear.java | 4 +- .../totalfreedommod/command/Command_amp.java | 22 +- .../command/Command_announce.java | 2 +- .../command/Command_autoclear.java | 2 +- .../command/Command_autotp.java | 2 +- .../totalfreedommod/command/Command_ban.java | 4 +- .../command/Command_banip.java | 4 +- .../command/Command_banlist.java | 4 +- .../command/Command_banname.java | 4 +- .../command/Command_blockcmd.java | 16 +- .../command/Command_blockedit.java | 14 +- .../command/Command_blockpvp.java | 14 +- .../command/Command_blockredstone.java | 8 +- .../totalfreedommod/command/Command_cage.java | 10 +- .../totalfreedommod/command/Command_cake.java | 2 +- .../command/Command_cartsit.java | 2 +- .../command/Command_clearchat.java | 6 +- .../command/Command_cleardiscordqueue.java | 2 +- .../command/Command_clearinventory.java | 6 +- .../command/Command_cmdspy.java | 14 +- .../command/Command_consolesay.java | 2 +- .../command/Command_cookie.java | 2 +- .../command/Command_creative.java | 4 +- .../command/Command_curse.java | 4 +- .../command/Command_denick.java | 4 +- .../totalfreedommod/command/Command_deop.java | 6 +- .../command/Command_deopall.java | 4 +- .../command/Command_disguisetoggle.java | 4 +- .../command/Command_donator.java | 2 +- .../totalfreedommod/command/Command_doom.java | 24 +- .../command/Command_entitywipe.java | 4 +- .../command/Command_expel.java | 2 +- .../command/Command_explode.java | 4 +- .../command/Command_explosivearrows.java | 2 +- .../command/Command_findip.java | 2 +- .../command/Command_forcekill.java | 2 +- .../command/Command_freeze.java | 12 +- .../command/Command_fuckoff.java | 2 +- .../command/Command_health.java | 2 +- .../command/Command_hubworld.java | 4 +- .../command/Command_indefban.java | 2 +- .../command/Command_invis.java | 10 +- .../command/Command_invsee.java | 6 +- .../command/Command_jumppads.java | 2 +- .../totalfreedommod/command/Command_kick.java | 6 +- .../command/Command_kicknoob.java | 10 +- .../command/Command_lastcmd.java | 2 +- .../command/Command_linkdiscord.java | 2 +- .../totalfreedommod/command/Command_list.java | 72 ++-- .../command/Command_lockup.java | 10 +- .../totalfreedommod/command/Command_logs.java | 2 +- .../command/Command_makeopregion.java | 2 +- .../command/Command_manageshop.java | 2 +- .../command/Command_manuallyverify.java | 4 +- .../command/Command_massmurder.java | 2 +- .../command/Command_masterbuilderworld.java | 4 +- .../command/Command_mbconfig.java | 6 +- .../command/Command_moblimiter.java | 2 +- .../command/Command_mobpurge.java | 4 +- .../totalfreedommod/command/Command_mute.java | 14 +- ...mand_myadmin.java => Command_mystaff.java} | 80 ++-- .../command/Command_nickclean.java | 6 +- .../command/Command_nickfilter.java | 4 +- .../command/Command_notes.java | 2 +- .../totalfreedommod/command/Command_op.java | 4 +- .../command/Command_opall.java | 2 +- .../totalfreedommod/command/Command_opme.java | 2 +- .../totalfreedommod/command/Command_ops.java | 4 +- .../command/Command_orbit.java | 4 +- .../command/Command_permissions.java | 2 +- .../command/Command_playtime.java | 4 +- .../command/Command_plugincontrol.java | 4 +- .../command/Command_potion.java | 20 +- .../command/Command_potionspy.java | 24 +- .../command/Command_protectarea.java | 104 ----- .../command/Command_purgeall.java | 4 +- .../command/Command_rawsay.java | 2 +- .../command/Command_reactionbar.java | 2 +- .../command/Command_report.java | 4 +- .../totalfreedommod/command/Command_ride.java | 2 +- .../totalfreedommod/command/Command_ro.java | 10 +- .../totalfreedommod/command/Command_rock.java | 2 +- .../totalfreedommod/command/Command_say.java | 2 +- .../command/Command_scare.java | 4 +- .../command/Command_serverstats.java | 2 +- .../command/Command_setlimit.java | 4 +- .../command/Command_setspawnworld.java | 8 +- .../command/Command_settotalvotes.java | 2 +- ...nd_saconfig.java => Command_slconfig.java} | 148 +++---- .../command/Command_smite.java | 2 +- .../command/Command_spectate.java | 2 +- .../command/Command_spectator.java | 2 +- ..._adminchat.java => Command_staffchat.java} | 13 +- ..._admininfo.java => Command_staffinfo.java} | 12 +- ..._adminmode.java => Command_staffmode.java} | 20 +- ...dminworld.java => Command_staffworld.java} | 22 +- .../totalfreedommod/command/Command_stop.java | 2 +- .../command/Command_survival.java | 4 +- .../totalfreedommod/command/Command_tag.java | 16 +- .../command/Command_tagnyan.java | 4 +- .../command/Command_tagrainbow.java | 2 +- .../totalfreedommod/command/Command_tban.java | 6 +- .../command/Command_tempban.java | 4 +- .../command/Command_toggle.java | 6 +- .../command/Command_togglechat.java | 4 +- .../command/Command_totalfreedommod.java | 2 +- .../command/Command_trail.java | 2 +- .../command/Command_unban.java | 4 +- .../command/Command_unbanip.java | 4 +- .../command/Command_unbanname.java | 4 +- .../command/Command_unblockcmd.java | 4 +- .../command/Command_uncage.java | 4 +- .../command/Command_undisguiseall.java | 4 +- .../command/Command_unlinkdiscord.java | 2 +- .../command/Command_unmute.java | 4 +- .../command/Command_vanish.java | 4 + ...oadmin.java => Command_verifynostaff.java} | 28 +- .../totalfreedommod/command/Command_warn.java | 8 +- .../command/Command_whitelist.java | 22 +- .../command/Command_whohas.java | 8 +- .../command/Command_wildcard.java | 2 +- .../command/Command_wipecoreprotectdata.java | 4 +- .../command/Command_wipeflatlands.java | 2 +- .../command/Command_wipepunishments.java | 6 +- .../command/Command_wiperegions.java | 4 +- .../command/Command_wipeuserdata.java | 6 +- .../command/Command_wipewarps.java | 4 +- .../command/FreedomCommand.java | 22 +- .../totalfreedommod/config/ConfigEntry.java | 26 +- .../totalfreedommod/discord/Discord.java | 79 ++-- .../discord/DiscordToMinecraftListener.java | 12 +- .../discord/PrivateMessageListener.java | 8 +- .../totalfreedommod/freeze/FreezeData.java | 4 +- .../totalfreedommod/freeze/Freezer.java | 2 +- .../totalfreedommod/httpd/HTTPDaemon.java | 4 +- .../httpd/module/Module_activitylog.java | 6 +- .../httpd/module/Module_bans.java | 4 +- .../httpd/module/Module_indefbans.java | 4 +- .../httpd/module/Module_list.java | 42 +- .../httpd/module/Module_logfile.java | 4 +- .../httpd/module/Module_players.java | 18 +- .../httpd/module/Module_punishments.java | 4 +- .../httpd/module/Module_schematic.java | 6 +- .../{Module_admins.java => Module_staff.java} | 8 +- .../permissions/PermissionEntry.java | 6 +- .../permissions/PermissionManager.java | 28 +- .../totalfreedommod/player/FPlayer.java | 4 +- .../totalfreedommod/player/PlayerList.java | 40 +- .../totalfreedommod/rank/Rank.java | 30 +- .../totalfreedommod/rank/RankManager.java | 62 +-- .../totalfreedommod/sql/SQLite.java | 65 ++- .../{admin => staff}/ActivityLog.java | 6 +- .../{admin => staff}/ActivityLogEntry.java | 2 +- .../totalfreedommod/staff/StaffList.java | 370 +++++++++++++++++ .../Admin.java => staff/StaffMember.java} | 18 +- .../totalfreedommod/util/FSync.java | 2 +- .../totalfreedommod/util/FUtil.java | 6 +- .../{AdminWorld.java => StaffWorld.java} | 10 +- .../totalfreedommod/world/WorldManager.java | 12 +- .../world/WorldRestrictions.java | 4 +- src/main/resources/config.yml | 52 +-- src/main/resources/permissions.yml | 12 +- 185 files changed, 1242 insertions(+), 1453 deletions(-) delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/ProtectArea.java rename src/main/java/me/totalfreedom/totalfreedommod/command/{Command_myadmin.java => Command_mystaff.java} (76%) delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/command/Command_protectarea.java rename src/main/java/me/totalfreedom/totalfreedommod/command/{Command_saconfig.java => Command_slconfig.java} (58%) rename src/main/java/me/totalfreedom/totalfreedommod/command/{Command_adminchat.java => Command_staffchat.java} (69%) rename src/main/java/me/totalfreedom/totalfreedommod/command/{Command_admininfo.java => Command_staffinfo.java} (72%) rename src/main/java/me/totalfreedom/totalfreedommod/command/{Command_adminmode.java => Command_staffmode.java} (70%) rename src/main/java/me/totalfreedom/totalfreedommod/command/{Command_adminworld.java => Command_staffworld.java} (88%) rename src/main/java/me/totalfreedom/totalfreedommod/command/{Command_verifynoadmin.java => Command_verifynostaff.java} (71%) rename src/main/java/me/totalfreedom/totalfreedommod/httpd/module/{Module_admins.java => Module_staff.java} (85%) rename src/main/java/me/totalfreedom/totalfreedommod/{admin => staff}/ActivityLog.java (97%) rename src/main/java/me/totalfreedom/totalfreedommod/{admin => staff}/ActivityLogEntry.java (98%) create mode 100644 src/main/java/me/totalfreedom/totalfreedommod/staff/StaffList.java rename src/main/java/me/totalfreedom/totalfreedommod/{admin/Admin.java => staff/StaffMember.java} (91%) rename src/main/java/me/totalfreedom/totalfreedommod/world/{AdminWorld.java => StaffWorld.java} (95%) diff --git a/pom.xml b/pom.xml index 032257c0..b733dc88 100644 --- a/pom.xml +++ b/pom.xml @@ -249,9 +249,9 @@ - com.github.speedxx + com.github.TFPatches TFGuilds - master + ad93b9ed00 provided diff --git a/src/main/java/me/totalfreedom/totalfreedommod/AMP.java b/src/main/java/me/totalfreedom/totalfreedommod/AMP.java index 32b0fc45..8f78ef22 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/AMP.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/AMP.java @@ -5,7 +5,7 @@ import java.util.Arrays; import java.util.List; import joptsimple.internal.Strings; import lombok.Getter; -import me.totalfreedom.totalfreedommod.admin.Admin; +import me.totalfreedom.totalfreedommod.staff.StaffMember; import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.util.FLog; @@ -103,16 +103,16 @@ public class AMP extends FreedomService FLog.info("Logged out of AMP"); } - public void updateAccountStatus(Admin admin) + public void updateAccountStatus(StaffMember staffMember) { - String username = admin.getAmpUsername(); + String username = staffMember.getAmpUsername(); if (username == null || !enabled) { return; } - if (!admin.isActive() || admin.getRank() != Rank.SENIOR_ADMIN) + if (!staffMember.isActive() || staffMember.getRank() != Rank.ADMIN) { FLog.debug("Disabling amp acc"); setAccountEnabled(username, false); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/AntiSpam.java b/src/main/java/me/totalfreedom/totalfreedommod/AntiSpam.java index 54764e87..af015222 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/AntiSpam.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/AntiSpam.java @@ -62,7 +62,7 @@ public class AntiSpam extends FreedomService { final Player player = event.getPlayer(); - if (plugin.al.isAdmin(player)) + if (plugin.sl.isStaff(player)) { return; } @@ -109,7 +109,7 @@ public class AntiSpam extends FreedomService return; } - if (plugin.al.isAdmin(player)) + if (plugin.sl.isStaff(player)) { return; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java b/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java index 079ef884..723f6316 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java @@ -1,7 +1,7 @@ package me.totalfreedom.totalfreedommod; import com.google.common.base.Strings; -import me.totalfreedom.totalfreedommod.admin.Admin; +import me.totalfreedom.totalfreedommod.staff.StaffMember; import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.player.FPlayer; import me.totalfreedom.totalfreedommod.player.PlayerData; @@ -65,7 +65,7 @@ public class ChatManager extends FreedomService return; } - if (!ConfigEntry.TOGGLE_CHAT.getBoolean() && !plugin.al.isAdmin(player)) + if (!ConfigEntry.TOGGLE_CHAT.getBoolean() && !plugin.sl.isStaff(player)) { event.setCancelled(true); playerMsg(player, "Chat is currently disabled.", org.bukkit.ChatColor.RED); @@ -123,7 +123,7 @@ public class ChatManager extends FreedomService } // Check for mentions - Boolean mentionEveryone = ChatColor.stripColor(message).toLowerCase().contains("@everyone") && plugin.al.isAdmin(player); + Boolean mentionEveryone = ChatColor.stripColor(message).toLowerCase().contains("@everyone") && plugin.sl.isStaff(player); for (Player p : server.getOnlinePlayers()) { if (ChatColor.stripColor(message).toLowerCase().contains("@" + p.getName().toLowerCase()) || mentionEveryone) @@ -136,76 +136,44 @@ public class ChatManager extends FreedomService event.setFormat(format); // Send to discord - if (!ConfigEntry.ADMIN_ONLY_MODE.getBoolean() && !Bukkit.hasWhitelist() && !plugin.pl.getPlayer(player).isMuted() && !plugin.tfg.inGuildChat(player)) + if (!ConfigEntry.STAFF_ONLY_MODE.getBoolean() && !Bukkit.hasWhitelist() && !plugin.pl.getPlayer(player).isMuted() && !plugin.tfg.inGuildChat(player)) { plugin.dc.messageChatChannel(plugin.dc.deformat(player.getName()) + " \u00BB " + ChatColor.stripColor(message)); } } - public ChatColor getColor(Admin admin, Displayable display) + public ChatColor getColor(Displayable display) { ChatColor color = display.getColor(); - if (admin.getOldTags()) - { - - if (color.equals(ChatColor.AQUA)) - { - color = ChatColor.GOLD; - } - else if (color.equals(ChatColor.GOLD)) - { - color = ChatColor.LIGHT_PURPLE; - } - else if (color.equals(ChatColor.DARK_RED)) - { - color = ChatColor.BLUE; - } - } return color; } - public String getColoredTag(Admin admin, Displayable display) + public String getColoredTag(Displayable display) { ChatColor color = display.getColor(); - if (admin.getOldTags()) - { - - if (color.equals(ChatColor.AQUA)) - { - color = ChatColor.GOLD; - } - else if (color.equals(ChatColor.GOLD)) - { - color = ChatColor.LIGHT_PURPLE; - } - else if (color.equals(ChatColor.DARK_RED)) - { - color = ChatColor.BLUE; - } - } return color + display.getAbbr(); } - public void adminChat(CommandSender sender, String message) + public void staffChat(CommandSender sender, String message) { Displayable display = plugin.rm.getDisplay(sender); - FLog.info("[ADMIN] " + sender.getName() + " " + display.getTag() + ": " + message, true); + FLog.info("[STAFF] " + sender.getName() + " " + display.getTag() + ": " + message, true); for (Player player : server.getOnlinePlayers()) { - if (plugin.al.isAdmin(player)) + if (plugin.sl.isStaff(player)) { - Admin admin = plugin.al.getAdmin(player); - if (!Strings.isNullOrEmpty(admin.getAcFormat())) + StaffMember staffMember = plugin.sl.getAdmin(player); + if (!Strings.isNullOrEmpty(staffMember.getAcFormat())) { - String format = admin.getAcFormat(); - ChatColor color = getColor(admin, display); + String format = staffMember.getAcFormat(); + ChatColor color = getColor(display); String msg = format.replace("%name%", sender.getName()).replace("%rank%", display.getAbbr()).replace("%rankcolor%", color.toString()).replace("%msg%", message); player.sendMessage(FUtil.colorize(msg)); } else { - player.sendMessage("[" + ChatColor.AQUA + "ADMIN" + ChatColor.WHITE + "] " + ChatColor.DARK_RED + sender.getName() + ChatColor.DARK_GRAY + " [" + getColoredTag(admin, display) + ChatColor.DARK_GRAY + "]" + ChatColor.WHITE + ": " + ChatColor.GOLD + FUtil.colorize(message)); + player.sendMessage("[" + ChatColor.AQUA + "STAFF" + ChatColor.WHITE + "] " + ChatColor.DARK_RED + sender.getName() + ChatColor.DARK_GRAY + " [" + getColoredTag(display) + ChatColor.DARK_GRAY + "]" + ChatColor.WHITE + ": " + ChatColor.GOLD + FUtil.colorize(message)); } } } @@ -215,7 +183,7 @@ public class ChatManager extends FreedomService { for (Player player : server.getOnlinePlayers()) { - if (plugin.al.isAdmin(player)) + if (plugin.sl.isStaff(player)) { playerMsg(player, ChatColor.RED + "[REPORTS] " + ChatColor.GOLD + reporter.getName() + " has reported " + reported.getName() + " for " + report); FLog.info("[REPORTS] " + reporter.getName() + " has reported " + reported.getName() + " for " + report); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/CommandSpy.java b/src/main/java/me/totalfreedom/totalfreedommod/CommandSpy.java index 4da218d3..5bc0ddc0 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/CommandSpy.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/CommandSpy.java @@ -23,9 +23,9 @@ public class CommandSpy extends FreedomService { for (Player player : server.getOnlinePlayers()) { - if (plugin.al.isAdmin(player) && plugin.al.getAdmin(player).getCommandSpy()) + if (plugin.sl.isStaff(player) && plugin.sl.getAdmin(player).getCommandSpy()) { - if (plugin.al.isAdmin(event.getPlayer()) && !plugin.al.isSeniorAdmin(player)) + if (plugin.sl.isStaff(event.getPlayer()) && !plugin.sl.isAdmin(player)) { continue; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java b/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java index f921bd71..55da8cb3 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java @@ -53,7 +53,7 @@ public class LoginProcess extends FreedomService public void onPlayerPreLogin(AsyncPlayerPreLoginEvent event) { final String ip = event.getAddress().getHostAddress().trim(); - final boolean isAdmin = plugin.al.getEntryByIp(ip) != null; + final boolean isAdmin = plugin.sl.getEntryByIp(ip) != null; // Check if the player is already online for (Player onlinePlayer : server.getOnlinePlayers()) @@ -114,7 +114,7 @@ public class LoginProcess extends FreedomService } // Check if player is admin - final boolean isAdmin = plugin.al.getEntryByIp(ip) != null; + final boolean isAdmin = plugin.sl.getEntryByIp(ip) != null; // Validation below this point if (isAdmin) // Player is admin @@ -127,7 +127,7 @@ public class LoginProcess extends FreedomService { for (Player onlinePlayer : server.getOnlinePlayers()) { - if (!plugin.al.isAdmin(onlinePlayer)) + if (!plugin.sl.isStaff(onlinePlayer)) { onlinePlayer.kickPlayer("You have been kicked to free up room for an admin."); count--; @@ -149,7 +149,7 @@ public class LoginProcess extends FreedomService return; } - // Player is not an admin + // Player is not a staff member // Server full check if (server.getOnlinePlayers().size() >= server.getMaxPlayers()) { @@ -157,8 +157,8 @@ public class LoginProcess extends FreedomService return; } - // Admin-only mode - if (ConfigEntry.ADMIN_ONLY_MODE.getBoolean()) + // Staff-only mode + if (ConfigEntry.STAFF_ONLY_MODE.getBoolean()) { event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "Server is temporarily open to admins only."); return; @@ -226,7 +226,7 @@ public class LoginProcess extends FreedomService player.setPlayerListFooter(FUtil.colorize(ConfigEntry.SERVER_TABLIST_FOOTER.getString()).replace("\\n", "\n")); } - if (!plugin.al.isAdmin(player)) + if (!plugin.sl.isStaff(player)) { String tag = playerData.getTag(); if (tag != null) @@ -244,7 +244,7 @@ public class LoginProcess extends FreedomService FLog.info(noteMessage); for (Player p : server.getOnlinePlayers()) { - if (plugin.al.isAdminImpostor(p)) + if (plugin.sl.isAdminImpostor(p)) { notice.send(p); } @@ -257,9 +257,9 @@ public class LoginProcess extends FreedomService @Override public void run() { - if (ConfigEntry.ADMIN_ONLY_MODE.getBoolean()) + if (ConfigEntry.STAFF_ONLY_MODE.getBoolean()) { - player.sendMessage(ChatColor.RED + "Server is currently closed to non-admins."); + player.sendMessage(ChatColor.RED + "Server is currently closed to non-staff."); } if (lockdownEnabled) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/Monitors.java b/src/main/java/me/totalfreedom/totalfreedommod/Monitors.java index a74ee0aa..2842332f 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/Monitors.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/Monitors.java @@ -34,7 +34,7 @@ public class Monitors extends FreedomService { for (Player player : recentlyThrownPotions.keySet()) { - if (plugin.al.isAdmin(player) && plugin.al.getAdmin(player).getPotionSpy()) + if (plugin.sl.isStaff(player) && plugin.sl.getAdmin(player).getPotionSpy()) { List playerThrownPotions = recentlyThrownPotions.get(player); ThrownPotion latestThrownPotion = playerThrownPotions.get(playerThrownPotions.size() - 1); // Get most recently thrown potion for the position. diff --git a/src/main/java/me/totalfreedom/totalfreedommod/Muter.java b/src/main/java/me/totalfreedom/totalfreedommod/Muter.java index 97891bef..203d3e77 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/Muter.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/Muter.java @@ -45,7 +45,7 @@ public class Muter extends FreedomService return; } - if (plugin.al.isAdminSync(player)) + if (plugin.sl.isStaffSync(player)) { fPlayer.setMuted(false); MUTED_PLAYERS.remove(player.getName()); @@ -70,7 +70,7 @@ public class Muter extends FreedomService } String message = event.getMessage(); - if (plugin.al.isAdmin(player)) + if (plugin.sl.isStaff(player)) { fPlayer.setMuted(false); return; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/ProtectArea.java b/src/main/java/me/totalfreedom/totalfreedommod/ProtectArea.java deleted file mode 100644 index 9dbcde21..00000000 --- a/src/main/java/me/totalfreedom/totalfreedommod/ProtectArea.java +++ /dev/null @@ -1,392 +0,0 @@ -package me.totalfreedom.totalfreedommod; - -import com.google.common.collect.Maps; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.io.Serializable; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import me.totalfreedom.totalfreedommod.config.ConfigEntry; -import me.totalfreedom.totalfreedommod.util.FLog; -import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.World; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.block.BlockBreakEvent; -import org.bukkit.event.block.BlockPlaceEvent; -import org.bukkit.util.Vector; - -public class ProtectArea extends FreedomService -{ - - public static final String DATA_FILENAME = "protectedareas.dat"; - public static final double MAX_RADIUS = 50.0; - // - private final Map areas = Maps.newHashMap(); - - @Override - public void onStart() - { - if (!ConfigEntry.PROTECTAREA_ENABLED.getBoolean()) - { - return; - } - - File input = new File(plugin.getDataFolder(), DATA_FILENAME); - try - { - if (input.exists()) - { - FileInputStream fis = new FileInputStream(input); - ObjectInputStream ois = new ObjectInputStream(fis); - areas.clear(); - areas.putAll((HashMap)ois.readObject()); - ois.close(); - fis.close(); - } - } - catch (Exception ex) - { - input.delete(); - FLog.severe(ex); - } - - cleanProtectedAreas(); - } - - @Override - public void onStop() - { - save(); - } - - public void save() - { - try - { - FileOutputStream fos = new FileOutputStream(new File(plugin.getDataFolder(), DATA_FILENAME)); - ObjectOutputStream oos = new ObjectOutputStream(fos); - oos.writeObject(areas); - oos.close(); - fos.close(); - } - catch (Exception ex) - { - FLog.severe(ex); - } - } - - @EventHandler(priority = EventPriority.NORMAL) - public void onBlockBreak(BlockBreakEvent event) - { - if (!ConfigEntry.PROTECTAREA_ENABLED.getBoolean()) - { - return; - } - - final Player player = event.getPlayer(); - if (plugin.al.isAdmin(player)) - { - return; - } - - final Location location = event.getBlock().getLocation(); - - if (isInProtectedArea(location)) - { - event.setCancelled(true); - } - } - - @EventHandler(priority = EventPriority.NORMAL) - public void onBlockPlace(BlockPlaceEvent event) - { - if (!ConfigEntry.PROTECTAREA_ENABLED.getBoolean()) - { - return; - } - - final Player player = event.getPlayer(); - if (plugin.al.isAdmin(player)) - { - return; - } - - final Location location = event.getBlock().getLocation(); - - if (isInProtectedArea(location)) - { - event.setCancelled(true); - } - } - - public boolean isInProtectedArea(final Location modifyLocation) - { - boolean doSave = false; - boolean inProtectedArea = false; - - final Iterator> it = areas.entrySet().iterator(); - - while (it.hasNext()) - { - final SerializableProtectedRegion region = it.next().getValue(); - - Location regionCenter = null; - try - { - regionCenter = region.getLocation(); - } - catch (SerializableProtectedRegion.CantFindWorldException ex) - { - it.remove(); - doSave = true; - continue; - } - - if (regionCenter != null) - { - if (modifyLocation.getWorld() == regionCenter.getWorld()) - { - final double regionRadius = region.getRadius(); - if (modifyLocation.distanceSquared(regionCenter) <= (regionRadius * regionRadius)) - { - inProtectedArea = true; - break; - } - } - } - } - - if (doSave) - { - save(); - } - - return inProtectedArea; - } - - public boolean isInProtectedArea(final Vector min, final Vector max, final String worldName) - { - boolean doSave = false; - boolean inProtectedArea = false; - - final Iterator> it = areas.entrySet().iterator(); - - while (it.hasNext()) - { - final SerializableProtectedRegion region = it.next().getValue(); - - Location regionCenter = null; - try - { - regionCenter = region.getLocation(); - } - catch (SerializableProtectedRegion.CantFindWorldException ex) - { - it.remove(); - doSave = true; - continue; - } - - if (regionCenter != null) - { - if (worldName.equals(regionCenter.getWorld().getName())) - { - if (cubeIntersectsSphere(min, max, regionCenter.toVector(), region.getRadius())) - { - inProtectedArea = true; - break; - } - } - } - } - - if (doSave) - { - save(); - } - - return inProtectedArea; - } - - private boolean cubeIntersectsSphere(Vector min, Vector max, Vector sphere, double radius) - { - double d = square(radius); - - if (sphere.getX() < min.getX()) - { - d -= square(sphere.getX() - min.getX()); - } - else if (sphere.getX() > max.getX()) - { - d -= square(sphere.getX() - max.getX()); - } - if (sphere.getY() < min.getY()) - { - d -= square(sphere.getY() - min.getY()); - } - else if (sphere.getY() > max.getY()) - { - d -= square(sphere.getY() - max.getY()); - } - if (sphere.getZ() < min.getZ()) - { - d -= square(sphere.getZ() - min.getZ()); - } - else if (sphere.getZ() > max.getZ()) - { - d -= square(sphere.getZ() - max.getZ()); - } - - return d > 0; - } - - private double square(double v) - { - return v * v; - } - - public void addProtectedArea(String label, Location location, double radius) - { - areas.put(label.toLowerCase(), new SerializableProtectedRegion(location, radius)); - save(); - } - - public void removeProtectedArea(String label) - { - areas.remove(label.toLowerCase()); - save(); - } - - public void clearProtectedAreas() - { - clearProtectedAreas(true); - } - - public void clearProtectedAreas(boolean createSpawnpointProtectedAreas) - { - areas.clear(); - - if (createSpawnpointProtectedAreas) - { - autoAddSpawnpoints(); - } - - save(); - } - - public void cleanProtectedAreas() - { - boolean doSave = false; - - final Iterator> it = areas.entrySet().iterator(); - - while (it.hasNext()) - { - try - { - it.next().getValue().getLocation(); - } - catch (SerializableProtectedRegion.CantFindWorldException ex) - { - it.remove(); - doSave = true; - } - } - - if (doSave) - { - save(); - } - } - - public Set getProtectedAreaLabels() - { - return areas.keySet(); - } - - public void autoAddSpawnpoints() - { - if (!ConfigEntry.PROTECTAREA_ENABLED.getBoolean()) - { - return; - } - - if (ConfigEntry.PROTECTAREA_SPAWNPOINTS.getBoolean()) - { - for (World world : Bukkit.getWorlds()) - { - addProtectedArea("spawn_" + world.getName(), world.getSpawnLocation(), ConfigEntry.PROTECTAREA_RADIUS.getDouble()); - } - } - } - - public static class SerializableProtectedRegion implements Serializable - { - - private static final long serialVersionUID = 213123517828282L; - private final double x, y, z; - private final double radius; - private final String worldName; - private final UUID worldUUID; - private transient Location location = null; - - public SerializableProtectedRegion(final Location location, final double radius) - { - this.x = location.getX(); - this.y = location.getY(); - this.z = location.getZ(); - this.radius = radius; - this.worldName = location.getWorld().getName(); - this.worldUUID = location.getWorld().getUID(); - this.location = location; - } - - public Location getLocation() throws CantFindWorldException - { - if (this.location == null) - { - World world = Bukkit.getWorld(this.worldUUID); - - if (world == null) - { - world = Bukkit.getWorld(this.worldName); - } - - if (world == null) - { - throw new CantFindWorldException("Can't find world " + this.worldName + ", UUID: " + this.worldUUID.toString()); - } - - location = new Location(world, x, y, z); - } - return this.location; - } - - public double getRadius() - { - return radius; - } - - public class CantFindWorldException extends Exception - { - - private static final long serialVersionUID = 1L; - - public CantFindWorldException(String string) - { - super(string); - } - } - - } - -} diff --git a/src/main/java/me/totalfreedom/totalfreedommod/Reddit.java b/src/main/java/me/totalfreedom/totalfreedommod/Reddit.java index 6f34f053..c82b3d4b 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/Reddit.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/Reddit.java @@ -203,9 +203,9 @@ public class Reddit extends FreedomService flairList.put(Title.EXECUTIVE, ConfigEntry.REDDIT_EXECUTIVE_FLAIR_ID.getString()); flairList.put(Title.ASSISTANT_EXECUTIVE, ConfigEntry.REDDIT_ASSISTANT_EXECUTIVE_FLAIR_ID.getString()); flairList.put(Title.DEVELOPER, ConfigEntry.REDDIT_DEVELOPER_FLAIR_ID.getString()); - flairList.put(Rank.SENIOR_ADMIN, ConfigEntry.REDDIT_SENIOR_FLAIR_ID.getString()); - flairList.put(Rank.TELNET_ADMIN, ConfigEntry.REDDIT_TELNET_FLAIR_ID.getString()); - flairList.put(Rank.SUPER_ADMIN, ConfigEntry.REDDIT_SUPER_FLAIR_ID.getString()); + flairList.put(Rank.ADMIN, ConfigEntry.REDDIT_ADMIN_FLAIR_ID.getString()); + flairList.put(Rank.MOD, ConfigEntry.REDDIT_MOD_FLAIR_ID.getString()); + flairList.put(Rank.TRIAL_MOD, ConfigEntry.REDDIT_TRIAL_MOD_FLAIR_ID.getString()); flairList.put(Title.MASTER_BUILDER, ConfigEntry.REDDIT_MASTER_BUILDER_FLAIR_ID.getString()); flairList.put(Title.DONATOR, ConfigEntry.REDDIT_DONATOR_FLAIR_ID.getString()); @@ -214,9 +214,9 @@ public class Reddit extends FreedomService flairNameList.put(Title.EXECUTIVE, "Executive"); flairNameList.put(Title.ASSISTANT_EXECUTIVE, "Assistant Executive"); flairNameList.put(Title.DEVELOPER, "Developer"); - flairNameList.put(Rank.SENIOR_ADMIN, "Senior Admin"); - flairNameList.put(Rank.TELNET_ADMIN, "Telnet Admin"); - flairNameList.put(Rank.SUPER_ADMIN, "Super Admin"); + flairNameList.put(Rank.ADMIN, "Admin"); + flairNameList.put(Rank.MOD, "Mod"); + flairNameList.put(Rank.TRIAL_MOD, "Trial Mod"); flairNameList.put(Title.MASTER_BUILDER, "Master Builder"); flairNameList.put(Title.DONATOR, "Premium"); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/ServerPing.java b/src/main/java/me/totalfreedom/totalfreedommod/ServerPing.java index a5a91ab8..e87f8005 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/ServerPing.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/ServerPing.java @@ -30,9 +30,9 @@ public class ServerPing extends FreedomService return; } - if (ConfigEntry.ADMIN_ONLY_MODE.getBoolean()) + if (ConfigEntry.STAFF_ONLY_MODE.getBoolean()) { - event.setMotd(FUtil.colorize(ConfigEntry.SERVER_ADMINMODE_MOTD.getString())); + event.setMotd(FUtil.colorize(ConfigEntry.SERVER_STAFFMODE_MOTD.getString())); return; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java index 6625e77a..9ed62f77 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java @@ -3,8 +3,8 @@ package me.totalfreedom.totalfreedommod; import java.io.File; import java.io.InputStream; import java.util.Properties; -import me.totalfreedom.totalfreedommod.admin.ActivityLog; -import me.totalfreedom.totalfreedommod.admin.AdminList; +import me.totalfreedom.totalfreedommod.staff.ActivityLog; +import me.totalfreedom.totalfreedommod.staff.StaffList; import me.totalfreedom.totalfreedommod.banning.BanManager; import me.totalfreedom.totalfreedommod.banning.IndefiniteBanList; import me.totalfreedom.totalfreedommod.blocking.BlockBlocker; @@ -56,7 +56,6 @@ import org.bukkit.Bukkit; import org.bukkit.generator.ChunkGenerator; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; -import org.bukkit.scheduler.BukkitRunnable; import org.spigotmc.SpigotConfig; public class TotalFreedomMod extends JavaPlugin @@ -87,7 +86,7 @@ public class TotalFreedomMod extends JavaPlugin public SavedFlags sf; public WorldManager wm; public LogViewer lv; - public AdminList al; + public StaffList sl; public ActivityLog acl; public RankManager rm; public CommandBlocker cb; @@ -110,7 +109,6 @@ public class TotalFreedomMod extends JavaPlugin public BanManager bm; public IndefiniteBanList im; public PermissionManager pem; - public ProtectArea pa; public Reddit rd; public GameRuleHandler gr; public CommandSpy cs; @@ -207,7 +205,7 @@ public class TotalFreedomMod extends JavaPlugin wm = new WorldManager(); lv = new LogViewer(); sql = new SQLite(); - al = new AdminList(); + sl = new StaffList(); acl = new ActivityLog(); rm = new RankManager(); cb = new CommandBlocker(); @@ -230,7 +228,6 @@ public class TotalFreedomMod extends JavaPlugin bm = new BanManager(); im = new IndefiniteBanList(); pem = new PermissionManager(); - pa = new ProtectArea(); rd = new Reddit(); gr = new GameRuleHandler(); snp = new SignBlocker(); @@ -285,15 +282,6 @@ public class TotalFreedomMod extends JavaPlugin // Metrics @ https://bstats.org/plugin/bukkit/TotalFreedomMod/2966 new Metrics(this, 2966); - // Add spawnpoints later - https://github.com/TotalFreedom/TotalFreedomMod/issues/438 - new BukkitRunnable() - { - @Override - public void run() - { - plugin.pa.autoAddSpawnpoints(); - } - }.runTaskLater(plugin, 60L); // little workaround to stop spigot from autorestarting - causing AMP to detach from process. SpigotConfig.config.set("settings.restart-on-crash", false); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/banning/BanManager.java b/src/main/java/me/totalfreedom/totalfreedommod/banning/BanManager.java index 31292a97..c07a3979 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/banning/BanManager.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/banning/BanManager.java @@ -271,7 +271,7 @@ public class BanManager extends FreedomService final Player player = event.getPlayer(); final PlayerData data = plugin.pl.getData(player); - if (!plugin.al.isAdmin(player)) + if (!plugin.sl.isStaff(player)) { return; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/EditBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/EditBlocker.java index 0a7217e0..a27c4248 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/EditBlocker.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/EditBlocker.java @@ -30,7 +30,7 @@ public class EditBlocker extends FreedomService return; } - if (plugin.al.isAdminSync(event.getPlayer())) + if (plugin.sl.isStaffSync(event.getPlayer())) { fPlayer.setEditBlocked(false); return; @@ -49,7 +49,7 @@ public class EditBlocker extends FreedomService return; } - if (plugin.al.isAdminSync(event.getPlayer())) + if (plugin.sl.isStaffSync(event.getPlayer())) { fPlayer.setEditBlocked(false); return; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/EventBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/EventBlocker.java index fb792036..0e774701 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/EventBlocker.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/EventBlocker.java @@ -148,7 +148,7 @@ public class EventBlocker extends FreedomService @EventHandler(priority = EventPriority.NORMAL) public void onPlayerDropItem(PlayerDropItemEvent event) { - if (!plugin.al.isAdmin(event.getPlayer())) + if (!plugin.sl.isStaff(event.getPlayer())) { event.setCancelled(true); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java index b7df3bbe..b2dfadb2 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java @@ -90,7 +90,7 @@ public class InteractBlocker extends FreedomService { case WATER_BUCKET: { - if (plugin.al.isAdmin(player) || ConfigEntry.ALLOW_WATER_PLACE.getBoolean()) + if (plugin.sl.isStaff(player) || ConfigEntry.ALLOW_WATER_PLACE.getBoolean()) { break; } @@ -103,7 +103,7 @@ public class InteractBlocker extends FreedomService case LAVA_BUCKET: { - if (plugin.al.isAdmin(player) || ConfigEntry.ALLOW_LAVA_PLACE.getBoolean()) + if (plugin.sl.isStaff(player) || ConfigEntry.ALLOW_LAVA_PLACE.getBoolean()) { break; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/PVPBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/PVPBlocker.java index b6efd382..de388454 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/PVPBlocker.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/PVPBlocker.java @@ -61,7 +61,7 @@ public class PVPBlocker extends FreedomService } } - if (player != null & !plugin.al.isAdmin(player)) + if (player != null & !plugin.sl.isStaff(player)) { if (player.getGameMode() == GameMode.CREATIVE) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlocker.java index 9e893180..0f19a90e 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlocker.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlocker.java @@ -171,7 +171,7 @@ public class CommandBlocker extends FreedomService for (String part : commandParts) { - if (command.startsWith("/") && !plugin.al.isAdmin(sender) && (part.contains("#copy") || part.contains("#clipboard"))) + if (command.startsWith("/") && !plugin.sl.isStaff(sender) && (part.contains("#copy") || part.contains("#clipboard"))) { FUtil.playerMsg(sender, "WorldEdit copy variables are disabled."); return true; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlockerRank.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlockerRank.java index 84f7b6eb..91a145cf 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlockerRank.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlockerRank.java @@ -1,7 +1,7 @@ package me.totalfreedom.totalfreedommod.blocking.command; import me.totalfreedom.totalfreedommod.TotalFreedomMod; -import me.totalfreedom.totalfreedommod.admin.Admin; +import me.totalfreedom.totalfreedommod.staff.StaffMember; import me.totalfreedom.totalfreedommod.rank.Rank; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -40,10 +40,10 @@ public enum CommandBlockerRank return TELNET; } - Admin admin = TotalFreedomMod.plugin().al.getAdmin(sender); - if (admin != null) + StaffMember staffMember = TotalFreedomMod.plugin().sl.getAdmin(sender); + if (staffMember != null) { - if (admin.getRank() == Rank.SENIOR_ADMIN) + if (staffMember.getRank() == Rank.ADMIN) { return SENIOR; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/bridge/BukkitTelnetBridge.java b/src/main/java/me/totalfreedom/totalfreedommod/bridge/BukkitTelnetBridge.java index 607ad49d..d8c3d397 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/bridge/BukkitTelnetBridge.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/bridge/BukkitTelnetBridge.java @@ -10,7 +10,7 @@ import me.totalfreedom.bukkittelnet.api.TelnetPreLoginEvent; import me.totalfreedom.bukkittelnet.api.TelnetRequestDataTagsEvent; import me.totalfreedom.bukkittelnet.session.ClientSession; import me.totalfreedom.totalfreedommod.FreedomService; -import me.totalfreedom.totalfreedommod.admin.Admin; +import me.totalfreedom.totalfreedommod.staff.StaffMember; import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.util.FLog; import org.bukkit.entity.Player; @@ -43,15 +43,15 @@ public class BukkitTelnetBridge extends FreedomService return; } - final Admin admin = plugin.al.getEntryByIpFuzzy(ip); + final StaffMember staffMember = plugin.sl.getEntryByIpFuzzy(ip); - if (admin == null || !admin.isActive() || !admin.getRank().hasConsoleVariant()) + if (staffMember == null || !staffMember.isActive() || !staffMember.getRank().hasConsoleVariant()) { return; } event.setBypassPassword(true); - event.setName(admin.getName()); + event.setName(staffMember.getName()); } @EventHandler(priority = EventPriority.NORMAL) @@ -77,14 +77,14 @@ public class BukkitTelnetBridge extends FreedomService boolean isTelnetAdmin = false; boolean isSeniorAdmin = false; - final Admin admin = plugin.al.getAdmin(player); - if (admin != null) + final StaffMember staffMember = plugin.sl.getAdmin(player); + if (staffMember != null) { - boolean active = admin.isActive(); + boolean active = staffMember.isActive(); isAdmin = active; - isSeniorAdmin = active && admin.getRank() == Rank.SENIOR_ADMIN; - isTelnetAdmin = active && (isSeniorAdmin || admin.getRank() == Rank.TELNET_ADMIN); + isSeniorAdmin = active && staffMember.getRank() == Rank.ADMIN; + isTelnetAdmin = active && (isSeniorAdmin || staffMember.getRank() == Rank.MOD); } playerTags.put("tfm.admin.isAdmin", isAdmin); @@ -121,22 +121,22 @@ public class BukkitTelnetBridge extends FreedomService return bukkitTelnetPlugin; } - public List getConnectedAdmins() + public List getConnectedAdmins() { - List admins = new ArrayList<>(); + List staffMembers = new ArrayList<>(); final BukkitTelnet telnet = getBukkitTelnetPlugin(); if (telnet != null) { for (ClientSession session : telnet.appender.getSessions()) { - Admin admin = plugin.al.getEntryByName(session.getUserName().toLowerCase()); - if (admin != null && !admins.contains(admin)) + StaffMember staffMember = plugin.sl.getEntryByName(session.getUserName().toLowerCase()); + if (staffMember != null && !staffMembers.contains(staffMember)) { - admins.add(admin); + staffMembers.add(staffMember); } } } - return admins; + return staffMembers; } public void killTelnetSessions(final String name) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/bridge/LibsDisguisesBridge.java b/src/main/java/me/totalfreedom/totalfreedommod/bridge/LibsDisguisesBridge.java index fd9df426..bf3cdca0 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/bridge/LibsDisguisesBridge.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/bridge/LibsDisguisesBridge.java @@ -63,7 +63,7 @@ public class LibsDisguisesBridge extends FreedomService return null; } - public void undisguiseAll(boolean admins) + public void undisguiseAll(boolean staff) { try { @@ -78,7 +78,7 @@ public class LibsDisguisesBridge extends FreedomService { if (DisguiseAPI.isDisguised(player)) { - if (!admins && plugin.al.isAdmin(player)) + if (!staff && plugin.sl.isStaff(player)) { continue; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/caging/Cager.java b/src/main/java/me/totalfreedom/totalfreedommod/caging/Cager.java index f006955c..504d9f72 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/caging/Cager.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/caging/Cager.java @@ -31,7 +31,7 @@ public class Cager extends FreedomService { Player player = event.getPlayer(); if (player == null - || plugin.al.isAdmin(player)) + || plugin.sl.isStaff(player)) { return; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_adventure.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_adventure.java index 1252dce1..49736cd2 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_adventure.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_adventure.java @@ -28,7 +28,7 @@ public class Command_adventure extends FreedomCommand return true; } - checkRank(Rank.SUPER_ADMIN); + checkRank(Rank.TRIAL_MOD); if (args[0].equals("-a")) { @@ -37,7 +37,7 @@ public class Command_adventure extends FreedomCommand targetPlayer.setGameMode(GameMode.ADVENTURE); } - FUtil.adminAction(sender.getName(), "Changing everyone's gamemode to adventure", false); + FUtil.staffAction(sender.getName(), "Changing everyone's gamemode to adventure", false); msg("Your gamemode has been set to adventure."); return true; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_aeclear.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_aeclear.java index 3127abbf..5fc4ba28 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_aeclear.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_aeclear.java @@ -9,7 +9,7 @@ import org.bukkit.entity.AreaEffectCloud; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Clears lingering potion area effect clouds.", usage = "/", aliases = "aec") public class Command_aeclear extends FreedomCommand { @@ -17,7 +17,7 @@ public class Command_aeclear extends FreedomCommand @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - FUtil.adminAction(sender.getName(), "Removing all area effect clouds.", true); + FUtil.staffAction(sender.getName(), "Removing all area effect clouds.", true); int removed = 0; for (World world : server.getWorlds()) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_amp.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_amp.java index 5f606249..45064db9 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_amp.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_amp.java @@ -3,7 +3,7 @@ package me.totalfreedom.totalfreedommod.command; import java.util.Arrays; import java.util.Collections; import java.util.List; -import me.totalfreedom.totalfreedommod.admin.Admin; +import me.totalfreedom.totalfreedommod.staff.StaffMember; import me.totalfreedom.totalfreedommod.player.PlayerData; import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.util.FUtil; @@ -12,7 +12,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "Manage your AMP account", usage = "/ ") public class Command_amp extends FreedomCommand { @@ -43,9 +43,9 @@ public class Command_amp extends FreedomCommand if (args[0].equals("create")) { msg("Creating your AMP account...", ChatColor.GREEN); - Admin admin = getAdmin(playerSender); + StaffMember staffMember = getAdmin(playerSender); - if (admin.getAmpUsername() != null) + if (staffMember.getAmpUsername() != null) { msg("You already have an AMP account.", ChatColor.RED); return true; @@ -54,9 +54,9 @@ public class Command_amp extends FreedomCommand String username = sender.getName(); String password = FUtil.randomString(30); - admin.setAmpUsername(username); - plugin.al.save(admin); - plugin.al.updateTables(); + staffMember.setAmpUsername(username); + plugin.sl.save(staffMember); + plugin.sl.updateTables(); plugin.amp.createAccount(username, password); plugin.dc.sendAMPInfo(playerData, username, password); @@ -65,9 +65,9 @@ public class Command_amp extends FreedomCommand } else if (args[0].equals("resetpassword")) { - Admin admin = getAdmin(playerSender); + StaffMember staffMember = getAdmin(playerSender); - if (admin.getAmpUsername() == null) + if (staffMember.getAmpUsername() == null) { msg("You do not have an AMP account.", ChatColor.RED); return true; @@ -75,7 +75,7 @@ public class Command_amp extends FreedomCommand msg("Resetting your password...", ChatColor.GREEN); - String username = admin.getAmpUsername(); + String username = staffMember.getAmpUsername(); String password = FUtil.randomString(30); plugin.amp.setPassword(username,password); plugin.dc.sendAMPInfo(playerData, username, password); @@ -90,7 +90,7 @@ public class Command_amp extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (args.length == 1 && plugin.al.isSeniorAdmin(sender)) + if (args.length == 1 && plugin.sl.isAdmin(sender)) { return Arrays.asList("create", "resetpassword"); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_announce.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_announce.java index 4abaf2b0..8e216bc1 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_announce.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_announce.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.MOD, source = SourceType.BOTH) @CommandParameters(description = "Make an announcement anonymously to operators.", usage = "/ ") public class Command_announce extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autoclear.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autoclear.java index 66aa34f5..37a74954 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autoclear.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autoclear.java @@ -5,7 +5,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Toggle whether or not a player has their inventory automatically cleared when they join", usage = "/ ") public class Command_autoclear extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autotp.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autotp.java index f52e82b5..5b50a5f5 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autotp.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autotp.java @@ -5,7 +5,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Toggle whether or not a player is automatically teleported when they join", usage = "/ ") public class Command_autotp extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java index 06cb6c0f..163530be 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java @@ -18,7 +18,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH, blockHostConsole = true) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH, blockHostConsole = true) @CommandParameters(description = "Bans the specified player.", usage = "/ [reason] [-nrb | -q]", aliases = "gtfo") public class Command_ban extends FreedomCommand { @@ -151,7 +151,7 @@ public class Command_ban extends FreedomCommand bcast.append(" - Reason: ").append(ChatColor.YELLOW).append(reason); } msg(sender, ChatColor.GRAY + username + " has been banned and IP is: " + StringUtils.join(ips, ", ")); - FUtil.adminAction(sender.getName(), String.format(bcast.toString()), true); + FUtil.staffAction(sender.getName(), String.format(bcast.toString()), true); } // Kick player and handle others on IP diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banip.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banip.java index 272960cc..7a408d2a 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banip.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banip.java @@ -11,7 +11,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH, blockHostConsole = true) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH, blockHostConsole = true) @CommandParameters(description = "Bans the specified ip.", usage = "/ [reason] [-q]") public class Command_banip extends FreedomCommand { @@ -72,7 +72,7 @@ public class Command_banip extends FreedomCommand { // Broadcast FLog.info(ChatColor.RED + sender.getName() + " - Banned the IP " + ip); - String message = ChatColor.RED + sender.getName() + " - Banned " + (plugin.al.isAdmin(player) ? "the IP " + ip : "an IP"); + String message = ChatColor.RED + sender.getName() + " - Banned " + (plugin.sl.isStaff(player) ? "the IP " + ip : "an IP"); player.sendMessage(message); } } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banlist.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banlist.java index b16883a2..366559c5 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banlist.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banlist.java @@ -18,9 +18,9 @@ public class Command_banlist extends FreedomCommand { if (args[0].equalsIgnoreCase("purge")) { - checkRank(Rank.SENIOR_ADMIN); + checkRank(Rank.ADMIN); - FUtil.adminAction(sender.getName(), "Purging the ban list", true); + FUtil.staffAction(sender.getName(), "Purging the ban list", true); int amount = plugin.bm.purge(); msg("Purged " + amount + " player bans."); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banname.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banname.java index 2c6c977d..0d0ccd70 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banname.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banname.java @@ -10,7 +10,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH, blockHostConsole = true) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH, blockHostConsole = true) @CommandParameters(description = "Bans the specified name.", usage = "/ [reason] [-q]") public class Command_banname extends FreedomCommand { @@ -55,7 +55,7 @@ public class Command_banname extends FreedomCommand if (!silent) { - FUtil.adminAction(sender.getName(), "Banned the name " + name, true); + FUtil.staffAction(sender.getName(), "Banned the name " + name, true); } Player player = getPlayer(name); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockcmd.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockcmd.java index 32a42f8f..73c536d9 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockcmd.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockcmd.java @@ -8,7 +8,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Block all commands for everyone on the server, or a specific player.", usage = "/ <-a | purge | >", aliases = "blockcommands,blockcommand,bc,bcmd") public class Command_blockcmd extends FreedomCommand { @@ -23,7 +23,7 @@ public class Command_blockcmd extends FreedomCommand if (args[0].equals("purge")) { - FUtil.adminAction(sender.getName(), "Unblocking commands for all players", true); + FUtil.staffAction(sender.getName(), "Unblocking commands for all players", true); int counter = 0; for (Player player : server.getOnlinePlayers()) { @@ -40,18 +40,18 @@ public class Command_blockcmd extends FreedomCommand if (args[0].equals("-a")) { - FUtil.adminAction(sender.getName(), "Blocking commands for all non-admins", true); + FUtil.staffAction(sender.getName(), "Blocking commands for all non-staff", true); int counter = 0; for (Player player : server.getOnlinePlayers()) { - if (isAdmin(player)) + if (isStaff(player)) { continue; } counter += 1; plugin.pl.getPlayer(player).setCommandsBlocked(true); - msg(player, "Your commands have been blocked by an admin.", ChatColor.RED); + msg(player, "Your commands have been blocked by a staff member.", ChatColor.RED); } msg("Blocked commands for " + counter + " players."); @@ -66,9 +66,9 @@ public class Command_blockcmd extends FreedomCommand return true; } - if (isAdmin(player)) + if (isStaff(player)) { - msg(player.getName() + " is an admin, and cannot have their commands blocked."); + msg(player.getName() + " is a staff member, and cannot have their commands blocked."); return true; } @@ -76,7 +76,7 @@ public class Command_blockcmd extends FreedomCommand if (!playerdata.allCommandsBlocked()) { playerdata.setCommandsBlocked(true); - FUtil.adminAction(sender.getName(), "Blocking all commands for " + player.getName(), true); + FUtil.staffAction(sender.getName(), "Blocking all commands for " + player.getName(), true); msg("Blocked commands for " + player.getName() + "."); } else diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockedit.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockedit.java index 70b9f15d..cc948d7e 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockedit.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockedit.java @@ -10,7 +10,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Restricts/unrestricts block modification abilities for everyone on the server or a certain player.", usage = "/ [[-s] [reason] | list | purge | all]") public class Command_blockedit extends FreedomCommand { @@ -46,7 +46,7 @@ public class Command_blockedit extends FreedomCommand if (args[0].equals("purge")) { - FUtil.adminAction(sender.getName(), "Unblocking block modification abilities for all players.", true); + FUtil.staffAction(sender.getName(), "Unblocking block modification abilities for all players.", true); int count = 0; for (final Player player : this.server.getOnlinePlayers()) { @@ -63,11 +63,11 @@ public class Command_blockedit extends FreedomCommand if (args[0].equals("all")) { - FUtil.adminAction(sender.getName(), "Blocking block modification abilities for all non-admins.", true); + FUtil.staffAction(sender.getName(), "Blocking block modification abilities for all non-staff.", true); int counter = 0; for (final Player player : this.server.getOnlinePlayers()) { - if (!plugin.al.isAdmin(player)) + if (!plugin.sl.isStaff(player)) { final FPlayer playerdata = plugin.pl.getPlayer(player); playerdata.setEditBlocked(true); @@ -105,20 +105,20 @@ public class Command_blockedit extends FreedomCommand final FPlayer pd = plugin.pl.getPlayer(player2); if (pd.isEditBlocked()) { - FUtil.adminAction(sender.getName(), "Unblocking block modification abilities for " + player2.getName(), true); + FUtil.staffAction(sender.getName(), "Unblocking block modification abilities for " + player2.getName(), true); pd.setEditBlocked(false); msg("Unblocking block modification abilities for " + player2.getName()); msg(player2, "Your block modification abilities have been restored.", ChatColor.RED); } else { - if (plugin.al.isAdmin(player2)) + if (plugin.sl.isStaff(player2)) { msg(player2.getName() + " is an admin, and cannot have their block edits blocked."); return true; } - FUtil.adminAction(sender.getName(), "Blocking block modification abilities for " + player2.getName(), true); + FUtil.staffAction(sender.getName(), "Blocking block modification abilities for " + player2.getName(), true); pd.setEditBlocked(true); if (smite) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockpvp.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockpvp.java index d9393dcb..32498376 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockpvp.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockpvp.java @@ -10,7 +10,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Toggle PVP mode for everyone or a certain player.", usage = "/ [[-s] [reason] | list | purge | all]", aliases = "pvpblock,pvpmode") public class Command_blockpvp extends FreedomCommand { @@ -46,7 +46,7 @@ public class Command_blockpvp extends FreedomCommand if (args[0].equals("purge")) { - FUtil.adminAction(sender.getName(), "Enabling PVP for all players.", true); + FUtil.staffAction(sender.getName(), "Enabling PVP for all players.", true); int count = 0; for (Player player : server.getOnlinePlayers()) { @@ -64,11 +64,11 @@ public class Command_blockpvp extends FreedomCommand if (args[0].equals("all")) { - FUtil.adminAction(sender.getName(), "Disabling PVP for all non-admins", true); + FUtil.staffAction(sender.getName(), "Disabling PVP for all non-staff", true); int counter = 0; for (Player player : server.getOnlinePlayers()) { - if (!plugin.al.isAdmin(player)) + if (!plugin.sl.isStaff(player)) { final FPlayer playerdata = plugin.pl.getPlayer(player); playerdata.setPvpBlocked(true); @@ -106,20 +106,20 @@ public class Command_blockpvp extends FreedomCommand final FPlayer pd = plugin.pl.getPlayer(p); if (pd.isPvpBlocked()) { - FUtil.adminAction(sender.getName(), "Enabling PVP for " + p.getName(), true); + FUtil.staffAction(sender.getName(), "Enabling PVP for " + p.getName(), true); pd.setPvpBlocked(false); msg("Enabling PVP for " + p.getName()); msg(p, "Your PVP have been enabled.", ChatColor.GREEN); } else { - if (plugin.al.isAdmin(p)) + if (plugin.sl.isStaff(p)) { msg(p.getName() + " is an admin, and cannot have their PVP disabled."); return true; } - FUtil.adminAction(sender.getName(), "Disabling PVP for " + p.getName(), true); + FUtil.staffAction(sender.getName(), "Disabling PVP for " + p.getName(), true); pd.setPvpBlocked(true); if (smite) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockredstone.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockredstone.java index 312abcce..1dfc7a43 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockredstone.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockredstone.java @@ -8,7 +8,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Blocks redstone on the server.", usage = "/", aliases = "bre") public class Command_blockredstone extends FreedomCommand { @@ -18,14 +18,14 @@ public class Command_blockredstone extends FreedomCommand if (ConfigEntry.ALLOW_REDSTONE.getBoolean()) { ConfigEntry.ALLOW_REDSTONE.setBoolean(false); - FUtil.adminAction(sender.getName(), "Blocking all redstone", true); + FUtil.staffAction(sender.getName(), "Blocking all redstone", true); new BukkitRunnable() { public void run() { if (!ConfigEntry.ALLOW_REDSTONE.getBoolean()) { - FUtil.adminAction("TotalFreedom", "Unblocking all redstone", false); + FUtil.staffAction("TotalFreedom", "Unblocking all redstone", false); ConfigEntry.ALLOW_REDSTONE.setBoolean(true); } } @@ -34,7 +34,7 @@ public class Command_blockredstone extends FreedomCommand else { ConfigEntry.ALLOW_REDSTONE.setBoolean(true); - FUtil.adminAction(sender.getName(), "Unblocking all redstone", true); + FUtil.staffAction(sender.getName(), "Unblocking all redstone", true); } return true; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cage.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cage.java index df4f1eba..95535a5f 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cage.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cage.java @@ -15,7 +15,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Place a cage around someone with certain blocks, or someone's player head.", usage = "/ [head | block] [playername | blockname]") public class Command_cage extends FreedomCommand { @@ -30,7 +30,7 @@ public class Command_cage extends FreedomCommand String skullName = null; if ("purge".equals(args[0])) { - FUtil.adminAction(sender.getName(), "Uncaging all players", true); + FUtil.staffAction(sender.getName(), "Uncaging all players", true); for (Player player : server.getOnlinePlayers()) { final FPlayer fPlayer = plugin.pl.getPlayer(player); @@ -101,11 +101,11 @@ public class Command_cage extends FreedomCommand if (outerMaterial == Material.PLAYER_HEAD) { - FUtil.adminAction(sender.getName(), "Caging " + player.getName() + " in " + skullName, true); + FUtil.staffAction(sender.getName(), "Caging " + player.getName() + " in " + skullName, true); } else { - FUtil.adminAction(sender.getName(), "Caging " + player.getName(), true); + FUtil.staffAction(sender.getName(), "Caging " + player.getName(), true); } return true; } @@ -113,7 +113,7 @@ public class Command_cage extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (!plugin.al.isAdmin(sender)) + if (!plugin.sl.isStaff(sender)) { return null; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cake.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cake.java index 9b38f804..40afd1de 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cake.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cake.java @@ -10,7 +10,7 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.MOD, source = SourceType.BOTH) @CommandParameters(description = "For the people that are still alive - gives a cake to everyone on the server.", usage = "/") public class Command_cake extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cartsit.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cartsit.java index fe66cdd4..722c4a1b 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cartsit.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cartsit.java @@ -16,7 +16,7 @@ public class Command_cartsit extends FreedomCommand { Player targetPlayer = playerSender; - if (args.length == 1 && plugin.al.isAdmin(sender)) + if (args.length == 1 && plugin.sl.isStaff(sender)) { targetPlayer = getPlayer(args[0]); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearchat.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearchat.java index 35ed9dee..f6d590ed 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearchat.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearchat.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Clears the chat.", usage = "/", aliases = "cc") public class Command_clearchat extends FreedomCommand { @@ -16,7 +16,7 @@ public class Command_clearchat extends FreedomCommand { for (Player player : server.getOnlinePlayers()) { - if (!plugin.al.isAdmin(player)) + if (!plugin.sl.isStaff(player)) { for (int i = 0; i < 100; i++) { @@ -24,7 +24,7 @@ public class Command_clearchat extends FreedomCommand } } } - FUtil.adminAction(sender.getName(), "Cleared chat", true); + FUtil.staffAction(sender.getName(), "Cleared chat", true); return true; } } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cleardiscordqueue.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cleardiscordqueue.java index 8346fb70..a9b0b152 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cleardiscordqueue.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cleardiscordqueue.java @@ -5,7 +5,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_CONSOLE) +@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_CONSOLE) @CommandParameters(description = "Clear the discord message queue.", usage = "/") public class Command_cleardiscordqueue extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearinventory.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearinventory.java index f005d52f..e946d2bc 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearinventory.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearinventory.java @@ -29,11 +29,11 @@ public class Command_clearinventory extends FreedomCommand } else { - if (plugin.al.isAdmin(sender)) + if (plugin.sl.isStaff(sender)) { if (args[0].equals("-a")) { - FUtil.adminAction(sender.getName(), "Clearing everyone's inventory", true); + FUtil.staffAction(sender.getName(), "Clearing everyone's inventory", true); for (Player player : server.getOnlinePlayers()) { player.getInventory().clear(); @@ -67,7 +67,7 @@ public class Command_clearinventory extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (args.length == 1 && plugin.al.isAdmin(sender)) + if (args.length == 1 && plugin.sl.isStaff(sender)) { List players = FUtil.getPlayerList(); players.add("-a"); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cmdspy.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cmdspy.java index 6a6a8f8c..c31e1d5b 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cmdspy.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cmdspy.java @@ -1,12 +1,12 @@ package me.totalfreedom.totalfreedommod.command; -import me.totalfreedom.totalfreedommod.admin.Admin; +import me.totalfreedom.totalfreedommod.staff.StaffMember; import me.totalfreedom.totalfreedommod.rank.Rank; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "Spy on commands", usage = "/", aliases = "commandspy") public class Command_cmdspy extends FreedomCommand { @@ -14,11 +14,11 @@ public class Command_cmdspy extends FreedomCommand @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - Admin admin = plugin.al.getAdmin(playerSender); - admin.setCommandSpy(!admin.getCommandSpy()); - msg("CommandSpy " + (admin.getCommandSpy() ? "enabled." : "disabled.")); - plugin.al.save(admin); - plugin.al.updateTables(); + StaffMember staffMember = plugin.sl.getAdmin(playerSender); + staffMember.setCommandSpy(!staffMember.getCommandSpy()); + msg("CommandSpy " + (staffMember.getCommandSpy() ? "enabled." : "disabled.")); + plugin.sl.save(staffMember); + plugin.sl.updateTables(); return true; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_consolesay.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_consolesay.java index 745e20ed..6193e32c 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_consolesay.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_consolesay.java @@ -8,7 +8,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_CONSOLE) +@CommandPermissions(level = Rank.MOD, source = SourceType.ONLY_CONSOLE) @CommandParameters(description = "Telnet/Console command - Send a chat message with chat formatting over telnet.", usage = "/ ", aliases = "csay") public class Command_consolesay extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cookie.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cookie.java index 764981f4..aec2d717 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cookie.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cookie.java @@ -11,7 +11,7 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.MOD, source = SourceType.BOTH) @CommandParameters(description = "For those who have no friends - gives a cookie to everyone on the server.", usage = "/") public class Command_cookie extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_creative.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_creative.java index c81edfab..92bf02ee 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_creative.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_creative.java @@ -28,7 +28,7 @@ public class Command_creative extends FreedomCommand return true; } - checkRank(Rank.SUPER_ADMIN); + checkRank(Rank.TRIAL_MOD); if (args[0].equals("-a")) { @@ -37,7 +37,7 @@ public class Command_creative extends FreedomCommand targetPlayer.setGameMode(GameMode.CREATIVE); } - FUtil.adminAction(sender.getName(), "Changing everyone's gamemode to creative", false); + FUtil.staffAction(sender.getName(), "Changing everyone's gamemode to creative", false); msg("Your gamemode has been set to creative."); return true; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_curse.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_curse.java index c17b9eea..85f81ac6 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_curse.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_curse.java @@ -9,7 +9,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "Curse someone - sends a cursed texture pack to the specified player.", usage = "/ ") public class Command_curse extends FreedomCommand { @@ -57,7 +57,7 @@ public class Command_curse extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (args.length == 1 && plugin.al.isAdmin(sender) && FUtil.isExecutive(sender.getName())) + if (args.length == 1 && plugin.sl.isStaff(sender) && FUtil.isExecutive(sender.getName())) { return FUtil.getPlayerList(); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_denick.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_denick.java index a03aacb0..cd395cfa 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_denick.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_denick.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Essentials Interface Command - Remove the nickname of all players on the server.", usage = "/") public class Command_denick extends FreedomCommand { @@ -20,7 +20,7 @@ public class Command_denick extends FreedomCommand return true; } - FUtil.adminAction(sender.getName(), "Removing all nicknames", false); + FUtil.staffAction(sender.getName(), "Removing all nicknames", false); for (Player player : server.getOnlinePlayers()) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java index 56d7e129..0b989867 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java @@ -9,7 +9,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Deop a player", usage = "/ ") public class Command_deop extends FreedomCommand { @@ -35,7 +35,7 @@ public class Command_deop extends FreedomCommand if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName().toLowerCase().contains(targetName) || player.getName().contains(targetName) || player.getDisplayName().contains(targetName)) { - if (player.isOp() && !plugin.al.isVanished(player)) + if (player.isOp() && !plugin.sl.isVanished(player)) { matchedPlayerNames.add(player.getName()); player.setOp(false); @@ -48,7 +48,7 @@ public class Command_deop extends FreedomCommand { if (!silent) { - FUtil.adminAction(sender.getName(), "De-opping " + StringUtils.join(matchedPlayerNames, ", "), false); + FUtil.staffAction(sender.getName(), "De-opping " + StringUtils.join(matchedPlayerNames, ", "), false); } } else diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deopall.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deopall.java index 1eb990cf..b0eedd51 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deopall.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deopall.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH, blockHostConsole = true) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH, blockHostConsole = true) @CommandParameters(description = "Deop everyone on the server.", usage = "/") public class Command_deopall extends FreedomCommand { @@ -14,7 +14,7 @@ public class Command_deopall extends FreedomCommand @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - FUtil.adminAction(sender.getName(), "De-opping all players on the server", true); + FUtil.staffAction(sender.getName(), "De-opping all players on the server", true); for (Player player : server.getOnlinePlayers()) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_disguisetoggle.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_disguisetoggle.java index 64121cf0..ff6ac8d1 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_disguisetoggle.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_disguisetoggle.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Toggle LibsDisguises for everyone online.", usage = "/", aliases = "dtoggle") public class Command_disguisetoggle extends FreedomCommand { @@ -20,7 +20,7 @@ public class Command_disguisetoggle extends FreedomCommand return true; } - FUtil.adminAction(sender.getName(), (plugin.ldb.isDisguisesEnabled() ? "Disabling" : "Enabling") + " disguises", false); + FUtil.staffAction(sender.getName(), (plugin.ldb.isDisguisesEnabled() ? "Disabling" : "Enabling") + " disguises", false); if (plugin.ldb.isDisguisesEnabled()) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_donator.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_donator.java index 50ec5bc2..a0100491 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_donator.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_donator.java @@ -13,7 +13,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_CONSOLE) +@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_CONSOLE) @CommandParameters(description = "Adds or removes donators", usage = "/ [forum_user]") public class Command_donator extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_doom.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_doom.java index 2cf8579c..b9b06cae 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_doom.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_doom.java @@ -1,6 +1,6 @@ package me.totalfreedom.totalfreedommod.command; -import me.totalfreedom.totalfreedommod.admin.Admin; +import me.totalfreedom.totalfreedommod.staff.StaffMember; import me.totalfreedom.totalfreedommod.banning.Ban; import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.punishments.Punishment; @@ -17,7 +17,7 @@ import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.util.Vector; -@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_CONSOLE, blockHostConsole = true) +@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_CONSOLE, blockHostConsole = true) @CommandParameters(description = "Sends the specified player to their doom.", usage = "/ [reason]") public class Command_doom extends FreedomCommand { @@ -38,23 +38,23 @@ public class Command_doom extends FreedomCommand return true; } - FUtil.adminAction(sender.getName(), "Casting oblivion over " + player.getName(), true); + FUtil.staffAction(sender.getName(), "Casting oblivion over " + player.getName(), true); FUtil.bcastMsg(player.getName() + " will be completely obliviated!", ChatColor.RED); final String ip = player.getAddress().getAddress().getHostAddress().trim(); // Remove from admin - Admin admin = getAdmin(player); - if (admin != null) + StaffMember staffMember = getAdmin(player); + if (staffMember != null) { - FUtil.adminAction(sender.getName(), "Removing " + player.getName() + " from the admin list", true); - admin.setActive(false); - plugin.al.save(admin); - plugin.al.updateTables(); - plugin.amp.updateAccountStatus(admin); + FUtil.staffAction(sender.getName(), "Removing " + player.getName() + " from the staff list", true); + staffMember.setActive(false); + plugin.sl.save(staffMember); + plugin.sl.updateTables(); + plugin.amp.updateAccountStatus(staffMember); if (plugin.dc.enabled && ConfigEntry.DISCORD_ROLE_SYNC.getBoolean()) { - plugin.dc.syncRoles(admin, plugin.pl.getData(admin.getName()).getDiscordID()); + plugin.dc.syncRoles(staffMember, plugin.pl.getData(staffMember.getName()).getDiscordID()); } } @@ -120,7 +120,7 @@ public class Command_doom extends FreedomCommand public void run() { // message - FUtil.adminAction(sender.getName(), "Banning " + player.getName(), true); + FUtil.staffAction(sender.getName(), "Banning " + player.getName(), true); msg(sender, player.getName() + " has been banned and IP is: " + ip); // generate explosion diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_entitywipe.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_entitywipe.java index e82b27c1..47333c69 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_entitywipe.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_entitywipe.java @@ -12,7 +12,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Remove various server entities that may cause lag, such as dropped items, minecarts, and boats.", usage = "/ [name | -a]", aliases = "ew,rd") public class Command_entitywipe extends FreedomCommand { @@ -54,7 +54,7 @@ public class Command_entitywipe extends FreedomCommand entityName = FUtil.formatName(type.name()); } - FUtil.adminAction(sender.getName(), "Purging all " + (type != null ? entityName + "s" : "entities"), true); + FUtil.staffAction(sender.getName(), "Purging all " + (type != null ? entityName + "s" : "entities"), true); int count; if (type != null) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_expel.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_expel.java index e1c9c279..13ab38c8 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_expel.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_expel.java @@ -11,7 +11,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.util.Vector; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "Push people away from you.", usage = "/ [radius] [strength]") public class Command_expel extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explode.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explode.java index ef4068b1..372016da 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explode.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explode.java @@ -10,7 +10,7 @@ import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.util.Vector; -@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.ADMIN, source = SourceType.BOTH) @CommandParameters(description = "Surprise someone.", usage = "/ ") public class Command_explode extends FreedomCommand { @@ -58,7 +58,7 @@ public class Command_explode extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (args.length == 1 && plugin.al.isAdmin(sender)) + if (args.length == 1 && plugin.sl.isStaff(sender)) { return FUtil.getPlayerList(); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explosivearrows.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explosivearrows.java index 62aa0f8d..4f21376a 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explosivearrows.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explosivearrows.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.MOD, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "Make arrows explode", usage = "/", aliases = "ea") public class Command_explosivearrows extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_findip.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_findip.java index b374f569..300d136e 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_findip.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_findip.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Shows all IPs registered to a player", usage = "/ ", aliases = "showip,listip") public class Command_findip extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_forcekill.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_forcekill.java index 4877457f..a7c4d1ce 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_forcekill.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_forcekill.java @@ -13,7 +13,7 @@ public class Command_forcekill extends FreedomCommand @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (!plugin.al.isAdmin(sender) && !senderIsConsole) + if (!plugin.sl.isMod(sender) && !senderIsConsole) { playerSender.setHealth(0); return true; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_freeze.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_freeze.java index 8c50aec3..c0405010 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_freeze.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_freeze.java @@ -8,7 +8,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Freeze/Unfreeze a specified player, or all non-admins on the server.", usage = "/ [target | purge]", aliases = "fr") public class Command_freeze extends FreedomCommand { @@ -23,15 +23,15 @@ public class Command_freeze extends FreedomCommand if (!gFreeze) { - FUtil.adminAction(sender.getName(), "Disabling global player freeze", false); + FUtil.staffAction(sender.getName(), "Disabling global player freeze", false); msg("Players are now free to move."); return true; } - FUtil.adminAction(sender.getName(), "Enabling global player freeze", false); + FUtil.staffAction(sender.getName(), "Enabling global player freeze", false); for (Player player : server.getOnlinePlayers()) { - if (!isAdmin(player)) + if (!isStaff(player)) { player.sendTitle(ChatColor.RED + "You've been globally frozen.", ChatColor.YELLOW + "Please be patient and you will be unfrozen shortly.", 20, 100, 60); msg(player, "You have been globally frozen due to an OP breaking the rules, please wait and you will be unfrozen soon.", ChatColor.RED); @@ -44,10 +44,10 @@ public class Command_freeze extends FreedomCommand if (args[0].equals("purge")) { - FUtil.adminAction(sender.getName(), "Unfreezing all players", false); + FUtil.staffAction(sender.getName(), "Unfreezing all players", false); for (Player player : server.getOnlinePlayers()) { - if (!isAdmin(player)) + if (!isStaff(player)) { player.sendTitle(ChatColor.GREEN + "You've been unfrozen.", ChatColor.YELLOW + "You may now move again.", 20, 100, 60); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_fuckoff.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_fuckoff.java index ab5cb382..e1cf22e2 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_fuckoff.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_fuckoff.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "You'll never even see it coming - repeatedly push players away from you until command is untoggled.", usage = "/ ") public class Command_fuckoff extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_health.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_health.java index f17867b8..617c7d2c 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_health.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_health.java @@ -13,7 +13,7 @@ import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitTask; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "View server health, such as ticks-per-second, memory, etc.", usage = "/") public class Command_health extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_hubworld.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_hubworld.java index 4e9eff37..97ab3f3f 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_hubworld.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_hubworld.java @@ -152,7 +152,7 @@ public class Command_hubworld extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (!plugin.al.isAdmin(sender)) + if (!plugin.sl.isStaff(sender)) { return Collections.emptyList(); } @@ -177,7 +177,7 @@ public class Command_hubworld extends FreedomCommand // TODO: Redo this properly private void assertCommandPerms(CommandSender sender, Player playerSender) throws PermissionDeniedException { - if (!(sender instanceof Player) || playerSender == null || !plugin.al.isSeniorAdmin(playerSender)) + if (!(sender instanceof Player) || playerSender == null || !plugin.sl.isAdmin(playerSender)) { throw new PermissionDeniedException(); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_indefban.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_indefban.java index 32f5f1bb..e645bbd3 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_indefban.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_indefban.java @@ -5,7 +5,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_CONSOLE) +@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_CONSOLE) @CommandParameters(description = "Reload the indefinite ban list.", usage = "/ reload", aliases = "ib") public class Command_indefban extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invis.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invis.java index 1dc749d4..b1e4a8a9 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invis.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invis.java @@ -26,11 +26,11 @@ public class Command_invis extends FreedomCommand { if (args[0].equalsIgnoreCase("clear")) { - if(!plugin.al.isAdmin(sender)) + if(!plugin.sl.isStaff(sender)) return noPerms(); else { - FUtil.adminAction(sender.getName(), "Clearing all invisibility potion effects from all players", true); + FUtil.staffAction(sender.getName(), "Clearing all invisibility potion effects from all players", true); clear = true; } } @@ -43,10 +43,10 @@ public class Command_invis extends FreedomCommand for (Player player : server.getOnlinePlayers()) { - if (player.hasPotionEffect(PotionEffectType.INVISIBILITY) && !plugin.al.isVanished(player)) + if (player.hasPotionEffect(PotionEffectType.INVISIBILITY) && !plugin.sl.isVanished(player)) { players.add(player.getName()); - if (clear && !plugin.al.isAdmin(player)) + if (clear && !plugin.sl.isStaff(player)) { player.removePotionEffect((PotionEffectType.INVISIBILITY)); clears++; @@ -71,7 +71,7 @@ public class Command_invis extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (args.length == 1 && plugin.al.isAdmin(sender)) + if (args.length == 1 && plugin.sl.isStaff(sender)) return Arrays.asList("clear"); return Collections.emptyList(); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invsee.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invsee.java index 68f31b62..d4d06ea1 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invsee.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invsee.java @@ -35,7 +35,7 @@ public class Command_invsee extends FreedomCommand return true; } - if (plugin.al.isAdmin(player) && !plugin.al.isAdmin(playerSender)) + if (plugin.sl.isStaff(player) && !plugin.sl.isStaff(playerSender)) { msg("You cannot spy on administrators."); return true; @@ -44,7 +44,7 @@ public class Command_invsee extends FreedomCommand Inventory inv; - if (plugin.al.isAdmin(player)) + if (plugin.sl.isStaff(player)) { if (args.length > 1) { @@ -75,7 +75,7 @@ public class Command_invsee extends FreedomCommand return true; } - if (!plugin.al.isAdmin(player)) + if (!plugin.sl.isStaff(player)) { if (args.length > 1) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_jumppads.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_jumppads.java index 604ce9be..1ec12b73 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_jumppads.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_jumppads.java @@ -95,7 +95,7 @@ public class Command_jumppads extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (!plugin.al.isAdmin(sender)) + if (!plugin.sl.isStaff(sender)) { return Collections.emptyList(); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kick.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kick.java index c18f503b..1c575ce0 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kick.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kick.java @@ -12,7 +12,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Kick the specified player.", usage = "/ [reason] [-q]") public class Command_kick extends FreedomCommand { @@ -65,11 +65,11 @@ public class Command_kick extends FreedomCommand { if (reason != null) { - FUtil.adminAction(sender.getName(), "Kicking " + player.getName() + " - Reason: " + reason, true); + FUtil.staffAction(sender.getName(), "Kicking " + player.getName() + " - Reason: " + reason, true); } else { - FUtil.adminAction(sender.getName(), "Kicking " + player.getName(), true); + FUtil.staffAction(sender.getName(), "Kicking " + player.getName(), true); } } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kicknoob.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kicknoob.java index b8b8c810..ce1ce71d 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kicknoob.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kicknoob.java @@ -7,21 +7,21 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.TELNET_ADMIN, source = SourceType.BOTH) -@CommandParameters(description = "Kick all non-admins on server.", usage = "/", aliases = "kickall") +@CommandPermissions(level = Rank.MOD, source = SourceType.BOTH) +@CommandParameters(description = "Kick all non-staff on server.", usage = "/", aliases = "kickall") public class Command_kicknoob extends FreedomCommand { @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - FUtil.adminAction(sender.getName(), "Disconnecting all non-admins.", true); + FUtil.staffAction(sender.getName(), "Disconnecting all non-staff.", true); for (Player player : server.getOnlinePlayers()) { - if (!plugin.al.isAdmin(player)) + if (!plugin.sl.isStaff(player)) { - player.kickPlayer(ChatColor.RED + "All non-admins were kicked by " + sender.getName() + "."); + player.kickPlayer(ChatColor.RED + "All non-staff were kicked by " + sender.getName() + "."); } } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lastcmd.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lastcmd.java index 34600c1a..f0f4343f 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lastcmd.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lastcmd.java @@ -7,7 +7,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Show the last command the specified player used.", usage = "/ ") public class Command_lastcmd extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkdiscord.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkdiscord.java index a6510fc0..94dca915 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkdiscord.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkdiscord.java @@ -22,7 +22,7 @@ public class Command_linkdiscord extends FreedomCommand return true; } - if (args.length > 1 && plugin.al.isAdmin(playerSender)) + if (args.length > 1 && plugin.sl.isStaff(playerSender)) { PlayerData playerData = plugin.pl.getData(args[0]); if (playerData == null) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java index a3ab50d4..e2beade9 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java @@ -3,7 +3,11 @@ package me.totalfreedom.totalfreedommod.command; import de.myzelyam.api.vanish.VanishAPI; import java.util.ArrayList; import java.util.List; +<<<<<<< HEAD import me.totalfreedom.totalfreedommod.admin.Admin; +======= +import me.totalfreedom.totalfreedommod.staff.StaffMember; +>>>>>>> parent of da80f1b6... Revert "Merge branch 'development' of https://github.com/TFPatches/TotalFreedomMod into development" import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.rank.Displayable; import me.totalfreedom.totalfreedommod.rank.Rank; @@ -15,7 +19,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @CommandPermissions(level = Rank.IMPOSTOR, source = SourceType.BOTH) -@CommandParameters(description = "Lists the real names of all online players.", usage = "/ [-a | -i | -f | -v]", aliases = "who,lsit") +@CommandParameters(description = "Lists the real names of all online players.", usage = "/ [-s | -i | -f | -v]", aliases = "who,lsit") public class Command_list extends FreedomCommand { @@ -41,20 +45,20 @@ public class Command_list extends FreedomCommand String s = args[0]; switch (s) { - case "-a": + case "-s": { - listFilter = ListFilter.ADMINS; + listFilter = ListFilter.STAFF; break; } case "-v": { - checkRank(Rank.SUPER_ADMIN); - listFilter = ListFilter.VANISHED_ADMINS; + checkRank(Rank.TRIAL_MOD); + listFilter = ListFilter.VANISHED_STAFF; break; } case "-t": { - checkRank(Rank.TELNET_ADMIN); + checkRank(Rank.MOD); listFilter = ListFilter.TELNET_SESSIONS; break; } @@ -83,15 +87,15 @@ public class Command_list extends FreedomCommand List n = new ArrayList<>(); - if (listFilter == ListFilter.TELNET_SESSIONS && plugin.al.isAdmin(sender) && plugin.al.getAdmin(sender).getRank().isAtLeast(Rank.TELNET_ADMIN)) + if (listFilter == ListFilter.TELNET_SESSIONS && plugin.sl.isStaff(sender) && plugin.sl.getAdmin(sender).getRank().isAtLeast(Rank.MOD)) { - List connectedAdmins = plugin.btb.getConnectedAdmins(); - onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(connectedAdmins.size()) + List connectedStaffMembers = plugin.btb.getConnectedAdmins(); + onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(connectedStaffMembers.size()) .append(ChatColor.BLUE) - .append(" admins connected to telnet."); - for (Admin admin : connectedAdmins) + .append(" staff connected to telnet."); + for (StaffMember staffMember : connectedStaffMembers) { - n.add(plugin.rm.getDisplay(admin).getColoredTag() + admin.getName()); + n.add(plugin.rm.getDisplay(staffMember).getColoredTag() + staffMember.getName()); } } else @@ -105,19 +109,27 @@ public class Command_list extends FreedomCommand .append(" players online."); for (Player p : server.getOnlinePlayers()) { - if (listFilter == ListFilter.ADMINS && !plugin.al.isAdmin(p)) + if (listFilter == ListFilter.STAFF && !plugin.sl.isStaff(p)) { continue; } +<<<<<<< HEAD if (listFilter == ListFilter.ADMINS && plugin.al.isVanished(p)) { continue; } if (listFilter == ListFilter.VANISHED_ADMINS && !plugin.al.isVanished(p)) +======= + if (listFilter == ListFilter.STAFF && plugin.sl.isVanished(p)) { continue; } - if (listFilter == ListFilter.IMPOSTORS && !plugin.al.isAdminImpostor(p)) + if (listFilter == ListFilter.VANISHED_STAFF && !plugin.sl.isVanished(p)) +>>>>>>> parent of da80f1b6... Revert "Merge branch 'development' of https://github.com/TFPatches/TotalFreedomMod into development" + { + continue; + } + if (listFilter == ListFilter.IMPOSTORS && !plugin.sl.isAdminImpostor(p)) { continue; } @@ -125,20 +137,13 @@ public class Command_list extends FreedomCommand { continue; } - if (listFilter == ListFilter.PLAYERS && plugin.al.isVanished(p)) + if (listFilter == ListFilter.PLAYERS && plugin.sl.isVanished(p)) { continue; } final Displayable display = plugin.rm.getDisplay(p); - if (!senderIsConsole && plugin.al.isAdmin(playerSender) && plugin.al.getAdmin(playerSender).getOldTags()) - { - n.add(getOldPrefix(display) + p.getName()); - } - else - { - n.add(display.getColoredTag() + p.getName()); - } + n.add(display.getColoredTag() + p.getName()); } } String playerType = listFilter.toString().toLowerCase().replace('_', ' '); @@ -162,29 +167,12 @@ public class Command_list extends FreedomCommand return true; } - public String getOldPrefix(Displayable display) - { - ChatColor color = display.getColor(); - - if (color.equals(ChatColor.AQUA)) - { - color = ChatColor.GOLD; - } - else if (color.equals(ChatColor.GOLD)) - { - color = ChatColor.LIGHT_PURPLE; - } - - String prefix = "[" + display.getAbbr() + "]"; - - return color + prefix; - } private enum ListFilter { PLAYERS, - ADMINS, - VANISHED_ADMINS, + STAFF, + VANISHED_STAFF, TELNET_SESSIONS, FAMOUS_PLAYERS, IMPOSTORS diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lockup.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lockup.java index 92222b16..4d3d4fb8 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lockup.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lockup.java @@ -9,7 +9,7 @@ import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitTask; -@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.BOTH, blockHostConsole = true) +@CommandPermissions(level = Rank.ADMIN, source = SourceType.BOTH, blockHostConsole = true) @CommandParameters(description = "This is evil, and I never should have wrote it - blocks specified player's input.", usage = "/ on | off> [-q]>") public class Command_lockup extends FreedomCommand { @@ -22,7 +22,7 @@ public class Command_lockup extends FreedomCommand { if (args[0].equalsIgnoreCase("all")) { - FUtil.adminAction(sender.getName(), "Locking up all players", true); + FUtil.staffAction(sender.getName(), "Locking up all players", true); for (Player player : server.getOnlinePlayers()) { @@ -32,7 +32,7 @@ public class Command_lockup extends FreedomCommand } else if (args[0].equalsIgnoreCase("purge")) { - FUtil.adminAction(sender.getName(), "Unlocking all players", true); + FUtil.staffAction(sender.getName(), "Unlocking all players", true); for (Player player : server.getOnlinePlayers()) { cancelLockup(player); @@ -59,7 +59,7 @@ public class Command_lockup extends FreedomCommand if (!silent) { - FUtil.adminAction(sender.getName(), "Locking up " + player.getName(), true); + FUtil.staffAction(sender.getName(), "Locking up " + player.getName(), true); } startLockup(player); msg("Locked up " + player.getName() + "."); @@ -76,7 +76,7 @@ public class Command_lockup extends FreedomCommand if (!silent) { - FUtil.adminAction(sender.getName(), "Unlocking " + player.getName(), true); + FUtil.staffAction(sender.getName(), "Unlocking " + player.getName(), true); } cancelLockup(player); msg("Unlocked " + player.getName() + "."); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_logs.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_logs.java index 5fae0ac8..190245b5 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_logs.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_logs.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "Register your connection with the TFM logviewer.", usage = "/ [off]") public class Command_logs extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_makeopregion.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_makeopregion.java index e61f8642..a1e64b00 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_makeopregion.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_makeopregion.java @@ -19,7 +19,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "Make a WorldGuard region for an OP.", usage = "/ ", aliases = "mor") public class Command_makeopregion extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manageshop.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manageshop.java index de71f1dd..30ea0d05 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manageshop.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manageshop.java @@ -10,7 +10,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_CONSOLE) +@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_CONSOLE) @CommandParameters(description = "Manage the shop", usage = "/ | items: ", aliases = "ms") public class Command_manageshop extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manuallyverify.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manuallyverify.java index 8141e729..6c875b0a 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manuallyverify.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manuallyverify.java @@ -7,7 +7,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Manually verify someone", usage = "/ ", aliases="mv") public class Command_manuallyverify extends FreedomCommand { @@ -39,7 +39,7 @@ public class Command_manuallyverify extends FreedomCommand return true; } - FUtil.adminAction(sender.getName(), "Manually verifying player " + player.getName(), false); + FUtil.staffAction(sender.getName(), "Manually verifying player " + player.getName(), false); player.setOp(true); player.sendMessage(YOU_ARE_OP); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_massmurder.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_massmurder.java index e5ed5857..bfa587b7 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_massmurder.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_massmurder.java @@ -6,7 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.ADMIN, source = SourceType.BOTH) @CommandParameters(description = "seth's personal command", usage = "/ ", aliases = "genocide") public class Command_massmurder extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_masterbuilderworld.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_masterbuilderworld.java index b368a18b..1ee29f31 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_masterbuilderworld.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_masterbuilderworld.java @@ -152,7 +152,7 @@ public class Command_masterbuilderworld extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (!plugin.al.isAdmin(sender)) + if (!plugin.sl.isStaff(sender)) { return Collections.emptyList(); } @@ -177,7 +177,7 @@ public class Command_masterbuilderworld extends FreedomCommand // TODO: Redo this properly private void assertCommandPerms(CommandSender sender, Player playerSender) throws PermissionDeniedException { - if (!(sender instanceof Player) || playerSender == null || !plugin.al.isSeniorAdmin(playerSender)) + if (!(sender instanceof Player) || playerSender == null || !plugin.sl.isAdmin(playerSender)) { throw new PermissionDeniedException(); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mbconfig.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mbconfig.java index cbc0e349..7cbc0297 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mbconfig.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mbconfig.java @@ -65,7 +65,7 @@ public class Command_mbconfig extends FreedomCommand if (data.isMasterBuilder() && plugin.pl.isPlayerImpostor(player)) { - FUtil.adminAction(sender.getName(), "Re-adding " + player.getName() + " to the Master Builder list", true); + FUtil.staffAction(sender.getName(), "Re-adding " + player.getName() + " to the Master Builder list", true); player.setOp(true); player.sendMessage(YOU_ARE_OP); @@ -79,7 +79,7 @@ public class Command_mbconfig extends FreedomCommand } else if (!data.isMasterBuilder()) { - FUtil.adminAction(sender.getName(), "Adding " + player.getName() + " to the Master Builder list", true); + FUtil.staffAction(sender.getName(), "Adding " + player.getName() + " to the Master Builder list", true); data.setMasterBuilder(true); data.setVerification(true); plugin.pl.save(data); @@ -113,7 +113,7 @@ public class Command_mbconfig extends FreedomCommand return true; } - FUtil.adminAction(sender.getName(), "Removing " + data.getName() + " from the Master Builder list", true); + FUtil.staffAction(sender.getName(), "Removing " + data.getName() + " from the Master Builder list", true); data.setMasterBuilder(false); if (data.getDiscordID() == null) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_moblimiter.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_moblimiter.java index 2f3d1e94..05454acd 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_moblimiter.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_moblimiter.java @@ -7,7 +7,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Control mob limiting parameters.", usage = "/ |dragon|giant|ghast|slime>") public class Command_moblimiter extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mobpurge.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mobpurge.java index e6797d8e..cb7bcf9c 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mobpurge.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mobpurge.java @@ -12,7 +12,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Purge all mobs in all worlds.", usage = "/ [name]", aliases = "mp") public class Command_mobpurge extends FreedomCommand { @@ -46,7 +46,7 @@ public class Command_mobpurge extends FreedomCommand mobName = FUtil.formatName(type.name()); } - FUtil.adminAction(sender.getName(), "Purging all " + (type != null ? mobName + "s" : "mobs"), true); + FUtil.staffAction(sender.getName(), "Purging all " + (type != null ? mobName + "s" : "mobs"), true); int count = plugin.ew.purgeMobs(type); msg(count + " " + (type != null ? mobName : "mob") + FUtil.showS(count) + " removed."); return true; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mute.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mute.java index 538ff60e..52f23767 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mute.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mute.java @@ -16,7 +16,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Mutes a player with brute force.", usage = "/ <[-s | -q] [reason] | list | purge | all>", aliases = "stfu") public class Command_mute extends FreedomCommand { @@ -53,7 +53,7 @@ public class Command_mute extends FreedomCommand if (args[0].equals("purge")) { - FUtil.adminAction(sender.getName(), "Unmuting all players.", true); + FUtil.staffAction(sender.getName(), "Unmuting all players.", true); FPlayer info; int count = 0; for (Player mp : server.getOnlinePlayers()) @@ -73,13 +73,13 @@ public class Command_mute extends FreedomCommand if (args[0].equals("all")) { - FUtil.adminAction(sender.getName(), "Muting all non-admins", true); + FUtil.staffAction(sender.getName(), "Muting all non-admins", true); FPlayer playerdata; int counter = 0; for (Player player : server.getOnlinePlayers()) { - if (!plugin.al.isAdmin(player)) + if (!plugin.sl.isStaff(player)) { player.sendTitle(ChatColor.RED + "You've been muted globally.", ChatColor.YELLOW + "Please be patient and you will be unmuted shortly.", 20, 100, 60); playerdata = plugin.pl.getPlayer(player); @@ -120,7 +120,7 @@ public class Command_mute extends FreedomCommand } FPlayer playerdata = plugin.pl.getPlayer(player); - if (plugin.al.isAdmin(player)) + if (plugin.sl.isStaff(player)) { msg(player.getName() + " is an admin, and can't be muted."); return true; @@ -140,7 +140,7 @@ public class Command_mute extends FreedomCommand return true; } - FUtil.adminAction(sender.getName(), "Muting " + player.getName(), true); + FUtil.staffAction(sender.getName(), "Muting " + player.getName(), true); if (smite) { @@ -163,7 +163,7 @@ public class Command_mute extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (!plugin.al.isAdmin(sender)) + if (!plugin.sl.isStaff(sender)) { return null; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_myadmin.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mystaff.java similarity index 76% rename from src/main/java/me/totalfreedom/totalfreedommod/command/Command_myadmin.java rename to src/main/java/me/totalfreedom/totalfreedommod/command/Command_mystaff.java index b1e4cef0..e9c70f43 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_myadmin.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mystaff.java @@ -4,7 +4,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; -import me.totalfreedom.totalfreedommod.admin.Admin; +import me.totalfreedom.totalfreedommod.staff.StaffMember; import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.player.PlayerData; import me.totalfreedom.totalfreedommod.rank.Rank; @@ -15,9 +15,9 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) -@CommandParameters(description = "Manage your admin entry.", usage = "/ [-o ] | setlogin | clearlogin | setacformat | clearacformat> | oldtags | logstick | syncroles>") -public class Command_myadmin extends FreedomCommand +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME) +@CommandParameters(description = "Manage your staff entry.", usage = "/ [-o ] | setlogin | clearlogin | setacformat | clearacformat> | oldtags | logstick | syncroles>") +public class Command_mystaff extends FreedomCommand { @Override @@ -29,13 +29,13 @@ public class Command_myadmin extends FreedomCommand } Player init = null; - Admin target = getAdmin(playerSender); + StaffMember target = getAdmin(playerSender); Player targetPlayer = playerSender; // -o switch if (args[0].equals("-o")) { - checkRank(Rank.SENIOR_ADMIN); + checkRank(Rank.ADMIN); init = playerSender; targetPlayer = getPlayer(args[1]); if (targetPlayer == null) @@ -47,7 +47,7 @@ public class Command_myadmin extends FreedomCommand target = getAdmin(targetPlayer); if (target == null) { - msg("That player is not an admin", ChatColor.RED); + msg("That player is not a staff member", ChatColor.RED); return true; } @@ -72,19 +72,19 @@ public class Command_myadmin extends FreedomCommand if (init == null) { - FUtil.adminAction(sender.getName(), "Clearing my supered IPs", true); + FUtil.staffAction(sender.getName(), "Clearing my IPs", true); } else { - FUtil.adminAction(sender.getName(), "Clearing " + target.getName() + "' supered IPs", true); + FUtil.staffAction(sender.getName(), "Clearing " + target.getName() + "' IPs", true); } int counter = target.getIps().size() - 1; target.clearIPs(); target.addIp(targetIp); - plugin.al.save(target); - plugin.al.updateTables(); + plugin.sl.save(target); + plugin.sl.updateTables(); plugin.pl.syncIps(target); @@ -121,16 +121,16 @@ public class Command_myadmin extends FreedomCommand } else { - msg("You cannot remove that admin's current IP."); + msg("You cannot remove that staff members's current IP."); } return true; } - FUtil.adminAction(sender.getName(), "Removing a supered IP" + (init == null ? "" : " from " + targetPlayer.getName() + "'s IPs"), true); + FUtil.staffAction(sender.getName(), "Removing an IP" + (init == null ? "" : " from " + targetPlayer.getName() + "'s IPs"), true); target.removeIp(args[1]); - plugin.al.save(target); - plugin.al.updateTables(); + plugin.sl.save(target); + plugin.sl.updateTables(); plugin.pl.syncIps(target); @@ -141,6 +141,7 @@ public class Command_myadmin extends FreedomCommand case "setlogin": { + checkRank(Rank.MOD); if (args.length < 2) { return false; @@ -158,50 +159,43 @@ public class Command_myadmin extends FreedomCommand msg("Your login message cannot be more than 100 characters (excluding your rank and your name)", ChatColor.RED); return true; } - FUtil.adminAction(sender.getName(), "Setting personal login message" + (init == null ? "" : " for " + targetPlayer.getName()), false); + FUtil.staffAction(sender.getName(), "Setting personal login message" + (init == null ? "" : " for " + targetPlayer.getName()), false); target.setLoginMessage(message); String previewMessage = plugin.rm.craftLoginMessage(targetPlayer, message); msg((init == null ? "Your" : targetPlayer.getName() + "'s") + " login message is now: "); msg("> " + previewMessage); - plugin.al.save(target); - plugin.al.updateTables(); + plugin.sl.save(target); + plugin.sl.updateTables(); return true; } case "clearlogin": { - FUtil.adminAction(sender.getName(), "Clearing personal login message" + (init == null ? "" : " for " + targetPlayer.getName()), false); + checkRank(Rank.MOD); + FUtil.staffAction(sender.getName(), "Clearing personal login message" + (init == null ? "" : " for " + targetPlayer.getName()), false); target.setLoginMessage(null); - plugin.al.save(target); - plugin.al.updateTables(); + plugin.sl.save(target); + plugin.sl.updateTables(); return true; } - case "setacformat": + case "setscformat": { String format = StringUtils.join(args, " ", 1, args.length); target.setAcFormat(format); - plugin.al.save(target); - plugin.al.updateTables(); - msg("Set admin chat format to \"" + format + "\".", ChatColor.GRAY); - String example = format.replace("%name%", "ExampleAdmin").replace("%rank%", Rank.TELNET_ADMIN.getAbbr()).replace("%rankcolor%", Rank.TELNET_ADMIN.getColor().toString()).replace("%msg%", "The quick brown fox jumps over the lazy dog."); + plugin.sl.save(target); + plugin.sl.updateTables(); + msg("Set staff chat format to \"" + format + "\".", ChatColor.GRAY); + String example = format.replace("%name%", "ExampleStaff").replace("%rank%", Rank.MOD.getAbbr()).replace("%rankcolor%", Rank.MOD.getColor().toString()).replace("%msg%", "The quick brown fox jumps over the lazy dog."); msg(ChatColor.GRAY + "Example: " + FUtil.colorize(example)); return true; } - case "clearacformat": + case "clearscformat": { target.setAcFormat(null); - plugin.al.save(target); - plugin.al.updateTables(); - msg("Cleared admin chat format.", ChatColor.GRAY); - return true; - } - case "oldtags": - { - target.setOldTags(!target.getOldTags()); - plugin.al.save(target); - plugin.al.updateTables(); - msg((target.getOldTags() ? "Enabled" : "Disabled") + " old tags."); + plugin.sl.save(target); + plugin.sl.updateTables(); + msg("Cleared staff chat format.", ChatColor.GRAY); return true; } @@ -248,7 +242,7 @@ public class Command_myadmin extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (!plugin.al.isAdmin(sender)) + if (!plugin.sl.isStaff(sender)) { return Collections.emptyList(); } @@ -275,7 +269,7 @@ public class Command_myadmin extends FreedomCommand { if (args[0].equals("clearip")) { - List ips = plugin.al.getAdmin(sender).getIps(); + List ips = plugin.sl.getAdmin(sender).getIps(); ips.remove(FUtil.getIp((Player) sender)); return ips; } @@ -296,10 +290,10 @@ public class Command_myadmin extends FreedomCommand { if (args[0].equals("-o") && args[2].equals("clearip")) { - Admin admin = plugin.al.getEntryByName(args[1]); - if (admin != null) + StaffMember staffMember = plugin.sl.getEntryByName(args[1]); + if (staffMember != null) { - return admin.getIps(); + return staffMember.getIps(); } } } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickclean.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickclean.java index de963d8b..14ba4604 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickclean.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickclean.java @@ -16,7 +16,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Essentials Interface Command - Remove illegal chatcodes from nicknames of one or all players on server.", usage = "/ [player]", aliases = "nc") public class Command_nickclean extends FreedomCommand { @@ -53,12 +53,12 @@ public class Command_nickclean extends FreedomCommand return true; } - FUtil.adminAction(sender.getName(), "Cleaning " + player.getName() + "'s nickname", false); + FUtil.staffAction(sender.getName(), "Cleaning " + player.getName() + "'s nickname", false); cleanNickname(player); return true; } - FUtil.adminAction(sender.getName(), "Cleaning all nicknames", false); + FUtil.staffAction(sender.getName(), "Cleaning all nicknames", false); for (final Player player : server.getOnlinePlayers()) { cleanNickname(player); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickfilter.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickfilter.java index 091fb34c..74087862 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickfilter.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickfilter.java @@ -41,11 +41,11 @@ public class Command_nickfilter extends FreedomCommand player = getPlayerByDisplayName(displayName); - if (player == null || plugin.al.isVanished(player) && !plugin.al.isAdmin(sender)) + if (player == null || plugin.sl.isVanished(player) && !plugin.sl.isStaff(sender)) { player = getPlayerByDisplayNameAlt(displayName); - if (player == null || !plugin.al.isVanished(player) && !plugin.al.isAdmin(sender)) + if (player == null || !plugin.sl.isVanished(player) && !plugin.sl.isStaff(sender)) { sender.sendMessage(ChatColor.GRAY + "Can't find player by nickname: " + displayName); return true; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_notes.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_notes.java index 43c63234..81173fa4 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_notes.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_notes.java @@ -13,7 +13,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH) @CommandParameters(description = "Manage notes for a player", usage = "/ | remove | clear>") public class Command_notes extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_op.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_op.java index 968d4804..7b824a7a 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_op.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_op.java @@ -36,7 +36,7 @@ public class Command_op extends FreedomCommand if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName().toLowerCase().contains(targetName) || player.getName().contains(targetName) || player.getDisplayName().contains(targetName)) { - if (!player.isOp() && !plugin.al.isVanished(player)) + if (!player.isOp() && !plugin.sl.isVanished(player)) { matchedPlayerNames.add(player.getName()); player.setOp(true); @@ -49,7 +49,7 @@ public class Command_op extends FreedomCommand { if (!silent) { - FUtil.adminAction(sender.getName(), "Opping " + StringUtils.join(matchedPlayerNames, ", "), false); + FUtil.staffAction(sender.getName(), "Opping " + StringUtils.join(matchedPlayerNames, ", "), false); } } else diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opall.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opall.java index b728a7fd..4ce3dd88 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opall.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opall.java @@ -14,7 +14,7 @@ public class Command_opall extends FreedomCommand @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - FUtil.adminAction(sender.getName(), "Opping all players on the server", false); + FUtil.staffAction(sender.getName(), "Opping all players on the server", false); for (Player player : server.getOnlinePlayers()) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opme.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opme.java index eaadd8fc..b39e8429 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opme.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opme.java @@ -14,7 +14,7 @@ public class Command_opme extends FreedomCommand @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - FUtil.adminAction(sender.getName(), "Opping " + sender.getName(), false); + FUtil.staffAction(sender.getName(), "Opping " + sender.getName(), false); sender.setOp(true); sender.sendMessage(FreedomCommand.YOU_ARE_OP); return true; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ops.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ops.java index cb7e697f..3ac97109 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ops.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ops.java @@ -42,13 +42,13 @@ public class Command_ops extends FreedomCommand if (args[0].equals("purge")) { - if (!plugin.al.isAdmin(sender)) + if (!plugin.sl.isStaff(sender)) { noPerms(); return true; } - FUtil.adminAction(sender.getName(), "Purging all operators", true); + FUtil.staffAction(sender.getName(), "Purging all operators", true); for (OfflinePlayer player : server.getOperators()) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_orbit.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_orbit.java index b9aeb7ff..91c25594 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_orbit.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_orbit.java @@ -10,7 +10,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.util.Vector; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.MOD, source = SourceType.BOTH) @CommandParameters(description = "POW!!! Right in the kisser! One of these days Alice, straight to the Moon - Sends the specified player into orbit.", usage = "/ [< | stop>]") public class Command_orbit extends FreedomCommand @@ -60,7 +60,7 @@ public class Command_orbit extends FreedomCommand playerdata.startOrbiting(strength); player.setVelocity(new Vector(0, strength, 0)); - FUtil.adminAction(sender.getName(), "Orbiting " + player.getName(), false); + FUtil.staffAction(sender.getName(), "Orbiting " + player.getName(), false); return true; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permissions.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permissions.java index ecfa2477..2c9c8eeb 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permissions.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permissions.java @@ -15,7 +15,7 @@ public class Command_permissions extends FreedomCommand @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (args.length > 0 && args[0].equals("reload") && plugin.al.isAdmin(sender)) + if (args.length > 0 && args[0].equals("reload") && plugin.sl.isStaff(sender)) { plugin.permissions.load(); plugin.pem.loadPermissionNodes(); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_playtime.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_playtime.java index 276bbd7d..493ff68d 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_playtime.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_playtime.java @@ -3,14 +3,14 @@ package me.totalfreedom.totalfreedommod.command; import java.time.Instant; import java.util.Date; import java.util.List; -import me.totalfreedom.totalfreedommod.admin.ActivityLogEntry; +import me.totalfreedom.totalfreedommod.staff.ActivityLogEntry; import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.util.FUtil; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME) @CommandParameters(description = "Gets your playtime statistics.", usage = "/") public class Command_playtime extends FreedomCommand { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_plugincontrol.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_plugincontrol.java index db928089..7b2313e2 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_plugincontrol.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_plugincontrol.java @@ -13,7 +13,7 @@ import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginManager; -@CommandPermissions(level = Rank.TELNET_ADMIN, source = SourceType.BOTH) +@CommandPermissions(level = Rank.MOD, source = SourceType.BOTH) @CommandParameters(description = "Enable, disable, or reload a specified plugin, as well as list all plugins on the server.", usage = "/ < > | list>", aliases = "plc") public class Command_plugincontrol extends FreedomCommand { @@ -135,7 +135,7 @@ public class Command_plugincontrol extends FreedomCommand @Override public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) { - if (!plugin.al.isAdmin(sender)) + if (!plugin.sl.isStaff(sender)) { return Collections.emptyList(); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potion.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potion.java index 67d93388..258286d3 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potion.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potion.java @@ -41,12 +41,12 @@ public class Command_potion extends FreedomCommand } else if (args[0].equalsIgnoreCase("clearall")) { - if (!(plugin.al.isAdmin(sender) || senderIsConsole)) + if (!(plugin.sl.isStaff(sender) || senderIsConsole)) { noPerms(); return true; } - FUtil.adminAction(sender.getName(), "Cleared all potion effects from all players", true); + FUtil.staffAction(sender.getName(), "Cleared all potion effects from all players", true); for (Player target : server.getOnlinePlayers()) { for (PotionEffect potion_effect : target.getActivePotionEffects()) @@ -76,9 +76,9 @@ public class Command_potion extends FreedomCommand return true; } - if (!plugin.al.isAdmin(sender)) + if (!plugin.sl.isStaff(sender)) { - msg(ChatColor.RED + "Only admins can clear potion effects from other players."); + msg(ChatColor.RED + "Only staff can clear potion effects from other players."); return true; } @@ -104,7 +104,7 @@ public class Command_potion extends FreedomCommand { target = getPlayer(args[4]); - if (target == null || plugin.al.isVanished(target) && !plugin.al.isAdmin(sender)) + if (target == null || plugin.sl.isVanished(target) && !plugin.sl.isStaff(sender)) { msg(FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED); return true; @@ -117,9 +117,9 @@ public class Command_potion extends FreedomCommand return true; } - if (!plugin.al.isAdmin(sender)) + if (!plugin.sl.isStaff(sender)) { - sender.sendMessage(ChatColor.RED + "Only admins can apply potion effects to other players."); + sender.sendMessage(ChatColor.RED + "Only staff can apply potion effects to other players."); return true; } @@ -183,7 +183,7 @@ public class Command_potion extends FreedomCommand { List arguments = new ArrayList<>(); arguments.addAll(Arrays.asList("list", "clear", "add")); - if (plugin.al.isAdmin(sender)) + if (plugin.sl.isStaff(sender)) { arguments.add("clearall"); } @@ -193,7 +193,7 @@ public class Command_potion extends FreedomCommand { if (args[0].equals("clear")) { - if (plugin.al.isAdmin(sender)) + if (plugin.sl.isStaff(sender)) { return FUtil.getPlayerList(); } @@ -217,7 +217,7 @@ public class Command_potion extends FreedomCommand return Arrays.asList(""); } } - else if (args.length == 5 && plugin.al.isAdmin(sender)) + else if (args.length == 5 && plugin.sl.isStaff(sender)) { if (args[0].equals("add")) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potionspy.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potionspy.java index 9a1e7a21..a2fc6133 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potionspy.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potionspy.java @@ -4,7 +4,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; -import me.totalfreedom.totalfreedommod.admin.Admin; +import me.totalfreedom.totalfreedommod.staff.StaffMember; import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.util.FUtil; import org.apache.commons.lang.math.NumberUtils; @@ -15,8 +15,8 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.entity.ThrownPotion; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) -@CommandParameters(description = "Allows admins to see potions that are thrown.", usage = "/ | history [player] ", aliases = "potspy") +@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME) +@CommandParameters(description = "Allows staff to see potions that are thrown.", usage = "/ | history [player] ", aliases = "potspy") public class Command_potionspy extends FreedomCommand { private String titleText = "&8&m------------------&r &ePotionSpy &8&m------------------&r"; @@ -28,11 +28,11 @@ public class Command_potionspy extends FreedomCommand @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - Admin admin = plugin.al.getAdmin(playerSender); + StaffMember staffMember = plugin.sl.getAdmin(playerSender); if (args.length <= 0) { - setPotionSpyState(admin, !admin.getPotionSpy()); + setPotionSpyState(staffMember, !staffMember.getPotionSpy()); return true; } else @@ -41,12 +41,12 @@ public class Command_potionspy extends FreedomCommand { case "enable": case "on": - setPotionSpyState(admin, true); + setPotionSpyState(staffMember, true); break; case "disable": case "off": - setPotionSpyState(admin, false); + setPotionSpyState(staffMember, false); break; case "history": @@ -176,12 +176,12 @@ public class Command_potionspy extends FreedomCommand return true; } - private void setPotionSpyState(Admin admin, boolean state) + private void setPotionSpyState(StaffMember staffMember, boolean state) { - admin.setPotionSpy(state); - plugin.al.save(admin); - plugin.al.updateTables(); - msg("PotionSpy is now " + (admin.getPotionSpy() ? "enabled." : "disabled.")); + staffMember.setPotionSpy(state); + plugin.sl.save(staffMember); + plugin.sl.updateTables(); + msg("PotionSpy is now " + (staffMember.getPotionSpy() ? "enabled." : "disabled.")); } /** diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_protectarea.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_protectarea.java deleted file mode 100644 index 1803aba7..00000000 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_protectarea.java +++ /dev/null @@ -1,104 +0,0 @@ -package me.totalfreedom.totalfreedommod.command; - -import me.totalfreedom.totalfreedommod.ProtectArea; -import me.totalfreedom.totalfreedommod.config.ConfigEntry; -import me.totalfreedom.totalfreedommod.rank.Rank; -import org.apache.commons.lang.StringUtils; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) -@CommandParameters( - description = "Protect areas so that only admins can directly modify blocks in those areas. WorldEdit and other such plugins might bypass this.", - usage = "/ | add

" + escapeHtml4(data) + "

\r\n"; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/HTTPDPageBuilder.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/HTTPDPageBuilder.java index 5a9b5d54..b4027a0d 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/HTTPDPageBuilder.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/HTTPDPageBuilder.java @@ -20,14 +20,10 @@ public class HTTPDPageBuilder + "\r\n" + "\r\n"; // - private String body = null; - private String title = null; - private String style = null; - private String script = null; - - public HTTPDPageBuilder() - { - } + private String body; + private String title; + private String style; + private String script; public HTTPDPageBuilder(String body, String title, String style, String script) { @@ -71,4 +67,4 @@ public class HTTPDPageBuilder .replace("{$STYLE}", this.style == null ? "" : STYLE.replace("{$STYLE}", this.style)) .replace("{$SCRIPT}", this.script == null ? "" : SCRIPT.replace("{$SCRIPT}", this.script)); } -} +} \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/HTTPDaemon.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/HTTPDaemon.java index cd334bfd..a18d0375 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/HTTPDaemon.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/HTTPDaemon.java @@ -16,6 +16,7 @@ import me.totalfreedom.totalfreedommod.httpd.module.Module_bans; import me.totalfreedom.totalfreedommod.httpd.module.Module_file; import me.totalfreedom.totalfreedommod.httpd.module.Module_help; import me.totalfreedom.totalfreedommod.httpd.module.Module_indefbans; +import me.totalfreedom.totalfreedommod.httpd.module.Module_index; import me.totalfreedom.totalfreedommod.httpd.module.Module_list; import me.totalfreedom.totalfreedommod.httpd.module.Module_logfile; import me.totalfreedom.totalfreedommod.httpd.module.Module_logs; @@ -47,7 +48,6 @@ public class HTTPDaemon extends FreedomService } port = ConfigEntry.HTTPD_PORT.getInteger(); - ; httpd = new HTTPD(port); // Modules @@ -63,6 +63,7 @@ public class HTTPDaemon extends FreedomService module("players", Module_players.class, false); module("punishments", Module_punishments.class, true); module("schematic", Module_schematic.class, true); + module("index", Module_index.class, false); try { @@ -103,7 +104,6 @@ public class HTTPDaemon extends FreedomService private class HTTPD extends NanoHTTPD { - private HTTPD(int port) { super(port); @@ -177,8 +177,6 @@ public class HTTPDaemon extends FreedomService FLog.severe(ex); } } - return response; } - -} +} \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_index.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_index.java new file mode 100644 index 00000000..8b3fb66b --- /dev/null +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_index.java @@ -0,0 +1,64 @@ +package me.totalfreedom.totalfreedommod.httpd.module; + +import java.util.Set; +import me.totalfreedom.totalfreedommod.TotalFreedomMod; +import me.totalfreedom.totalfreedommod.config.ConfigEntry; +import me.totalfreedom.totalfreedommod.httpd.HTMLGenerationTools; +import me.totalfreedom.totalfreedommod.httpd.HTTPDPageBuilder; +import me.totalfreedom.totalfreedommod.httpd.NanoHTTPD; +import org.reflections.Reflections; + +public class Module_index extends HTTPDModule +{ + + public Module_index(TotalFreedomMod plugin, NanoHTTPD.HTTPSession session) + { + super(plugin, session); + } + + @Override + public NanoHTTPD.Response getResponse() + { + return new HTTPDPageBuilder(body(), title(), null, null).getResponse(); + } + + public String body() + { + final StringBuilder sb = new StringBuilder(); + + sb.append(HTMLGenerationTools.heading("TotalFreedom HTTPd Module List", 1)); + + Reflections r = new Reflections("me.totalfreedom.totalfreedommod.httpd.module"); + + Set> moduleClasses = r.getSubTypesOf(HTTPDModule.class); + + for (Class c : moduleClasses) + { + String name = c.getSimpleName().replace("Module_", ""); + + if (name.equals("file")) + { + continue; + } + + // index + sb.append(""); + } + return sb.toString(); + } + + public String title() + { + return "TotalFreedom :: HTTPd Modules"; + } +} \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_logfile.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_logfile.java index 2765f401..8767cf64 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_logfile.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_logfile.java @@ -7,6 +7,7 @@ import java.util.Collections; import java.util.Comparator; import java.util.List; import me.totalfreedom.totalfreedommod.TotalFreedomMod; +import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.httpd.HTMLGenerationTools; import me.totalfreedom.totalfreedommod.httpd.HTTPDPageBuilder; import me.totalfreedom.totalfreedommod.httpd.HTTPDaemon; @@ -57,7 +58,6 @@ public class Module_logfile extends HTTPDModule { FLog.warning("The logfile module failed to find the logs folder."); return HTMLGenerationTools.paragraph("Can't find the logs folder."); - } final StringBuilder out = new StringBuilder(); @@ -128,21 +128,28 @@ public class Module_logfile extends HTTPDModule } default: { - out.append(HTMLGenerationTools.paragraph("Invalid request mode.")); + out.append(HTMLGenerationTools.heading("Logfile Submodules", 1)); + out.append(""); break; } } - return out.toString(); } private Response downloadLogFile(String LogFilesName) throws LogFileTransferException { - if (LogFilesName == null) - { - throw new LogFileTransferException("Invalid logfile requested: " + LogFilesName); - } - final File targetFile = new File(LOG_FOLDER.getPath(), LogFilesName); if (!targetFile.exists()) { @@ -230,5 +237,4 @@ public class Module_logfile extends HTTPDModule return INVALID; } } - -} +} \ No newline at end of file diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_schematic.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_schematic.java index a983bef9..3c64d5bf 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_schematic.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_schematic.java @@ -14,6 +14,7 @@ import java.util.List; import java.util.Map; import java.util.regex.Pattern; import me.totalfreedom.totalfreedommod.TotalFreedomMod; +import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.httpd.HTMLGenerationTools; import me.totalfreedom.totalfreedommod.httpd.HTTPDPageBuilder; import me.totalfreedom.totalfreedommod.httpd.HTTPDaemon; @@ -114,12 +115,10 @@ public class Module_schematic extends HTTPDModule } }); - out - .append(HTMLGenerationTools.heading("Schematics:", 1)) + out.append(HTMLGenerationTools.heading("Schematics:", 1)) .append("
    ") .append(StringUtils.join(schematicsFormatted, "\r\n")) .append("
"); - break; } case DOWNLOAD: @@ -165,11 +164,23 @@ public class Module_schematic extends HTTPDModule } default: { - out.append(HTMLGenerationTools.paragraph("Invalid request mode.")); + out.append(HTMLGenerationTools.heading("Schematic Submodules", 1)); + out.append(""); break; } } - return out.toString(); } @@ -216,7 +227,6 @@ public class Module_schematic extends HTTPDModule throw new SchematicTransferException("Schematic already exists on the server."); } - try { FileUtils.copyFile(tempFile, targetFile); @@ -344,5 +354,4 @@ public class Module_schematic extends HTTPDModule return INVALID; } } - -} +} \ No newline at end of file diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 0b5ec05f..0e33a3a1 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -195,7 +195,7 @@ forceip: # TotalFreedom Social Media Links, casing will be preserved social_links: - Forum: 'https://totalfreedom.boards.net/' + Forum: 'https://forum.totalfreedom.me' Website: 'https://totalfreedom.me/' Discord: 'https://discordapp.com/invite/XXjmAmV/' @@ -401,7 +401,7 @@ announcer: prefix: '&5[&eTotalFreedom&5] &b' announcements: - - 'Be sure to visit our forums at &6http://totalfreedom.boards.net/' + - 'Be sure to visit our forums at &6https://forum.totalfreedom.me/' - 'If you are not OP, be sure to ask!' - 'Somebody breaking the rules? Report it! /report ' - 'Griefing is not allowed!' @@ -429,7 +429,7 @@ staffinfo: - ' &2- Be helpful within the server' - ' &6- Report those breaking the rules' - ' &2- And apply on our forums at the link:' - - ' &9www.totalfreedom.boards.net' + - ' &9https://forum.totalfreedom.me/' # What to display in the vote command. votinginfo: @@ -503,6 +503,7 @@ service_checker_url: http://status.mojang.com/check # HTTPD server httpd: enabled: true + host: play.totalfreedom.me port: 28966 public_folder: ./public_html From 388e1fd52dff4e97cee0222edb6c36dbfdd06893 Mon Sep 17 00:00:00 2001 From: DragonSlayer2189 <59424467+DragonSlayer2189@users.noreply.github.com> Date: Mon, 17 Aug 2020 18:59:26 -0400 Subject: [PATCH 50/54] Update src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java Co-authored-by: Nathan Curran <30569566+Focusvity@users.noreply.github.com> --- .../me/totalfreedom/totalfreedommod/command/Command_ban.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java index 2c196606..5ac713ce 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java @@ -106,7 +106,7 @@ public class Command_ban extends FreedomCommand } else { - sender.sendMessage(ChatColor.GRAY + "Banned " + player.getName() + " quietly."); + msg("Banned " + player.getName() + " quietly."); } // Kill player player.setHealth(0.0); From 7e8a519c87e05f680bf6b13984cd6692042a6653 Mon Sep 17 00:00:00 2001 From: DragonSlayer2189 <59424467+DragonSlayer2189@users.noreply.github.com> Date: Mon, 17 Aug 2020 19:00:07 -0400 Subject: [PATCH 51/54] Update src/main/java/me/totalfreedom/totalfreedommod/command/Command_kick.java Co-authored-by: Nathan Curran <30569566+Focusvity@users.noreply.github.com> --- .../me/totalfreedom/totalfreedommod/command/Command_kick.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kick.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kick.java index 46b28b89..b994da40 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kick.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kick.java @@ -73,7 +73,7 @@ public class Command_kick extends FreedomCommand } else { - sender.sendMessage(ChatColor.GRAY + "Kicked " + player.getName() + " quietly."); + msg("Kicked " + player.getName() + " quietly."); } } From 6b3a765c90c240fe2a509079c48180ef2147eddd Mon Sep 17 00:00:00 2001 From: Telesphoreo Date: Mon, 17 Aug 2020 21:21:13 -0500 Subject: [PATCH 52/54] shorten Administrator --- .../me/totalfreedom/totalfreedommod/rank/Rank.java | 2 +- .../totalfreedommod/staff/StaffList.java | 12 ++++++++++++ .../me/totalfreedom/totalfreedommod/util/FUtil.java | 3 ++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/rank/Rank.java b/src/main/java/me/totalfreedom/totalfreedommod/rank/Rank.java index 93b14d6e..84418885 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/rank/Rank.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/rank/Rank.java @@ -10,7 +10,7 @@ public enum Rank implements Displayable OP("an", "Operator", Type.PLAYER, "OP", ChatColor.GREEN, null, false), TRIAL_MOD("a", "Trial Moderator", Type.STAFF, "Trial Mod", ChatColor.AQUA, org.bukkit.ChatColor.AQUA, true), MOD("a", "Moderator", Type.STAFF, "Mod", ChatColor.DARK_GREEN, org.bukkit.ChatColor.DARK_GREEN, true), - ADMIN("an", "Administrator", Type.STAFF, "Administrator", ChatColor.GOLD, org.bukkit.ChatColor.GOLD, true), + ADMIN("an", "Administrator", Type.STAFF, "Admin", ChatColor.GOLD, org.bukkit.ChatColor.GOLD, true), MOD_CONSOLE("the", "Console", Type.STAFF_CONSOLE, "Console", ChatColor.DARK_PURPLE, null, false), ADMIN_CONSOLE("the", "Console", Type.STAFF_CONSOLE, "Console", ChatColor.DARK_PURPLE, null, false); @Getter diff --git a/src/main/java/me/totalfreedom/totalfreedommod/staff/StaffList.java b/src/main/java/me/totalfreedom/totalfreedommod/staff/StaffList.java index 261ad3c2..2aa4bfcb 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/staff/StaffList.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/staff/StaffList.java @@ -106,6 +106,18 @@ public class StaffList extends FreedomService return staffMember != null && staffMember.isActive(); } + public boolean isStaff(Player player) + { + if (player == null) + { + return true; + } + + StaffMember staffMember = getAdmin(player); + + return staffMember != null && staffMember.isActive(); + } + public boolean isMod(CommandSender sender) { StaffMember staffMember = getAdmin(sender); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java b/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java index c15912a3..0197fe5b 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java @@ -47,6 +47,7 @@ import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitTask; import org.json.simple.JSONArray; +import static org.bukkit.Bukkit.getServer; public class FUtil { @@ -627,7 +628,7 @@ public class FUtil public static String getNMSVersion() { - String packageName = Bukkit.getServer().getClass().getPackage().getName(); + String packageName = getServer().getClass().getPackage().getName(); return packageName.substring(packageName.lastIndexOf('.') + 1); } From f4007a7c9da89dd7fa43cbcbcdba5f76c974cbb0 Mon Sep 17 00:00:00 2001 From: Telesphoreo Date: Mon, 17 Aug 2020 23:53:21 -0500 Subject: [PATCH 53/54] Fix long standing bug with player notes --- pom.xml | 3 +++ .../java/me/totalfreedom/totalfreedommod/LoginProcess.java | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9df696ab..7015c4d7 100644 --- a/pom.xml +++ b/pom.xml @@ -158,6 +158,7 @@ com.github.TFPatches TF-LibsDisguises 0cfa32159a + provided
@@ -206,6 +207,7 @@ me.rayzr522 jsonmessage 1.0.0 + compile @@ -421,6 +423,7 @@ commons-codec:commons-codec org.reflections:reflections javassist:javassist + me.rayzr522:jsonmessage diff --git a/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java b/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java index 35d32200..77907ee2 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java @@ -24,7 +24,6 @@ import org.bukkit.scheduler.BukkitRunnable; public class LoginProcess extends FreedomService { - public static final int DEFAULT_PORT = 25565; public static final int MIN_USERNAME_LENGTH = 2; public static final int MAX_USERNAME_LENGTH = 20; From 3f68677d996db78d88b23e2d67511bbf85f25144 Mon Sep 17 00:00:00 2001 From: Nathan Curran <30569566+Focusvity@users.noreply.github.com> Date: Tue, 18 Aug 2020 15:52:19 +1000 Subject: [PATCH 54/54] Don't send empty messages --- .../totalfreedommod/discord/Discord.java | 25 +++++++++---------- .../discord/DiscordToMinecraftListener.java | 2 +- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java b/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java index 06e82590..daa67143 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/discord/Discord.java @@ -20,7 +20,6 @@ import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.staff.StaffMember; import me.totalfreedom.totalfreedommod.util.FLog; import me.totalfreedom.totalfreedommod.util.FUtil; -import net.dv8tion.jda.api.AccountType; import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.JDA; import net.dv8tion.jda.api.JDABuilder; @@ -78,20 +77,20 @@ public class Discord extends FreedomService } try { - bot = new JDABuilder(AccountType.BOT) - .setToken(ConfigEntry.DISCORD_TOKEN.getString()) - .addEventListeners(new PrivateMessageListener()) - .addEventListeners(new DiscordToMinecraftListener()) + bot = JDABuilder.createDefault(ConfigEntry.DISCORD_TOKEN.getString()) + .addEventListeners(new PrivateMessageListener(), + new DiscordToMinecraftListener(), + new ListenerAdapter() + { + @Override + public void onReady(ReadyEvent event) + { + new StartEvent(event.getJDA()).start(); + } + }) .setAutoReconnect(true) .setRateLimitPool(RATELIMIT_EXECUTOR) - .addEventListeners(new ListenerAdapter() - { - @Override - public void onReady(ReadyEvent event) - { - new StartEvent(event.getJDA()).start(); - } - }).build(); + .build(); FLog.info("Discord verification bot has successfully enabled!"); } catch (LoginException e) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/discord/DiscordToMinecraftListener.java b/src/main/java/me/totalfreedom/totalfreedommod/discord/DiscordToMinecraftListener.java index c7cd7b39..f7a6e923 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/discord/DiscordToMinecraftListener.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/discord/DiscordToMinecraftListener.java @@ -20,7 +20,7 @@ public class DiscordToMinecraftListener extends ListenerAdapter String chat_channel_id = ConfigEntry.DISCORD_CHAT_CHANNEL_ID.getString(); if (event.getMember() != null && !chat_channel_id.isEmpty() && event.getChannel().getId().equals(chat_channel_id)) { - if (!event.getAuthor().getId().equals(Discord.bot.getSelfUser().getId())) + if (!event.getAuthor().getId().equals(Discord.bot.getSelfUser().getId()) && !event.getMessage().getContentDisplay().isEmpty()) { Member member = event.getMember(); String tag = getDisplay(member);