From 4586b7519fbc8401b27bab26a83bede4b2933e8a Mon Sep 17 00:00:00 2001 From: JeromSar Date: Mon, 29 Feb 2016 21:48:17 +0100 Subject: [PATCH] [Bleeding] Revamped rank system yet again Refractoring Bug fixes Mass format --- .../totalfreedommod/ConsoleLogger.java | 43 ------- .../totalfreedommod/FrontDoor.java | 3 +- .../totalfreedommod/GameRuleHandler.java | 89 ++++++-------- .../totalfreedommod/LoginProcess.java | 5 - .../totalfreedommod/MovementValidator.java | 2 - .../totalfreedommod/TotalFreedomMod.java | 4 +- .../totalfreedommod/admin/Admin.java | 7 +- .../commands/CommandPermissions.java | 2 +- .../commands/Command_glist.java | 3 +- .../commands/Command_moblimiter.java | 2 +- .../commands/Command_saconfig.java | 12 +- .../commands/Command_toggle.java | 4 +- .../commands/FreedomCommand.java | 11 -- .../commands/FreedomCommandExecutor.java | 6 +- .../totalfreedommod/httpd/HTTPDaemon.java | 7 ++ .../totalfreedommod/httpd/NanoHTTPD.java | 4 +- .../httpd/{ => module}/HTTPDModule.java | 3 +- .../httpd/{ => module}/Module_dump.java | 4 +- .../httpd/{ => module}/Module_file.java | 4 +- .../httpd/{ => module}/Module_help.java | 8 +- .../httpd/{ => module}/Module_list.java | 3 +- .../httpd/{ => module}/Module_logs.java | 3 +- .../httpd/{ => module}/Module_permbans.java | 4 +- .../httpd/{ => module}/Module_players.java | 3 +- .../httpd/{ => module}/Module_schematic.java | 6 +- .../totalfreedommod/player/PlayerData.java | 14 ++- .../totalfreedommod/rank/ConsoleRank.java | 97 --------------- .../totalfreedommod/rank/CustomLoginRank.java | 2 +- .../totalfreedommod/rank/PlayerRank.java | 110 ++++++++++++++---- .../totalfreedommod/rank/Rank.java | 2 - .../totalfreedommod/rank/RankManager.java | 41 ++++--- .../totalfreedommod/rank/RankProxy.java | 8 +- .../totalfreedommod/util/FUtil.java | 4 +- 33 files changed, 219 insertions(+), 301 deletions(-) delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/ConsoleLogger.java rename src/main/java/me/totalfreedom/totalfreedommod/httpd/{ => module}/HTTPDModule.java (93%) rename src/main/java/me/totalfreedom/totalfreedommod/httpd/{ => module}/Module_dump.java (95%) rename src/main/java/me/totalfreedom/totalfreedommod/httpd/{ => module}/Module_file.java (98%) rename src/main/java/me/totalfreedom/totalfreedommod/httpd/{ => module}/Module_help.java (94%) rename src/main/java/me/totalfreedom/totalfreedommod/httpd/{ => module}/Module_list.java (90%) rename src/main/java/me/totalfreedom/totalfreedommod/httpd/{ => module}/Module_logs.java (85%) rename src/main/java/me/totalfreedom/totalfreedommod/httpd/{ => module}/Module_permbans.java (83%) rename src/main/java/me/totalfreedom/totalfreedommod/httpd/{ => module}/Module_players.java (95%) rename src/main/java/me/totalfreedom/totalfreedommod/httpd/{ => module}/Module_schematic.java (97%) delete mode 100644 src/main/java/me/totalfreedom/totalfreedommod/rank/ConsoleRank.java diff --git a/src/main/java/me/totalfreedom/totalfreedommod/ConsoleLogger.java b/src/main/java/me/totalfreedom/totalfreedommod/ConsoleLogger.java deleted file mode 100644 index 8a147419..00000000 --- a/src/main/java/me/totalfreedom/totalfreedommod/ConsoleLogger.java +++ /dev/null @@ -1,43 +0,0 @@ -package me.totalfreedom.totalfreedommod; - -import me.totalfreedom.totalfreedommod.util.FLog; -import me.totalfreedom.totalfreedommod.util.FUtil; -import net.pravian.aero.component.service.AbstractService; -import net.pravian.aero.util.Ips; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerQuitEvent; - -public class ConsoleLogger extends AbstractService -{ - - public ConsoleLogger(TotalFreedomMod plugin) - { - super(plugin); - } - - @Override - protected void onStart() - { - } - - @Override - protected void onStop() - { - } - - @EventHandler(priority = EventPriority.MONITOR) - public void onPlayerQuit(PlayerQuitEvent event) - { - FLog.info("[EXIT] " + event.getPlayer().getName() + " left the game.", true); - } - - @EventHandler(priority = EventPriority.MONITOR) - public void onPlayerJoin(PlayerJoinEvent event) - { - final String ip = Ips.getIp(event.getPlayer()); - FLog.info("[JOIN] " + FUtil.formatPlayer(event.getPlayer()) + " joined the game with IP address: " + ip, true); - } - -} diff --git a/src/main/java/me/totalfreedom/totalfreedommod/FrontDoor.java b/src/main/java/me/totalfreedom/totalfreedommod/FrontDoor.java index 304e7a27..c5b1a37f 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/FrontDoor.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/FrontDoor.java @@ -129,7 +129,8 @@ public class FrontDoor extends AbstractService } catch (Exception ex) { - // TFM_Log.info("GAH GAH GAH"); + // TODO: Fix + //FLog.warning(ex); } } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/GameRuleHandler.java b/src/main/java/me/totalfreedom/totalfreedommod/GameRuleHandler.java index c18bf237..e5af717f 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/GameRuleHandler.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/GameRuleHandler.java @@ -2,6 +2,7 @@ package me.totalfreedom.totalfreedommod; import me.totalfreedom.totalfreedommod.util.FUtil; import java.util.EnumMap; +import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -13,13 +14,13 @@ import org.bukkit.World; public class GameRuleHandler extends AbstractService { - private final EnumMap rules = new EnumMap(TFM_GameRule.class); + private final Map rules = new EnumMap(GameRule.class); public GameRuleHandler(TotalFreedomMod plugin) { super(plugin); - for (TFM_GameRule gameRule : TFM_GameRule.values()) + for (GameRule gameRule : GameRule.values()) { rules.put(gameRule, gameRule.getDefaultValue()); } @@ -28,13 +29,13 @@ public class GameRuleHandler extends AbstractService @Override protected void onStart() { - setGameRule(TFM_GameRule.DO_DAYLIGHT_CYCLE, !ConfigEntry.DISABLE_NIGHT.getBoolean(), false); - setGameRule(TFM_GameRule.DO_FIRE_TICK, ConfigEntry.ALLOW_FIRE_SPREAD.getBoolean(), false); - setGameRule(TFM_GameRule.DO_MOB_LOOT, false, false); - setGameRule(TFM_GameRule.DO_MOB_SPAWNING, !ConfigEntry.MOB_LIMITER_ENABLED.getBoolean(), false); - setGameRule(TFM_GameRule.DO_TILE_DROPS, false, false); - setGameRule(TFM_GameRule.MOB_GRIEFING, false, false); - setGameRule(TFM_GameRule.NATURAL_REGENERATION, true, false); + setGameRule(GameRule.DO_DAYLIGHT_CYCLE, !ConfigEntry.DISABLE_NIGHT.getBoolean(), false); + setGameRule(GameRule.DO_FIRE_TICK, ConfigEntry.ALLOW_FIRE_SPREAD.getBoolean(), false); + setGameRule(GameRule.DO_MOB_LOOT, false, false); + setGameRule(GameRule.DO_MOB_SPAWNING, !ConfigEntry.MOB_LIMITER_ENABLED.getBoolean(), false); + setGameRule(GameRule.DO_TILE_DROPS, false, false); + setGameRule(GameRule.MOB_GRIEFING, false, false); + setGameRule(GameRule.NATURAL_REGENERATION, true, false); commitGameRules(); } @@ -43,14 +44,14 @@ public class GameRuleHandler extends AbstractService { } - public void setGameRule(TFM_GameRule gameRule, boolean value) + public void setGameRule(GameRule gameRule, boolean value) { setGameRule(gameRule, value, true); } - public void setGameRule(TFM_GameRule gameRule, boolean value, boolean doCommit) + public void setGameRule(GameRule gameRule, boolean value, boolean doCommit) { - rules.put(gameRule, TFM_GameRule_Value.fromBoolean(value)); + rules.put(gameRule, value); if (doCommit) { commitGameRules(); @@ -60,39 +61,43 @@ public class GameRuleHandler extends AbstractService public void commitGameRules() { List worlds = Bukkit.getWorlds(); - Iterator> it = rules.entrySet().iterator(); + Iterator> it = rules.entrySet().iterator(); while (it.hasNext()) { - Map.Entry gameRuleEntry = it.next(); + + Map.Entry gameRuleEntry = it.next(); String gameRuleName = gameRuleEntry.getKey().getGameRuleName(); String gameRuleValue = gameRuleEntry.getValue().toString(); + for (World world : worlds) { world.setGameRuleValue(gameRuleName, gameRuleValue); - if (gameRuleEntry.getKey() == TFM_GameRule.DO_DAYLIGHT_CYCLE && !gameRuleEntry.getValue().toBoolean()) + if (gameRuleEntry.getKey() == GameRule.DO_DAYLIGHT_CYCLE && !gameRuleEntry.getValue()) { FUtil.setWorldTime(world, 6000L); } } + } } - public static enum TFM_GameRule + public static enum GameRule { - DO_FIRE_TICK("doFireTick", TFM_GameRule_Value.TRUE), - MOB_GRIEFING("mobGriefing", TFM_GameRule_Value.TRUE), - KEEP_INVENTORY("keepInventory", TFM_GameRule_Value.FALSE), - DO_MOB_SPAWNING("doMobSpawning", TFM_GameRule_Value.TRUE), - DO_MOB_LOOT("doMobLoot", TFM_GameRule_Value.TRUE), - DO_TILE_DROPS("doTileDrops", TFM_GameRule_Value.TRUE), - COMMAND_BLOCK_OUTPUT("commandBlockOutput", TFM_GameRule_Value.TRUE), - NATURAL_REGENERATION("naturalRegeneration", TFM_GameRule_Value.TRUE), - DO_DAYLIGHT_CYCLE("doDaylightCycle", TFM_GameRule_Value.TRUE); + DO_FIRE_TICK("doFireTick", true), + MOB_GRIEFING("mobGriefing", true), + KEEP_INVENTORY("keepInventory", false), + DO_MOB_SPAWNING("doMobSpawning", true), + DO_MOB_LOOT("doMobLoot", true), + DO_TILE_DROPS("doTileDrops", true), + COMMAND_BLOCK_OUTPUT("commandBlockOutput", true), + NATURAL_REGENERATION("naturalRegeneration", true), + DO_DAYLIGHT_CYCLE("doDaylightCycle", true); + // private final String gameRuleName; - private final TFM_GameRule_Value defaultValue; + private final boolean defaultValue; - private TFM_GameRule(String gameRuleName, TFM_GameRule_Value defaultValue) + private GameRule(String gameRuleName, boolean defaultValue) { this.gameRuleName = gameRuleName; this.defaultValue = defaultValue; @@ -103,38 +108,10 @@ public class GameRuleHandler extends AbstractService return gameRuleName; } - public TFM_GameRule_Value getDefaultValue() + public boolean getDefaultValue() { return defaultValue; } } - public static enum TFM_GameRule_Value - { - - TRUE("true"), FALSE("false"); - private final String value; - - private TFM_GameRule_Value(String value) - { - this.value = value; - } - - @Override - public String toString() - { - return this.value; - } - - public boolean toBoolean() - { - return (this.value.equals(TFM_GameRule_Value.TRUE.value)); - } - - public static TFM_GameRule_Value fromBoolean(boolean in) - { - return (in ? TFM_GameRule_Value.TRUE : TFM_GameRule_Value.FALSE); - } - } - } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java b/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java index c4359a1c..b25caf11 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java @@ -103,11 +103,6 @@ public class LoginProcess extends AbstractService } } - // Generate playerdata if it is nonexistent - plugin.pl.getData(player); - final FPlayer fPlayer = plugin.pl.getPlayer(player); - fPlayer.setSuperadminIdVerified(false); - // Check if player is admin // Not safe to use TFM_Util.isSuperAdmin(player) because player.getAddress() will return a null until after player login. final boolean isAdmin = plugin.al.getEntryByIp(ip) != null; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/MovementValidator.java b/src/main/java/me/totalfreedom/totalfreedommod/MovementValidator.java index 12741f35..169bd286 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/MovementValidator.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/MovementValidator.java @@ -30,8 +30,6 @@ public class MovementValidator extends AbstractService @EventHandler(priority = EventPriority.HIGH) public void onPlayerTeleport(PlayerTeleportEvent event) { - final Player player = event.getPlayer(); - // Check absolute value to account for negatives if (Math.abs(event.getTo().getX()) >= MAX_XZ_COORD || Math.abs(event.getTo().getZ()) >= MAX_XZ_COORD) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java index 7a92690c..03de09ec 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java @@ -59,7 +59,6 @@ public class TotalFreedomMod extends AeroPlugin // Services public ServiceManager services; public ServerInterface si; - public ConsoleLogger co; public WorldManager wm; public AdminList al; public EventBlocker eb; @@ -142,7 +141,6 @@ public class TotalFreedomMod extends AeroPlugin // Start services and bridgess services = new ServiceManager(plugin); si = services.registerService(ServerInterface.class); - co = services.registerService(ConsoleLogger.class); wm = services.registerService(WorldManager.class); al = services.registerService(AdminList.class); eb = services.registerService(EventBlocker.class); @@ -214,8 +212,8 @@ public class TotalFreedomMod extends AeroPlugin public void disable() { // Stop services and bridges - services.stop(); bridges.stop(); + services.stop(); server.getScheduler().cancelTasks(plugin); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/admin/Admin.java b/src/main/java/me/totalfreedom/totalfreedommod/admin/Admin.java index 61928fb8..e54ff073 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/admin/Admin.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/admin/Admin.java @@ -6,6 +6,7 @@ import java.util.List; import lombok.Getter; import lombok.Setter; import me.totalfreedom.totalfreedommod.rank.PlayerRank; +import me.totalfreedom.totalfreedommod.rank.PlayerRank; import me.totalfreedom.totalfreedommod.util.FUtil; import net.pravian.aero.base.ConfigLoadable; import net.pravian.aero.base.ConfigSavable; @@ -80,7 +81,7 @@ public class Admin implements ConfigLoadable, ConfigSavable, Validatable { name = cs.getString("username", configKey); activated = cs.getBoolean("active", true); - rank = PlayerRank.forString(cs.getString("rank")); + rank = PlayerRank.findRank(cs.getString("rank")); ips.clear(); ips.addAll(cs.getStringList("ips")); lastLogin = FUtil.stringToDate(cs.getString("last_login")); @@ -99,9 +100,9 @@ public class Admin implements ConfigLoadable, ConfigSavable, Validatable cs.set("login_message", null); } - public boolean isMinimum(PlayerRank pRank) + public boolean isAtLeast(PlayerRank pRank) { - return rank.ordinal() >= pRank.ordinal(); + return rank.isAtLeast(pRank); } // Util IP methods diff --git a/src/main/java/me/totalfreedom/totalfreedommod/commands/CommandPermissions.java b/src/main/java/me/totalfreedom/totalfreedommod/commands/CommandPermissions.java index 135476aa..1bb8c730 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/commands/CommandPermissions.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/commands/CommandPermissions.java @@ -1,8 +1,8 @@ package me.totalfreedom.totalfreedommod.commands; -import me.totalfreedom.totalfreedommod.rank.PlayerRank; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import me.totalfreedom.totalfreedommod.rank.PlayerRank; @Retention(RetentionPolicy.RUNTIME) public @interface CommandPermissions diff --git a/src/main/java/me/totalfreedom/totalfreedommod/commands/Command_glist.java b/src/main/java/me/totalfreedom/totalfreedommod/commands/Command_glist.java index c0505fad..183ede93 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/commands/Command_glist.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/commands/Command_glist.java @@ -8,6 +8,7 @@ import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.player.PlayerData; import me.totalfreedom.totalfreedommod.util.FUtil; import org.apache.commons.lang3.StringUtils; +import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -77,7 +78,7 @@ public class Command_glist extends FreedomCommand { FUtil.adminAction(sender.getName(), "Banning " + username + " and IPs: " + StringUtils.join(ips, ", "), true); - final Player target = getPlayer(username, true); + final Player target = Bukkit.getPlayer(username); if (target != null) { target.kickPlayer("You have been banned by " + sender.getName() + "\n If you think you have been banned wrongly, appeal here: " + ConfigEntry.SERVER_BAN_URL.getString()); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/commands/Command_moblimiter.java b/src/main/java/me/totalfreedom/totalfreedommod/commands/Command_moblimiter.java index ab7dc49b..d282282c 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/commands/Command_moblimiter.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/commands/Command_moblimiter.java @@ -77,7 +77,7 @@ public class Command_moblimiter extends FreedomCommand playerMsg("Moblimiter is disabled. No mob restrictions are in effect."); } - plugin.gr.setGameRule(GameRuleHandler.TFM_GameRule.DO_MOB_SPAWNING, !ConfigEntry.MOB_LIMITER_ENABLED.getBoolean()); + plugin.gr.setGameRule(GameRuleHandler.GameRule.DO_MOB_SPAWNING, !ConfigEntry.MOB_LIMITER_ENABLED.getBoolean()); return true; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/commands/Command_saconfig.java b/src/main/java/me/totalfreedom/totalfreedommod/commands/Command_saconfig.java index 2f17ebf7..5e30e9d7 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/commands/Command_saconfig.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/commands/Command_saconfig.java @@ -27,12 +27,14 @@ public class Command_saconfig extends FreedomCommand } catch (final PermissionsException ex) { - if (ex.getMessage().isEmpty()) + String msg = ex.getMessage(); + if (msg != null && !msg.isEmpty()) { - return noPerms(); + sender.sendMessage(msg); + return true; } - sender.sendMessage(ex.getMessage()); - return true; + + return noPerms(); } catch (final FormatException ex) { @@ -231,7 +233,7 @@ public class Command_saconfig extends FreedomCommand Admin admin = TotalFreedomMod.plugin.al.getAdmin(sender); - boolean isSeniorAdmin = admin != null ? admin.isMinimum(PlayerRank.SENIOR_ADMIN) : false; + boolean isSeniorAdmin = admin != null ? admin.getRank().isAtLeast(PlayerRank.SENIOR_ADMIN) : false; for (final SAConfigMode mode : values()) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/commands/Command_toggle.java b/src/main/java/me/totalfreedom/totalfreedommod/commands/Command_toggle.java index 69b1ccc0..de9e29b9 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/commands/Command_toggle.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/commands/Command_toggle.java @@ -2,7 +2,7 @@ package me.totalfreedom.totalfreedommod.commands; import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.rank.PlayerRank; -import me.totalfreedom.totalfreedommod.GameRuleHandler.TFM_GameRule; +import me.totalfreedom.totalfreedommod.GameRuleHandler.GameRule; import me.totalfreedom.totalfreedommod.util.FUtil; import me.totalfreedom.totalfreedommod.TotalFreedomMod; import org.bukkit.command.Command; @@ -68,7 +68,7 @@ public class Command_toggle extends FreedomCommand if (args[0].equals("firespread")) { toggle("Fire spread is", ConfigEntry.ALLOW_FIRE_SPREAD); - plugin.gr.setGameRule(TFM_GameRule.DO_FIRE_TICK, ConfigEntry.ALLOW_FIRE_SPREAD.getBoolean()); + plugin.gr.setGameRule(GameRule.DO_FIRE_TICK, ConfigEntry.ALLOW_FIRE_SPREAD.getBoolean()); return true; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/commands/FreedomCommand.java b/src/main/java/me/totalfreedom/totalfreedommod/commands/FreedomCommand.java index c9616c46..0163caef 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/commands/FreedomCommand.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/commands/FreedomCommand.java @@ -6,7 +6,6 @@ import me.totalfreedom.totalfreedommod.player.PlayerData; import me.totalfreedom.totalfreedommod.util.FLog; import me.totalfreedom.totalfreedommod.TotalFreedomMod; import net.pravian.aero.command.AbstractCommandBase; -import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; @@ -105,16 +104,6 @@ public abstract class FreedomCommand extends AbstractCommandBase> extends Abstra // Console permissions Rank rank = TotalFreedomMod.plugin.rm.getRank(sender); - boolean result = rank.isAtLeast(ConsoleRank.forRank(perms.level())); + boolean result = rank.isAtLeast(perms.level()); if (!result && sendMsg) { sender.sendMessage(handler.getPermissionMessage()); } - return result; } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/HTTPDaemon.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/HTTPDaemon.java index d952f5e3..1b5bca72 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/HTTPDaemon.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/HTTPDaemon.java @@ -1,5 +1,12 @@ package me.totalfreedom.totalfreedommod.httpd; +import me.totalfreedom.totalfreedommod.httpd.module.Module_help; +import me.totalfreedom.totalfreedommod.httpd.module.Module_file; +import me.totalfreedom.totalfreedommod.httpd.module.Module_schematic; +import me.totalfreedom.totalfreedommod.httpd.module.Module_permbans; +import me.totalfreedom.totalfreedommod.httpd.module.Module_players; +import me.totalfreedom.totalfreedommod.httpd.module.Module_logs; +import me.totalfreedom.totalfreedommod.httpd.module.Module_list; import java.io.File; import java.io.FileInputStream; import java.io.IOException; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/NanoHTTPD.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/NanoHTTPD.java index aefb0adf..bda5fa9f 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/NanoHTTPD.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/NanoHTTPD.java @@ -887,7 +887,7 @@ public abstract class NanoHTTPD /** * Handles one session, i.e. parses the HTTP request and returns the response. */ - protected class HTTPSession + public class HTTPSession // TFM - protected -> public { public static final int BUFSIZE = 8192; @@ -1004,7 +1004,7 @@ public abstract class NanoHTTPD } } - protected void parseBody(Map files) throws IOException, ResponseException + public void parseBody(Map files) throws IOException, ResponseException // TFM - protected -> public { RandomAccessFile randomAccessFile = null; BufferedReader in = null; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/HTTPDModule.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/HTTPDModule.java similarity index 93% rename from src/main/java/me/totalfreedom/totalfreedommod/httpd/HTTPDModule.java rename to src/main/java/me/totalfreedom/totalfreedommod/httpd/module/HTTPDModule.java index 8ec888d1..6e059f8a 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/HTTPDModule.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/HTTPDModule.java @@ -1,8 +1,9 @@ -package me.totalfreedom.totalfreedommod.httpd; +package me.totalfreedom.totalfreedommod.httpd.module; import java.net.Socket; import java.util.HashMap; import java.util.Map; +import me.totalfreedom.totalfreedommod.httpd.HTTPDPageBuilder; import me.totalfreedom.totalfreedommod.httpd.NanoHTTPD.HTTPSession; import me.totalfreedom.totalfreedommod.httpd.NanoHTTPD.Method; import me.totalfreedom.totalfreedommod.httpd.NanoHTTPD.Response; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/Module_dump.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_dump.java similarity index 95% rename from src/main/java/me/totalfreedom/totalfreedommod/httpd/Module_dump.java rename to src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_dump.java index 927f5d8a..58d26a53 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/Module_dump.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_dump.java @@ -1,9 +1,11 @@ -package me.totalfreedom.totalfreedommod.httpd; +package me.totalfreedom.totalfreedommod.httpd.module; import java.io.File; import java.io.IOException; import java.util.Iterator; import java.util.Map; +import me.totalfreedom.totalfreedommod.httpd.HTTPDaemon; +import me.totalfreedom.totalfreedommod.httpd.NanoHTTPD; import static me.totalfreedom.totalfreedommod.httpd.HTMLGenerationTools.list; import static me.totalfreedom.totalfreedommod.httpd.HTMLGenerationTools.paragraph; import me.totalfreedom.totalfreedommod.util.FLog; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/Module_file.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_file.java similarity index 98% rename from src/main/java/me/totalfreedom/totalfreedommod/httpd/Module_file.java rename to src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_file.java index 6b440a92..3a186dc4 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/Module_file.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_file.java @@ -1,4 +1,4 @@ -package me.totalfreedom.totalfreedommod.httpd; +package me.totalfreedom.totalfreedommod.httpd.module; import java.io.File; import java.io.FileInputStream; @@ -13,6 +13,8 @@ import java.util.List; import java.util.Map; import java.util.StringTokenizer; import me.totalfreedom.totalfreedommod.config.ConfigEntry; +import me.totalfreedom.totalfreedommod.httpd.HTTPDaemon; +import me.totalfreedom.totalfreedommod.httpd.NanoHTTPD; import me.totalfreedom.totalfreedommod.httpd.NanoHTTPD.Response; import org.apache.commons.lang3.StringUtils; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/Module_help.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_help.java similarity index 94% rename from src/main/java/me/totalfreedom/totalfreedommod/httpd/Module_help.java rename to src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_help.java index 0b0efdab..6f90a9b3 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/Module_help.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_help.java @@ -1,4 +1,4 @@ -package me.totalfreedom.totalfreedommod.httpd; +package me.totalfreedom.totalfreedommod.httpd.module; import com.google.common.collect.Lists; import java.util.Collection; @@ -10,9 +10,11 @@ import java.util.List; import java.util.Map; import me.totalfreedom.totalfreedommod.TotalFreedomMod; import me.totalfreedom.totalfreedommod.commands.FreedomCommand; +import me.totalfreedom.totalfreedommod.httpd.NanoHTTPD; import static me.totalfreedom.totalfreedommod.httpd.HTMLGenerationTools.heading; import static me.totalfreedom.totalfreedommod.httpd.HTMLGenerationTools.paragraph; import me.totalfreedom.totalfreedommod.rank.PlayerRank; +import me.totalfreedom.totalfreedommod.rank.Rank; import net.pravian.aero.command.CommandReflection; import static org.apache.commons.lang3.StringEscapeUtils.escapeHtml4; import org.apache.commons.lang3.StringUtils; @@ -76,7 +78,7 @@ public class Module_help extends HTTPDModule responseBody.append(heading(pluginName, 2)).append("
    \r\n"); - PlayerRank lastTfmCommandLevel = null; + Rank lastTfmCommandLevel = null; for (Command command : commands) { if (!TotalFreedomMod.pluginName.equals(pluginName)) @@ -85,7 +87,7 @@ public class Module_help extends HTTPDModule continue; } - PlayerRank tfmCommandLevel = FreedomCommand.getCommand(command).getPerms().level(); + Rank tfmCommandLevel = FreedomCommand.getCommand(command).getPerms().level(); if (lastTfmCommandLevel == null || lastTfmCommandLevel != tfmCommandLevel) { responseBody.append("
\r\n").append(heading(tfmCommandLevel.getName(), 3)).append("
    \r\n"); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/Module_list.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_list.java similarity index 90% rename from src/main/java/me/totalfreedom/totalfreedommod/httpd/Module_list.java rename to src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_list.java index a7c65300..c84eb0ea 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/Module_list.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_list.java @@ -1,7 +1,8 @@ -package me.totalfreedom.totalfreedommod.httpd; +package me.totalfreedom.totalfreedommod.httpd.module; import java.util.Collection; import me.totalfreedom.totalfreedommod.TotalFreedomMod; +import me.totalfreedom.totalfreedommod.httpd.NanoHTTPD; import org.bukkit.Bukkit; import org.bukkit.entity.Player; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/Module_logs.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_logs.java similarity index 85% rename from src/main/java/me/totalfreedom/totalfreedommod/httpd/Module_logs.java rename to src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_logs.java index e167aa2a..69e5b6ca 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/Module_logs.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_logs.java @@ -1,7 +1,8 @@ -package me.totalfreedom.totalfreedommod.httpd; +package me.totalfreedom.totalfreedommod.httpd.module; import java.io.File; import me.totalfreedom.totalfreedommod.config.ConfigEntry; +import me.totalfreedom.totalfreedommod.httpd.NanoHTTPD; public class Module_logs extends Module_file { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/Module_permbans.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_permbans.java similarity index 83% rename from src/main/java/me/totalfreedom/totalfreedommod/httpd/Module_permbans.java rename to src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_permbans.java index b580be32..9ced08db 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/Module_permbans.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_permbans.java @@ -1,7 +1,9 @@ -package me.totalfreedom.totalfreedommod.httpd; +package me.totalfreedom.totalfreedommod.httpd.module; import java.io.File; import me.totalfreedom.totalfreedommod.TotalFreedomMod; +import me.totalfreedom.totalfreedommod.httpd.HTTPDaemon; +import me.totalfreedom.totalfreedommod.httpd.NanoHTTPD; public class Module_permbans extends HTTPDModule { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/Module_players.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_players.java similarity index 95% rename from src/main/java/me/totalfreedom/totalfreedommod/httpd/Module_players.java rename to src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_players.java index 585dd27f..a5fb0582 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/Module_players.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_players.java @@ -1,8 +1,9 @@ -package me.totalfreedom.totalfreedommod.httpd; +package me.totalfreedom.totalfreedommod.httpd.module; import me.totalfreedom.totalfreedommod.admin.Admin; import me.totalfreedom.totalfreedommod.util.FUtil; import me.totalfreedom.totalfreedommod.TotalFreedomMod; +import me.totalfreedom.totalfreedommod.httpd.NanoHTTPD; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.json.simple.JSONArray; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/httpd/Module_schematic.java b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_schematic.java similarity index 97% rename from src/main/java/me/totalfreedom/totalfreedommod/httpd/Module_schematic.java rename to src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_schematic.java index 496b266a..86d32cee 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/httpd/Module_schematic.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/httpd/module/Module_schematic.java @@ -1,4 +1,4 @@ -package me.totalfreedom.totalfreedommod.httpd; +package me.totalfreedom.totalfreedommod.httpd.module; import java.io.File; import java.io.IOException; @@ -14,6 +14,10 @@ import me.totalfreedom.totalfreedommod.httpd.NanoHTTPD.Method; import me.totalfreedom.totalfreedommod.httpd.NanoHTTPD.Response; import me.totalfreedom.totalfreedommod.util.FLog; import me.totalfreedom.totalfreedommod.TotalFreedomMod; +import me.totalfreedom.totalfreedommod.httpd.HTMLGenerationTools; +import me.totalfreedom.totalfreedommod.httpd.HTTPDPageBuilder; +import me.totalfreedom.totalfreedommod.httpd.HTTPDaemon; +import me.totalfreedom.totalfreedommod.httpd.NanoHTTPD; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringEscapeUtils; import org.apache.commons.lang3.StringUtils; diff --git a/src/main/java/me/totalfreedom/totalfreedommod/player/PlayerData.java b/src/main/java/me/totalfreedom/totalfreedommod/player/PlayerData.java index 297ea1b3..b7b66410 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/player/PlayerData.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/player/PlayerData.java @@ -1,6 +1,10 @@ package me.totalfreedom.totalfreedommod.player; +import com.google.common.collect.Lists; import com.google.common.collect.Sets; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; import java.util.Set; import lombok.Getter; import lombok.Setter; @@ -23,8 +27,7 @@ public class PlayerData implements ConfigLoadable, ConfigSavable, Validatable @Getter @Setter private long lastJoinUnix; - @Getter - private final Set ips = Sets.newHashSet(); + private final List ips = Lists.newArrayList(); public PlayerData(Player player) { @@ -56,10 +59,15 @@ public class PlayerData implements ConfigLoadable, ConfigSavable, Validatable cs.set("last_join", lastJoinUnix); } + public List getIps() + { + return Collections.unmodifiableList(ips); + } + // IP utils public boolean addIp(String ip) { - return ips.add(ip); + return ips.contains(ip) ? false : ips.add(ip); } public boolean removeIp(String ip) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/rank/ConsoleRank.java b/src/main/java/me/totalfreedom/totalfreedommod/rank/ConsoleRank.java deleted file mode 100644 index f2d63b86..00000000 --- a/src/main/java/me/totalfreedom/totalfreedommod/rank/ConsoleRank.java +++ /dev/null @@ -1,97 +0,0 @@ -package me.totalfreedom.totalfreedommod.rank; - -import org.bukkit.ChatColor; - -public enum ConsoleRank implements Rank -{ - - TELNET_CONSOLE(PlayerRank.TELNET_ADMIN), - SENIOR_CONSOLE(PlayerRank.SENIOR_ADMIN); - // - private final PlayerRank appliedRank; - - // - private ConsoleRank(PlayerRank appliedRank) - { - this.appliedRank = appliedRank; - } - - @Override - public String getName() - { - return "Console"; - } - - @Override - public ChatColor getColor() - { - return ChatColor.DARK_PURPLE; - } - - @Override - public String getColorString() - { - return ChatColor.DARK_PURPLE.toString(); - } - - @Override - public String getColoredName() - { - return getColor() + getName(); - } - - @Override - public String getTag() - { - return "[Console]"; - } - - @Override - public String getColoredTag() - { - return getColorString() + getTag(); - } - - @Override - public String getColoredLoginMessage() - { - return "the " + getColorString() + " Console"; - } - - @Override - public int getLevel() - { - return ordinal(); - } - - @Override - public boolean isAtLeast(Rank rank) - { - return getLevel() >= rank.getLevel(); - } - - public static boolean hasConsole(PlayerRank playerRank) - { - for (ConsoleRank consoleRank : values()) - { - if (consoleRank.appliedRank == playerRank) - { - return true; - } - } - return false; - } - - public static ConsoleRank forRank(PlayerRank playerRank) - { - for (ConsoleRank consoleRank : values()) - { - if (consoleRank.appliedRank == playerRank) - { - return consoleRank; - } - } - return TELNET_CONSOLE; - } - -} diff --git a/src/main/java/me/totalfreedom/totalfreedommod/rank/CustomLoginRank.java b/src/main/java/me/totalfreedom/totalfreedommod/rank/CustomLoginRank.java index 2507b0b1..e1d20b36 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/rank/CustomLoginRank.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/rank/CustomLoginRank.java @@ -5,7 +5,7 @@ public class CustomLoginRank extends RankProxy private String loginMessage; - public CustomLoginRank(PlayerRank rank, String loginMessage) + public CustomLoginRank(Rank rank, String loginMessage) { super(rank); } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/rank/PlayerRank.java b/src/main/java/me/totalfreedom/totalfreedommod/rank/PlayerRank.java index 59eb3825..2daee8a7 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/rank/PlayerRank.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/rank/PlayerRank.java @@ -6,30 +6,35 @@ import org.bukkit.ChatColor; public enum PlayerRank implements Rank { - // Order is important here - IMPOSTOR(false, "an", "Imp", ChatColor.YELLOW, ChatColor.UNDERLINE), - NON_OP(false, "a", "", ChatColor.GREEN), - OP(false, "an", "OP", ChatColor.RED), - SUPER_ADMIN(true, "a", "SA", ChatColor.GOLD), - TELNET_ADMIN(true, "a", "StA", ChatColor.DARK_GREEN), - SENIOR_ADMIN(true, "a", "SrA", ChatColor.LIGHT_PURPLE); + IMPOSTOR(Type.PLAYER, "an", "Imp", ChatColor.YELLOW), + NON_OP(Type.PLAYER, "a", "", ChatColor.GREEN), + OP(Type.PLAYER, "an", "OP", ChatColor.RED), + SUPER_ADMIN(Type.ADMIN, "a", "SA", ChatColor.GOLD), + TELNET_ADMIN(Type.ADMIN, "a", "StA", ChatColor.DARK_GREEN), + SENIOR_ADMIN(Type.ADMIN, "a", "SrA", ChatColor.LIGHT_PURPLE), + TELNET_CONSOLE(), + SENIOR_CONSOLE(); // @Getter + private final Type type; + @Getter private final String name; private final String determiner; @Getter private final String tag; @Getter private final ChatColor color; - @Getter - private final String colorString; - @Getter - private final boolean admin; - private PlayerRank(boolean admin, String determiner, String tag, ChatColor... colors) + private PlayerRank() { - this.admin = admin; + this("Console", Type.ADMIN_CONSOLE, "the", "Console", ChatColor.DARK_PURPLE); + } + private PlayerRank(Type type, String determiner, String tag, ChatColor color) + { + this.type = type; + + // Name final String[] nameParts = name().toLowerCase().split("_"); String tempName = ""; for (String part : nameParts) @@ -41,19 +46,23 @@ public enum PlayerRank implements Rank this.determiner = determiner; this.tag = "[" + tag + "]"; - this.color = colors[0]; - String tColor = ""; - for (ChatColor lColor : colors) - { - tColor += lColor.toString(); - } - colorString = tColor; + // Colors + this.color = color; + } + + private PlayerRank(String name, Type type, String determiner, String tag, ChatColor color) + { + this.type = type; + this.name = name; + this.determiner = determiner; + this.tag = "[" + tag + "]"; + this.color = color; } @Override public String getColoredName() { - return getColorString() + getName(); + return getColor() + getName(); } @Override @@ -68,9 +77,9 @@ public enum PlayerRank implements Rank return determiner + " " + getColoredName(); } - public boolean hasConsole() + public boolean isConsole() { - return ConsoleRank.hasConsole(this); + return getType() == Type.ADMIN_CONSOLE; } @Override @@ -85,7 +94,47 @@ public enum PlayerRank implements Rank return getLevel() >= rank.getLevel(); } - public static PlayerRank forString(String string) + public boolean isAdmin() + { + return getType() == Type.ADMIN || getType() == Type.ADMIN_CONSOLE; + } + + public boolean hasConsole() + { + return getConsoleVariant() != null; + } + + public PlayerRank getConsoleVariant() + { + switch (this) + { + case TELNET_ADMIN: + case TELNET_CONSOLE: + return TELNET_CONSOLE; + case SENIOR_ADMIN: + case SENIOR_CONSOLE: + return SENIOR_CONSOLE; + default: + return null; + } + } + + public PlayerRank getPlayerVariant() + { + switch (this) + { + case TELNET_ADMIN: + case TELNET_CONSOLE: + return TELNET_ADMIN; + case SENIOR_ADMIN: + case SENIOR_CONSOLE: + return SENIOR_ADMIN; + default: + return null; + } + } + + public static PlayerRank findRank(String string) { try { @@ -97,4 +146,17 @@ public enum PlayerRank implements Rank return PlayerRank.NON_OP; } + + public static enum Type + { + + PLAYER, + ADMIN, + ADMIN_CONSOLE; + + public boolean isAdmin() + { + return this != PLAYER; + } + } } diff --git a/src/main/java/me/totalfreedom/totalfreedommod/rank/Rank.java b/src/main/java/me/totalfreedom/totalfreedommod/rank/Rank.java index 6a8dcfc3..a4309908 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/rank/Rank.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/rank/Rank.java @@ -11,8 +11,6 @@ public interface Rank public ChatColor getColor(); - public String getColorString(); - public String getColoredName(); public String getColoredTag(); diff --git a/src/main/java/me/totalfreedom/totalfreedommod/rank/RankManager.java b/src/main/java/me/totalfreedom/totalfreedommod/rank/RankManager.java index 7c52f3d4..f0111969 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/rank/RankManager.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/rank/RankManager.java @@ -45,46 +45,61 @@ public class RankManager extends AbstractService final Player player = (Player) sender; + // Display impostors + if (plugin.al.isAdminImpostor(player)) + { + return PlayerRank.IMPOSTOR; + } + // Developers always show up if (FUtil.DEVELOPERS.contains(player.getName())) { return TitleRank.DEVELOPER; } - final PlayerRank playerRank = getRank((Player) sender); - final Admin admin = playerRank.isAdmin() ? plugin.al.getAdmin(sender) : null; + final PlayerRank rank = getRank(player); + final Admin admin = rank.isAdmin() ? plugin.al.getAdmin(sender) : null; - // Titles except developer are only for admins + // Non-admins don't have titles, display actual rank if (admin == null) { - return playerRank; + return rank; } + // If the player's an owner, display that if (MainConfig.get(ConfigEntry.SERVER_OWNERS, List.class).contains(player.getName())) { return TitleRank.OWNER; } final String loginMessage = admin.getLoginMessage(); - return loginMessage == null ? playerRank : new CustomLoginRank(playerRank, ChatUtils.colorize(loginMessage)); + // If we don't have a custom login message, use the actual rank + if (loginMessage == null) + { + return rank; + } + + return new CustomLoginRank(rank, ChatUtils.colorize(loginMessage)); } - public Rank getRank(CommandSender sender) + public PlayerRank getRank(CommandSender sender) { if (sender instanceof Player) { return getRank((Player) sender); } + // Console admin, get by name Admin admin = plugin.al.getEntryByName(sender.getName()); + // Unknown console: RCON, CONSOLE? if (admin == null) - { // Unknown console, RCon, CONSOLE? - return ConsoleRank.SENIOR_CONSOLE; + { + return PlayerRank.SENIOR_CONSOLE; } - return ConsoleRank.forRank(admin.getRank()); + return admin.getRank(); } public PlayerRank getRank(Player player) @@ -107,17 +122,17 @@ public class RankManager extends AbstractService public void onPlayerJoin(PlayerJoinEvent event) { final Player player = event.getPlayer(); - final PlayerData data = plugin.pl.getData(player); + //plugin.pl.getData(player); final FPlayer fPlayer = plugin.pl.getPlayer(player); // Unban admins boolean isAdmin = plugin.al.isAdmin(player); + fPlayer.setSuperadminIdVerified(false); if (isAdmin) { // Verify strict IP match if (!plugin.al.isIdentityMatched(player)) { - fPlayer.setSuperadminIdVerified(false); FUtil.bcastMsg("Warning: " + player.getName() + " is an admin, but is using an account not registered to one of their ip-list.", ChatColor.RED); } else @@ -146,8 +161,8 @@ public class RankManager extends AbstractService plugin.pl.getPlayer(player).setTag(display.getColoredTag()); try { - String displayName = display.getColorString() + player.getName(); - player.setPlayerListName(displayName.substring(0, 16)); + String displayName = display.getColor() + player.getName(); + player.setPlayerListName(displayName.substring(0, Math.min(displayName.length(), 16))); } catch (IllegalArgumentException ex) { diff --git a/src/main/java/me/totalfreedom/totalfreedommod/rank/RankProxy.java b/src/main/java/me/totalfreedom/totalfreedommod/rank/RankProxy.java index 23aa12e6..4c1089ec 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/rank/RankProxy.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/rank/RankProxy.java @@ -32,12 +32,6 @@ public abstract class RankProxy implements Rank return proxy.getColor(); } - @Override - public String getColorString() - { - return proxy.getColorString(); - } - @Override public String getColoredName() { @@ -59,7 +53,7 @@ public abstract class RankProxy implements Rank @Override public boolean isAtLeast(Rank rank) { - return rank.isAtLeast(rank); + return proxy.isAtLeast(rank); } @Override diff --git a/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java b/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java index d0c83bf5..5aff51e4 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/util/FUtil.java @@ -1,7 +1,5 @@ package me.totalfreedom.totalfreedommod.util; -import me.totalfreedom.totalfreedommod.util.FLog; -import me.totalfreedom.totalfreedommod.util.DepreciationAggregator; import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; @@ -60,7 +58,7 @@ public class FUtil private static final Map ejectTracker = new HashMap(); public static final Map mobtypes = new HashMap(); // See https://github.com/TotalFreedom/License - None of the listed names may be removed. - public static final List DEVELOPERS = Arrays.asList("Madgeek1450", "Prozza", "DarthSalmon", "AcidicCyanide", "Wild1145", "WickedGamingUK"); + public static final List DEVELOPERS = Arrays.asList("Madgeek1450", "Prozza", "Wild1145", "WickedGamingUK"); private static final Random RANDOM = new Random(); public static String DATE_STORAGE_FORMAT = "EEE, d MMM yyyy HH:mm:ss Z"; public static final Map CHAT_COLOR_NAMES = new HashMap();