diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/Log.java b/src/main/java/me/StevenLawson/TotalFreedomMod/Log.java
index 0024d46..58bd844 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/Log.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/Log.java
@@ -3,105 +3,85 @@ package me.StevenLawson.TotalFreedomMod;
import java.util.logging.Level;
import java.util.logging.Logger;
-public class Log
-{
- private static final Logger FALLBACK_LOGGER = Logger.getLogger("Minecraft-Server");
- private static Logger serverLogger = null;
- private static Logger pluginLogger = null;
+public class Log {
- private Log()
- {
- throw new AssertionError();
- }
+ private static final Logger FALLBACK_LOGGER = Logger.getLogger("Minecraft-Server");
+ private static Logger serverLogger = null;
+ private static Logger pluginLogger = null;
- // Level.INFO:
- public static void info(String message)
- {
- info(message, false);
- }
+ private Log() {
+ throw new AssertionError();
+ }
- public static void info(String message, Boolean raw)
- {
- log(Level.INFO, message, raw);
- }
+ // Level.INFO:
+ public static void info(String message) {
+ info(message, false);
+ }
- public static void info(Throwable ex)
- {
- log(Level.INFO, ex);
- }
+ public static void info(String message, Boolean raw) {
+ log(Level.INFO, message, raw);
+ }
- // Level.WARNING:
- public static void warning(String message)
- {
- warning(message, false);
- }
+ public static void info(Throwable ex) {
+ log(Level.INFO, ex);
+ }
- public static void warning(String message, Boolean raw)
- {
- log(Level.WARNING, message, raw);
- }
+ // Level.WARNING:
+ public static void warning(String message) {
+ warning(message, false);
+ }
- public static void warning(Throwable ex)
- {
- log(Level.WARNING, ex);
- }
+ public static void warning(String message, Boolean raw) {
+ log(Level.WARNING, message, raw);
+ }
- // Level.SEVERE:
- public static void severe(String message)
- {
- severe(message, false);
- }
+ public static void warning(Throwable ex) {
+ log(Level.WARNING, ex);
+ }
- public static void severe(String message, Boolean raw)
- {
- log(Level.SEVERE, message, raw);
- }
+ // Level.SEVERE:
+ public static void severe(String message) {
+ severe(message, false);
+ }
- public static void severe(Throwable ex)
- {
- log(Level.SEVERE, ex);
- }
+ public static void severe(String message, Boolean raw) {
+ log(Level.SEVERE, message, raw);
+ }
- // Utility
- private static void log(Level level, String message, boolean raw)
- {
- getLogger(raw).log(level, message);
- }
+ public static void severe(Throwable ex) {
+ log(Level.SEVERE, ex);
+ }
- private static void log(Level level, Throwable throwable)
- {
- getLogger(false).log(level, null, throwable);
- }
+ // Utility
+ private static void log(Level level, String message, boolean raw) {
+ getLogger(raw).log(level, message);
+ }
- public static void setServerLogger(Logger logger)
- {
- serverLogger = logger;
- }
+ private static void log(Level level, Throwable throwable) {
+ getLogger(false).log(level, null, throwable);
+ }
- public static void setPluginLogger(Logger logger)
- {
- pluginLogger = logger;
- }
+ private static Logger getLogger(boolean raw) {
+ if (raw || pluginLogger == null) {
+ return (serverLogger != null ? serverLogger : FALLBACK_LOGGER);
+ } else {
+ return pluginLogger;
+ }
+ }
- private static Logger getLogger(boolean raw)
- {
- if (raw || pluginLogger == null)
- {
- return (serverLogger != null ? serverLogger : FALLBACK_LOGGER);
- }
- else
- {
- return pluginLogger;
- }
- }
+ public static Logger getPluginLogger() {
+ return (pluginLogger != null ? pluginLogger : FALLBACK_LOGGER);
+ }
- public static Logger getPluginLogger()
- {
- return (pluginLogger != null ? pluginLogger : FALLBACK_LOGGER);
- }
+ public static void setPluginLogger(Logger logger) {
+ pluginLogger = logger;
+ }
- public static Logger getServerLogger()
- {
- return (serverLogger != null ? serverLogger : FALLBACK_LOGGER);
- }
+ public static Logger getServerLogger() {
+ return (serverLogger != null ? serverLogger : FALLBACK_LOGGER);
+ }
+
+ public static void setServerLogger(Logger logger) {
+ serverLogger = logger;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/Server.java b/src/main/java/me/StevenLawson/TotalFreedomMod/Server.java
index 9fdc0a2..804f521 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/Server.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/Server.java
@@ -1,6 +1,13 @@
package me.StevenLawson.TotalFreedomMod;
+import static me.StevenLawson.TotalFreedomMod.listener.PlayerListener.DEFAULT_PORT;
+
import com.earth2me.essentials.utils.DateUtil;
+import java.lang.management.ManagementFactory;
+import java.util.Arrays;
+import java.util.List;
+import java.util.UUID;
+import java.util.regex.Pattern;
import me.StevenLawson.TotalFreedomMod.admin.AdminList;
import me.StevenLawson.TotalFreedomMod.ban.Ban;
import me.StevenLawson.TotalFreedomMod.ban.BanManager;
@@ -19,254 +26,221 @@ import org.bukkit.event.player.AsyncPlayerPreLoginEvent;
import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.event.player.PlayerLoginEvent.Result;
-import java.lang.management.ManagementFactory;
-import java.util.Arrays;
-import java.util.List;
-import java.util.UUID;
-import java.util.regex.Pattern;
+public class Server {
-import static me.StevenLawson.TotalFreedomMod.listener.PlayerListener.DEFAULT_PORT;
+ public static final String COMPILE_NMS_VERSION = "v1_8_R2";
+ public static final Pattern USERNAME_REGEX = Pattern.compile("^[\\w\\d_]{3,20}$");
-public class Server
-{
- public static final String COMPILE_NMS_VERSION = "v1_8_R2";
- public static final Pattern USERNAME_REGEX = Pattern.compile("^[\\w\\d_]{3,20}$");
+ public static void setOnlineMode(boolean mode) {
+ final PropertyManager manager = MinecraftServer.getServer().getPropertyManager();
+ manager.setProperty("online-mode", mode);
+ manager.savePropertiesFile();
+ }
- public static void setOnlineMode(boolean mode)
- {
- final PropertyManager manager = MinecraftServer.getServer().getPropertyManager();
- manager.setProperty("online-mode", mode);
- manager.savePropertiesFile();
- }
+ public static int purgeWhitelist() {
+ String[] whitelisted = MinecraftServer.getServer().getPlayerList().getWhitelisted();
+ int size = whitelisted.length;
+ for (EntityPlayer player : MinecraftServer.getServer().getPlayerList().players) {
+ MinecraftServer.getServer().getPlayerList().getWhitelist().remove(player.getProfile());
+ }
- public static int purgeWhitelist()
- {
- String[] whitelisted = MinecraftServer.getServer().getPlayerList().getWhitelisted();
- int size = whitelisted.length;
- for (EntityPlayer player : MinecraftServer.getServer().getPlayerList().players)
- {
- MinecraftServer.getServer().getPlayerList().getWhitelist().remove(player.getProfile());
- }
+ try {
+ MinecraftServer.getServer().getPlayerList().getWhitelist().save();
+ } catch (Exception ex) {
+ Log.warning("Could not purge the whitelist!");
+ Log.warning(ex);
+ }
+ return size;
+ }
- try
- {
- MinecraftServer.getServer().getPlayerList().getWhitelist().save();
- }
- catch (Exception ex)
- {
- Log.warning("Could not purge the whitelist!");
- Log.warning(ex);
- }
- return size;
- }
+ public static boolean isWhitelisted() {
+ return MinecraftServer.getServer().getPlayerList().getHasWhitelist();
+ }
- public static boolean isWhitelisted()
- {
- return MinecraftServer.getServer().getPlayerList().getHasWhitelist();
- }
+ public static List> getWhitelisted() {
+ return Arrays.asList(MinecraftServer.getServer().getPlayerList().getWhitelisted());
+ }
- public static List> getWhitelisted()
- {
- return Arrays.asList(MinecraftServer.getServer().getPlayerList().getWhitelisted());
- }
+ public static String getVersion() {
+ return MinecraftServer.getServer().getVersion();
+ }
- public static String getVersion()
- {
- return MinecraftServer.getServer().getVersion();
- }
+ public static void handlePlayerPreLogin(AsyncPlayerPreLoginEvent event) {
+ final String ip = event.getAddress().getHostAddress().trim();
+ final boolean isAdmin = AdminList.isSuperAdminSafe(null, ip);
- public static void handlePlayerPreLogin(AsyncPlayerPreLoginEvent event)
- {
- final String ip = event.getAddress().getHostAddress().trim();
- final boolean isAdmin = AdminList.isSuperAdminSafe(null, ip);
+ // Check if the player is already online
+ for (Player onlinePlayer : TotalFreedomMod.server.getOnlinePlayers()) {
+ if (!onlinePlayer.getName().equalsIgnoreCase(event.getName())) {
+ continue;
+ }
- // Check if the player is already online
- for (Player onlinePlayer : TotalFreedomMod.server.getOnlinePlayers())
- {
- if (!onlinePlayer.getName().equalsIgnoreCase(event.getName()))
- {
- continue;
- }
+ if (!isAdmin) {
+ event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_OTHER,
+ "Your username is already logged into this server.");
+ } else {
+ event.allow();
+ SynchronousUtil.playerKick(onlinePlayer,
+ "An admin just logged in with the username you are using.");
+ }
+ return;
+ }
+ }
- if (!isAdmin) {
- event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_OTHER, "Your username is already logged into this server.");
- } else {
- event.allow();
- SynchronousUtil.playerKick(onlinePlayer, "An admin just logged in with the username you are using.");
- }
- return;
- }
- }
+ public static void handlePlayerLogin(PlayerLoginEvent event) {
+ final org.bukkit.Server server = TotalFreedomMod.server;
+ final Player player = event.getPlayer();
+ final String username = player.getName();
+ final String ip = event.getAddress().getHostAddress().trim();
+ final UUID uuid = UUIDManager.newPlayer(player, ip);
- public static void handlePlayerLogin(PlayerLoginEvent event)
- {
- final org.bukkit.Server server = TotalFreedomMod.server;
- final Player player = event.getPlayer();
- final String username = player.getName();
- final String ip = event.getAddress().getHostAddress().trim();
- final UUID uuid = UUIDManager.newPlayer(player, ip);
+ // Check username length
+ if (username.length() < 3 || username.length() > TotalFreedomMod.MAX_USERNAME_LENGTH) {
+ event.disallow(Result.KICK_OTHER,
+ "Your username is an invalid length (must be between 3 and 20 characters long).");
+ return;
+ }
- // Check username length
- if (username.length() < 3 || username.length() > TotalFreedomMod.MAX_USERNAME_LENGTH)
- {
- event.disallow(Result.KICK_OTHER, "Your username is an invalid length (must be between 3 and 20 characters long).");
- return;
- }
+ // Check username characters
+ if (!USERNAME_REGEX.matcher(username).find()) {
+ event.disallow(Result.KICK_OTHER, "Your username contains invalid characters.");
+ return;
+ }
- // Check username characters
- if (!USERNAME_REGEX.matcher(username).find())
- {
- event.disallow(Result.KICK_OTHER, "Your username contains invalid characters.");
- return;
- }
+ // Check force-IP match
+ if (ConfigurationEntry.FORCE_IP_ENABLED.getBoolean()) {
+ final String hostname = event.getHostname().replace("FML",
+ ""); // Forge fix - https://github.com/TotalFreedom/TotalFreedomMod/issues/493
+ final String connectAddress = ConfigurationEntry.SERVER_ADDRESS.getString();
+ final int connectPort = TotalFreedomMod.server.getPort();
- // Check force-IP match
- if (ConfigurationEntry.FORCE_IP_ENABLED.getBoolean())
- {
- final String hostname = event.getHostname().replace("FML", ""); // Forge fix - https://github.com/TotalFreedom/TotalFreedomMod/issues/493
- final String connectAddress = ConfigurationEntry.SERVER_ADDRESS.getString();
- final int connectPort = TotalFreedomMod.server.getPort();
+ if (!hostname.equalsIgnoreCase(connectAddress + ":" + connectPort)
+ && !hostname.equalsIgnoreCase(connectAddress + ".:" + connectPort)) {
+ final int forceIpPort = ConfigurationEntry.FORCE_IP_PORT.getInteger();
+ event.disallow(PlayerLoginEvent.Result.KICK_OTHER,
+ ConfigurationEntry.FORCE_IP_KICKMSG.getString()
+ .replace("%address%", ConfigurationEntry.SERVER_ADDRESS.getString() + (
+ forceIpPort == DEFAULT_PORT ? "" : ":" + forceIpPort)));
+ return;
+ }
- if (!hostname.equalsIgnoreCase(connectAddress + ":" + connectPort) && !hostname.equalsIgnoreCase(connectAddress + ".:" + connectPort))
- {
- final int forceIpPort = ConfigurationEntry.FORCE_IP_PORT.getInteger();
- event.disallow(PlayerLoginEvent.Result.KICK_OTHER,
- ConfigurationEntry.FORCE_IP_KICKMSG.getString()
- .replace("%address%", ConfigurationEntry.SERVER_ADDRESS.getString() + (forceIpPort == DEFAULT_PORT ? "" : ":" + forceIpPort)));
- return;
- }
+ }
- }
+ // Check if player is admin
+ // Not safe to use Utilities.isSuperAdmin(player) because player.getAddress() will return a null until after player login.
+ final boolean isAdmin = AdminList.isSuperAdminSafe(uuid, ip);
- // Check if player is admin
- // Not safe to use Utilities.isSuperAdmin(player) because player.getAddress() will return a null until after player login.
- final boolean isAdmin = AdminList.isSuperAdminSafe(uuid, ip);
+ // Validation below this point
+ if (isAdmin) // Player is superadmin
+ {
+ // Force-allow log in
+ event.allow();
- // Validation below this point
- if (isAdmin) // Player is superadmin
- {
- // Force-allow log in
- event.allow();
+ int count = server.getOnlinePlayers().size();
+ if (count >= server.getMaxPlayers()) {
+ for (Player onlinePlayer : server.getOnlinePlayers()) {
+ if (!AdminList.isSuperAdmin(onlinePlayer)) {
+ onlinePlayer.kickPlayer(
+ "You have been kicked to free up room for an admin.");
+ count--;
+ }
- int count = server.getOnlinePlayers().size();
- if (count >= server.getMaxPlayers())
- {
- for (Player onlinePlayer : server.getOnlinePlayers())
- {
- if (!AdminList.isSuperAdmin(onlinePlayer))
- {
- onlinePlayer.kickPlayer("You have been kicked to free up room for an admin.");
- count--;
- }
+ if (count < server.getMaxPlayers()) {
+ break;
+ }
+ }
+ }
- if (count < server.getMaxPlayers())
- {
- break;
- }
- }
- }
+ if (count >= server.getMaxPlayers()) {
+ event.disallow(Result.KICK_OTHER,
+ "The server is full and a player could not be kicked, sorry!");
+ return;
+ }
- if (count >= server.getMaxPlayers())
- {
- event.disallow(Result.KICK_OTHER, "The server is full and a player could not be kicked, sorry!");
- return;
- }
+ return;
+ }
- return;
- }
+ // Player is not an admin
+ // Server full check
+ if (server.getOnlinePlayers().size() >= server.getMaxPlayers()) {
+ event.disallow(Result.KICK_FULL, "Sorry, but this server is full.");
+ return;
+ }
- // Player is not an admin
- // Server full check
- if (server.getOnlinePlayers().size() >= server.getMaxPlayers())
- {
- event.disallow(Result.KICK_FULL, "Sorry, but this server is full.");
- return;
- }
+ // Admin-only mode
+ if (ConfigurationEntry.ADMIN_ONLY_MODE.getBoolean()) {
+ event.disallow(Result.KICK_OTHER, "Server is temporarily open to admins only.");
+ return;
+ }
- // Admin-only mode
- if (ConfigurationEntry.ADMIN_ONLY_MODE.getBoolean())
- {
- event.disallow(Result.KICK_OTHER, "Server is temporarily open to admins only.");
- return;
- }
+ // Lockdown mode
+ if (TotalFreedomMod.lockdownEnabled) {
+ event.disallow(Result.KICK_OTHER, "Server is currently in lockdown mode.");
+ return;
+ }
- // Lockdown mode
- if (TotalFreedomMod.lockdownEnabled)
- {
- event.disallow(Result.KICK_OTHER, "Server is currently in lockdown mode.");
- return;
- }
+ // Whitelist
+ if (isWhitelisted()) {
+ if (!getWhitelisted().contains(username.toLowerCase())) {
+ event.disallow(Result.KICK_OTHER, "You are not whitelisted on this server.");
+ return;
+ }
+ }
- // Whitelist
- if (isWhitelisted())
- {
- if (!getWhitelisted().contains(username.toLowerCase()))
- {
- event.disallow(Result.KICK_OTHER, "You are not whitelisted on this server.");
- return;
- }
- }
+ // UUID ban
+ if (BanManager.isUuidBanned(uuid)) {
+ final Ban ban = BanManager.getByUuid(uuid);
+ event.disallow(Result.KICK_OTHER, ban.getKickMessage());
+ return;
+ }
- // UUID ban
- if (BanManager.isUuidBanned(uuid))
- {
- final Ban ban = BanManager.getByUuid(uuid);
- event.disallow(Result.KICK_OTHER, ban.getKickMessage());
- return;
- }
+ // IP ban
+ if (BanManager.isIpBanned(ip)) {
+ final Ban ban = BanManager.getByIp(ip);
+ event.disallow(Result.KICK_OTHER, ban.getKickMessage());
+ return;
+ }
- // IP ban
- if (BanManager.isIpBanned(ip))
- {
- final Ban ban = BanManager.getByIp(ip);
- event.disallow(Result.KICK_OTHER, ban.getKickMessage());
- return;
- }
+ // Permbanned IPs
+ for (String testIp : PermbanList.getPermbannedIps()) {
+ if (Utilities.fuzzyIpMatch(testIp, ip, 4)) {
+ event.disallow(Result.KICK_OTHER,
+ ChatColor.RED + "Your IP address is permanently banned from this server.\n"
+ + "Release procedures are available at\n"
+ + ChatColor.GOLD + ConfigurationEntry.SERVER_PERMBAN_URL.getString());
+ return;
+ }
+ }
- // Permbanned IPs
- for (String testIp : PermbanList.getPermbannedIps())
- {
- if (Utilities.fuzzyIpMatch(testIp, ip, 4))
- {
- event.disallow(Result.KICK_OTHER,
- ChatColor.RED + "Your IP address is permanently banned from this server.\n"
- + "Release procedures are available at\n"
- + ChatColor.GOLD + ConfigurationEntry.SERVER_PERMBAN_URL.getString());
- return;
- }
- }
+ // Permbanned usernames
+ for (String testPlayer : PermbanList.getPermbannedPlayers()) {
+ if (testPlayer.equalsIgnoreCase(username)) {
+ event.disallow(Result.KICK_OTHER,
+ ChatColor.RED + "Your username is permanently banned from this server.\n"
+ + "Release procedures are available at\n"
+ + ChatColor.GOLD + ConfigurationEntry.SERVER_PERMBAN_URL.getString());
+ return;
+ }
+ }
+ }
- // Permbanned usernames
- for (String testPlayer : PermbanList.getPermbannedPlayers())
- {
- if (testPlayer.equalsIgnoreCase(username))
- {
- event.disallow(Result.KICK_OTHER,
- ChatColor.RED + "Your username is permanently banned from this server.\n"
- + "Release procedures are available at\n"
- + ChatColor.GOLD + ConfigurationEntry.SERVER_PERMBAN_URL.getString());
- return;
- }
- }
- }
+ public static double getTPS() {
+ return EssentialsBridge.getEssentialsPlugin().getTimer().getAverageTPS();
+ }
- public static double getTPS() {
- return EssentialsBridge.getEssentialsPlugin().getTimer().getAverageTPS();
- }
+ public static double getMaxMem() {
+ return Runtime.getRuntime().maxMemory() / 1024f / 1024f;
+ }
- public static double getMaxMem() {
- return Runtime.getRuntime().maxMemory() / 1024f / 1024f;
- }
+ public static double getTotalMem() {
+ return Runtime.getRuntime().totalMemory() / 1024f / 1024f;
+ }
- public static double getTotalMem() {
- return Runtime.getRuntime().totalMemory() / 1024f / 1024f;
- }
+ public static double getFreeMem() {
+ return Runtime.getRuntime().freeMemory() / 1024f / 1024f;
+ }
- public static double getFreeMem() {
- return Runtime.getRuntime().freeMemory() / 1024f / 1024f;
- }
-
- public static String getUptime() {
- return DateUtil.formatDateDiff(ManagementFactory.getRuntimeMXBean().getStartTime());
- }
+ public static String getUptime() {
+ return DateUtil.formatDateDiff(ManagementFactory.getRuntimeMXBean().getStartTime());
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java b/src/main/java/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java
index cf49fd7..78883db 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java
@@ -1,22 +1,34 @@
package me.StevenLawson.TotalFreedomMod;
import com.google.common.base.Function;
+import java.io.File;
+import java.io.IOException;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+import java.util.logging.Logger;
import me.StevenLawson.TotalFreedomMod.admin.AdminList;
import me.StevenLawson.TotalFreedomMod.announcer.Announcer;
import me.StevenLawson.TotalFreedomMod.ban.BanManager;
import me.StevenLawson.TotalFreedomMod.ban.PermbanList;
-import me.StevenLawson.TotalFreedomMod.commands.Commands;
-import me.StevenLawson.TotalFreedomMod.discord.bridge.DiscordBridge;
import me.StevenLawson.TotalFreedomMod.command.CommandBlocker;
+import me.StevenLawson.TotalFreedomMod.commands.Commands;
import me.StevenLawson.TotalFreedomMod.commands.FreedomCommand;
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
import me.StevenLawson.TotalFreedomMod.deprecated.bridge.BukkitTelnetBridge;
+import me.StevenLawson.TotalFreedomMod.discord.bridge.DiscordBridge;
import me.StevenLawson.TotalFreedomMod.gamerule.GameRuleHandler;
import me.StevenLawson.TotalFreedomMod.httpd.HTTPDManager;
-import me.StevenLawson.TotalFreedomMod.listener.*;
+import me.StevenLawson.TotalFreedomMod.listener.BlockListener;
+import me.StevenLawson.TotalFreedomMod.listener.EntityListener;
+import me.StevenLawson.TotalFreedomMod.listener.PlayerListener;
+import me.StevenLawson.TotalFreedomMod.listener.ServerListener;
+import me.StevenLawson.TotalFreedomMod.listener.WeatherListener;
+import me.StevenLawson.TotalFreedomMod.listener.WorldEditListener;
+import me.StevenLawson.TotalFreedomMod.manager.UUIDManager;
import me.StevenLawson.TotalFreedomMod.player.HeartBeat;
import me.StevenLawson.TotalFreedomMod.player.PlayerList;
-import me.StevenLawson.TotalFreedomMod.manager.UUIDManager;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import me.StevenLawson.TotalFreedomMod.world.AdminWorld;
import me.StevenLawson.TotalFreedomMod.world.FlatlandsWorld;
@@ -31,160 +43,173 @@ import org.bukkit.plugin.ServicePriority;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;
-import java.io.File;
-import java.io.IOException;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-import java.util.logging.Logger;
-
public class TotalFreedomMod extends JavaPlugin {
- public static final long HEARTBEAT_RATE = 5L; // Seconds
- public static final long SERVICE_CHECKER_RATE = 120L;
- public static final int MAX_USERNAME_LENGTH = 20;
- //
- public static final String CONFIG_FILENAME = "config.yml";
- public static final String SUPERADMIN_FILENAME = "superadmin.yml";
- public static final String PERMBAN_FILENAME = "permban.yml";
- public static final String PLAYERTAGS_FILENAME = "playerTags.yml";
- public static final String UUID_FILENAME = "uuids.db";
- public static final String PROTECTED_AREA_FILENAME = "protectedareas.dat";
- public static final String SAVED_FLAGS_FILENAME = "savedflags.dat";
- //
- @Deprecated
- public static final String YOU_ARE_NOT_OP = FreedomCommand.YOU_ARE_NOT_OP;
- //
- public static String buildNumber = "1";
- public static String buildDate = Utilities.dateToString(new Date());
- public static String buildCreator = "Unknown";
- //
- public static org.bukkit.Server server;
- public static TotalFreedomMod plugin;
- public static String pluginName;
- public static String pluginVersion;
- //
- public static boolean lockdownEnabled = false;
- public static Map fuckoffEnabledFor = new HashMap<>();
- public static Logger logger;
- private FileConfiguration customConfig; // Custom configuration implementation by Eva
+ public static final long HEARTBEAT_RATE = 5L; // Seconds
+ public static final long SERVICE_CHECKER_RATE = 120L;
+ public static final int MAX_USERNAME_LENGTH = 20;
+ //
+ public static final String CONFIG_FILENAME = "config.yml";
+ public static final String SUPERADMIN_FILENAME = "superadmin.yml";
+ public static final String PERMBAN_FILENAME = "permban.yml";
+ public static final String PLAYERTAGS_FILENAME = "playerTags.yml";
+ public static final String UUID_FILENAME = "uuids.db";
+ public static final String PROTECTED_AREA_FILENAME = "protectedareas.dat";
+ public static final String SAVED_FLAGS_FILENAME = "savedflags.dat";
+ //
+ @Deprecated
+ public static final String YOU_ARE_NOT_OP = FreedomCommand.YOU_ARE_NOT_OP;
+ //
+ public static String buildNumber = "1";
+ public static String buildDate = Utilities.dateToString(new Date());
+ public static String buildCreator = "Unknown";
+ //
+ public static org.bukkit.Server server;
+ public static TotalFreedomMod plugin;
+ public static String pluginName;
+ public static String pluginVersion;
+ //
+ public static boolean lockdownEnabled = false;
+ public static Map fuckoffEnabledFor = new HashMap<>();
+ public static Logger logger;
- @Override
- public void onLoad() {
- TotalFreedomMod.plugin = this;
- TotalFreedomMod.logger = this.getLogger();
- TotalFreedomMod.server = plugin.getServer();
- TotalFreedomMod.pluginName = plugin.getDescription().getName();
- TotalFreedomMod.pluginVersion = plugin.getDescription().getVersion();
+ private FileConfiguration customConfig; // Custom configuration implementation by Eva
- Log.setPluginLogger(plugin.getLogger());
- Log.setServerLogger(server.getLogger());
+ private static void setAppProperties() {
+ try {
+ //final InputStream in = plugin.getResource("appinfo.properties");
+ Properties props = new Properties();
- setAppProperties();
- }
+ // in = plugin.getClass().getResourceAsStream("/appinfo.properties");
+ //props.load(in);
+ //in.close();
- @Override
- public void onEnable()
- {
- getConfig().options().copyDefaults(true);
+ //TotalFreedomMod.buildNumber = props.getProperty("program.buildnumber");
+ //TotalFreedomMod.buildDate = props.getProperty("program.builddate");
+ //TotalFreedomMod.buildCreator = props.getProperty("program.buildcreator");
+ TotalFreedomMod.buildNumber = "1337";
+ TotalFreedomMod.buildCreator = "You!";
+ } catch (Exception ex) {
+ Log.severe("Could not load App properties!");
+ Log.severe(ex);
+ }
+ }
- Log.info("Made by Madgeek1450 and Prozza");
- Log.info("Compiled " + buildDate + " by " + buildCreator);
+ @Override
+ public void onLoad() {
+ TotalFreedomMod.plugin = this;
+ TotalFreedomMod.logger = this.getLogger();
+ TotalFreedomMod.server = plugin.getServer();
+ TotalFreedomMod.pluginName = plugin.getDescription().getName();
+ TotalFreedomMod.pluginVersion = plugin.getDescription().getVersion();
- final Utilities.MethodTimer timer = new Utilities.MethodTimer();
- timer.start();
+ Log.setPluginLogger(plugin.getLogger());
+ Log.setServerLogger(server.getLogger());
- if (!Server.COMPILE_NMS_VERSION.equals(Utilities.getNmsVersion()))
- {
- Log.warning(pluginName + " is compiled for " + Server.COMPILE_NMS_VERSION + " but the server is running "
- + "version " + Utilities.getNmsVersion() + "!");
- Log.warning("This might result in unexpected behaviour!");
- }
+ setAppProperties();
+ }
- Utilities.deleteCoreDumps();
- Utilities.deleteFolder(new File("./_deleteme"));
+ @Override
+ public void onEnable() {
+ getConfig().options().copyDefaults(true);
- // Create backups
- Utilities.createBackups(CONFIG_FILENAME, true);
- Utilities.createBackups(SUPERADMIN_FILENAME);
- Utilities.createBackups(PERMBAN_FILENAME);
- Utilities.createBackups(PLAYERTAGS_FILENAME);
- this.createCustomConfig();
- // Load services
- UUIDManager.load();
- AdminList.load();
- PermbanList.load();
- PlayerList.load();
- BanManager.load();
- Announcer.load();
- ProtectedArea.load();
- DiscordBridge.load();
+ Log.info("Made by Madgeek1450 and Prozza");
+ Log.info("Compiled " + buildDate + " by " + buildCreator);
- // Start SuperAdmin service
- server.getServicesManager().register(Function.class, AdminList.SUPERADMIN_SERVICE, plugin, ServicePriority.Normal);
+ final Utilities.MethodTimer timer = new Utilities.MethodTimer();
+ timer.start();
- final PluginManager pm = server.getPluginManager();
- pm.registerEvents(new EntityListener(), plugin);
- pm.registerEvents(new BlockListener(), plugin);
- pm.registerEvents(new PlayerListener(), plugin);
- pm.registerEvents(new WeatherListener(), plugin);
- pm.registerEvents(new ServerListener(), plugin);
+ if (!Server.COMPILE_NMS_VERSION.equals(Utilities.getNmsVersion())) {
+ Log.warning(pluginName + " is compiled for " + Server.COMPILE_NMS_VERSION
+ + " but the server is running "
+ + "version " + Utilities.getNmsVersion() + "!");
+ Log.warning("This might result in unexpected behaviour!");
+ }
- // Bridge
- pm.registerEvents(new BukkitTelnetBridge(), plugin);
- pm.registerEvents(new WorldEditListener(), plugin);
+ Utilities.deleteCoreDumps();
+ Utilities.deleteFolder(new File("./_deleteme"));
- try {
- FlatlandsWorld.getInstance().getWorld();
- } catch (Exception ex) {
- Log.warning("Could not load world: Flatlands");
- }
+ // Create backups
+ Utilities.createBackups(CONFIG_FILENAME, true);
+ Utilities.createBackups(SUPERADMIN_FILENAME);
+ Utilities.createBackups(PERMBAN_FILENAME);
+ Utilities.createBackups(PLAYERTAGS_FILENAME);
+ this.createCustomConfig();
+ // Load services
+ UUIDManager.load();
+ AdminList.load();
+ PermbanList.load();
+ PlayerList.load();
+ BanManager.load();
+ Announcer.load();
+ ProtectedArea.load();
+ DiscordBridge.load();
- try {
- AdminWorld.getInstance().getWorld();
- }
- catch (Exception ex)
- {
- Log.warning("Could not load world: AdminWorld");
- }
+ // Start SuperAdmin service
+ server.getServicesManager()
+ .register(Function.class, AdminList.SUPERADMIN_SERVICE, plugin, ServicePriority.Normal);
- // Initialize game rules
- GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.DO_DAYLIGHT_CYCLE, !ConfigurationEntry.DISABLE_NIGHT.getBoolean(), false);
- GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.DO_FIRE_TICK, ConfigurationEntry.ALLOW_FIRE_SPREAD.getBoolean(), false);
- GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.DO_MOB_LOOT, false, false);
- GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.DO_MOB_SPAWNING, !ConfigurationEntry.MOB_LIMITER_ENABLED.getBoolean(), false);
- GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.DO_TILE_DROPS, false, false);
- GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.MOB_GRIEFING, false, false);
- GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.NATURAL_REGENERATION, true, false);
- GameRuleHandler.commitGameRules();
+ final PluginManager pm = server.getPluginManager();
+ pm.registerEvents(new EntityListener(), plugin);
+ pm.registerEvents(new BlockListener(), plugin);
+ pm.registerEvents(new PlayerListener(), plugin);
+ pm.registerEvents(new WeatherListener(), plugin);
+ pm.registerEvents(new ServerListener(), plugin);
- // Disable weather
- if (ConfigurationEntry.DISABLE_WEATHER.getBoolean())
- {
- for (World world : server.getWorlds())
- {
- world.setThundering(false);
- world.setStorm(false);
- world.setThunderDuration(0);
- world.setWeatherDuration(0);
- }
- }
+ // Bridge
+ pm.registerEvents(new BukkitTelnetBridge(), plugin);
+ pm.registerEvents(new WorldEditListener(), plugin);
- // Heartbeat
- new HeartBeat(plugin).runTaskTimer(plugin, HEARTBEAT_RATE * 20L, HEARTBEAT_RATE * 20L);
+ try {
+ FlatlandsWorld.getInstance().getWorld();
+ } catch (Exception ex) {
+ Log.warning("Could not load world: Flatlands");
+ }
- Commands.registerCommands(this);
+ try {
+ AdminWorld.getInstance().getWorld();
+ } catch (Exception ex) {
+ Log.warning("Could not load world: AdminWorld");
+ }
- // Start services
- HTTPDManager.start();
+ // Initialize game rules
+ GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.DO_DAYLIGHT_CYCLE,
+ !ConfigurationEntry.DISABLE_NIGHT.getBoolean(), false);
+ GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.DO_FIRE_TICK,
+ ConfigurationEntry.ALLOW_FIRE_SPREAD.getBoolean(), false);
+ GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.DO_MOB_LOOT, false, false);
+ GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.DO_MOB_SPAWNING,
+ !ConfigurationEntry.MOB_LIMITER_ENABLED.getBoolean(), false);
+ GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.DO_TILE_DROPS, false, false);
+ GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.MOB_GRIEFING, false, false);
+ GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.NATURAL_REGENERATION, true, false);
+ GameRuleHandler.commitGameRules();
- timer.update();
+ // Disable weather
+ if (ConfigurationEntry.DISABLE_WEATHER.getBoolean()) {
+ for (World world : server.getWorlds()) {
+ world.setThundering(false);
+ world.setStorm(false);
+ world.setThunderDuration(0);
+ world.setWeatherDuration(0);
+ }
+ }
- Log.info("Version " + pluginVersion + " for " + Server.COMPILE_NMS_VERSION + " enabled in " + timer.getTotal() + "ms");
+ // Heartbeat
+ new HeartBeat(plugin).runTaskTimer(plugin, HEARTBEAT_RATE * 20L, HEARTBEAT_RATE * 20L);
- // Metrics @ http://mcstats.org/plugin/TotalFreedomMod
- // No longer exist!
+ Commands.registerCommands(this);
+
+ // Start services
+ HTTPDManager.start();
+
+ timer.update();
+
+ Log.info("Version " + pluginVersion + " for " + Server.COMPILE_NMS_VERSION + " enabled in "
+ + timer.getTotal() + "ms");
+
+ // Metrics @ http://mcstats.org/plugin/TotalFreedomMod
+ // No longer exist!
/*try
{
final Metrics metrics = new Metrics(plugin);
@@ -195,72 +220,46 @@ public class TotalFreedomMod extends JavaPlugin {
Log.warning("Failed to submit metrics data: " + ex.getMessage());
}*/
- new BukkitRunnable()
- {
- @Override
- public void run()
- {
- CommandBlocker.load();
+ new BukkitRunnable() {
+ @Override
+ public void run() {
+ CommandBlocker.load();
- // Add spawnpoints later - https://github.com/TotalFreedom/TotalFreedomMod/issues/438
- ProtectedArea.autoAddSpawnpoints();
- }
- }.runTaskLater(plugin, 20L);
- }
+ // Add spawnpoints later - https://github.com/TotalFreedom/TotalFreedomMod/issues/438
+ ProtectedArea.autoAddSpawnpoints();
+ }
+ }.runTaskLater(plugin, 20L);
+ }
- @Override
- public void onDisable()
- {
- HTTPDManager.stop();
- BanManager.save();
- UUIDManager.close();
- DiscordBridge.stop();
+ @Override
+ public void onDisable() {
+ HTTPDManager.stop();
+ BanManager.save();
+ UUIDManager.close();
+ DiscordBridge.stop();
- server.getScheduler().cancelTasks(plugin);
+ server.getScheduler().cancelTasks(plugin);
- Log.info("Plugin disabled");
- }
+ Log.info("Plugin disabled");
+ }
- public FileConfiguration getCustomConfig() {
- return this.customConfig;
- }
- //CustomConfig implementation by Eva
- private void createCustomConfig() {
- File customConfigFile = new File(getDataFolder(), "playerTags.yml");
- if (!customConfigFile.exists()) {
- customConfigFile.getParentFile().mkdirs();
- saveResource("playerTags.yml", false);
- }
+ public FileConfiguration getCustomConfig() {
+ return this.customConfig;
+ }
- customConfig= new YamlConfiguration();
- try {
- customConfig.load(customConfigFile);
- } catch (IOException | InvalidConfigurationException e) {
- e.printStackTrace();
- }
- }
+ //CustomConfig implementation by Eva
+ private void createCustomConfig() {
+ File customConfigFile = new File(getDataFolder(), "playerTags.yml");
+ if (!customConfigFile.exists()) {
+ customConfigFile.getParentFile().mkdirs();
+ saveResource("playerTags.yml", false);
+ }
- private static void setAppProperties()
- {
- try
- {
- //final InputStream in = plugin.getResource("appinfo.properties");
- Properties props = new Properties();
-
- // in = plugin.getClass().getResourceAsStream("/appinfo.properties");
- //props.load(in);
- //in.close();
-
- //TotalFreedomMod.buildNumber = props.getProperty("program.buildnumber");
- //TotalFreedomMod.buildDate = props.getProperty("program.builddate");
- //TotalFreedomMod.buildCreator = props.getProperty("program.buildcreator");
- TotalFreedomMod.buildNumber = "1337";
- TotalFreedomMod.buildCreator = "You!";
- }
- catch (Exception ex)
- {
- Log.severe("Could not load App properties!");
- Log.severe(ex);
- }
- }
+ customConfig = new YamlConfiguration();
+ try {
+ customConfig.load(customConfigFile);
+ } catch (IOException | InvalidConfigurationException e) {
+ e.printStackTrace();
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/admin/Admin.java b/src/main/java/me/StevenLawson/TotalFreedomMod/admin/Admin.java
index df19de9..8e1d702 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/admin/Admin.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/admin/Admin.java
@@ -1,168 +1,152 @@
package me.StevenLawson.TotalFreedomMod.admin;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+import java.util.UUID;
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
import me.StevenLawson.TotalFreedomMod.config.MainConfig;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import org.apache.commons.lang3.StringUtils;
import org.bukkit.configuration.ConfigurationSection;
-import java.util.*;
+public class Admin {
-public class Admin
-{
- private final UUID uuid;
- private String lastLoginName;
- private String loginMessage;
- private final boolean isSeniorAdmin;
- private final boolean isTelnetAdmin;
- private final List consoleAliases;
- private final List ips;
- private Date lastLogin;
- private boolean isActivated;
+ private final UUID uuid;
+ private final boolean isSeniorAdmin;
+ private final boolean isTelnetAdmin;
+ private final List consoleAliases;
+ private final List ips;
+ private String lastLoginName;
+ private String loginMessage;
+ private Date lastLogin;
+ private boolean isActivated;
- public Admin(UUID uuid, String lastLoginName, Date lastLogin, String loginMessage, boolean isTelnetAdmin, boolean isSeniorAdmin, boolean isActivated)
- {
- this.uuid = uuid;
- this.lastLoginName = lastLoginName;
- this.ips = new ArrayList();
- this.lastLogin = lastLogin;
- this.loginMessage = loginMessage;
- this.isTelnetAdmin = isTelnetAdmin;
- this.isSeniorAdmin = isSeniorAdmin;
- this.consoleAliases = new ArrayList();
- this.isActivated = isActivated;
- }
+ public Admin(UUID uuid, String lastLoginName, Date lastLogin, String loginMessage,
+ boolean isTelnetAdmin, boolean isSeniorAdmin, boolean isActivated) {
+ this.uuid = uuid;
+ this.lastLoginName = lastLoginName;
+ this.ips = new ArrayList();
+ this.lastLogin = lastLogin;
+ this.loginMessage = loginMessage;
+ this.isTelnetAdmin = isTelnetAdmin;
+ this.isSeniorAdmin = isSeniorAdmin;
+ this.consoleAliases = new ArrayList();
+ this.isActivated = isActivated;
+ }
- public Admin(UUID uuid, ConfigurationSection section)
- {
- this.uuid = uuid;
- this.lastLoginName = section.getString("last_login_name");
- this.ips = section.getStringList("ips");
- this.lastLogin = Utilities.stringToDate(section.getString("last_login", Utilities.dateToString(new Date(0L))));
- this.loginMessage = section.getString("custom_login_message", "");
- this.isSeniorAdmin = section.getBoolean("is_senior_admin", false);
- this.isTelnetAdmin = section.getBoolean("is_telnet_admin", false);
- this.consoleAliases = section.getStringList("console_aliases");
- this.isActivated = section.getBoolean("is_activated", true);
+ public Admin(UUID uuid, ConfigurationSection section) {
+ this.uuid = uuid;
+ this.lastLoginName = section.getString("last_login_name");
+ this.ips = section.getStringList("ips");
+ this.lastLogin = Utilities.stringToDate(
+ section.getString("last_login", Utilities.dateToString(new Date(0L))));
+ this.loginMessage = section.getString("custom_login_message", "");
+ this.isSeniorAdmin = section.getBoolean("is_senior_admin", false);
+ this.isTelnetAdmin = section.getBoolean("is_telnet_admin", false);
+ this.consoleAliases = section.getStringList("console_aliases");
+ this.isActivated = section.getBoolean("is_activated", true);
- for (Iterator> it = MainConfig.getList(ConfigurationEntry.NOADMIN_IPS).iterator(); it.hasNext();)
- {
- ips.remove((String) it.next());
- }
- }
+ for (Iterator> it = MainConfig.getList(ConfigurationEntry.NOADMIN_IPS).iterator();
+ it.hasNext(); ) {
+ ips.remove((String) it.next());
+ }
+ }
- @Override
- public String toString()
- {
- final StringBuilder output = new StringBuilder();
- final ArrayList fuzziedIps = new ArrayList<>();
+ @Override
+ public String toString() {
+ final StringBuilder output = new StringBuilder();
+ final ArrayList fuzziedIps = new ArrayList<>();
- for (String ip : ips)
- {
- fuzziedIps.add(Utilities.getFuzzyIp(ip));
- }
+ for (String ip : ips) {
+ fuzziedIps.add(Utilities.getFuzzyIp(ip));
+ }
- output.append("UUID: ").append(uuid.toString()).append("\n");
- output.append("- Last Login Name: ").append(lastLoginName).append("\n");
- output.append("- IPs: ").append(StringUtils.join(fuzziedIps, ", ")).append("\n");
- output.append("- Last Login: ").append(Utilities.dateToString(lastLogin)).append("\n");
- output.append("- Custom Login Message: ").append(loginMessage).append("\n");
- output.append("- Is Senior Admin: ").append(isSeniorAdmin).append("\n");
- output.append("- Is Telnet Admin: ").append(isTelnetAdmin).append("\n");
- output.append("- Console Aliases: ").append(StringUtils.join(consoleAliases, ", ")).append("\n");
- output.append("- Is Activated: ").append(isActivated);
+ output.append("UUID: ").append(uuid.toString()).append("\n");
+ output.append("- Last Login Name: ").append(lastLoginName).append("\n");
+ output.append("- IPs: ").append(StringUtils.join(fuzziedIps, ", ")).append("\n");
+ output.append("- Last Login: ").append(Utilities.dateToString(lastLogin)).append("\n");
+ output.append("- Custom Login Message: ").append(loginMessage).append("\n");
+ output.append("- Is Senior Admin: ").append(isSeniorAdmin).append("\n");
+ output.append("- Is Telnet Admin: ").append(isTelnetAdmin).append("\n");
+ output.append("- Console Aliases: ").append(StringUtils.join(consoleAliases, ", "))
+ .append("\n");
+ output.append("- Is Activated: ").append(isActivated);
- return output.toString();
- }
+ return output.toString();
+ }
- public UUID getUniqueId()
- {
- return uuid;
- }
+ public UUID getUniqueId() {
+ return uuid;
+ }
- public void setLastLoginName(String lastLoginName)
- {
- this.lastLoginName = lastLoginName;
- }
+ public String getLastLoginName() {
+ return lastLoginName;
+ }
- public String getLastLoginName()
- {
- return lastLoginName;
- }
+ public void setLastLoginName(String lastLoginName) {
+ this.lastLoginName = lastLoginName;
+ }
- public List getIps()
- {
- return Collections.unmodifiableList(ips);
- }
+ public List getIps() {
+ return Collections.unmodifiableList(ips);
+ }
- public void addIp(String ip)
- {
- if (!ips.contains(ip))
- {
- ips.add(ip);
- }
- }
+ public void addIp(String ip) {
+ if (!ips.contains(ip)) {
+ ips.add(ip);
+ }
+ }
- public void addIps(List ips)
- {
- for (String ip : ips)
- {
- addIp(ip);
- }
- }
+ public void addIps(List ips) {
+ for (String ip : ips) {
+ addIp(ip);
+ }
+ }
- public void removeIp(String ip)
- {
- ips.remove(ip);
- }
+ public void removeIp(String ip) {
+ ips.remove(ip);
+ }
- public void clearIPs()
- {
- ips.clear();
- }
+ public void clearIPs() {
+ ips.clear();
+ }
- public void setCustomLoginMessage(String newLoginMessage)
- {
- this.loginMessage = newLoginMessage;
- }
+ public Date getLastLogin() {
+ return lastLogin;
+ }
- public Date getLastLogin()
- {
- return lastLogin;
- }
+ public void setLastLogin(Date lastLogin) {
+ this.lastLogin = lastLogin;
+ }
- public String getCustomLoginMessage()
- {
- return loginMessage;
- }
-
- public boolean isSeniorAdmin()
- {
- return isSeniorAdmin;
- }
+ public String getCustomLoginMessage() {
+ return loginMessage;
+ }
- public boolean isTelnetAdmin()
- {
- return isTelnetAdmin;
- }
+ public void setCustomLoginMessage(String newLoginMessage) {
+ this.loginMessage = newLoginMessage;
+ }
- public List getConsoleAliases()
- {
- return Collections.unmodifiableList(consoleAliases);
- }
+ public boolean isSeniorAdmin() {
+ return isSeniorAdmin;
+ }
- public void setLastLogin(Date lastLogin)
- {
- this.lastLogin = lastLogin;
- }
+ public boolean isTelnetAdmin() {
+ return isTelnetAdmin;
+ }
- public boolean isActivated()
- {
- return isActivated;
- }
+ public List getConsoleAliases() {
+ return Collections.unmodifiableList(consoleAliases);
+ }
- public void setActivated(boolean isActivated)
- {
- this.isActivated = isActivated;
- }
+ public boolean isActivated() {
+ return isActivated;
+ }
+
+ public void setActivated(boolean isActivated) {
+ this.isActivated = isActivated;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/announcer/Announcer.java b/src/main/java/me/StevenLawson/TotalFreedomMod/announcer/Announcer.java
index b948c19..a8b74ce 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/announcer/Announcer.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/announcer/Announcer.java
@@ -1,115 +1,95 @@
package me.StevenLawson.TotalFreedomMod.announcer;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import org.bukkit.scheduler.BukkitRunnable;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
+public class Announcer {
-public class Announcer
-{
- private static final List ANNOUNCEMENTS = new ArrayList();
- private static boolean enabled;
- private static long interval;
- private static String prefix;
- private static BukkitRunnable announcer;
+ private static final List ANNOUNCEMENTS = new ArrayList();
+ private static boolean enabled;
+ private static long interval;
+ private static String prefix;
+ private static BukkitRunnable announcer;
- private Announcer()
- {
- throw new AssertionError();
- }
+ private Announcer() {
+ throw new AssertionError();
+ }
- public static boolean isEnabled()
- {
- return enabled;
- }
+ public static boolean isEnabled() {
+ return enabled;
+ }
- public static List getAnnouncements()
- {
- return Collections.unmodifiableList(ANNOUNCEMENTS);
- }
+ public static List getAnnouncements() {
+ return Collections.unmodifiableList(ANNOUNCEMENTS);
+ }
- public static long getTickInterval()
- {
- return interval;
- }
+ public static long getTickInterval() {
+ return interval;
+ }
- public static String getPrefix()
- {
- return prefix;
- }
+ public static String getPrefix() {
+ return prefix;
+ }
- public static void load()
- {
- stop();
+ public static void load() {
+ stop();
- ANNOUNCEMENTS.clear();
+ ANNOUNCEMENTS.clear();
- for (Object announcement : ConfigurationEntry.ANNOUNCER_ANNOUNCEMENTS.getList())
- {
- ANNOUNCEMENTS.add(Utilities.colorize((String) announcement));
- }
+ for (Object announcement : ConfigurationEntry.ANNOUNCER_ANNOUNCEMENTS.getList()) {
+ ANNOUNCEMENTS.add(Utilities.colorize((String) announcement));
+ }
- enabled = ConfigurationEntry.ANNOUNCER_ENABLED.getBoolean();
- interval = ConfigurationEntry.ANNOUNCER_INTERVAL.getInteger() * 20L;
- prefix = Utilities.colorize(ConfigurationEntry.ANNOUNCER_PREFIX.getString());
+ enabled = ConfigurationEntry.ANNOUNCER_ENABLED.getBoolean();
+ interval = ConfigurationEntry.ANNOUNCER_INTERVAL.getInteger() * 20L;
+ prefix = Utilities.colorize(ConfigurationEntry.ANNOUNCER_PREFIX.getString());
- if (enabled)
- {
- start();
- }
- }
+ if (enabled) {
+ start();
+ }
+ }
- public static boolean isStarted()
- {
- return announcer != null;
- }
+ public static boolean isStarted() {
+ return announcer != null;
+ }
- public static void start()
- {
- if (isStarted())
- {
- return;
- }
+ public static void start() {
+ if (isStarted()) {
+ return;
+ }
- announcer = new BukkitRunnable()
- {
- private int current = 0;
+ announcer = new BukkitRunnable() {
+ private int current = 0;
- @Override
- public void run()
- {
- current++;
+ @Override
+ public void run() {
+ current++;
- if (current >= ANNOUNCEMENTS.size())
- {
- current = 0;
- }
+ if (current >= ANNOUNCEMENTS.size()) {
+ current = 0;
+ }
- Utilities.bcastMsg(prefix + ANNOUNCEMENTS.get(current), false);
- }
- };
+ Utilities.bcastMsg(prefix + ANNOUNCEMENTS.get(current), false);
+ }
+ };
- announcer.runTaskTimer(TotalFreedomMod.plugin, interval, interval);
- }
+ announcer.runTaskTimer(TotalFreedomMod.plugin, interval, interval);
+ }
- public static void stop()
- {
- if (announcer == null)
- {
- return;
- }
+ public static void stop() {
+ if (announcer == null) {
+ return;
+ }
- try
- {
- announcer.cancel();
- }
- finally
- {
- announcer = null;
- }
- }
+ try {
+ announcer.cancel();
+ } finally {
+ announcer = null;
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/ban/Ban.java b/src/main/java/me/StevenLawson/TotalFreedomMod/ban/Ban.java
index 2f5b071..8f4ddee 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/ban/Ban.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/ban/Ban.java
@@ -1,206 +1,186 @@
package me.StevenLawson.TotalFreedomMod.ban;
-import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
-import me.StevenLawson.TotalFreedomMod.util.Utilities;
-import org.bukkit.ChatColor;
-
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
+import me.StevenLawson.TotalFreedomMod.util.Utilities;
+import org.bukkit.ChatColor;
-public class Ban
-{
- public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z");
- public static final Pattern IP_BAN_REGEX;
- public static final Pattern UUID_BAN_REGEX;
+public class Ban {
- static
- {
- // 192.168.1.254:LocalHost:Prozza:0:none
- // 127.0.*.*:TestUserName:BannedByNotch:123567:Test reason
- IP_BAN_REGEX = Pattern.compile(
- "^((?:(?:\\*|(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))\\.){3}(?:\\*|(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)))"
- + ":([\\w\\s]+)"
- + ":([\\w]+)"
- + ":(\\d+)"
- + ":([\\s\\S]+)$");
- // 245d2f30-61fb-4840-9cd3-298b3920f4a4:Cobrex:Prozza:0:Example reason
- UUID_BAN_REGEX = Pattern.compile(
- "^([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})"
- + ":([\\w\\s]+)"
- + ":([\\w]+)"
- + ":(\\d+)"
- + ":([\\s\\S]+)$");
- }
- private final BanType type;
- private final boolean complete;
- private String subject; // uuid or IP
- private String lastLoginName;
- private String by;
- private long expireUnix;
- private String reason;
+ public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat(
+ "yyyy-MM-dd 'at' HH:mm:ss z");
+ public static final Pattern IP_BAN_REGEX;
+ public static final Pattern UUID_BAN_REGEX;
- public Ban(String ip, String lastLoginName)
- {
- this(ip, lastLoginName, null, null, null);
- }
+ static {
+ // 192.168.1.254:LocalHost:Prozza:0:none
+ // 127.0.*.*:TestUserName:BannedByNotch:123567:Test reason
+ IP_BAN_REGEX = Pattern.compile(
+ "^((?:(?:\\*|(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))\\.){3}(?:\\*|(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)))"
+ + ":([\\w\\s]+)"
+ + ":([\\w]+)"
+ + ":(\\d+)"
+ + ":([\\s\\S]+)$");
+ // 245d2f30-61fb-4840-9cd3-298b3920f4a4:Cobrex:Prozza:0:Example reason
+ UUID_BAN_REGEX = Pattern.compile(
+ "^([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})"
+ + ":([\\w\\s]+)"
+ + ":([\\w]+)"
+ + ":(\\d+)"
+ + ":([\\s\\S]+)$");
+ }
- public Ban(String ip, String lastLoginName, String sender, Date expire, String reason)
- {
- this(ip, lastLoginName, sender, expire, reason, BanType.IP);
- }
+ private final BanType type;
+ private final boolean complete;
+ private String subject; // uuid or IP
+ private String lastLoginName;
+ private String by;
+ private long expireUnix;
+ private String reason;
- public Ban(UUID uuid, String lastLoginName)
- {
- this(uuid, lastLoginName, null, null, null);
- }
+ public Ban(String ip, String lastLoginName) {
+ this(ip, lastLoginName, null, null, null);
+ }
- public Ban(UUID uuid, String lastLoginName, String sender, Date expire, String reason)
- {
- this(uuid.toString(), lastLoginName, sender, expire, reason, BanType.UUID);
- }
+ public Ban(String ip, String lastLoginName, String sender, Date expire, String reason) {
+ this(ip, lastLoginName, sender, expire, reason, BanType.IP);
+ }
- private Ban(String subject, String lastLoginName, String sender, Date expire, String reason, BanType type)
- {
- this.type = type;
- this.subject = subject;
- this.lastLoginName = (lastLoginName == null ? "none" : lastLoginName);
- this.by = (sender == null ? "none" : sender);
- this.expireUnix = (expire == null ? 0 : Utilities.getUnixTime(expire));
- this.reason = (reason == null ? "none" : reason);
- complete = true;
- }
+ public Ban(UUID uuid, String lastLoginName) {
+ this(uuid, lastLoginName, null, null, null);
+ }
- public Ban(String banString, BanType type)
- {
- this.type = type;
+ public Ban(UUID uuid, String lastLoginName, String sender, Date expire, String reason) {
+ this(uuid.toString(), lastLoginName, sender, expire, reason, BanType.UUID);
+ }
- final Matcher matcher = (type == BanType.IP ? IP_BAN_REGEX.matcher(banString) : UUID_BAN_REGEX.matcher(banString));
+ private Ban(String subject, String lastLoginName, String sender, Date expire, String reason,
+ BanType type) {
+ this.type = type;
+ this.subject = subject;
+ this.lastLoginName = (lastLoginName == null ? "none" : lastLoginName);
+ this.by = (sender == null ? "none" : sender);
+ this.expireUnix = (expire == null ? 0 : Utilities.getUnixTime(expire));
+ this.reason = (reason == null ? "none" : reason);
+ complete = true;
+ }
- if (!matcher.find())
- {
- complete = false;
- return;
- }
+ public Ban(String banString, BanType type) {
+ this.type = type;
- subject = matcher.group(1);
- lastLoginName = matcher.group(2);
- by = matcher.group(3);
- expireUnix = Long.valueOf(matcher.group(4));
- reason = Utilities.colorize(matcher.group(5));
- complete = true;
- }
+ final Matcher matcher = (type == BanType.IP ? IP_BAN_REGEX.matcher(banString)
+ : UUID_BAN_REGEX.matcher(banString));
- public enum BanType
- {
- IP,
- UUID
- }
+ if (!matcher.find()) {
+ complete = false;
+ return;
+ }
- public BanType getType()
- {
- return type;
- }
+ subject = matcher.group(1);
+ lastLoginName = matcher.group(2);
+ by = matcher.group(3);
+ expireUnix = Long.valueOf(matcher.group(4));
+ reason = Utilities.colorize(matcher.group(5));
+ complete = true;
+ }
- public String getSubject()
- {
- return subject;
- }
+ public BanType getType() {
+ return type;
+ }
- public String getLastLoginName()
- {
- return lastLoginName;
- }
+ public String getSubject() {
+ return subject;
+ }
- public String getBannedBy()
- {
- return by;
- }
+ public String getLastLoginName() {
+ return lastLoginName;
+ }
- public long getExpireUnix()
- {
- return expireUnix;
- }
+ public String getBannedBy() {
+ return by;
+ }
- public String getReason()
- {
- return reason;
- }
+ public long getExpireUnix() {
+ return expireUnix;
+ }
- public boolean isExpired()
- {
- return expireUnix != 0 && expireUnix < Utilities.getUnixTime();
- }
+ public String getReason() {
+ return reason;
+ }
- public boolean isComplete()
- {
- return complete;
- }
+ public boolean isExpired() {
+ return expireUnix != 0 && expireUnix < Utilities.getUnixTime();
+ }
- public String getKickMessage()
- {
- final StringBuilder message = new StringBuilder("You");
+ public boolean isComplete() {
+ return complete;
+ }
- message.append(type == BanType.IP ? "r IP address is" : " are").append(" temporarily banned from this server.");
- message.append("\nAppeal at ").append(ChatColor.GOLD).append(ConfigurationEntry.SERVER_BAN_URL.getString());
+ public String getKickMessage() {
+ final StringBuilder message = new StringBuilder("You");
- if (!reason.equals("none"))
- {
- message.append("\nReason: ").append(reason);
- }
+ message.append(type == BanType.IP ? "r IP address is" : " are")
+ .append(" temporarily banned from this server.");
+ message.append("\nAppeal at ").append(ChatColor.GOLD)
+ .append(ConfigurationEntry.SERVER_BAN_URL.getString());
- if (getExpireUnix() != 0)
- {
- message.append("\nYour ban will be removed on ").append(DATE_FORMAT.format(Utilities.getUnixDate(expireUnix)));
- }
+ if (!reason.equals("none")) {
+ message.append("\nReason: ").append(reason);
+ }
- return message.toString();
- }
+ if (getExpireUnix() != 0) {
+ message.append("\nYour ban will be removed on ")
+ .append(DATE_FORMAT.format(Utilities.getUnixDate(expireUnix)));
+ }
- // subject:lastLoginName:bannedBy:expireUnix:reason
- @Override
- public String toString()
- {
- return subject + ":" + lastLoginName + ":" + by + ":" + expireUnix + ":" + Utilities.decolorize(reason);
- }
+ return message.toString();
+ }
- @Override
- public boolean equals(Object object)
- {
- if (object == null)
- {
- return false;
- }
+ // subject:lastLoginName:bannedBy:expireUnix:reason
+ @Override
+ public String toString() {
+ return subject + ":" + lastLoginName + ":" + by + ":" + expireUnix + ":"
+ + Utilities.decolorize(reason);
+ }
- if (!(object instanceof Ban))
- {
- return false;
- }
+ @Override
+ public boolean equals(Object object) {
+ if (object == null) {
+ return false;
+ }
- final Ban ban = (Ban) object;
+ if (!(object instanceof Ban)) {
+ return false;
+ }
- if (toString().equals(ban.toString()))
- {
- return true;
- }
+ final Ban ban = (Ban) object;
- if (getType() != ban.getType())
- {
- return false;
- }
+ if (toString().equals(ban.toString())) {
+ return true;
+ }
- return getSubject().equals(ban.getSubject());
- }
+ if (getType() != ban.getType()) {
+ return false;
+ }
- @Override
- public int hashCode()
- {
- final int prime = 37;
- int result = 1;
- result = prime * result + getType().hashCode();
- result = prime * result + getSubject().hashCode();
- return result;
- }
+ return getSubject().equals(ban.getSubject());
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 37;
+ int result = 1;
+ result = prime * result + getType().hashCode();
+ result = prime * result + getSubject().hashCode();
+ return result;
+ }
+
+ public enum BanType {
+ IP,
+ UUID
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/ban/BanManager.java b/src/main/java/me/StevenLawson/TotalFreedomMod/ban/BanManager.java
index 18a939e..735ebb9 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/ban/BanManager.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/ban/BanManager.java
@@ -1,5 +1,10 @@
package me.StevenLawson.TotalFreedomMod.ban;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.UUID;
import me.StevenLawson.TotalFreedomMod.Log;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import me.StevenLawson.TotalFreedomMod.ban.Ban.BanType;
@@ -10,290 +15,235 @@ import me.StevenLawson.TotalFreedomMod.manager.UUIDManager.TFM_UuidResolver;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import org.bukkit.entity.Player;
-import java.util.*;
+public class BanManager {
-public class BanManager
-{
- private static final List ipBans;
- private static final List uuidBans;
- private static final List unbannableUUIDs;
+ private static final List ipBans;
+ private static final List uuidBans;
+ private static final List unbannableUUIDs;
- static
- {
- ipBans = new ArrayList();
- uuidBans = new ArrayList();
- unbannableUUIDs = new ArrayList();
- }
+ static {
+ ipBans = new ArrayList();
+ uuidBans = new ArrayList();
+ unbannableUUIDs = new ArrayList();
+ }
- private BanManager()
- {
- throw new AssertionError();
- }
+ private BanManager() {
+ throw new AssertionError();
+ }
- public static void load()
- {
- ipBans.clear();
- uuidBans.clear();
- unbannableUUIDs.clear();
+ public static void load() {
+ ipBans.clear();
+ uuidBans.clear();
+ unbannableUUIDs.clear();
- final Configuration config = new Configuration(TotalFreedomMod.plugin, "bans.yml", true);
- config.load();
+ final Configuration config = new Configuration(TotalFreedomMod.plugin, "bans.yml", true);
+ config.load();
- for (String banString : config.getStringList("ips"))
- {
- try
- {
- addIpBan(new Ban(banString, BanType.IP));
- }
- catch (RuntimeException ex)
- {
- Log.warning("Could not load IP ban: " + banString);
- }
- }
+ for (String banString : config.getStringList("ips")) {
+ try {
+ addIpBan(new Ban(banString, BanType.IP));
+ } catch (RuntimeException ex) {
+ Log.warning("Could not load IP ban: " + banString);
+ }
+ }
- for (String banString : config.getStringList("uuids"))
- {
- try
- {
- addUuidBan(new Ban(banString, BanType.UUID));
- }
- catch (RuntimeException ex)
- {
- Log.warning("Could not load UUID ban: " + banString);
- }
- }
+ for (String banString : config.getStringList("uuids")) {
+ try {
+ addUuidBan(new Ban(banString, BanType.UUID));
+ } catch (RuntimeException ex) {
+ Log.warning("Could not load UUID ban: " + banString);
+ }
+ }
- // Save the config
- save();
- Log.info("Loaded " + ipBans.size() + " IP bans and " + uuidBans.size() + " UUID bans");
+ // Save the config
+ save();
+ Log.info("Loaded " + ipBans.size() + " IP bans and " + uuidBans.size() + " UUID bans");
- @SuppressWarnings("unchecked")
- final TFM_UuidResolver resolver = new TFM_UuidResolver((List) ConfigurationEntry.UNBANNABLE_USERNAMES.getList());
+ @SuppressWarnings("unchecked") final TFM_UuidResolver resolver = new TFM_UuidResolver(
+ (List) ConfigurationEntry.UNBANNABLE_USERNAMES.getList());
- for (UUID uuid : resolver.call().values())
- {
- unbannableUUIDs.add(uuid);
- }
+ for (UUID uuid : resolver.call().values()) {
+ unbannableUUIDs.add(uuid);
+ }
- Log.info("Loaded " + unbannableUUIDs.size() + " unbannable UUIDs");
- }
+ Log.info("Loaded " + unbannableUUIDs.size() + " unbannable UUIDs");
+ }
- public static void save()
- {
- final Configuration config = new Configuration(TotalFreedomMod.plugin, "bans.yml", true);
- config.load();
+ public static void save() {
+ final Configuration config = new Configuration(TotalFreedomMod.plugin, "bans.yml", true);
+ config.load();
- final List newIpBans = new ArrayList();
- final List newUuidBans = new ArrayList();
+ final List newIpBans = new ArrayList();
+ final List newUuidBans = new ArrayList();
- for (Ban savedBan : ipBans)
- {
- if (!savedBan.isExpired())
- {
- newIpBans.add(savedBan.toString());
- }
- }
+ for (Ban savedBan : ipBans) {
+ if (!savedBan.isExpired()) {
+ newIpBans.add(savedBan.toString());
+ }
+ }
- for (Ban savedBan : uuidBans)
- {
- if (!savedBan.isExpired() && !unbannableUUIDs.contains(UUID.fromString(savedBan.getSubject())))
- {
- newUuidBans.add(savedBan.toString());
- }
- }
+ for (Ban savedBan : uuidBans) {
+ if (!savedBan.isExpired() && !unbannableUUIDs.contains(
+ UUID.fromString(savedBan.getSubject()))) {
+ newUuidBans.add(savedBan.toString());
+ }
+ }
- config.set("ips", newIpBans);
- config.set("uuids", newUuidBans);
+ config.set("ips", newIpBans);
+ config.set("uuids", newUuidBans);
- // Save config
- config.save();
- }
+ // Save config
+ config.save();
+ }
- public static List getIpBanList()
- {
- return Collections.unmodifiableList(ipBans);
- }
+ public static List getIpBanList() {
+ return Collections.unmodifiableList(ipBans);
+ }
- public static List getUuidBanList()
- {
- return Collections.unmodifiableList(uuidBans);
- }
+ public static List getUuidBanList() {
+ return Collections.unmodifiableList(uuidBans);
+ }
- public static Ban getByIp(String ip)
- {
- for (Ban ban : ipBans)
- {
- if (ban.isExpired())
- {
- continue;
- }
+ public static Ban getByIp(String ip) {
+ for (Ban ban : ipBans) {
+ if (ban.isExpired()) {
+ continue;
+ }
- wildcardCheck:
- if (ban.getSubject().contains("*"))
- {
- final String[] subjectParts = ban.getSubject().split("\\.");
- final String[] ipParts = ip.split("\\.");
+ wildcardCheck:
+ if (ban.getSubject().contains("*")) {
+ final String[] subjectParts = ban.getSubject().split("\\.");
+ final String[] ipParts = ip.split("\\.");
- for (int i = 0; i < 4; i++)
- {
- if (!(subjectParts[i].equals("*") || subjectParts[i].equals(ipParts[i])))
- {
- break wildcardCheck;
- }
- }
+ for (int i = 0; i < 4; i++) {
+ if (!(subjectParts[i].equals("*") || subjectParts[i].equals(ipParts[i]))) {
+ break wildcardCheck;
+ }
+ }
- return ban;
- }
+ return ban;
+ }
- if (ban.getSubject().equals(ip))
- {
- return ban;
- }
- }
- return null;
- }
+ if (ban.getSubject().equals(ip)) {
+ return ban;
+ }
+ }
+ return null;
+ }
- public static Ban getByUuid(UUID uuid)
- {
- for (Ban ban : uuidBans)
- {
- if (ban.getSubject().equalsIgnoreCase(uuid.toString()))
- {
- if (ban.isExpired())
- {
- continue;
- }
+ public static Ban getByUuid(UUID uuid) {
+ for (Ban ban : uuidBans) {
+ if (ban.getSubject().equalsIgnoreCase(uuid.toString())) {
+ if (ban.isExpired()) {
+ continue;
+ }
- return ban;
- }
- }
- return null;
- }
+ return ban;
+ }
+ }
+ return null;
+ }
- public static void unbanIp(String ip)
- {
- final Ban ban = getByIp(ip);
+ public static void unbanIp(String ip) {
+ final Ban ban = getByIp(ip);
- if (ban == null)
- {
- return;
- }
+ if (ban == null) {
+ return;
+ }
- removeBan(ban);
- save();
- }
+ removeBan(ban);
+ save();
+ }
- public static void unbanUuid(UUID uuid)
- {
- final Ban ban = getByUuid(uuid);
+ public static void unbanUuid(UUID uuid) {
+ final Ban ban = getByUuid(uuid);
- if (ban == null)
- {
- return;
- }
+ if (ban == null) {
+ return;
+ }
- removeBan(ban);
- }
+ removeBan(ban);
+ }
- public static boolean isIpBanned(String ip)
- {
- return getByIp(ip) != null;
- }
+ public static boolean isIpBanned(String ip) {
+ return getByIp(ip) != null;
+ }
- public static boolean isUuidBanned(UUID uuid)
- {
- return getByUuid(uuid) != null;
- }
+ public static boolean isUuidBanned(UUID uuid) {
+ return getByUuid(uuid) != null;
+ }
- public static void addUuidBan(Player player)
- {
- addUuidBan(new Ban(UUIDManager.getUniqueId(player), player.getName()));
- }
+ public static void addUuidBan(Player player) {
+ addUuidBan(new Ban(UUIDManager.getUniqueId(player), player.getName()));
+ }
- public static void addUuidBan(Ban ban)
- {
- if (!ban.isComplete())
- {
- throw new RuntimeException("Could not add UUID ban, Invalid format!");
- }
+ public static void addUuidBan(Ban ban) {
+ if (!ban.isComplete()) {
+ throw new RuntimeException("Could not add UUID ban, Invalid format!");
+ }
- if (ban.isExpired())
- {
- return;
- }
+ if (ban.isExpired()) {
+ return;
+ }
- if (uuidBans.contains(ban))
- {
- return;
- }
+ if (uuidBans.contains(ban)) {
+ return;
+ }
- if (unbannableUUIDs.contains(UUID.fromString(ban.getSubject())))
- {
- return;
- }
+ if (unbannableUUIDs.contains(UUID.fromString(ban.getSubject()))) {
+ return;
+ }
- uuidBans.add(ban);
- save();
- }
+ uuidBans.add(ban);
+ save();
+ }
- public static void addIpBan(Player player)
- {
- addIpBan(new Ban(Utilities.getIp(player), player.getName()));
- }
+ public static void addIpBan(Player player) {
+ addIpBan(new Ban(Utilities.getIp(player), player.getName()));
+ }
- public static void addIpBan(Ban ban)
- {
- if (!ban.isComplete())
- {
- throw new RuntimeException("Could not add IP ban, Invalid format!");
- }
+ public static void addIpBan(Ban ban) {
+ if (!ban.isComplete()) {
+ throw new RuntimeException("Could not add IP ban, Invalid format!");
+ }
- if (ban.isExpired())
- {
- return;
- }
+ if (ban.isExpired()) {
+ return;
+ }
- if (ipBans.contains(ban))
- {
- return;
- }
+ if (ipBans.contains(ban)) {
+ return;
+ }
- ipBans.add(ban);
- save();
- }
+ ipBans.add(ban);
+ save();
+ }
- public static void removeBan(Ban ban)
- {
- final Iterator ips = ipBans.iterator();
- while (ips.hasNext())
- {
- if (ips.next().getSubject().equalsIgnoreCase(ban.getSubject()))
- {
- ips.remove();
- }
- }
+ public static void removeBan(Ban ban) {
+ final Iterator ips = ipBans.iterator();
+ while (ips.hasNext()) {
+ if (ips.next().getSubject().equalsIgnoreCase(ban.getSubject())) {
+ ips.remove();
+ }
+ }
- final Iterator uuids = uuidBans.iterator();
- while (uuids.hasNext())
- {
- if (uuids.next().getSubject().equalsIgnoreCase(ban.getSubject()))
- {
- uuids.remove();
- }
- }
+ final Iterator uuids = uuidBans.iterator();
+ while (uuids.hasNext()) {
+ if (uuids.next().getSubject().equalsIgnoreCase(ban.getSubject())) {
+ uuids.remove();
+ }
+ }
- save();
- }
+ save();
+ }
- public static void purgeIpBans()
- {
- ipBans.clear();
- save();
- }
+ public static void purgeIpBans() {
+ ipBans.clear();
+ save();
+ }
- public static void purgeUuidBans()
- {
- uuidBans.clear();
- save();
- }
+ public static void purgeUuidBans() {
+ uuidBans.clear();
+ save();
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/ban/PermbanList.java b/src/main/java/me/StevenLawson/TotalFreedomMod/ban/PermbanList.java
index b794bef..f27e5a1 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/ban/PermbanList.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/ban/PermbanList.java
@@ -1,63 +1,55 @@
package me.StevenLawson.TotalFreedomMod.ban;
-import me.StevenLawson.TotalFreedomMod.Log;
-import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
-import me.StevenLawson.TotalFreedomMod.config.Configuration;
-
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import me.StevenLawson.TotalFreedomMod.Log;
+import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
+import me.StevenLawson.TotalFreedomMod.config.Configuration;
-public class PermbanList
-{
+public class PermbanList {
- private static final List PERMBANNED_PLAYERS;
- private static final List PERMBANNED_IPS;
+ private static final List PERMBANNED_PLAYERS;
+ private static final List PERMBANNED_IPS;
- static
- {
- PERMBANNED_PLAYERS = new ArrayList();
- PERMBANNED_IPS = new ArrayList();
- }
+ static {
+ PERMBANNED_PLAYERS = new ArrayList();
+ PERMBANNED_IPS = new ArrayList();
+ }
- private PermbanList()
- {
- throw new AssertionError();
- }
+ private PermbanList() {
+ throw new AssertionError();
+ }
- public static List getPermbannedPlayers()
- {
- return Collections.unmodifiableList(PERMBANNED_PLAYERS);
- }
+ public static List getPermbannedPlayers() {
+ return Collections.unmodifiableList(PERMBANNED_PLAYERS);
+ }
- public static List getPermbannedIps()
- {
- return Collections.unmodifiableList(PERMBANNED_IPS);
- }
+ public static List getPermbannedIps() {
+ return Collections.unmodifiableList(PERMBANNED_IPS);
+ }
- public static void load()
- {
- PERMBANNED_PLAYERS.clear();
- PERMBANNED_IPS.clear();
+ public static void load() {
+ PERMBANNED_PLAYERS.clear();
+ PERMBANNED_IPS.clear();
- final Configuration config = new Configuration(TotalFreedomMod.plugin, TotalFreedomMod.PERMBAN_FILENAME, true);
- config.load();
+ final Configuration config = new Configuration(TotalFreedomMod.plugin,
+ TotalFreedomMod.PERMBAN_FILENAME, true);
+ config.load();
- for (String playername : config.getKeys(false))
- {
- PERMBANNED_PLAYERS.add(playername.toLowerCase().trim());
+ for (String playername : config.getKeys(false)) {
+ PERMBANNED_PLAYERS.add(playername.toLowerCase().trim());
- List playerIps = config.getStringList(playername);
- for (String ip : playerIps)
- {
- ip = ip.trim();
- if (!PERMBANNED_IPS.contains(ip))
- {
- PERMBANNED_IPS.add(ip);
- }
- }
- }
+ List playerIps = config.getStringList(playername);
+ for (String ip : playerIps) {
+ ip = ip.trim();
+ if (!PERMBANNED_IPS.contains(ip)) {
+ PERMBANNED_IPS.add(ip);
+ }
+ }
+ }
- Log.info("Loaded " + PERMBANNED_PLAYERS.size() + " permanently banned players and " + PERMBANNED_IPS.size() + " permanently banned IPs.");
- }
+ Log.info("Loaded " + PERMBANNED_PLAYERS.size() + " permanently banned players and "
+ + PERMBANNED_IPS.size() + " permanently banned IPs.");
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/bridge/EssentialsBridge.java b/src/main/java/me/StevenLawson/TotalFreedomMod/bridge/EssentialsBridge.java
index 5f2342a..6cfea73 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/bridge/EssentialsBridge.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/bridge/EssentialsBridge.java
@@ -8,116 +8,87 @@ import org.bukkit.Bukkit;
import org.bukkit.plugin.Plugin;
public class EssentialsBridge {
- private static Essentials essentialsPlugin = null;
- private EssentialsBridge() {
- throw new AssertionError();
- }
+ private static Essentials essentialsPlugin = null;
- public static Essentials getEssentialsPlugin() {
- if (essentialsPlugin == null)
- {
- try
- {
- final Plugin essentials = Bukkit.getServer().getPluginManager().getPlugin("Essentials");
- if (essentials != null)
- {
- if (essentials instanceof Essentials)
- {
- essentialsPlugin = (Essentials) essentials;
- }
- }
- }
- catch (Exception ex)
- {
- Log.severe(ex);
- }
- }
- return essentialsPlugin;
- }
+ private EssentialsBridge() {
+ throw new AssertionError();
+ }
- public static User getEssentialsUser(String username)
- {
- try
- {
- final Essentials essentials = getEssentialsPlugin();
- if (essentials != null)
- {
- return essentials.getUserMap().getUser(username);
- }
- }
- catch (Exception ex)
- {
- Log.severe(ex);
- }
- return null;
- }
+ public static Essentials getEssentialsPlugin() {
+ if (essentialsPlugin == null) {
+ try {
+ final Plugin essentials = Bukkit.getServer().getPluginManager()
+ .getPlugin("Essentials");
+ if (essentials != null) {
+ if (essentials instanceof Essentials) {
+ essentialsPlugin = (Essentials) essentials;
+ }
+ }
+ } catch (Exception ex) {
+ Log.severe(ex);
+ }
+ }
+ return essentialsPlugin;
+ }
- public static void setNickname(String username, String nickname)
- {
- try
- {
- final User user = getEssentialsUser(username);
- if (user != null)
- {
- user.setNickname(nickname);
- user.setDisplayNick();
- }
- }
- catch (Exception ex)
- {
- Log.severe(ex);
- }
- }
+ public static User getEssentialsUser(String username) {
+ try {
+ final Essentials essentials = getEssentialsPlugin();
+ if (essentials != null) {
+ return essentials.getUserMap().getUser(username);
+ }
+ } catch (Exception ex) {
+ Log.severe(ex);
+ }
+ return null;
+ }
- public static String getNickname(String username)
- {
- try
- {
- final User user = getEssentialsUser(username);
- if (user != null)
- {
- return user.getNickname();
- }
- }
- catch (Exception ex)
- {
- Log.severe(ex);
- }
- return null;
- }
+ public static void setNickname(String username, String nickname) {
+ try {
+ final User user = getEssentialsUser(username);
+ if (user != null) {
+ user.setNickname(nickname);
+ user.setDisplayNick();
+ }
+ } catch (Exception ex) {
+ Log.severe(ex);
+ }
+ }
- public static long getLastActivity(String username)
- {
- try
- {
- final User user = getEssentialsUser(username);
- if (user != null)
- {
- return Utilities.getField(user, "lastActivity"); // This is weird
- }
- }
- catch (Exception ex)
- {
- Log.severe(ex);
- }
- return 0L;
- }
+ public static String getNickname(String username) {
+ try {
+ final User user = getEssentialsUser(username);
+ if (user != null) {
+ return user.getNickname();
+ }
+ } catch (Exception ex) {
+ Log.severe(ex);
+ }
+ return null;
+ }
- public static boolean isEssentialsEnabled()
- {
- try
- {
- final Essentials essentials = getEssentialsPlugin();
- if (essentials != null)
- {
- return essentials.isEnabled();
- }
- }
- catch (Exception ex)
- {
- Log.severe(ex);
- }
- return false;
- }
+ public static long getLastActivity(String username) {
+ try {
+ final User user = getEssentialsUser(username);
+ if (user != null) {
+ return Utilities.getField(user, "lastActivity"); // This is weird
+ }
+ } catch (Exception ex) {
+ Log.severe(ex);
+ }
+ return 0L;
+ }
+
+ public static boolean isEssentialsEnabled() {
+ try {
+ final Essentials essentials = getEssentialsPlugin();
+ if (essentials != null) {
+ return essentials.isEnabled();
+ }
+ } catch (Exception ex) {
+ Log.severe(ex);
+ }
+ return false;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/bridge/WorldEditBridge.java b/src/main/java/me/StevenLawson/TotalFreedomMod/bridge/WorldEditBridge.java
index b55601a..503b0ef 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/bridge/WorldEditBridge.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/bridge/WorldEditBridge.java
@@ -9,104 +9,77 @@ import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
public class WorldEditBridge {
- private static WorldEditPlugin worldEditPlugin = null;
- private WorldEditBridge() {
- throw new AssertionError();
- }
+ private static WorldEditPlugin worldEditPlugin = null;
- private static WorldEditPlugin getWorldEditPlugin() {
- if (worldEditPlugin == null)
- {
- try
- {
- Plugin we = Bukkit.getServer().getPluginManager().getPlugin("WorldEdit");
- if (we != null)
- {
- if (we instanceof WorldEditPlugin)
- {
- worldEditPlugin = (WorldEditPlugin) we;
- }
- }
- }
- catch (Exception ex)
- {
- Log.severe(ex);
- }
- }
- return worldEditPlugin;
- }
+ private WorldEditBridge() {
+ throw new AssertionError();
+ }
- private static LocalSession getPlayerSession(Player player)
- {
- try
- {
- final WorldEditPlugin wep = getWorldEditPlugin();
- if (wep != null)
- {
- return wep.getSession(player);
- }
- }
- catch (Exception ex)
- {
- Log.severe(ex);
- }
- return null;
- }
+ private static WorldEditPlugin getWorldEditPlugin() {
+ if (worldEditPlugin == null) {
+ try {
+ Plugin we = Bukkit.getServer().getPluginManager().getPlugin("WorldEdit");
+ if (we != null) {
+ if (we instanceof WorldEditPlugin) {
+ worldEditPlugin = (WorldEditPlugin) we;
+ }
+ }
+ } catch (Exception ex) {
+ Log.severe(ex);
+ }
+ }
+ return worldEditPlugin;
+ }
- private static BukkitPlayer getBukkitPlayer(Player player)
- {
- try
- {
- final WorldEditPlugin wep = getWorldEditPlugin();
- if (wep != null)
- {
- return wep.wrapPlayer(player);
- }
- }
- catch (Exception ex)
- {
- Log.severe(ex);
- }
- return null;
- }
+ private static LocalSession getPlayerSession(Player player) {
+ try {
+ final WorldEditPlugin wep = getWorldEditPlugin();
+ if (wep != null) {
+ return wep.getSession(player);
+ }
+ } catch (Exception ex) {
+ Log.severe(ex);
+ }
+ return null;
+ }
- public static void undo(Player player, int count)
- {
- try
- {
- LocalSession session = getPlayerSession(player);
- if (session != null)
- {
- final BukkitPlayer bukkitPlayer = getBukkitPlayer(player);
- if (bukkitPlayer != null)
- {
- for (int i = 0; i < count; i++)
- {
- session.undo(session.getBlockBag(bukkitPlayer), bukkitPlayer);
- }
- }
- }
- }
- catch (Exception ex)
- {
- Log.severe(ex);
- }
- }
+ private static BukkitPlayer getBukkitPlayer(Player player) {
+ try {
+ final WorldEditPlugin wep = getWorldEditPlugin();
+ if (wep != null) {
+ return wep.wrapPlayer(player);
+ }
+ } catch (Exception ex) {
+ Log.severe(ex);
+ }
+ return null;
+ }
- public static void setLimit(Player player, int limit)
- {
- try
- {
- final LocalSession session = getPlayerSession(player);
- if (session != null)
- {
- session.setBlockChangeLimit(limit);
- }
- }
- catch (Exception ex)
- {
- Log.severe(ex);
- }
- }
+ public static void undo(Player player, int count) {
+ try {
+ LocalSession session = getPlayerSession(player);
+ if (session != null) {
+ final BukkitPlayer bukkitPlayer = getBukkitPlayer(player);
+ if (bukkitPlayer != null) {
+ for (int i = 0; i < count; i++) {
+ session.undo(session.getBlockBag(bukkitPlayer), bukkitPlayer);
+ }
+ }
+ }
+ } catch (Exception ex) {
+ Log.severe(ex);
+ }
+ }
+
+ public static void setLimit(Player player, int limit) {
+ try {
+ final LocalSession session = getPlayerSession(player);
+ if (session != null) {
+ session.setBlockChangeLimit(limit);
+ }
+ } catch (Exception ex) {
+ Log.severe(ex);
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/command/CommandBlocker.java b/src/main/java/me/StevenLawson/TotalFreedomMod/command/CommandBlocker.java
index 5b9cb34..8280250 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/command/CommandBlocker.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/command/CommandBlocker.java
@@ -1,5 +1,8 @@
package me.StevenLawson.TotalFreedomMod.command;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import me.StevenLawson.TotalFreedomMod.Log;
import me.StevenLawson.TotalFreedomMod.admin.AdminList;
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
@@ -12,311 +15,263 @@ import org.bukkit.command.CommandMap;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+public class CommandBlocker {
-public class CommandBlocker
-{
- private static final Map BLOCKED_COMMANDS;
+ private static final Map BLOCKED_COMMANDS;
- static
- {
- BLOCKED_COMMANDS = new HashMap();
- }
+ static {
+ BLOCKED_COMMANDS = new HashMap();
+ }
- private CommandBlocker()
- {
- throw new AssertionError();
- }
+ private CommandBlocker() {
+ throw new AssertionError();
+ }
- public static void load()
- {
- BLOCKED_COMMANDS.clear();
+ public static void load() {
+ BLOCKED_COMMANDS.clear();
- final CommandMap commandMap = Utilities.getField(Bukkit.getServer().getPluginManager(), "commandMap");
- if (commandMap == null)
- {
- Log.severe("Error loading commandMap.");
- return;
- }
+ final CommandMap commandMap = Utilities.getField(Bukkit.getServer().getPluginManager(),
+ "commandMap");
+ if (commandMap == null) {
+ Log.severe("Error loading commandMap.");
+ return;
+ }
- @SuppressWarnings("unchecked")
- List blockedCommands = (List) ConfigurationEntry.BLOCKED_COMMANDS.getList();
- for (String rawEntry : blockedCommands)
- {
- final String[] parts = rawEntry.split(":");
- if (parts.length < 3 || parts.length > 4)
- {
- Log.warning("Invalid command blocker entry: " + rawEntry);
- continue;
- }
+ @SuppressWarnings("unchecked")
+ List blockedCommands = (List) ConfigurationEntry.BLOCKED_COMMANDS.getList();
+ for (String rawEntry : blockedCommands) {
+ final String[] parts = rawEntry.split(":");
+ if (parts.length < 3 || parts.length > 4) {
+ Log.warning("Invalid command blocker entry: " + rawEntry);
+ continue;
+ }
- final CommandBlockerRank rank = CommandBlockerRank.fromToken(parts[0]);
- final CommandBlockerAction action = CommandBlockerAction.fromToken(parts[1]);
- String commandName = parts[2].toLowerCase().substring(1);
- final String message = (parts.length > 3 ? parts[3] : null);
+ final CommandBlockerRank rank = CommandBlockerRank.fromToken(parts[0]);
+ final CommandBlockerAction action = CommandBlockerAction.fromToken(parts[1]);
+ String commandName = parts[2].toLowerCase().substring(1);
+ final String message = (parts.length > 3 ? parts[3] : null);
- if (rank == null || action == null || commandName == null || commandName.isEmpty())
- {
- Log.warning("Invalid command blocker entry: " + rawEntry);
- continue;
- }
+ if (rank == null || action == null || commandName == null || commandName.isEmpty()) {
+ Log.warning("Invalid command blocker entry: " + rawEntry);
+ continue;
+ }
- final String[] commandParts = commandName.split(" ");
- String subCommand = null;
- if (commandParts.length > 1)
- {
- commandName = commandParts[0];
- subCommand = StringUtils.join(commandParts, " ", 1, commandParts.length).trim().toLowerCase();
- }
+ final String[] commandParts = commandName.split(" ");
+ String subCommand = null;
+ if (commandParts.length > 1) {
+ commandName = commandParts[0];
+ subCommand = StringUtils.join(commandParts, " ", 1, commandParts.length).trim()
+ .toLowerCase();
+ }
- final Command command = commandMap.getCommand(commandName);
+ final Command command = commandMap.getCommand(commandName);
- // Obtain command from alias
- if (command == null)
- {
- Log.info("Blocking unknown command: /" + commandName);
- }
- else
- {
- commandName = command.getName().toLowerCase();
- }
+ // Obtain command from alias
+ if (command == null) {
+ Log.info("Blocking unknown command: /" + commandName);
+ } else {
+ commandName = command.getName().toLowerCase();
+ }
- if (BLOCKED_COMMANDS.containsKey(commandName))
- {
- Log.warning("Not blocking: /" + commandName + " - Duplicate entry exists!");
- continue;
- }
+ if (BLOCKED_COMMANDS.containsKey(commandName)) {
+ Log.warning("Not blocking: /" + commandName + " - Duplicate entry exists!");
+ continue;
+ }
- final CommandBlockerEntry blockedCommandEntry = new CommandBlockerEntry(rank, action, commandName, subCommand, message);
- BLOCKED_COMMANDS.put(blockedCommandEntry.getCommand(), blockedCommandEntry);
+ final CommandBlockerEntry blockedCommandEntry = new CommandBlockerEntry(rank, action,
+ commandName, subCommand, message);
+ BLOCKED_COMMANDS.put(blockedCommandEntry.getCommand(), blockedCommandEntry);
- if (command != null)
- {
- for (String alias : command.getAliases())
- {
- BLOCKED_COMMANDS.put(alias.toLowerCase(), blockedCommandEntry);
- }
- }
- }
+ if (command != null) {
+ for (String alias : command.getAliases()) {
+ BLOCKED_COMMANDS.put(alias.toLowerCase(), blockedCommandEntry);
+ }
+ }
+ }
- Log.info("Loaded " + BLOCKED_COMMANDS.size() + " blocked commands");
- }
+ Log.info("Loaded " + BLOCKED_COMMANDS.size() + " blocked commands");
+ }
- public static boolean isCommandBlocked(String command, CommandSender sender)
- {
- return isCommandBlocked(command, sender, false);
- }
+ public static boolean isCommandBlocked(String command, CommandSender sender) {
+ return isCommandBlocked(command, sender, false);
+ }
- public static boolean isCommandBlocked(String command, CommandSender sender, boolean doAction)
- {
- if (command == null || command.isEmpty())
- {
- return false;
- }
+ public static boolean isCommandBlocked(String command, CommandSender sender, boolean doAction) {
+ if (command == null || command.isEmpty()) {
+ return false;
+ }
- command = command.toLowerCase().trim();
+ command = command.toLowerCase().trim();
- if (command.split(" ")[0].contains(":"))
- {
- Utilities.playerMsg(sender, "Plugin-specific commands are disabled.");
- return true;
- }
+ if (command.split(" ")[0].contains(":")) {
+ Utilities.playerMsg(sender, "Plugin-specific commands are disabled.");
+ return true;
+ }
- if (command.startsWith("/"))
- {
- command = command.substring(1);
- }
+ if (command.startsWith("/")) {
+ command = command.substring(1);
+ }
- final String[] commandParts = command.split(" ");
- String subCommand = null;
- if (commandParts.length > 1)
- {
- subCommand = StringUtils.join(commandParts, " ", 1, commandParts.length).toLowerCase();
- }
+ final String[] commandParts = command.split(" ");
+ String subCommand = null;
+ if (commandParts.length > 1) {
+ subCommand = StringUtils.join(commandParts, " ", 1, commandParts.length).toLowerCase();
+ }
- final CommandBlockerEntry entry = BLOCKED_COMMANDS.get(commandParts[0]);
+ final CommandBlockerEntry entry = BLOCKED_COMMANDS.get(commandParts[0]);
- if (entry == null)
- {
- return false;
- }
+ if (entry == null) {
+ return false;
+ }
- if (entry.getSubCommand() != null)
- {
- if (subCommand == null || !subCommand.startsWith(entry.getSubCommand()))
- {
- return false;
- }
- }
+ if (entry.getSubCommand() != null) {
+ if (subCommand == null || !subCommand.startsWith(entry.getSubCommand())) {
+ return false;
+ }
+ }
- if (entry.getRank().hasPermission(sender))
- {
- return false;
- }
+ if (entry.getRank().hasPermission(sender)) {
+ return false;
+ }
- if (doAction)
- {
- entry.doActions(sender);
- }
+ if (doAction) {
+ entry.doActions(sender);
+ }
- return true;
- }
+ return true;
+ }
- public enum CommandBlockerRank
- {
- ANYONE("a", 0),
- OP("o", 1),
- SUPER("s", 2),
- TELNET("t", 3),
- SENIOR("c", 4),
- NOBODY("n", 5);
- //
- private final String token;
- private final int level;
+ public enum CommandBlockerRank {
+ ANYONE("a", 0),
+ OP("o", 1),
+ SUPER("s", 2),
+ TELNET("t", 3),
+ SENIOR("c", 4),
+ NOBODY("n", 5);
+ //
+ private final String token;
+ private final int level;
- CommandBlockerRank(String token, int level)
- {
- this.token = token;
- this.level = level;
- }
+ CommandBlockerRank(String token, int level) {
+ this.token = token;
+ this.level = level;
+ }
- public String getToken()
- {
- return this.token;
- }
+ public static CommandBlockerRank fromSender(CommandSender sender) {
+ if (!(sender instanceof Player)) {
+ return TELNET;
+ }
- public boolean hasPermission(CommandSender sender)
- {
- return fromSender(sender).level >= this.level;
- }
+ if (AdminList.isSuperAdmin(sender)) {
+ if (AdminList.isSeniorAdmin(sender)) {
+ return SENIOR;
+ }
+ return SUPER;
+ }
- public static CommandBlockerRank fromSender(CommandSender sender)
- {
- if (!(sender instanceof Player))
- {
- return TELNET;
- }
+ if (sender.isOp()) {
+ return OP;
+ }
- if (AdminList.isSuperAdmin(sender))
- {
- if (AdminList.isSeniorAdmin(sender))
- {
- return SENIOR;
- }
- return SUPER;
- }
+ return ANYONE;
- if (sender.isOp())
- {
- return OP;
- }
+ }
- return ANYONE;
+ public static CommandBlockerRank fromToken(String token) {
+ for (CommandBlockerRank rank : CommandBlockerRank.values()) {
+ if (rank.getToken().equalsIgnoreCase(token)) {
+ return rank;
+ }
+ }
+ return ANYONE;
+ }
- }
+ public String getToken() {
+ return this.token;
+ }
- public static CommandBlockerRank fromToken(String token)
- {
- for (CommandBlockerRank rank : CommandBlockerRank.values())
- {
- if (rank.getToken().equalsIgnoreCase(token))
- {
- return rank;
- }
- }
- return ANYONE;
- }
- }
+ public boolean hasPermission(CommandSender sender) {
+ return fromSender(sender).level >= this.level;
+ }
+ }
- public enum CommandBlockerAction
- {
- BLOCK("b"),
- BLOCK_AND_EJECT("a"),
- BLOCK_UNKNOWN("u");
- private final String token;
+ public enum CommandBlockerAction {
+ BLOCK("b"),
+ BLOCK_AND_EJECT("a"),
+ BLOCK_UNKNOWN("u");
+ private final String token;
- CommandBlockerAction(String token)
- {
- this.token = token;
- }
+ CommandBlockerAction(String token) {
+ this.token = token;
+ }
- public String getToken()
- {
- return this.token;
- }
+ public static CommandBlockerAction fromToken(String token) {
+ for (CommandBlockerAction action : CommandBlockerAction.values()) {
+ if (action.getToken().equalsIgnoreCase(token)) {
+ return action;
+ }
+ }
+ return null;
+ }
- public static CommandBlockerAction fromToken(String token)
- {
- for (CommandBlockerAction action : CommandBlockerAction.values())
- {
- if (action.getToken().equalsIgnoreCase(token))
- {
- return action;
- }
- }
- return null;
- }
- }
+ public String getToken() {
+ return this.token;
+ }
+ }
- public static class CommandBlockerEntry
- {
- private final CommandBlockerRank rank;
- private final CommandBlockerAction action;
- private final String command;
- private final String subCommand;
- private final String message;
+ public static class CommandBlockerEntry {
- private CommandBlockerEntry(CommandBlockerRank rank, CommandBlockerAction action, String command, String message)
- {
- this(rank, action, command, null, message);
- }
+ private final CommandBlockerRank rank;
+ private final CommandBlockerAction action;
+ private final String command;
+ private final String subCommand;
+ private final String message;
- private CommandBlockerEntry(CommandBlockerRank rank, CommandBlockerAction action, String command, String subCommand, String message)
- {
- this.rank = rank;
- this.action = action;
- this.command = command;
- this.subCommand = (subCommand == null ? null : subCommand.toLowerCase().trim());
- this.message = (message == null || message.equals("_") ? "That command is blocked." : message);
- }
+ private CommandBlockerEntry(CommandBlockerRank rank, CommandBlockerAction action,
+ String command, String message) {
+ this(rank, action, command, null, message);
+ }
- public CommandBlockerAction getAction()
- {
- return this.action;
- }
+ private CommandBlockerEntry(CommandBlockerRank rank, CommandBlockerAction action,
+ String command, String subCommand, String message) {
+ this.rank = rank;
+ this.action = action;
+ this.command = command;
+ this.subCommand = (subCommand == null ? null : subCommand.toLowerCase().trim());
+ this.message = (message == null || message.equals("_") ? "That command is blocked."
+ : message);
+ }
- public String getCommand()
- {
- return this.command;
- }
+ public CommandBlockerAction getAction() {
+ return this.action;
+ }
- public String getSubCommand()
- {
- return this.subCommand;
- }
+ public String getCommand() {
+ return this.command;
+ }
- public String getMessage()
- {
- return this.message;
- }
+ public String getSubCommand() {
+ return this.subCommand;
+ }
- public CommandBlockerRank getRank()
- {
- return this.rank;
- }
+ public String getMessage() {
+ return this.message;
+ }
- private void doActions(CommandSender sender)
- {
- if (action == CommandBlockerAction.BLOCK_AND_EJECT && sender instanceof Player)
- {
- Utilities.autoEject((Player) sender, "You used a prohibited command: " + command);
- Utilities.bcastMsg(sender.getName() + " was automatically kicked for using harmful commands.", ChatColor.RED);
- return;
- }
+ public CommandBlockerRank getRank() {
+ return this.rank;
+ }
- Utilities.playerMsg(sender, Utilities.colorize(message));
- }
- }
+ private void doActions(CommandSender sender) {
+ if (action == CommandBlockerAction.BLOCK_AND_EJECT && sender instanceof Player) {
+ Utilities.autoEject((Player) sender, "You used a prohibited command: " + command);
+ Utilities.bcastMsg(
+ sender.getName() + " was automatically kicked for using harmful commands.",
+ ChatColor.RED);
+ return;
+ }
+
+ Utilities.playerMsg(sender, Utilities.colorize(message));
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/AdminLevel.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/AdminLevel.java
index 9dd980e..3c97a93 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/AdminLevel.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/AdminLevel.java
@@ -1,16 +1,16 @@
package me.StevenLawson.TotalFreedomMod.commands;
public enum AdminLevel {
- ALL("All Player Commands"), OP("OP Commands"), SUPER("SuperAdmin Commands"), SENIOR("Senior Admin Commands");
- //
- private final String friendlyName;
+ ALL("All Player Commands"), OP("OP Commands"), SUPER("SuperAdmin Commands"), SENIOR(
+ "Senior Admin Commands");
+ //
+ private final String friendlyName;
- AdminLevel(String friendlyName) {
- this.friendlyName = friendlyName;
- }
+ AdminLevel(String friendlyName) {
+ this.friendlyName = friendlyName;
+ }
- public String getFriendlyName()
- {
- return friendlyName;
- }
+ public String getFriendlyName() {
+ return friendlyName;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/CommandParameters.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/CommandParameters.java
index 3ce6cbf..6e2a7cf 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/CommandParameters.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/CommandParameters.java
@@ -2,9 +2,9 @@ package me.StevenLawson.TotalFreedomMod.commands;
// This is only here because of Command_tfm
-public @interface CommandParameters
-{
- String description();
+public @interface CommandParameters {
- String usage();
+ String description();
+
+ String usage();
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/CommandPermissions.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/CommandPermissions.java
index d62cd7b..3e8c54f 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/CommandPermissions.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/CommandPermissions.java
@@ -4,11 +4,11 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
-public @interface CommandPermissions
-{
- AdminLevel level();
+public @interface CommandPermissions {
- SourceType source();
+ AdminLevel level();
- boolean blockHostConsole() default false;
+ SourceType source();
+
+ boolean blockHostConsole() default false;
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_adminmode.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_adminmode.java
index 467322e..2c16737 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_adminmode.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_adminmode.java
@@ -9,31 +9,29 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH, blockHostConsole = true)
public class Command_adminmode extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length != 1) {
- return false;
- }
- if (args[0].equalsIgnoreCase("off")) {
- ConfigurationEntry.ADMIN_ONLY_MODE.setBoolean(false);
- Utilities.adminAction(sender.getName(), "Deactivating adminmode.", true);
- return true;
- }
- else if (args[0].equalsIgnoreCase("on"))
- {
- ConfigurationEntry.ADMIN_ONLY_MODE.setBoolean(true);
- Utilities.adminAction(sender.getName(), "Activating adminmode.", true);
- for (Player player : server.getOnlinePlayers())
- {
- if (!AdminList.isSuperAdmin(player))
- {
- player.kickPlayer("Server is now in adminmode.");
- }
- }
- return true;
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length != 1) {
+ return false;
+ }
- return false;
- }
+ if (args[0].equalsIgnoreCase("off")) {
+ ConfigurationEntry.ADMIN_ONLY_MODE.setBoolean(false);
+ Utilities.adminAction(sender.getName(), "Deactivating adminmode.", true);
+ return true;
+ } else if (args[0].equalsIgnoreCase("on")) {
+ ConfigurationEntry.ADMIN_ONLY_MODE.setBoolean(true);
+ Utilities.adminAction(sender.getName(), "Activating adminmode.", true);
+ for (Player player : server.getOnlinePlayers()) {
+ if (!AdminList.isSuperAdmin(player)) {
+ player.kickPlayer("Server is now in adminmode.");
+ }
+ }
+ return true;
+ }
+
+ return false;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_adminworld.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_adminworld.java
index 8a24564..8fd2dd1 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_adminworld.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_adminworld.java
@@ -10,213 +10,165 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
public class Command_adminworld extends FreedomCommand {
- private enum CommandMode {
- TELEPORT, GUEST, TIME, WEATHER
- }
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- CommandMode commandMode = null;
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ CommandMode commandMode = null;
- if (args.length == 0) {
- commandMode = CommandMode.TELEPORT;
- } else if (args.length >= 2) {
- if ("guest".equalsIgnoreCase(args[0]))
- {
- commandMode = CommandMode.GUEST;
- }
- else if ("time".equalsIgnoreCase(args[0]))
- {
- commandMode = CommandMode.TIME;
- }
- else if ("weather".equalsIgnoreCase(args[0]))
- {
- commandMode = CommandMode.WEATHER;
- }
- }
+ if (args.length == 0) {
+ commandMode = CommandMode.TELEPORT;
+ } else if (args.length >= 2) {
+ if ("guest".equalsIgnoreCase(args[0])) {
+ commandMode = CommandMode.GUEST;
+ } else if ("time".equalsIgnoreCase(args[0])) {
+ commandMode = CommandMode.TIME;
+ } else if ("weather".equalsIgnoreCase(args[0])) {
+ commandMode = CommandMode.WEATHER;
+ }
+ }
- if (commandMode == null)
- {
- return false;
- }
+ if (commandMode == null) {
+ return false;
+ }
- try
- {
- switch (commandMode)
- {
- case TELEPORT:
- {
- if (!(sender instanceof Player) || sender_p == null)
- {
- return true;
- }
+ try {
+ switch (commandMode) {
+ case TELEPORT: {
+ if (!(sender instanceof Player) || sender_p == null) {
+ return true;
+ }
- World adminWorld = null;
- try
- {
- adminWorld = AdminWorld.getInstance().getWorld();
- }
- catch (Exception ex)
- {
- }
+ World adminWorld = null;
+ try {
+ adminWorld = AdminWorld.getInstance().getWorld();
+ } catch (Exception ex) {
+ }
- if (adminWorld == null || sender_p.getWorld() == adminWorld)
- {
- playerMsg(sender, "Going to the main world.");
- sender_p.teleport(server.getWorlds().get(0).getSpawnLocation());
- }
- else
- {
- if (AdminWorld.getInstance().canAccessWorld(sender_p))
- {
- playerMsg(sender, "Going to the AdminWorld.");
- AdminWorld.getInstance().sendToWorld(sender_p);
- }
- else
- {
- playerMsg(sender, "You don't have permission to access the AdminWorld.");
- }
- }
+ if (adminWorld == null || sender_p.getWorld() == adminWorld) {
+ playerMsg(sender, "Going to the main world.");
+ sender_p.teleport(server.getWorlds().get(0).getSpawnLocation());
+ } else {
+ if (AdminWorld.getInstance().canAccessWorld(sender_p)) {
+ playerMsg(sender, "Going to the AdminWorld.");
+ AdminWorld.getInstance().sendToWorld(sender_p);
+ } else {
+ playerMsg(sender,
+ "You don't have permission to access the AdminWorld.");
+ }
+ }
- break;
- }
- case GUEST:
- {
- if (args.length == 2)
- {
- if ("list".equalsIgnoreCase(args[1]))
- {
- playerMsg(sender, "AdminWorld guest list: " + AdminWorld.getInstance().guestListToString());
- }
- else if ("purge".equalsIgnoreCase(args[1]))
- {
- assertCommandPerms(sender, sender_p);
- AdminWorld.getInstance().purgeGuestList();
- Utilities.adminAction(sender.getName(), "AdminWorld guest list purged.", false);
- }
- else
- {
- return false;
- }
- }
- else if (args.length == 3)
- {
- assertCommandPerms(sender, sender_p);
+ break;
+ }
+ case GUEST: {
+ if (args.length == 2) {
+ if ("list".equalsIgnoreCase(args[1])) {
+ playerMsg(sender, "AdminWorld guest list: " + AdminWorld.getInstance()
+ .guestListToString());
+ } else if ("purge".equalsIgnoreCase(args[1])) {
+ assertCommandPerms(sender, sender_p);
+ AdminWorld.getInstance().purgeGuestList();
+ Utilities.adminAction(sender.getName(), "AdminWorld guest list purged.",
+ false);
+ } else {
+ return false;
+ }
+ } else if (args.length == 3) {
+ assertCommandPerms(sender, sender_p);
- if ("add".equalsIgnoreCase(args[1]))
- {
- final Player player = getPlayer(args[2]);
+ if ("add".equalsIgnoreCase(args[1])) {
+ final Player player = getPlayer(args[2]);
- if (player == null)
- {
- sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
- return true;
- }
+ if (player == null) {
+ sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
+ return true;
+ }
- if (AdminWorld.getInstance().addGuest(player, sender_p))
- {
- Utilities.adminAction(sender.getName(), "AdminWorld guest added: " + player.getName(), false);
- }
- else
- {
- playerMsg(sender, "Could not add player to guest list.");
- }
- }
- else if ("remove".equals(args[1]))
- {
- final Player player = AdminWorld.getInstance().removeGuest(args[2]);
- if (player != null)
- {
- Utilities.adminAction(sender.getName(), "AdminWorld guest removed: " + player.getName(), false);
- }
- else
- {
- playerMsg(sender, "Can't find guest entry for: " + args[2]);
- }
- }
- else
- {
- return false;
- }
- }
+ if (AdminWorld.getInstance().addGuest(player, sender_p)) {
+ Utilities.adminAction(sender.getName(),
+ "AdminWorld guest added: " + player.getName(), false);
+ } else {
+ playerMsg(sender, "Could not add player to guest list.");
+ }
+ } else if ("remove".equals(args[1])) {
+ final Player player = AdminWorld.getInstance().removeGuest(args[2]);
+ if (player != null) {
+ Utilities.adminAction(sender.getName(),
+ "AdminWorld guest removed: " + player.getName(), false);
+ } else {
+ playerMsg(sender, "Can't find guest entry for: " + args[2]);
+ }
+ } else {
+ return false;
+ }
+ }
- break;
- }
- case TIME:
- {
- assertCommandPerms(sender, sender_p);
+ break;
+ }
+ case TIME: {
+ assertCommandPerms(sender, sender_p);
- if (args.length == 2)
- {
- AdminWorld.TimeOfDay timeOfDay = AdminWorld.TimeOfDay.getByAlias(args[1]);
- if (timeOfDay != null)
- {
- AdminWorld.getInstance().setTimeOfDay(timeOfDay);
- playerMsg(sender, "AdminWorld time set to: " + timeOfDay.name());
- }
- else
- {
- playerMsg(sender, "Invalid time of day. Can be: sunrise, noon, sunset, midnight");
- }
- }
- else
- {
- return false;
- }
+ if (args.length == 2) {
+ AdminWorld.TimeOfDay timeOfDay = AdminWorld.TimeOfDay.getByAlias(args[1]);
+ if (timeOfDay != null) {
+ AdminWorld.getInstance().setTimeOfDay(timeOfDay);
+ playerMsg(sender, "AdminWorld time set to: " + timeOfDay.name());
+ } else {
+ playerMsg(sender,
+ "Invalid time of day. Can be: sunrise, noon, sunset, midnight");
+ }
+ } else {
+ return false;
+ }
- break;
- }
- case WEATHER:
- {
- assertCommandPerms(sender, sender_p);
+ break;
+ }
+ case WEATHER: {
+ assertCommandPerms(sender, sender_p);
- if (args.length == 2)
- {
- AdminWorld.WeatherMode weatherMode = AdminWorld.WeatherMode.getByAlias(args[1]);
- if (weatherMode != null)
- {
- AdminWorld.getInstance().setWeatherMode(weatherMode);
- playerMsg(sender, "AdminWorld weather set to: " + weatherMode.name());
- }
- else
- {
- playerMsg(sender, "Invalid weather mode. Can be: off, rain, storm");
- }
- }
- else
- {
- return false;
- }
+ if (args.length == 2) {
+ AdminWorld.WeatherMode weatherMode = AdminWorld.WeatherMode.getByAlias(
+ args[1]);
+ if (weatherMode != null) {
+ AdminWorld.getInstance().setWeatherMode(weatherMode);
+ playerMsg(sender, "AdminWorld weather set to: " + weatherMode.name());
+ } else {
+ playerMsg(sender, "Invalid weather mode. Can be: off, rain, storm");
+ }
+ } else {
+ return false;
+ }
- break;
- }
- default:
- {
- return false;
- }
- }
- }
- catch (PermissionDeniedException ex)
- {
- sender.sendMessage(ex.getMessage());
- }
+ break;
+ }
+ default: {
+ return false;
+ }
+ }
+ } catch (PermissionDeniedException ex) {
+ sender.sendMessage(ex.getMessage());
+ }
- return true;
- }
+ return true;
+ }
- private void assertCommandPerms(CommandSender sender, org.bukkit.entity.Player sender_p) throws PermissionDeniedException {
- if (!(sender instanceof Player) || sender_p == null || !AdminList.isSuperAdmin(sender)) {
- throw new PermissionDeniedException(FreedomCommand.MSG_NO_PERMS);
- }
- }
+ private void assertCommandPerms(CommandSender sender, org.bukkit.entity.Player sender_p)
+ throws PermissionDeniedException {
+ if (!(sender instanceof Player) || sender_p == null || !AdminList.isSuperAdmin(sender)) {
+ throw new PermissionDeniedException(FreedomCommand.MSG_NO_PERMS);
+ }
+ }
- private class PermissionDeniedException extends Exception
- {
- private static final long serialVersionUID = 1L;
+ private enum CommandMode {
+ TELEPORT, GUEST, TIME, WEATHER
+ }
- private PermissionDeniedException(String string)
- {
- super(string);
- }
- }
+ private class PermissionDeniedException extends Exception {
+
+ private static final long serialVersionUID = 1L;
+
+ private PermissionDeniedException(String string) {
+ super(string);
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_blockcmd.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_blockcmd.java
index 3e796cc..983449b 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_blockcmd.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_blockcmd.java
@@ -9,49 +9,50 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_blockcmd extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length != 1) {
- return false;
- }
- if (args[0].equalsIgnoreCase("purge")) {
- Utilities.adminAction(sender.getName(), "Unblocking commands for all players", true);
- int counter = 0;
- for (Player player : server.getOnlinePlayers())
- {
- PlayerData playerdata = PlayerData.getPlayerData(player);
- if (playerdata.allCommandsBlocked())
- {
- counter += 1;
- playerdata.setCommandsBlocked(false);
- }
- }
- playerMsg(sender, "Unblocked commands for " + counter + " players.");
- return true;
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length != 1) {
+ return false;
+ }
- final Player player = getPlayer(args[0]);
+ if (args[0].equalsIgnoreCase("purge")) {
+ Utilities.adminAction(sender.getName(), "Unblocking commands for all players", true);
+ int counter = 0;
+ for (Player player : server.getOnlinePlayers()) {
+ PlayerData playerdata = PlayerData.getPlayerData(player);
+ if (playerdata.allCommandsBlocked()) {
+ counter += 1;
+ playerdata.setCommandsBlocked(false);
+ }
+ }
+ playerMsg(sender, "Unblocked commands for " + counter + " players.");
+ return true;
+ }
- if (player == null)
- {
- playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
- return true;
- }
+ final Player player = getPlayer(args[0]);
- if (AdminList.isSuperAdmin(player))
- {
- playerMsg(sender, player.getName() + " is a Superadmin, and cannot have their commands blocked.");
- return true;
- }
+ if (player == null) {
+ playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
+ return true;
+ }
- PlayerData playerdata = PlayerData.getPlayerData(player);
+ if (AdminList.isSuperAdmin(player)) {
+ playerMsg(sender,
+ player.getName() + " is a Superadmin, and cannot have their commands blocked.");
+ return true;
+ }
- playerdata.setCommandsBlocked(!playerdata.allCommandsBlocked());
+ PlayerData playerdata = PlayerData.getPlayerData(player);
- Utilities.adminAction(sender.getName(), (playerdata.allCommandsBlocked() ? "B" : "Unb") + "locking all commands for " + player.getName(), true);
- playerMsg(sender, (playerdata.allCommandsBlocked() ? "B" : "Unb") + "locked all commands.");
+ playerdata.setCommandsBlocked(!playerdata.allCommandsBlocked());
- return true;
- }
+ Utilities.adminAction(sender.getName(),
+ (playerdata.allCommandsBlocked() ? "B" : "Unb") + "locking all commands for "
+ + player.getName(), true);
+ playerMsg(sender, (playerdata.allCommandsBlocked() ? "B" : "Unb") + "locked all commands.");
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_cage.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_cage.java
index fac6ed2..f9283ef 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_cage.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_cage.java
@@ -11,106 +11,91 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_cage extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length == 0) {
- return false;
- }
- if ("off".equals(args[0]) && sender instanceof Player) {
- Utilities.adminAction(sender.getName(), "Uncaging " + sender.getName(), true);
- PlayerData playerdata = PlayerData.getPlayerData(sender_p);
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length == 0) {
+ return false;
+ }
- playerdata.setCaged(false);
- playerdata.regenerateHistory();
- playerdata.clearHistory();
+ if ("off".equals(args[0]) && sender instanceof Player) {
+ Utilities.adminAction(sender.getName(), "Uncaging " + sender.getName(), true);
+ PlayerData playerdata = PlayerData.getPlayerData(sender_p);
- return true;
- }
- else if ("purge".equals(args[0]))
- {
- Utilities.adminAction(sender.getName(), "Uncaging all players", true);
+ playerdata.setCaged(false);
+ playerdata.regenerateHistory();
+ playerdata.clearHistory();
- for (Player player : server.getOnlinePlayers())
- {
- PlayerData playerdata = PlayerData.getPlayerData(player);
- playerdata.setCaged(false);
- playerdata.regenerateHistory();
- playerdata.clearHistory();
- }
+ return true;
+ } else if ("purge".equals(args[0])) {
+ Utilities.adminAction(sender.getName(), "Uncaging all players", true);
- return true;
- }
+ for (Player player : server.getOnlinePlayers()) {
+ PlayerData playerdata = PlayerData.getPlayerData(player);
+ playerdata.setCaged(false);
+ playerdata.regenerateHistory();
+ playerdata.clearHistory();
+ }
- final Player player = getPlayer(args[0]);
+ return true;
+ }
- if (player == null)
- {
- sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
- return true;
- }
+ final Player player = getPlayer(args[0]);
- PlayerData playerdata = PlayerData.getPlayerData(player);
+ if (player == null) {
+ sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
+ return true;
+ }
- Material outerMaterial = Material.GLASS;
- Material innerMaterial = Material.AIR;
+ PlayerData playerdata = PlayerData.getPlayerData(player);
- if (args.length >= 2)
- {
- if ("off".equals(args[1]))
- {
- Utilities.adminAction(sender.getName(), "Uncaging " + player.getName(), true);
+ Material outerMaterial = Material.GLASS;
+ Material innerMaterial = Material.AIR;
- playerdata.setCaged(false);
- playerdata.regenerateHistory();
- playerdata.clearHistory();
+ if (args.length >= 2) {
+ if ("off".equals(args[1])) {
+ Utilities.adminAction(sender.getName(), "Uncaging " + player.getName(), true);
- return true;
- }
- else
- {
- if ("darth".equalsIgnoreCase(args[1]))
- {
- outerMaterial = Material.SKULL;
- }
- else if (Material.matchMaterial(args[1]) != null)
- {
- outerMaterial = Material.matchMaterial(args[1]);
- }
- }
- }
+ playerdata.setCaged(false);
+ playerdata.regenerateHistory();
+ playerdata.clearHistory();
- if (args.length >= 3)
- {
- if (args[2].equalsIgnoreCase("water"))
- {
- innerMaterial = Material.STATIONARY_WATER;
- }
- else if (args[2].equalsIgnoreCase("lava"))
- {
- innerMaterial = Material.STATIONARY_LAVA;
- }
- }
+ return true;
+ } else {
+ if ("darth".equalsIgnoreCase(args[1])) {
+ outerMaterial = Material.SKULL;
+ } else if (Material.matchMaterial(args[1]) != null) {
+ outerMaterial = Material.matchMaterial(args[1]);
+ }
+ }
+ }
- Location targetPos = player.getLocation().clone().add(0, 1, 0);
- playerdata.setCaged(true, targetPos, outerMaterial, innerMaterial);
- playerdata.regenerateHistory();
- playerdata.clearHistory();
- Utilities.buildHistory(targetPos, 2, playerdata);
- Utilities.generateHollowCube(targetPos, 2, outerMaterial);
- Utilities.generateCube(targetPos, 1, innerMaterial);
+ if (args.length >= 3) {
+ if (args[2].equalsIgnoreCase("water")) {
+ innerMaterial = Material.STATIONARY_WATER;
+ } else if (args[2].equalsIgnoreCase("lava")) {
+ innerMaterial = Material.STATIONARY_LAVA;
+ }
+ }
- player.setGameMode(GameMode.SURVIVAL);
+ Location targetPos = player.getLocation().clone().add(0, 1, 0);
+ playerdata.setCaged(true, targetPos, outerMaterial, innerMaterial);
+ playerdata.regenerateHistory();
+ playerdata.clearHistory();
+ Utilities.buildHistory(targetPos, 2, playerdata);
+ Utilities.generateHollowCube(targetPos, 2, outerMaterial);
+ Utilities.generateCube(targetPos, 1, innerMaterial);
- if (outerMaterial != Material.SKULL)
- {
- Utilities.adminAction(sender.getName(), "Caging " + player.getName(), true);
- }
- else
- {
- Utilities.adminAction(sender.getName(), "Caging " + player.getName() + " in PURE_DARTH", true);
- }
+ player.setGameMode(GameMode.SURVIVAL);
- return true;
- }
+ if (outerMaterial != Material.SKULL) {
+ Utilities.adminAction(sender.getName(), "Caging " + player.getName(), true);
+ } else {
+ Utilities.adminAction(sender.getName(), "Caging " + player.getName() + " in PURE_DARTH",
+ true);
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_cake.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_cake.java
index 0529093..db65073 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_cake.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_cake.java
@@ -1,5 +1,6 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.util.Random;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import org.bukkit.Achievement;
import org.bukkit.ChatColor;
@@ -10,40 +11,41 @@ import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
-import java.util.Random;
-
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_cake extends FreedomCommand {
- public static final String CAKE_LYRICS = "But there's no sense crying over every mistake. You just keep on trying till you run out of cake.";
- private final Random random = new Random();
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- final StringBuilder output = new StringBuilder();
+ public static final String CAKE_LYRICS = "But there's no sense crying over every mistake. You just keep on trying till you run out of cake.";
+ private final Random random = new Random();
- final String[] words = CAKE_LYRICS.split(" ");
- for (final String word : words) {
- output.append(ChatColor.COLOR_CHAR).append(Integer.toHexString(1 + random.nextInt(14))).append(word).append(" ");
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ final StringBuilder output = new StringBuilder();
- final ItemStack heldItem = new ItemStack(Material.CAKE);
- final ItemMeta heldItemMeta = heldItem.getItemMeta();
- heldItemMeta.setDisplayName((new StringBuilder()).append(ChatColor.WHITE).append("The ").append(ChatColor.DARK_GRAY).append("Lie").toString());
- heldItem.setItemMeta(heldItemMeta);
+ final String[] words = CAKE_LYRICS.split(" ");
+ for (final String word : words) {
+ output.append(ChatColor.COLOR_CHAR).append(Integer.toHexString(1 + random.nextInt(14)))
+ .append(word).append(" ");
+ }
- for (final Player player : server.getOnlinePlayers())
- {
- final int firstEmpty = player.getInventory().firstEmpty();
- if (firstEmpty >= 0)
- {
- player.getInventory().setItem(firstEmpty, heldItem);
- }
+ final ItemStack heldItem = new ItemStack(Material.CAKE);
+ final ItemMeta heldItemMeta = heldItem.getItemMeta();
+ heldItemMeta.setDisplayName(
+ (new StringBuilder()).append(ChatColor.WHITE).append("The ").append(ChatColor.DARK_GRAY)
+ .append("Lie").toString());
+ heldItem.setItemMeta(heldItemMeta);
- player.awardAchievement(Achievement.BAKE_CAKE);
- }
+ for (final Player player : server.getOnlinePlayers()) {
+ final int firstEmpty = player.getInventory().firstEmpty();
+ if (firstEmpty >= 0) {
+ player.getInventory().setItem(firstEmpty, heldItem);
+ }
- Utilities.bcastMsg(output.toString());
+ player.awardAchievement(Achievement.BAKE_CAKE);
+ }
- return true;
- }
+ Utilities.bcastMsg(output.toString());
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_cartsit.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_cartsit.java
index e3cccd6..1a52348 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_cartsit.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_cartsit.java
@@ -8,69 +8,58 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
public class Command_cartsit extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- Player targetPlayer = sender_p;
- if (args.length == 1) {
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ Player targetPlayer = sender_p;
- targetPlayer = getPlayer(args[0]);
+ if (args.length == 1) {
- if (targetPlayer == null) {
- sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
- return true;
- }
- }
+ targetPlayer = getPlayer(args[0]);
- if (senderIsConsole)
- {
- if (targetPlayer == null)
- {
- sender.sendMessage("When used from the console, you must define a target player: /cartsit ");
- return true;
- }
- }
- else if (targetPlayer != sender_p && !AdminList.isSuperAdmin(sender))
- {
- sender.sendMessage("Only superadmins can select another player as a /cartsit target.");
- return true;
- }
+ if (targetPlayer == null) {
+ sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
+ return true;
+ }
+ }
- if (targetPlayer.isInsideVehicle())
- {
- targetPlayer.getVehicle().eject();
- }
- else
- {
- Minecart nearest_cart = null;
- for (Minecart cart : targetPlayer.getWorld().getEntitiesByClass(Minecart.class))
- {
- if (cart.isEmpty())
- {
- if (nearest_cart == null)
- {
- nearest_cart = cart;
- }
- else
- {
- if (cart.getLocation().distanceSquared(targetPlayer.getLocation()) < nearest_cart.getLocation().distanceSquared(targetPlayer.getLocation()))
- {
- nearest_cart = cart;
- }
- }
- }
- }
+ if (senderIsConsole) {
+ if (targetPlayer == null) {
+ sender.sendMessage(
+ "When used from the console, you must define a target player: /cartsit ");
+ return true;
+ }
+ } else if (targetPlayer != sender_p && !AdminList.isSuperAdmin(sender)) {
+ sender.sendMessage("Only superadmins can select another player as a /cartsit target.");
+ return true;
+ }
- if (nearest_cart != null)
- {
- nearest_cart.setPassenger(targetPlayer);
- }
- else
- {
- sender.sendMessage("There are no empty minecarts in the target world.");
- }
- }
+ if (targetPlayer.isInsideVehicle()) {
+ targetPlayer.getVehicle().eject();
+ } else {
+ Minecart nearest_cart = null;
+ for (Minecart cart : targetPlayer.getWorld().getEntitiesByClass(Minecart.class)) {
+ if (cart.isEmpty()) {
+ if (nearest_cart == null) {
+ nearest_cart = cart;
+ } else {
+ if (cart.getLocation().distanceSquared(targetPlayer.getLocation())
+ < nearest_cart.getLocation()
+ .distanceSquared(targetPlayer.getLocation())) {
+ nearest_cart = cart;
+ }
+ }
+ }
+ }
- return true;
- }
+ if (nearest_cart != null) {
+ nearest_cart.setPassenger(targetPlayer);
+ } else {
+ sender.sendMessage("There are no empty minecarts in the target world.");
+ }
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_cbtool.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_cbtool.java
index 2f32d2a..8816446 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_cbtool.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_cbtool.java
@@ -1,5 +1,8 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import me.StevenLawson.TotalFreedomMod.Log;
import me.StevenLawson.TotalFreedomMod.command.CommandBlocker;
import me.StevenLawson.TotalFreedomMod.util.DeprecationUtil;
@@ -13,197 +16,159 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
public class Command_cbtool extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length < 1) {
- return false;
- }
- if ("targetblock".equalsIgnoreCase(args[0]) && sender instanceof Player) {
- Block targetBlock = DeprecationUtil.getTargetBlock(sender_p, null, 100);
- playerMsg(sender, "Your target block: " + targetBlock.getLocation().toString());
- return true;
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length < 1) {
+ return false;
+ }
- try
- {
- final StringBuffer generatedCommand = new StringBuffer();
+ if ("targetblock".equalsIgnoreCase(args[0]) && sender instanceof Player) {
+ Block targetBlock = DeprecationUtil.getTargetBlock(sender_p, null, 100);
+ playerMsg(sender, "Your target block: " + targetBlock.getLocation().toString());
+ return true;
+ }
- final Matcher matcher = Pattern.compile("\\[(.+?)\\]").matcher(StringUtils.join(args, " ").trim());
- while (matcher.find())
- {
- matcher.appendReplacement(generatedCommand, processSubCommand(matcher.group(1)));
- }
- matcher.appendTail(generatedCommand);
+ try {
+ final StringBuffer generatedCommand = new StringBuffer();
- if (CommandBlocker.isCommandBlocked(generatedCommand.toString(), sender, false))
- {
- return true;
- }
+ final Matcher matcher = Pattern.compile("\\[(.+?)\\]")
+ .matcher(StringUtils.join(args, " ").trim());
+ while (matcher.find()) {
+ matcher.appendReplacement(generatedCommand, processSubCommand(matcher.group(1)));
+ }
+ matcher.appendTail(generatedCommand);
- server.dispatchCommand(sender, generatedCommand.toString());
- }
- catch (SubCommandFailureException ex)
- {
- }
- catch (Exception ex)
- {
- Log.severe(ex);
- }
+ if (CommandBlocker.isCommandBlocked(generatedCommand.toString(), sender, false)) {
+ return true;
+ }
- return true;
- }
+ server.dispatchCommand(sender, generatedCommand.toString());
+ } catch (SubCommandFailureException ex) {
+ } catch (Exception ex) {
+ Log.severe(ex);
+ }
- private String processSubCommand(final String subcommand) throws SubCommandFailureException
- {
- final String[] args = StringUtils.split(subcommand, " ");
+ return true;
+ }
- if (args.length == 1)
- {
- throw new SubCommandFailureException("Invalid subcommand name.");
- }
+ private String processSubCommand(final String subcommand) throws SubCommandFailureException {
+ final String[] args = StringUtils.split(subcommand, " ");
- return SubCommand.getByName(args[0]).getExecutable().execute(ArrayUtils.remove(args, 0));
- }
+ if (args.length == 1) {
+ throw new SubCommandFailureException("Invalid subcommand name.");
+ }
- private enum SubCommand
- {
- PLAYER_DETECT("playerdetect", new SubCommandExecutable()
- {
- @Override
- public String execute(String[] args) throws SubCommandFailureException
- {
- if (args.length != 5)
- {
- throw new SubCommandFailureException("Invalid # of arguments.");
- }
+ return SubCommand.getByName(args[0]).getExecutable().execute(ArrayUtils.remove(args, 0));
+ }
- double x, y, z;
- try
- {
- x = Double.parseDouble(args[0].trim());
- y = Double.parseDouble(args[1].trim());
- z = Double.parseDouble(args[2].trim());
- }
- catch (NumberFormatException ex)
- {
- throw new SubCommandFailureException("Invalid coordinates.");
- }
+ private enum SubCommand {
+ PLAYER_DETECT("playerdetect", new SubCommandExecutable() {
+ @Override
+ public String execute(String[] args) throws SubCommandFailureException {
+ if (args.length != 5) {
+ throw new SubCommandFailureException("Invalid # of arguments.");
+ }
- World world = null;
- final String needleWorldName = args[3].trim();
- final List worlds = Bukkit.getWorlds();
- for (final World testWorld : worlds)
- {
- if (testWorld.getName().trim().equalsIgnoreCase(needleWorldName))
- {
- world = testWorld;
- break;
- }
- }
+ double x, y, z;
+ try {
+ x = Double.parseDouble(args[0].trim());
+ y = Double.parseDouble(args[1].trim());
+ z = Double.parseDouble(args[2].trim());
+ } catch (NumberFormatException ex) {
+ throw new SubCommandFailureException("Invalid coordinates.");
+ }
- if (world == null)
- {
- throw new SubCommandFailureException("Invalid world name.");
- }
+ World world = null;
+ final String needleWorldName = args[3].trim();
+ final List worlds = Bukkit.getWorlds();
+ for (final World testWorld : worlds) {
+ if (testWorld.getName().trim().equalsIgnoreCase(needleWorldName)) {
+ world = testWorld;
+ break;
+ }
+ }
- final Location testLocation = new Location(world, x, y, z);
+ if (world == null) {
+ throw new SubCommandFailureException("Invalid world name.");
+ }
- double radius;
- try
- {
- radius = Double.parseDouble(args[4].trim());
- }
- catch (NumberFormatException ex)
- {
- throw new SubCommandFailureException("Invalid radius.");
- }
+ final Location testLocation = new Location(world, x, y, z);
- final double radiusSq = radius * radius;
+ double radius;
+ try {
+ radius = Double.parseDouble(args[4].trim());
+ } catch (NumberFormatException ex) {
+ throw new SubCommandFailureException("Invalid radius.");
+ }
- final List worldPlayers = testLocation.getWorld().getPlayers();
- for (final Player testPlayer : worldPlayers)
- {
- if (testPlayer.getLocation().distanceSquared(testLocation) < radiusSq)
- {
- return testPlayer.getName();
- }
- }
+ final double radiusSq = radius * radius;
- throw new SubCommandFailureException("No player found in range.");
- }
- }),
- PLAYER_DETECT_BOOLEAN("playerdetectboolean", new SubCommandExecutable()
- {
- @Override
- public String execute(String[] args) throws SubCommandFailureException
- {
- try
- {
- PLAYER_DETECT.getExecutable().execute(args);
- }
- catch (SubCommandFailureException ex)
- {
- return "0";
- }
+ final List worldPlayers = testLocation.getWorld().getPlayers();
+ for (final Player testPlayer : worldPlayers) {
+ if (testPlayer.getLocation().distanceSquared(testLocation) < radiusSq) {
+ return testPlayer.getName();
+ }
+ }
- return "1";
- }
- });
- //
- private final String name;
- private final SubCommandExecutable executable;
+ throw new SubCommandFailureException("No player found in range.");
+ }
+ }),
+ PLAYER_DETECT_BOOLEAN("playerdetectboolean", new SubCommandExecutable() {
+ @Override
+ public String execute(String[] args) throws SubCommandFailureException {
+ try {
+ PLAYER_DETECT.getExecutable().execute(args);
+ } catch (SubCommandFailureException ex) {
+ return "0";
+ }
- SubCommand(String subCommandName, SubCommandExecutable subCommandImpl)
- {
- this.name = subCommandName;
- this.executable = subCommandImpl;
- }
+ return "1";
+ }
+ });
+ //
+ private final String name;
+ private final SubCommandExecutable executable;
- public SubCommandExecutable getExecutable()
- {
- return executable;
- }
+ SubCommand(String subCommandName, SubCommandExecutable subCommandImpl) {
+ this.name = subCommandName;
+ this.executable = subCommandImpl;
+ }
- public String getName()
- {
- return name;
- }
+ public static SubCommand getByName(String needle) throws SubCommandFailureException {
+ needle = needle.trim();
+ for (SubCommand subCommand : values()) {
+ if (subCommand.getName().equalsIgnoreCase(needle)) {
+ return subCommand;
+ }
+ }
+ throw new SubCommandFailureException("Invalid subcommand name.");
+ }
- public static SubCommand getByName(String needle) throws SubCommandFailureException
- {
- needle = needle.trim();
- for (SubCommand subCommand : values())
- {
- if (subCommand.getName().equalsIgnoreCase(needle))
- {
- return subCommand;
- }
- }
- throw new SubCommandFailureException("Invalid subcommand name.");
- }
- }
+ public SubCommandExecutable getExecutable() {
+ return executable;
+ }
- private interface SubCommandExecutable
- {
- String execute(String[] args) throws SubCommandFailureException;
- }
+ public String getName() {
+ return name;
+ }
+ }
- private static class SubCommandFailureException extends Exception
- {
- public SubCommandFailureException()
- {
- }
+ private interface SubCommandExecutable {
- public SubCommandFailureException(String message)
- {
- super(message);
- }
- }
+ String execute(String[] args) throws SubCommandFailureException;
+ }
+
+ private static class SubCommandFailureException extends Exception {
+
+ public SubCommandFailureException() {
+ }
+
+ public SubCommandFailureException(String message) {
+ super(message);
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_cmdlist.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_cmdlist.java
index 6d202d1..e0e5ce6 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_cmdlist.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_cmdlist.java
@@ -1,46 +1,43 @@
package me.StevenLawson.TotalFreedomMod.commands;
-import org.apache.commons.lang3.StringUtils;
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandSender;
-import org.bukkit.plugin.Plugin;
-import org.bukkit.plugin.PluginDescriptionFile;
-
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
+import org.apache.commons.lang3.StringUtils;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandSender;
+import org.bukkit.plugin.Plugin;
+import org.bukkit.plugin.PluginDescriptionFile;
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
public class Command_cmdlist extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- List commands = new ArrayList();
- for (Plugin targetPlugin : server.getPluginManager().getPlugins()) {
- try {
- PluginDescriptionFile desc = targetPlugin.getDescription();
- Map> map = desc.getCommands();
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ List commands = new ArrayList();
- if (map != null)
- {
- for (Entry> entry : map.entrySet())
- {
- String command_name = entry.getKey();
- commands.add(command_name);
- }
- }
- }
- catch (Throwable ex)
- {
- }
- }
+ for (Plugin targetPlugin : server.getPluginManager().getPlugins()) {
+ try {
+ PluginDescriptionFile desc = targetPlugin.getDescription();
+ Map> map = desc.getCommands();
- Collections.sort(commands);
+ if (map != null) {
+ for (Entry> entry : map.entrySet()) {
+ String command_name = entry.getKey();
+ commands.add(command_name);
+ }
+ }
+ } catch (Throwable ex) {
+ }
+ }
- sender.sendMessage(StringUtils.join(commands, ","));
+ Collections.sort(commands);
- return true;
- }
+ sender.sendMessage(StringUtils.join(commands, ","));
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_cmdspy.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_cmdspy.java
index 6718854..bc3c8f6 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_cmdspy.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_cmdspy.java
@@ -6,13 +6,15 @@ import org.bukkit.command.CommandSender;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_IN_GAME)
public class Command_cmdspy extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- PlayerData playerdata = PlayerData.getPlayerData(sender_p);
- playerdata.setCommandSpy(!playerdata.cmdspyEnabled());
- playerMsg(sender, "CommandSpy " + (playerdata.cmdspyEnabled() ? "enabled." : "disabled."));
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
- return true;
- }
+ PlayerData playerdata = PlayerData.getPlayerData(sender_p);
+ playerdata.setCommandSpy(!playerdata.cmdspyEnabled());
+ playerMsg(sender, "CommandSpy " + (playerdata.cmdspyEnabled() ? "enabled." : "disabled."));
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_colorme.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_colorme.java
index 0022b9b..c8d1ae7 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_colorme.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_colorme.java
@@ -1,5 +1,7 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.util.Iterator;
+import java.util.Map;
import me.StevenLawson.TotalFreedomMod.bridge.EssentialsBridge;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import org.apache.commons.lang3.StringUtils;
@@ -7,47 +9,47 @@ import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
-import java.util.Iterator;
-import java.util.Map;
-
@CommandPermissions(level = AdminLevel.OP, source = SourceType.ONLY_IN_GAME)
public class Command_colorme extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length != 1) {
- return false;
- }
- if ("list".equalsIgnoreCase(args[0])) {
- playerMsg(sender, "Colors: " + StringUtils.join(Utilities.CHAT_COLOR_NAMES.keySet(), ", "));
- return true;
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length != 1) {
+ return false;
+ }
- final String needle = args[0].trim().toLowerCase();
- ChatColor color = null;
- final Iterator> it = Utilities.CHAT_COLOR_NAMES.entrySet().iterator();
- while (it.hasNext())
- {
- final Map.Entry entry = it.next();
- if (entry.getKey().contains(needle))
- {
- color = entry.getValue();
- break;
- }
- }
+ if ("list".equalsIgnoreCase(args[0])) {
+ playerMsg(sender,
+ "Colors: " + StringUtils.join(Utilities.CHAT_COLOR_NAMES.keySet(), ", "));
+ return true;
+ }
- if (color == null)
- {
- playerMsg(sender, "Invalid color: " + needle + " - Use \"/colorme list\" to list colors.");
- return true;
- }
+ final String needle = args[0].trim().toLowerCase();
+ ChatColor color = null;
+ final Iterator> it = Utilities.CHAT_COLOR_NAMES.entrySet()
+ .iterator();
+ while (it.hasNext()) {
+ final Map.Entry entry = it.next();
+ if (entry.getKey().contains(needle)) {
+ color = entry.getValue();
+ break;
+ }
+ }
- final String newNick = color + ChatColor.stripColor(sender_p.getDisplayName()).trim() + ChatColor.WHITE;
+ if (color == null) {
+ playerMsg(sender,
+ "Invalid color: " + needle + " - Use \"/colorme list\" to list colors.");
+ return true;
+ }
- EssentialsBridge.setNickname(sender.getName(), newNick);
+ final String newNick =
+ color + ChatColor.stripColor(sender_p.getDisplayName()).trim() + ChatColor.WHITE;
- playerMsg(sender, "Your nickname is now: " + newNick);
+ EssentialsBridge.setNickname(sender.getName(), newNick);
- return true;
- }
+ playerMsg(sender, "Your nickname is now: " + newNick);
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_creative.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_creative.java
index 9770c9c..86cb140 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_creative.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_creative.java
@@ -9,59 +9,55 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
public class Command_creative extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (senderIsConsole) {
- if (args.length == 0) {
- sender.sendMessage("When used from the console, you must define a target user to change gamemode on.");
- return true;
- }
- }
- Player player;
- if (args.length == 0)
- {
- player = sender_p;
- }
- else
- {
- if (args[0].equalsIgnoreCase("-a"))
- {
- if (!AdminList.isSuperAdmin(sender))
- {
- sender.sendMessage(FreedomCommand.MSG_NO_PERMS);
- return true;
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (senderIsConsole) {
+ if (args.length == 0) {
+ sender.sendMessage(
+ "When used from the console, you must define a target user to change gamemode on.");
+ return true;
+ }
+ }
- for (Player targetPlayer : server.getOnlinePlayers())
- {
- targetPlayer.setGameMode(GameMode.CREATIVE);
- }
+ Player player;
+ if (args.length == 0) {
+ player = sender_p;
+ } else {
+ if (args[0].equalsIgnoreCase("-a")) {
+ if (!AdminList.isSuperAdmin(sender)) {
+ sender.sendMessage(FreedomCommand.MSG_NO_PERMS);
+ return true;
+ }
- Utilities.adminAction(sender.getName(), "Changing everyone's gamemode to creative", false);
- return true;
- }
+ for (Player targetPlayer : server.getOnlinePlayers()) {
+ targetPlayer.setGameMode(GameMode.CREATIVE);
+ }
- if (!(senderIsConsole || AdminList.isSuperAdmin(sender)))
- {
- playerMsg(sender, "Only superadmins can change other user's gamemode.");
- return true;
- }
+ Utilities.adminAction(sender.getName(), "Changing everyone's gamemode to creative",
+ false);
+ return true;
+ }
- player = getPlayer(args[0]);
+ if (!(senderIsConsole || AdminList.isSuperAdmin(sender))) {
+ playerMsg(sender, "Only superadmins can change other user's gamemode.");
+ return true;
+ }
- if (player == null)
- {
- sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
- return true;
- }
+ player = getPlayer(args[0]);
- }
+ if (player == null) {
+ sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
+ return true;
+ }
- playerMsg(sender, "Setting " + player.getName() + " to game mode 'Creative'.");
- playerMsg(player, sender.getName() + " set your game mode to 'Creative'.");
- player.setGameMode(GameMode.CREATIVE);
+ }
- return true;
- }
+ playerMsg(sender, "Setting " + player.getName() + " to game mode 'Creative'.");
+ playerMsg(player, sender.getName() + " set your game mode to 'Creative'.");
+ player.setGameMode(GameMode.CREATIVE);
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_csay.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_csay.java
index 078487d..9a9b3ea 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_csay.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_csay.java
@@ -7,11 +7,14 @@ import org.bukkit.command.CommandSender;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_CONSOLE)
public class Command_csay extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length > 0) {
- Utilities.bcastMsg(String.format("§7[CONSOLE] §f<§c%s§f> %s", sender.getName(), StringUtils.join(args, " ")));
- }
- return true;
- }
+
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length > 0) {
+ Utilities.bcastMsg(String.format("§7[CONSOLE] §f<§c%s§f> %s", sender.getName(),
+ StringUtils.join(args, " ")));
+ }
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_deafen.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_deafen.java
index 641769a..279d377 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_deafen.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_deafen.java
@@ -1,5 +1,6 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.util.Random;
import org.bukkit.Location;
import org.bukkit.Sound;
import org.bukkit.command.Command;
@@ -7,39 +8,39 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
-import java.util.Random;
-
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.BOTH, blockHostConsole = true)
public class Command_deafen extends FreedomCommand {
- private static final Random random = new Random();
- public static final double STEPS = 10.0;
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- for (final Player player : server.getOnlinePlayers()) {
- for (double percent = 0.0; percent <= 1.0; percent += (1.0 / STEPS)) {
- final float pitch = (float) (percent * 2.0);
+ public static final double STEPS = 10.0;
+ private static final Random random = new Random();
- new BukkitRunnable() {
- @Override
- public void run()
- {
- player.playSound(randomOffset(player.getLocation(), 5.0), Sound.values()[random.nextInt(Sound.values().length)], 100.0f, pitch);
- }
- }.runTaskLater(plugin, Math.round(20.0 * percent * 2.0));
- }
- }
+ private static Location randomOffset(Location a, double magnitude) {
+ return a.clone()
+ .add(randomDoubleRange(-1.0, 1.0) * magnitude, randomDoubleRange(-1.0, 1.0) * magnitude,
+ randomDoubleRange(-1.0, 1.0) * magnitude);
+ }
- return true;
- }
+ private static Double randomDoubleRange(double min, double max) {
+ return min + (random.nextDouble() * ((max - min) + 1.0));
+ }
- private static Location randomOffset(Location a, double magnitude)
- {
- return a.clone().add(randomDoubleRange(-1.0, 1.0) * magnitude, randomDoubleRange(-1.0, 1.0) * magnitude, randomDoubleRange(-1.0, 1.0) * magnitude);
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ for (final Player player : server.getOnlinePlayers()) {
+ for (double percent = 0.0; percent <= 1.0; percent += (1.0 / STEPS)) {
+ final float pitch = (float) (percent * 2.0);
- private static Double randomDoubleRange(double min, double max)
- {
- return min + (random.nextDouble() * ((max - min) + 1.0));
- }
+ new BukkitRunnable() {
+ @Override
+ public void run() {
+ player.playSound(randomOffset(player.getLocation(), 5.0),
+ Sound.values()[random.nextInt(Sound.values().length)], 100.0f, pitch);
+ }
+ }.runTaskLater(plugin, Math.round(20.0 * percent * 2.0));
+ }
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_debug.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_debug.java
index 511fc8e..2d60de6 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_debug.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_debug.java
@@ -1,106 +1,82 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.lang.reflect.Field;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
-import java.lang.reflect.Field;
-
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE)
public class Command_debug extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length < 3) {
- return false;
- }
- try {
- String className = args[0];
- String fieldName = args[1];
- String newValue = StringUtils.join(ArrayUtils.subarray(args, 2, args.length), " ");
+ public static void setStaticValue(final String className, final String fieldName,
+ final String newValueString) throws Exception {
+ Class> forName = Class.forName(className);
+ if (forName != null) {
+ final Field field = forName.getDeclaredField(fieldName);
+ if (field != null) {
+ Object newValue;
- if (className.equalsIgnoreCase("_"))
- {
- className = "me.StevenLawson.TotalFreedomMod.TotalFreedomMod";
- }
+ Class> type = field.getType();
+ if (type.isPrimitive()) {
+ if (type.getName().equals("int")) {
+ newValue = Integer.parseInt(newValueString);
+ } else if (type.getName().equals("double")) {
+ newValue = Double.parseDouble(newValueString);
+ } else if (type.getName().equals("boolean")) {
+ newValue = Boolean.parseBoolean(newValueString);
+ } else {
+ throw new Exception("Unknown primitive field type.");
+ }
+ } else {
+ if (type.isAssignableFrom(Integer.class)) {
+ newValue = new Integer(newValueString);
+ } else if (type.isAssignableFrom(Double.class)) {
+ newValue = new Double(newValueString);
+ } else if (type.isAssignableFrom(Boolean.class)) {
+ newValue = Boolean.valueOf(newValueString);
+ } else if (type.isAssignableFrom(String.class)) {
+ newValue = newValueString;
+ } else {
+ throw new Exception("Unknown complex field type.");
+ }
+ }
- setStaticValue(className, fieldName, newValue);
+ field.setAccessible(true);
- sender.sendMessage("Debug: OK");
- }
- catch (Exception ex)
- {
- sender.sendMessage(ex.getMessage());
- }
+ final Object oldValue = field.get(Class.forName(className));
+ if (oldValue != null) {
+ field.set(oldValue, newValue);
+ }
- return true;
- }
+ field.setAccessible(false);
+ }
+ }
+ }
- public static void setStaticValue(final String className, final String fieldName, final String newValueString) throws Exception
- {
- Class> forName = Class.forName(className);
- if (forName != null)
- {
- final Field field = forName.getDeclaredField(fieldName);
- if (field != null)
- {
- Object newValue;
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length < 3) {
+ return false;
+ }
- Class> type = field.getType();
- if (type.isPrimitive())
- {
- if (type.getName().equals("int"))
- {
- newValue = Integer.parseInt(newValueString);
- }
- else if (type.getName().equals("double"))
- {
- newValue = Double.parseDouble(newValueString);
- }
- else if (type.getName().equals("boolean"))
- {
- newValue = Boolean.parseBoolean(newValueString);
- }
- else
- {
- throw new Exception("Unknown primitive field type.");
- }
- }
- else
- {
- if (type.isAssignableFrom(Integer.class))
- {
- newValue = new Integer(newValueString);
- }
- else if (type.isAssignableFrom(Double.class))
- {
- newValue = new Double(newValueString);
- }
- else if (type.isAssignableFrom(Boolean.class))
- {
- newValue = Boolean.valueOf(newValueString);
- }
- else if (type.isAssignableFrom(String.class))
- {
- newValue = newValueString;
- }
- else
- {
- throw new Exception("Unknown complex field type.");
- }
- }
+ try {
+ String className = args[0];
+ String fieldName = args[1];
+ String newValue = StringUtils.join(ArrayUtils.subarray(args, 2, args.length), " ");
- field.setAccessible(true);
+ if (className.equalsIgnoreCase("_")) {
+ className = "me.StevenLawson.TotalFreedomMod.TotalFreedomMod";
+ }
- final Object oldValue = field.get(Class.forName(className));
- if (oldValue != null)
- {
- field.set(oldValue, newValue);
- }
+ setStaticValue(className, fieldName, newValue);
- field.setAccessible(false);
- }
- }
- }
+ sender.sendMessage("Debug: OK");
+ } catch (Exception ex) {
+ sender.sendMessage(ex.getMessage());
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_denick.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_denick.java
index 646475d..5e9f488 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_denick.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_denick.java
@@ -8,14 +8,16 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_denick extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- Utilities.adminAction(sender.getName(), "Removing all nicknames", false);
- for (Player player : server.getOnlinePlayers()) {
- EssentialsBridge.setNickname(player.getName(), null);
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ Utilities.adminAction(sender.getName(), "Removing all nicknames", false);
- return true;
- }
+ for (Player player : server.getOnlinePlayers()) {
+ EssentialsBridge.setNickname(player.getName(), null);
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_deop.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_deop.java
index 0728933..f397e18 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_deop.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_deop.java
@@ -9,31 +9,31 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_deop extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length != 1) {
- return false;
- }
- OfflinePlayer player = null;
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length != 1) {
+ return false;
+ }
- for (Player onlinePlayer : server.getOnlinePlayers()) {
- if (args[0].equalsIgnoreCase(onlinePlayer.getName()))
- {
- player = onlinePlayer;
- }
- }
+ OfflinePlayer player = null;
- // if the player is not online
- if (player == null)
- {
- player = DeprecationUtil.getOfflinePlayer(server, args[0]);
- }
+ for (Player onlinePlayer : server.getOnlinePlayers()) {
+ if (args[0].equalsIgnoreCase(onlinePlayer.getName())) {
+ player = onlinePlayer;
+ }
+ }
- Utilities.adminAction(sender.getName(), "De-opping " + player.getName(), false);
+ // if the player is not online
+ if (player == null) {
+ player = DeprecationUtil.getOfflinePlayer(server, args[0]);
+ }
- player.setOp(false);
+ Utilities.adminAction(sender.getName(), "De-opping " + player.getName(), false);
- return true;
- }
+ player.setOp(false);
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_deopall.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_deopall.java
index 150f7a8..b9e8144 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_deopall.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_deopall.java
@@ -7,15 +7,17 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_deopall extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- Utilities.adminAction(sender.getName(), "De-opping all players on the server", true);
- for (Player player : server.getOnlinePlayers()) {
- player.setOp(false);
- player.sendMessage(FreedomCommand.YOU_ARE_NOT_OP);
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ Utilities.adminAction(sender.getName(), "De-opping all players on the server", true);
- return true;
- }
+ for (Player player : server.getOnlinePlayers()) {
+ player.setOp(false);
+ player.sendMessage(FreedomCommand.YOU_ARE_NOT_OP);
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_dispfill.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_dispfill.java
index 8a47668..b9d375a 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_dispfill.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_dispfill.java
@@ -1,5 +1,7 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.util.ArrayList;
+import java.util.List;
import me.StevenLawson.TotalFreedomMod.util.DeprecationUtil;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import org.apache.commons.lang3.StringUtils;
@@ -12,93 +14,78 @@ import org.bukkit.command.CommandSender;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
-import java.util.ArrayList;
-import java.util.List;
-
@CommandPermissions(level = AdminLevel.OP, source = SourceType.ONLY_IN_GAME)
public class Command_dispfill extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length == 2) {
- int radius;
- try {
- radius = Math.max(5, Math.min(25, Integer.parseInt(args[0])));
- } catch (NumberFormatException ex)
- {
- sender.sendMessage("Invalid radius.");
- return true;
- }
+ private static void setDispenserContents(final Block targetBlock, final ItemStack[] items) {
+ if (targetBlock.getType() == Material.DISPENSER) {
+ final Inventory dispenserInv = ((Dispenser) targetBlock.getState()).getInventory();
+ dispenserInv.clear();
+ dispenserInv.addItem(items);
+ }
+ }
- final List items = new ArrayList();
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length == 2) {
+ int radius;
- final String[] itemsRaw = StringUtils.split(args[1], ",");
- for (final String searchItem : itemsRaw)
- {
- Material material = Material.matchMaterial(searchItem);
- if (material == null)
- {
- try
- {
- material = DeprecationUtil.getMaterial(Integer.parseInt(searchItem));
- }
- catch (NumberFormatException ex)
- {
- }
- }
+ try {
+ radius = Math.max(5, Math.min(25, Integer.parseInt(args[0])));
+ } catch (NumberFormatException ex) {
+ sender.sendMessage("Invalid radius.");
+ return true;
+ }
- if (material != null)
- {
- items.add(new ItemStack(material, 64));
- }
- else
- {
- sender.sendMessage("Skipping invalid item: " + searchItem);
- }
- }
+ final List items = new ArrayList();
- final ItemStack[] itemsArray = items.toArray(new ItemStack[items.size()]);
+ final String[] itemsRaw = StringUtils.split(args[1], ",");
+ for (final String searchItem : itemsRaw) {
+ Material material = Material.matchMaterial(searchItem);
+ if (material == null) {
+ try {
+ material = DeprecationUtil.getMaterial(Integer.parseInt(searchItem));
+ } catch (NumberFormatException ex) {
+ }
+ }
- int affected = 0;
- final Location centerLocation = sender_p.getLocation();
- final Block centerBlock = centerLocation.getBlock();
- for (int xOffset = -radius; xOffset <= radius; xOffset++)
- {
- for (int yOffset = -radius; yOffset <= radius; yOffset++)
- {
- for (int zOffset = -radius; zOffset <= radius; zOffset++)
- {
- final Block targetBlock = centerBlock.getRelative(xOffset, yOffset, zOffset);
- if (targetBlock.getLocation().distanceSquared(centerLocation) < (radius * radius))
- {
- if (targetBlock.getType().equals(Material.DISPENSER))
- {
- sender.sendMessage("Filling dispenser @ " + Utilities.formatLocation(targetBlock.getLocation()));
- setDispenserContents(targetBlock, itemsArray);
- affected++;
- }
- }
- }
- }
- }
+ if (material != null) {
+ items.add(new ItemStack(material, 64));
+ } else {
+ sender.sendMessage("Skipping invalid item: " + searchItem);
+ }
+ }
- sender.sendMessage("Done. " + affected + " dispenser(s) filled.");
- }
- else
- {
- return false;
- }
+ final ItemStack[] itemsArray = items.toArray(new ItemStack[items.size()]);
- return true;
- }
+ int affected = 0;
+ final Location centerLocation = sender_p.getLocation();
+ final Block centerBlock = centerLocation.getBlock();
+ for (int xOffset = -radius; xOffset <= radius; xOffset++) {
+ for (int yOffset = -radius; yOffset <= radius; yOffset++) {
+ for (int zOffset = -radius; zOffset <= radius; zOffset++) {
+ final Block targetBlock = centerBlock.getRelative(xOffset, yOffset,
+ zOffset);
+ if (targetBlock.getLocation().distanceSquared(centerLocation) < (radius
+ * radius)) {
+ if (targetBlock.getType().equals(Material.DISPENSER)) {
+ sender.sendMessage(
+ "Filling dispenser @ " + Utilities.formatLocation(
+ targetBlock.getLocation()));
+ setDispenserContents(targetBlock, itemsArray);
+ affected++;
+ }
+ }
+ }
+ }
+ }
- private static void setDispenserContents(final Block targetBlock, final ItemStack[] items)
- {
- if (targetBlock.getType() == Material.DISPENSER)
- {
- final Inventory dispenserInv = ((Dispenser) targetBlock.getState()).getInventory();
- dispenserInv.clear();
- dispenserInv.addItem(items);
- }
- }
+ sender.sendMessage("Done. " + affected + " dispenser(s) filled.");
+ } else {
+ return false;
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_enchant.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_enchant.java
index 92ffac6..d8d2246 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_enchant.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_enchant.java
@@ -8,114 +8,90 @@ import org.bukkit.inventory.ItemStack;
@CommandPermissions(level = AdminLevel.OP, source = SourceType.ONLY_IN_GAME)
public class Command_enchant extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length < 1) {
- return false;
- }
- ItemStack itemInHand = sender_p.getItemInHand();
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length < 1) {
+ return false;
+ }
- if (itemInHand == null) {
- playerMsg(sender, "You are holding an invalid item.");
- return true;
- }
+ ItemStack itemInHand = sender_p.getItemInHand();
- if (args[0].equalsIgnoreCase("list"))
- {
- boolean has_enchantments = false;
+ if (itemInHand == null) {
+ playerMsg(sender, "You are holding an invalid item.");
+ return true;
+ }
- StringBuilder possible_ench = new StringBuilder("Possible enchantments for held item: ");
- for (Enchantment ench : Enchantment.values())
- {
- if (ench.canEnchantItem(itemInHand))
- {
- has_enchantments = true;
- possible_ench.append(ench.getName()).append(", ");
- }
- }
+ if (args[0].equalsIgnoreCase("list")) {
+ boolean has_enchantments = false;
- if (has_enchantments)
- {
- playerMsg(sender, possible_ench.toString());
- }
- else
- {
- playerMsg(sender, "The held item has no enchantments.");
- }
- }
- else if (args[0].equalsIgnoreCase("addall"))
- {
- for (Enchantment ench : Enchantment.values())
- {
- try
- {
- if (ench.canEnchantItem(itemInHand))
- {
- itemInHand.addEnchantment(ench, ench.getMaxLevel());
- }
- }
- catch (Exception ex)
- {
- Log.info("Error using " + ench.getName() + " on " + itemInHand.getType().name() + " held by " + sender_p.getName() + ".");
- }
- }
+ StringBuilder possible_ench = new StringBuilder(
+ "Possible enchantments for held item: ");
+ for (Enchantment ench : Enchantment.values()) {
+ if (ench.canEnchantItem(itemInHand)) {
+ has_enchantments = true;
+ possible_ench.append(ench.getName()).append(", ");
+ }
+ }
- playerMsg(sender, "Added all possible enchantments for this item.");
- }
- else if (args[0].equalsIgnoreCase("reset"))
- {
- for (Enchantment ench : itemInHand.getEnchantments().keySet())
- {
- itemInHand.removeEnchantment(ench);
- }
+ if (has_enchantments) {
+ playerMsg(sender, possible_ench.toString());
+ } else {
+ playerMsg(sender, "The held item has no enchantments.");
+ }
+ } else if (args[0].equalsIgnoreCase("addall")) {
+ for (Enchantment ench : Enchantment.values()) {
+ try {
+ if (ench.canEnchantItem(itemInHand)) {
+ itemInHand.addEnchantment(ench, ench.getMaxLevel());
+ }
+ } catch (Exception ex) {
+ Log.info("Error using " + ench.getName() + " on " + itemInHand.getType().name()
+ + " held by " + sender_p.getName() + ".");
+ }
+ }
- playerMsg(sender, "Removed all enchantments.");
- }
- else
- {
- if (args.length < 2)
- {
- return false;
- }
+ playerMsg(sender, "Added all possible enchantments for this item.");
+ } else if (args[0].equalsIgnoreCase("reset")) {
+ for (Enchantment ench : itemInHand.getEnchantments().keySet()) {
+ itemInHand.removeEnchantment(ench);
+ }
- Enchantment ench = null;
+ playerMsg(sender, "Removed all enchantments.");
+ } else {
+ if (args.length < 2) {
+ return false;
+ }
- try
- {
- ench = Enchantment.getByName(args[1]);
- }
- catch (Exception ex)
- {
- }
+ Enchantment ench = null;
- if (ench == null)
- {
- playerMsg(sender, args[1] + " is an invalid enchantment for the held item. Type \"/enchant list\" for valid enchantments for this item.");
- return true;
- }
+ try {
+ ench = Enchantment.getByName(args[1]);
+ } catch (Exception ex) {
+ }
- if (args[0].equalsIgnoreCase("add"))
- {
- if (ench.canEnchantItem(itemInHand))
- {
- itemInHand.addEnchantment(ench, ench.getMaxLevel());
+ if (ench == null) {
+ playerMsg(sender, args[1]
+ + " is an invalid enchantment for the held item. Type \"/enchant list\" for valid enchantments for this item.");
+ return true;
+ }
- playerMsg(sender, "Added enchantment: " + ench.getName());
- }
- else
- {
- playerMsg(sender, "Can't use this enchantment on held item.");
- }
- }
- else if (args[0].equals("remove"))
- {
- itemInHand.removeEnchantment(ench);
+ if (args[0].equalsIgnoreCase("add")) {
+ if (ench.canEnchantItem(itemInHand)) {
+ itemInHand.addEnchantment(ench, ench.getMaxLevel());
- playerMsg(sender, "Removed enchantment: " + ench.getName());
- }
- }
+ playerMsg(sender, "Added enchantment: " + ench.getName());
+ } else {
+ playerMsg(sender, "Can't use this enchantment on held item.");
+ }
+ } else if (args[0].equals("remove")) {
+ itemInHand.removeEnchantment(ench);
- return true;
- }
+ playerMsg(sender, "Removed enchantment: " + ench.getName());
+ }
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_ender.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_ender.java
index 27978dd..06cdf8c 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_ender.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_ender.java
@@ -6,9 +6,11 @@ import org.bukkit.command.CommandSender;
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.ONLY_IN_GAME)
public class Command_ender extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- Utilities.gotoWorld(sender_p, server.getWorlds().get(0).getName() + "_the_end");
- return true;
- }
+
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ Utilities.gotoWorld(sender_p, server.getWorlds().get(0).getName() + "_the_end");
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_expel.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_expel.java
index bf2e01a..78e8fdd 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_expel.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_expel.java
@@ -1,5 +1,7 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.util.ArrayList;
+import java.util.List;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import org.apache.commons.lang3.StringUtils;
import org.bukkit.Location;
@@ -8,77 +10,63 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
-import java.util.ArrayList;
-import java.util.List;
-
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_IN_GAME)
public class Command_expel extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- double radius = 20.0;
- double strength = 5.0;
- if (args.length >= 1) {
- try {
- radius = Math.max(1.0, Math.min(100.0, Double.parseDouble(args[0])));
- }
- catch (NumberFormatException ex)
- {
- }
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ double radius = 20.0;
+ double strength = 5.0;
- if (args.length >= 2)
- {
- try
- {
- strength = Math.max(0.0, Math.min(50.0, Double.parseDouble(args[1])));
- }
- catch (NumberFormatException ex)
- {
- }
- }
+ if (args.length >= 1) {
+ try {
+ radius = Math.max(1.0, Math.min(100.0, Double.parseDouble(args[0])));
+ } catch (NumberFormatException ex) {
+ }
+ }
- List pushedPlayers = new ArrayList();
+ if (args.length >= 2) {
+ try {
+ strength = Math.max(0.0, Math.min(50.0, Double.parseDouble(args[1])));
+ } catch (NumberFormatException ex) {
+ }
+ }
- final Vector senderPos = sender_p.getLocation().toVector();
- final List players = sender_p.getWorld().getPlayers();
- for (final Player player : players)
- {
- if (player.equals(sender_p))
- {
- continue;
- }
+ List pushedPlayers = new ArrayList();
- final Location targetPos = player.getLocation();
- final Vector targetPosVec = targetPos.toVector();
+ final Vector senderPos = sender_p.getLocation().toVector();
+ final List players = sender_p.getWorld().getPlayers();
+ for (final Player player : players) {
+ if (player.equals(sender_p)) {
+ continue;
+ }
- boolean inRange = false;
- try
- {
- inRange = targetPosVec.distanceSquared(senderPos) < (radius * radius);
- }
- catch (IllegalArgumentException ex)
- {
- }
+ final Location targetPos = player.getLocation();
+ final Vector targetPosVec = targetPos.toVector();
- if (inRange)
- {
- player.getWorld().createExplosion(targetPos, 0.0f, false);
- Utilities.setFlying(player, false);
- player.setVelocity(targetPosVec.subtract(senderPos).normalize().multiply(strength));
- pushedPlayers.add(player.getName());
- }
- }
+ boolean inRange = false;
+ try {
+ inRange = targetPosVec.distanceSquared(senderPos) < (radius * radius);
+ } catch (IllegalArgumentException ex) {
+ }
- if (pushedPlayers.isEmpty())
- {
- playerMsg(sender, "No players pushed.");
- }
- else
- {
- playerMsg(sender, "Pushed " + pushedPlayers.size() + " players: " + StringUtils.join(pushedPlayers, ", "));
- }
+ if (inRange) {
+ player.getWorld().createExplosion(targetPos, 0.0f, false);
+ Utilities.setFlying(player, false);
+ player.setVelocity(targetPosVec.subtract(senderPos).normalize().multiply(strength));
+ pushedPlayers.add(player.getName());
+ }
+ }
- return true;
- }
+ if (pushedPlayers.isEmpty()) {
+ playerMsg(sender, "No players pushed.");
+ } else {
+ playerMsg(sender,
+ "Pushed " + pushedPlayers.size() + " players: " + StringUtils.join(pushedPlayers,
+ ", "));
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_findip.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_findip.java
index ef3b14e..bbbc109 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_findip.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_findip.java
@@ -1,5 +1,6 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.util.List;
import me.StevenLawson.TotalFreedomMod.player.PlayerList;
import me.StevenLawson.TotalFreedomMod.player.PlayerRank;
import org.apache.commons.lang3.StringUtils;
@@ -7,37 +8,36 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import java.util.ArrayList;
-import java.util.List;
-
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_findip extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length != 1) {
- return false;
- }
- final Player player = getPlayer(args[0]);
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length != 1) {
+ return false;
+ }
- if (player == null) {
+ final Player player = getPlayer(args[0]);
- playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
- return true;
- }
+ if (player == null) {
- PlayerRank rank = PlayerRank.fromSender(sender);
- PlayerRank targetRank = PlayerRank.fromSender(player);
+ playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
+ return true;
+ }
- List ipsToShow = PlayerList.getEntry(player).getIps();
+ PlayerRank rank = PlayerRank.fromSender(sender);
+ PlayerRank targetRank = PlayerRank.fromSender(player);
- if(rank.getOrdinal() < PlayerRank.SENIOR.getOrdinal() || targetRank.getOrdinal() >= rank.getOrdinal()) {
- ipsToShow = PlayerList.getEntry(player).getFuzziedIps();
- }
+ List ipsToShow = PlayerList.getEntry(player).getIps();
+ if (rank.getOrdinal() < PlayerRank.SENIOR.getOrdinal()
+ || targetRank.getOrdinal() >= rank.getOrdinal()) {
+ ipsToShow = PlayerList.getEntry(player).getFuzziedIps();
+ }
- playerMsg(sender, "Player IPs: " + StringUtils.join(ipsToShow, ", "));
+ playerMsg(sender, "Player IPs: " + StringUtils.join(ipsToShow, ", "));
- return true;
- }
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_flatlands.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_flatlands.java
index 60cf440..6a0f35a 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_flatlands.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_flatlands.java
@@ -7,13 +7,15 @@ import org.bukkit.command.CommandSender;
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.ONLY_IN_GAME)
public class Command_flatlands extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (ConfigurationEntry.FLATLANDS_GENERATE.getBoolean()) {
- FlatlandsWorld.getInstance().sendToWorld(sender_p);
- } else {
- playerMsg(sender, "Flatlands is currently disabled.");
- }
- return true;
- }
+
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (ConfigurationEntry.FLATLANDS_GENERATE.getBoolean()) {
+ FlatlandsWorld.getInstance().sendToWorld(sender_p);
+ } else {
+ playerMsg(sender, "Flatlands is currently disabled.");
+ }
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_fr.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_fr.java
index 2abbf10..31bac61 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_fr.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_fr.java
@@ -11,68 +11,64 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_fr extends FreedomCommand {
- private static boolean allFrozen = false;
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length == 0) {
- allFrozen = !allFrozen;
+ private static boolean allFrozen = false;
- if (allFrozen) {
- Utilities.adminAction(sender.getName(), "Freezing all players", false);
+ public static void setAllFrozen(boolean freeze) {
+ allFrozen = freeze;
+ for (PlayerData data : PlayerData.PLAYER_DATA.values()) {
+ data.setFrozen(freeze);
+ }
+ }
- setAllFrozen(true);
- playerMsg(sender, "Players are now frozen.");
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length == 0) {
+ allFrozen = !allFrozen;
- for (Player player : Bukkit.getOnlinePlayers())
- {
- if (!AdminList.isSuperAdmin(player))
- {
- playerMsg(player, "You have been frozen due to rulebreakers, you will be unfrozen soon.", ChatColor.RED);
- }
- }
- }
- else
- {
- Utilities.adminAction(sender.getName(), "Unfreezing all players", false);
- setAllFrozen(false);
- playerMsg(sender, "Players are now free to move.");
- }
- }
- else
- {
- if (args[0].equalsIgnoreCase("purge"))
- {
- setAllFrozen(false);
- Utilities.adminAction(sender.getName(), "Unfreezing all players", false);
- }
- else
- {
- final Player player = getPlayer(args[0]);
+ if (allFrozen) {
+ Utilities.adminAction(sender.getName(), "Freezing all players", false);
- if (player == null)
- {
- playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED);
- return true;
- }
+ setAllFrozen(true);
+ playerMsg(sender, "Players are now frozen.");
- final PlayerData playerdata = PlayerData.getPlayerData(player);
- playerdata.setFrozen(!playerdata.isFrozen());
+ for (Player player : Bukkit.getOnlinePlayers()) {
+ if (!AdminList.isSuperAdmin(player)) {
+ playerMsg(player,
+ "You have been frozen due to rulebreakers, you will be unfrozen soon.",
+ ChatColor.RED);
+ }
+ }
+ } else {
+ Utilities.adminAction(sender.getName(), "Unfreezing all players", false);
+ setAllFrozen(false);
+ playerMsg(sender, "Players are now free to move.");
+ }
+ } else {
+ if (args[0].equalsIgnoreCase("purge")) {
+ setAllFrozen(false);
+ Utilities.adminAction(sender.getName(), "Unfreezing all players", false);
+ } else {
+ final Player player = getPlayer(args[0]);
- playerMsg(sender, player.getName() + " has been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
- playerMsg(player, "You have been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".", ChatColor.AQUA);
- }
- }
+ if (player == null) {
+ playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED);
+ return true;
+ }
- return true;
- }
+ final PlayerData playerdata = PlayerData.getPlayerData(player);
+ playerdata.setFrozen(!playerdata.isFrozen());
- public static void setAllFrozen(boolean freeze)
- {
- allFrozen = freeze;
- for (PlayerData data : PlayerData.PLAYER_DATA.values())
- {
- data.setFrozen(freeze);
- }
- }
+ playerMsg(sender,
+ player.getName() + " has been " + (playerdata.isFrozen() ? "frozen"
+ : "unfrozen") + ".");
+ playerMsg(player,
+ "You have been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".",
+ ChatColor.AQUA);
+ }
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_fuckoff.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_fuckoff.java
index 49a1c51..3ca5914 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_fuckoff.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_fuckoff.java
@@ -6,40 +6,37 @@ import org.bukkit.command.CommandSender;
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_IN_GAME)
public class Command_fuckoff extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length < 1) {
- return false;
- }
- boolean fuckoff_enabled = false;
- double fuckoff_range = 25.0;
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length < 1) {
+ return false;
+ }
- if (args[0].equalsIgnoreCase("on"))
- {
- fuckoff_enabled = true;
+ boolean fuckoff_enabled = false;
+ double fuckoff_range = 25.0;
- if (args.length >= 2)
- {
- try
- {
- fuckoff_range = Math.max(5.0, Math.min(100.0, Double.parseDouble(args[1])));
- }
- catch (NumberFormatException ex)
- {
- }
- }
- }
+ if (args[0].equalsIgnoreCase("on")) {
+ fuckoff_enabled = true;
- TotalFreedomMod.fuckoffEnabledFor.remove(sender_p);
+ if (args.length >= 2) {
+ try {
+ fuckoff_range = Math.max(5.0, Math.min(100.0, Double.parseDouble(args[1])));
+ } catch (NumberFormatException ex) {
+ }
+ }
+ }
- if (fuckoff_enabled)
- {
- TotalFreedomMod.fuckoffEnabledFor.put(sender_p, new Double(fuckoff_range));
- }
+ TotalFreedomMod.fuckoffEnabledFor.remove(sender_p);
- playerMsg(sender, "Fuckoff " + (fuckoff_enabled ? ("enabled. Range: " + fuckoff_range + ".") : "disabled."));
+ if (fuckoff_enabled) {
+ TotalFreedomMod.fuckoffEnabledFor.put(sender_p, new Double(fuckoff_range));
+ }
- return true;
- }
+ playerMsg(sender, "Fuckoff " + (fuckoff_enabled ? ("enabled. Range: " + fuckoff_range + ".")
+ : "disabled."));
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_gadmin.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_gadmin.java
index 2da4509..6f407a7 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_gadmin.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_gadmin.java
@@ -1,196 +1,183 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.util.Iterator;
import me.StevenLawson.TotalFreedomMod.ban.BanManager;
-import me.StevenLawson.TotalFreedomMod.player.PlayerData;
import me.StevenLawson.TotalFreedomMod.manager.UUIDManager;
+import me.StevenLawson.TotalFreedomMod.player.PlayerData;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import java.util.Iterator;
-
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_gadmin extends FreedomCommand {
- private enum GadminMode {
- LIST("list"),
- KICK("kick"),
- NAMEBAN("nameban"),
- IPBAN("ipban"),
- BAN("ban"),
- OP("op"),
- DEOP("deop"),
- CI("ci"),
- FR("fr"),
- SMITE("smite");
- private final String modeName;
- GadminMode(String command)
- {
- this.modeName = command;
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length == 0) {
+ return false;
+ }
- public String getModeName()
- {
- return modeName;
- }
+ final GadminMode mode = GadminMode.findMode(args[0].toLowerCase());
+ if (mode == null) {
+ playerMsg(sender, "Invalid mode: " + args[0], ChatColor.RED);
+ return true;
+ }
- public static GadminMode findMode(String needle)
- {
- for (final GadminMode mode : GadminMode.values())
- {
- if (needle.equalsIgnoreCase(mode.getModeName()))
- {
- return mode;
- }
- }
- return null;
- }
- }
+ final Iterator extends Player> it = server.getOnlinePlayers().iterator();
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length == 0) {
- return false;
- }
+ if (mode == GadminMode.LIST) {
+ playerMsg(sender, "[ Real Name ] : [ Display Name ] - Hash:");
+ while (it.hasNext()) {
+ final Player player = it.next();
+ final String hash = UUIDManager.getUniqueId(player).toString().substring(0, 4);
+ sender.sendMessage(ChatColor.GRAY + String.format("[ %s ] : [ %s ] - %s",
+ player.getName(),
+ ChatColor.stripColor(player.getDisplayName()),
+ hash));
+ }
+ return true;
+ }
- final GadminMode mode = GadminMode.findMode(args[0].toLowerCase());
- if (mode == null) {
- playerMsg(sender, "Invalid mode: " + args[0], ChatColor.RED);
- return true;
- }
+ if (args.length < 2) {
+ return false;
+ }
- final Iterator extends Player> it = server.getOnlinePlayers().iterator();
+ Player target = null;
+ while (it.hasNext() && target == null) {
+ final Player player = it.next();
+ final String hash = UUIDManager.getUniqueId(player).toString().substring(0, 4);
- if (mode == GadminMode.LIST)
- {
- playerMsg(sender, "[ Real Name ] : [ Display Name ] - Hash:");
- while (it.hasNext())
- {
- final Player player = it.next();
- final String hash = UUIDManager.getUniqueId(player).toString().substring(0, 4);
- sender.sendMessage(ChatColor.GRAY + String.format("[ %s ] : [ %s ] - %s",
- player.getName(),
- ChatColor.stripColor(player.getDisplayName()),
- hash));
- }
- return true;
- }
+ if (hash.equalsIgnoreCase(args[1])) {
+ target = player;
+ }
+ }
- if (args.length < 2)
- {
- return false;
- }
+ if (target == null) {
+ playerMsg(sender, "Invalid player hash: " + args[1], ChatColor.RED);
+ return true;
+ }
- Player target = null;
- while (it.hasNext() && target == null)
- {
- final Player player = it.next();
- final String hash = UUIDManager.getUniqueId(player).toString().substring(0, 4);
+ switch (mode) {
+ case KICK: {
+ Utilities.adminAction(sender.getName(),
+ String.format("Kicking: %s.", target.getName()), false);
+ target.kickPlayer("Kicked by Administrator");
- if (hash.equalsIgnoreCase(args[1]))
- {
- target = player;
- }
- }
+ break;
+ }
+ case NAMEBAN: {
+ BanManager.addUuidBan(target);
- if (target == null)
- {
- playerMsg(sender, "Invalid player hash: " + args[1], ChatColor.RED);
- return true;
- }
+ Utilities.adminAction(sender.getName(),
+ String.format("Banning Name: %s.", target.getName()), true);
+ target.kickPlayer("Username banned by Administrator.");
- switch (mode)
- {
- case KICK:
- {
- Utilities.adminAction(sender.getName(), String.format("Kicking: %s.", target.getName()), false);
- target.kickPlayer("Kicked by Administrator");
+ break;
+ }
+ case IPBAN: {
+ String ip = target.getAddress().getAddress().getHostAddress();
+ String[] ip_parts = ip.split("\\.");
+ if (ip_parts.length == 4) {
+ ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
+ }
+ Utilities.adminAction(sender.getName(), String.format("Banning IP: %s.", ip), true);
+ BanManager.addIpBan(target);
- break;
- }
- case NAMEBAN:
- {
- BanManager.addUuidBan(target);
+ target.kickPlayer("IP address banned by Administrator.");
- Utilities.adminAction(sender.getName(), String.format("Banning Name: %s.", target.getName()), true);
- target.kickPlayer("Username banned by Administrator.");
+ break;
+ }
+ case BAN: {
+ String ip = target.getAddress().getAddress().getHostAddress();
+ String[] ip_parts = ip.split("\\.");
+ if (ip_parts.length == 4) {
+ ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
+ }
+ Utilities.adminAction(sender.getName(),
+ String.format("Banning Name: %s, IP: %s.", target.getName(), ip), true);
- break;
- }
- case IPBAN:
- {
- String ip = target.getAddress().getAddress().getHostAddress();
- String[] ip_parts = ip.split("\\.");
- if (ip_parts.length == 4)
- {
- ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
- }
- Utilities.adminAction(sender.getName(), String.format("Banning IP: %s.", ip), true);
- BanManager.addIpBan(target);
+ BanManager.addUuidBan(target);
+ BanManager.addIpBan(target);
- target.kickPlayer("IP address banned by Administrator.");
+ target.kickPlayer("IP and username banned by Administrator.");
- break;
- }
- case BAN:
- {
- String ip = target.getAddress().getAddress().getHostAddress();
- String[] ip_parts = ip.split("\\.");
- if (ip_parts.length == 4)
- {
- ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
- }
- Utilities.adminAction(sender.getName(), String.format("Banning Name: %s, IP: %s.", target.getName(), ip), true);
+ break;
+ }
+ case OP: {
+ Utilities.adminAction(sender.getName(),
+ String.format("Opping %s.", target.getName()), false);
+ target.setOp(false);
+ target.sendMessage(FreedomCommand.YOU_ARE_OP);
- BanManager.addUuidBan(target);
- BanManager.addIpBan(target);
+ break;
+ }
+ case DEOP: {
+ Utilities.adminAction(sender.getName(),
+ String.format("Deopping %s.", target.getName()), false);
+ target.setOp(false);
+ target.sendMessage(FreedomCommand.YOU_ARE_NOT_OP);
- target.kickPlayer("IP and username banned by Administrator.");
+ break;
+ }
+ case CI: {
+ target.getInventory().clear();
- break;
- }
- case OP:
- {
- Utilities.adminAction(sender.getName(), String.format("Opping %s.", target.getName()), false);
- target.setOp(false);
- target.sendMessage(FreedomCommand.YOU_ARE_OP);
+ break;
+ }
+ case FR: {
+ PlayerData playerdata = PlayerData.getPlayerData(target);
+ playerdata.setFrozen(!playerdata.isFrozen());
- break;
- }
- case DEOP:
- {
- Utilities.adminAction(sender.getName(), String.format("Deopping %s.", target.getName()), false);
- target.setOp(false);
- target.sendMessage(FreedomCommand.YOU_ARE_NOT_OP);
+ playerMsg(sender,
+ target.getName() + " has been " + (playerdata.isFrozen() ? "frozen"
+ : "unfrozen") + ".");
+ target.sendMessage(
+ ChatColor.AQUA + "You have been " + (playerdata.isFrozen() ? "frozen"
+ : "unfrozen") + ".");
- break;
- }
- case CI:
- {
- target.getInventory().clear();
+ break;
+ }
+ case SMITE: {
+ Command_smite.smite(target);
- break;
- }
- case FR:
- {
- PlayerData playerdata = PlayerData.getPlayerData(target);
- playerdata.setFrozen(!playerdata.isFrozen());
+ break;
+ }
+ }
- playerMsg(sender, target.getName() + " has been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
- target.sendMessage(ChatColor.AQUA + "You have been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
+ return true;
+ }
- break;
- }
- case SMITE:
- {
- Command_smite.smite(target);
+ private enum GadminMode {
+ LIST("list"),
+ KICK("kick"),
+ NAMEBAN("nameban"),
+ IPBAN("ipban"),
+ BAN("ban"),
+ OP("op"),
+ DEOP("deop"),
+ CI("ci"),
+ FR("fr"),
+ SMITE("smite");
+ private final String modeName;
- break;
- }
- }
+ GadminMode(String command) {
+ this.modeName = command;
+ }
- return true;
- }
+ public static GadminMode findMode(String needle) {
+ for (final GadminMode mode : GadminMode.values()) {
+ if (needle.equalsIgnoreCase(mode.getModeName())) {
+ return mode;
+ }
+ }
+ return null;
+ }
+
+ public String getModeName() {
+ return modeName;
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_glist.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_glist.java
index 4125b5c..1909e18 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_glist.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_glist.java
@@ -1,121 +1,107 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.util.ArrayList;
+import java.util.List;
import me.StevenLawson.TotalFreedomMod.admin.AdminList;
import me.StevenLawson.TotalFreedomMod.ban.Ban;
import me.StevenLawson.TotalFreedomMod.ban.BanManager;
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
+import me.StevenLawson.TotalFreedomMod.manager.UUIDManager;
import me.StevenLawson.TotalFreedomMod.player.Player;
import me.StevenLawson.TotalFreedomMod.player.PlayerList;
-import me.StevenLawson.TotalFreedomMod.manager.UUIDManager;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import org.apache.commons.lang3.StringUtils;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
-import java.util.ArrayList;
-import java.util.List;
-
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_glist extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length < 1) {
- return false;
- }
- if (args.length == 1) {
- if (args[0].equalsIgnoreCase("purge")) {
- if (AdminList.isSeniorAdmin(sender))
- {
- PlayerList.purgeAll();
- playerMsg(sender, "Purged playerbase");
- }
- else
- {
- playerMsg(sender, "Only Senior Admins may purge the userlist.");
- }
- return true;
- }
- else
- {
- return false;
- }
- }
- else if (args.length == 2)
- {
- String username;
- final List ips = new ArrayList();
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length < 1) {
+ return false;
+ }
- final org.bukkit.entity.Player player = getPlayer(args[1]);
+ if (args.length == 1) {
+ if (args[0].equalsIgnoreCase("purge")) {
+ if (AdminList.isSeniorAdmin(sender)) {
+ PlayerList.purgeAll();
+ playerMsg(sender, "Purged playerbase");
+ } else {
+ playerMsg(sender, "Only Senior Admins may purge the userlist.");
+ }
+ return true;
+ } else {
+ return false;
+ }
+ } else if (args.length == 2) {
+ String username;
+ final List ips = new ArrayList();
- if (player == null)
- {
- final me.StevenLawson.TotalFreedomMod.player.Player entry = PlayerList.getEntry(UUIDManager.getUniqueId(args[1]));
+ final org.bukkit.entity.Player player = getPlayer(args[1]);
- if (entry == null) {
- playerMsg(sender, "Can't find that user. If target is not logged in, make sure that you spelled the name exactly.");
- return true;
- }
+ if (player == null) {
+ final me.StevenLawson.TotalFreedomMod.player.Player entry = PlayerList.getEntry(
+ UUIDManager.getUniqueId(args[1]));
- username = entry.getLastLoginName();
- for (String ip : entry.getIps()) {
- ips.add(Utilities.getFuzzyIp(ip));
- }
- }
- else
- {
- username = player.getName();
- final Player entry = PlayerList.getEntry(UUIDManager.getUniqueId(player));
+ if (entry == null) {
+ playerMsg(sender,
+ "Can't find that user. If target is not logged in, make sure that you spelled the name exactly.");
+ return true;
+ }
- for (String ip : entry.getIps()) {
- ips.add(Utilities.getFuzzyIp(ip));
- }
+ username = entry.getLastLoginName();
+ for (String ip : entry.getIps()) {
+ ips.add(Utilities.getFuzzyIp(ip));
+ }
+ } else {
+ username = player.getName();
+ final Player entry = PlayerList.getEntry(UUIDManager.getUniqueId(player));
- }
+ for (String ip : entry.getIps()) {
+ ips.add(Utilities.getFuzzyIp(ip));
+ }
- String mode = args[0].toLowerCase();
- if (mode.equalsIgnoreCase("ban"))
- {
- Utilities.adminAction(sender.getName(), "Banning " + username + " and IPs: " + StringUtils.join(ips, ", "), true);
+ }
- final org.bukkit.entity.Player target = getPlayer(username, true);
- if (target != null)
- {
- BanManager.addUuidBan(new Ban(UUIDManager.getUniqueId(target), target.getName()));
- target.kickPlayer("You have been banned by " + sender.getName() + "\n If you think you have been banned wrongly, appeal here: " + ConfigurationEntry.SERVER_BAN_URL.getString());
- }
- else
- {
- BanManager.addUuidBan(new Ban(UUIDManager.getUniqueId(username), username));
- }
+ String mode = args[0].toLowerCase();
+ if (mode.equalsIgnoreCase("ban")) {
+ Utilities.adminAction(sender.getName(),
+ "Banning " + username + " and IPs: " + StringUtils.join(ips, ", "), true);
- for (String ip : ips)
- {
- BanManager.addIpBan(new Ban(ip, username));
- BanManager.addIpBan(new Ban(Utilities.getFuzzyIp(ip), username));
- }
- }
- else if (mode.equalsIgnoreCase("unban"))
- {
- Utilities.adminAction(sender.getName(), "Unbanning " + username + " and IPs: " + StringUtils.join(ips, ", "), true);
- BanManager.unbanUuid(UUIDManager.getUniqueId(username));
- for (String ip : ips)
- {
+ final org.bukkit.entity.Player target = getPlayer(username, true);
+ if (target != null) {
+ BanManager.addUuidBan(
+ new Ban(UUIDManager.getUniqueId(target), target.getName()));
+ target.kickPlayer("You have been banned by " + sender.getName()
+ + "\n If you think you have been banned wrongly, appeal here: "
+ + ConfigurationEntry.SERVER_BAN_URL.getString());
+ } else {
+ BanManager.addUuidBan(new Ban(UUIDManager.getUniqueId(username), username));
+ }
- BanManager.unbanIp(ip);
- BanManager.unbanIp(Utilities.getFuzzyIp(ip));
- }
- }
- else
- {
- return false;
- }
+ for (String ip : ips) {
+ BanManager.addIpBan(new Ban(ip, username));
+ BanManager.addIpBan(new Ban(Utilities.getFuzzyIp(ip), username));
+ }
+ } else if (mode.equalsIgnoreCase("unban")) {
+ Utilities.adminAction(sender.getName(),
+ "Unbanning " + username + " and IPs: " + StringUtils.join(ips, ", "), true);
+ BanManager.unbanUuid(UUIDManager.getUniqueId(username));
+ for (String ip : ips) {
- return true;
- }
- else
- {
- return false;
- }
- }
+ BanManager.unbanIp(ip);
+ BanManager.unbanIp(Utilities.getFuzzyIp(ip));
+ }
+ } else {
+ return false;
+ }
+
+ return true;
+ } else {
+ return false;
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_gtfo.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_gtfo.java
index ec21987..ed87000 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_gtfo.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_gtfo.java
@@ -16,85 +16,86 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_gtfo extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length == 0) {
- return false;
- }
- final Player player = getPlayer(args[0]);
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length == 0) {
+ return false;
+ }
- if (player == null) {
- playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED);
- return true;
- }
+ final Player player = getPlayer(args[0]);
- String reason = null;
- if (args.length >= 2)
- {
- reason = StringUtils.join(ArrayUtils.subarray(args, 1, args.length), " ");
- }
+ if (player == null) {
+ playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED);
+ return true;
+ }
- Utilities.bcastMsg(player.getName() + " has been a VERY naughty, naughty boy.", ChatColor.RED);
+ String reason = null;
+ if (args.length >= 2) {
+ reason = StringUtils.join(ArrayUtils.subarray(args, 1, args.length), " ");
+ }
- // Undo WorldEdits:
- try
- {
- WorldEditBridge.undo(player, 15);
- }
- catch (NoClassDefFoundError ex)
- {
- }
+ Utilities.bcastMsg(player.getName() + " has been a VERY naughty, naughty boy.",
+ ChatColor.RED);
- // rollback
- // RollbackManager.rollback(player.getName());
- // TODO: Use coreprotect API calls
+ // Undo WorldEdits:
+ try {
+ WorldEditBridge.undo(player, 15);
+ } catch (NoClassDefFoundError ex) {
+ }
- // deop
- player.setOp(false);
+ // rollback
+ // RollbackManager.rollback(player.getName());
+ // TODO: Use coreprotect API calls
- // set gamemode to survival:
- player.setGameMode(GameMode.SURVIVAL);
+ // deop
+ player.setOp(false);
- // clear inventory:
- player.getInventory().clear();
+ // set gamemode to survival:
+ player.setGameMode(GameMode.SURVIVAL);
- // strike with lightning effect:
- 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);
- }
- }
+ // clear inventory:
+ player.getInventory().clear();
- // ban IP address:
- String ip = Utilities.getFuzzyIp(player.getAddress().getAddress().getHostAddress());
+ // strike with lightning effect:
+ 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);
+ }
+ }
- final StringBuilder bcast = new StringBuilder()
- .append(ChatColor.RED)
- .append("Banning: ")
- .append(player.getName())
- .append(", IP: ")
- .append(ip);
+ // ban IP address:
+ String ip = Utilities.getFuzzyIp(player.getAddress().getAddress().getHostAddress());
- if (reason != null)
- {
- bcast.append(" - Reason: ").append(ChatColor.YELLOW).append(reason);
- }
+ final StringBuilder bcast = new StringBuilder()
+ .append(ChatColor.RED)
+ .append("Banning: ")
+ .append(player.getName())
+ .append(", IP: ")
+ .append(ip);
- Utilities.bcastMsg(bcast.toString());
+ if (reason != null) {
+ bcast.append(" - Reason: ").append(ChatColor.YELLOW).append(reason);
+ }
- BanManager.addIpBan(new Ban(ip, player.getName(), sender.getName(), null, reason));
+ Utilities.bcastMsg(bcast.toString());
- // ban username:
- BanManager.addUuidBan(new Ban(UUIDManager.getUniqueId(player), player.getName(), sender.getName(), null, reason));
+ BanManager.addIpBan(new Ban(ip, player.getName(), sender.getName(), null, reason));
- // kick Player:
- player.kickPlayer(ChatColor.RED + "GTFO" + (reason != null ? ("\nReason: " + ChatColor.YELLOW + reason) : ""));
+ // ban username:
+ BanManager.addUuidBan(
+ new Ban(UUIDManager.getUniqueId(player), player.getName(), sender.getName(), null,
+ reason));
- return true;
- }
+ // kick Player:
+ player.kickPlayer(
+ ChatColor.RED + "GTFO" + (reason != null ? ("\nReason: " + ChatColor.YELLOW + reason)
+ : ""));
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_halt.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_halt.java
index 9cd396f..eb778c4 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_halt.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_halt.java
@@ -9,88 +9,76 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_halt extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length != 1) {
- return false;
- }
- if (args[0].equalsIgnoreCase("all")) {
- Utilities.adminAction(sender.getName(), "Halting all non-superadmins.", true);
- int counter = 0;
- for (Player player : server.getOnlinePlayers())
- {
- if (!AdminList.isSuperAdmin(player))
- {
- PlayerData.getPlayerData(player).setHalted(true);
- counter++;
- }
- }
- playerMsg(sender, "Halted " + counter + " players.");
- return true;
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length != 1) {
+ return false;
+ }
- if (args[0].equalsIgnoreCase("purge"))
- {
- Utilities.adminAction(sender.getName(), "Unhalting all players.", true);
- int counter = 0;
- for (Player player : server.getOnlinePlayers())
- {
- PlayerData playerdata = PlayerData.getPlayerData(player);
- if (PlayerData.getPlayerData(player).isHalted())
- {
- playerdata.setHalted(false);
- counter++;
- }
- }
- playerMsg(sender, "Unhalted " + counter + " players.");
- return true;
- }
+ if (args[0].equalsIgnoreCase("all")) {
+ Utilities.adminAction(sender.getName(), "Halting all non-superadmins.", true);
+ int counter = 0;
+ for (Player player : server.getOnlinePlayers()) {
+ if (!AdminList.isSuperAdmin(player)) {
+ PlayerData.getPlayerData(player).setHalted(true);
+ counter++;
+ }
+ }
+ playerMsg(sender, "Halted " + counter + " players.");
+ return true;
+ }
- if (args[0].equalsIgnoreCase("list"))
- {
- PlayerData info;
- int count = 0;
- for (Player hp : server.getOnlinePlayers())
- {
- info = PlayerData.getPlayerData(hp);
- if (info.isHalted())
- {
- if (count == 0)
- {
- playerMsg(sender, "Halted players:");
- }
- playerMsg(sender, "- " + hp.getName());
- count++;
- }
- }
- if (count == 0)
- {
- playerMsg(sender, "There are currently no halted players.");
- }
- return true;
- }
+ if (args[0].equalsIgnoreCase("purge")) {
+ Utilities.adminAction(sender.getName(), "Unhalting all players.", true);
+ int counter = 0;
+ for (Player player : server.getOnlinePlayers()) {
+ PlayerData playerdata = PlayerData.getPlayerData(player);
+ if (PlayerData.getPlayerData(player).isHalted()) {
+ playerdata.setHalted(false);
+ counter++;
+ }
+ }
+ playerMsg(sender, "Unhalted " + counter + " players.");
+ return true;
+ }
- final Player player = getPlayer(args[0]);
+ if (args[0].equalsIgnoreCase("list")) {
+ PlayerData info;
+ int count = 0;
+ for (Player hp : server.getOnlinePlayers()) {
+ info = PlayerData.getPlayerData(hp);
+ if (info.isHalted()) {
+ if (count == 0) {
+ playerMsg(sender, "Halted players:");
+ }
+ playerMsg(sender, "- " + hp.getName());
+ count++;
+ }
+ }
+ if (count == 0) {
+ playerMsg(sender, "There are currently no halted players.");
+ }
+ return true;
+ }
- if (player == null)
- {
- sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
- return true;
- }
+ final Player player = getPlayer(args[0]);
- PlayerData playerdata = PlayerData.getPlayerData(player);
- if (!playerdata.isHalted())
- {
- Utilities.adminAction(sender.getName(), "Halting " + player.getName(), true);
- playerdata.setHalted(true);
- return true;
- }
- else
- {
- Utilities.adminAction(sender.getName(), "Unhalting " + player.getName(), true);
- playerdata.setHalted(false);
- return true;
- }
- }
+ if (player == null) {
+ sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
+ return true;
+ }
+
+ PlayerData playerdata = PlayerData.getPlayerData(player);
+ if (!playerdata.isHalted()) {
+ Utilities.adminAction(sender.getName(), "Halting " + player.getName(), true);
+ playerdata.setHalted(true);
+ return true;
+ } else {
+ Utilities.adminAction(sender.getName(), "Unhalting " + player.getName(), true);
+ playerdata.setHalted(false);
+ return true;
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_health.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_health.java
index dad0ec2..40a9e30 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_health.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_health.java
@@ -1,5 +1,7 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.text.DecimalFormat;
+import java.util.concurrent.atomic.AtomicInteger;
import me.StevenLawson.TotalFreedomMod.Log;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.apache.commons.lang.math.DoubleRange;
@@ -9,89 +11,82 @@ import org.bukkit.command.CommandSender;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask;
-import java.text.DecimalFormat;
-import java.util.concurrent.atomic.AtomicInteger;
-
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_health extends FreedomCommand {
- private static final int BYTES_PER_MB = 1024 * 1024;
- private static final DoubleRange TPS_RANGE = new DoubleRange(20.0 - 0.1, 20.0 + 0.1);
- @Override
- public boolean run(final CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- Runtime runtime = Runtime.getRuntime();
- long usedMem = runtime.totalMemory() - runtime.freeMemory();
+ private static final int BYTES_PER_MB = 1024 * 1024;
+ private static final DoubleRange TPS_RANGE = new DoubleRange(20.0 - 0.1, 20.0 + 0.1);
- playerMsg(sender, "Reserved Memory: " + (double) runtime.totalMemory() / (double) BYTES_PER_MB + "mb");
- playerMsg(sender, "Used Memory: " + new DecimalFormat("#").format((double) usedMem / (double) BYTES_PER_MB) + "mb (" + new DecimalFormat("#").format(((double) usedMem / (double) runtime.totalMemory()) * 100.0) + "%)");
- playerMsg(sender, "Max Memory: " + (double) runtime.maxMemory() / (double) BYTES_PER_MB + "mb");
- playerMsg(sender, "Calculating ticks per second, please wait...");
+ @Override
+ public boolean run(final CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ Runtime runtime = Runtime.getRuntime();
+ long usedMem = runtime.totalMemory() - runtime.freeMemory();
- new BukkitRunnable()
- {
- @Override
- public void run()
- {
- try
- {
- TFM_TickMeter tickMeter = new TFM_TickMeter(plugin);
- tickMeter.startTicking();
- Thread.sleep(2500);
- final double ticksPerSecond = tickMeter.stopTicking();
+ playerMsg(sender,
+ "Reserved Memory: " + (double) runtime.totalMemory() / (double) BYTES_PER_MB + "mb");
+ playerMsg(sender, "Used Memory: " + new DecimalFormat("#").format(
+ (double) usedMem / (double) BYTES_PER_MB) + "mb (" + new DecimalFormat("#").format(
+ ((double) usedMem / (double) runtime.totalMemory()) * 100.0) + "%)");
+ playerMsg(sender,
+ "Max Memory: " + (double) runtime.maxMemory() / (double) BYTES_PER_MB + "mb");
+ playerMsg(sender, "Calculating ticks per second, please wait...");
- new BukkitRunnable()
- {
- @Override
- public void run()
- {
- playerMsg(sender, "Ticks per second: " + (TPS_RANGE.containsDouble(ticksPerSecond) ? ChatColor.GREEN : ChatColor.RED) + ticksPerSecond);
- }
- }.runTask(plugin);
- }
- catch (Exception ex)
- {
- Log.severe(ex);
- }
- }
- }.runTaskAsynchronously(plugin);
+ new BukkitRunnable() {
+ @Override
+ public void run() {
+ try {
+ TFM_TickMeter tickMeter = new TFM_TickMeter(plugin);
+ tickMeter.startTicking();
+ Thread.sleep(2500);
+ final double ticksPerSecond = tickMeter.stopTicking();
- return true;
- }
+ new BukkitRunnable() {
+ @Override
+ public void run() {
+ playerMsg(sender,
+ "Ticks per second: " + (TPS_RANGE.containsDouble(ticksPerSecond)
+ ? ChatColor.GREEN : ChatColor.RED) + ticksPerSecond);
+ }
+ }.runTask(plugin);
+ } catch (Exception ex) {
+ Log.severe(ex);
+ }
+ }
+ }.runTaskAsynchronously(plugin);
- private class TFM_TickMeter
- {
- private final AtomicInteger ticks = new AtomicInteger();
- private final TotalFreedomMod plugin;
- private long startTime;
- private BukkitTask task;
+ return true;
+ }
- public TFM_TickMeter(TotalFreedomMod plugin)
- {
- this.plugin = plugin;
- }
+ private class TFM_TickMeter {
- public void startTicking()
- {
- startTime = System.currentTimeMillis();
- ticks.set(0);
+ private final AtomicInteger ticks = new AtomicInteger();
+ private final TotalFreedomMod plugin;
+ private long startTime;
+ private BukkitTask task;
- task = new BukkitRunnable()
- {
- @Override
- public void run()
- {
- ticks.incrementAndGet();
- }
- }.runTaskTimer(plugin, 0L, 1L);
- }
+ public TFM_TickMeter(TotalFreedomMod plugin) {
+ this.plugin = plugin;
+ }
- public double stopTicking()
- {
- task.cancel();
- long elapsed = System.currentTimeMillis() - startTime;
- int tickCount = ticks.get();
+ public void startTicking() {
+ startTime = System.currentTimeMillis();
+ ticks.set(0);
- return (double) tickCount / ((double) elapsed / 1000.0);
- }
- }
+ task = new BukkitRunnable() {
+ @Override
+ public void run() {
+ ticks.incrementAndGet();
+ }
+ }.runTaskTimer(plugin, 0L, 1L);
+ }
+
+ public double stopTicking() {
+ task.cancel();
+ long elapsed = System.currentTimeMillis() - startTime;
+ int tickCount = ticks.get();
+
+ return (double) tickCount / ((double) elapsed / 1000.0);
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_invis.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_invis.java
index ad5af52..2c84718 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_invis.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_invis.java
@@ -1,5 +1,7 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.util.ArrayList;
+import java.util.List;
import me.StevenLawson.TotalFreedomMod.admin.AdminList;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import org.apache.commons.lang3.StringUtils;
@@ -8,55 +10,47 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.potion.PotionEffectType;
-import java.util.ArrayList;
-import java.util.List;
-
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_invis extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- boolean smite = false;
- if (args.length >= 1) {
- if (args[0].equalsIgnoreCase("smite")) {
- Utilities.adminAction(sender.getName(), "Smiting all invisible players", true);
- smite = true;
- } else
- {
- return false;
- }
- }
- List players = new ArrayList();
- int smites = 0;
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ boolean smite = false;
+ if (args.length >= 1) {
+ if (args[0].equalsIgnoreCase("smite")) {
+ Utilities.adminAction(sender.getName(), "Smiting all invisible players", true);
+ smite = true;
+ } else {
+ return false;
+ }
+ }
- for (Player player : server.getOnlinePlayers())
- {
- if (player.hasPotionEffect(PotionEffectType.INVISIBILITY))
- {
- players.add(player.getName());
- if (smite && !AdminList.isSuperAdmin(player))
- {
- player.setHealth(0.0);
- smites++;
- }
- }
- }
+ List players = new ArrayList();
+ int smites = 0;
- if (players.isEmpty())
- {
- playerMsg(sender, "There are no invisible players");
- return true;
- }
+ for (Player player : server.getOnlinePlayers()) {
+ if (player.hasPotionEffect(PotionEffectType.INVISIBILITY)) {
+ players.add(player.getName());
+ if (smite && !AdminList.isSuperAdmin(player)) {
+ player.setHealth(0.0);
+ smites++;
+ }
+ }
+ }
- if (smite)
- {
- playerMsg(sender, "Smitten " + smites + " players");
- }
- else
- {
- playerMsg(sender, "Invisble players (" + players.size() + "): " + StringUtils.join(players, ", "));
- }
+ if (players.isEmpty()) {
+ playerMsg(sender, "There are no invisible players");
+ return true;
+ }
- return true;
- }
+ if (smite) {
+ playerMsg(sender, "Smitten " + smites + " players");
+ } else {
+ playerMsg(sender,
+ "Invisble players (" + players.size() + "): " + StringUtils.join(players, ", "));
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_jumppads.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_jumppads.java
index 7d0b350..362f31d 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_jumppads.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_jumppads.java
@@ -8,80 +8,72 @@ import org.bukkit.command.CommandSender;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_jumppads extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length == 0 || args.length > 2) {
- return false;
- }
- if (args.length == 1) {
- if (args[0].equalsIgnoreCase("info")) {
- playerMsg(sender, "Jumppads: " + (JumpPads.getMode().isOn() ? "Enabled" : "Disabled"), ChatColor.BLUE);
- playerMsg(sender, "Sideways: " + (JumpPads.getMode() == JumpPads.JumpPadMode.NORMAL_AND_SIDEWAYS ? "Enabled" : "Disabled"), ChatColor.BLUE);
- playerMsg(sender, "Strength: " + (JumpPads.getStrength() * 10 - 1), ChatColor.BLUE);
- return true;
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length == 0 || args.length > 2) {
+ return false;
+ }
- if ("off".equals(args[0]))
- {
- Utilities.adminAction(sender.getName(), "Disabling Jumppads", false);
- JumpPads.setMode(JumpPads.JumpPadMode.OFF);
- }
- else
- {
- Utilities.adminAction(sender.getName(), "Enabling Jumppads", false);
- JumpPads.setMode(JumpPads.JumpPadMode.MADGEEK);
- }
- }
- else
- {
- if (JumpPads.getMode() == JumpPads.JumpPadMode.OFF)
- {
- playerMsg(sender, "Jumppads are currently disabled, please enable them before changing jumppads settings.");
- return true;
- }
+ if (args.length == 1) {
+ if (args[0].equalsIgnoreCase("info")) {
+ playerMsg(sender,
+ "Jumppads: " + (JumpPads.getMode().isOn() ? "Enabled" : "Disabled"),
+ ChatColor.BLUE);
+ playerMsg(sender,
+ "Sideways: " + (JumpPads.getMode() == JumpPads.JumpPadMode.NORMAL_AND_SIDEWAYS
+ ? "Enabled" : "Disabled"), ChatColor.BLUE);
+ playerMsg(sender, "Strength: " + (JumpPads.getStrength() * 10 - 1), ChatColor.BLUE);
+ return true;
+ }
- if (args[0].equalsIgnoreCase("sideways"))
- {
- if ("off".equals(args[1]))
- {
- Utilities.adminAction(sender.getName(), "Setting Jumppads mode to: Madgeek", false);
- JumpPads.setMode(JumpPads.JumpPadMode.MADGEEK);
- }
- else
- {
- Utilities.adminAction(sender.getName(), "Setting Jumppads mode to: Normal and Sideways", false);
- JumpPads.setMode(JumpPads.JumpPadMode.NORMAL_AND_SIDEWAYS);
- }
- }
- else if (args[0].equalsIgnoreCase("strength"))
- {
- final float strength;
- try
- {
- strength = Float.parseFloat(args[1]);
- }
- catch (NumberFormatException ex)
- {
- playerMsg(sender, "Invalid Strength");
- return true;
- }
+ if ("off".equals(args[0])) {
+ Utilities.adminAction(sender.getName(), "Disabling Jumppads", false);
+ JumpPads.setMode(JumpPads.JumpPadMode.OFF);
+ } else {
+ Utilities.adminAction(sender.getName(), "Enabling Jumppads", false);
+ JumpPads.setMode(JumpPads.JumpPadMode.MADGEEK);
+ }
+ } else {
+ if (JumpPads.getMode() == JumpPads.JumpPadMode.OFF) {
+ playerMsg(sender,
+ "Jumppads are currently disabled, please enable them before changing jumppads settings.");
+ return true;
+ }
- if (strength > 10 || strength < 1)
- {
- playerMsg(sender, "Invalid Strength: The strength may be 1 through 10.");
- return true;
- }
+ if (args[0].equalsIgnoreCase("sideways")) {
+ if ("off".equals(args[1])) {
+ Utilities.adminAction(sender.getName(), "Setting Jumppads mode to: Madgeek",
+ false);
+ JumpPads.setMode(JumpPads.JumpPadMode.MADGEEK);
+ } else {
+ Utilities.adminAction(sender.getName(),
+ "Setting Jumppads mode to: Normal and Sideways", false);
+ JumpPads.setMode(JumpPads.JumpPadMode.NORMAL_AND_SIDEWAYS);
+ }
+ } else if (args[0].equalsIgnoreCase("strength")) {
+ final float strength;
+ try {
+ strength = Float.parseFloat(args[1]);
+ } catch (NumberFormatException ex) {
+ playerMsg(sender, "Invalid Strength");
+ return true;
+ }
- Utilities.adminAction(sender.getName(), "Setting Jumppads strength to: " + strength, false);
- JumpPads.setStrength((strength / 10) + 0.1F);
- }
- else
- {
- return false;
- }
- }
+ if (strength > 10 || strength < 1) {
+ playerMsg(sender, "Invalid Strength: The strength may be 1 through 10.");
+ return true;
+ }
- return true;
- }
+ Utilities.adminAction(sender.getName(), "Setting Jumppads strength to: " + strength,
+ false);
+ JumpPads.setStrength((strength / 10) + 0.1F);
+ } else {
+ return false;
+ }
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_kicknoob.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_kicknoob.java
index d26a566..92232ad 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_kicknoob.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_kicknoob.java
@@ -9,16 +9,18 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.BOTH, blockHostConsole = true)
public class Command_kicknoob extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- Utilities.adminAction(sender.getName(), "Disconnecting all non-superadmins.", true);
- for (Player player : server.getOnlinePlayers()) {
- if (!AdminList.isSuperAdmin(player)) {
- player.kickPlayer(ChatColor.RED + "Disconnected by admin.");
- }
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ Utilities.adminAction(sender.getName(), "Disconnecting all non-superadmins.", true);
- return true;
- }
+ for (Player player : server.getOnlinePlayers()) {
+ if (!AdminList.isSuperAdmin(player)) {
+ player.kickPlayer(ChatColor.RED + "Disconnected by admin.");
+ }
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_landmine.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_landmine.java
index 17e27a6..ec4f5e3 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_landmine.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_landmine.java
@@ -1,5 +1,8 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
import org.bukkit.ChatColor;
import org.bukkit.Location;
@@ -10,74 +13,65 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
@CommandPermissions(level = AdminLevel.OP, source = SourceType.ONLY_IN_GAME)
public class Command_landmine extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (!ConfigurationEntry.LANDMINES_ENABLED.getBoolean()) {
- playerMsg(sender, "The landmine is currently disabled.", ChatColor.GREEN);
- return true;
- }
- if (!ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean()) {
- playerMsg(sender, "Explosions are currently disabled.", ChatColor.GREEN);
- return true;
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (!ConfigurationEntry.LANDMINES_ENABLED.getBoolean()) {
+ playerMsg(sender, "The landmine is currently disabled.", ChatColor.GREEN);
+ return true;
+ }
- double radius = 2.0;
+ if (!ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean()) {
+ playerMsg(sender, "Explosions are currently disabled.", ChatColor.GREEN);
+ return true;
+ }
- if (args.length >= 1)
- {
- if ("list".equalsIgnoreCase(args[0]))
- {
- final Iterator landmines = TFM_LandmineData.landmines.iterator();
- while (landmines.hasNext())
- {
- playerMsg(sender, landmines.next().toString());
- }
- return true;
- }
+ double radius = 2.0;
- try
- {
- radius = Math.max(2.0, Math.min(6.0, Double.parseDouble(args[0])));
- }
- catch (NumberFormatException ex)
- {
- }
- }
+ if (args.length >= 1) {
+ if ("list".equalsIgnoreCase(args[0])) {
+ final Iterator landmines = TFM_LandmineData.landmines.iterator();
+ while (landmines.hasNext()) {
+ playerMsg(sender, landmines.next().toString());
+ }
+ return true;
+ }
- final Block landmine = sender_p.getLocation().getBlock().getRelative(BlockFace.DOWN);
- landmine.setType(Material.TNT);
- TFM_LandmineData.landmines.add(new TFM_LandmineData(landmine.getLocation(), sender_p, radius));
+ try {
+ radius = Math.max(2.0, Math.min(6.0, Double.parseDouble(args[0])));
+ } catch (NumberFormatException ex) {
+ }
+ }
- playerMsg(sender, "Landmine planted - Radius = " + radius + " blocks.", ChatColor.GREEN);
+ final Block landmine = sender_p.getLocation().getBlock().getRelative(BlockFace.DOWN);
+ landmine.setType(Material.TNT);
+ TFM_LandmineData.landmines.add(
+ new TFM_LandmineData(landmine.getLocation(), sender_p, radius));
- return true;
- }
+ playerMsg(sender, "Landmine planted - Radius = " + radius + " blocks.", ChatColor.GREEN);
- public static class TFM_LandmineData
- {
- public static final List landmines = new ArrayList();
- public final Location location;
- public final Player player;
- public final double radius;
+ return true;
+ }
- public TFM_LandmineData(Location location, Player player, double radius)
- {
- this.location = location;
- this.player = player;
- this.radius = radius;
- }
+ public static class TFM_LandmineData {
- @Override
- public String toString()
- {
- return this.location.toString() + ", " + this.radius + ", " + this.player.getName();
- }
- }
+ public static final List landmines = new ArrayList();
+ public final Location location;
+ public final Player player;
+ public final double radius;
+
+ public TFM_LandmineData(Location location, Player player, double radius) {
+ this.location = location;
+ this.player = player;
+ this.radius = radius;
+ }
+
+ @Override
+ public String toString() {
+ return this.location.toString() + ", " + this.radius + ", " + this.player.getName();
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_lastcmd.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_lastcmd.java
index 3920bb3..7f220c9 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_lastcmd.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_lastcmd.java
@@ -8,31 +8,31 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_lastcmd extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length == 0) {
- return false;
- }
- final Player player = getPlayer(args[0]);
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length == 0) {
+ return false;
+ }
- if (player == null) {
- playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
- return true;
- }
+ final Player player = getPlayer(args[0]);
- final PlayerData playerdata = PlayerData.getPlayerData(player);
+ if (player == null) {
+ playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
+ return true;
+ }
- if (playerdata != null)
- {
- String lastCommand = playerdata.getLastCommand();
- if (lastCommand.isEmpty())
- {
- lastCommand = "(none)";
- }
- playerMsg(sender, player.getName() + " - Last Command: " + lastCommand, ChatColor.GRAY);
- }
+ final PlayerData playerdata = PlayerData.getPlayerData(player);
- return true;
- }
+ if (playerdata != null) {
+ String lastCommand = playerdata.getLastCommand();
+ if (lastCommand.isEmpty()) {
+ lastCommand = "(none)";
+ }
+ playerMsg(sender, player.getName() + " - Last Command: " + lastCommand, ChatColor.GRAY);
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_list.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_list.java
index eeb030f..0340a9c 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_list.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_list.java
@@ -15,83 +15,84 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
public class Command_list extends FreedomCommand {
- private enum ListFilter {
- ALL,
- ADMINS,
- IMPOSTORS
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length > 1) {
+ return false;
+ }
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
- String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length > 1) {
- return false;
- }
+ if (Utilities.isFromHostConsole(sender.getName())) {
+ final List names = new ArrayList();
+ for (Player player : server.getOnlinePlayers()) {
+ if (VanishManager.isVanished(player)) {
+ continue;
+ }
+ names.add(player.getName());
+ }
+ playerMsg(sender,
+ "There are " + names.size() + "/" + VanishManager.getFakeOnlinePlayers()
+ + " players online:\n" + StringUtils.join(names, ", "), ChatColor.WHITE);
+ return true;
+ }
- if (Utilities.isFromHostConsole(sender.getName())) {
- final List names = new ArrayList();
- for (Player player : server.getOnlinePlayers()) {
- if (VanishManager.isVanished(player)) {
- continue;
- }
- names.add(player.getName());
- }
- playerMsg(sender,
- "There are " + names.size() + "/" + VanishManager.getFakeOnlinePlayers()
- + " players online:\n" + StringUtils.join(names, ", "), ChatColor.WHITE);
- return true;
- }
+ final ListFilter listFilter;
+ if (args.length == 1) {
+ if ("-a".equals(args[0])) {
+ listFilter = ListFilter.ADMINS;
+ } else if ("-i".equals(args[0])) {
+ listFilter = ListFilter.IMPOSTORS;
+ } else {
+ return false;
+ }
+ } else {
+ listFilter = ListFilter.ALL;
+ }
- final ListFilter listFilter;
- if (args.length == 1) {
- if ("-a".equals(args[0])) {
- listFilter = ListFilter.ADMINS;
- } else if ("-i".equals(args[0])) {
- listFilter = ListFilter.IMPOSTORS;
- } else {
- return false;
- }
- } else {
- listFilter = ListFilter.ALL;
- }
+ final StringBuilder onlineStats = new StringBuilder();
+ final StringBuilder onlineUsers = new StringBuilder();
- final StringBuilder onlineStats = new StringBuilder();
- final StringBuilder onlineUsers = new StringBuilder();
+ onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED)
+ .append(VanishManager.getFakeOnlinePlayers());
+ onlineStats.append(ChatColor.BLUE).append(" out of a maximum ").append(ChatColor.RED)
+ .append(server.getMaxPlayers());
+ onlineStats.append(ChatColor.BLUE).append(" players online.");
- onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED)
- .append(VanishManager.getFakeOnlinePlayers());
- onlineStats.append(ChatColor.BLUE).append(" out of a maximum ").append(ChatColor.RED)
- .append(server.getMaxPlayers());
- onlineStats.append(ChatColor.BLUE).append(" players online.");
+ final List names = new ArrayList();
+ for (Player player : server.getOnlinePlayers()) {
+ if (VanishManager.isVanished(player)) {
+ continue;
+ }
- final List names = new ArrayList();
- for (Player player : server.getOnlinePlayers()) {
- if (VanishManager.isVanished(player))
- continue;
+ if (listFilter == ListFilter.ADMINS && !AdminList.isSuperAdmin(player)) {
+ continue;
+ }
- if (listFilter == ListFilter.ADMINS && !AdminList.isSuperAdmin(player)) {
- continue;
- }
+ if (listFilter == ListFilter.IMPOSTORS && !AdminList.isAdminImpostor(player)) {
+ continue;
+ }
- if (listFilter == ListFilter.IMPOSTORS && !AdminList.isAdminImpostor(player)) {
- continue;
- }
+ names.add(PlayerRank.fromSender(player).getPrefix() + player.getName());
+ }
- names.add(PlayerRank.fromSender(player).getPrefix() + player.getName());
- }
+ onlineUsers.append("Connected ");
+ onlineUsers.append(listFilter == ListFilter.ADMINS ? "admins: " : "players: ");
+ onlineUsers.append(StringUtils.join(names, ChatColor.WHITE + ", "));
- onlineUsers.append("Connected ");
- onlineUsers.append(listFilter == ListFilter.ADMINS ? "admins: " : "players: ");
- onlineUsers.append(StringUtils.join(names, ChatColor.WHITE + ", "));
+ if (senderIsConsole) {
+ sender.sendMessage(ChatColor.stripColor(onlineStats.toString()));
+ sender.sendMessage(ChatColor.stripColor(onlineUsers.toString()));
+ } else {
+ sender.sendMessage(onlineStats.toString());
+ sender.sendMessage(onlineUsers.toString());
+ }
- if (senderIsConsole) {
- sender.sendMessage(ChatColor.stripColor(onlineStats.toString()));
- sender.sendMessage(ChatColor.stripColor(onlineUsers.toString()));
- } else {
- sender.sendMessage(onlineStats.toString());
- sender.sendMessage(onlineUsers.toString());
- }
+ return true;
+ }
- return true;
- }
+ private enum ListFilter {
+ ALL,
+ ADMINS,
+ IMPOSTORS
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_localspawn.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_localspawn.java
index 75771ef..d9162de 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_localspawn.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_localspawn.java
@@ -5,10 +5,13 @@ import org.bukkit.command.CommandSender;
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.ONLY_IN_GAME)
public class Command_localspawn extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- sender_p.teleport(sender_p.getWorld().getSpawnLocation());
- playerMsg(sender, "Teleported to spawnpoint for world \"" + sender_p.getWorld().getName() + "\".");
- return true;
- }
+
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ sender_p.teleport(sender_p.getWorld().getSpawnLocation());
+ playerMsg(sender,
+ "Teleported to spawnpoint for world \"" + sender_p.getWorld().getName() + "\".");
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_lockup.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_lockup.java
index 6a3897e..f8d9b58 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_lockup.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_lockup.java
@@ -10,110 +10,87 @@ import org.bukkit.scheduler.BukkitTask;
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, blockHostConsole = true)
public class Command_lockup extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length == 1) {
- if (args[0].equalsIgnoreCase("all")) {
- Utilities.adminAction(sender.getName(), "Locking up all players", true);
- for (Player player : server.getOnlinePlayers()) {
- startLockup(player);
- }
- playerMsg(sender, "Locked up all players.");
- }
- else if (args[0].equalsIgnoreCase("purge"))
- {
- Utilities.adminAction(sender.getName(), "Unlocking all players", true);
- for (Player player : server.getOnlinePlayers())
- {
- cancelLockup(player);
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length == 1) {
+ if (args[0].equalsIgnoreCase("all")) {
+ Utilities.adminAction(sender.getName(), "Locking up all players", true);
- playerMsg(sender, "Unlocked all players.");
- }
- else
- {
- return false;
- }
- }
- else if (args.length == 2)
- {
- if (args[1].equalsIgnoreCase("on"))
- {
- final Player player = getPlayer(args[0]);
+ for (Player player : server.getOnlinePlayers()) {
+ startLockup(player);
+ }
+ playerMsg(sender, "Locked up all players.");
+ } else if (args[0].equalsIgnoreCase("purge")) {
+ Utilities.adminAction(sender.getName(), "Unlocking all players", true);
+ for (Player player : server.getOnlinePlayers()) {
+ cancelLockup(player);
+ }
- if (player == null)
- {
- sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
- return true;
- }
+ playerMsg(sender, "Unlocked all players.");
+ } else {
+ return false;
+ }
+ } else if (args.length == 2) {
+ if (args[1].equalsIgnoreCase("on")) {
+ final Player player = getPlayer(args[0]);
- Utilities.adminAction(sender.getName(), "Locking up " + player.getName(), true);
- startLockup(player);
- playerMsg(sender, "Locked up " + player.getName() + ".");
- }
- else if ("off".equals(args[1]))
- {
- final Player player = getPlayer(args[0]);
+ if (player == null) {
+ sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
+ return true;
+ }
- if (player == null)
- {
- sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
- return true;
- }
+ Utilities.adminAction(sender.getName(), "Locking up " + player.getName(), true);
+ startLockup(player);
+ playerMsg(sender, "Locked up " + player.getName() + ".");
+ } else if ("off".equals(args[1])) {
+ final Player player = getPlayer(args[0]);
- Utilities.adminAction(sender.getName(), "Unlocking " + player.getName(), true);
- cancelLockup(player);
- playerMsg(sender, "Unlocked " + player.getName() + ".");
- }
- else
- {
- return false;
- }
- }
- else
- {
- return false;
- }
+ if (player == null) {
+ sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
+ return true;
+ }
- return true;
- }
+ Utilities.adminAction(sender.getName(), "Unlocking " + player.getName(), true);
+ cancelLockup(player);
+ playerMsg(sender, "Unlocked " + player.getName() + ".");
+ } else {
+ return false;
+ }
+ } else {
+ return false;
+ }
- private void cancelLockup(PlayerData playerdata)
- {
- BukkitTask lockupScheduleID = playerdata.getLockupScheduleID();
- if (lockupScheduleID != null)
- {
- lockupScheduleID.cancel();
- playerdata.setLockupScheduleID(null);
- }
- }
+ return true;
+ }
- private void cancelLockup(final Player player)
- {
- cancelLockup(PlayerData.getPlayerData(player));
- }
+ private void cancelLockup(PlayerData playerdata) {
+ BukkitTask lockupScheduleID = playerdata.getLockupScheduleID();
+ if (lockupScheduleID != null) {
+ lockupScheduleID.cancel();
+ playerdata.setLockupScheduleID(null);
+ }
+ }
- private void startLockup(final Player player)
- {
- final PlayerData playerdata = PlayerData.getPlayerData(player);
+ private void cancelLockup(final Player player) {
+ cancelLockup(PlayerData.getPlayerData(player));
+ }
- cancelLockup(playerdata);
+ private void startLockup(final Player player) {
+ final PlayerData playerdata = PlayerData.getPlayerData(player);
- playerdata.setLockupScheduleID(new BukkitRunnable()
- {
- @Override
- public void run()
- {
- if (player.isOnline())
- {
- player.openInventory(player.getInventory());
- }
- else
- {
- cancelLockup(playerdata);
- }
- }
- }.runTaskTimer(plugin, 0L, 5L));
- }
+ cancelLockup(playerdata);
+
+ playerdata.setLockupScheduleID(new BukkitRunnable() {
+ @Override
+ public void run() {
+ if (player.isOnline()) {
+ player.openInventory(player.getInventory());
+ } else {
+ cancelLockup(playerdata);
+ }
+ }
+ }.runTaskTimer(plugin, 0L, 5L));
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_logs.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_logs.java
index 58b5c62..e387c45 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_logs.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_logs.java
@@ -1,5 +1,14 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
import me.StevenLawson.TotalFreedomMod.Log;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import me.StevenLawson.TotalFreedomMod.admin.Admin;
@@ -11,144 +20,128 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
-import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.*;
-import java.util.Map.Entry;
-
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_IN_GAME)
public class Command_logs extends FreedomCommand {
- public static void deactivateSuperadmin(Admin superadmin) {
- for (String ip : superadmin.getIps()) {
- updateLogsRegistration(null, superadmin.getLastLoginName(), ip, LogsRegistrationMode.DELETE);
- }
- }
- public static void updateLogsRegistration(final CommandSender sender, final Player target, final LogsRegistrationMode mode)
- {
- updateLogsRegistration(sender, target.getName(), target.getAddress().getAddress().getHostAddress().trim(), mode);
- }
+ public static void deactivateSuperadmin(Admin superadmin) {
+ for (String ip : superadmin.getIps()) {
+ updateLogsRegistration(null, superadmin.getLastLoginName(), ip,
+ LogsRegistrationMode.DELETE);
+ }
+ }
- public static void updateLogsRegistration(final CommandSender sender, final String targetName, final String targetIP, final LogsRegistrationMode mode)
- {
- final String logsRegisterURL = ConfigurationEntry.LOGS_URL.getString();
- final String logsRegisterPassword = ConfigurationEntry.LOGS_SECRET.getString();
+ public static void updateLogsRegistration(final CommandSender sender, final Player target,
+ final LogsRegistrationMode mode) {
+ updateLogsRegistration(sender, target.getName(),
+ target.getAddress().getAddress().getHostAddress().trim(), mode);
+ }
- if (logsRegisterURL == null || logsRegisterPassword == null || logsRegisterURL.isEmpty() || logsRegisterPassword.isEmpty())
- {
- return;
- }
+ public static void updateLogsRegistration(final CommandSender sender, final String targetName,
+ final String targetIP, final LogsRegistrationMode mode) {
+ final String logsRegisterURL = ConfigurationEntry.LOGS_URL.getString();
+ final String logsRegisterPassword = ConfigurationEntry.LOGS_SECRET.getString();
- new BukkitRunnable()
- {
- @Override
- public void run()
- {
- try
- {
- if (sender != null)
- {
- sender.sendMessage(ChatColor.YELLOW + "Connecting...");
- }
+ if (logsRegisterURL == null || logsRegisterPassword == null || logsRegisterURL.isEmpty()
+ || logsRegisterPassword.isEmpty()) {
+ return;
+ }
- URL url = new URLBuilder(logsRegisterURL)
- .addQueryParameter("mode", mode.toString())
- .addQueryParameter("password", logsRegisterPassword)
- .addQueryParameter("name", targetName)
- .addQueryParameter("ip", targetIP)
- .getURL();
+ new BukkitRunnable() {
+ @Override
+ public void run() {
+ try {
+ if (sender != null) {
+ sender.sendMessage(ChatColor.YELLOW + "Connecting...");
+ }
- HttpURLConnection connection = (HttpURLConnection) url.openConnection();
- connection.setConnectTimeout(1000 * 5);
- connection.setReadTimeout(1000 * 5);
- connection.setUseCaches(false);
- connection.setRequestMethod("HEAD");
+ URL url = new URLBuilder(logsRegisterURL)
+ .addQueryParameter("mode", mode.toString())
+ .addQueryParameter("password", logsRegisterPassword)
+ .addQueryParameter("name", targetName)
+ .addQueryParameter("ip", targetIP)
+ .getURL();
- final int responseCode = connection.getResponseCode();
+ HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+ connection.setConnectTimeout(1000 * 5);
+ connection.setReadTimeout(1000 * 5);
+ connection.setUseCaches(false);
+ connection.setRequestMethod("HEAD");
- if (sender != null)
- {
- new BukkitRunnable()
- {
- @Override
- public void run()
- {
- if (responseCode == 200)
- {
- sender.sendMessage(ChatColor.GREEN + "Registration " + mode + "d.");
- }
- else
- {
- sender.sendMessage(ChatColor.RED + "Error contacting logs registration server.");
- }
- }
- }.runTask(TotalFreedomMod.plugin);
- }
- } catch (Exception ex) {
- Log.severe(ex);
- }
- }
- }.runTaskAsynchronously(TotalFreedomMod.plugin);
- }
+ final int responseCode = connection.getResponseCode();
- @Override
- public boolean run(final CommandSender sender, final org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- LogsRegistrationMode mode = LogsRegistrationMode.UPDATE;
+ if (sender != null) {
+ new BukkitRunnable() {
+ @Override
+ public void run() {
+ if (responseCode == 200) {
+ sender.sendMessage(
+ ChatColor.GREEN + "Registration " + mode + "d.");
+ } else {
+ sender.sendMessage(ChatColor.RED
+ + "Error contacting logs registration server.");
+ }
+ }
+ }.runTask(TotalFreedomMod.plugin);
+ }
+ } catch (Exception ex) {
+ Log.severe(ex);
+ }
+ }
+ }.runTaskAsynchronously(TotalFreedomMod.plugin);
+ }
- if (args.length == 1) {
- mode = ("off".equals(args[0]) ? LogsRegistrationMode.DELETE : LogsRegistrationMode.UPDATE);
- }
+ @Override
+ public boolean run(final CommandSender sender, final org.bukkit.entity.Player sender_p,
+ Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
+ LogsRegistrationMode mode = LogsRegistrationMode.UPDATE;
- updateLogsRegistration(sender, sender_p, mode);
+ if (args.length == 1) {
+ mode = ("off".equals(args[0]) ? LogsRegistrationMode.DELETE
+ : LogsRegistrationMode.UPDATE);
+ }
- return true;
- }
+ updateLogsRegistration(sender, sender_p, mode);
- public enum LogsRegistrationMode
- {
- UPDATE("update"), DELETE("delete");
- private final String mode;
+ return true;
+ }
- LogsRegistrationMode(String mode)
- {
- this.mode = mode;
- }
+ public enum LogsRegistrationMode {
+ UPDATE("update"), DELETE("delete");
+ private final String mode;
- @Override
- public String toString()
- {
- return mode;
- }
- }
+ LogsRegistrationMode(String mode) {
+ this.mode = mode;
+ }
- private static class URLBuilder
- {
- private final String requestPath;
- private final Map queryStringMap = new HashMap();
+ @Override
+ public String toString() {
+ return mode;
+ }
+ }
- public URLBuilder(String requestPath)
- {
- this.requestPath = requestPath;
- }
+ private static class URLBuilder {
- public URLBuilder addQueryParameter(String key, String value)
- {
- queryStringMap.put(key, value);
- return this;
- }
+ private final String requestPath;
+ private final Map queryStringMap = new HashMap();
- public URL getURL() throws MalformedURLException
- {
- List pairs = new ArrayList();
- Iterator> it = queryStringMap.entrySet().iterator();
- while (it.hasNext())
- {
- Entry pair = it.next();
- pairs.add(pair.getKey() + "=" + pair.getValue());
- }
+ public URLBuilder(String requestPath) {
+ this.requestPath = requestPath;
+ }
- return new URL(requestPath + "?" + StringUtils.join(pairs, "&"));
- }
- }
+ public URLBuilder addQueryParameter(String key, String value) {
+ queryStringMap.put(key, value);
+ return this;
+ }
+
+ public URL getURL() throws MalformedURLException {
+ List pairs = new ArrayList();
+ Iterator> it = queryStringMap.entrySet().iterator();
+ while (it.hasNext()) {
+ Entry pair = it.next();
+ pairs.add(pair.getKey() + "=" + pair.getValue());
+ }
+
+ return new URL(requestPath + "?" + StringUtils.join(pairs, "&"));
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_moblimiter.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_moblimiter.java
index c90cbfd..da95549 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_moblimiter.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_moblimiter.java
@@ -7,70 +7,67 @@ import org.bukkit.command.CommandSender;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_CONSOLE)
public class Command_moblimiter extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length < 1) {
- return false;
- }
- if (args[0].equalsIgnoreCase("on")) {
- ConfigurationEntry.MOB_LIMITER_ENABLED.setBoolean(true);
- }
- else if (args[0].equalsIgnoreCase("off"))
- {
- ConfigurationEntry.MOB_LIMITER_ENABLED.setBoolean(false);
- }
- else if (args[0].equalsIgnoreCase("dragon"))
- {
- ConfigurationEntry.MOB_LIMITER_DISABLE_DRAGON.setBoolean(!ConfigurationEntry.MOB_LIMITER_DISABLE_DRAGON.getBoolean());
- }
- else if (args[0].equalsIgnoreCase("giant"))
- {
- ConfigurationEntry.MOB_LIMITER_DISABLE_GIANT.setBoolean(!ConfigurationEntry.MOB_LIMITER_DISABLE_GIANT.getBoolean());
- }
- else if (args[0].equalsIgnoreCase("slime"))
- {
- ConfigurationEntry.MOB_LIMITER_DISABLE_SLIME.setBoolean(!ConfigurationEntry.MOB_LIMITER_DISABLE_SLIME.getBoolean());
- }
- else if (args[0].equalsIgnoreCase("ghast"))
- {
- ConfigurationEntry.MOB_LIMITER_DISABLE_GHAST.setBoolean(!ConfigurationEntry.MOB_LIMITER_DISABLE_GHAST.getBoolean());
- }
- else
- {
- if (args.length < 2)
- {
- return false;
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length < 1) {
+ return false;
+ }
- if (args[0].equalsIgnoreCase("setmax"))
- {
- try
- {
- ConfigurationEntry.MOB_LIMITER_MAX.setInteger(Math.max(0, Math.min(2000, Integer.parseInt(args[1]))));
- }
- catch (NumberFormatException nfex)
- {
- }
- }
- }
+ if (args[0].equalsIgnoreCase("on")) {
+ ConfigurationEntry.MOB_LIMITER_ENABLED.setBoolean(true);
+ } else if (args[0].equalsIgnoreCase("off")) {
+ ConfigurationEntry.MOB_LIMITER_ENABLED.setBoolean(false);
+ } else if (args[0].equalsIgnoreCase("dragon")) {
+ ConfigurationEntry.MOB_LIMITER_DISABLE_DRAGON.setBoolean(
+ !ConfigurationEntry.MOB_LIMITER_DISABLE_DRAGON.getBoolean());
+ } else if (args[0].equalsIgnoreCase("giant")) {
+ ConfigurationEntry.MOB_LIMITER_DISABLE_GIANT.setBoolean(
+ !ConfigurationEntry.MOB_LIMITER_DISABLE_GIANT.getBoolean());
+ } else if (args[0].equalsIgnoreCase("slime")) {
+ ConfigurationEntry.MOB_LIMITER_DISABLE_SLIME.setBoolean(
+ !ConfigurationEntry.MOB_LIMITER_DISABLE_SLIME.getBoolean());
+ } else if (args[0].equalsIgnoreCase("ghast")) {
+ ConfigurationEntry.MOB_LIMITER_DISABLE_GHAST.setBoolean(
+ !ConfigurationEntry.MOB_LIMITER_DISABLE_GHAST.getBoolean());
+ } else {
+ if (args.length < 2) {
+ return false;
+ }
- if (ConfigurationEntry.MOB_LIMITER_ENABLED.getBoolean())
- {
- sender.sendMessage("Moblimiter enabled. Maximum mobcount set to: " + ConfigurationEntry.MOB_LIMITER_MAX.getInteger() + ".");
+ if (args[0].equalsIgnoreCase("setmax")) {
+ try {
+ ConfigurationEntry.MOB_LIMITER_MAX.setInteger(
+ Math.max(0, Math.min(2000, Integer.parseInt(args[1]))));
+ } catch (NumberFormatException nfex) {
+ }
+ }
+ }
- playerMsg(sender, "Dragon: " + (ConfigurationEntry.MOB_LIMITER_DISABLE_DRAGON.getBoolean() ? "disabled" : "enabled") + ".");
- playerMsg(sender, "Giant: " + (ConfigurationEntry.MOB_LIMITER_DISABLE_GIANT.getBoolean() ? "disabled" : "enabled") + ".");
- playerMsg(sender, "Slime: " + (ConfigurationEntry.MOB_LIMITER_DISABLE_SLIME.getBoolean() ? "disabled" : "enabled") + ".");
- playerMsg(sender, "Ghast: " + (ConfigurationEntry.MOB_LIMITER_DISABLE_GHAST.getBoolean() ? "disabled" : "enabled") + ".");
- }
- else
- {
- playerMsg(sender, "Moblimiter is disabled. No mob restrictions are in effect.");
- }
+ if (ConfigurationEntry.MOB_LIMITER_ENABLED.getBoolean()) {
+ sender.sendMessage("Moblimiter enabled. Maximum mobcount set to: "
+ + ConfigurationEntry.MOB_LIMITER_MAX.getInteger() + ".");
- GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.DO_MOB_SPAWNING, !ConfigurationEntry.MOB_LIMITER_ENABLED.getBoolean());
+ playerMsg(sender,
+ "Dragon: " + (ConfigurationEntry.MOB_LIMITER_DISABLE_DRAGON.getBoolean()
+ ? "disabled" : "enabled") + ".");
+ playerMsg(sender,
+ "Giant: " + (ConfigurationEntry.MOB_LIMITER_DISABLE_GIANT.getBoolean() ? "disabled"
+ : "enabled") + ".");
+ playerMsg(sender,
+ "Slime: " + (ConfigurationEntry.MOB_LIMITER_DISABLE_SLIME.getBoolean() ? "disabled"
+ : "enabled") + ".");
+ playerMsg(sender,
+ "Ghast: " + (ConfigurationEntry.MOB_LIMITER_DISABLE_GHAST.getBoolean() ? "disabled"
+ : "enabled") + ".");
+ } else {
+ playerMsg(sender, "Moblimiter is disabled. No mob restrictions are in effect.");
+ }
- return true;
- }
+ GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.DO_MOB_SPAWNING,
+ !ConfigurationEntry.MOB_LIMITER_ENABLED.getBoolean());
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_mp.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_mp.java
index 1a38e5b..e48646d 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_mp.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_mp.java
@@ -4,32 +4,36 @@ import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
-import org.bukkit.entity.*;
+import org.bukkit.entity.Ambient;
+import org.bukkit.entity.Creature;
+import org.bukkit.entity.EnderDragon;
+import org.bukkit.entity.Entity;
+import org.bukkit.entity.Ghast;
+import org.bukkit.entity.Slime;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_mp extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- playerMsg(sender, "Purging all mobs...");
- playerMsg(sender, purgeMobs() + " mobs removed.");
- return true;
- }
- public static int purgeMobs()
- {
- int removed = 0;
- for (World world : Bukkit.getWorlds())
- {
- for (Entity ent : world.getLivingEntities())
- {
- if (ent instanceof Creature || ent instanceof Ghast || ent instanceof Slime || ent instanceof EnderDragon || ent instanceof Ambient)
- {
- ent.remove();
- removed++;
- }
- }
- }
+ public static int purgeMobs() {
+ int removed = 0;
+ for (World world : Bukkit.getWorlds()) {
+ for (Entity ent : world.getLivingEntities()) {
+ if (ent instanceof Creature || ent instanceof Ghast || ent instanceof Slime
+ || ent instanceof EnderDragon || ent instanceof Ambient) {
+ ent.remove();
+ removed++;
+ }
+ }
+ }
- return removed;
- }
+ return removed;
+ }
+
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ playerMsg(sender, "Purging all mobs...");
+ playerMsg(sender, purgeMobs() + " mobs removed.");
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_mp44.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_mp44.java
index c50f0e2..b533621 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_mp44.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_mp44.java
@@ -10,35 +10,36 @@ import org.bukkit.inventory.ItemStack;
@CommandPermissions(level = AdminLevel.OP, source = SourceType.ONLY_IN_GAME)
public class Command_mp44 extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (!ConfigurationEntry.MP44_ENABLED.getBoolean()) {
- playerMsg(sender, "The mp44 is currently disabled.", ChatColor.GREEN);
- return true;
- }
- if (args.length == 0) {
- return false;
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (!ConfigurationEntry.MP44_ENABLED.getBoolean()) {
+ playerMsg(sender, "The mp44 is currently disabled.", ChatColor.GREEN);
+ return true;
+ }
- PlayerData playerdata = PlayerData.getPlayerData(sender_p);
+ if (args.length == 0) {
+ return false;
+ }
- if (args[0].equalsIgnoreCase("draw"))
- {
- playerdata.armMP44();
+ PlayerData playerdata = PlayerData.getPlayerData(sender_p);
- playerMsg(sender, "mp44 is ARMED! Left click with gunpowder to start firing, left click again to quit.", ChatColor.GREEN);
- playerMsg(sender, "Type /mp44 sling to disable. -by Madgeek1450", ChatColor.GREEN);
+ if (args[0].equalsIgnoreCase("draw")) {
+ playerdata.armMP44();
- sender_p.setItemInHand(new ItemStack(Material.SULPHUR, 1));
- }
- else
- {
- playerdata.disarmMP44();
+ playerMsg(sender,
+ "mp44 is ARMED! Left click with gunpowder to start firing, left click again to quit.",
+ ChatColor.GREEN);
+ playerMsg(sender, "Type /mp44 sling to disable. -by Madgeek1450", ChatColor.GREEN);
- sender.sendMessage(ChatColor.GREEN + "mp44 Disarmed.");
- }
+ sender_p.setItemInHand(new ItemStack(Material.SULPHUR, 1));
+ } else {
+ playerdata.disarmMP44();
- return true;
- }
+ sender.sendMessage(ChatColor.GREEN + "mp44 Disarmed.");
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_nether.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_nether.java
index 09c141f..9acbbde 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_nether.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_nether.java
@@ -6,9 +6,11 @@ import org.bukkit.command.CommandSender;
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.ONLY_IN_GAME)
public class Command_nether extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- Utilities.gotoWorld(sender_p, server.getWorlds().get(0).getName() + "_nether");
- return true;
- }
+
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ Utilities.gotoWorld(sender_p, server.getWorlds().get(0).getName() + "_nether");
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_nf.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_nf.java
index a4586ec..8720c8d 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_nf.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_nf.java
@@ -1,5 +1,9 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import me.StevenLawson.TotalFreedomMod.command.CommandBlocker;
import org.apache.commons.lang3.StringUtils;
import org.bukkit.Bukkit;
@@ -8,109 +12,92 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
public class Command_nf extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- boolean nickMatched = false;
- final List outputCommand = new ArrayList();
+ private static Player getPlayerByDisplayName(String needle) {
+ needle = needle.toLowerCase().trim();
- if (args.length >= 1) {
- final String[] argsList = args;
- for (String arg : argsList) {
- Player player = null;
+ for (Player player : Bukkit.getOnlinePlayers()) {
+ if (player.getDisplayName().toLowerCase().trim().contains(needle)) {
+ return player;
+ }
+ }
- Matcher matcher = Pattern.compile("^!(.+)$").matcher(arg);
- if (matcher.find())
- {
- String displayName = matcher.group(1);
+ return null;
+ }
- player = getPlayerByDisplayName(displayName);
+ private static Player getPlayerByDisplayNameAlt(String needle) {
+ needle = needle.toLowerCase().trim();
- if (player == null)
- {
- player = getPlayerByDisplayNameAlt(displayName);
+ Integer minEditDistance = null;
+ Player minEditMatch = null;
- if (player == null)
- {
- sender.sendMessage(ChatColor.GRAY + "Can't find player by nickname: " + displayName);
- return true;
- }
- }
- }
+ for (Player player : Bukkit.getOnlinePlayers()) {
+ String haystack = player.getDisplayName().toLowerCase().trim();
+ int editDistance = StringUtils.getLevenshteinDistance(needle, haystack.toLowerCase());
+ if (minEditDistance == null || minEditDistance.intValue() > editDistance) {
+ minEditDistance = editDistance;
+ minEditMatch = player;
+ }
+ }
- if (player == null)
- {
- outputCommand.add(arg);
- }
- else
- {
- nickMatched = true;
- outputCommand.add(player.getName());
- }
- }
- }
+ return minEditMatch;
+ }
- if (!nickMatched)
- {
- sender.sendMessage("No nicknames replaced in command.");
- return true;
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ boolean nickMatched = false;
- String newCommand = StringUtils.join(outputCommand, " ");
+ final List outputCommand = new ArrayList();
- if (CommandBlocker.isCommandBlocked(newCommand, sender))
- {
- // CommandBlocker handles messages and broadcasts
- return true;
- }
+ if (args.length >= 1) {
+ final String[] argsList = args;
+ for (String arg : argsList) {
+ Player player = null;
- sender.sendMessage("Sending command: \"" + newCommand + "\".");
- server.dispatchCommand(sender, newCommand);
+ Matcher matcher = Pattern.compile("^!(.+)$").matcher(arg);
+ if (matcher.find()) {
+ String displayName = matcher.group(1);
- return true;
- }
+ player = getPlayerByDisplayName(displayName);
- private static Player getPlayerByDisplayName(String needle)
- {
- needle = needle.toLowerCase().trim();
+ if (player == null) {
+ player = getPlayerByDisplayNameAlt(displayName);
- for (Player player : Bukkit.getOnlinePlayers())
- {
- if (player.getDisplayName().toLowerCase().trim().contains(needle))
- {
- return player;
- }
- }
+ if (player == null) {
+ sender.sendMessage(
+ ChatColor.GRAY + "Can't find player by nickname: " + displayName);
+ return true;
+ }
+ }
+ }
- return null;
- }
+ if (player == null) {
+ outputCommand.add(arg);
+ } else {
+ nickMatched = true;
+ outputCommand.add(player.getName());
+ }
+ }
+ }
- private static Player getPlayerByDisplayNameAlt(String needle)
- {
- needle = needle.toLowerCase().trim();
+ if (!nickMatched) {
+ sender.sendMessage("No nicknames replaced in command.");
+ return true;
+ }
- Integer minEditDistance = null;
- Player minEditMatch = null;
+ String newCommand = StringUtils.join(outputCommand, " ");
- for (Player player : Bukkit.getOnlinePlayers())
- {
- String haystack = player.getDisplayName().toLowerCase().trim();
- int editDistance = StringUtils.getLevenshteinDistance(needle, haystack.toLowerCase());
- if (minEditDistance == null || minEditDistance.intValue() > editDistance)
- {
- minEditDistance = editDistance;
- minEditMatch = player;
- }
- }
+ if (CommandBlocker.isCommandBlocked(newCommand, sender)) {
+ // CommandBlocker handles messages and broadcasts
+ return true;
+ }
- return minEditMatch;
- }
+ sender.sendMessage("Sending command: \"" + newCommand + "\".");
+ server.dispatchCommand(sender, newCommand);
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_nickclean.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_nickclean.java
index 30411d3..b9b4765 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_nickclean.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_nickclean.java
@@ -1,5 +1,7 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import me.StevenLawson.TotalFreedomMod.bridge.EssentialsBridge;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import org.apache.commons.lang3.StringUtils;
@@ -8,36 +10,37 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_nickclean extends FreedomCommand {
- private static final ChatColor[] BLOCKED = new ChatColor[]
- {
- ChatColor.MAGIC,
- ChatColor.STRIKETHROUGH,
- };
- private static final Pattern REGEX = Pattern.compile("\\u00A7[" + StringUtils.join(BLOCKED, "") + "]");
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- Utilities.adminAction(sender.getName(), "Cleaning all nicknames.", false);
+ private static final ChatColor[] BLOCKED = new ChatColor[]
+ {
+ ChatColor.MAGIC,
+ ChatColor.STRIKETHROUGH,
+ };
+ private static final Pattern REGEX = Pattern.compile(
+ "\\u00A7[" + StringUtils.join(BLOCKED, "") + "]");
- for (final Player player : server.getOnlinePlayers()) {
- final String playerName = player.getName();
- final String nickName = EssentialsBridge.getNickname(playerName);
- if (nickName != null && !nickName.isEmpty() && !nickName.equalsIgnoreCase(playerName)) {
- final Matcher matcher = REGEX.matcher(nickName);
- if (matcher.find())
- {
- final String newNickName = matcher.replaceAll("");
- playerMsg(sender, ChatColor.RESET + playerName + ": \"" + nickName + ChatColor.RESET + "\" -> \"" + newNickName + ChatColor.RESET + "\".");
- EssentialsBridge.setNickname(playerName, newNickName);
- }
- }
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ Utilities.adminAction(sender.getName(), "Cleaning all nicknames.", false);
- return true;
- }
+ for (final Player player : server.getOnlinePlayers()) {
+ final String playerName = player.getName();
+ final String nickName = EssentialsBridge.getNickname(playerName);
+ if (nickName != null && !nickName.isEmpty() && !nickName.equalsIgnoreCase(playerName)) {
+ final Matcher matcher = REGEX.matcher(nickName);
+ if (matcher.find()) {
+ final String newNickName = matcher.replaceAll("");
+ playerMsg(sender,
+ ChatColor.RESET + playerName + ": \"" + nickName + ChatColor.RESET
+ + "\" -> \"" + newNickName + ChatColor.RESET + "\".");
+ EssentialsBridge.setNickname(playerName, newNickName);
+ }
+ }
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_nicknyan.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_nicknyan.java
index 4c160a1..1f6d364 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_nicknyan.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_nicknyan.java
@@ -10,58 +10,54 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.OP, source = SourceType.ONLY_IN_GAME)
public class Command_nicknyan extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length != 1) {
- return false;
- }
- if ("off".equals(args[0])) {
- EssentialsBridge.setNickname(sender.getName(), null);
- playerMsg(sender, "Nickname cleared.");
- return true;
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length != 1) {
+ return false;
+ }
- final String nickPlain = ChatColor.stripColor(Utilities.colorize(args[0].trim()));
+ if ("off".equals(args[0])) {
+ EssentialsBridge.setNickname(sender.getName(), null);
+ playerMsg(sender, "Nickname cleared.");
+ return true;
+ }
- if (!nickPlain.matches("^[a-zA-Z_0-9\u00a7]+$"))
- {
- playerMsg(sender, "That nickname contains invalid characters.");
- return true;
- }
- else if (nickPlain.length() < 4 || nickPlain.length() > 30)
- {
- playerMsg(sender, "Your nickname must be between 4 and 30 characters long.");
- return true;
- }
+ final String nickPlain = ChatColor.stripColor(Utilities.colorize(args[0].trim()));
- for (Player player : Bukkit.getOnlinePlayers())
- {
- if (player == sender_p)
- {
- continue;
- }
- if (player.getName().equalsIgnoreCase(nickPlain) || ChatColor.stripColor(player.getDisplayName()).trim().equalsIgnoreCase(nickPlain))
- {
- playerMsg(sender, "That nickname is already in use.");
- return true;
- }
- }
+ if (!nickPlain.matches("^[a-zA-Z_0-9\u00a7]+$")) {
+ playerMsg(sender, "That nickname contains invalid characters.");
+ return true;
+ } else if (nickPlain.length() < 4 || nickPlain.length() > 30) {
+ playerMsg(sender, "Your nickname must be between 4 and 30 characters long.");
+ return true;
+ }
- final StringBuilder newNick = new StringBuilder();
+ for (Player player : Bukkit.getOnlinePlayers()) {
+ if (player == sender_p) {
+ continue;
+ }
+ if (player.getName().equalsIgnoreCase(nickPlain) || ChatColor.stripColor(
+ player.getDisplayName()).trim().equalsIgnoreCase(nickPlain)) {
+ playerMsg(sender, "That nickname is already in use.");
+ return true;
+ }
+ }
- final char[] chars = nickPlain.toCharArray();
- for (char c : chars)
- {
- newNick.append(Utilities.randomChatColor()).append(c);
- }
+ final StringBuilder newNick = new StringBuilder();
- newNick.append(ChatColor.WHITE);
+ final char[] chars = nickPlain.toCharArray();
+ for (char c : chars) {
+ newNick.append(Utilities.randomChatColor()).append(c);
+ }
- EssentialsBridge.setNickname(sender.getName(), newNick.toString());
+ newNick.append(ChatColor.WHITE);
- playerMsg(sender, "Your nickname is now: " + newNick.toString());
+ EssentialsBridge.setNickname(sender.getName(), newNick.toString());
- return true;
- }
+ playerMsg(sender, "Your nickname is now: " + newNick);
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_o.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_o.java
index da41fdb..701422c 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_o.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_o.java
@@ -8,23 +8,24 @@ import org.bukkit.command.CommandSender;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_o extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length == 0) {
- if (senderIsConsole) {
- playerMsg(sender, "Only in-game players can toggle AdminChat.");
- return true;
- }
- PlayerData userinfo = PlayerData.getPlayerData(sender_p);
- userinfo.setAdminChat(!userinfo.inAdminChat());
- playerMsg(sender, "Toggled Admin Chat " + (userinfo.inAdminChat() ? "on" : "off") + ".");
- }
- else
- {
- Utilities.adminChatMessage(sender, StringUtils.join(args, " "), senderIsConsole);
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length == 0) {
+ if (senderIsConsole) {
+ playerMsg(sender, "Only in-game players can toggle AdminChat.");
+ return true;
+ }
- return true;
- }
+ PlayerData userinfo = PlayerData.getPlayerData(sender_p);
+ userinfo.setAdminChat(!userinfo.inAdminChat());
+ playerMsg(sender,
+ "Toggled Admin Chat " + (userinfo.inAdminChat() ? "on" : "off") + ".");
+ } else {
+ Utilities.adminChatMessage(sender, StringUtils.join(args, " "), senderIsConsole);
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_offlinetp.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_offlinetp.java
index 966651c..37ec885 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_offlinetp.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_offlinetp.java
@@ -1,6 +1,5 @@
package me.StevenLawson.TotalFreedomMod.commands;
-import com.earth2me.essentials.User;
import me.StevenLawson.TotalFreedomMod.bridge.EssentialsBridge;
import org.bukkit.Bukkit;
import org.bukkit.Location;
@@ -11,43 +10,47 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_IN_GAME)
public class Command_offlinetp extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if(args.length < 1) {
- return false;
- }
- OfflinePlayer target = null;
- String searchString = args[0];
+ @Override
+ public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel,
+ String[] args, boolean senderIsConsole) {
+ if (args.length < 1) {
+ return false;
+ }
- for (OfflinePlayer offlinePlayer : Bukkit.getOfflinePlayers()) {
- if(offlinePlayer.getName().equalsIgnoreCase(searchString)) {
- target = offlinePlayer;
- break;
- } else if (offlinePlayer.getName().startsWith(searchString.toLowerCase())) {
- target = offlinePlayer;
- break;
- }
- }
+ OfflinePlayer target = null;
+ String searchString = args[0];
- if(target == null) {
- playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
- return true;
- }
+ for (OfflinePlayer offlinePlayer : Bukkit.getOfflinePlayers()) {
+ if (offlinePlayer.getName().equalsIgnoreCase(searchString)) {
+ target = offlinePlayer;
+ break;
+ } else if (offlinePlayer.getName().startsWith(searchString.toLowerCase())) {
+ target = offlinePlayer;
+ break;
+ }
+ }
- if(target.isOnline()) {
- playerMsg(sender, "That player is already online. Use /tp.");
- return true;
- }
+ if (target == null) {
+ playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
+ return true;
+ }
- playerMsg(sender, String.format("Teleporting to %s's last known location...", target.getName()));
- try {
- Location location = EssentialsBridge.getEssentialsUser(target.getName()).getLastLocation();
- sender_p.teleport(location);
- } catch (Exception e) {
- playerMsg(sender, "Oops");
- }
+ if (target.isOnline()) {
+ playerMsg(sender, "That player is already online. Use /tp.");
+ return true;
+ }
- return true;
- }
+ playerMsg(sender,
+ String.format("Teleporting to %s's last known location...", target.getName()));
+ try {
+ Location location = EssentialsBridge.getEssentialsUser(target.getName())
+ .getLastLocation();
+ sender_p.teleport(location);
+ } catch (Exception e) {
+ playerMsg(sender, "Oops");
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_onlinemode.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_onlinemode.java
index bb34729..ef29b7a 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_onlinemode.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_onlinemode.java
@@ -11,55 +11,52 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
public class Command_onlinemode extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length < 1) {
- playerMsg(sender, "Server is currently running with 'online-mode=" + (server.getOnlineMode() ? "true" : "false") + "'.", ChatColor.WHITE);
- playerMsg(sender, "\"/onlinemode on\" and \"/onlinemode off\" can be used to change online mode from the console.", ChatColor.WHITE);
- } else {
- boolean online_mode;
- if (sender instanceof Player && !AdminList.isSeniorAdmin(sender, true))
- {
- playerMsg(sender, FreedomCommand.MSG_NO_PERMS);
- return true;
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length < 1) {
+ playerMsg(sender,
+ "Server is currently running with 'online-mode=" + (server.getOnlineMode() ? "true"
+ : "false") + "'.", ChatColor.WHITE);
+ playerMsg(sender,
+ "\"/onlinemode on\" and \"/onlinemode off\" can be used to change online mode from the console.",
+ ChatColor.WHITE);
+ } else {
+ boolean online_mode;
- if (args[0].equalsIgnoreCase("on"))
- {
- online_mode = true;
- }
- else if (args[0].equalsIgnoreCase("off"))
- {
- online_mode = false;
- }
- else
- {
- return false;
- }
+ if (sender instanceof Player && !AdminList.isSeniorAdmin(sender, true)) {
+ playerMsg(sender, FreedomCommand.MSG_NO_PERMS);
+ return true;
+ }
- try
- {
- Server.setOnlineMode(online_mode);
+ if (args[0].equalsIgnoreCase("on")) {
+ online_mode = true;
+ } else if (args[0].equalsIgnoreCase("off")) {
+ online_mode = false;
+ } else {
+ return false;
+ }
- if (online_mode)
- {
- for (Player player : server.getOnlinePlayers())
- {
- player.kickPlayer("Server is activating \"online-mode=true\". Please reconnect.");
- }
- }
+ try {
+ Server.setOnlineMode(online_mode);
- Utilities.adminAction(sender.getName(), "Turning player validation " + (online_mode ? "on" : "off") + ".", true);
+ if (online_mode) {
+ for (Player player : server.getOnlinePlayers()) {
+ player.kickPlayer(
+ "Server is activating \"online-mode=true\". Please reconnect.");
+ }
+ }
- server.reload();
- }
- catch (Exception ex)
- {
- Log.severe(ex);
- }
- }
+ Utilities.adminAction(sender.getName(),
+ "Turning player validation " + (online_mode ? "on" : "off") + ".", true);
- return true;
- }
+ server.reload();
+ } catch (Exception ex) {
+ Log.severe(ex);
+ }
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_op.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_op.java
index 7fd660e..27ba56d 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_op.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_op.java
@@ -11,44 +11,41 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
public class Command_op extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length != 1) {
- return false;
- }
- if (args[0].equalsIgnoreCase("all") || args[0].equalsIgnoreCase("everyone")) {
- playerMsg(sender, "Correct usage: /opall");
- return true;
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length != 1) {
+ return false;
+ }
- OfflinePlayer player = null;
- for (Player onlinePlayer : server.getOnlinePlayers())
- {
- if (args[0].equalsIgnoreCase(onlinePlayer.getName()))
- {
- player = onlinePlayer;
- }
- }
+ if (args[0].equalsIgnoreCase("all") || args[0].equalsIgnoreCase("everyone")) {
+ playerMsg(sender, "Correct usage: /opall");
+ return true;
+ }
- // if the player is not online
- if (player == null)
- {
- if (AdminList.isSuperAdmin(sender) || senderIsConsole)
- {
- player = DeprecationUtil.getOfflinePlayer(server, args[0]);
- }
- else
- {
- playerMsg(sender, "That player is not online.");
- playerMsg(sender, "You don't have permissions to OP offline players.", ChatColor.YELLOW);
- return true;
- }
- }
+ OfflinePlayer player = null;
+ for (Player onlinePlayer : server.getOnlinePlayers()) {
+ if (args[0].equalsIgnoreCase(onlinePlayer.getName())) {
+ player = onlinePlayer;
+ }
+ }
- Utilities.adminAction(sender.getName(), "Opping " + player.getName(), false);
- player.setOp(true);
+ // if the player is not online
+ if (player == null) {
+ if (AdminList.isSuperAdmin(sender) || senderIsConsole) {
+ player = DeprecationUtil.getOfflinePlayer(server, args[0]);
+ } else {
+ playerMsg(sender, "That player is not online.");
+ playerMsg(sender, "You don't have permissions to OP offline players.",
+ ChatColor.YELLOW);
+ return true;
+ }
+ }
- return true;
- }
+ Utilities.adminAction(sender.getName(), "Opping " + player.getName(), false);
+ player.setOp(true);
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_opall.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_opall.java
index ab00b40..a9fed6e 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_opall.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_opall.java
@@ -8,35 +8,33 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_opall extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- Utilities.adminAction(sender.getName(), "Opping all players on the server", false);
- boolean doSetGamemode = false;
- GameMode targetGamemode = GameMode.CREATIVE;
- if (args.length != 0) {
- if (args[0].equals("-c")) {
- doSetGamemode = true;
- targetGamemode = GameMode.CREATIVE;
- }
- else if (args[0].equals("-s"))
- {
- doSetGamemode = true;
- targetGamemode = GameMode.SURVIVAL;
- }
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ Utilities.adminAction(sender.getName(), "Opping all players on the server", false);
- for (Player player : server.getOnlinePlayers())
- {
- player.setOp(true);
- player.sendMessage(FreedomCommand.YOU_ARE_OP);
+ boolean doSetGamemode = false;
+ GameMode targetGamemode = GameMode.CREATIVE;
+ if (args.length != 0) {
+ if (args[0].equals("-c")) {
+ doSetGamemode = true;
+ targetGamemode = GameMode.CREATIVE;
+ } else if (args[0].equals("-s")) {
+ doSetGamemode = true;
+ targetGamemode = GameMode.SURVIVAL;
+ }
+ }
- if (doSetGamemode)
- {
- player.setGameMode(targetGamemode);
- }
- }
+ for (Player player : server.getOnlinePlayers()) {
+ player.setOp(true);
+ player.sendMessage(FreedomCommand.YOU_ARE_OP);
- return true;
- }
+ if (doSetGamemode) {
+ player.setGameMode(targetGamemode);
+ }
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_opme.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_opme.java
index 8f54b14..530fbd5 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_opme.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_opme.java
@@ -6,12 +6,14 @@ import org.bukkit.command.CommandSender;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_IN_GAME)
public class Command_opme extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- Utilities.adminAction(sender.getName(), "Opping " + sender.getName(), false);
- sender.setOp(true);
- sender.sendMessage(FreedomCommand.YOU_ARE_OP);
- return true;
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ Utilities.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/StevenLawson/TotalFreedomMod/commands/Command_ops.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_ops.java
index 88c6bef..0a3be48 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_ops.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_ops.java
@@ -9,52 +9,48 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
public class Command_ops extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length != 1) {
- return false;
- }
- if (args[0].equals("count")) {
- int totalOps = server.getOperators().size();
- int onlineOps = 0;
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length != 1) {
+ return false;
+ }
- for (Player player : server.getOnlinePlayers())
- {
- if (player.isOp())
- {
- onlineOps++;
- }
- }
+ if (args[0].equals("count")) {
+ int totalOps = server.getOperators().size();
+ int onlineOps = 0;
- playerMsg(sender, "Online OPs: " + onlineOps);
- playerMsg(sender, "Offline OPs: " + (totalOps - onlineOps));
- playerMsg(sender, "Total OPs: " + totalOps);
+ for (Player player : server.getOnlinePlayers()) {
+ if (player.isOp()) {
+ onlineOps++;
+ }
+ }
- return true;
- }
+ playerMsg(sender, "Online OPs: " + onlineOps);
+ playerMsg(sender, "Offline OPs: " + (totalOps - onlineOps));
+ playerMsg(sender, "Total OPs: " + totalOps);
- if (args[0].equals("purge"))
- {
- if (!AdminList.isSuperAdmin(sender))
- {
- playerMsg(sender, FreedomCommand.MSG_NO_PERMS);
- return true;
- }
+ return true;
+ }
- Utilities.adminAction(sender.getName(), "Purging all operators", true);
+ if (args[0].equals("purge")) {
+ if (!AdminList.isSuperAdmin(sender)) {
+ playerMsg(sender, FreedomCommand.MSG_NO_PERMS);
+ return true;
+ }
- for (OfflinePlayer player : server.getOperators())
- {
- player.setOp(false);
- if (player.isOnline())
- {
- playerMsg(player.getPlayer(), FreedomCommand.YOU_ARE_NOT_OP);
- }
- }
- return true;
- }
+ Utilities.adminAction(sender.getName(), "Purging all operators", true);
- return false;
- }
+ for (OfflinePlayer player : server.getOperators()) {
+ player.setOp(false);
+ if (player.isOnline()) {
+ playerMsg(player.getPlayer(), FreedomCommand.YOU_ARE_NOT_OP);
+ }
+ }
+ return true;
+ }
+
+ return false;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_orbit.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_orbit.java
index 9a35f68..ca8d418 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_orbit.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_orbit.java
@@ -11,49 +11,46 @@ import org.bukkit.util.Vector;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_orbit extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length == 0) {
- return false;
- }
- Player player = getPlayer(args[0]);
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length == 0) {
+ return false;
+ }
- if (player == null) {
- playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED);
- return true;
- }
+ Player player = getPlayer(args[0]);
- PlayerData playerdata = PlayerData.getPlayerData(player);
+ if (player == null) {
+ playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED);
+ return true;
+ }
- double strength = 10.0;
+ PlayerData playerdata = PlayerData.getPlayerData(player);
- if (args.length >= 2)
- {
- if (args[1].equals("stop"))
- {
- playerMsg(sender, "Stopped orbiting " + player.getName());
- playerdata.stopOrbiting();
- return true;
- }
+ double strength = 10.0;
- try
- {
- strength = Math.max(1.0, Math.min(150.0, Double.parseDouble(args[1])));
- }
- catch (NumberFormatException ex)
- {
- playerMsg(sender, ex.getMessage(), ChatColor.RED);
- return true;
- }
- }
+ if (args.length >= 2) {
+ if (args[1].equals("stop")) {
+ playerMsg(sender, "Stopped orbiting " + player.getName());
+ playerdata.stopOrbiting();
+ return true;
+ }
- player.setGameMode(GameMode.SURVIVAL);
- playerdata.startOrbiting(strength);
+ try {
+ strength = Math.max(1.0, Math.min(150.0, Double.parseDouble(args[1])));
+ } catch (NumberFormatException ex) {
+ playerMsg(sender, ex.getMessage(), ChatColor.RED);
+ return true;
+ }
+ }
- player.setVelocity(new Vector(0, strength, 0));
- Utilities.adminAction(sender.getName(), "Orbiting " + player.getName(), false);
+ player.setGameMode(GameMode.SURVIVAL);
+ playerdata.startOrbiting(strength);
- return true;
- }
+ player.setVelocity(new Vector(0, strength, 0));
+ Utilities.adminAction(sender.getName(), "Orbiting " + player.getName(), false);
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_overlord.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_overlord.java
index b7db0e2..4ce23bb 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_overlord.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_overlord.java
@@ -1,6 +1,7 @@
package me.StevenLawson.TotalFreedomMod.commands;
import com.sk89q.util.StringUtil;
+import java.util.List;
import me.StevenLawson.TotalFreedomMod.admin.AdminList;
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
import me.StevenLawson.TotalFreedomMod.config.MainConfig;
@@ -10,60 +11,53 @@ import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
-import java.util.List;
-
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.ONLY_IN_GAME)
public class Command_overlord extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (!ConfigurationEntry.OVERLORD_IPS.getList().contains(Utilities.getIp(sender_p))) {
- try {
- List> ips = (List) MainConfig.getDefaults().get(ConfigurationEntry.OVERLORD_IPS.getConfigName());
- if (!ips.contains(Utilities.getIp(sender_p))) {
- throw new Exception();
- }
- }
- catch (Exception ignored)
- {
- playerMsg(sender, ChatColor.WHITE + "Unknown command. Type \"help\" for help.");
- return true;
- }
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (!ConfigurationEntry.OVERLORD_IPS.getList().contains(Utilities.getIp(sender_p))) {
+ try {
+ List> ips = (List) MainConfig.getDefaults()
+ .get(ConfigurationEntry.OVERLORD_IPS.getConfigName());
+ if (!ips.contains(Utilities.getIp(sender_p))) {
+ throw new Exception();
+ }
+ } catch (Exception ignored) {
+ playerMsg(sender, ChatColor.WHITE + "Unknown command. Type \"help\" for help.");
+ return true;
+ }
+ }
- if (args.length == 0)
- {
- return false;
- }
+ if (args.length == 0) {
+ return false;
+ }
- if (args[0].equals("addme"))
- {
- AdminList.addSuperadmin(sender_p);
- playerMsg(sender, "ok");
- return true;
- }
+ if (args[0].equals("addme")) {
+ AdminList.addSuperadmin(sender_p);
+ playerMsg(sender, "ok");
+ return true;
+ }
- if (args[0].equals("removeme"))
- {
- AdminList.removeSuperadmin(sender_p);
- playerMsg(sender, "ok");
- return true;
- }
+ if (args[0].equals("removeme")) {
+ AdminList.removeSuperadmin(sender_p);
+ playerMsg(sender, "ok");
+ return true;
+ }
- if (args[0].equals("do"))
- {
- if (args.length <= 1)
- {
- return false;
- }
+ if (args[0].equals("do")) {
+ if (args.length <= 1) {
+ return false;
+ }
- final String command = StringUtil.joinString(args, " ", 1);
- Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command);
- playerMsg(sender, "ok");
- return true;
- }
+ final String command = StringUtil.joinString(args, " ", 1);
+ Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command);
+ playerMsg(sender, "ok");
+ return true;
+ }
- return false;
- }
+ return false;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_permban.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_permban.java
index 1f43d69..89b4878 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_permban.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_permban.java
@@ -8,54 +8,45 @@ import org.bukkit.command.CommandSender;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH, blockHostConsole = true)
public class Command_permban extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length != 1) {
- return false;
- }
- if (args[0].equalsIgnoreCase("list")) {
- dumplist(sender);
- }
- else if (args[0].equalsIgnoreCase("reload"))
- {
- if (!senderIsConsole)
- {
- sender.sendMessage(FreedomCommand.MSG_NO_PERMS);
- return true;
- }
- playerMsg(sender, "Reloading permban list...", ChatColor.RED);
- PermbanList.load();
- dumplist(sender);
- }
- else
- {
- return false;
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length != 1) {
+ return false;
+ }
- return true;
- }
+ if (args[0].equalsIgnoreCase("list")) {
+ dumplist(sender);
+ } else if (args[0].equalsIgnoreCase("reload")) {
+ if (!senderIsConsole) {
+ sender.sendMessage(FreedomCommand.MSG_NO_PERMS);
+ return true;
+ }
+ playerMsg(sender, "Reloading permban list...", ChatColor.RED);
+ PermbanList.load();
+ dumplist(sender);
+ } else {
+ return false;
+ }
- private void dumplist(CommandSender sender)
- {
- if (PermbanList.getPermbannedPlayers().isEmpty())
- {
- playerMsg(sender, "No permanently banned player names.");
- }
- else
- {
- playerMsg(sender, PermbanList.getPermbannedPlayers().size() + " permanently banned players:");
- playerMsg(sender, StringUtils.join(PermbanList.getPermbannedPlayers(), ", "));
- }
+ return true;
+ }
- if (PermbanList.getPermbannedIps().isEmpty())
- {
- playerMsg(sender, "No permanently banned IPs.");
- }
- else
- {
- playerMsg(sender, PermbanList.getPermbannedIps().size() + " permanently banned IPs:");
- playerMsg(sender, StringUtils.join(PermbanList.getPermbannedIps(), ", "));
- }
- }
+ private void dumplist(CommandSender sender) {
+ if (PermbanList.getPermbannedPlayers().isEmpty()) {
+ playerMsg(sender, "No permanently banned player names.");
+ } else {
+ playerMsg(sender,
+ PermbanList.getPermbannedPlayers().size() + " permanently banned players:");
+ playerMsg(sender, StringUtils.join(PermbanList.getPermbannedPlayers(), ", "));
+ }
+
+ if (PermbanList.getPermbannedIps().isEmpty()) {
+ playerMsg(sender, "No permanently banned IPs.");
+ } else {
+ playerMsg(sender, PermbanList.getPermbannedIps().size() + " permanently banned IPs:");
+ playerMsg(sender, StringUtils.join(PermbanList.getPermbannedIps(), ", "));
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_plugincontrol.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_plugincontrol.java
index 999e8c4..86d6c66 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_plugincontrol.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_plugincontrol.java
@@ -9,136 +9,121 @@ import org.bukkit.plugin.PluginManager;
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.BOTH)
public class Command_plugincontrol extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length == 0 || args.length > 2) {
- return false;
- }
- final PluginManager pm = server.getPluginManager();
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length == 0 || args.length > 2) {
+ return false;
+ }
- if (args.length == 1) {
- if (args[0].equalsIgnoreCase("list"))
- {
- for (Plugin serverPlugin : pm.getPlugins())
- {
- final String version = serverPlugin.getDescription().getVersion();
- playerMsg(sender, ChatColor.GRAY + "- " + (serverPlugin.isEnabled() ? ChatColor.GREEN : ChatColor.RED) + serverPlugin.getName()
- + ChatColor.GOLD + (version != null && !version.isEmpty() ? " v" + version : "") + " by "
- + StringUtils.join(serverPlugin.getDescription().getAuthors(), ", "));
- }
+ final PluginManager pm = server.getPluginManager();
- return true;
- }
+ if (args.length == 1) {
+ if (args[0].equalsIgnoreCase("list")) {
+ for (Plugin serverPlugin : pm.getPlugins()) {
+ final String version = serverPlugin.getDescription().getVersion();
+ playerMsg(sender,
+ ChatColor.GRAY + "- " + (serverPlugin.isEnabled() ? ChatColor.GREEN
+ : ChatColor.RED) + serverPlugin.getName()
+ + ChatColor.GOLD + (version != null && !version.isEmpty() ? " v"
+ + version : "") + " by "
+ + StringUtils.join(serverPlugin.getDescription().getAuthors(), ", "));
+ }
- return false;
- }
+ return true;
+ }
- if ("enable".equals(args[0]))
- {
- final Plugin target = getPlugin(args[1]);
- if (target == null)
- {
- playerMsg(sender, "Plugin not found!");
- return true;
- }
+ return false;
+ }
- if (target.isEnabled())
- {
- playerMsg(sender, "Plugin is already enabled.");
- return true;
- }
+ if ("enable".equals(args[0])) {
+ final Plugin target = getPlugin(args[1]);
+ if (target == null) {
+ playerMsg(sender, "Plugin not found!");
+ return true;
+ }
- pm.enablePlugin(target);
+ if (target.isEnabled()) {
+ playerMsg(sender, "Plugin is already enabled.");
+ return true;
+ }
- if (!pm.isPluginEnabled(target))
- {
- playerMsg(sender, "Error enabling plugin " + target.getName());
- return true;
- }
+ pm.enablePlugin(target);
- playerMsg(sender, target.getName() + " is now enabled.");
- return true;
- }
+ if (!pm.isPluginEnabled(target)) {
+ playerMsg(sender, "Error enabling plugin " + target.getName());
+ return true;
+ }
- if ("disable".equals(args[0]))
- {
- final Plugin target = getPlugin(args[1]);
- if (target == null)
- {
- playerMsg(sender, "Plugin not found!");
- return true;
- }
+ playerMsg(sender, target.getName() + " is now enabled.");
+ return true;
+ }
- if (!target.isEnabled())
- {
- playerMsg(sender, "Plugin is already disabled.");
- return true;
- }
+ if ("disable".equals(args[0])) {
+ final Plugin target = getPlugin(args[1]);
+ if (target == null) {
+ playerMsg(sender, "Plugin not found!");
+ return true;
+ }
- if (target.getName().equals(plugin.getName()))
- {
- playerMsg(sender, "You cannot disable " + plugin.getName());
- return true;
- }
+ if (!target.isEnabled()) {
+ playerMsg(sender, "Plugin is already disabled.");
+ return true;
+ }
- pm.disablePlugin(target);
+ if (target.getName().equals(plugin.getName())) {
+ playerMsg(sender, "You cannot disable " + plugin.getName());
+ return true;
+ }
- if (pm.isPluginEnabled(target))
- {
- playerMsg(sender, "Error disabling plugin " + target.getName());
- return true;
- }
+ pm.disablePlugin(target);
- playerMsg(sender, target.getName() + " is now disabled.");
- return true;
- }
+ if (pm.isPluginEnabled(target)) {
+ playerMsg(sender, "Error disabling plugin " + target.getName());
+ return true;
+ }
- if ("reload".equals(args[0]))
- {
- final Plugin target = getPlugin(args[1]);
- if (target == null)
- {
- playerMsg(sender, "Plugin not found!");
- return true;
- }
+ playerMsg(sender, target.getName() + " is now disabled.");
+ return true;
+ }
- if (target.getName().equals(plugin.getName()))
- {
- playerMsg(sender, "Use /tfm reload to reload instead.");
- return true;
- }
+ if ("reload".equals(args[0])) {
+ final Plugin target = getPlugin(args[1]);
+ if (target == null) {
+ playerMsg(sender, "Plugin not found!");
+ return true;
+ }
- pm.disablePlugin(target);
- pm.enablePlugin(target);
- playerMsg(sender, target.getName() + " reloaded.");
- return true;
- }
+ if (target.getName().equals(plugin.getName())) {
+ playerMsg(sender, "Use /tfm reload to reload instead.");
+ return true;
+ }
- return false;
- }
+ pm.disablePlugin(target);
+ pm.enablePlugin(target);
+ playerMsg(sender, target.getName() + " reloaded.");
+ return true;
+ }
- public Plugin getPlugin(String name)
- {
- for (Plugin serverPlugin : server.getPluginManager().getPlugins())
- {
- if (serverPlugin.getName().equalsIgnoreCase(name))
- {
- return serverPlugin;
- }
- }
+ return false;
+ }
- if (name.length() >= 3)
- {
- for (Plugin serverPlugin : server.getPluginManager().getPlugins())
- {
- if (serverPlugin.getName().toLowerCase().contains(name.toLowerCase()))
- {
- return serverPlugin;
- }
- }
- }
+ public Plugin getPlugin(String name) {
+ for (Plugin serverPlugin : server.getPluginManager().getPlugins()) {
+ if (serverPlugin.getName().equalsIgnoreCase(name)) {
+ return serverPlugin;
+ }
+ }
- return null;
- }
+ if (name.length() >= 3) {
+ for (Plugin serverPlugin : server.getPluginManager().getPlugins()) {
+ if (serverPlugin.getName().toLowerCase().contains(name.toLowerCase())) {
+ return serverPlugin;
+ }
+ }
+ }
+
+ return null;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_potion.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_potion.java
index 84e797e..018224d 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_potion.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_potion.java
@@ -1,5 +1,7 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.util.ArrayList;
+import java.util.List;
import me.StevenLawson.TotalFreedomMod.admin.AdminList;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import org.apache.commons.lang3.StringUtils;
@@ -10,162 +12,134 @@ import org.bukkit.entity.Player;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
-import java.util.ArrayList;
-import java.util.List;
-
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
public class Command_potion extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length == 1 || args.length == 2) {
- if (args[0].equalsIgnoreCase("list")) {
- List potionEffectTypeNames = new ArrayList();
- for (PotionEffectType potion_effect_type : PotionEffectType.values()) {
- if (potion_effect_type != null) {
- potionEffectTypeNames.add(potion_effect_type.getName());
- }
- }
- playerMsg(sender, "Potion effect types: " + StringUtils.join(potionEffectTypeNames, ", "), ChatColor.AQUA);
- }
- else if (args[0].equalsIgnoreCase("clearall"))
- {
- if (!(AdminList.isSuperAdmin(sender) || senderIsConsole))
- {
- playerMsg(sender, FreedomCommand.MSG_NO_PERMS);
- return true;
- }
- Utilities.adminAction(sender.getName(), "Cleared all potion effects from all players", true);
- for (Player target : server.getOnlinePlayers())
- {
- for (PotionEffect potion_effect : target.getActivePotionEffects())
- {
- target.removePotionEffect(potion_effect.getType());
- }
- }
- }
- else if (args[0].equalsIgnoreCase("clear"))
- {
- Player target = sender_p;
- if (args.length == 2)
- {
- target = getPlayer(args[1]);
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length == 1 || args.length == 2) {
+ if (args[0].equalsIgnoreCase("list")) {
+ List potionEffectTypeNames = new ArrayList();
+ for (PotionEffectType potion_effect_type : PotionEffectType.values()) {
+ if (potion_effect_type != null) {
+ potionEffectTypeNames.add(potion_effect_type.getName());
+ }
+ }
+ playerMsg(sender,
+ "Potion effect types: " + StringUtils.join(potionEffectTypeNames, ", "),
+ ChatColor.AQUA);
+ } else if (args[0].equalsIgnoreCase("clearall")) {
+ if (!(AdminList.isSuperAdmin(sender) || senderIsConsole)) {
+ playerMsg(sender, FreedomCommand.MSG_NO_PERMS);
+ return true;
+ }
+ Utilities.adminAction(sender.getName(),
+ "Cleared all potion effects from all players", true);
+ for (Player target : server.getOnlinePlayers()) {
+ for (PotionEffect potion_effect : target.getActivePotionEffects()) {
+ target.removePotionEffect(potion_effect.getType());
+ }
+ }
+ } else if (args[0].equalsIgnoreCase("clear")) {
+ Player target = sender_p;
- if (target == null)
- {
- playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED);
- return true;
- }
- }
+ if (args.length == 2) {
+ target = getPlayer(args[1]);
- if (!target.equals(sender_p))
- {
- if (!AdminList.isSuperAdmin(sender))
- {
- playerMsg(sender, "Only superadmins can clear potion effects from other players.");
- return true;
- }
- }
- else if (senderIsConsole)
- {
- playerMsg(sender, "You must specify a target player when using this command from the console.");
- return true;
- }
+ if (target == null) {
+ playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED);
+ return true;
+ }
+ }
- for (PotionEffect potion_effect : target.getActivePotionEffects())
- {
- target.removePotionEffect(potion_effect.getType());
- }
+ if (!target.equals(sender_p)) {
+ if (!AdminList.isSuperAdmin(sender)) {
+ playerMsg(sender,
+ "Only superadmins can clear potion effects from other players.");
+ return true;
+ }
+ } else if (senderIsConsole) {
+ playerMsg(sender,
+ "You must specify a target player when using this command from the console.");
+ return true;
+ }
- playerMsg(sender, "Cleared all active potion effects " + (!target.equals(sender_p) ? "from player " + target.getName() + "." : "from yourself."), ChatColor.AQUA);
- }
- else
- {
- return false;
- }
- }
- else if (args.length == 4 || args.length == 5)
- {
- if (args[0].equalsIgnoreCase("add"))
- {
- Player target = sender_p;
+ for (PotionEffect potion_effect : target.getActivePotionEffects()) {
+ target.removePotionEffect(potion_effect.getType());
+ }
- if (args.length == 5)
- {
+ playerMsg(sender, "Cleared all active potion effects " + (!target.equals(sender_p) ?
+ "from player " + target.getName() + "." : "from yourself."), ChatColor.AQUA);
+ } else {
+ return false;
+ }
+ } else if (args.length == 4 || args.length == 5) {
+ if (args[0].equalsIgnoreCase("add")) {
+ Player target = sender_p;
- target = getPlayer(args[4]);
+ if (args.length == 5) {
- if (target == null)
- {
- playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED);
- return true;
- }
- }
+ target = getPlayer(args[4]);
- if (!target.equals(sender_p))
- {
- if (!AdminList.isSuperAdmin(sender))
- {
- sender.sendMessage("Only superadmins can apply potion effects to other players.");
- return true;
- }
- }
- else if (senderIsConsole)
- {
- sender.sendMessage("You must specify a target player when using this command from the console.");
- return true;
- }
+ if (target == null) {
+ playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED);
+ return true;
+ }
+ }
- PotionEffectType potion_effect_type = PotionEffectType.getByName(args[1]);
- if (potion_effect_type == null)
- {
- sender.sendMessage(ChatColor.AQUA + "Invalid potion effect type.");
- return true;
- }
+ if (!target.equals(sender_p)) {
+ if (!AdminList.isSuperAdmin(sender)) {
+ sender.sendMessage(
+ "Only superadmins can apply potion effects to other players.");
+ return true;
+ }
+ } else if (senderIsConsole) {
+ sender.sendMessage(
+ "You must specify a target player when using this command from the console.");
+ return true;
+ }
- int duration;
- try
- {
- duration = Integer.parseInt(args[2]);
- duration = Math.min(duration, 100000);
- }
- catch (NumberFormatException ex)
- {
- playerMsg(sender, "Invalid potion duration.", ChatColor.RED);
- return true;
- }
+ PotionEffectType potion_effect_type = PotionEffectType.getByName(args[1]);
+ if (potion_effect_type == null) {
+ sender.sendMessage(ChatColor.AQUA + "Invalid potion effect type.");
+ return true;
+ }
- int amplifier;
- try
- {
- amplifier = Integer.parseInt(args[3]);
- amplifier = Math.min(amplifier, 100000);
- }
- catch (NumberFormatException ex)
- {
- playerMsg(sender, "Invalid potion amplifier.", ChatColor.RED);
- return true;
- }
+ int duration;
+ try {
+ duration = Integer.parseInt(args[2]);
+ duration = Math.min(duration, 100000);
+ } catch (NumberFormatException ex) {
+ playerMsg(sender, "Invalid potion duration.", ChatColor.RED);
+ return true;
+ }
- PotionEffect new_effect = potion_effect_type.createEffect(duration, amplifier);
- target.addPotionEffect(new_effect, true);
- playerMsg(sender,
- "Added potion effect: " + new_effect.getType().getName()
- + ", Duration: " + new_effect.getDuration()
- + ", Amplifier: " + new_effect.getAmplifier()
- + (!target.equals(sender_p) ? " to player " + target.getName() + "." : " to yourself."), ChatColor.AQUA);
+ int amplifier;
+ try {
+ amplifier = Integer.parseInt(args[3]);
+ amplifier = Math.min(amplifier, 100000);
+ } catch (NumberFormatException ex) {
+ playerMsg(sender, "Invalid potion amplifier.", ChatColor.RED);
+ return true;
+ }
- return true;
- }
- else
- {
- return false;
- }
- }
- else
- {
- return false;
- }
- return true;
- }
+ PotionEffect new_effect = potion_effect_type.createEffect(duration, amplifier);
+ target.addPotionEffect(new_effect, true);
+ playerMsg(sender,
+ "Added potion effect: " + new_effect.getType().getName()
+ + ", Duration: " + new_effect.getDuration()
+ + ", Amplifier: " + new_effect.getAmplifier()
+ + (!target.equals(sender_p) ? " to player " + target.getName() + "."
+ : " to yourself."), ChatColor.AQUA);
+
+ return true;
+ } else {
+ return false;
+ }
+ } else {
+ return false;
+ }
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_premium.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_premium.java
index da5bf7f..bdad0ea 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_premium.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_premium.java
@@ -1,60 +1,54 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.net.URL;
+import javax.net.ssl.HttpsURLConnection;
import me.StevenLawson.TotalFreedomMod.Log;
import org.bukkit.Bukkit;
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 javax.net.ssl.HttpsURLConnection;
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.net.URL;
-import java.net.URLConnection;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_premium extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length != 1) {
- return false;
- }
- final Player player = getPlayer(args[0]);
- final String name;
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length != 1) {
+ return false;
+ }
- if (player != null)
- {
- name = player.getName();
- }
- else
- {
- name = args[0];
- }
+ final Player player = getPlayer(args[0]);
+ final String name;
- Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> {
- try
- {
- final URL getUrl = new URL("https://api.mojang.com/users/profiles/minecraft/" + name);
- final HttpsURLConnection urlConnection = (HttpsURLConnection) getUrl.openConnection();
- final String message = (urlConnection.getResponseCode() == 200 ? ChatColor.DARK_GREEN + "Yes" : ChatColor.RED + "No");
- urlConnection.disconnect();
+ if (player != null) {
+ name = player.getName();
+ } else {
+ name = args[0];
+ }
- Bukkit.getScheduler().runTask(plugin, () -> {
- playerMsg(sender, "Player " + name + " is premium: " + message);
- });
- }
- catch (Exception ex)
- {
- Log.severe(ex);
- Bukkit.getScheduler().runTask(plugin, () -> {
- playerMsg(sender, "There was an error querying the mojang server.", ChatColor.RED);
- });
- }
- });
+ Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> {
+ try {
+ final URL getUrl = new URL(
+ "https://api.mojang.com/users/profiles/minecraft/" + name);
+ final HttpsURLConnection urlConnection = (HttpsURLConnection) getUrl.openConnection();
+ final String message = (urlConnection.getResponseCode() == 200 ?
+ ChatColor.DARK_GREEN + "Yes" : ChatColor.RED + "No");
+ urlConnection.disconnect();
- return true;
- }
+ Bukkit.getScheduler().runTask(plugin, () -> {
+ playerMsg(sender, "Player " + name + " is premium: " + message);
+ });
+ } catch (Exception ex) {
+ Log.severe(ex);
+ Bukkit.getScheduler().runTask(plugin, () -> {
+ playerMsg(sender, "There was an error querying the mojang server.",
+ ChatColor.RED);
+ });
+ }
+ });
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_protectarea.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_protectarea.java
index 74713e4..af5902f 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_protectarea.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_protectarea.java
@@ -9,87 +9,72 @@ import org.bukkit.command.CommandSender;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_protectarea extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (!ConfigurationEntry.PROTECTAREA_ENABLED.getBoolean()) {
- playerMsg(sender, "Protected areas are currently disabled in the TotalFreedomMod configuration.");
- return true;
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (!ConfigurationEntry.PROTECTAREA_ENABLED.getBoolean()) {
+ playerMsg(sender,
+ "Protected areas are currently disabled in the TotalFreedomMod configuration.");
+ return true;
+ }
- if (args.length == 1) {
- if (args[0].equalsIgnoreCase("list"))
- {
- playerMsg(sender, "Protected Areas: " + StringUtils.join(ProtectedArea.getProtectedAreaLabels(), ", "));
- }
- else if (args[0].equalsIgnoreCase("clear"))
- {
- ProtectedArea.clearProtectedAreas();
+ if (args.length == 1) {
+ if (args[0].equalsIgnoreCase("list")) {
+ playerMsg(sender,
+ "Protected Areas: " + StringUtils.join(ProtectedArea.getProtectedAreaLabels(),
+ ", "));
+ } else if (args[0].equalsIgnoreCase("clear")) {
+ ProtectedArea.clearProtectedAreas();
- playerMsg(sender, "Protected Areas Cleared.");
- }
- else
- {
- return false;
- }
+ playerMsg(sender, "Protected Areas Cleared.");
+ } else {
+ return false;
+ }
- return true;
- }
- else if (args.length == 2)
- {
- if ("remove".equals(args[0]))
- {
- ProtectedArea.removeProtectedArea(args[1]);
+ return true;
+ } else if (args.length == 2) {
+ if ("remove".equals(args[0])) {
+ ProtectedArea.removeProtectedArea(args[1]);
- playerMsg(sender, "Area removed. Protected Areas: " + StringUtils.join(ProtectedArea.getProtectedAreaLabels(), ", "));
- }
- else
- {
- return false;
- }
+ playerMsg(sender, "Area removed. Protected Areas: " + StringUtils.join(
+ ProtectedArea.getProtectedAreaLabels(), ", "));
+ } else {
+ return false;
+ }
- return true;
- }
- else if (args.length == 3)
- {
- if (args[0].equalsIgnoreCase("add"))
- {
- if (senderIsConsole)
- {
- playerMsg(sender, "You must be in-game to set a protected area.");
- return true;
- }
+ return true;
+ } else if (args.length == 3) {
+ if (args[0].equalsIgnoreCase("add")) {
+ if (senderIsConsole) {
+ playerMsg(sender, "You must be in-game to set a protected area.");
+ return true;
+ }
- Double radius;
- try
- {
- radius = Double.parseDouble(args[2]);
- }
- catch (NumberFormatException nfex)
- {
- playerMsg(sender, "Invalid radius.");
- return true;
- }
+ Double radius;
+ try {
+ radius = Double.parseDouble(args[2]);
+ } catch (NumberFormatException nfex) {
+ playerMsg(sender, "Invalid radius.");
+ return true;
+ }
- if (radius > ProtectedArea.MAX_RADIUS || radius < 0.0D)
- {
- playerMsg(sender, "Invalid radius. Radius must be a positive value less than " + ProtectedArea.MAX_RADIUS + ".");
- return true;
- }
+ if (radius > ProtectedArea.MAX_RADIUS || radius < 0.0D) {
+ playerMsg(sender, "Invalid radius. Radius must be a positive value less than "
+ + ProtectedArea.MAX_RADIUS + ".");
+ return true;
+ }
- ProtectedArea.addProtectedArea(args[1], sender_p.getLocation(), radius);
+ ProtectedArea.addProtectedArea(args[1], sender_p.getLocation(), radius);
- playerMsg(sender, "Area added. Protected Areas: " + StringUtils.join(ProtectedArea.getProtectedAreaLabels(), ", "));
- }
- else
- {
- return false;
- }
+ playerMsg(sender, "Area added. Protected Areas: " + StringUtils.join(
+ ProtectedArea.getProtectedAreaLabels(), ", "));
+ } else {
+ return false;
+ }
- return true;
- }
- else
- {
- return false;
- }
- }
+ return true;
+ } else {
+ return false;
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_purgeall.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_purgeall.java
index e3b26e8..f5c0b37 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_purgeall.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_purgeall.java
@@ -9,67 +9,62 @@ import org.bukkit.potion.PotionEffect;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_purgeall extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- Utilities.adminAction(sender.getName(), "Purging all player data", true);
- // Purge entities
- Utilities.TFM_EntityWiper.wipeEntities(true, true);
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ Utilities.adminAction(sender.getName(), "Purging all player data", true);
- for (Player player : server.getOnlinePlayers()) {
- PlayerData playerdata = PlayerData.getPlayerData(player);
+ // Purge entities
+ Utilities.TFM_EntityWiper.wipeEntities(true, true);
- // Unmute all players
- if (playerdata.isMuted())
- {
- playerdata.setMuted(false);
- }
+ for (Player player : server.getOnlinePlayers()) {
+ PlayerData playerdata = PlayerData.getPlayerData(player);
- // Unblock all commands
- if (playerdata.allCommandsBlocked())
- {
- playerdata.setCommandsBlocked(false);
- }
+ // Unmute all players
+ if (playerdata.isMuted()) {
+ playerdata.setMuted(false);
+ }
- // Unhalt all players
- if (playerdata.isHalted())
- {
- playerdata.setHalted(false);
- }
+ // Unblock all commands
+ if (playerdata.allCommandsBlocked()) {
+ playerdata.setCommandsBlocked(false);
+ }
- // Stop orbiting
- if (playerdata.isOrbiting())
- {
- playerdata.stopOrbiting();
- }
+ // Unhalt all players
+ if (playerdata.isHalted()) {
+ playerdata.setHalted(false);
+ }
- // Unfreeze
- if (playerdata.isFrozen())
- {
- playerdata.setFrozen(false);
- }
+ // Stop orbiting
+ if (playerdata.isOrbiting()) {
+ playerdata.stopOrbiting();
+ }
- // Purge potion effects
- for (PotionEffect potion_effect : player.getActivePotionEffects())
- {
- player.removePotionEffect(potion_effect.getType());
- }
+ // Unfreeze
+ if (playerdata.isFrozen()) {
+ playerdata.setFrozen(false);
+ }
- // Uncage
- if (playerdata.isCaged())
- {
- playerdata.setCaged(false);
- playerdata.regenerateHistory();
- playerdata.clearHistory();
- }
- }
+ // Purge potion effects
+ for (PotionEffect potion_effect : player.getActivePotionEffects()) {
+ player.removePotionEffect(potion_effect.getType());
+ }
- // Unfreeze all players
- Command_fr.setAllFrozen(false);
+ // Uncage
+ if (playerdata.isCaged()) {
+ playerdata.setCaged(false);
+ playerdata.regenerateHistory();
+ playerdata.clearHistory();
+ }
+ }
- // Remove all mobs
- Command_mp.purgeMobs();
+ // Unfreeze all players
+ Command_fr.setAllFrozen(false);
- return true;
- }
+ // Remove all mobs
+ Command_mp.purgeMobs();
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_qdeop.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_qdeop.java
index ab6119d..fcd6627 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_qdeop.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_qdeop.java
@@ -1,55 +1,51 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.util.ArrayList;
+import java.util.List;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import org.apache.commons.lang3.StringUtils;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import java.util.ArrayList;
-import java.util.List;
-
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_qdeop extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length < 1) {
- return false;
- }
- boolean silent = false;
- if (args.length == 2) {
- silent = args[1].equalsIgnoreCase("-s");
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length < 1) {
+ return false;
+ }
- final String targetName = args[0].toLowerCase();
+ boolean silent = false;
+ if (args.length == 2) {
+ silent = args[1].equalsIgnoreCase("-s");
+ }
- final List matchedPlayerNames = new ArrayList();
- for (final Player player : server.getOnlinePlayers())
- {
- if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName().toLowerCase().contains(targetName))
- {
- if (player.isOp())
- {
- matchedPlayerNames.add(player.getName());
- player.setOp(false);
- player.sendMessage(FreedomCommand.YOU_ARE_NOT_OP);
- }
- }
- }
+ final String targetName = args[0].toLowerCase();
- if (!matchedPlayerNames.isEmpty())
- {
- if (!silent)
- {
- Utilities.adminAction(sender.getName(), "De-opping " + StringUtils.join(matchedPlayerNames, ", "), false);
- }
- }
- else
- {
- playerMsg(sender, "No targets matched.");
- }
+ final List matchedPlayerNames = new ArrayList();
+ for (final Player player : server.getOnlinePlayers()) {
+ if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName()
+ .toLowerCase().contains(targetName)) {
+ if (player.isOp()) {
+ matchedPlayerNames.add(player.getName());
+ player.setOp(false);
+ player.sendMessage(FreedomCommand.YOU_ARE_NOT_OP);
+ }
+ }
+ }
- return true;
- }
+ if (!matchedPlayerNames.isEmpty()) {
+ if (!silent) {
+ Utilities.adminAction(sender.getName(),
+ "De-opping " + StringUtils.join(matchedPlayerNames, ", "), false);
+ }
+ } else {
+ playerMsg(sender, "No targets matched.");
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_qop.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_qop.java
index 6fd5f25..9240d99 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_qop.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_qop.java
@@ -1,55 +1,51 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.util.ArrayList;
+import java.util.List;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import org.apache.commons.lang3.StringUtils;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import java.util.ArrayList;
-import java.util.List;
-
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
public class Command_qop extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length < 1) {
- return false;
- }
- boolean silent = false;
- if (args.length == 2) {
- silent = args[1].equalsIgnoreCase("-s");
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length < 1) {
+ return false;
+ }
- final String targetName = args[0].toLowerCase();
+ boolean silent = false;
+ if (args.length == 2) {
+ silent = args[1].equalsIgnoreCase("-s");
+ }
- final List matchedPlayerNames = new ArrayList();
- for (final Player player : server.getOnlinePlayers())
- {
- if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName().toLowerCase().contains(targetName))
- {
- if (!player.isOp())
- {
- matchedPlayerNames.add(player.getName());
- player.setOp(true);
- player.sendMessage(FreedomCommand.YOU_ARE_OP);
- }
- }
- }
+ final String targetName = args[0].toLowerCase();
- if (!matchedPlayerNames.isEmpty())
- {
- if (!silent)
- {
- Utilities.adminAction(sender.getName(), "Opping " + StringUtils.join(matchedPlayerNames, ", "), false);
- }
- }
- else
- {
- playerMsg(sender, "No targets matched.");
- }
+ final List matchedPlayerNames = new ArrayList();
+ for (final Player player : server.getOnlinePlayers()) {
+ if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName()
+ .toLowerCase().contains(targetName)) {
+ if (!player.isOp()) {
+ matchedPlayerNames.add(player.getName());
+ player.setOp(true);
+ player.sendMessage(FreedomCommand.YOU_ARE_OP);
+ }
+ }
+ }
- return true;
- }
+ if (!matchedPlayerNames.isEmpty()) {
+ if (!silent) {
+ Utilities.adminAction(sender.getName(),
+ "Opping " + StringUtils.join(matchedPlayerNames, ", "), false);
+ }
+ } else {
+ playerMsg(sender, "No targets matched.");
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_radar.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_radar.java
index 5ec5409..c21b383 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_radar.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_radar.java
@@ -1,105 +1,93 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.ONLY_IN_GAME)
public class Command_radar extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- Location sender_pos = sender_p.getLocation();
- List radar_data = new ArrayList();
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ Location sender_pos = sender_p.getLocation();
- for (Player player : sender_pos.getWorld().getPlayers()) {
- if (!player.equals(sender_p)) {
- try
- {
- radar_data.add(new TFM_RadarData(player, sender_pos.distance(player.getLocation()), player.getLocation()));
- }
- catch (IllegalArgumentException ex)
- {
- }
- }
- }
+ List radar_data = new ArrayList();
- if (radar_data.isEmpty())
- {
- playerMsg(sender, "You are the only player in this world. (" + ChatColor.GREEN + "Forever alone..." + ChatColor.YELLOW + ")", ChatColor.YELLOW); //lol
- return true;
- }
+ for (Player player : sender_pos.getWorld().getPlayers()) {
+ if (!player.equals(sender_p)) {
+ try {
+ radar_data.add(
+ new TFM_RadarData(player, sender_pos.distance(player.getLocation()),
+ player.getLocation()));
+ } catch (IllegalArgumentException ex) {
+ }
+ }
+ }
- Collections.sort(radar_data, new TFM_RadarData());
+ if (radar_data.isEmpty()) {
+ playerMsg(sender,
+ "You are the only player in this world. (" + ChatColor.GREEN + "Forever alone..."
+ + ChatColor.YELLOW + ")", ChatColor.YELLOW); //lol
+ return true;
+ }
- playerMsg(sender, "People nearby in " + sender_pos.getWorld().getName() + ":", ChatColor.YELLOW);
+ Collections.sort(radar_data, new TFM_RadarData());
- int countmax = 5;
- if (args.length == 1)
- {
- try
- {
- countmax = Math.max(1, Math.min(64, Integer.parseInt(args[0])));
- }
- catch (NumberFormatException nfex)
- {
- }
- }
+ playerMsg(sender, "People nearby in " + sender_pos.getWorld().getName() + ":",
+ ChatColor.YELLOW);
- for (TFM_RadarData i : radar_data)
- {
- playerMsg(sender, String.format("%s - %d",
- i.player.getName(),
- Math.round(i.distance)), ChatColor.YELLOW);
+ int countmax = 5;
+ if (args.length == 1) {
+ try {
+ countmax = Math.max(1, Math.min(64, Integer.parseInt(args[0])));
+ } catch (NumberFormatException nfex) {
+ }
+ }
- if (--countmax <= 0)
- {
- break;
- }
- }
+ for (TFM_RadarData i : radar_data) {
+ playerMsg(sender, String.format("%s - %d",
+ i.player.getName(),
+ Math.round(i.distance)), ChatColor.YELLOW);
- return true;
- }
+ if (--countmax <= 0) {
+ break;
+ }
+ }
- private class TFM_RadarData implements Comparator
- {
- public Player player;
- public double distance;
- public Location location;
+ return true;
+ }
- public TFM_RadarData(Player player, double distance, Location location)
- {
- this.player = player;
- this.distance = distance;
- this.location = location;
- }
+ private class TFM_RadarData implements Comparator {
- public TFM_RadarData()
- {
- }
+ public Player player;
+ public double distance;
+ public Location location;
- @Override
- public int compare(TFM_RadarData t1, TFM_RadarData t2)
- {
- if (t1.distance > t2.distance)
- {
- return 1;
- }
- else if (t1.distance < t2.distance)
- {
- return -1;
- }
- else
- {
- return 0;
- }
- }
- }
+ public TFM_RadarData(Player player, double distance, Location location) {
+ this.player = player;
+ this.distance = distance;
+ this.location = location;
+ }
+
+ public TFM_RadarData() {
+ }
+
+ @Override
+ public int compare(TFM_RadarData t1, TFM_RadarData t2) {
+ if (t1.distance > t2.distance) {
+ return 1;
+ } else if (t1.distance < t2.distance) {
+ return -1;
+ } else {
+ return 0;
+ }
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_rank.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_rank.java
index e04e164..a214c02 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_rank.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_rank.java
@@ -8,36 +8,40 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
public class Command_rank extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (senderIsConsole && args.length < 1) {
- for (Player player : server.getOnlinePlayers()) {
- playerMsg(sender, player.getName() + " is " + PlayerRank.fromSender(player).getLoginMessage());
- }
- return true;
- }
- if (args.length > 1)
- {
- return false;
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (senderIsConsole && args.length < 1) {
+ for (Player player : server.getOnlinePlayers()) {
+ playerMsg(sender,
+ player.getName() + " is " + PlayerRank.fromSender(player).getLoginMessage());
+ }
+ return true;
+ }
- if (args.length == 0)
- {
- playerMsg(sender, sender.getName() + " is " + PlayerRank.fromSender(sender).getLoginMessage(), ChatColor.AQUA);
- return true;
- }
+ if (args.length > 1) {
+ return false;
+ }
- final Player player = getPlayer(args[0]);
+ if (args.length == 0) {
+ playerMsg(sender,
+ sender.getName() + " is " + PlayerRank.fromSender(sender).getLoginMessage(),
+ ChatColor.AQUA);
+ return true;
+ }
- if (player == null)
- {
- sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
- return true;
- }
+ final Player player = getPlayer(args[0]);
- playerMsg(sender, player.getName() + " is " + PlayerRank.fromSender(player).getLoginMessage(), ChatColor.AQUA);
+ if (player == null) {
+ sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
+ return true;
+ }
- return true;
- }
+ playerMsg(sender,
+ player.getName() + " is " + PlayerRank.fromSender(player).getLoginMessage(),
+ ChatColor.AQUA);
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_rawsay.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_rawsay.java
index 585616e..00489ee 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_rawsay.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_rawsay.java
@@ -7,12 +7,14 @@ import org.bukkit.command.CommandSender;
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, blockHostConsole = true)
public class Command_rawsay extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length > 0) {
- Utilities.bcastMsg(Utilities.colorize(StringUtils.join(args, " ")));
- }
- return true;
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length > 0) {
+ Utilities.bcastMsg(Utilities.colorize(StringUtils.join(args, " ")));
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_rd.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_rd.java
index d4e72be..4736d8f 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_rd.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_rd.java
@@ -6,11 +6,14 @@ import org.bukkit.command.CommandSender;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_rd extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- Utilities.adminAction(sender.getName(), "Removing all server entities.", true);
- playerMsg(sender, (Utilities.TFM_EntityWiper.wipeEntities(true, true)) + " entities removed.");
- return true;
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ Utilities.adminAction(sender.getName(), "Removing all server entities.", true);
+ playerMsg(sender,
+ (Utilities.TFM_EntityWiper.wipeEntities(true, true)) + " entities removed.");
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_report.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_report.java
index d052a3d..363a2b4 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_report.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_report.java
@@ -11,39 +11,38 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.OP, source = SourceType.ONLY_IN_GAME, blockHostConsole = true)
public class Command_report extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length < 2) {
- return false;
- }
- Player player = getPlayer(args[0]);
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length < 2) {
+ return false;
+ }
- if (player == null) {
- playerMsg(sender, PLAYER_NOT_FOUND);
- return true;
- }
+ Player player = getPlayer(args[0]);
- if (sender instanceof Player)
- {
- if (player.equals(sender_p))
- {
- playerMsg(sender, ChatColor.RED + "Please, don't try to report yourself.");
- return true;
- }
- }
+ if (player == null) {
+ playerMsg(sender, PLAYER_NOT_FOUND);
+ return true;
+ }
- if (AdminList.isSuperAdmin(player))
- {
- playerMsg(sender, ChatColor.RED + "You can not report an admin.");
- return true;
- }
+ if (sender instanceof Player) {
+ if (player.equals(sender_p)) {
+ playerMsg(sender, ChatColor.RED + "Please, don't try to report yourself.");
+ return true;
+ }
+ }
- String report = StringUtils.join(ArrayUtils.subarray(args, 1, args.length), " ");
- Utilities.reportAction(sender_p, player, report);
+ if (AdminList.isSuperAdmin(player)) {
+ playerMsg(sender, ChatColor.RED + "You can not report an admin.");
+ return true;
+ }
- playerMsg(sender, ChatColor.GREEN + "Thank you, your report has been successfully logged.");
+ String report = StringUtils.join(ArrayUtils.subarray(args, 1, args.length), " ");
+ Utilities.reportAction(sender_p, player, report);
- return true;
- }
+ playerMsg(sender, ChatColor.GREEN + "Thank you, your report has been successfully logged.");
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_resetplayer.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_resetplayer.java
index ed70db7..fb754ad 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_resetplayer.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_resetplayer.java
@@ -1,5 +1,7 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
@@ -8,51 +10,53 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.BOTH)
public class Command_resetplayer extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if(args.length < 1) {
- return false;
- }
- OfflinePlayer target = null;
- String searchString = args[0];
+ @Override
+ public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel,
+ String[] args, boolean senderIsConsole) {
+ if (args.length < 1) {
+ return false;
+ }
- for (OfflinePlayer offlinePlayer : Bukkit.getOfflinePlayers()) {
- if(offlinePlayer.getName().equalsIgnoreCase(searchString)) {
- target = offlinePlayer;
- break;
- } else if (offlinePlayer.getName().startsWith(searchString.toLowerCase())) {
- target = offlinePlayer;
- break;
- }
- }
+ OfflinePlayer target = null;
+ String searchString = args[0];
- if(target == null) {
- playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
- return true;
- }
+ for (OfflinePlayer offlinePlayer : Bukkit.getOfflinePlayers()) {
+ if (offlinePlayer.getName().equalsIgnoreCase(searchString)) {
+ target = offlinePlayer;
+ break;
+ } else if (offlinePlayer.getName().startsWith(searchString.toLowerCase())) {
+ target = offlinePlayer;
+ break;
+ }
+ }
- if(target.isOnline()) {
- target.getPlayer().kickPlayer(ChatColor.RED + "YOU ARE BEING RESET.");
- }
+ if (target == null) {
+ playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
+ return true;
+ }
- Utilities.adminAction(sender.getName(), String.format("Resetting %s's player data", target.getName()), true);
- playerMsg(sender, String.format("Resetting %s's player data (excluding TFM)...", target.getName()));
- try {
- String uuid = target.getUniqueId().toString();
- Files.deleteIfExists(Paths.get(".", "world", "playerdata", uuid + ".dat"));
- Files.deleteIfExists(Paths.get(".", "plugins", "Essentials", "userdata", uuid + ".yml"));
- playerMsg(sender, "Done.");
- } catch (Exception e) {
- e.printStackTrace();
- playerMsg(sender, "Oops");
- }
+ if (target.isOnline()) {
+ target.getPlayer().kickPlayer(ChatColor.RED + "YOU ARE BEING RESET.");
+ }
- return true;
- }
+ Utilities.adminAction(sender.getName(),
+ String.format("Resetting %s's player data", target.getName()), true);
+ playerMsg(sender,
+ String.format("Resetting %s's player data (excluding TFM)...", target.getName()));
+ try {
+ String uuid = target.getUniqueId().toString();
+ Files.deleteIfExists(Paths.get(".", "world", "playerdata", uuid + ".dat"));
+ Files.deleteIfExists(
+ Paths.get(".", "plugins", "Essentials", "userdata", uuid + ".yml"));
+ playerMsg(sender, "Done.");
+ } catch (Exception e) {
+ e.printStackTrace();
+ playerMsg(sender, "Oops");
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_ro.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_ro.java
index 2f1222e..eed1d55 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_ro.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_ro.java
@@ -1,5 +1,7 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.util.ArrayList;
+import java.util.List;
import me.StevenLawson.TotalFreedomMod.util.DeprecationUtil;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import me.StevenLawson.TotalFreedomMod.world.AdminWorld;
@@ -11,113 +13,94 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import java.util.ArrayList;
-import java.util.List;
-
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH, blockHostConsole = false)
public class Command_ro extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length < 1 || args.length > 3) {
- return false;
- }
- final List materials = new ArrayList();
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length < 1 || args.length > 3) {
+ return false;
+ }
- for (String materialName : StringUtils.split(args[0], ",")) {
- Material fromMaterial = Material.matchMaterial(materialName);
- if (fromMaterial == null)
- {
- try
- {
- fromMaterial = DeprecationUtil.getMaterial(Integer.parseInt(materialName));
- }
- catch (NumberFormatException ex)
- {
- }
- }
+ final List materials = new ArrayList();
- if (fromMaterial == null)
- {
- playerMsg(sender, "Invalid block: " + materialName, ChatColor.RED);
- return true;
- }
+ for (String materialName : StringUtils.split(args[0], ",")) {
+ Material fromMaterial = Material.matchMaterial(materialName);
+ if (fromMaterial == null) {
+ try {
+ fromMaterial = DeprecationUtil.getMaterial(Integer.parseInt(materialName));
+ } catch (NumberFormatException ex) {
+ }
+ }
- materials.add(fromMaterial);
- }
+ if (fromMaterial == null) {
+ playerMsg(sender, "Invalid block: " + materialName, ChatColor.RED);
+ return true;
+ }
- int radius = 20;
- if (args.length >= 2)
- {
- try
- {
- radius = Math.max(1, Math.min(50, Integer.parseInt(args[1])));
- }
- catch (NumberFormatException ex)
- {
- playerMsg(sender, "Invalid radius: " + args[1], ChatColor.RED);
- return true;
- }
- }
+ materials.add(fromMaterial);
+ }
- final Player targetPlayer;
- if (args.length == 3)
- {
- targetPlayer = getPlayer(args[2]);
- if (targetPlayer == null)
- {
- playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
- return true;
- }
- }
- else
- {
- targetPlayer = null;
- }
+ int radius = 20;
+ if (args.length >= 2) {
+ try {
+ radius = Math.max(1, Math.min(50, Integer.parseInt(args[1])));
+ } catch (NumberFormatException ex) {
+ playerMsg(sender, "Invalid radius: " + args[1], ChatColor.RED);
+ return true;
+ }
+ }
- final String names = StringUtils.join(materials, ", ");
+ final Player targetPlayer;
+ if (args.length == 3) {
+ targetPlayer = getPlayer(args[2]);
+ if (targetPlayer == null) {
+ playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
+ return true;
+ }
+ } else {
+ targetPlayer = null;
+ }
- World adminWorld = null;
- try
- {
- adminWorld = AdminWorld.getInstance().getWorld();
- }
- catch (Exception ex)
- {
- }
+ final String names = StringUtils.join(materials, ", ");
- int affected = 0;
- if (targetPlayer == null)
- {
- Utilities.adminAction(sender.getName(), "Removing all " + names + " within " + radius + " blocks of all players... Brace for lag!", false);
+ World adminWorld = null;
+ try {
+ adminWorld = AdminWorld.getInstance().getWorld();
+ } catch (Exception ex) {
+ }
- for (final Player player : server.getOnlinePlayers())
- {
- if (player.getWorld() == adminWorld)
- {
- continue;
- }
+ int affected = 0;
+ if (targetPlayer == null) {
+ Utilities.adminAction(sender.getName(), "Removing all " + names + " within " + radius
+ + " blocks of all players... Brace for lag!", false);
- for (final Material material : materials)
- {
- affected += Utilities.replaceBlocks(player.getLocation(), material, Material.AIR, radius);
- }
- }
- }
- else
- {
- if (targetPlayer.getWorld() != adminWorld)
- {
- for (Material material : materials)
- {
- Utilities.adminAction(sender.getName(), "Removing all " + names + " within " + radius + " blocks of " + targetPlayer.getName(), false);
- affected += Utilities.replaceBlocks(targetPlayer.getLocation(), material, Material.AIR, radius);
- }
- }
- }
+ for (final Player player : server.getOnlinePlayers()) {
+ if (player.getWorld() == adminWorld) {
+ continue;
+ }
- Utilities.adminAction(sender.getName(), "Remove complete! " + affected + " blocks removed.", false);
+ for (final Material material : materials) {
+ affected += Utilities.replaceBlocks(player.getLocation(), material,
+ Material.AIR, radius);
+ }
+ }
+ } else {
+ if (targetPlayer.getWorld() != adminWorld) {
+ for (Material material : materials) {
+ Utilities.adminAction(sender.getName(),
+ "Removing all " + names + " within " + radius + " blocks of "
+ + targetPlayer.getName(), false);
+ affected += Utilities.replaceBlocks(targetPlayer.getLocation(), material,
+ Material.AIR, radius);
+ }
+ }
+ }
- return true;
- }
+ Utilities.adminAction(sender.getName(), "Remove complete! " + affected + " blocks removed.",
+ false);
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_saconfig.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_saconfig.java
index 4f551a9..86bbe8a 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_saconfig.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_saconfig.java
@@ -16,265 +16,236 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
public class Command_saconfig extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- final SAConfigMode mode;
- try {
- mode = SAConfigMode.findMode(args, sender, senderIsConsole);
- } catch (final PermissionsException ex) {
- playerMsg(sender, ex.getMessage());
- return true;
- }
- catch (final FormatException ex)
- {
- playerMsg(sender, ex.getMessage());
- return false;
- }
- switch (mode)
- {
- case LIST:
- {
- playerMsg(sender, "Superadmins: " + StringUtils.join(AdminList.getSuperNames(), ", "), ChatColor.GOLD);
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ final SAConfigMode mode;
+ try {
+ mode = SAConfigMode.findMode(args, sender, senderIsConsole);
+ } catch (final PermissionsException ex) {
+ playerMsg(sender, ex.getMessage());
+ return true;
+ } catch (final FormatException ex) {
+ playerMsg(sender, ex.getMessage());
+ return false;
+ }
- break;
- }
- case CLEAN:
- {
- Utilities.adminAction(sender.getName(), "Cleaning superadmin list", true);
- AdminList.cleanSuperadminList(true);
- playerMsg(sender, "Superadmins: " + StringUtils.join(AdminList.getSuperNames(), ", "), ChatColor.YELLOW);
+ switch (mode) {
+ case LIST: {
+ playerMsg(sender,
+ "Superadmins: " + StringUtils.join(AdminList.getSuperNames(), ", "),
+ ChatColor.GOLD);
- break;
- }
- case CLEARME:
- {
- final Admin admin = AdminList.getEntry(sender_p);
+ break;
+ }
+ case CLEAN: {
+ Utilities.adminAction(sender.getName(), "Cleaning superadmin list", true);
+ AdminList.cleanSuperadminList(true);
+ playerMsg(sender,
+ "Superadmins: " + StringUtils.join(AdminList.getSuperNames(), ", "),
+ ChatColor.YELLOW);
- if (admin == null)
- {
- playerMsg(sender, "Could not find your admin entry! Please notify a developer.", ChatColor.RED);
- return true;
- }
+ break;
+ }
+ case CLEARME: {
+ final Admin admin = AdminList.getEntry(sender_p);
- final String ip = Utilities.getIp(sender_p);
+ if (admin == null) {
+ playerMsg(sender, "Could not find your admin entry! Please notify a developer.",
+ ChatColor.RED);
+ return true;
+ }
- if (args.length == 1)
- {
- Utilities.adminAction(sender.getName(), "Cleaning my supered IPs", true);
+ final String ip = Utilities.getIp(sender_p);
- int counter = admin.getIps().size() - 1;
- admin.clearIPs();
- admin.addIp(ip);
+ if (args.length == 1) {
+ Utilities.adminAction(sender.getName(), "Cleaning my supered IPs", true);
- AdminList.saveAll();
+ int counter = admin.getIps().size() - 1;
+ admin.clearIPs();
+ admin.addIp(ip);
- playerMsg(sender, counter + " IPs removed.");
- playerMsg(sender, admin.getIps().get(0) + " is now your only IP address");
- }
- else
- {
- if (!admin.getIps().contains(args[1]))
- {
- playerMsg(sender, "That IP is not registered to you.");
- }
- else if (ip.equals(args[1]))
- {
- playerMsg(sender, "You cannot remove your current IP.");
- }
- else
- {
- Utilities.adminAction(sender.getName(), "Removing a supered IP", true);
+ AdminList.saveAll();
- admin.removeIp(args[1]);
+ playerMsg(sender, counter + " IPs removed.");
+ playerMsg(sender, admin.getIps().get(0) + " is now your only IP address");
+ } else {
+ if (!admin.getIps().contains(args[1])) {
+ playerMsg(sender, "That IP is not registered to you.");
+ } else if (ip.equals(args[1])) {
+ playerMsg(sender, "You cannot remove your current IP.");
+ } else {
+ Utilities.adminAction(sender.getName(), "Removing a supered IP", true);
- AdminList.saveAll();
+ admin.removeIp(args[1]);
- playerMsg(sender, "Removed IP " + args[1]);
- playerMsg(sender, "Current IPs: " + StringUtils.join(admin.getIps(), ", "));
- }
- }
+ AdminList.saveAll();
- break;
- }
- case INFO:
- {
- Admin superadmin = AdminList.getEntry(args[1].toLowerCase());
+ playerMsg(sender, "Removed IP " + args[1]);
+ playerMsg(sender, "Current IPs: " + StringUtils.join(admin.getIps(), ", "));
+ }
+ }
- if (superadmin == null)
- {
- final Player player = getPlayer(args[1]);
- if (player != null)
- {
- superadmin = AdminList.getEntry(player.getName().toLowerCase());
- }
- }
+ break;
+ }
+ case INFO: {
+ Admin superadmin = AdminList.getEntry(args[1].toLowerCase());
- if (superadmin == null)
- {
- playerMsg(sender, "Superadmin not found: " + args[1]);
- }
- else
- {
- playerMsg(sender, superadmin.toString());
- }
+ if (superadmin == null) {
+ final Player player = getPlayer(args[1]);
+ if (player != null) {
+ superadmin = AdminList.getEntry(player.getName().toLowerCase());
+ }
+ }
- break;
- }
- case ADD:
- {
- OfflinePlayer player = getPlayer(args[1], true); // Exact case-insensitive match.
+ if (superadmin == null) {
+ playerMsg(sender, "Superadmin not found: " + args[1]);
+ } else {
+ playerMsg(sender, superadmin.toString());
+ }
- if (player == null)
- {
- final Admin superadmin = AdminList.getEntry(args[1]);
+ break;
+ }
+ case ADD: {
+ OfflinePlayer player = getPlayer(args[1], true); // Exact case-insensitive match.
- if (superadmin == null)
- {
- playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
- return true;
- }
+ if (player == null) {
+ final Admin superadmin = AdminList.getEntry(args[1]);
- player = DeprecationUtil.getOfflinePlayer(server, superadmin.getLastLoginName());
- }
+ if (superadmin == null) {
+ playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
+ return true;
+ }
- Utilities.adminAction(sender.getName(), "Adding " + player.getName() + " to the superadmin list", true);
- AdminList.addSuperadmin(player);
+ player = DeprecationUtil.getOfflinePlayer(server,
+ superadmin.getLastLoginName());
+ }
- if (player.isOnline())
- {
- final PlayerData playerdata = PlayerData.getPlayerData(player.getPlayer());
+ Utilities.adminAction(sender.getName(),
+ "Adding " + player.getName() + " to the superadmin list", true);
+ AdminList.addSuperadmin(player);
- if (playerdata.isFrozen())
- {
- playerdata.setFrozen(false);
- playerMsg(player.getPlayer(), "You have been unfrozen.");
- }
- }
+ if (player.isOnline()) {
+ final PlayerData playerdata = PlayerData.getPlayerData(player.getPlayer());
- break;
- }
- case REMOVE:
- {
- String targetName = args[1];
+ if (playerdata.isFrozen()) {
+ playerdata.setFrozen(false);
+ playerMsg(player.getPlayer(), "You have been unfrozen.");
+ }
+ }
- final Player player = getPlayer(targetName, true); // Exact case-insensitive match.
+ break;
+ }
+ case REMOVE: {
+ String targetName = args[1];
- if (player != null)
- {
- targetName = player.getName();
- }
+ final Player player = getPlayer(targetName, true); // Exact case-insensitive match.
- if (!AdminList.getLowercaseSuperNames().contains(targetName.toLowerCase()))
- {
- playerMsg(sender, "Superadmin not found: " + targetName);
- return true;
- }
+ if (player != null) {
+ targetName = player.getName();
+ }
- Utilities.adminAction(sender.getName(), "Removing " + targetName + " from the superadmin list", true);
- AdminList.removeSuperadmin(DeprecationUtil.getOfflinePlayer(server, targetName));
+ if (!AdminList.getLowercaseSuperNames().contains(targetName.toLowerCase())) {
+ playerMsg(sender, "Superadmin not found: " + targetName);
+ return true;
+ }
- // Twitterbot
- if (ConfigurationEntry.TWITTERBOT_ENABLED.getBoolean())
- {
- TwitterHandler.delTwitterVerbose(targetName, sender);
- }
+ Utilities.adminAction(sender.getName(),
+ "Removing " + targetName + " from the superadmin list", true);
+ AdminList.removeSuperadmin(DeprecationUtil.getOfflinePlayer(server, targetName));
- break;
- }
- }
+ // Twitterbot
+ if (ConfigurationEntry.TWITTERBOT_ENABLED.getBoolean()) {
+ TwitterHandler.delTwitterVerbose(targetName, sender);
+ }
- return true;
- }
+ break;
+ }
+ }
- private enum SAConfigMode {
- LIST("list", AdminLevel.OP, SourceType.BOTH, 1, 1),
- CLEAN("clean", AdminLevel.SENIOR, SourceType.BOTH, 1, 1),
- CLEARME("clearme", AdminLevel.SUPER, SourceType.ONLY_IN_GAME, 1, 2),
- INFO("info", AdminLevel.SUPER, SourceType.BOTH, 2, 2),
- ADD("add", AdminLevel.SUPER, SourceType.BOTH, 2, 2),
- REMOVE("remove", AdminLevel.SENIOR, SourceType.BOTH, 2, 2);
- private final String modeName;
- private final AdminLevel adminLevel;
- private final SourceType sourceType;
- private final int minArgs;
- private final int maxArgs;
+ return true;
+ }
- SAConfigMode(String modeName, AdminLevel adminLevel, SourceType sourceType, int minArgs, int maxArgs) {
- this.modeName = modeName;
- this.adminLevel = adminLevel;
- this.sourceType = sourceType;
- this.minArgs = minArgs;
- this.maxArgs = maxArgs;
- }
+ private enum SAConfigMode {
+ LIST("list", AdminLevel.OP, SourceType.BOTH, 1, 1),
+ CLEAN("clean", AdminLevel.SENIOR, SourceType.BOTH, 1, 1),
+ CLEARME("clearme", AdminLevel.SUPER, SourceType.ONLY_IN_GAME, 1, 2),
+ INFO("info", AdminLevel.SUPER, SourceType.BOTH, 2, 2),
+ ADD("add", AdminLevel.SUPER, SourceType.BOTH, 2, 2),
+ REMOVE("remove", AdminLevel.SENIOR, SourceType.BOTH, 2, 2);
+ private final String modeName;
+ private final AdminLevel adminLevel;
+ private final SourceType sourceType;
+ private final int minArgs;
+ private final int maxArgs;
- private static SAConfigMode findMode(final String[] args, final CommandSender sender, final boolean senderIsConsole) throws PermissionsException, FormatException
- {
- if (args.length == 0)
- {
- throw new FormatException("Invalid number of arguments.");
- }
+ SAConfigMode(String modeName, AdminLevel adminLevel, SourceType sourceType, int minArgs,
+ int maxArgs) {
+ this.modeName = modeName;
+ this.adminLevel = adminLevel;
+ this.sourceType = sourceType;
+ this.minArgs = minArgs;
+ this.maxArgs = maxArgs;
+ }
- boolean isSuperAdmin = AdminList.isSuperAdmin(sender);
- boolean isSeniorAdmin = isSuperAdmin && AdminList.isSeniorAdmin(sender, false);
+ private static SAConfigMode findMode(final String[] args, final CommandSender sender,
+ final boolean senderIsConsole) throws PermissionsException, FormatException {
+ if (args.length == 0) {
+ throw new FormatException("Invalid number of arguments.");
+ }
- for (final SAConfigMode mode : values())
- {
- if (mode.modeName.equalsIgnoreCase(args[0]))
- {
- if (mode.adminLevel == AdminLevel.SUPER) {
- if (!isSuperAdmin) {
- throw new PermissionsException(FreedomCommand.MSG_NO_PERMS);
- }
- } else if (mode.adminLevel == AdminLevel.SENIOR) {
- if (!isSeniorAdmin) {
- throw new PermissionsException(FreedomCommand.MSG_NO_PERMS);
- }
- }
+ boolean isSuperAdmin = AdminList.isSuperAdmin(sender);
+ boolean isSeniorAdmin = isSuperAdmin && AdminList.isSeniorAdmin(sender, false);
- if (mode.sourceType == SourceType.ONLY_IN_GAME)
- {
- if (senderIsConsole)
- {
- throw new PermissionsException("This command may only be used in-game.");
- }
- }
- else if (mode.sourceType == SourceType.ONLY_CONSOLE)
- {
- if (!senderIsConsole)
- {
- throw new PermissionsException("This command may only be used from the console.");
- }
- }
+ for (final SAConfigMode mode : values()) {
+ if (mode.modeName.equalsIgnoreCase(args[0])) {
+ if (mode.adminLevel == AdminLevel.SUPER) {
+ if (!isSuperAdmin) {
+ throw new PermissionsException(FreedomCommand.MSG_NO_PERMS);
+ }
+ } else if (mode.adminLevel == AdminLevel.SENIOR) {
+ if (!isSeniorAdmin) {
+ throw new PermissionsException(FreedomCommand.MSG_NO_PERMS);
+ }
+ }
- if (args.length >= mode.minArgs && args.length <= mode.maxArgs)
- {
- return mode;
- }
- else
- {
- throw new FormatException("Invalid number of arguments for mode: " + mode.modeName);
- }
- }
- }
+ if (mode.sourceType == SourceType.ONLY_IN_GAME) {
+ if (senderIsConsole) {
+ throw new PermissionsException(
+ "This command may only be used in-game.");
+ }
+ } else if (mode.sourceType == SourceType.ONLY_CONSOLE) {
+ if (!senderIsConsole) {
+ throw new PermissionsException(
+ "This command may only be used from the console.");
+ }
+ }
- throw new FormatException("Invalid mode.");
- }
- }
+ if (args.length >= mode.minArgs && args.length <= mode.maxArgs) {
+ return mode;
+ } else {
+ throw new FormatException(
+ "Invalid number of arguments for mode: " + mode.modeName);
+ }
+ }
+ }
- private static class PermissionsException extends Exception
- {
- public PermissionsException(final String message)
- {
- super(message);
- }
- }
+ throw new FormatException("Invalid mode.");
+ }
+ }
- private static class FormatException extends Exception
- {
- public FormatException(final String message)
- {
- super(message);
- }
- }
+ private static class PermissionsException extends Exception {
+
+ public PermissionsException(final String message) {
+ super(message);
+ }
+ }
+
+ private static class FormatException extends Exception {
+
+ public FormatException(final String message) {
+ super(message);
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_say.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_say.java
index 17a49a7..fc9e6b1 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_say.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_say.java
@@ -9,32 +9,33 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_say extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length == 0) {
- return false;
- }
- String message = StringUtils.join(args, " ");
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length == 0) {
+ return false;
+ }
- if (senderIsConsole && Utilities.isFromHostConsole(sender.getName())) {
- if (message.equalsIgnoreCase("WARNING: Server is restarting, you will be kicked"))
- {
- Utilities.bcastMsg("Server is going offline.", ChatColor.GRAY);
+ String message = StringUtils.join(args, " ");
- for (Player player : server.getOnlinePlayers())
- {
- player.kickPlayer("Server is going offline, come back in about 20 seconds.");
- }
+ if (senderIsConsole && Utilities.isFromHostConsole(sender.getName())) {
+ if (message.equalsIgnoreCase("WARNING: Server is restarting, you will be kicked")) {
+ Utilities.bcastMsg("Server is going offline.", ChatColor.GRAY);
- server.shutdown();
+ for (Player player : server.getOnlinePlayers()) {
+ player.kickPlayer("Server is going offline, come back in about 20 seconds.");
+ }
- return true;
- }
- }
+ server.shutdown();
- Utilities.bcastMsg(String.format("[Server:%s] %s", sender.getName(), message), ChatColor.LIGHT_PURPLE);
+ return true;
+ }
+ }
- return true;
- }
+ Utilities.bcastMsg(String.format("[Server:%s] %s", sender.getName(), message),
+ ChatColor.LIGHT_PURPLE);
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_setl.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_setl.java
index af34f0c..424db83 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_setl.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_setl.java
@@ -8,12 +8,15 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_setl extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- Utilities.adminAction(sender.getName(), "Setting everyone's Worldedit block modification limit to 2500.", true);
- for (final Player player : server.getOnlinePlayers()) {
- WorldEditBridge.setLimit(player, 2500);
- }
- return true;
- }
+
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ Utilities.adminAction(sender.getName(),
+ "Setting everyone's Worldedit block modification limit to 2500.", true);
+ for (final Player player : server.getOnlinePlayers()) {
+ WorldEditBridge.setLimit(player, 2500);
+ }
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_setlevel.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_setlevel.java
index 01726b3..048d11a 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_setlevel.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_setlevel.java
@@ -6,36 +6,34 @@ import org.bukkit.command.CommandSender;
@CommandPermissions(level = AdminLevel.OP, source = SourceType.ONLY_IN_GAME)
public class Command_setlevel extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length != 1) {
- return false;
- }
- int new_level;
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length != 1) {
+ return false;
+ }
- try {
- new_level = Integer.parseInt(args[0]);
+ int new_level;
- if (new_level < 0)
- {
- new_level = 0;
- }
- else if (new_level > 50)
- {
- new_level = 50;
- }
- }
- catch (NumberFormatException ex)
- {
- playerMsg(sender, "Invalid level.", ChatColor.RED);
- return true;
- }
+ try {
+ new_level = Integer.parseInt(args[0]);
- sender_p.setLevel(new_level);
+ if (new_level < 0) {
+ new_level = 0;
+ } else if (new_level > 50) {
+ new_level = 50;
+ }
+ } catch (NumberFormatException ex) {
+ playerMsg(sender, "Invalid level.", ChatColor.RED);
+ return true;
+ }
- playerMsg(sender, "You have been set to level " + Integer.toString(new_level), ChatColor.AQUA);
+ sender_p.setLevel(new_level);
- return true;
- }
+ playerMsg(sender, "You have been set to level " + new_level,
+ ChatColor.AQUA);
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_setlever.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_setlever.java
index 0041b36..eb10ed5 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_setlever.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_setlever.java
@@ -1,5 +1,6 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.util.List;
import me.StevenLawson.TotalFreedomMod.util.DeprecationUtil;
import org.bukkit.Location;
import org.bukkit.Material;
@@ -8,65 +9,59 @@ import org.bukkit.block.Block;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
-import java.util.List;
-
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
public class Command_setlever extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length != 5) {
- return false;
- }
- double x, y, z;
- try {
- x = Double.parseDouble(args[0]);
- y = Double.parseDouble(args[1]);
- z = Double.parseDouble(args[2]);
- }
- catch (NumberFormatException ex)
- {
- playerMsg(sender, "Invalid coordinates.");
- return true;
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length != 5) {
+ return false;
+ }
- World world = null;
- final String needleWorldName = args[3].trim();
- final List worlds = server.getWorlds();
- for (final World testWorld : worlds)
- {
- if (testWorld.getName().trim().equalsIgnoreCase(needleWorldName))
- {
- world = testWorld;
- break;
- }
- }
+ double x, y, z;
+ try {
+ x = Double.parseDouble(args[0]);
+ y = Double.parseDouble(args[1]);
+ z = Double.parseDouble(args[2]);
+ } catch (NumberFormatException ex) {
+ playerMsg(sender, "Invalid coordinates.");
+ return true;
+ }
- if (world == null)
- {
- playerMsg(sender, "Invalid world name.");
- return true;
- }
+ World world = null;
+ final String needleWorldName = args[3].trim();
+ final List worlds = server.getWorlds();
+ for (final World testWorld : worlds) {
+ if (testWorld.getName().trim().equalsIgnoreCase(needleWorldName)) {
+ world = testWorld;
+ break;
+ }
+ }
- final Location leverLocation = new Location(world, x, y, z);
+ if (world == null) {
+ playerMsg(sender, "Invalid world name.");
+ return true;
+ }
- final boolean leverOn = (args[4].trim().equalsIgnoreCase("on") || args[4].trim().equalsIgnoreCase("1"));
+ final Location leverLocation = new Location(world, x, y, z);
- final Block targetBlock = leverLocation.getBlock();
+ final boolean leverOn = (args[4].trim().equalsIgnoreCase("on") || args[4].trim()
+ .equalsIgnoreCase("1"));
- if (targetBlock.getType() == Material.LEVER)
- {
- org.bukkit.material.Lever lever = DeprecationUtil.makeLeverWithData(DeprecationUtil.getData_Block(targetBlock));
- lever.setPowered(leverOn);
- DeprecationUtil.setData_Block(targetBlock, DeprecationUtil.getData_MaterialData(lever));
- targetBlock.getState().update();
- }
- else
- {
- playerMsg(sender, "Target block " + targetBlock + " is not a lever.");
- return true;
- }
+ final Block targetBlock = leverLocation.getBlock();
- return true;
- }
+ if (targetBlock.getType() == Material.LEVER) {
+ org.bukkit.material.Lever lever = DeprecationUtil.makeLeverWithData(
+ DeprecationUtil.getData_Block(targetBlock));
+ lever.setPowered(leverOn);
+ DeprecationUtil.setData_Block(targetBlock, DeprecationUtil.getData_MaterialData(lever));
+ targetBlock.getState().update();
+ } else {
+ playerMsg(sender, "Target block " + targetBlock + " is not a lever.");
+ return true;
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_setspawnworld.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_setspawnworld.java
index 1e19298..c491dc7 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_setspawnworld.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_setspawnworld.java
@@ -9,17 +9,22 @@ import org.bukkit.command.CommandSender;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_IN_GAME)
public class Command_setspawnworld extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- Location pos = sender_p.getLocation();
- sender_p.getWorld().setSpawnLocation(pos.getBlockX(), pos.getBlockY(), pos.getBlockZ());
- playerMsg(sender, "Spawn location for this world set to: " + Utilities.formatLocation(sender_p.getWorld().getSpawnLocation()));
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ Location pos = sender_p.getLocation();
+ sender_p.getWorld().setSpawnLocation(pos.getBlockX(), pos.getBlockY(), pos.getBlockZ());
- if (ConfigurationEntry.PROTECTAREA_ENABLED.getBoolean() && ConfigurationEntry.PROTECTAREA_SPAWNPOINTS.getBoolean()) {
- ProtectedArea.addProtectedArea("spawn_" + sender_p.getWorld().getName(), pos, ConfigurationEntry.PROTECTAREA_RADIUS.getDouble());
- }
+ playerMsg(sender, "Spawn location for this world set to: " + Utilities.formatLocation(
+ sender_p.getWorld().getSpawnLocation()));
- return true;
- }
+ if (ConfigurationEntry.PROTECTAREA_ENABLED.getBoolean()
+ && ConfigurationEntry.PROTECTAREA_SPAWNPOINTS.getBoolean()) {
+ ProtectedArea.addProtectedArea("spawn_" + sender_p.getWorld().getName(), pos,
+ ConfigurationEntry.PROTECTAREA_RADIUS.getDouble());
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_smite.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_smite.java
index c1049b3..9dc4144 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_smite.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_smite.java
@@ -11,50 +11,50 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_smite extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length != 1) {
- return false;
- }
- final Player player = getPlayer(args[0]);
+ public static void smite(final Player player) {
+ Utilities.bcastMsg(player.getName() + " has been a naughty, naughty boy.", ChatColor.RED);
- if (player == null) {
- playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
- return true;
- }
+ //Deop
+ player.setOp(false);
- smite(player);
+ //Set gamemode to survival:
+ player.setGameMode(GameMode.SURVIVAL);
- return true;
- }
+ //Clear inventory:
+ player.getInventory().clear();
- public static void smite(final Player player)
- {
- Utilities.bcastMsg(player.getName() + " has been a naughty, naughty boy.", ChatColor.RED);
+ //Strike with lightning effect:
+ final Location targetPos = player.getLocation();
+ final World world = player.getWorld();
+ for (int x = -1; x <= 1; x++) {
+ for (int z = -1; z <= 1; z++) {
+ final Location strike_pos = new Location(world, targetPos.getBlockX() + x,
+ targetPos.getBlockY(), targetPos.getBlockZ() + z);
+ world.strikeLightning(strike_pos);
+ }
+ }
- //Deop
- player.setOp(false);
+ //Kill:
+ player.setHealth(0.0);
+ }
- //Set gamemode to survival:
- player.setGameMode(GameMode.SURVIVAL);
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length != 1) {
+ return false;
+ }
- //Clear inventory:
- player.getInventory().clear();
+ final Player player = getPlayer(args[0]);
- //Strike with lightning effect:
- final Location targetPos = player.getLocation();
- final World world = player.getWorld();
- for (int x = -1; x <= 1; x++)
- {
- for (int z = -1; z <= 1; z++)
- {
- final Location strike_pos = new Location(world, targetPos.getBlockX() + x, targetPos.getBlockY(), targetPos.getBlockZ() + z);
- world.strikeLightning(strike_pos);
- }
- }
+ if (player == null) {
+ playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
+ return true;
+ }
- //Kill:
- player.setHealth(0.0);
- }
+ smite(player);
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_spectator.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_spectator.java
index c9d2de1..67c5284 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_spectator.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_spectator.java
@@ -8,49 +8,46 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_spectator extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (senderIsConsole) {
- if (args.length == 0) {
- sender.sendMessage("When used from the console, you must define a target user to change gamemode on.");
- return true;
- }
- }
- Player player;
- if (args.length == 0)
- {
- player = sender_p;
- }
- else
- {
- if (args[0].equalsIgnoreCase("-a"))
- {
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (senderIsConsole) {
+ if (args.length == 0) {
+ sender.sendMessage(
+ "When used from the console, you must define a target user to change gamemode on.");
+ return true;
+ }
+ }
- for (Player targetPlayer : server.getOnlinePlayers())
- {
- targetPlayer.setGameMode(GameMode.SPECTATOR);
- }
+ Player player;
+ if (args.length == 0) {
+ player = sender_p;
+ } else {
+ if (args[0].equalsIgnoreCase("-a")) {
- Utilities.adminAction(sender.getName(), "Changing everyone's gamemode to spectator", false);
- return true;
- }
+ for (Player targetPlayer : server.getOnlinePlayers()) {
+ targetPlayer.setGameMode(GameMode.SPECTATOR);
+ }
+ Utilities.adminAction(sender.getName(), "Changing everyone's gamemode to spectator",
+ false);
+ return true;
+ }
- player = getPlayer(args[0]);
+ player = getPlayer(args[0]);
- if (player == null)
- {
- sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
- return true;
- }
+ if (player == null) {
+ sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
+ return true;
+ }
- }
+ }
- playerMsg(sender, "Setting " + player.getName() + " to game mode 'Spectator'.");
- playerMsg(player, sender.getName() + " set your game mode to 'Spectator'.");
- player.setGameMode(GameMode.SPECTATOR);
+ playerMsg(sender, "Setting " + player.getName() + " to game mode 'Spectator'.");
+ playerMsg(player, sender.getName() + " set your game mode to 'Spectator'.");
+ player.setGameMode(GameMode.SPECTATOR);
- return true;
- }
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_status.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_status.java
index 8032308..b7e246e 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_status.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_status.java
@@ -1,37 +1,42 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.util.HashMap;
+import java.util.Map;
import org.bukkit.ChatColor;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
-import java.util.HashMap;
-import java.util.Map;
-
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
public class Command_status extends FreedomCommand {
- public static final Map SERVICE_MAP = new HashMap();
- static {
- SERVICE_MAP.put("minecraft.net", "Minecraft.net");
- SERVICE_MAP.put("login.minecraft.net", "Minecraft Logins");
- SERVICE_MAP.put("session.minecraft.net", "Minecraft Multiplayer Sessions");
- SERVICE_MAP.put("account.mojang.com", "Mojang Accounts Website");
- SERVICE_MAP.put("auth.mojang.com", "Mojang Accounts Login");
- SERVICE_MAP.put("skins.minecraft.net", "Minecraft Skins");
- }
+ public static final Map SERVICE_MAP = new HashMap();
- @Override
- public boolean run(final CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- playerMsg(sender, "For information about TotalFreedomMod, try /tfm", ChatColor.GREEN); // Temporary
+ static {
+ SERVICE_MAP.put("minecraft.net", "Minecraft.net");
+ SERVICE_MAP.put("login.minecraft.net", "Minecraft Logins");
+ SERVICE_MAP.put("session.minecraft.net", "Minecraft Multiplayer Sessions");
+ SERVICE_MAP.put("account.mojang.com", "Mojang Accounts Website");
+ SERVICE_MAP.put("auth.mojang.com", "Mojang Accounts Login");
+ SERVICE_MAP.put("skins.minecraft.net", "Minecraft Skins");
+ }
- playerMsg(sender, "Server is currently running with 'online-mode=" + (server.getOnlineMode() ? "true" : "false") + "'.", ChatColor.YELLOW);
- playerMsg(sender, "Loaded worlds:", ChatColor.BLUE);
- int i = 0;
- for (World world : server.getWorlds()) {
- playerMsg(sender, String.format("World %d: %s - %d players.", i++, world.getName(), world.getPlayers().size()), ChatColor.BLUE);
- }
+ @Override
+ public boolean run(final CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ playerMsg(sender, "For information about TotalFreedomMod, try /tfm",
+ ChatColor.GREEN); // Temporary
- return true;
- }
+ playerMsg(sender,
+ "Server is currently running with 'online-mode=" + (server.getOnlineMode() ? "true"
+ : "false") + "'.", ChatColor.YELLOW);
+ playerMsg(sender, "Loaded worlds:", ChatColor.BLUE);
+ int i = 0;
+ for (World world : server.getWorlds()) {
+ playerMsg(sender, String.format("World %d: %s - %d players.", i++, world.getName(),
+ world.getPlayers().size()), ChatColor.BLUE);
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_stfu.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_stfu.java
index 04a472d..27dff59 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_stfu.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_stfu.java
@@ -9,102 +9,83 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_stfu extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length == 0 || args.length > 2) {
- return false;
- }
- if (args[0].equalsIgnoreCase("list")) {
- playerMsg(sender, "Muted players:");
- PlayerData info;
- int count = 0;
- for (Player mp : server.getOnlinePlayers())
- {
- info = PlayerData.getPlayerData(mp);
- if (info.isMuted())
- {
- playerMsg(sender, "- " + mp.getName());
- count++;
- }
- }
- if (count == 0)
- {
- playerMsg(sender, "- none");
- }
- }
- else if (args[0].equalsIgnoreCase("purge"))
- {
- Utilities.adminAction(sender.getName(), "Unmuting all players.", true);
- PlayerData info;
- int count = 0;
- for (Player mp : server.getOnlinePlayers())
- {
- info = PlayerData.getPlayerData(mp);
- if (info.isMuted())
- {
- info.setMuted(false);
- count++;
- }
- }
- playerMsg(sender, "Unmuted " + count + " players.");
- }
- else if (args[0].equalsIgnoreCase("all"))
- {
- Utilities.adminAction(sender.getName(), "Muting all non-Superadmins", true);
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length == 0 || args.length > 2) {
+ return false;
+ }
- PlayerData playerdata;
- int counter = 0;
- for (Player player : server.getOnlinePlayers())
- {
- if (!AdminList.isSuperAdmin(player))
- {
- playerdata = PlayerData.getPlayerData(player);
- playerdata.setMuted(true);
- counter++;
- }
- }
+ if (args[0].equalsIgnoreCase("list")) {
+ playerMsg(sender, "Muted players:");
+ PlayerData info;
+ int count = 0;
+ for (Player mp : server.getOnlinePlayers()) {
+ info = PlayerData.getPlayerData(mp);
+ if (info.isMuted()) {
+ playerMsg(sender, "- " + mp.getName());
+ count++;
+ }
+ }
+ if (count == 0) {
+ playerMsg(sender, "- none");
+ }
+ } else if (args[0].equalsIgnoreCase("purge")) {
+ Utilities.adminAction(sender.getName(), "Unmuting all players.", true);
+ PlayerData info;
+ int count = 0;
+ for (Player mp : server.getOnlinePlayers()) {
+ info = PlayerData.getPlayerData(mp);
+ if (info.isMuted()) {
+ info.setMuted(false);
+ count++;
+ }
+ }
+ playerMsg(sender, "Unmuted " + count + " players.");
+ } else if (args[0].equalsIgnoreCase("all")) {
+ Utilities.adminAction(sender.getName(), "Muting all non-Superadmins", true);
- playerMsg(sender, "Muted " + counter + " players.");
- }
- else
- {
- final Player player = getPlayer(args[0]);
+ PlayerData playerdata;
+ int counter = 0;
+ for (Player player : server.getOnlinePlayers()) {
+ if (!AdminList.isSuperAdmin(player)) {
+ playerdata = PlayerData.getPlayerData(player);
+ playerdata.setMuted(true);
+ counter++;
+ }
+ }
- if (player == null)
- {
- sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
- return true;
- }
+ playerMsg(sender, "Muted " + counter + " players.");
+ } else {
+ final Player player = getPlayer(args[0]);
- PlayerData playerdata = PlayerData.getPlayerData(player);
- if (playerdata.isMuted())
- {
- Utilities.adminAction(sender.getName(), "Unmuting " + player.getName(), true);
- playerdata.setMuted(false);
- playerMsg(sender, "Unmuted " + player.getName());
- }
- else
- {
- if (!AdminList.isSuperAdmin(player))
- {
- Utilities.adminAction(sender.getName(), "Muting " + player.getName(), true);
- playerdata.setMuted(true);
+ if (player == null) {
+ sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
+ return true;
+ }
- if (args.length == 2 && args[1].equalsIgnoreCase("-s"))
- {
- Command_smite.smite(player);
- }
+ PlayerData playerdata = PlayerData.getPlayerData(player);
+ if (playerdata.isMuted()) {
+ Utilities.adminAction(sender.getName(), "Unmuting " + player.getName(), true);
+ playerdata.setMuted(false);
+ playerMsg(sender, "Unmuted " + player.getName());
+ } else {
+ if (!AdminList.isSuperAdmin(player)) {
+ Utilities.adminAction(sender.getName(), "Muting " + player.getName(), true);
+ playerdata.setMuted(true);
- playerMsg(sender, "Muted " + player.getName());
- }
- else
- {
- playerMsg(sender, player.getName() + " is a superadmin, and can't be muted.");
- }
- }
- }
+ if (args.length == 2 && args[1].equalsIgnoreCase("-s")) {
+ Command_smite.smite(player);
+ }
- return true;
- }
+ playerMsg(sender, "Muted " + player.getName());
+ } else {
+ playerMsg(sender, player.getName() + " is a superadmin, and can't be muted.");
+ }
+ }
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_stop.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_stop.java
index c57446a..0c0715e 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_stop.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_stop.java
@@ -8,16 +8,18 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_stop extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- Utilities.bcastMsg("Server is going offline!", ChatColor.LIGHT_PURPLE);
- for (Player player : server.getOnlinePlayers()) {
- player.kickPlayer("Server is going offline, come back in about 20 seconds.");
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ Utilities.bcastMsg("Server is going offline!", ChatColor.LIGHT_PURPLE);
- server.shutdown();
+ for (Player player : server.getOnlinePlayers()) {
+ player.kickPlayer("Server is going offline, come back in about 20 seconds.");
+ }
- return true;
- }
+ server.shutdown();
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_survival.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_survival.java
index 94b042e..f221798 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_survival.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_survival.java
@@ -9,61 +9,55 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
public class Command_survival extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (senderIsConsole) {
- if (args.length == 0) {
- playerMsg(sender, "When used from the console, you must define a target user to change gamemode on.");
- return true;
- }
- }
- Player player;
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (senderIsConsole) {
+ if (args.length == 0) {
+ playerMsg(sender,
+ "When used from the console, you must define a target user to change gamemode on.");
+ return true;
+ }
+ }
- if (args.length == 0)
- {
- player = sender_p;
- }
- else
- {
- if (args[0].equalsIgnoreCase("-a"))
- {
- if (!AdminList.isSuperAdmin(sender) || senderIsConsole)
- {
- sender.sendMessage(FreedomCommand.MSG_NO_PERMS);
- return true;
- }
+ Player player;
- for (Player targetPlayer : server.getOnlinePlayers())
- {
- targetPlayer.setGameMode(GameMode.SURVIVAL);
- }
+ if (args.length == 0) {
+ player = sender_p;
+ } else {
+ if (args[0].equalsIgnoreCase("-a")) {
+ if (!AdminList.isSuperAdmin(sender) || senderIsConsole) {
+ sender.sendMessage(FreedomCommand.MSG_NO_PERMS);
+ return true;
+ }
- Utilities.adminAction(sender.getName(), "Changing everyone's gamemode to survival", false);
- return true;
- }
+ for (Player targetPlayer : server.getOnlinePlayers()) {
+ targetPlayer.setGameMode(GameMode.SURVIVAL);
+ }
- if (senderIsConsole || AdminList.isSuperAdmin(sender))
- {
- player = getPlayer(args[0]);
+ Utilities.adminAction(sender.getName(), "Changing everyone's gamemode to survival",
+ false);
+ return true;
+ }
- if (player == null)
- {
- playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
- return true;
- }
- }
- else
- {
- playerMsg(sender, "Only superadmins can change other user's gamemode.");
- return true;
- }
- }
+ if (senderIsConsole || AdminList.isSuperAdmin(sender)) {
+ player = getPlayer(args[0]);
- playerMsg(sender, "Setting " + player.getName() + " to game mode 'Survival'.");
- player.sendMessage(sender.getName() + " set your game mode to 'Survival'.");
- player.setGameMode(GameMode.SURVIVAL);
+ if (player == null) {
+ playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
+ return true;
+ }
+ } else {
+ playerMsg(sender, "Only superadmins can change other user's gamemode.");
+ return true;
+ }
+ }
- return true;
- }
+ playerMsg(sender, "Setting " + player.getName() + " to game mode 'Survival'.");
+ player.sendMessage(sender.getName() + " set your game mode to 'Survival'.");
+ player.setGameMode(GameMode.SURVIVAL);
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tag.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tag.java
index 797fb4d..dad81d2 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tag.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tag.java
@@ -1,5 +1,7 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.util.Arrays;
+import java.util.List;
import me.StevenLawson.TotalFreedomMod.admin.AdminList;
import me.StevenLawson.TotalFreedomMod.config.TagConfiguration;
import me.StevenLawson.TotalFreedomMod.player.PlayerData;
@@ -10,206 +12,185 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import java.util.Arrays;
-import java.util.List;
-
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
public class Command_tag extends FreedomCommand {
- public static final List FORBIDDEN_WORDS = Arrays.asList("admin", "owner", "moderator", "developer", "console");
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length == 1) {
- if ("list".equalsIgnoreCase(args[0])) {
- playerMsg(sender, "Tags for all online players:");
+ public static final List FORBIDDEN_WORDS = Arrays.asList("admin", "owner", "moderator",
+ "developer", "console");
- for (final Player player : server.getOnlinePlayers()) {
- final PlayerData playerdata = PlayerData.getPlayerData(player);
- if (playerdata.getTag() != null)
- {
- playerMsg(sender, player.getName() + ": " + playerdata.getTag());
- }
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length == 1) {
+ if ("list".equalsIgnoreCase(args[0])) {
+ playerMsg(sender, "Tags for all online players:");
- return true;
- }
- else if ("clearall".equalsIgnoreCase(args[0]))
- {
- if (!AdminList.isSuperAdmin(sender))
- {
- playerMsg(sender, FreedomCommand.MSG_NO_PERMS);
- return true;
- }
+ for (final Player player : server.getOnlinePlayers()) {
+ final PlayerData playerdata = PlayerData.getPlayerData(player);
+ if (playerdata.getTag() != null) {
+ playerMsg(sender, player.getName() + ": " + playerdata.getTag());
+ }
+ }
- Utilities.adminAction(sender.getName(), "Removing all tags", false);
+ return true;
+ } else if ("clearall".equalsIgnoreCase(args[0])) {
+ if (!AdminList.isSuperAdmin(sender)) {
+ playerMsg(sender, FreedomCommand.MSG_NO_PERMS);
+ return true;
+ }
- int count = 0;
- for (final Player player : server.getOnlinePlayers())
- {
- final PlayerData playerdata = PlayerData.getPlayerData(player);
- if (playerdata.getTag() != null)
- {
- count++;
- if(TagConfiguration.getTag(playerdata.getUniqueId().toString()) != null){
- String playerTag = TagConfiguration.getTag(playerdata.getUniqueId().toString());
- if(!"".equalsIgnoreCase(playerTag)){
- TagConfiguration.saveTag(sender_p.getUniqueId().toString(), "");
- }
- }
- playerdata.setTag(null);
- }
- }
+ Utilities.adminAction(sender.getName(), "Removing all tags", false);
- playerMsg(sender, count + " tag(s) removed.");
+ int count = 0;
+ for (final Player player : server.getOnlinePlayers()) {
+ final PlayerData playerdata = PlayerData.getPlayerData(player);
+ if (playerdata.getTag() != null) {
+ count++;
+ if (TagConfiguration.getTag(playerdata.getUniqueId().toString()) != null) {
+ String playerTag = TagConfiguration.getTag(
+ playerdata.getUniqueId().toString());
+ if (!"".equalsIgnoreCase(playerTag)) {
+ TagConfiguration.saveTag(sender_p.getUniqueId().toString(), "");
+ }
+ }
+ playerdata.setTag(null);
+ }
+ }
- return true;
- }
- else if ("off".equalsIgnoreCase(args[0]))
- {
- if (senderIsConsole)
- {
- playerMsg(sender, "\"/tag off\" can't be used from the console. Use \"/tag clear \" or \"/tag clearall\" instead.");
- }
- else
- {
- PlayerData.getPlayerData(sender_p).setTag(null);
- if(TagConfiguration.getTag(sender_p.getUniqueId().toString()) != null){
- String playerTag = TagConfiguration.getTag(sender_p.getUniqueId().toString());
- if(!"".equalsIgnoreCase(playerTag)){
- TagConfiguration.saveTag(sender_p.getUniqueId().toString(), "");
- }
- }
- playerMsg(sender, "Your tag has been removed.");
- }
+ playerMsg(sender, count + " tag(s) removed.");
- return true;
- }
- else
- {
- return false;
- }
- }
- else if (args.length >= 2)
- {
- if ("clear".equalsIgnoreCase(args[0]))
- {
- if (!AdminList.isSuperAdmin(sender))
- {
- playerMsg(sender, FreedomCommand.MSG_NO_PERMS);
- return true;
- }
+ return true;
+ } else if ("off".equalsIgnoreCase(args[0])) {
+ if (senderIsConsole) {
+ playerMsg(sender,
+ "\"/tag off\" can't be used from the console. Use \"/tag clear \" or \"/tag clearall\" instead.");
+ } else {
+ PlayerData.getPlayerData(sender_p).setTag(null);
+ if (TagConfiguration.getTag(sender_p.getUniqueId().toString()) != null) {
+ String playerTag = TagConfiguration.getTag(
+ sender_p.getUniqueId().toString());
+ if (!"".equalsIgnoreCase(playerTag)) {
+ TagConfiguration.saveTag(sender_p.getUniqueId().toString(), "");
+ }
+ }
+ playerMsg(sender, "Your tag has been removed.");
+ }
- final Player player = getPlayer(args[1]);
- if (player == null)
- {
- playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
- return true;
- }
- PlayerData.getPlayerData(player).setTag(null);
- if(TagConfiguration.getTag(player.getUniqueId().toString()) != null){
- String playerTag = TagConfiguration.getTag(player.getUniqueId().toString());
- if(!"".equalsIgnoreCase(playerTag)){
- TagConfiguration.saveTag(player.getUniqueId().toString(), "");
- }
- }
- playerMsg(sender, "Removed " + player.getName() + "'s tag.");
+ return true;
+ } else {
+ return false;
+ }
+ } else if (args.length >= 2) {
+ if ("clear".equalsIgnoreCase(args[0])) {
+ if (!AdminList.isSuperAdmin(sender)) {
+ playerMsg(sender, FreedomCommand.MSG_NO_PERMS);
+ return true;
+ }
- return true;
- }
- else if ("set".equalsIgnoreCase(args[0]))
- {
- final String inputTag = StringUtils.join(args, " ", 1, args.length);
- final String outputTag = Utilities.colorize(StringUtils.replaceEachRepeatedly(StringUtils.strip(inputTag),
- new String[]
- {
- "" + ChatColor.COLOR_CHAR, "&k"
- },
- new String[]
- {
- "", ""
- })) + ChatColor.RESET;
+ final Player player = getPlayer(args[1]);
+ if (player == null) {
+ playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
+ return true;
+ }
+ PlayerData.getPlayerData(player).setTag(null);
+ if (TagConfiguration.getTag(player.getUniqueId().toString()) != null) {
+ String playerTag = TagConfiguration.getTag(player.getUniqueId().toString());
+ if (!"".equalsIgnoreCase(playerTag)) {
+ TagConfiguration.saveTag(player.getUniqueId().toString(), "");
+ }
+ }
+ playerMsg(sender, "Removed " + player.getName() + "'s tag.");
- if (!AdminList.isSuperAdmin(sender))
- {
- final String rawTag = ChatColor.stripColor(outputTag).toLowerCase();
+ return true;
+ } else if ("set".equalsIgnoreCase(args[0])) {
+ final String inputTag = StringUtils.join(args, " ", 1, args.length);
+ final String outputTag = Utilities.colorize(
+ StringUtils.replaceEachRepeatedly(StringUtils.strip(inputTag),
+ new String[]
+ {
+ "" + ChatColor.COLOR_CHAR, "&k"
+ },
+ new String[]
+ {
+ "", ""
+ })) + ChatColor.RESET;
- if (rawTag.length() > 20)
- {
- playerMsg(sender, "That tag is too long (Max is 20 characters).");
- return true;
- }
+ if (!AdminList.isSuperAdmin(sender)) {
+ final String rawTag = ChatColor.stripColor(outputTag).toLowerCase();
- for (String word : FORBIDDEN_WORDS)
- {
- if (rawTag.contains(word))
- {
- {
- if(word.equals("developer") && Utilities.DEVELOPERS.contains(sender_p.getName())) {
- PlayerData.getPlayerData(sender_p).setTag(outputTag);
- playerMsg(sender, "Tag set to '" + outputTag + ChatColor.GRAY + "'.");
- } else
- playerMsg(sender, "That tag contains a forbidden word.");
- return true;
- }
- }
- }
- }
+ if (rawTag.length() > 20) {
+ playerMsg(sender, "That tag is too long (Max is 20 characters).");
+ return true;
+ }
- PlayerData.getPlayerData(sender_p).setTag(outputTag);
- playerMsg(sender, "Tag set to '" + outputTag + ChatColor.GRAY + "'.");
+ for (String word : FORBIDDEN_WORDS) {
+ if (rawTag.contains(word)) {
+ {
+ if (word.equals("developer") && Utilities.DEVELOPERS.contains(
+ sender_p.getName())) {
+ PlayerData.getPlayerData(sender_p).setTag(outputTag);
+ playerMsg(sender,
+ "Tag set to '" + outputTag + ChatColor.GRAY + "'.");
+ } else {
+ playerMsg(sender, "That tag contains a forbidden word.");
+ }
+ return true;
+ }
+ }
+ }
+ }
- return true;
- }
- else if ("-s".equalsIgnoreCase(args[0]) && "set".equalsIgnoreCase(args[1]))
- {
- final String inputTag = StringUtils.join(args, " ", 2, args.length);
- final String outputTag = Utilities.colorize(StringUtils.replaceEachRepeatedly(StringUtils.strip(inputTag),
- new String[]
- {
- "" + ChatColor.COLOR_CHAR, "&k"
- },
- new String[]
- {
- "", ""
- })) + ChatColor.RESET;
+ PlayerData.getPlayerData(sender_p).setTag(outputTag);
+ playerMsg(sender, "Tag set to '" + outputTag + ChatColor.GRAY + "'.");
- if (!AdminList.isSuperAdmin(sender))
- {
- final String rawTag = ChatColor.stripColor(outputTag).toLowerCase();
+ return true;
+ } else if ("-s".equalsIgnoreCase(args[0]) && "set".equalsIgnoreCase(args[1])) {
+ final String inputTag = StringUtils.join(args, " ", 2, args.length);
+ final String outputTag = Utilities.colorize(
+ StringUtils.replaceEachRepeatedly(StringUtils.strip(inputTag),
+ new String[]
+ {
+ "" + ChatColor.COLOR_CHAR, "&k"
+ },
+ new String[]
+ {
+ "", ""
+ })) + ChatColor.RESET;
- if (rawTag.length() > 20)
- {
- playerMsg(sender, "That tag is too long (Max is 20 characters).");
- return true;
- }
+ if (!AdminList.isSuperAdmin(sender)) {
+ final String rawTag = ChatColor.stripColor(outputTag).toLowerCase();
- for (String word : FORBIDDEN_WORDS)
- {
- if (rawTag.contains(word))
- {
- if(word.equals("developer") && Utilities.DEVELOPERS.contains(sender_p.getName())) {
- PlayerData.getPlayerData(sender_p).setTag(outputTag);
- TagConfiguration.saveTag(sender_p.getUniqueId().toString(), outputTag);
- playerMsg(sender, "Tag set to '" + outputTag + ChatColor.GRAY + "'. (saved)");
- } else
- playerMsg(sender, "That tag contains a forbidden word.");
- return true;
- }
- }
- }
+ if (rawTag.length() > 20) {
+ playerMsg(sender, "That tag is too long (Max is 20 characters).");
+ return true;
+ }
- PlayerData.getPlayerData(sender_p).setTag(outputTag);
- TagConfiguration.saveTag(sender_p.getUniqueId().toString(), outputTag);
- playerMsg(sender, "Tag set to '" + outputTag + ChatColor.GRAY + "'. (saved)");
- return true;
- } else
- {
- return false;
- }
- }
- else
- {
- return false;
- }
- }
+ for (String word : FORBIDDEN_WORDS) {
+ if (rawTag.contains(word)) {
+ if (word.equals("developer") && Utilities.DEVELOPERS.contains(
+ sender_p.getName())) {
+ PlayerData.getPlayerData(sender_p).setTag(outputTag);
+ TagConfiguration.saveTag(sender_p.getUniqueId().toString(),
+ outputTag);
+ playerMsg(sender,
+ "Tag set to '" + outputTag + ChatColor.GRAY + "'. (saved)");
+ } else {
+ playerMsg(sender, "That tag contains a forbidden word.");
+ }
+ return true;
+ }
+ }
+ }
+
+ PlayerData.getPlayerData(sender_p).setTag(outputTag);
+ TagConfiguration.saveTag(sender_p.getUniqueId().toString(), outputTag);
+ playerMsg(sender, "Tag set to '" + outputTag + ChatColor.GRAY + "'. (saved)");
+ return true;
+ } else {
+ return false;
+ }
+ } else {
+ return false;
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tagnyan.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tagnyan.java
index 40c34ea..1fd1425 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tagnyan.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tagnyan.java
@@ -9,23 +9,26 @@ import org.bukkit.command.CommandSender;
@CommandPermissions(level = AdminLevel.OP, source = SourceType.ONLY_IN_GAME)
public class Command_tagnyan extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length < 1) {
- return false;
- }
- final StringBuilder tag = new StringBuilder();
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length < 1) {
+ return false;
+ }
- for (char c : ChatColor.stripColor(Utilities.colorize(StringUtils.join(args, " "))).toCharArray()) {
- tag.append(Utilities.randomChatColor()).append(c);
- }
+ final StringBuilder tag = new StringBuilder();
- final PlayerData data = PlayerData.getPlayerData(sender_p);
- data.setTag(tag.toString());
+ for (char c : ChatColor.stripColor(Utilities.colorize(StringUtils.join(args, " ")))
+ .toCharArray()) {
+ tag.append(Utilities.randomChatColor()).append(c);
+ }
- playerMsg(sender, "Set tag to " + tag);
+ final PlayerData data = PlayerData.getPlayerData(sender_p);
+ data.setTag(tag.toString());
- return true;
- }
+ playerMsg(sender, "Set tag to " + tag);
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tban.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tban.java
index d4ba73c..9fdea62 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tban.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tban.java
@@ -12,38 +12,45 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_tban extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length != 1) {
- return false;
- }
- final Player player = getPlayer(args[0]);
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length != 1) {
+ return false;
+ }
- if (player == null) {
- playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED);
- return true;
- }
+ final Player player = getPlayer(args[0]);
- // strike with lightning effect:
- 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);
- }
- }
+ if (player == null) {
+ playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED);
+ return true;
+ }
- Utilities.adminAction(sender.getName(), "Tempbanning: " + player.getName() + " for 5 minutes.", true);
- BanManager.addUuidBan(
- new Ban(UUIDManager.getUniqueId(player), player.getName(), sender.getName(), Utilities.parseDateOffset("5m"), ChatColor.RED + "You have been temporarily banned for 5 minutes."));
- BanManager.addIpBan(
- new Ban(Utilities.getIp(player), player.getName(), sender.getName(), Utilities.parseDateOffset("5m"), ChatColor.RED + "You have been temporarily banned for 5 minutes."));
+ // strike with lightning effect:
+ 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);
+ }
+ }
- player.kickPlayer(ChatColor.RED + "You have been temporarily banned for five minutes. Please read totalfreedom.me for more info.");
+ Utilities.adminAction(sender.getName(),
+ "Tempbanning: " + player.getName() + " for 5 minutes.", true);
+ BanManager.addUuidBan(
+ new Ban(UUIDManager.getUniqueId(player), player.getName(), sender.getName(),
+ Utilities.parseDateOffset("5m"),
+ ChatColor.RED + "You have been temporarily banned for 5 minutes."));
+ BanManager.addIpBan(
+ new Ban(Utilities.getIp(player), player.getName(), sender.getName(),
+ Utilities.parseDateOffset("5m"),
+ ChatColor.RED + "You have been temporarily banned for 5 minutes."));
- return true;
- }
+ player.kickPlayer(ChatColor.RED
+ + "You have been temporarily banned for five minutes. Please read totalfreedom.me for more info.");
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tempban.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tempban.java
index ba009cd..d4e1f53 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tempban.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tempban.java
@@ -1,5 +1,7 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.text.SimpleDateFormat;
+import java.util.Date;
import me.StevenLawson.TotalFreedomMod.ban.Ban;
import me.StevenLawson.TotalFreedomMod.ban.BanManager;
import me.StevenLawson.TotalFreedomMod.manager.UUIDManager;
@@ -11,64 +13,64 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_tempban extends FreedomCommand {
- private static final SimpleDateFormat date_format = new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z");
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length < 1) {
- return false;
- }
+ private static final SimpleDateFormat date_format = new SimpleDateFormat(
+ "yyyy-MM-dd 'at' HH:mm:ss z");
- final Player player = getPlayer(args[0]);
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length < 1) {
+ return false;
+ }
- if (player == null) {
- playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
- return true;
- }
+ final Player player = getPlayer(args[0]);
- final StringBuilder message = new StringBuilder("Temporarily banned " + player.getName());
+ if (player == null) {
+ playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
+ return true;
+ }
- Date expires = Utilities.parseDateOffset("30m");
- if (args.length >= 2)
- {
- Date parsed_offset = Utilities.parseDateOffset(args[1]);
- if (parsed_offset != null)
- {
- expires = parsed_offset;
- }
- }
- message.append(" until ").append(date_format.format(expires));
+ final StringBuilder message = new StringBuilder("Temporarily banned " + player.getName());
- String reason = "Banned by " + sender.getName();
- if (args.length >= 3)
- {
- reason = StringUtils.join(ArrayUtils.subarray(args, 2, args.length), " ") + " (" + sender.getName() + ")";
- message.append(", Reason: \"").append(reason).append("\"");
- }
+ Date expires = Utilities.parseDateOffset("30m");
+ if (args.length >= 2) {
+ Date parsed_offset = Utilities.parseDateOffset(args[1]);
+ if (parsed_offset != null) {
+ expires = parsed_offset;
+ }
+ }
+ message.append(" until ").append(date_format.format(expires));
- // strike with lightning effect:
- 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);
- }
- }
+ String reason = "Banned by " + sender.getName();
+ if (args.length >= 3) {
+ reason = StringUtils.join(ArrayUtils.subarray(args, 2, args.length), " ") + " ("
+ + sender.getName() + ")";
+ message.append(", Reason: \"").append(reason).append("\"");
+ }
- Utilities.adminAction(sender.getName(), message.toString(), true);
+ // strike with lightning effect:
+ 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);
+ }
+ }
- BanManager.addIpBan(new Ban(Utilities.getIp(player), player.getName(), sender.getName(), expires, reason));
- BanManager.addUuidBan(new Ban(UUIDManager.getUniqueId(player), player.getName(), sender.getName(), expires, reason));
+ Utilities.adminAction(sender.getName(), message.toString(), true);
- player.kickPlayer(sender.getName() + " - " + message);
+ BanManager.addIpBan(
+ new Ban(Utilities.getIp(player), player.getName(), sender.getName(), expires, reason));
+ BanManager.addUuidBan(
+ new Ban(UUIDManager.getUniqueId(player), player.getName(), sender.getName(), expires,
+ reason));
- return true;
- }
+ player.kickPlayer(sender.getName() + " - " + message);
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tfbanlist.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tfbanlist.java
index ae000be..4e6ad65 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tfbanlist.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tfbanlist.java
@@ -10,32 +10,31 @@ import org.bukkit.command.CommandSender;
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
public class Command_tfbanlist extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length > 0) {
- if (args[0].equalsIgnoreCase("purge")) {
- if (senderIsConsole || AdminList.isSuperAdmin(sender)) {
- try {
- Utilities.adminAction(sender.getName(), "Purging the ban list", true);
- BanManager.purgeUuidBans();
- sender.sendMessage(ChatColor.GRAY + "Ban list has been purged.");
- }
- catch (Exception ex)
- {
- Log.severe(ex);
- }
- return true;
- }
- else
- {
- playerMsg(sender, "You do not have permission to purge the ban list, you may only view it.");
- }
- }
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length > 0) {
+ if (args[0].equalsIgnoreCase("purge")) {
+ if (senderIsConsole || AdminList.isSuperAdmin(sender)) {
+ try {
+ Utilities.adminAction(sender.getName(), "Purging the ban list", true);
+ BanManager.purgeUuidBans();
+ sender.sendMessage(ChatColor.GRAY + "Ban list has been purged.");
+ } catch (Exception ex) {
+ Log.severe(ex);
+ }
- playerMsg(sender, BanManager.getUuidBanList().size() + " UUID bans total");
+ return true;
+ } else {
+ playerMsg(sender,
+ "You do not have permission to purge the ban list, you may only view it.");
+ }
+ }
+ }
- return true;
- }
+ playerMsg(sender, BanManager.getUuidBanList().size() + " UUID bans total");
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tfipbanlist.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tfipbanlist.java
index 92ce4bf..a51a3ae 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tfipbanlist.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tfipbanlist.java
@@ -10,33 +10,32 @@ import org.bukkit.command.CommandSender;
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
public class Command_tfipbanlist extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length > 0) {
- if (args[0].equalsIgnoreCase("purge")) {
- if (senderIsConsole || AdminList.isSuperAdmin(sender)) {
- try {
- BanManager.purgeIpBans();
- Utilities.adminAction(sender.getName(), "Purging the IP ban list", true);
- sender.sendMessage(ChatColor.GRAY + "IP ban list has been purged.");
- }
- catch (Exception ex)
- {
- Log.severe(ex);
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length > 0) {
+ if (args[0].equalsIgnoreCase("purge")) {
+ if (senderIsConsole || AdminList.isSuperAdmin(sender)) {
+ try {
+ BanManager.purgeIpBans();
+ Utilities.adminAction(sender.getName(), "Purging the IP ban list", true);
- return true;
- }
- else
- {
- playerMsg(sender, "You do not have permission to purge the IP ban list, you may only view it.");
- }
- }
- }
+ sender.sendMessage(ChatColor.GRAY + "IP ban list has been purged.");
+ } catch (Exception ex) {
+ Log.severe(ex);
+ }
- playerMsg(sender, BanManager.getIpBanList().size() + " IPbans total");
+ return true;
+ } else {
+ playerMsg(sender,
+ "You do not have permission to purge the IP ban list, you may only view it.");
+ }
+ }
+ }
- return true;
- }
+ playerMsg(sender, BanManager.getIpBanList().size() + " IPbans total");
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tfm.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tfm.java
index 6e88537..1b12d67 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tfm.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tfm.java
@@ -19,48 +19,52 @@ import org.bukkit.command.CommandSender;
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
@CommandParameters(description = "Shows information about TotalFreedomMod or reloads it", usage = "/ [reload]")
public class Command_tfm extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length == 1) {
- if (!args[0].equals("reload")) {
- return false;
- }
- if (!AdminList.isSuperAdmin(sender)) {
- playerMsg(FreedomCommand.MSG_NO_PERMS);
- return true;
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length == 1) {
+ if (!args[0].equals("reload")) {
+ return false;
+ }
- MainConfig.load();
- AdminList.load();
- PermbanList.load();
- PlayerList.load();
- BanManager.load();
- CommandBlocker.load();
+ if (!AdminList.isSuperAdmin(sender)) {
+ playerMsg(FreedomCommand.MSG_NO_PERMS);
+ return true;
+ }
- final String message = String.format("%s v%s.%s reloaded.",
- TotalFreedomMod.pluginName,
- TotalFreedomMod.pluginVersion,
- TotalFreedomMod.buildNumber);
+ MainConfig.load();
+ AdminList.load();
+ PermbanList.load();
+ PlayerList.load();
+ BanManager.load();
+ CommandBlocker.load();
- playerMsg(message);
- Log.info(message);
- return true;
- }
+ final String message = String.format("%s v%s.%s reloaded.",
+ TotalFreedomMod.pluginName,
+ TotalFreedomMod.pluginVersion,
+ TotalFreedomMod.buildNumber);
- playerMsg("TotalFreedomMod for 'Total Freedom', the original all-op server.", ChatColor.GOLD);
- playerMsg(String.format("Version "
- + ChatColor.BLUE + "%s.%s" + ChatColor.GOLD + ", built "
- + ChatColor.BLUE + "%s" + ChatColor.GOLD + " by "
- + ChatColor.BLUE + "%s" + ChatColor.GOLD + ".",
- TotalFreedomMod.pluginVersion,
- TotalFreedomMod.buildNumber,
- TotalFreedomMod.buildDate,
- TotalFreedomMod.buildCreator), ChatColor.GOLD);
- playerMsg("Running on " + ConfigurationEntry.SERVER_NAME.getString() + ".", ChatColor.GOLD);
- playerMsg("Created by Madgeek1450 and Prozza.", ChatColor.GOLD);
- playerMsg("Visit " + ChatColor.AQUA + "http://totalfreedom.me/" + ChatColor.GREEN + " for more information.", ChatColor.GREEN);
+ playerMsg(message);
+ Log.info(message);
+ return true;
+ }
- return true;
- }
+ playerMsg("TotalFreedomMod for 'Total Freedom', the original all-op server.",
+ ChatColor.GOLD);
+ playerMsg(String.format("Version "
+ + ChatColor.BLUE + "%s.%s" + ChatColor.GOLD + ", built "
+ + ChatColor.BLUE + "%s" + ChatColor.GOLD + " by "
+ + ChatColor.BLUE + "%s" + ChatColor.GOLD + ".",
+ TotalFreedomMod.pluginVersion,
+ TotalFreedomMod.buildNumber,
+ TotalFreedomMod.buildDate,
+ TotalFreedomMod.buildCreator), ChatColor.GOLD);
+ playerMsg("Running on " + ConfigurationEntry.SERVER_NAME.getString() + ".", ChatColor.GOLD);
+ playerMsg("Created by Madgeek1450 and Prozza.", ChatColor.GOLD);
+ playerMsg("Visit " + ChatColor.AQUA + "http://totalfreedom.me/" + ChatColor.GREEN
+ + " for more information.", ChatColor.GREEN);
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_toggle.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_toggle.java
index f5e3603..9d8ba5b 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_toggle.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_toggle.java
@@ -10,150 +10,136 @@ import org.bukkit.command.CommandSender;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_toggle extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length == 0) {
- playerMsg(sender, "Available toggles: ");
- playerMsg(sender, "- waterplace");
- playerMsg(sender, "- fireplace");
- playerMsg(sender, "- lavaplace");
- playerMsg(sender, "- fluidspread");
- playerMsg(sender, "- lavadmg");
- playerMsg(sender, "- firespread");
- playerMsg(sender, "- prelog");
- playerMsg(sender, "- lockdown");
- playerMsg(sender, "- petprotect");
- playerMsg(sender, "- droptoggle");
- playerMsg(sender, "- nonuke");
- playerMsg(sender, "- explosives");
- return false;
- }
- if (args[0].equals("waterplace"))
- {
- toggle(sender, "Water placement is", ConfigurationEntry.ALLOW_WATER_PLACE);
- return true;
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length == 0) {
+ playerMsg(sender, "Available toggles: ");
+ playerMsg(sender, "- waterplace");
+ playerMsg(sender, "- fireplace");
+ playerMsg(sender, "- lavaplace");
+ playerMsg(sender, "- fluidspread");
+ playerMsg(sender, "- lavadmg");
+ playerMsg(sender, "- firespread");
+ playerMsg(sender, "- prelog");
+ playerMsg(sender, "- lockdown");
+ playerMsg(sender, "- petprotect");
+ playerMsg(sender, "- droptoggle");
+ playerMsg(sender, "- nonuke");
+ playerMsg(sender, "- explosives");
+ return false;
+ }
- if (args[0].equals("fireplace"))
- {
- toggle(sender, "Fire placement is", ConfigurationEntry.ALLOW_FIRE_PLACE);
- return true;
- }
+ if (args[0].equals("waterplace")) {
+ toggle(sender, "Water placement is", ConfigurationEntry.ALLOW_WATER_PLACE);
+ return true;
+ }
- if (args[0].equals("lavaplace"))
- {
- toggle(sender, "Lava placement is", ConfigurationEntry.ALLOW_LAVA_PLACE);
- return true;
- }
+ if (args[0].equals("fireplace")) {
+ toggle(sender, "Fire placement is", ConfigurationEntry.ALLOW_FIRE_PLACE);
+ return true;
+ }
- if (args[0].equals("fluidspread"))
- {
- toggle(sender, "Fluid spread is", ConfigurationEntry.ALLOW_FLUID_SPREAD);
- return true;
- }
+ if (args[0].equals("lavaplace")) {
+ toggle(sender, "Lava placement is", ConfigurationEntry.ALLOW_LAVA_PLACE);
+ return true;
+ }
- if (args[0].equals("lavadmg"))
- {
- toggle(sender, "Lava damage is", ConfigurationEntry.ALLOW_LAVA_DAMAGE);
- return true;
- }
+ if (args[0].equals("fluidspread")) {
+ toggle(sender, "Fluid spread is", ConfigurationEntry.ALLOW_FLUID_SPREAD);
+ return true;
+ }
- if (args[0].equals("firespread"))
- {
- toggle(sender, "Fire spread is", ConfigurationEntry.ALLOW_FIRE_SPREAD);
- GameRuleHandler.setGameRule(TFM_GameRule.DO_FIRE_TICK, ConfigurationEntry.ALLOW_FIRE_SPREAD.getBoolean());
- return true;
- }
+ if (args[0].equals("lavadmg")) {
+ toggle(sender, "Lava damage is", ConfigurationEntry.ALLOW_LAVA_DAMAGE);
+ return true;
+ }
- if (args[0].equals("prelog"))
- {
- toggle(sender, "Command prelogging is", ConfigurationEntry.ENABLE_PREPROCESS_LOG);
- return true;
- }
+ if (args[0].equals("firespread")) {
+ toggle(sender, "Fire spread is", ConfigurationEntry.ALLOW_FIRE_SPREAD);
+ GameRuleHandler.setGameRule(TFM_GameRule.DO_FIRE_TICK,
+ ConfigurationEntry.ALLOW_FIRE_SPREAD.getBoolean());
+ return true;
+ }
- if (args[0].equals("lockdown"))
- {
- Utilities.adminAction(sender.getName(), (TotalFreedomMod.lockdownEnabled ? "De-a" : "A") + "ctivating server lockdown", true);
- TotalFreedomMod.lockdownEnabled = !TotalFreedomMod.lockdownEnabled;
- return true;
- }
+ if (args[0].equals("prelog")) {
+ toggle(sender, "Command prelogging is", ConfigurationEntry.ENABLE_PREPROCESS_LOG);
+ return true;
+ }
- if (args[0].equals("petprotect"))
- {
- toggle(sender, "Tamed pet protection is", ConfigurationEntry.ENABLE_PET_PROTECT);
- return true;
- }
+ if (args[0].equals("lockdown")) {
+ Utilities.adminAction(sender.getName(),
+ (TotalFreedomMod.lockdownEnabled ? "De-a" : "A") + "ctivating server lockdown",
+ true);
+ TotalFreedomMod.lockdownEnabled = !TotalFreedomMod.lockdownEnabled;
+ return true;
+ }
- if (args[0].equals("droptoggle"))
- {
- toggle(sender, "Automatic entity wiping is", ConfigurationEntry.AUTO_ENTITY_WIPE);
- return true;
- }
+ if (args[0].equals("petprotect")) {
+ toggle(sender, "Tamed pet protection is", ConfigurationEntry.ENABLE_PET_PROTECT);
+ return true;
+ }
- if (args[0].equals("nonuke"))
- {
- if (args.length >= 2)
- {
- try
- {
- ConfigurationEntry.NUKE_MONITOR_RANGE.setDouble(Math.max(1.0, Math.min(500.0, Double.parseDouble(args[1]))));
- }
- catch (NumberFormatException nfex)
- {
- }
- }
+ if (args[0].equals("droptoggle")) {
+ toggle(sender, "Automatic entity wiping is", ConfigurationEntry.AUTO_ENTITY_WIPE);
+ return true;
+ }
- if (args.length >= 3)
- {
- try
- {
- ConfigurationEntry.NUKE_MONITOR_COUNT_BREAK.setInteger(Math.max(1, Math.min(500, Integer.parseInt(args[2]))));
- }
- catch (NumberFormatException nfex)
- {
- }
- }
+ if (args[0].equals("nonuke")) {
+ if (args.length >= 2) {
+ try {
+ ConfigurationEntry.NUKE_MONITOR_RANGE.setDouble(
+ Math.max(1.0, Math.min(500.0, Double.parseDouble(args[1]))));
+ } catch (NumberFormatException nfex) {
+ }
+ }
- toggle(sender, "Nuke monitor is", ConfigurationEntry.NUKE_MONITOR_ENABLED);
+ if (args.length >= 3) {
+ try {
+ ConfigurationEntry.NUKE_MONITOR_COUNT_BREAK.setInteger(
+ Math.max(1, Math.min(500, Integer.parseInt(args[2]))));
+ } catch (NumberFormatException nfex) {
+ }
+ }
- if (ConfigurationEntry.NUKE_MONITOR_ENABLED.getBoolean())
- {
- playerMsg(sender, "Anti-freecam range is set to " + ConfigurationEntry.NUKE_MONITOR_RANGE.getDouble() + " blocks.");
- playerMsg(sender, "Block throttle rate is set to " + ConfigurationEntry.NUKE_MONITOR_COUNT_BREAK.getInteger() + " blocks destroyed per 5 seconds.");
- }
+ toggle(sender, "Nuke monitor is", ConfigurationEntry.NUKE_MONITOR_ENABLED);
- return true;
- }
- if (args[0].equals("explosives"))
- {
- if (args.length == 2)
- {
- try
- {
- ConfigurationEntry.EXPLOSIVE_RADIUS.setDouble(Math.max(1.0, Math.min(30.0, Double.parseDouble(args[1]))));
- }
- catch (NumberFormatException ex)
- {
- playerMsg(sender, ex.getMessage());
- return true;
- }
- }
+ if (ConfigurationEntry.NUKE_MONITOR_ENABLED.getBoolean()) {
+ playerMsg(sender, "Anti-freecam range is set to "
+ + ConfigurationEntry.NUKE_MONITOR_RANGE.getDouble() + " blocks.");
+ playerMsg(sender, "Block throttle rate is set to "
+ + ConfigurationEntry.NUKE_MONITOR_COUNT_BREAK.getInteger()
+ + " blocks destroyed per 5 seconds.");
+ }
- toggle(sender, "Explosions are", ConfigurationEntry.ALLOW_EXPLOSIONS);
+ return true;
+ }
+ if (args[0].equals("explosives")) {
+ if (args.length == 2) {
+ try {
+ ConfigurationEntry.EXPLOSIVE_RADIUS.setDouble(
+ Math.max(1.0, Math.min(30.0, Double.parseDouble(args[1]))));
+ } catch (NumberFormatException ex) {
+ playerMsg(sender, ex.getMessage());
+ return true;
+ }
+ }
- if (ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean())
- {
- playerMsg(sender, "Radius set to " + ConfigurationEntry.EXPLOSIVE_RADIUS.getDouble());
- }
- return true;
- }
+ toggle(sender, "Explosions are", ConfigurationEntry.ALLOW_EXPLOSIONS);
- return false;
- }
+ if (ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean()) {
+ playerMsg(sender,
+ "Radius set to " + ConfigurationEntry.EXPLOSIVE_RADIUS.getDouble());
+ }
+ return true;
+ }
- private void toggle(CommandSender sender, String name, ConfigurationEntry entry)
- {
- playerMsg(sender, name + " now " + (entry.setBoolean(!entry.getBoolean()) ? "enabled." : "disabled."));
- }
+ return false;
+ }
+
+ private void toggle(CommandSender sender, String name, ConfigurationEntry entry) {
+ playerMsg(sender,
+ name + " now " + (entry.setBoolean(!entry.getBoolean()) ? "enabled." : "disabled."));
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tossmob.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tossmob.java
index e3cf765..86ba2db 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tossmob.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_tossmob.java
@@ -13,71 +13,69 @@ import org.bukkit.inventory.ItemStack;
@CommandPermissions(level = AdminLevel.OP, source = SourceType.ONLY_IN_GAME)
public class Command_tossmob extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (!ConfigurationEntry.TOSSMOB_ENABLED.getBoolean()) {
- playerMsg(sender, "Tossmob is currently disabled.");
- return true;
- }
- PlayerData playerData = PlayerData.getPlayerData(sender_p);
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (!ConfigurationEntry.TOSSMOB_ENABLED.getBoolean()) {
+ playerMsg(sender, "Tossmob is currently disabled.");
+ return true;
+ }
- EntityType creature = EntityType.PIG;
- if (args.length >= 1)
- {
- if ("off".equals(args[0]))
- {
- playerData.disableMobThrower();
- playerMsg(sender, "MobThrower is disabled.", ChatColor.GREEN);
- return true;
- }
+ PlayerData playerData = PlayerData.getPlayerData(sender_p);
- if (args[0].equalsIgnoreCase("list"))
- {
- playerMsg(sender, "Supported mobs: " + StringUtils.join(Utilities.mobtypes.keySet(), ", "), ChatColor.GREEN);
- return true;
- }
+ EntityType creature = EntityType.PIG;
+ if (args.length >= 1) {
+ if ("off".equals(args[0])) {
+ playerData.disableMobThrower();
+ playerMsg(sender, "MobThrower is disabled.", ChatColor.GREEN);
+ return true;
+ }
- try
- {
- creature = Utilities.getEntityType(args[0]);
- }
- catch (Exception ex)
- {
- playerMsg(sender, args[0] + " is not a supported mob type. Using a pig instead.", ChatColor.RED);
- playerMsg(sender, "By the way, you can type /tossmob list to see all possible mobs.", ChatColor.RED);
- creature = EntityType.PIG;
- }
- }
+ if (args[0].equalsIgnoreCase("list")) {
+ playerMsg(sender,
+ "Supported mobs: " + StringUtils.join(Utilities.mobtypes.keySet(), ", "),
+ ChatColor.GREEN);
+ return true;
+ }
- double speed = 1.0;
- if (args.length >= 2)
- {
- try
- {
- speed = Double.parseDouble(args[1]);
- }
- catch (NumberFormatException nfex)
- {
- }
- }
+ try {
+ creature = Utilities.getEntityType(args[0]);
+ } catch (Exception ex) {
+ playerMsg(sender, args[0] + " is not a supported mob type. Using a pig instead.",
+ ChatColor.RED);
+ playerMsg(sender,
+ "By the way, you can type /tossmob list to see all possible mobs.",
+ ChatColor.RED);
+ creature = EntityType.PIG;
+ }
+ }
- if (speed < 1.0)
- {
- speed = 1.0;
- }
- else if (speed > 5.0)
- {
- speed = 5.0;
- }
+ double speed = 1.0;
+ if (args.length >= 2) {
+ try {
+ speed = Double.parseDouble(args[1]);
+ } catch (NumberFormatException nfex) {
+ }
+ }
- playerData.enableMobThrower(creature, speed);
- playerMsg(sender, "MobThrower is enabled. Creature: " + creature + " - Speed: " + speed + ".", ChatColor.GREEN);
- playerMsg(sender, "Left click while holding a " + Material.BONE.toString() + " to throw mobs!", ChatColor.GREEN);
- playerMsg(sender, "Type '/tossmob off' to disable. -By Madgeek1450", ChatColor.GREEN);
+ if (speed < 1.0) {
+ speed = 1.0;
+ } else if (speed > 5.0) {
+ speed = 5.0;
+ }
- sender_p.setItemInHand(new ItemStack(Material.BONE, 1));
+ playerData.enableMobThrower(creature, speed);
+ playerMsg(sender,
+ "MobThrower is enabled. Creature: " + creature + " - Speed: " + speed + ".",
+ ChatColor.GREEN);
+ playerMsg(sender,
+ "Left click while holding a " + Material.BONE + " to throw mobs!",
+ ChatColor.GREEN);
+ playerMsg(sender, "Type '/tossmob off' to disable. -By Madgeek1450", ChatColor.GREEN);
- return true;
- }
+ sender_p.setItemInHand(new ItemStack(Material.BONE, 1));
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_trail.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_trail.java
index 10c4092..5d82cd5 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_trail.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_trail.java
@@ -1,5 +1,8 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import me.StevenLawson.TotalFreedomMod.util.DeprecationUtil;
import org.bukkit.Bukkit;
@@ -14,113 +17,91 @@ import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.plugin.RegisteredListener;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Random;
-
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_IN_GAME)
public class Command_trail extends FreedomCommand {
- private static Listener movementListener = null;
- private static final List trailPlayers = new ArrayList();
- private static final Random RANDOM = new Random();
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length > 0 && "off".equals(args[0])) {
- trailPlayers.remove(sender_p);
+ private static final List trailPlayers = new ArrayList();
+ private static final Random RANDOM = new Random();
+ private static Listener movementListener = null;
- playerMsg(sender, "Trail disabled.");
- } else {
- if (!trailPlayers.contains(sender_p))
- {
- trailPlayers.add(sender_p);
- }
+ private static void registerMovementHandler() {
+ if (getRegisteredListener(movementListener) == null) {
+ Bukkit.getPluginManager().registerEvents(movementListener = new Listener() {
+ @EventHandler(priority = EventPriority.NORMAL)
+ public void onPlayerMove(PlayerMoveEvent event) {
+ Player player = event.getPlayer();
+ if (trailPlayers.contains(player)) {
+ Block fromBlock = event.getFrom().getBlock();
+ if (fromBlock.isEmpty()) {
+ Block toBlock = event.getTo().getBlock();
+ if (!fromBlock.equals(toBlock)) {
+ fromBlock.setType(Material.WOOL);
+ DeprecationUtil.setData_Block(fromBlock, (byte) RANDOM.nextInt(16));
+ }
+ }
+ }
+ }
+ }, TotalFreedomMod.plugin);
+ }
+ }
- playerMsg(sender, "Trail enabled. Use \"/trail off\" to disable.");
- }
+ private static void unregisterMovementHandler() {
+ Listener registeredListener = getRegisteredListener(movementListener);
+ if (registeredListener != null) {
+ PlayerMoveEvent.getHandlerList().unregister(registeredListener);
+ }
+ }
- if (!trailPlayers.isEmpty())
- {
- registerMovementHandler();
- }
- else
- {
- unregisterMovementHandler();
- }
+ private static Listener getRegisteredListener(Listener listener) {
+ RegisteredListener[] registeredListeners = PlayerMoveEvent.getHandlerList()
+ .getRegisteredListeners();
+ for (RegisteredListener registeredListener : registeredListeners) {
+ if (registeredListener.getListener() == listener) {
+ return listener;
+ }
+ }
+ return null;
+ }
- return true;
- }
+ public static void startTrail(Player player) {
+ if (!trailPlayers.contains(player)) {
+ trailPlayers.add(player);
+ }
- private static void registerMovementHandler()
- {
- if (getRegisteredListener(movementListener) == null)
- {
- Bukkit.getPluginManager().registerEvents(movementListener = new Listener()
- {
- @EventHandler(priority = EventPriority.NORMAL)
- public void onPlayerMove(PlayerMoveEvent event)
- {
- Player player = event.getPlayer();
- if (trailPlayers.contains(player))
- {
- Block fromBlock = event.getFrom().getBlock();
- if (fromBlock.isEmpty())
- {
- Block toBlock = event.getTo().getBlock();
- if (!fromBlock.equals(toBlock))
- {
- fromBlock.setType(Material.WOOL);
- DeprecationUtil.setData_Block(fromBlock, (byte) RANDOM.nextInt(16));
- }
- }
- }
- }
- }, TotalFreedomMod.plugin);
- }
- }
+ if (!trailPlayers.isEmpty()) {
+ registerMovementHandler();
+ }
+ }
- private static void unregisterMovementHandler()
- {
- Listener registeredListener = getRegisteredListener(movementListener);
- if (registeredListener != null)
- {
- PlayerMoveEvent.getHandlerList().unregister(registeredListener);
- }
- }
+ public static void stopTrail(Player player) {
+ trailPlayers.remove(player);
- private static Listener getRegisteredListener(Listener listener)
- {
- RegisteredListener[] registeredListeners = PlayerMoveEvent.getHandlerList().getRegisteredListeners();
- for (RegisteredListener registeredListener : registeredListeners)
- {
- if (registeredListener.getListener() == listener)
- {
- return listener;
- }
- }
- return null;
- }
+ if (trailPlayers.isEmpty()) {
+ unregisterMovementHandler();
+ }
+ }
- public static void startTrail(Player player)
- {
- if (!trailPlayers.contains(player))
- {
- trailPlayers.add(player);
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length > 0 && "off".equals(args[0])) {
+ trailPlayers.remove(sender_p);
- if (!trailPlayers.isEmpty())
- {
- registerMovementHandler();
- }
- }
+ playerMsg(sender, "Trail disabled.");
+ } else {
+ if (!trailPlayers.contains(sender_p)) {
+ trailPlayers.add(sender_p);
+ }
- public static void stopTrail(Player player)
- {
- trailPlayers.remove(player);
+ playerMsg(sender, "Trail enabled. Use \"/trail off\" to disable.");
+ }
- if (trailPlayers.isEmpty())
- {
- unregisterMovementHandler();
- }
- }
+ if (!trailPlayers.isEmpty()) {
+ registerMovementHandler();
+ } else {
+ unregisterMovementHandler();
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_updatetfm.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_updatetfm.java
index ef64ba4..afc1c28 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_updatetfm.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_updatetfm.java
@@ -1,9 +1,9 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.io.File;
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
import me.StevenLawson.TotalFreedomMod.config.MainConfig;
import me.StevenLawson.TotalFreedomMod.discord.bridge.DiscordBridge;
-import me.StevenLawson.TotalFreedomMod.util.SynchronousUtil;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
@@ -11,38 +11,38 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import java.io.File;
-
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_updatetfm extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- playerMsg(sender, "Compiling TFM, please wait...", ChatColor.RED);
- Utilities.adminAction(sender.getName(), "Compiling TFM", true);
- String path = MainConfig.getString(ConfigurationEntry.TFM_BUILD_SHELLSCRIPT);
- File file = new File(path);
- String directory = file.getParent();
- try {
- String command = String.format("cd %s && ./%s", directory, file.getName());
- ProcessBuilder proc = new ProcessBuilder("/bin/bash", "-c", command);
- Process process = proc.start();
- process.waitFor();
- DiscordBridge.transmitMessage("**TFM is being reloaded...**", true);
- playerMsg(sender, "Compiled TFM! Reloading...");
- Utilities.adminAction(sender.getName(), "Compilation successful, reloading TFM...", false);
- for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
- onlinePlayer.kickPlayer(ChatColor.RED + "Reloading TFM, please rejoin.");
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ playerMsg(sender, "Compiling TFM, please wait...", ChatColor.RED);
+ Utilities.adminAction(sender.getName(), "Compiling TFM", true);
+ String path = MainConfig.getString(ConfigurationEntry.TFM_BUILD_SHELLSCRIPT);
+ File file = new File(path);
+ String directory = file.getParent();
- Bukkit.dispatchCommand(sender, "plugman reload TotalFreedomMod");
- } catch (Exception e) {
- playerMsg(sender, "Failed to update TFM! Check the logs for more details.");
- Utilities.adminAction(sender.getName(), "Could not update TFM", true);
- e.printStackTrace();
- }
+ try {
+ String command = String.format("cd %s && ./%s", directory, file.getName());
+ ProcessBuilder proc = new ProcessBuilder("/bin/bash", "-c", command);
+ Process process = proc.start();
+ process.waitFor();
+ DiscordBridge.transmitMessage("**TFM is being reloaded...**", true);
+ playerMsg(sender, "Compiled TFM! Reloading...");
+ Utilities.adminAction(sender.getName(), "Compilation successful, reloading TFM...",
+ false);
+ for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
+ onlinePlayer.kickPlayer(ChatColor.RED + "Reloading TFM, please rejoin.");
+ }
+ Bukkit.dispatchCommand(sender, "plugman reload TotalFreedomMod");
+ } catch (Exception e) {
+ playerMsg(sender, "Failed to update TFM! Check the logs for more details.");
+ Utilities.adminAction(sender.getName(), "Could not update TFM", true);
+ e.printStackTrace();
+ }
- return true;
- }
+ return true;
+ }
}
\ No newline at end of file
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_warn.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_warn.java
index 25d5680..4a9c875 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_warn.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_warn.java
@@ -11,41 +11,40 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH, blockHostConsole = true)
public class Command_warn extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length < 2) {
- return false;
- }
- Player player = getPlayer(args[0]);
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length < 2) {
+ return false;
+ }
- if (player == null) {
- playerMsg(sender, PLAYER_NOT_FOUND);
- return true;
- }
+ Player player = getPlayer(args[0]);
- if (sender instanceof Player)
- {
- if (player.equals(sender_p))
- {
- playerMsg(sender, ChatColor.RED + "Please, don't try to warn yourself.");
- return true;
- }
- }
+ if (player == null) {
+ playerMsg(sender, PLAYER_NOT_FOUND);
+ return true;
+ }
- if (AdminList.isSuperAdmin(player))
- {
- playerMsg(sender, ChatColor.RED + "You can not warn admins");
- return true;
- }
+ if (sender instanceof Player) {
+ if (player.equals(sender_p)) {
+ playerMsg(sender, ChatColor.RED + "Please, don't try to warn yourself.");
+ return true;
+ }
+ }
- String warnReason = StringUtils.join(ArrayUtils.subarray(args, 1, args.length), " ");
+ if (AdminList.isSuperAdmin(player)) {
+ playerMsg(sender, ChatColor.RED + "You can not warn admins");
+ return true;
+ }
- playerMsg(sender, ChatColor.RED + "[WARNING] " + warnReason);
- playerMsg(sender, ChatColor.GREEN + "You have successfully warned " + player.getName());
+ String warnReason = StringUtils.join(ArrayUtils.subarray(args, 1, args.length), " ");
- PlayerData.getPlayerData(player).incrementWarnings();
+ playerMsg(sender, ChatColor.RED + "[WARNING] " + warnReason);
+ playerMsg(sender, ChatColor.GREEN + "You have successfully warned " + player.getName());
- return true;
- }
+ PlayerData.getPlayerData(player).incrementWarnings();
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_whitelist.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_whitelist.java
index 1e23448..4056c6d 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_whitelist.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_whitelist.java
@@ -11,156 +11,142 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
public class Command_whitelist extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length < 1) {
- return false;
- }
- // list
- if (args[0].equalsIgnoreCase("list")) {
- playerMsg(sender, "Whitelisted players: " + Utilities.playerListToNames(server.getWhitelistedPlayers()));
- return true;
- }
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length < 1) {
+ return false;
+ }
- // count
- if (args[0].equalsIgnoreCase("count"))
- {
- int onlineWPs = 0;
- int offlineWPs = 0;
- int totalWPs = 0;
+ // list
+ if (args[0].equalsIgnoreCase("list")) {
+ playerMsg(sender, "Whitelisted players: " + Utilities.playerListToNames(
+ server.getWhitelistedPlayers()));
+ return true;
+ }
- for (OfflinePlayer player : server.getWhitelistedPlayers())
- {
- if (player.isOnline())
- {
- onlineWPs++;
- }
- else
- {
- offlineWPs++;
- }
- totalWPs++;
- }
+ // count
+ if (args[0].equalsIgnoreCase("count")) {
+ int onlineWPs = 0;
+ int offlineWPs = 0;
+ int totalWPs = 0;
- playerMsg(sender, "Online whitelisted players: " + onlineWPs);
- playerMsg(sender, "Offline whitelisted players: " + offlineWPs);
- playerMsg(sender, "Total whitelisted players: " + totalWPs);
+ for (OfflinePlayer player : server.getWhitelistedPlayers()) {
+ if (player.isOnline()) {
+ onlineWPs++;
+ } else {
+ offlineWPs++;
+ }
+ totalWPs++;
+ }
- return true;
- }
+ playerMsg(sender, "Online whitelisted players: " + onlineWPs);
+ playerMsg(sender, "Offline whitelisted players: " + offlineWPs);
+ playerMsg(sender, "Total whitelisted players: " + totalWPs);
- // all commands past this line are superadmin-only
- if (!(senderIsConsole || AdminList.isSuperAdmin(sender)))
- {
- sender.sendMessage(FreedomCommand.MSG_NO_PERMS);
- return true;
- }
+ return true;
+ }
- // on
- if (args[0].equalsIgnoreCase("on"))
- {
- Utilities.adminAction(sender.getName(), "Turning the whitelist on.", true);
- server.setWhitelist(true);
- return true;
- }
+ // all commands past this line are superadmin-only
+ if (!(senderIsConsole || AdminList.isSuperAdmin(sender))) {
+ sender.sendMessage(FreedomCommand.MSG_NO_PERMS);
+ return true;
+ }
- // off
- if (args[0].equalsIgnoreCase("off"))
- {
- Utilities.adminAction(sender.getName(), "Turning the whitelist off.", true);
- server.setWhitelist(false);
- return true;
- }
+ // on
+ if (args[0].equalsIgnoreCase("on")) {
+ Utilities.adminAction(sender.getName(), "Turning the whitelist on.", true);
+ server.setWhitelist(true);
+ return true;
+ }
- // add
- if (args[0].equalsIgnoreCase("add"))
- {
- if (args.length < 2)
- {
- return false;
- }
+ // off
+ if (args[0].equalsIgnoreCase("off")) {
+ Utilities.adminAction(sender.getName(), "Turning the whitelist off.", true);
+ server.setWhitelist(false);
+ return true;
+ }
- String search_name = args[1].trim().toLowerCase();
+ // add
+ if (args[0].equalsIgnoreCase("add")) {
+ if (args.length < 2) {
+ return false;
+ }
- OfflinePlayer player = getPlayer(search_name);
+ String search_name = args[1].trim().toLowerCase();
- if (player == null)
- {
- player = DeprecationUtil.getOfflinePlayer(server, search_name);
- }
+ OfflinePlayer player = getPlayer(search_name);
- Utilities.adminAction(sender.getName(), "Adding " + player.getName() + " to the whitelist.", false);
- player.setWhitelisted(true);
- return true;
- }
+ if (player == null) {
+ player = DeprecationUtil.getOfflinePlayer(server, search_name);
+ }
- // remove
- if ("remove".equals(args[0]))
- {
- if (args.length < 2)
- {
- return false;
- }
+ Utilities.adminAction(sender.getName(),
+ "Adding " + player.getName() + " to the whitelist.", false);
+ player.setWhitelisted(true);
+ return true;
+ }
- String search_name = args[1].trim().toLowerCase();
+ // remove
+ if ("remove".equals(args[0])) {
+ if (args.length < 2) {
+ return false;
+ }
- OfflinePlayer player = getPlayer(search_name);
+ String search_name = args[1].trim().toLowerCase();
- if (player == null)
- {
- player = DeprecationUtil.getOfflinePlayer(server, search_name);
- }
+ OfflinePlayer player = getPlayer(search_name);
- if (player.isWhitelisted())
- {
- Utilities.adminAction(sender.getName(), "Removing " + player.getName() + " from the whitelist.", false);
- player.setWhitelisted(false);
- return true;
- }
- else
- {
- playerMsg(sender, "That player is not whitelisted");
- return true;
- }
+ if (player == null) {
+ player = DeprecationUtil.getOfflinePlayer(server, search_name);
+ }
- }
+ if (player.isWhitelisted()) {
+ Utilities.adminAction(sender.getName(),
+ "Removing " + player.getName() + " from the whitelist.", false);
+ player.setWhitelisted(false);
+ return true;
+ } else {
+ playerMsg(sender, "That player is not whitelisted");
+ return true;
+ }
- // addall
- if (args[0].equalsIgnoreCase("addall"))
- {
- Utilities.adminAction(sender.getName(), "Adding all online players to the whitelist.", false);
- int counter = 0;
- for (Player player : server.getOnlinePlayers())
- {
- if (!player.isWhitelisted())
- {
- player.setWhitelisted(true);
- counter++;
- }
- }
+ }
- playerMsg(sender, "Whitelisted " + counter + " players.");
- return true;
- }
+ // addall
+ if (args[0].equalsIgnoreCase("addall")) {
+ Utilities.adminAction(sender.getName(), "Adding all online players to the whitelist.",
+ false);
+ int counter = 0;
+ for (Player player : server.getOnlinePlayers()) {
+ if (!player.isWhitelisted()) {
+ player.setWhitelisted(true);
+ counter++;
+ }
+ }
- // all commands past this line are console/telnet only
- if (!senderIsConsole)
- {
- sender.sendMessage(FreedomCommand.MSG_NO_PERMS);
- return true;
- }
+ playerMsg(sender, "Whitelisted " + counter + " players.");
+ return true;
+ }
- //purge
- if (args[0].equalsIgnoreCase("purge"))
- {
- Utilities.adminAction(sender.getName(), "Removing all players from the whitelist.", false);
- playerMsg(sender, "Removed " + Server.purgeWhitelist() + " players from the whitelist.");
+ // all commands past this line are console/telnet only
+ if (!senderIsConsole) {
+ sender.sendMessage(FreedomCommand.MSG_NO_PERMS);
+ return true;
+ }
- return true;
- }
+ //purge
+ if (args[0].equalsIgnoreCase("purge")) {
+ Utilities.adminAction(sender.getName(), "Removing all players from the whitelist.",
+ false);
+ playerMsg(sender,
+ "Removed " + Server.purgeWhitelist() + " players from the whitelist.");
- // none of the commands were executed
- return false;
- }
+ return true;
+ }
+
+ // none of the commands were executed
+ return false;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_whoami.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_whoami.java
index ab30ad6..ca746e7 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_whoami.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_whoami.java
@@ -7,9 +7,11 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
public class Command_whoami extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- playerMsg(sender, PlayerRank.fromSender(sender).name());
- return true;
- }
+
+ @Override
+ public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel,
+ String[] args, boolean senderIsConsole) {
+ playerMsg(sender, PlayerRank.fromSender(sender).name());
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_whohas.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_whohas.java
index 84e30d6..8948df0 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_whohas.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_whohas.java
@@ -1,5 +1,7 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.util.ArrayList;
+import java.util.List;
import me.StevenLawson.TotalFreedomMod.admin.AdminList;
import me.StevenLawson.TotalFreedomMod.util.DeprecationUtil;
import org.apache.commons.lang3.StringUtils;
@@ -9,61 +11,50 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import java.util.ArrayList;
-import java.util.List;
-
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
public class Command_whohas extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length < 1) {
- return false;
- }
- final boolean doSmite = args.length >= 2 && "smite".equalsIgnoreCase(args[1]);
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length < 1) {
+ return false;
+ }
- final String materialName = args[0];
- Material material = Material.matchMaterial(materialName);
- if (material == null)
- {
- try
- {
- material = DeprecationUtil.getMaterial(Integer.parseInt(materialName));
- }
- catch (NumberFormatException ex)
- {
- }
- }
+ final boolean doSmite = args.length >= 2 && "smite".equalsIgnoreCase(args[1]);
- if (material == null)
- {
- playerMsg(sender, "Invalid block: " + materialName, ChatColor.RED);
- return true;
- }
+ final String materialName = args[0];
+ Material material = Material.matchMaterial(materialName);
+ if (material == null) {
+ try {
+ material = DeprecationUtil.getMaterial(Integer.parseInt(materialName));
+ } catch (NumberFormatException ex) {
+ }
+ }
- final List players = new ArrayList();
+ if (material == null) {
+ playerMsg(sender, "Invalid block: " + materialName, ChatColor.RED);
+ return true;
+ }
- for (final Player player : server.getOnlinePlayers())
- {
- if (player.getInventory().contains(material))
- {
- players.add(player.getName());
- if (doSmite && !AdminList.isSuperAdmin(player))
- {
- Command_smite.smite(player);
- }
- }
- }
+ final List players = new ArrayList();
- if (players.isEmpty())
- {
- playerMsg(sender, "There are no players with that item");
- }
- else
- {
- playerMsg(sender, "Players with item " + material.name() + ": " + StringUtils.join(players, ", "));
- }
+ for (final Player player : server.getOnlinePlayers()) {
+ if (player.getInventory().contains(material)) {
+ players.add(player.getName());
+ if (doSmite && !AdminList.isSuperAdmin(player)) {
+ Command_smite.smite(player);
+ }
+ }
+ }
- return true;
- }
+ if (players.isEmpty()) {
+ playerMsg(sender, "There are no players with that item");
+ } else {
+ playerMsg(sender,
+ "Players with item " + material.name() + ": " + StringUtils.join(players, ", "));
+ }
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_wildcard.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_wildcard.java
index ccb9148..b39e64c 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_wildcard.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_wildcard.java
@@ -10,49 +10,50 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
@CommandParameters(description = "Run any command on all users, username placeholder = ?.", usage = "/ [fluff] ? [fluff] ?")
public class Command_wildcard extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (args.length == 0) {
- return false;
- }
- String arguments = String.join(" ", args);
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (args.length == 0) {
+ return false;
+ }
- if (arguments.toLowerCase().contains("wildcard") || arguments.toLowerCase().contains("gcmd")) {
- playerMsg(sender, "What the hell are you trying to do, you stupid idiot...", ChatColor.RED);
- return true;
- }
- if (arguments.toLowerCase().contains("gtfo"))
- {
- playerMsg(sender, "Nice try", ChatColor.RED);
- return true;
- }
- if (arguments.toLowerCase().contains("doom"))
- {
- playerMsg(sender, "Look, we all hate people, but this is not the way to deal with it, doom is evil enough!", ChatColor.RED);
- return true;
- }
- if (arguments.toLowerCase().contains("saconfig"))
- {
- playerMsg(sender, "WOA, WTF are you trying to do???", ChatColor.RED);
- return true;
- }
+ String arguments = String.join(" ", args);
- String baseCommand = StringUtils.join(args, " ");
+ if (arguments.toLowerCase().contains("wildcard") || arguments.toLowerCase()
+ .contains("gcmd")) {
+ playerMsg(sender, "What the hell are you trying to do, you stupid idiot...",
+ ChatColor.RED);
+ return true;
+ }
+ if (arguments.toLowerCase().contains("gtfo")) {
+ playerMsg(sender, "Nice try", ChatColor.RED);
+ return true;
+ }
+ if (arguments.toLowerCase().contains("doom")) {
+ playerMsg(sender,
+ "Look, we all hate people, but this is not the way to deal with it, doom is evil enough!",
+ ChatColor.RED);
+ return true;
+ }
+ if (arguments.toLowerCase().contains("saconfig")) {
+ playerMsg(sender, "WOA, WTF are you trying to do???", ChatColor.RED);
+ return true;
+ }
- if (CommandBlocker.isCommandBlocked(baseCommand, sender))
- {
- // CommandBlocker handles messages and broadcasts
- return true;
- }
+ String baseCommand = StringUtils.join(args, " ");
- for (Player player : server.getOnlinePlayers())
- {
- String out_command = baseCommand.replaceAll("\\x3f", player.getName());
- playerMsg(sender, "Running Command: " + out_command);
- server.dispatchCommand(sender, out_command);
- }
+ if (CommandBlocker.isCommandBlocked(baseCommand, sender)) {
+ // CommandBlocker handles messages and broadcasts
+ return true;
+ }
- return true;
- }
+ for (Player player : server.getOnlinePlayers()) {
+ String out_command = baseCommand.replaceAll("\\x3f", player.getName());
+ playerMsg(sender, "Running Command: " + out_command);
+ server.dispatchCommand(sender, out_command);
+ }
+
+ return true;
+ }
}
\ No newline at end of file
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_wipeflatlands.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_wipeflatlands.java
index c3892df..fe5f63b 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_wipeflatlands.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_wipeflatlands.java
@@ -8,18 +8,21 @@ import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, blockHostConsole = true)
public class Command_wipeflatlands extends FreedomCommand {
- @Override
- public boolean run(final CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- Utilities.setSavedFlag("do_wipe_flatlands", true);
- Utilities.bcastMsg("Server is going offline for flatlands wipe.", ChatColor.GRAY);
+ @Override
+ public boolean run(final CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ Utilities.setSavedFlag("do_wipe_flatlands", true);
- for (Player player : server.getOnlinePlayers()) {
- player.kickPlayer("Server is going offline for flatlands wipe, come back in a few minutes.");
- }
+ Utilities.bcastMsg("Server is going offline for flatlands wipe.", ChatColor.GRAY);
- server.shutdown();
+ for (Player player : server.getOnlinePlayers()) {
+ player.kickPlayer(
+ "Server is going offline for flatlands wipe, come back in a few minutes.");
+ }
- return true;
- }
+ server.shutdown();
+
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_wipeuserdata.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_wipeuserdata.java
index b5a36bb..3e885a5 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_wipeuserdata.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_wipeuserdata.java
@@ -1,25 +1,28 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.io.File;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
-import java.io.File;
-
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE)
public class Command_wipeuserdata extends FreedomCommand {
- @Override
- public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
- if (!server.getPluginManager().isPluginEnabled("Essentials")) {
- playerMsg(sender, "Essentials is not enabled on this server");
- return true;
- }
- Utilities.adminAction(sender.getName(), "Wiping Essentials playerdata", true);
+ @Override
+ public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
+ String commandLabel, String[] args, boolean senderIsConsole) {
+ if (!server.getPluginManager().isPluginEnabled("Essentials")) {
+ playerMsg(sender, "Essentials is not enabled on this server");
+ return true;
+ }
- Utilities.deleteFolder(new File(server.getPluginManager().getPlugin("Essentials").getDataFolder(), "userdata"));
+ Utilities.adminAction(sender.getName(), "Wiping Essentials playerdata", true);
- playerMsg(sender, "All playerdata deleted.");
- return true;
- }
+ Utilities.deleteFolder(
+ new File(server.getPluginManager().getPlugin("Essentials").getDataFolder(),
+ "userdata"));
+
+ playerMsg(sender, "All playerdata deleted.");
+ return true;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Commands.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Commands.java
index 681bbbd..2d2a6bc 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Commands.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Commands.java
@@ -3,109 +3,110 @@ package me.StevenLawson.TotalFreedomMod.commands;
import org.bukkit.plugin.java.JavaPlugin;
public class Commands {
- public static void registerCommands(JavaPlugin plugin) {
- plugin.getCommand("adminmode").setExecutor(new Command_adminmode());
- plugin.getCommand("adminworld").setExecutor(new Command_adminworld());
- plugin.getCommand("blockcmd").setExecutor(new Command_blockcmd());
- plugin.getCommand("cage").setExecutor(new Command_cage());
- plugin.getCommand("cake").setExecutor(new Command_cake());
- plugin.getCommand("cartsit").setExecutor(new Command_cartsit());
- plugin.getCommand("cbtool").setExecutor(new Command_cbtool());
- plugin.getCommand("cmdlist").setExecutor(new Command_cmdlist());
- plugin.getCommand("cmdspy").setExecutor(new Command_cmdspy());
- plugin.getCommand("colorme").setExecutor(new Command_colorme());
- plugin.getCommand("creative").setExecutor(new Command_creative());
- plugin.getCommand("csay").setExecutor(new Command_csay());
- plugin.getCommand("deafen").setExecutor(new Command_deafen());
- plugin.getCommand("debug").setExecutor(new Command_debug());
- plugin.getCommand("denick").setExecutor(new Command_denick());
- plugin.getCommand("deop").setExecutor(new Command_deop());
- plugin.getCommand("deopall").setExecutor(new Command_deopall());
- plugin.getCommand("dispfill").setExecutor(new Command_dispfill());
- plugin.getCommand("doom").setExecutor(new Command_doom());
- plugin.getCommand("enchant").setExecutor(new Command_enchant());
- plugin.getCommand("ender").setExecutor(new Command_ender());
- plugin.getCommand("expel").setExecutor(new Command_expel());
- plugin.getCommand("findip").setExecutor(new Command_findip());
- plugin.getCommand("flatlands").setExecutor(new Command_flatlands());
- plugin.getCommand("fr").setExecutor(new Command_fr());
- plugin.getCommand("fuckoff").setExecutor(new Command_fuckoff());
- plugin.getCommand("gadmin").setExecutor(new Command_gadmin());
- plugin.getCommand("gcmd").setExecutor(new Command_gcmd());
- plugin.getCommand("glist").setExecutor(new Command_glist());
- plugin.getCommand("gtfo").setExecutor(new Command_gtfo());
- plugin.getCommand("halt").setExecutor(new Command_halt());
- plugin.getCommand("health").setExecutor(new Command_health());
- plugin.getCommand("invis").setExecutor(new Command_invis());
- plugin.getCommand("jumppads").setExecutor(new Command_jumppads());
- plugin.getCommand("kicknoob").setExecutor(new Command_kicknoob());
- plugin.getCommand("landmine").setExecutor(new Command_landmine());
- plugin.getCommand("lastcmd").setExecutor(new Command_lastcmd());
- plugin.getCommand("list").setExecutor(new Command_list());
- plugin.getCommand("localspawn").setExecutor(new Command_localspawn());
- plugin.getCommand("lockup").setExecutor(new Command_lockup());
- plugin.getCommand("logs").setExecutor(new Command_logs());
- plugin.getCommand("moblimiter").setExecutor(new Command_moblimiter());
- plugin.getCommand("mp").setExecutor(new Command_mp());
- plugin.getCommand("mp44").setExecutor(new Command_mp44());
- plugin.getCommand("myadmin").setExecutor(new Command_myadmin());
- plugin.getCommand("nether").setExecutor(new Command_nether());
- plugin.getCommand("nf").setExecutor(new Command_nf());
- plugin.getCommand("nickclean").setExecutor(new Command_nickclean());
- plugin.getCommand("nicknyan").setExecutor(new Command_nicknyan());
- plugin.getCommand("o").setExecutor(new Command_o());
- plugin.getCommand("onlinemode").setExecutor(new Command_onlinemode());
- plugin.getCommand("op").setExecutor(new Command_op());
- plugin.getCommand("opall").setExecutor(new Command_opall());
- plugin.getCommand("opme").setExecutor(new Command_opme());
- plugin.getCommand("ops").setExecutor(new Command_ops());
- plugin.getCommand("orbit").setExecutor(new Command_orbit());
- plugin.getCommand("overlord").setExecutor(new Command_overlord());
- plugin.getCommand("permban").setExecutor(new Command_permban());
- plugin.getCommand("plugincontrol").setExecutor(new Command_plugincontrol());
- plugin.getCommand("potion").setExecutor(new Command_potion());
- plugin.getCommand("premium").setExecutor(new Command_premium());
- plugin.getCommand("protectarea").setExecutor(new Command_protectarea());
- plugin.getCommand("purgeall").setExecutor(new Command_purgeall());
- plugin.getCommand("qdeop").setExecutor(new Command_qdeop());
- plugin.getCommand("qop").setExecutor(new Command_qop());
- plugin.getCommand("radar").setExecutor(new Command_radar());
- plugin.getCommand("rank").setExecutor(new Command_rank());
- plugin.getCommand("rawsay").setExecutor(new Command_rawsay());
- plugin.getCommand("rd").setExecutor(new Command_rd());
- plugin.getCommand("report").setExecutor(new Command_report());
- plugin.getCommand("ro").setExecutor(new Command_ro());
- plugin.getCommand("saconfig").setExecutor(new Command_saconfig());
- plugin.getCommand("say").setExecutor(new Command_say());
- plugin.getCommand("setl").setExecutor(new Command_setl());
- plugin.getCommand("setlevel").setExecutor(new Command_setlevel());
- plugin.getCommand("setlever").setExecutor(new Command_setlever());
- plugin.getCommand("setspawnworld").setExecutor(new Command_setspawnworld());
- plugin.getCommand("smite").setExecutor(new Command_smite());
- plugin.getCommand("spectator").setExecutor(new Command_spectator());
- plugin.getCommand("status").setExecutor(new Command_status());
- plugin.getCommand("stfu").setExecutor(new Command_stfu());
- plugin.getCommand("stop").setExecutor(new Command_stop());
- plugin.getCommand("survival").setExecutor(new Command_survival());
- plugin.getCommand("tag").setExecutor(new Command_tag());
- plugin.getCommand("tagnyan").setExecutor(new Command_tagnyan());
- plugin.getCommand("tban").setExecutor(new Command_tban());
- plugin.getCommand("tempban").setExecutor(new Command_tempban());
- plugin.getCommand("tfbanlist").setExecutor(new Command_tfbanlist());
- plugin.getCommand("tfipbanlist").setExecutor(new Command_tfipbanlist());
- plugin.getCommand("tfm").setExecutor(new Command_tfm());
- plugin.getCommand("toggle").setExecutor(new Command_toggle());
- plugin.getCommand("tossmob").setExecutor(new Command_tossmob());
- plugin.getCommand("trail").setExecutor(new Command_trail());
- plugin.getCommand("updatetfm").setExecutor(new Command_updatetfm());
- plugin.getCommand("uuid").setExecutor(new Command_uuid());
- plugin.getCommand("warn").setExecutor(new Command_warn());
- plugin.getCommand("whitelist").setExecutor(new Command_whitelist());
- plugin.getCommand("whohas").setExecutor(new Command_whohas());
- plugin.getCommand("wildcard").setExecutor(new Command_wildcard());
- plugin.getCommand("wipeflatlands").setExecutor(new Command_wipeflatlands());
- plugin.getCommand("wipeuserdata").setExecutor(new Command_wipeuserdata());
- plugin.getCommand("whoami").setExecutor(new Command_whoami());
- plugin.getCommand("resetplayer").setExecutor(new Command_resetplayer());
- }
+
+ public static void registerCommands(JavaPlugin plugin) {
+ plugin.getCommand("adminmode").setExecutor(new Command_adminmode());
+ plugin.getCommand("adminworld").setExecutor(new Command_adminworld());
+ plugin.getCommand("blockcmd").setExecutor(new Command_blockcmd());
+ plugin.getCommand("cage").setExecutor(new Command_cage());
+ plugin.getCommand("cake").setExecutor(new Command_cake());
+ plugin.getCommand("cartsit").setExecutor(new Command_cartsit());
+ plugin.getCommand("cbtool").setExecutor(new Command_cbtool());
+ plugin.getCommand("cmdlist").setExecutor(new Command_cmdlist());
+ plugin.getCommand("cmdspy").setExecutor(new Command_cmdspy());
+ plugin.getCommand("colorme").setExecutor(new Command_colorme());
+ plugin.getCommand("creative").setExecutor(new Command_creative());
+ plugin.getCommand("csay").setExecutor(new Command_csay());
+ plugin.getCommand("deafen").setExecutor(new Command_deafen());
+ plugin.getCommand("debug").setExecutor(new Command_debug());
+ plugin.getCommand("denick").setExecutor(new Command_denick());
+ plugin.getCommand("deop").setExecutor(new Command_deop());
+ plugin.getCommand("deopall").setExecutor(new Command_deopall());
+ plugin.getCommand("dispfill").setExecutor(new Command_dispfill());
+ plugin.getCommand("doom").setExecutor(new Command_doom());
+ plugin.getCommand("enchant").setExecutor(new Command_enchant());
+ plugin.getCommand("ender").setExecutor(new Command_ender());
+ plugin.getCommand("expel").setExecutor(new Command_expel());
+ plugin.getCommand("findip").setExecutor(new Command_findip());
+ plugin.getCommand("flatlands").setExecutor(new Command_flatlands());
+ plugin.getCommand("fr").setExecutor(new Command_fr());
+ plugin.getCommand("fuckoff").setExecutor(new Command_fuckoff());
+ plugin.getCommand("gadmin").setExecutor(new Command_gadmin());
+ plugin.getCommand("gcmd").setExecutor(new Command_gcmd());
+ plugin.getCommand("glist").setExecutor(new Command_glist());
+ plugin.getCommand("gtfo").setExecutor(new Command_gtfo());
+ plugin.getCommand("halt").setExecutor(new Command_halt());
+ plugin.getCommand("health").setExecutor(new Command_health());
+ plugin.getCommand("invis").setExecutor(new Command_invis());
+ plugin.getCommand("jumppads").setExecutor(new Command_jumppads());
+ plugin.getCommand("kicknoob").setExecutor(new Command_kicknoob());
+ plugin.getCommand("landmine").setExecutor(new Command_landmine());
+ plugin.getCommand("lastcmd").setExecutor(new Command_lastcmd());
+ plugin.getCommand("list").setExecutor(new Command_list());
+ plugin.getCommand("localspawn").setExecutor(new Command_localspawn());
+ plugin.getCommand("lockup").setExecutor(new Command_lockup());
+ plugin.getCommand("logs").setExecutor(new Command_logs());
+ plugin.getCommand("moblimiter").setExecutor(new Command_moblimiter());
+ plugin.getCommand("mp").setExecutor(new Command_mp());
+ plugin.getCommand("mp44").setExecutor(new Command_mp44());
+ plugin.getCommand("myadmin").setExecutor(new Command_myadmin());
+ plugin.getCommand("nether").setExecutor(new Command_nether());
+ plugin.getCommand("nf").setExecutor(new Command_nf());
+ plugin.getCommand("nickclean").setExecutor(new Command_nickclean());
+ plugin.getCommand("nicknyan").setExecutor(new Command_nicknyan());
+ plugin.getCommand("o").setExecutor(new Command_o());
+ plugin.getCommand("onlinemode").setExecutor(new Command_onlinemode());
+ plugin.getCommand("op").setExecutor(new Command_op());
+ plugin.getCommand("opall").setExecutor(new Command_opall());
+ plugin.getCommand("opme").setExecutor(new Command_opme());
+ plugin.getCommand("ops").setExecutor(new Command_ops());
+ plugin.getCommand("orbit").setExecutor(new Command_orbit());
+ plugin.getCommand("overlord").setExecutor(new Command_overlord());
+ plugin.getCommand("permban").setExecutor(new Command_permban());
+ plugin.getCommand("plugincontrol").setExecutor(new Command_plugincontrol());
+ plugin.getCommand("potion").setExecutor(new Command_potion());
+ plugin.getCommand("premium").setExecutor(new Command_premium());
+ plugin.getCommand("protectarea").setExecutor(new Command_protectarea());
+ plugin.getCommand("purgeall").setExecutor(new Command_purgeall());
+ plugin.getCommand("qdeop").setExecutor(new Command_qdeop());
+ plugin.getCommand("qop").setExecutor(new Command_qop());
+ plugin.getCommand("radar").setExecutor(new Command_radar());
+ plugin.getCommand("rank").setExecutor(new Command_rank());
+ plugin.getCommand("rawsay").setExecutor(new Command_rawsay());
+ plugin.getCommand("rd").setExecutor(new Command_rd());
+ plugin.getCommand("report").setExecutor(new Command_report());
+ plugin.getCommand("ro").setExecutor(new Command_ro());
+ plugin.getCommand("saconfig").setExecutor(new Command_saconfig());
+ plugin.getCommand("say").setExecutor(new Command_say());
+ plugin.getCommand("setl").setExecutor(new Command_setl());
+ plugin.getCommand("setlevel").setExecutor(new Command_setlevel());
+ plugin.getCommand("setlever").setExecutor(new Command_setlever());
+ plugin.getCommand("setspawnworld").setExecutor(new Command_setspawnworld());
+ plugin.getCommand("smite").setExecutor(new Command_smite());
+ plugin.getCommand("spectator").setExecutor(new Command_spectator());
+ plugin.getCommand("status").setExecutor(new Command_status());
+ plugin.getCommand("stfu").setExecutor(new Command_stfu());
+ plugin.getCommand("stop").setExecutor(new Command_stop());
+ plugin.getCommand("survival").setExecutor(new Command_survival());
+ plugin.getCommand("tag").setExecutor(new Command_tag());
+ plugin.getCommand("tagnyan").setExecutor(new Command_tagnyan());
+ plugin.getCommand("tban").setExecutor(new Command_tban());
+ plugin.getCommand("tempban").setExecutor(new Command_tempban());
+ plugin.getCommand("tfbanlist").setExecutor(new Command_tfbanlist());
+ plugin.getCommand("tfipbanlist").setExecutor(new Command_tfipbanlist());
+ plugin.getCommand("tfm").setExecutor(new Command_tfm());
+ plugin.getCommand("toggle").setExecutor(new Command_toggle());
+ plugin.getCommand("tossmob").setExecutor(new Command_tossmob());
+ plugin.getCommand("trail").setExecutor(new Command_trail());
+ plugin.getCommand("updatetfm").setExecutor(new Command_updatetfm());
+ plugin.getCommand("uuid").setExecutor(new Command_uuid());
+ plugin.getCommand("warn").setExecutor(new Command_warn());
+ plugin.getCommand("whitelist").setExecutor(new Command_whitelist());
+ plugin.getCommand("whohas").setExecutor(new Command_whohas());
+ plugin.getCommand("wildcard").setExecutor(new Command_wildcard());
+ plugin.getCommand("wipeflatlands").setExecutor(new Command_wipeflatlands());
+ plugin.getCommand("wipeuserdata").setExecutor(new Command_wipeuserdata());
+ plugin.getCommand("whoami").setExecutor(new Command_whoami());
+ plugin.getCommand("resetplayer").setExecutor(new Command_resetplayer());
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/FreedomCommand.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/FreedomCommand.java
index 1a5644e..8b0acd4 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/FreedomCommand.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/FreedomCommand.java
@@ -1,5 +1,6 @@
package me.StevenLawson.TotalFreedomMod.commands;
+import java.util.Collection;
import me.StevenLawson.TotalFreedomMod.Log;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import me.StevenLawson.TotalFreedomMod.admin.AdminList;
@@ -13,199 +14,164 @@ import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-import java.util.Collection;
-
public abstract class FreedomCommand implements CommandExecutor {
- public static final String MSG_NO_PERMS = ChatColor.YELLOW + "You do not have permission to use this command.";
- public static final String YOU_ARE_OP = ChatColor.YELLOW + "You are now op!";
- public static final String YOU_ARE_NOT_OP = ChatColor.YELLOW + "You are no longer op!";
- public static final String NOT_FROM_CONSOLE = "This command may not be used from the console.";
- public static final String PLAYER_NOT_FOUND = ChatColor.GRAY + "Player not found!";
- protected TotalFreedomMod plugin = TotalFreedomMod.plugin;
- protected Server server = plugin.getServer();
- public FreedomCommand() {
- }
+ public static final String MSG_NO_PERMS =
+ ChatColor.YELLOW + "You do not have permission to use this command.";
+ public static final String YOU_ARE_OP = ChatColor.YELLOW + "You are now op!";
+ public static final String YOU_ARE_NOT_OP = ChatColor.YELLOW + "You are no longer op!";
+ public static final String NOT_FROM_CONSOLE = "This command may not be used from the console.";
+ public static final String PLAYER_NOT_FOUND = ChatColor.GRAY + "Player not found!";
+ protected TotalFreedomMod plugin = TotalFreedomMod.plugin;
+ protected Server server = plugin.getServer();
- @Override
- public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
- final Player playerSender;
- final boolean senderIsConsole;
+ public FreedomCommand() {
+ }
- if (sender instanceof Player) {
- senderIsConsole = false;
- playerSender = (Player) sender;
+ @Override
+ public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
+ final Player playerSender;
+ final boolean senderIsConsole;
- Log.info(String.format("[PLAYER_COMMAND] %s (%s): /%s %s",
- playerSender.getName(),
- ChatColor.stripColor(playerSender.getDisplayName()),
- label,
- StringUtils.join(args, " ")), true);
- }
- else
- {
- senderIsConsole = true;
- playerSender = null;
+ if (sender instanceof Player) {
+ senderIsConsole = false;
+ playerSender = (Player) sender;
- Log.info(String.format("[CONSOLE_COMMAND] %s: /%s %s",
- sender.getName(),
- label,
- StringUtils.join(args, " ")), true);
- }
+ Log.info(String.format("[PLAYER_COMMAND] %s (%s): /%s %s",
+ playerSender.getName(),
+ ChatColor.stripColor(playerSender.getDisplayName()),
+ label,
+ StringUtils.join(args, " ")), true);
+ } else {
+ senderIsConsole = true;
+ playerSender = null;
+ Log.info(String.format("[CONSOLE_COMMAND] %s: /%s %s",
+ sender.getName(),
+ label,
+ StringUtils.join(args, " ")), true);
+ }
- if (!senderHasPermission(sender))
- {
- sender.sendMessage(FreedomCommand.MSG_NO_PERMS);
- return true;
- }
+ if (!senderHasPermission(sender)) {
+ sender.sendMessage(FreedomCommand.MSG_NO_PERMS);
+ return true;
+ }
- return run(sender, playerSender, command, label, args, senderIsConsole);
- }
+ return run(sender, playerSender, command, label, args, senderIsConsole);
+ }
- abstract public boolean run(final CommandSender sender, final org.bukkit.entity.Player sender_p, final Command cmd, final String commandLabel, final String[] args, final boolean senderIsConsole);
+ abstract public boolean run(final CommandSender sender, final org.bukkit.entity.Player sender_p,
+ final Command cmd, final String commandLabel, final String[] args,
+ final boolean senderIsConsole);
- public void playerMsg(final CommandSender sender, final String message, final ChatColor color)
- {
- if (sender == null)
- {
- return;
- }
- sender.sendMessage(color + message);
- }
+ public void playerMsg(final CommandSender sender, final String message, final ChatColor color) {
+ if (sender == null) {
+ return;
+ }
+ sender.sendMessage(color + message);
+ }
- public void playerMsg(final CommandSender sender, final String message)
- {
- playerMsg(sender, message, ChatColor.GRAY);
- }
+ public void playerMsg(final CommandSender sender, final String message) {
+ playerMsg(sender, message, ChatColor.GRAY);
+ }
- public void playerMsg(final String message, final ChatColor color)
- {
- // NOP
- }
+ public void playerMsg(final String message, final ChatColor color) {
+ // NOP
+ }
- public void playerMsg(final String message)
- {
- // NOP
- }
+ public void playerMsg(final String message) {
+ // NOP
+ }
- public boolean senderHasPermission(CommandSender sender)
- {
- final CommandPermissions permissions = this.getClass().getAnnotation(CommandPermissions.class);
+ public boolean senderHasPermission(CommandSender sender) {
+ final CommandPermissions permissions = this.getClass()
+ .getAnnotation(CommandPermissions.class);
- if (permissions == null)
- {
- Log.warning(this.getClass().getName() + " is missing permissions annotation.");
- return true;
- }
+ if (permissions == null) {
+ Log.warning(this.getClass().getName() + " is missing permissions annotation.");
+ return true;
+ }
- boolean isSuper = AdminList.isSuperAdmin(sender);
- boolean isSenior = false;
+ boolean isSuper = AdminList.isSuperAdmin(sender);
+ boolean isSenior = false;
- if (isSuper)
- {
- isSenior = AdminList.isSeniorAdmin(sender);
- }
+ if (isSuper) {
+ isSenior = AdminList.isSeniorAdmin(sender);
+ }
- final AdminLevel level = permissions.level();
- final SourceType source = permissions.source();
- final boolean blockHostConsole = permissions.blockHostConsole();
+ final AdminLevel level = permissions.level();
+ final SourceType source = permissions.source();
+ final boolean blockHostConsole = permissions.blockHostConsole();
- if (!(sender instanceof Player))
- {
- if (source == SourceType.ONLY_IN_GAME)
- {
- return false;
- }
+ if (!(sender instanceof Player)) {
+ if (source == SourceType.ONLY_IN_GAME) {
+ return false;
+ }
- if (level == AdminLevel.SENIOR && !isSenior) {
- return false;
- }
+ if (level == AdminLevel.SENIOR && !isSenior) {
+ return false;
+ }
- if (blockHostConsole && Utilities.isFromHostConsole(sender.getName()))
- {
- return false;
- }
+ return !blockHostConsole || !Utilities.isFromHostConsole(sender.getName());
+ }
- return true;
- }
+ final Player senderPlayer = (Player) sender;
- final Player senderPlayer = (Player) sender;
+ if (source == SourceType.ONLY_CONSOLE) {
+ return false;
+ }
- if (source == SourceType.ONLY_CONSOLE)
- {
- return false;
- }
+ if (level == AdminLevel.SENIOR) {
+ if (!isSenior) {
+ return false;
+ }
- if (level == AdminLevel.SENIOR) {
- if (!isSenior) {
- return false;
- }
+ return PlayerData.getPlayerData(senderPlayer).isSuperadminIdVerified();
+ }
- if (!PlayerData.getPlayerData(senderPlayer).isSuperadminIdVerified()) {
- return false;
- }
+ if (level == AdminLevel.SUPER && !isSuper) {
+ return false;
+ }
- return true;
- }
+ return level != AdminLevel.OP || senderPlayer.isOp();
+ }
- if (level == AdminLevel.SUPER && !isSuper) {
- return false;
- }
+ public Player getPlayer(final String partialName) {
+ return getPlayer(partialName, false);
+ }
- if (level == AdminLevel.OP && !senderPlayer.isOp()) {
- return false;
- }
+ public Player getPlayer(final String partialName, final boolean exact) {
+ if (partialName == null || partialName.isEmpty()) {
+ return null;
+ }
- return true;
- }
+ final Collection extends Player> players = server.getOnlinePlayers();
- public Player getPlayer(final String partialName)
- {
- return getPlayer(partialName, false);
- }
+ // Check exact matches first.
+ for (final Player player : players) {
+ if (partialName.equalsIgnoreCase(player.getName())) {
+ return player;
+ }
+ }
- public Player getPlayer(final String partialName, final boolean exact)
- {
- if (partialName == null || partialName.isEmpty())
- {
- return null;
- }
+ if (exact) {
+ return null;
+ }
- final Collection extends Player> players = server.getOnlinePlayers();
+ // Then check partial matches in name.
+ for (final Player player : players) {
+ if (player.getName().toLowerCase().contains(partialName.toLowerCase())) {
+ return player;
+ }
+ }
- // Check exact matches first.
- for (final Player player : players)
- {
- if (partialName.equalsIgnoreCase(player.getName()))
- {
- return player;
- }
- }
+ // Then check partial matches in display name.
+ for (final Player player : players) {
+ if (player.getDisplayName().toLowerCase().contains(partialName.toLowerCase())) {
+ return player;
+ }
+ }
- if (exact)
- {
- return null;
- }
-
- // Then check partial matches in name.
- for (final Player player : players)
- {
- if (player.getName().toLowerCase().contains(partialName.toLowerCase()))
- {
- return player;
- }
- }
-
- // Then check partial matches in display name.
- for (final Player player : players)
- {
- if (player.getDisplayName().toLowerCase().contains(partialName.toLowerCase()))
- {
- return player;
- }
- }
-
- return null;
- }
+ return null;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/SourceType.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/SourceType.java
index 3935872..4c68a94 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/SourceType.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/SourceType.java
@@ -1,6 +1,5 @@
package me.StevenLawson.TotalFreedomMod.commands;
-public enum SourceType
-{
- ONLY_IN_GAME, ONLY_CONSOLE, BOTH
+public enum SourceType {
+ ONLY_IN_GAME, ONLY_CONSOLE, BOTH
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/config/Configuration.java b/src/main/java/me/StevenLawson/TotalFreedomMod/config/Configuration.java
index 7ec214a..37dff1c 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/config/Configuration.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/config/Configuration.java
@@ -1,172 +1,158 @@
package me.StevenLawson.TotalFreedomMod.config;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStreamReader;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.Plugin;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStreamReader;
-
/**
* Represents a definable YAML configuration.
*
* @see YamlConfiguration
*/
//@Deprecated
-public class Configuration extends YamlConfiguration // BukkitLib @ https://github.com/Pravian/BukkitLib
+public class Configuration extends
+ YamlConfiguration // BukkitLib @ https://github.com/Pravian/BukkitLib
{
- private final Plugin plugin;
- private final File configFile;
- private final boolean copyDefaults;
- /**
- * Creates a new YamlConfig instance.
- *
- * Example:
- *
- * YamlConfig config = new YamlConfig(this, "config.yml", true);
- * config.load();
- *
- *
- * @param plugin The plugin to which the config belongs.
- * @param fileName The filename of the config file.
- * @param copyDefaults If the defaults should be copied and/loaded from a config in the plugin jar-file.
- */
- public Configuration(Plugin plugin, String fileName, boolean copyDefaults)
- {
- this(plugin, Utilities.getPluginFile(plugin, fileName), copyDefaults);
- }
+ private final Plugin plugin;
+ private final File configFile;
+ private final boolean copyDefaults;
- /**
- * Creates a new YamlConfig instance.
- *
- * Example:
- *
- * YamlConfig config = new YamlConfig(this, new File(plugin.getDataFolder() + "/players", "Prozza.yml"), false);
- * config.load();
- *
- *
- * @param plugin The plugin to which the config belongs.
- * @param file The file of the config file.
- * @param copyDefaults If the defaults should be copied and/loaded from a config in the plugin jar-file.
- */
- public Configuration(Plugin plugin, File file, boolean copyDefaults)
- {
- this.plugin = plugin;
- this.configFile = file;
- this.copyDefaults = copyDefaults;
- }
+ /**
+ * Creates a new YamlConfig instance.
+ *
+ * Example:
+ *
+ * YamlConfig config = new YamlConfig(this, "config.yml", true);
+ * config.load();
+ *
+ *
+ * @param plugin The plugin to which the config belongs.
+ * @param fileName The filename of the config file.
+ * @param copyDefaults If the defaults should be copied and/loaded from a config in the plugin
+ * jar-file.
+ */
+ public Configuration(Plugin plugin, String fileName, boolean copyDefaults) {
+ this(plugin, Utilities.getPluginFile(plugin, fileName), copyDefaults);
+ }
- /**
- * Validates if the configuration exists.
- *
- * @return True if the configuration exists.
- */
- public boolean exists()
- {
- return configFile.exists();
- }
+ /**
+ * Creates a new YamlConfig instance.
+ *
+ * Example:
+ *
+ * YamlConfig config = new YamlConfig(this, new File(plugin.getDataFolder() + "/players", "Prozza.yml"), false);
+ * config.load();
+ *
+ *
+ * @param plugin The plugin to which the config belongs.
+ * @param file The file of the config file.
+ * @param copyDefaults If the defaults should be copied and/loaded from a config in the plugin
+ * jar-file.
+ */
+ public Configuration(Plugin plugin, File file, boolean copyDefaults) {
+ this.plugin = plugin;
+ this.configFile = file;
+ this.copyDefaults = copyDefaults;
+ }
- /**
- * Saves the configuration to the predefined file.
- *
- * @see #YamlConfig(Plugin, String, boolean)
- */
- public void save()
- {
- try
- {
- super.save(configFile);
- }
- catch (Exception ex)
- {
- plugin.getLogger().severe("Could not save configuration file: " + configFile.getName());
- plugin.getLogger().severe(ExceptionUtils.getStackTrace(ex));
- }
- }
+ /**
+ * Validates if the configuration exists.
+ *
+ * @return True if the configuration exists.
+ */
+ public boolean exists() {
+ return configFile.exists();
+ }
- /**
- * Loads the configuration from the predefined file.
- *
- * Optionally, if loadDefaults has been set to true, the file will be copied over from the default inside the jar-file of the owning plugin.
- *
- * @see #YamlConfig(Plugin, String, boolean)
- */
- public void load()
- {
- try
- {
- if (copyDefaults)
- {
- if (!configFile.exists())
- {
- configFile.getParentFile().mkdirs();
- try
- {
- Utilities.copy(plugin.getResource(configFile.getName()), configFile);
- }
- catch (IOException ex)
- {
- plugin.getLogger().severe("Could not write default configuration file: " + configFile.getName());
- plugin.getLogger().severe(ExceptionUtils.getStackTrace(ex));
- }
- plugin.getLogger().info("Installed default configuration " + configFile.getName());
- }
+ /**
+ * Saves the configuration to the predefined file.
+ *
+ * @see #YamlConfig(Plugin, String, boolean)
+ */
+ public void save() {
+ try {
+ super.save(configFile);
+ } catch (Exception ex) {
+ plugin.getLogger().severe("Could not save configuration file: " + configFile.getName());
+ plugin.getLogger().severe(ExceptionUtils.getStackTrace(ex));
+ }
+ }
- super.addDefaults(getDefaultConfig());
- }
+ /**
+ * Loads the configuration from the predefined file.
+ *
+ * Optionally, if loadDefaults has been set to true, the file will be copied over from the
+ * default inside the jar-file of the owning plugin.
+ *
+ * @see #YamlConfig(Plugin, String, boolean)
+ */
+ public void load() {
+ try {
+ if (copyDefaults) {
+ if (!configFile.exists()) {
+ configFile.getParentFile().mkdirs();
+ try {
+ Utilities.copy(plugin.getResource(configFile.getName()), configFile);
+ } catch (IOException ex) {
+ plugin.getLogger().severe(
+ "Could not write default configuration file: " + configFile.getName());
+ plugin.getLogger().severe(ExceptionUtils.getStackTrace(ex));
+ }
+ plugin.getLogger()
+ .info("Installed default configuration " + configFile.getName());
+ }
- if (configFile.exists())
- {
- super.load(configFile);
- }
- }
- catch (Exception ex)
- {
- plugin.getLogger().severe("Could not load configuration file: " + configFile.getName());
- plugin.getLogger().severe(ExceptionUtils.getStackTrace(ex));
- }
- }
+ super.addDefaults(getDefaultConfig());
+ }
- /**
- * Returns the raw YamlConfiguration this config is based on.
- *
- * @return The YamlConfiguration.
- * @see YamlConfiguration
- */
- public YamlConfiguration getConfig()
- {
- return this;
- }
+ if (configFile.exists()) {
+ super.load(configFile);
+ }
+ } catch (Exception ex) {
+ plugin.getLogger().severe("Could not load configuration file: " + configFile.getName());
+ plugin.getLogger().severe(ExceptionUtils.getStackTrace(ex));
+ }
+ }
- /**
- * Returns the default configuration as been stored in the jar-file of the owning plugin.
- * @return The default configuration.
- */
- public YamlConfiguration getDefaultConfig()
- {
- final YamlConfiguration DEFAULT_CONFIG = new YamlConfiguration();
- try
- {
- final InputStreamReader isr = new InputStreamReader(plugin.getResource(configFile.getName()));
- DEFAULT_CONFIG.load(isr);
- isr.close();
- }
- catch (IOException ex)
- {
- plugin.getLogger().severe("Could not load default configuration: " + configFile.getName());
- plugin.getLogger().severe(ExceptionUtils.getStackTrace(ex));
- return null;
- }
- catch (InvalidConfigurationException ex)
- {
- plugin.getLogger().severe("Could not load default configuration: " + configFile.getName());
- plugin.getLogger().severe(ExceptionUtils.getStackTrace(ex));
- return null;
- }
- return DEFAULT_CONFIG;
- }
+ /**
+ * Returns the raw YamlConfiguration this config is based on.
+ *
+ * @return The YamlConfiguration.
+ * @see YamlConfiguration
+ */
+ public YamlConfiguration getConfig() {
+ return this;
+ }
+
+ /**
+ * Returns the default configuration as been stored in the jar-file of the owning plugin.
+ *
+ * @return The default configuration.
+ */
+ public YamlConfiguration getDefaultConfig() {
+ final YamlConfiguration DEFAULT_CONFIG = new YamlConfiguration();
+ try {
+ final InputStreamReader isr = new InputStreamReader(
+ plugin.getResource(configFile.getName()));
+ DEFAULT_CONFIG.load(isr);
+ isr.close();
+ } catch (IOException ex) {
+ plugin.getLogger()
+ .severe("Could not load default configuration: " + configFile.getName());
+ plugin.getLogger().severe(ExceptionUtils.getStackTrace(ex));
+ return null;
+ } catch (InvalidConfigurationException ex) {
+ plugin.getLogger()
+ .severe("Could not load default configuration: " + configFile.getName());
+ plugin.getLogger().severe(ExceptionUtils.getStackTrace(ex));
+ return null;
+ }
+ return DEFAULT_CONFIG;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/config/ConfigurationEntry.java b/src/main/java/me/StevenLawson/TotalFreedomMod/config/ConfigurationEntry.java
index e887402..a206bf1 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/config/ConfigurationEntry.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/config/ConfigurationEntry.java
@@ -3,180 +3,165 @@ package me.StevenLawson.TotalFreedomMod.config;
import java.util.List;
//@Deprecated
-public enum ConfigurationEntry
-{
- FORCE_IP_ENABLED(Boolean.class, "forceip.enabled"),
- FORCE_IP_PORT(Integer.class, "forceip.port"),
- FORCE_IP_KICKMSG(String.class, "forceip.kickmsg"),
- //
- ALLOW_EXPLOSIONS(Boolean.class, "allow.explosions"),
- ALLOW_FIRE_PLACE(Boolean.class, "allow.fire_place"),
- ALLOW_FIRE_SPREAD(Boolean.class, "allow.fire_spread"),
- ALLOW_FLUID_SPREAD(Boolean.class, "allow.fluid_spread"),
- ALLOW_LAVA_DAMAGE(Boolean.class, "allow.lava_damage"),
- ALLOW_LAVA_PLACE(Boolean.class, "allow.lava_place"),
- ALLOW_TNT_MINECARTS(Boolean.class, "allow.tnt_minecarts"),
- ALLOW_WATER_PLACE(Boolean.class, "allow.water_place"),
- //
- MOB_LIMITER_ENABLED(Boolean.class, "moblimiter.enabled"),
- MOB_LIMITER_MAX(Integer.class, "moblimiter.max"),
- MOB_LIMITER_DISABLE_DRAGON(Boolean.class, "moblimiter.disable.dragon"),
- MOB_LIMITER_DISABLE_GHAST(Boolean.class, "moblimiter.disable.ghast"),
- MOB_LIMITER_DISABLE_GIANT(Boolean.class, "moblimiter.disable.giant"),
- MOB_LIMITER_DISABLE_SLIME(Boolean.class, "moblimiter.disable.slime"),
- //
- HTTPD_ENABLED(Boolean.class, "httpd.enabled"),
- HTTPD_PORT(Integer.class, "httpd.port"),
- HTTPD_PUBLIC_FOLDER(String.class, "httpd.public_folder"),
- HTTPD_ORIGIN(String.class, "httdp.origin"),
- //
- SERVER_COLORFUL_MOTD(Boolean.class, "server.colorful_motd"),
- SERVER_NAME(String.class, "server.name"),
- SERVER_ADDRESS(String.class, "server.address"),
- SERVER_MOTD(String.class, "server.motd"),
- SERVER_OWNERS(List.class, "server.owners"),
- SERVER_BAN_URL(String.class, "server.ban_url"),
- SERVER_PERMBAN_URL(String.class, "server.permban_url"),
- SERVER_OP_ON_JOIN(Boolean.class, "server.op_on_join"),
- //
- TWITTERBOT_ENABLED(Boolean.class, "twitterbot.enabled"),
- TWITTERBOT_SECRET(String.class, "twitterbot.secret"),
- TWITTERBOT_URL(String.class, "twitterbot.url"),
- //
- DISABLE_NIGHT(Boolean.class, "disable.night"),
- DISABLE_WEATHER(Boolean.class, "disable.weather"),
- //
- ENABLE_PREPROCESS_LOG(Boolean.class, "preprocess_log"),
- ENABLE_PET_PROTECT(Boolean.class, "petprotect.enabled"),
- //
- LANDMINES_ENABLED(Boolean.class, "landmines_enabled"),
- TOSSMOB_ENABLED(Boolean.class, "tossmob_enabled"),
- AUTOKICK_ENABLED(Boolean.class, "autokick.enabled"),
- MP44_ENABLED(Boolean.class, "mp44_enabled"),
- //
- PROTECTAREA_ENABLED(Boolean.class, "protectarea.enabled"),
- PROTECTAREA_SPAWNPOINTS(Boolean.class, "protectarea.auto_protect_spawnpoints"),
- PROTECTAREA_RADIUS(Double.class, "protectarea.auto_protect_radius"),
- //
- NUKE_MONITOR_ENABLED(Boolean.class, "nukemonitor.enabled"),
- NUKE_MONITOR_COUNT_BREAK(Integer.class, "nukemonitor.count_break"),
- NUKE_MONITOR_COUNT_PLACE(Integer.class, "nukemonitor.count_place"),
- NUKE_MONITOR_RANGE(Double.class, "nukemonitor.range"),
- //
- AUTOKICK_THRESHOLD(Double.class, "autokick.threshold"),
- AUTOKICK_TIME(Integer.class, "autokick.time"),
- //
- LOGS_SECRET(String.class, "logs.secret"),
- LOGS_URL(String.class, "logs.url"),
- //
- FLATLANDS_GENERATE(Boolean.class, "flatlands.generate"),
- FLATLANDS_GENERATE_PARAMS(String.class, "flatlands.generate_params"),
- //
- ANNOUNCER_ENABLED(Boolean.class, "announcer.enabled"),
- ANNOUNCER_INTERVAL(Integer.class, "announcer.interval"),
- ANNOUNCER_PREFIX(String.class, "announcer.prefix"),
- ANNOUNCER_ANNOUNCEMENTS(List.class, "announcer.announcements"),
- //
- EXPLOSIVE_RADIUS(Double.class, "explosive_radius"),
- FREECAM_TRIGGER_COUNT(Integer.class, "freecam_trigger_count"),
- //SERVICE_CHECKER_URL(String.class, "service_checker_url"),
- BLOCKED_COMMANDS(List.class, "blocked_commands"),
- HOST_SENDER_NAMES(List.class, "host_sender_names"),
- UNBANNABLE_USERNAMES(List.class, "unbannable_usernames"),
- OVERLORD_IPS(List.class, "overlord_ips"),
- NOADMIN_IPS(List.class, "noadmin_ips"),
- ADMIN_ONLY_MODE(Boolean.class, "admin_only_mode"),
- AUTO_ENTITY_WIPE(Boolean.class, "auto_wipe"),
- CONSOLE_IS_SENIOR(Boolean.class, "console_is_senior"),
- //
- DISCORD_IS_ENABLED(Boolean.class, "discord.is_enabled"),
- DISCORD_TOKEN(String.class, "discord.token"),
- DISCORD_CHANNEL(String.class, "discord.channel"),
- DISCORD_ADMIN_CHANNEL(String.class, "discord.admin_channel"),
- DISCORD_PREFIX(String.class, "discord.prefix"),
- DISCORD_FORMAT(String.class, "discord.format"),
- DISCORD_ADMIN_FORMAT(String.class, "discord.admin_format"),
- //
- CHAT_FORMAT(String.class, "chat.format"),
- TFM_BUILD_SHELLSCRIPT(String.class, "build_shellscript");
+public enum ConfigurationEntry {
+ FORCE_IP_ENABLED(Boolean.class, "forceip.enabled"),
+ FORCE_IP_PORT(Integer.class, "forceip.port"),
+ FORCE_IP_KICKMSG(String.class, "forceip.kickmsg"),
+ //
+ ALLOW_EXPLOSIONS(Boolean.class, "allow.explosions"),
+ ALLOW_FIRE_PLACE(Boolean.class, "allow.fire_place"),
+ ALLOW_FIRE_SPREAD(Boolean.class, "allow.fire_spread"),
+ ALLOW_FLUID_SPREAD(Boolean.class, "allow.fluid_spread"),
+ ALLOW_LAVA_DAMAGE(Boolean.class, "allow.lava_damage"),
+ ALLOW_LAVA_PLACE(Boolean.class, "allow.lava_place"),
+ ALLOW_TNT_MINECARTS(Boolean.class, "allow.tnt_minecarts"),
+ ALLOW_WATER_PLACE(Boolean.class, "allow.water_place"),
+ //
+ MOB_LIMITER_ENABLED(Boolean.class, "moblimiter.enabled"),
+ MOB_LIMITER_MAX(Integer.class, "moblimiter.max"),
+ MOB_LIMITER_DISABLE_DRAGON(Boolean.class, "moblimiter.disable.dragon"),
+ MOB_LIMITER_DISABLE_GHAST(Boolean.class, "moblimiter.disable.ghast"),
+ MOB_LIMITER_DISABLE_GIANT(Boolean.class, "moblimiter.disable.giant"),
+ MOB_LIMITER_DISABLE_SLIME(Boolean.class, "moblimiter.disable.slime"),
+ //
+ HTTPD_ENABLED(Boolean.class, "httpd.enabled"),
+ HTTPD_PORT(Integer.class, "httpd.port"),
+ HTTPD_PUBLIC_FOLDER(String.class, "httpd.public_folder"),
+ HTTPD_ORIGIN(String.class, "httdp.origin"),
+ //
+ SERVER_COLORFUL_MOTD(Boolean.class, "server.colorful_motd"),
+ SERVER_NAME(String.class, "server.name"),
+ SERVER_ADDRESS(String.class, "server.address"),
+ SERVER_MOTD(String.class, "server.motd"),
+ SERVER_OWNERS(List.class, "server.owners"),
+ SERVER_BAN_URL(String.class, "server.ban_url"),
+ SERVER_PERMBAN_URL(String.class, "server.permban_url"),
+ SERVER_OP_ON_JOIN(Boolean.class, "server.op_on_join"),
+ //
+ TWITTERBOT_ENABLED(Boolean.class, "twitterbot.enabled"),
+ TWITTERBOT_SECRET(String.class, "twitterbot.secret"),
+ TWITTERBOT_URL(String.class, "twitterbot.url"),
+ //
+ DISABLE_NIGHT(Boolean.class, "disable.night"),
+ DISABLE_WEATHER(Boolean.class, "disable.weather"),
+ //
+ ENABLE_PREPROCESS_LOG(Boolean.class, "preprocess_log"),
+ ENABLE_PET_PROTECT(Boolean.class, "petprotect.enabled"),
+ //
+ LANDMINES_ENABLED(Boolean.class, "landmines_enabled"),
+ TOSSMOB_ENABLED(Boolean.class, "tossmob_enabled"),
+ AUTOKICK_ENABLED(Boolean.class, "autokick.enabled"),
+ MP44_ENABLED(Boolean.class, "mp44_enabled"),
+ //
+ PROTECTAREA_ENABLED(Boolean.class, "protectarea.enabled"),
+ PROTECTAREA_SPAWNPOINTS(Boolean.class, "protectarea.auto_protect_spawnpoints"),
+ PROTECTAREA_RADIUS(Double.class, "protectarea.auto_protect_radius"),
+ //
+ NUKE_MONITOR_ENABLED(Boolean.class, "nukemonitor.enabled"),
+ NUKE_MONITOR_COUNT_BREAK(Integer.class, "nukemonitor.count_break"),
+ NUKE_MONITOR_COUNT_PLACE(Integer.class, "nukemonitor.count_place"),
+ NUKE_MONITOR_RANGE(Double.class, "nukemonitor.range"),
+ //
+ AUTOKICK_THRESHOLD(Double.class, "autokick.threshold"),
+ AUTOKICK_TIME(Integer.class, "autokick.time"),
+ //
+ LOGS_SECRET(String.class, "logs.secret"),
+ LOGS_URL(String.class, "logs.url"),
+ //
+ FLATLANDS_GENERATE(Boolean.class, "flatlands.generate"),
+ FLATLANDS_GENERATE_PARAMS(String.class, "flatlands.generate_params"),
+ //
+ ANNOUNCER_ENABLED(Boolean.class, "announcer.enabled"),
+ ANNOUNCER_INTERVAL(Integer.class, "announcer.interval"),
+ ANNOUNCER_PREFIX(String.class, "announcer.prefix"),
+ ANNOUNCER_ANNOUNCEMENTS(List.class, "announcer.announcements"),
+ //
+ EXPLOSIVE_RADIUS(Double.class, "explosive_radius"),
+ FREECAM_TRIGGER_COUNT(Integer.class, "freecam_trigger_count"),
+ //SERVICE_CHECKER_URL(String.class, "service_checker_url"),
+ BLOCKED_COMMANDS(List.class, "blocked_commands"),
+ HOST_SENDER_NAMES(List.class, "host_sender_names"),
+ UNBANNABLE_USERNAMES(List.class, "unbannable_usernames"),
+ OVERLORD_IPS(List.class, "overlord_ips"),
+ NOADMIN_IPS(List.class, "noadmin_ips"),
+ ADMIN_ONLY_MODE(Boolean.class, "admin_only_mode"),
+ AUTO_ENTITY_WIPE(Boolean.class, "auto_wipe"),
+ CONSOLE_IS_SENIOR(Boolean.class, "console_is_senior"),
+ //
+ DISCORD_IS_ENABLED(Boolean.class, "discord.is_enabled"),
+ DISCORD_TOKEN(String.class, "discord.token"),
+ DISCORD_CHANNEL(String.class, "discord.channel"),
+ DISCORD_ADMIN_CHANNEL(String.class, "discord.admin_channel"),
+ DISCORD_PREFIX(String.class, "discord.prefix"),
+ DISCORD_FORMAT(String.class, "discord.format"),
+ DISCORD_ADMIN_FORMAT(String.class, "discord.admin_format"),
+ //
+ CHAT_FORMAT(String.class, "chat.format"),
+ TFM_BUILD_SHELLSCRIPT(String.class, "build_shellscript");
- private final Class> type;
- private final String configName;
+ private final Class> type;
+ private final String configName;
- ConfigurationEntry(Class> type, String configName) {
- this.type = type;
- this.configName = configName;
- }
+ ConfigurationEntry(Class> type, String configName) {
+ this.type = type;
+ this.configName = configName;
+ }
- public Class> getType()
- {
- return type;
- }
+ public static ConfigurationEntry findConfigEntry(String name) {
+ name = name.toLowerCase().replace("_", "");
+ for (ConfigurationEntry entry : values()) {
+ if (entry.toString().toLowerCase().replace("_", "").equals(name)) {
+ return entry;
+ }
+ }
+ return null;
+ }
- public String getConfigName()
- {
- return configName;
- }
+ public Class> getType() {
+ return type;
+ }
- public String getString()
- {
- return MainConfig.getString(this);
- }
+ public String getConfigName() {
+ return configName;
+ }
- public String setString(String value)
- {
- MainConfig.setString(this, value);
- return value;
- }
+ public String getString() {
+ return MainConfig.getString(this);
+ }
- public Double getDouble()
- {
- return MainConfig.getDouble(this);
- }
+ public String setString(String value) {
+ MainConfig.setString(this, value);
+ return value;
+ }
- public Double setDouble(Double value)
- {
- MainConfig.setDouble(this, value);
- return value;
- }
+ public Double getDouble() {
+ return MainConfig.getDouble(this);
+ }
- public Boolean getBoolean()
- {
- return MainConfig.getBoolean(this);
- }
+ public Double setDouble(Double value) {
+ MainConfig.setDouble(this, value);
+ return value;
+ }
- public Boolean setBoolean(Boolean value)
- {
- MainConfig.setBoolean(this, value);
- return value;
- }
+ public Boolean getBoolean() {
+ return MainConfig.getBoolean(this);
+ }
- public Integer getInteger()
- {
- return MainConfig.getInteger(this);
- }
+ public Boolean setBoolean(Boolean value) {
+ MainConfig.setBoolean(this, value);
+ return value;
+ }
- public Integer setInteger(Integer value)
- {
- MainConfig.setInteger(this, value);
- return value;
- }
+ public Integer getInteger() {
+ return MainConfig.getInteger(this);
+ }
- public List> getList()
- {
- return MainConfig.getList(this);
- }
+ public Integer setInteger(Integer value) {
+ MainConfig.setInteger(this, value);
+ return value;
+ }
- public static ConfigurationEntry findConfigEntry(String name)
- {
- name = name.toLowerCase().replace("_", "");
- for (ConfigurationEntry entry : values())
- {
- if (entry.toString().toLowerCase().replace("_", "").equals(name))
- {
- return entry;
- }
- }
- return null;
- }
+ public List> getList() {
+ return MainConfig.getList(this);
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/config/MainConfig.java b/src/main/java/me/StevenLawson/TotalFreedomMod/config/MainConfig.java
index e1967c6..6e92e96 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/config/MainConfig.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/config/MainConfig.java
@@ -2,308 +2,239 @@ package me.StevenLawson.TotalFreedomMod.config;
import com.avaje.ebean.validation.NotNull;
import com.google.common.collect.ImmutableList;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.EnumMap;
+import java.util.List;
import me.StevenLawson.TotalFreedomMod.Log;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.apache.commons.io.FileUtils;
import org.bukkit.configuration.InvalidConfigurationException;
import org.bukkit.configuration.file.YamlConfiguration;
-import java.io.*;
-import java.util.EnumMap;
-import java.util.List;
-
//@Deprecated
-public class MainConfig
-{
- public static final File CONFIG_FILE = new File(TotalFreedomMod.plugin.getDataFolder(), TotalFreedomMod.CONFIG_FILENAME);
- //
- private static final EnumMap ENTRY_MAP;
- private static final TFM_Defaults DEFAULTS;
+public class MainConfig {
- static
- {
- ENTRY_MAP = new EnumMap(ConfigurationEntry.class);
+ public static final File CONFIG_FILE = new File(TotalFreedomMod.plugin.getDataFolder(),
+ TotalFreedomMod.CONFIG_FILENAME);
+ //
+ private static final EnumMap ENTRY_MAP;
+ private static final TFM_Defaults DEFAULTS;
- TFM_Defaults tempDefaults = null;
- try
- {
- try
- {
- InputStream defaultConfig = getDefaultConfig();
- tempDefaults = new TFM_Defaults(defaultConfig);
- for (ConfigurationEntry entry : ConfigurationEntry.values())
- {
- ENTRY_MAP.put(entry, tempDefaults.get(entry.getConfigName()));
- }
- defaultConfig.close();
- }
- catch (IOException ex)
- {
- Log.severe(ex);
- }
+ static {
+ ENTRY_MAP = new EnumMap(ConfigurationEntry.class);
- copyDefaultConfig(CONFIG_FILE);
+ TFM_Defaults tempDefaults = null;
+ try {
+ try {
+ InputStream defaultConfig = getDefaultConfig();
+ tempDefaults = new TFM_Defaults(defaultConfig);
+ for (ConfigurationEntry entry : ConfigurationEntry.values()) {
+ ENTRY_MAP.put(entry, tempDefaults.get(entry.getConfigName()));
+ }
+ defaultConfig.close();
+ } catch (IOException ex) {
+ Log.severe(ex);
+ }
- load();
- }
- catch (Exception ex)
- {
- Log.severe(ex);
- }
+ copyDefaultConfig(CONFIG_FILE);
- DEFAULTS = tempDefaults;
- }
+ load();
+ } catch (Exception ex) {
+ Log.severe(ex);
+ }
- private MainConfig()
- {
- throw new AssertionError();
- }
+ DEFAULTS = tempDefaults;
+ }
- public static void load()
- {
- try
- {
- YamlConfiguration config = new YamlConfiguration();
+ private MainConfig() {
+ throw new AssertionError();
+ }
- config.load(CONFIG_FILE);
+ public static void load() {
+ try {
+ YamlConfiguration config = new YamlConfiguration();
- for (ConfigurationEntry entry : ConfigurationEntry.values())
- {
- String path = entry.getConfigName();
- if (config.contains(path))
- {
- Object value = config.get(path);
- if (value == null || entry.getType().isAssignableFrom(value.getClass()))
- {
- ENTRY_MAP.put(entry, value);
- }
- else
- {
- Log.warning("Value for " + entry.getConfigName() + " is of type " + value.getClass().getSimpleName() + ". Needs to be " + entry.getType().getSimpleName() + ". Using default value.");
- }
- }
- else
- {
- Log.warning("Missing configuration entry " + entry.getConfigName() + ". Using default value.");
- }
- }
- }
- catch (FileNotFoundException ex)
- {
- Log.severe(ex);
- }
- catch (IOException ex)
- {
- Log.severe(ex);
- }
- catch (InvalidConfigurationException ex)
- {
- Log.severe(ex);
- }
- }
+ config.load(CONFIG_FILE);
- @NotNull
- public static String getString(ConfigurationEntry entry)
- {
- try
- {
- return get(entry, String.class);
- }
- catch (IllegalArgumentException ex)
- {
- Log.severe(ex);
- }
- return "";
- }
+ for (ConfigurationEntry entry : ConfigurationEntry.values()) {
+ String path = entry.getConfigName();
+ if (config.contains(path)) {
+ Object value = config.get(path);
+ if (value == null || entry.getType().isAssignableFrom(value.getClass())) {
+ ENTRY_MAP.put(entry, value);
+ } else {
+ Log.warning(
+ "Value for " + entry.getConfigName() + " is of type " + value.getClass()
+ .getSimpleName() + ". Needs to be " + entry.getType()
+ .getSimpleName() + ". Using default value.");
+ }
+ } else {
+ Log.warning("Missing configuration entry " + entry.getConfigName()
+ + ". Using default value.");
+ }
+ }
+ } catch (FileNotFoundException ex) {
+ Log.severe(ex);
+ } catch (IOException ex) {
+ Log.severe(ex);
+ } catch (InvalidConfigurationException ex) {
+ Log.severe(ex);
+ }
+ }
- public static void setString(ConfigurationEntry entry, String value)
- {
- try
- {
- set(entry, value, String.class);
- }
- catch (IllegalArgumentException ex)
- {
- Log.severe(ex);
- }
- }
+ @NotNull
+ public static String getString(ConfigurationEntry entry) {
+ try {
+ return get(entry, String.class);
+ } catch (IllegalArgumentException ex) {
+ Log.severe(ex);
+ }
+ return "";
+ }
- @NotNull
- public static Double getDouble(ConfigurationEntry entry)
- {
- try
- {
- return get(entry, Double.class);
- }
- catch (IllegalArgumentException ex)
- {
- Log.severe(ex);
- }
- return 0D;
- }
+ public static void setString(ConfigurationEntry entry, String value) {
+ try {
+ set(entry, value, String.class);
+ } catch (IllegalArgumentException ex) {
+ Log.severe(ex);
+ }
+ }
- public static void setDouble(ConfigurationEntry entry, Double value)
- {
- try
- {
- set(entry, value, Double.class);
- }
- catch (IllegalArgumentException ex)
- {
- Log.severe(ex);
- }
- }
+ @NotNull
+ public static Double getDouble(ConfigurationEntry entry) {
+ try {
+ return get(entry, Double.class);
+ } catch (IllegalArgumentException ex) {
+ Log.severe(ex);
+ }
+ return 0D;
+ }
- @NotNull
- public static Boolean getBoolean(ConfigurationEntry entry)
- {
- try
- {
- return get(entry, Boolean.class);
- }
- catch (IllegalArgumentException ex)
- {
- Log.severe(ex);
- }
- return false;
- }
+ public static void setDouble(ConfigurationEntry entry, Double value) {
+ try {
+ set(entry, value, Double.class);
+ } catch (IllegalArgumentException ex) {
+ Log.severe(ex);
+ }
+ }
- public static void setBoolean(ConfigurationEntry entry, Boolean value)
- {
- try
- {
- set(entry, value, Boolean.class);
- }
- catch (IllegalArgumentException ex)
- {
- Log.severe(ex);
- }
- }
+ @NotNull
+ public static Boolean getBoolean(ConfigurationEntry entry) {
+ try {
+ return get(entry, Boolean.class);
+ } catch (IllegalArgumentException ex) {
+ Log.severe(ex);
+ }
+ return false;
+ }
- @NotNull
- public static Integer getInteger(ConfigurationEntry entry)
- {
- try
- {
- return get(entry, Integer.class);
- }
- catch (IllegalArgumentException ex)
- {
- Log.severe(ex);
- }
- return 0;
- }
+ public static void setBoolean(ConfigurationEntry entry, Boolean value) {
+ try {
+ set(entry, value, Boolean.class);
+ } catch (IllegalArgumentException ex) {
+ Log.severe(ex);
+ }
+ }
- public static void setInteger(ConfigurationEntry entry, Integer value)
- {
- try
- {
- set(entry, value, Integer.class);
- }
- catch (IllegalArgumentException ex)
- {
- Log.severe(ex);
- }
- }
+ @NotNull
+ public static Integer getInteger(ConfigurationEntry entry) {
+ try {
+ return get(entry, Integer.class);
+ } catch (IllegalArgumentException ex) {
+ Log.severe(ex);
+ }
+ return 0;
+ }
- @NotNull
- public static List getList(ConfigurationEntry entry)
- {
- try
- {
- return get(entry, List.class);
- }
- catch (IllegalArgumentException ex)
- {
- Log.severe(ex);
- }
- return ImmutableList.of();
- }
+ public static void setInteger(ConfigurationEntry entry, Integer value) {
+ try {
+ set(entry, value, Integer.class);
+ } catch (IllegalArgumentException ex) {
+ Log.severe(ex);
+ }
+ }
- @NotNull
- public static T get(ConfigurationEntry entry, Class type) throws IllegalArgumentException
- {
- Object value = ENTRY_MAP.get(entry);
- try
- {
- return type.cast(value);
- }
- catch (ClassCastException ex)
- {
- throw new IllegalArgumentException(entry.name() + " is not of type " + type.getSimpleName());
- }
- }
+ @NotNull
+ public static List getList(ConfigurationEntry entry) {
+ try {
+ return get(entry, List.class);
+ } catch (IllegalArgumentException ex) {
+ Log.severe(ex);
+ }
+ return ImmutableList.of();
+ }
- public static void set(ConfigurationEntry entry, T value, Class type) throws IllegalArgumentException
- {
- if (!type.isAssignableFrom(entry.getType()))
- {
- throw new IllegalArgumentException(entry.name() + " is not of type " + type.getSimpleName());
- }
- if (value != null && !type.isAssignableFrom(value.getClass()))
- {
- throw new IllegalArgumentException("Value is not of type " + type.getSimpleName());
- }
- ENTRY_MAP.put(entry, value);
- }
+ @NotNull
+ public static T get(ConfigurationEntry entry, Class type)
+ throws IllegalArgumentException {
+ Object value = ENTRY_MAP.get(entry);
+ try {
+ return type.cast(value);
+ } catch (ClassCastException ex) {
+ throw new IllegalArgumentException(
+ entry.name() + " is not of type " + type.getSimpleName());
+ }
+ }
- private static void copyDefaultConfig(File targetFile)
- {
- if (targetFile.exists())
- {
- return;
- }
+ public static void set(ConfigurationEntry entry, T value, Class type)
+ throws IllegalArgumentException {
+ if (!type.isAssignableFrom(entry.getType())) {
+ throw new IllegalArgumentException(
+ entry.name() + " is not of type " + type.getSimpleName());
+ }
+ if (value != null && !type.isAssignableFrom(value.getClass())) {
+ throw new IllegalArgumentException("Value is not of type " + type.getSimpleName());
+ }
+ ENTRY_MAP.put(entry, value);
+ }
- Log.info("Installing default configuration file template: " + targetFile.getPath());
+ private static void copyDefaultConfig(File targetFile) {
+ if (targetFile.exists()) {
+ return;
+ }
- try
- {
- InputStream defaultConfig = getDefaultConfig();
- FileUtils.copyInputStreamToFile(defaultConfig, targetFile);
- defaultConfig.close();
- }
- catch (IOException ex)
- {
- Log.severe(ex);
- }
- }
+ Log.info("Installing default configuration file template: " + targetFile.getPath());
- private static InputStream getDefaultConfig()
- {
- return TotalFreedomMod.plugin.getResource(TotalFreedomMod.CONFIG_FILENAME);
- }
+ try {
+ InputStream defaultConfig = getDefaultConfig();
+ FileUtils.copyInputStreamToFile(defaultConfig, targetFile);
+ defaultConfig.close();
+ } catch (IOException ex) {
+ Log.severe(ex);
+ }
+ }
- public static TFM_Defaults getDefaults()
- {
- return DEFAULTS;
- }
+ private static InputStream getDefaultConfig() {
+ return TotalFreedomMod.plugin.getResource(TotalFreedomMod.CONFIG_FILENAME);
+ }
- public static class TFM_Defaults
- {
- private YamlConfiguration defaults = null;
+ public static TFM_Defaults getDefaults() {
+ return DEFAULTS;
+ }
- private TFM_Defaults(InputStream defaultConfig)
- {
- try
- {
- defaults = new YamlConfiguration();
- final InputStreamReader isr = new InputStreamReader(defaultConfig);
- defaults.load(isr);
- isr.close();
- }
- catch (IOException ex)
- {
- Log.severe(ex);
- }
- catch (InvalidConfigurationException ex)
- {
- Log.severe(ex);
- }
- }
+ public static class TFM_Defaults {
- public Object get(String path)
- {
- return defaults.get(path);
- }
- }
+ private YamlConfiguration defaults = null;
+
+ private TFM_Defaults(InputStream defaultConfig) {
+ try {
+ defaults = new YamlConfiguration();
+ final InputStreamReader isr = new InputStreamReader(defaultConfig);
+ defaults.load(isr);
+ isr.close();
+ } catch (IOException ex) {
+ Log.severe(ex);
+ } catch (InvalidConfigurationException ex) {
+ Log.severe(ex);
+ }
+ }
+
+ public Object get(String path) {
+ return defaults.get(path);
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/config/TagConfiguration.java b/src/main/java/me/StevenLawson/TotalFreedomMod/config/TagConfiguration.java
index ee09b7d..deadca6 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/config/TagConfiguration.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/config/TagConfiguration.java
@@ -1,42 +1,47 @@
package me.StevenLawson.TotalFreedomMod.config;
+import java.io.File;
+import java.io.IOException;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;
-import java.io.File;
-import java.io.IOException;
-
public class TagConfiguration {
- private static Plugin plugin = JavaPlugin.getPlugin(TotalFreedomMod.class);
- private static final FileConfiguration playerdata = TotalFreedomMod.getPlugin(TotalFreedomMod.class).getCustomConfig();
- private static File cfile = new File(plugin.getDataFolder(), "playerTags.yml");
- public static void saveTag(String playerUuid, String tag) {
- try {
- // Set tag value and save.
- playerdata.set(playerUuid, tag);
- playerdata.save(cfile);
- } catch (IOException e){
- e.printStackTrace();
- }
- }
- public static String getTag(String playerUuid){
- if(playerdata.get(playerUuid) != null && playerdata.isString(playerUuid)) {
- if(!playerdata.getString(playerUuid).isEmpty() && !"".equalsIgnoreCase(playerdata.getString(playerUuid))){
- // Return the value if exists, checking will be done on join event.
- return playerdata.getString(playerUuid);
- } else {
- try {
- // Try and write player tags if not added
- playerdata.set(playerUuid, "");
- playerdata.save(cfile);
- } catch (IOException e){
- e.printStackTrace();
- }
- return "";
- }
- } else return null;
- }
+ private static final FileConfiguration playerdata = TotalFreedomMod.getPlugin(
+ TotalFreedomMod.class).getCustomConfig();
+ private static final Plugin plugin = JavaPlugin.getPlugin(TotalFreedomMod.class);
+ private static final File cfile = new File(plugin.getDataFolder(), "playerTags.yml");
+
+ public static void saveTag(String playerUuid, String tag) {
+ try {
+ // Set tag value and save.
+ playerdata.set(playerUuid, tag);
+ playerdata.save(cfile);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static String getTag(String playerUuid) {
+ if (playerdata.get(playerUuid) != null && playerdata.isString(playerUuid)) {
+ if (!playerdata.getString(playerUuid).isEmpty() && !"".equalsIgnoreCase(
+ playerdata.getString(playerUuid))) {
+ // Return the value if exists, checking will be done on join event.
+ return playerdata.getString(playerUuid);
+ } else {
+ try {
+ // Try and write player tags if not added
+ playerdata.set(playerUuid, "");
+ playerdata.save(cfile);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return "";
+ }
+ } else {
+ return null;
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/deprecated/bridge/BukkitTelnetBridge.java b/src/main/java/me/StevenLawson/TotalFreedomMod/deprecated/bridge/BukkitTelnetBridge.java
index 2f722fb..594a031 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/deprecated/bridge/BukkitTelnetBridge.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/deprecated/bridge/BukkitTelnetBridge.java
@@ -1,5 +1,7 @@
package me.StevenLawson.TotalFreedomMod.deprecated.bridge;
+import java.util.Iterator;
+import java.util.Map;
import me.StevenLawson.BukkitTelnet.api.TelnetCommandEvent;
import me.StevenLawson.BukkitTelnet.api.TelnetPreLoginEvent;
import me.StevenLawson.BukkitTelnet.api.TelnetRequestDataTagsEvent;
@@ -13,70 +15,64 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
-import java.util.Iterator;
-import java.util.Map;
-
@Deprecated
public class BukkitTelnetBridge implements Listener {
- @EventHandler(priority = EventPriority.NORMAL)
- public void onTelnetPreLogin(TelnetPreLoginEvent event) {
- final String ip = event.getIp();
- if (ip == null || ip.isEmpty()) {
- return;
- }
+ @EventHandler(priority = EventPriority.NORMAL)
+ public void onTelnetPreLogin(TelnetPreLoginEvent event) {
- final Admin admin = AdminList.getEntryByIp(ip, true);
+ final String ip = event.getIp();
+ if (ip == null || ip.isEmpty()) {
+ return;
+ }
- if (admin == null || !admin.isActivated() || !admin.isTelnetAdmin())
- {
- return;
- }
+ final Admin admin = AdminList.getEntryByIp(ip, true);
- event.setBypassPassword(true);
- event.setName(admin.getLastLoginName());
- }
+ if (admin == null || !admin.isActivated() || !admin.isTelnetAdmin()) {
+ return;
+ }
- @EventHandler(priority = EventPriority.NORMAL)
- public void onTelnetCommand(TelnetCommandEvent event)
- {
- if (CommandBlocker.isCommandBlocked(event.getCommand(), event.getSender()))
- {
- event.setCancelled(true);
- }
- }
+ event.setBypassPassword(true);
+ event.setName(admin.getLastLoginName());
+ }
- @EventHandler(priority = EventPriority.NORMAL)
- public void onTelnetRequestDataTags(TelnetRequestDataTagsEvent event)
- {
- final Iterator>> it = event.getDataTags().entrySet().iterator();
- while (it.hasNext())
- {
- final Map.Entry> entry = it.next();
- final Player player = entry.getKey();
- final Map playerTags = entry.getValue();
+ @EventHandler(priority = EventPriority.NORMAL)
+ public void onTelnetCommand(TelnetCommandEvent event) {
+ if (CommandBlocker.isCommandBlocked(event.getCommand(), event.getSender())) {
+ event.setCancelled(true);
+ }
+ }
- boolean isAdmin = false;
- boolean isTelnetAdmin = false;
- boolean isSeniorAdmin = false;
+ @EventHandler(priority = EventPriority.NORMAL)
+ public void onTelnetRequestDataTags(TelnetRequestDataTagsEvent event) {
+ final Iterator>> it = event.getDataTags().entrySet()
+ .iterator();
+ while (it.hasNext()) {
+ final Map.Entry> entry = it.next();
+ final Player player = entry.getKey();
+ final Map playerTags = entry.getValue();
- final Admin admin = AdminList.getEntry(player);
- if (admin != null)
- {
- boolean isActivated = admin.isActivated();
+ boolean isAdmin = false;
+ boolean isTelnetAdmin = false;
+ boolean isSeniorAdmin = false;
- isAdmin = isActivated;
- isTelnetAdmin = isActivated && admin.isTelnetAdmin();
- isSeniorAdmin = isActivated && admin.isSeniorAdmin();
- }
+ final Admin admin = AdminList.getEntry(player);
+ if (admin != null) {
+ boolean isActivated = admin.isActivated();
- playerTags.put("tfm.admin.isAdmin", isAdmin);
- playerTags.put("tfm.admin.isTelnetAdmin", isTelnetAdmin);
- playerTags.put("tfm.admin.isSeniorAdmin", isSeniorAdmin);
+ isAdmin = isActivated;
+ isTelnetAdmin = isActivated && admin.isTelnetAdmin();
+ isSeniorAdmin = isActivated && admin.isSeniorAdmin();
+ }
- playerTags.put("tfm.playerdata.getTag", PlayerData.getPlayerData(player).getTag());
+ playerTags.put("tfm.admin.isAdmin", isAdmin);
+ playerTags.put("tfm.admin.isTelnetAdmin", isTelnetAdmin);
+ playerTags.put("tfm.admin.isSeniorAdmin", isSeniorAdmin);
- playerTags.put("tfm.essentialsBridge.getNickname", EssentialsBridge.getNickname(player.getName()));
- }
- }
+ playerTags.put("tfm.playerdata.getTag", PlayerData.getPlayerData(player).getTag());
+
+ playerTags.put("tfm.essentialsBridge.getNickname",
+ EssentialsBridge.getNickname(player.getName()));
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/deprecated/twitter/TwitterHandler.java b/src/main/java/me/StevenLawson/TotalFreedomMod/deprecated/twitter/TwitterHandler.java
index 2254b3c..dc58111 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/deprecated/twitter/TwitterHandler.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/deprecated/twitter/TwitterHandler.java
@@ -1,110 +1,98 @@
package me.StevenLawson.TotalFreedomMod.deprecated.twitter;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.net.URLConnection;
import me.StevenLawson.TotalFreedomMod.Log;
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.net.URL;
-import java.net.URLConnection;
-
@Deprecated
-public class TwitterHandler
-{
- private TwitterHandler()
- {
- throw new AssertionError();
- }
+public class TwitterHandler {
- public static String getTwitter(String player)
- {
- return request("action=gettwitter&player=" + player);
- }
+ private TwitterHandler() {
+ throw new AssertionError();
+ }
- public static String setTwitter(String player, String twitter)
- {
- if (twitter.startsWith("@"))
- {
- twitter = twitter.replaceAll("@", "");
- }
- return request("action=settwitter&player=" + player + "&twitter=" + twitter);
- }
+ public static String getTwitter(String player) {
+ return request("action=gettwitter&player=" + player);
+ }
- public static String delTwitter(String player)
- {
- return request("action=deltwitter&player=" + player);
- }
+ public static String setTwitter(String player, String twitter) {
+ if (twitter.startsWith("@")) {
+ twitter = twitter.replaceAll("@", "");
+ }
+ return request("action=settwitter&player=" + player + "&twitter=" + twitter);
+ }
- public static void delTwitterVerbose(String targetName, CommandSender sender)
- {
- final String reply = delTwitter(targetName);
- if ("ok".equals(reply))
- {
- Utilities.adminAction(sender.getName(), "Removing " + targetName + " from TwitterBot", true);
- }
- else if ("disabled".equals(reply))
- {
- Utilities.playerMsg(sender, "Warning: Could not check if player has a twitter handle!");
- Utilities.playerMsg(sender, "TwitterBot has been temporarily disabled, please wait until it gets re-enabled", ChatColor.RED);
- }
- else if ("failed".equals(reply))
- {
- Utilities.playerMsg(sender, "Warning: Could not check if player has a twitter handle!");
- Utilities.playerMsg(sender, "There was a problem querying the database, please let a developer know.", ChatColor.RED);
- }
- else if ("false".equals(reply))
- {
- Utilities.playerMsg(sender, "Warning: Could not check if player has a twitter handle!");
- Utilities.playerMsg(sender, "There was a problem with the database, please let a developer know.", ChatColor.RED);
- }
- else if ("cannotauth".equals(reply))
- {
- Utilities.playerMsg(sender, "Warning: Could not check if player has a twitter handle!");
- Utilities.playerMsg(sender, "The database password is incorrect, please let a developer know.", ChatColor.RED);
- }
- else if ("notfound".equals(reply))
- {
- Utilities.playerMsg(sender, targetName + " did not have a twitter handle registered to their name.", ChatColor.GREEN);
- }
- }
+ public static String delTwitter(String player) {
+ return request("action=deltwitter&player=" + player);
+ }
- public static String isEnabled()
- {
- return request("action=getstatus");
- }
+ public static void delTwitterVerbose(String targetName, CommandSender sender) {
+ final String reply = delTwitter(targetName);
+ if ("ok".equals(reply)) {
+ Utilities.adminAction(sender.getName(), "Removing " + targetName + " from TwitterBot",
+ true);
+ } else if ("disabled".equals(reply)) {
+ Utilities.playerMsg(sender, "Warning: Could not check if player has a twitter handle!");
+ Utilities.playerMsg(sender,
+ "TwitterBot has been temporarily disabled, please wait until it gets re-enabled",
+ ChatColor.RED);
+ } else if ("failed".equals(reply)) {
+ Utilities.playerMsg(sender, "Warning: Could not check if player has a twitter handle!");
+ Utilities.playerMsg(sender,
+ "There was a problem querying the database, please let a developer know.",
+ ChatColor.RED);
+ } else if ("false".equals(reply)) {
+ Utilities.playerMsg(sender, "Warning: Could not check if player has a twitter handle!");
+ Utilities.playerMsg(sender,
+ "There was a problem with the database, please let a developer know.",
+ ChatColor.RED);
+ } else if ("cannotauth".equals(reply)) {
+ Utilities.playerMsg(sender, "Warning: Could not check if player has a twitter handle!");
+ Utilities.playerMsg(sender,
+ "The database password is incorrect, please let a developer know.", ChatColor.RED);
+ } else if ("notfound".equals(reply)) {
+ Utilities.playerMsg(sender,
+ targetName + " did not have a twitter handle registered to their name.",
+ ChatColor.GREEN);
+ }
+ }
- public static String setEnabled(String status)
- {
- return request("action=setstatus&status=" + status);
- }
+ public static String isEnabled() {
+ return request("action=getstatus");
+ }
- private static String request(String queryString)
- {
- String line = "failed";
+ public static String setEnabled(String status) {
+ return request("action=setstatus&status=" + status);
+ }
- final String twitterbotURL = ConfigurationEntry.TWITTERBOT_URL.getString();
- final String twitterbotSecret = ConfigurationEntry.TWITTERBOT_SECRET.getString();
+ private static String request(String queryString) {
+ String line = "failed";
- if (twitterbotURL != null && twitterbotSecret != null && !twitterbotURL.isEmpty() && !twitterbotSecret.isEmpty())
- {
- try
- {
- URL getUrl = new URL(twitterbotURL + "?auth=" + twitterbotSecret + "&" + queryString);
- URLConnection urlConnection = getUrl.openConnection();
- // Read the response
- BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
- line = in.readLine();
- in.close();
- }
- catch (Exception ex)
- {
- Log.severe(ex);
- }
- }
+ final String twitterbotURL = ConfigurationEntry.TWITTERBOT_URL.getString();
+ final String twitterbotSecret = ConfigurationEntry.TWITTERBOT_SECRET.getString();
- return line;
- }
+ if (twitterbotURL != null && twitterbotSecret != null && !twitterbotURL.isEmpty()
+ && !twitterbotSecret.isEmpty()) {
+ try {
+ URL getUrl = new URL(
+ twitterbotURL + "?auth=" + twitterbotSecret + "&" + queryString);
+ URLConnection urlConnection = getUrl.openConnection();
+ // Read the response
+ BufferedReader in = new BufferedReader(
+ new InputStreamReader(urlConnection.getInputStream()));
+ line = in.readLine();
+ in.close();
+ } catch (Exception ex) {
+ Log.severe(ex);
+ }
+ }
+
+ return line;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/discord/bridge/DiscordBridge.java b/src/main/java/me/StevenLawson/TotalFreedomMod/discord/bridge/DiscordBridge.java
index 9ec3e4d..a10e0d5 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/discord/bridge/DiscordBridge.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/discord/bridge/DiscordBridge.java
@@ -28,231 +28,234 @@ import org.javacord.api.event.message.MessageCreateEvent;
public class DiscordBridge {
- private static DiscordApi DISCORD_API;
- private static TextChannel CHANNEL;
- private static TextChannel ADMIN_CHANNEL;
- public static DiscordCommandManager COMMAND_MANAGER;
+ public static DiscordCommandManager COMMAND_MANAGER;
+ private static DiscordApi DISCORD_API;
+ private static TextChannel CHANNEL;
+ private static TextChannel ADMIN_CHANNEL;
- private static void onMessageCreateEvent(MessageCreateEvent message) {
- boolean isAdmin = false;
+ private static void onMessageCreateEvent(MessageCreateEvent message) {
+ boolean isAdmin = false;
- try {
- isAdmin = message.getChannel().getIdAsString()
- .equalsIgnoreCase(ADMIN_CHANNEL.getIdAsString());
- } catch (Exception ignored) {
- }
+ try {
+ isAdmin = message.getChannel().getIdAsString()
+ .equalsIgnoreCase(ADMIN_CHANNEL.getIdAsString());
+ } catch (Exception ignored) {
+ }
- String content = message.getMessage().getReadableContent();
- String prefix = MainConfig.getString(ConfigurationEntry.DISCORD_PREFIX);
- MessageAuthor author = message.getMessage().getAuthor();
+ String content = message.getMessage().getReadableContent();
+ String prefix = MainConfig.getString(ConfigurationEntry.DISCORD_PREFIX);
+ MessageAuthor author = message.getMessage().getAuthor();
- if (author.isBotUser() || !message.isServerMessage()) {
- return;
- }
- Optional server = message.getServer();
- Optional user = author.asUser();
+ if (author.isBotUser() || !message.isServerMessage()) {
+ return;
+ }
+ Optional server = message.getServer();
+ Optional user = author.asUser();
- if (prefix == null) {
- Log.severe("Bot prefix does not exist. Stopping bot...");
- stop();
- return;
- }
+ if (prefix == null) {
+ Log.severe("Bot prefix does not exist. Stopping bot...");
+ stop();
+ return;
+ }
- if (!server.isPresent()) {
- Log.warning(
- "Discord server wasn't present in message, this may be a sign you've not properly configured the intents for your bot.");
- return;
- }
+ if (!server.isPresent()) {
+ Log.warning(
+ "Discord server wasn't present in message, this may be a sign you've not properly configured the intents for your bot.");
+ return;
+ }
- if (!user.isPresent()) {
- Log.warning(
- "Unable to get user of message author. This may be a sign you've not properly configured the intents for your bot.");
- return;
- }
+ if (!user.isPresent()) {
+ Log.warning(
+ "Unable to get user of message author. This may be a sign you've not properly configured the intents for your bot.");
+ return;
+ }
- if (content.toLowerCase().startsWith(prefix)) {
- COMMAND_MANAGER.parse(content, user.get(), server.get(), message.getChannel(), prefix);
- } else {
- Optional referenced = message.getMessage().getReferencedMessage();
+ if (content.toLowerCase().startsWith(prefix)) {
+ COMMAND_MANAGER.parse(content, user.get(), server.get(), message.getChannel(), prefix);
+ } else {
+ Optional referenced = message.getMessage().getReferencedMessage();
- String reply = "";
- if (referenced.isPresent()) {
- Message replyingTo = referenced.get();
- reply = String.format(
- ChatColor.GRAY + "┌ " + ChatColor.YELLOW + "%s" + ChatColor.GRAY + " %s\n"
- + ChatColor.WHITE, replyingTo.getAuthor().getDiscriminatedName(),
- replyingTo.getReadableContent());
- }
+ String reply = "";
+ if (referenced.isPresent()) {
+ Message replyingTo = referenced.get();
+ reply = String.format(
+ ChatColor.GRAY + "┌ " + ChatColor.YELLOW + "%s" + ChatColor.GRAY + " %s\n"
+ + ChatColor.WHITE, replyingTo.getAuthor().getDiscriminatedName(),
+ replyingTo.getReadableContent());
+ }
- String format = MainConfig.getString(
- (isAdmin) ? ConfigurationEntry.DISCORD_ADMIN_FORMAT : ConfigurationEntry.DISCORD_FORMAT);
- format = format.replace("{TAG}", author.getDiscriminatedName());
- format = format.replace("{USERNAME}", author.getName());
- BaseComponent[] components = TextComponent.fromLegacyText(
- ChatColor.translateAlternateColorCodes('&', String.format(format, content)));
- TextComponent component = new TextComponent(reply);
+ String format = MainConfig.getString(
+ (isAdmin) ? ConfigurationEntry.DISCORD_ADMIN_FORMAT
+ : ConfigurationEntry.DISCORD_FORMAT);
+ format = format.replace("{TAG}", author.getDiscriminatedName());
+ format = format.replace("{USERNAME}", author.getName());
+ BaseComponent[] components = TextComponent.fromLegacyText(
+ ChatColor.translateAlternateColorCodes('&', String.format(format, content)));
+ TextComponent component = new TextComponent(reply);
- component.addExtra(Utilities.fromBaseComponents(components));
+ component.addExtra(Utilities.fromBaseComponents(components));
- if (message.getMessageAttachments().size() > 0) {
- int i = 0;
- for (MessageAttachment messageAttachment : message.getMessageAttachments()) {
- String url = messageAttachment.getProxyUrl().toString();
- ClickEvent clickEvent = new ClickEvent(ClickEvent.Action.OPEN_URL, url);
- TextComponent warningComponent = new TextComponent(
- "WARNING: By clicking on this text, your client will open:\n\n");
- warningComponent.setColor(net.md_5.bungee.api.ChatColor.RED);
- warningComponent.setBold(true);
- TextComponent urlComponent = new TextComponent(url);
- urlComponent.setColor(net.md_5.bungee.api.ChatColor.DARK_AQUA);
- urlComponent.setUnderlined(true);
- urlComponent.setBold(false);
- warningComponent.addExtra(urlComponent);
- HoverEvent hoverEvent = new HoverEvent(HoverEvent.Action.SHOW_TEXT,
- new BaseComponent[]{warningComponent});
- TextComponent mediaComponent = new TextComponent(
- (i == 0 && content.isEmpty()) ? "[Media]" : " [Media]");
- mediaComponent.setColor(net.md_5.bungee.api.ChatColor.YELLOW);
- mediaComponent.setClickEvent(clickEvent);
- mediaComponent.setHoverEvent(hoverEvent);
- component.addExtra(mediaComponent);
- i++;
- }
- }
+ if (message.getMessageAttachments().size() > 0) {
+ int i = 0;
+ for (MessageAttachment messageAttachment : message.getMessageAttachments()) {
+ String url = messageAttachment.getProxyUrl().toString();
+ ClickEvent clickEvent = new ClickEvent(ClickEvent.Action.OPEN_URL, url);
+ TextComponent warningComponent = new TextComponent(
+ "WARNING: By clicking on this text, your client will open:\n\n");
+ warningComponent.setColor(net.md_5.bungee.api.ChatColor.RED);
+ warningComponent.setBold(true);
+ TextComponent urlComponent = new TextComponent(url);
+ urlComponent.setColor(net.md_5.bungee.api.ChatColor.DARK_AQUA);
+ urlComponent.setUnderlined(true);
+ urlComponent.setBold(false);
+ warningComponent.addExtra(urlComponent);
+ HoverEvent hoverEvent = new HoverEvent(HoverEvent.Action.SHOW_TEXT,
+ new BaseComponent[]{warningComponent});
+ TextComponent mediaComponent = new TextComponent(
+ (i == 0 && content.isEmpty()) ? "[Media]" : " [Media]");
+ mediaComponent.setColor(net.md_5.bungee.api.ChatColor.YELLOW);
+ mediaComponent.setClickEvent(clickEvent);
+ mediaComponent.setHoverEvent(hoverEvent);
+ component.addExtra(mediaComponent);
+ i++;
+ }
+ }
- if (isAdmin) {
- for (org.bukkit.entity.Player player : Bukkit.getOnlinePlayers()) {
- if (AdminList.isSuperAdmin(player)) {
- player.spigot().sendMessage(component);
- }
- }
- } else {
- Bukkit.spigot().broadcast(component);
- }
- Log.info(component.toPlainText());
- }
- }
+ if (isAdmin) {
+ for (org.bukkit.entity.Player player : Bukkit.getOnlinePlayers()) {
+ if (AdminList.isSuperAdmin(player)) {
+ player.spigot().sendMessage(component);
+ }
+ }
+ } else {
+ Bukkit.spigot().broadcast(component);
+ }
+ Log.info(component.toPlainText());
+ }
+ }
- public static void load() {
+ public static void load() {
- if (Boolean.FALSE.equals(MainConfig.getBoolean(ConfigurationEntry.DISCORD_IS_ENABLED))) {
- return;
- }
+ if (Boolean.FALSE.equals(MainConfig.getBoolean(ConfigurationEntry.DISCORD_IS_ENABLED))) {
+ return;
+ }
- try {
- DISCORD_API = new DiscordApiBuilder()
- .setToken(MainConfig.getString(ConfigurationEntry.DISCORD_TOKEN))
- .login()
- .join();
+ try {
+ DISCORD_API = new DiscordApiBuilder()
+ .setToken(MainConfig.getString(ConfigurationEntry.DISCORD_TOKEN))
+ .login()
+ .join();
- Optional channelFuture = DISCORD_API.getTextChannelById(
- MainConfig.getString(ConfigurationEntry.DISCORD_CHANNEL));
- Optional adminChannelFuture = DISCORD_API.getTextChannelById(
- MainConfig.getString(ConfigurationEntry.DISCORD_ADMIN_CHANNEL));
+ Optional channelFuture = DISCORD_API.getTextChannelById(
+ MainConfig.getString(ConfigurationEntry.DISCORD_CHANNEL));
+ Optional adminChannelFuture = DISCORD_API.getTextChannelById(
+ MainConfig.getString(ConfigurationEntry.DISCORD_ADMIN_CHANNEL));
- if (!channelFuture.isPresent()) {
- Log.warning("TFM 4.3 Reloaded could not find your channel, stopping!");
+ if (!channelFuture.isPresent()) {
+ Log.warning("TFM 4.3 Reloaded could not find your channel, stopping!");
- return;
- }
+ return;
+ }
- CHANNEL = channelFuture.get();
- adminChannelFuture.ifPresent(textChannel -> ADMIN_CHANNEL = textChannel);
- COMMAND_MANAGER = new DiscordCommandManager();
- COMMAND_MANAGER.init();
+ CHANNEL = channelFuture.get();
+ adminChannelFuture.ifPresent(textChannel -> ADMIN_CHANNEL = textChannel);
+ COMMAND_MANAGER = new DiscordCommandManager();
+ COMMAND_MANAGER.init();
- CHANNEL.addMessageCreateListener(DiscordBridge::onMessageCreateEvent);
- if (adminChannelFuture.isPresent()) {
- ADMIN_CHANNEL.addMessageCreateListener(DiscordBridge::onMessageCreateEvent);
- }
- } catch (Exception e) {
- Log.warning(
- "Uh oh! It looks like TFM 4.3 Reloaded Discord couldn't start! Please check you have defined the bot's token & channel and also given it the correct permissions! (Read Messages and Send Messages)");
- Log.warning("If you've already set that up however, you may to read the exception below.");
- Log.warning(
- "If this is a bug with TFM 4.3 Reloaded, please report it at https://github.com/TheDeus-Group/TFM-4.3-Reloaded/issues or https://code.cat.casa/TheDeus-Group/TFM-4.3-Reloaded/issues");
- e.printStackTrace();
- return;
- }
+ CHANNEL.addMessageCreateListener(DiscordBridge::onMessageCreateEvent);
+ if (adminChannelFuture.isPresent()) {
+ ADMIN_CHANNEL.addMessageCreateListener(DiscordBridge::onMessageCreateEvent);
+ }
+ } catch (Exception e) {
+ Log.warning(
+ "Uh oh! It looks like TFM 4.3 Reloaded Discord couldn't start! Please check you have defined the bot's token & channel and also given it the correct permissions! (Read Messages and Send Messages)");
+ Log.warning(
+ "If you've already set that up however, you may to read the exception below.");
+ Log.warning(
+ "If this is a bug with TFM 4.3 Reloaded, please report it at https://github.com/TheDeus-Group/TFM-4.3-Reloaded/issues or https://code.cat.casa/TheDeus-Group/TFM-4.3-Reloaded/issues");
+ e.printStackTrace();
+ return;
+ }
- Log.info("TFM 4.3 Reloaded Discord started.");
+ Log.info("TFM 4.3 Reloaded Discord started.");
- transmitMessage("**Server has started**");
- }
+ transmitMessage("**Server has started**");
+ }
- public static String sanitizeMessage(String message) {
- Pattern colors = Pattern.compile("§.", Pattern.MULTILINE | Pattern.CASE_INSENSITIVE);
- Pattern pings = Pattern.compile("@", Pattern.MULTILINE | Pattern.CASE_INSENSITIVE);
+ public static String sanitizeMessage(String message) {
+ Pattern colors = Pattern.compile("§.", Pattern.MULTILINE | Pattern.CASE_INSENSITIVE);
+ Pattern pings = Pattern.compile("@", Pattern.MULTILINE | Pattern.CASE_INSENSITIVE);
- if (message.length() > 2000) {
- message = message.substring(0, 2000);
- }
+ if (message.length() > 2000) {
+ message = message.substring(0, 2000);
+ }
- return message.replaceAll(colors.pattern(), "").replaceAll(pings.pattern(), "@\u200B");
- }
+ return message.replaceAll(colors.pattern(), "").replaceAll(pings.pattern(), "@\u200B");
+ }
- public static void transmitMessage(String message) {
- transmitMessage(message, false);
- }
+ public static void transmitMessage(String message) {
+ transmitMessage(message, false);
+ }
- public static void transmitMessage(String message, boolean disconnectAfterwards) {
- if (CHANNEL == null) {
- return;
- }
- if (!disconnectAfterwards) {
- CHANNEL.sendMessage(sanitizeMessage(message));
- } else {
- try {
- CHANNEL.sendMessage(sanitizeMessage(message)).get();
- } catch (Exception ignored) {
- }
- CountDownLatch shutdownWaiter = new CountDownLatch(1);
+ public static void transmitMessage(String message, boolean disconnectAfterwards) {
+ if (CHANNEL == null) {
+ return;
+ }
+ if (!disconnectAfterwards) {
+ CHANNEL.sendMessage(sanitizeMessage(message));
+ } else {
+ try {
+ CHANNEL.sendMessage(sanitizeMessage(message)).get();
+ } catch (Exception ignored) {
+ }
+ CountDownLatch shutdownWaiter = new CountDownLatch(1);
- Thread t = new Thread(() -> {
- DISCORD_API.addLostConnectionListener(lostConnectionEvent -> shutdownWaiter.countDown());
- DISCORD_API.disconnect();
+ Thread t = new Thread(() -> {
+ DISCORD_API.addLostConnectionListener(
+ lostConnectionEvent -> shutdownWaiter.countDown());
+ DISCORD_API.disconnect();
- try {
- shutdownWaiter.await(30, TimeUnit.SECONDS);
- } catch (InterruptedException ignored) {
- }
- });
- t.start();
- }
- }
+ try {
+ shutdownWaiter.await(30, TimeUnit.SECONDS);
+ } catch (InterruptedException ignored) {
+ }
+ });
+ t.start();
+ }
+ }
- public static void transmitAdminMessage(String message) {
- transmitAdminMessage(message, false);
- }
+ public static void transmitAdminMessage(String message) {
+ transmitAdminMessage(message, false);
+ }
- public static void transmitAdminMessage(String message, boolean disconnectAfterwards) {
- if (ADMIN_CHANNEL == null) {
- return;
- }
- if (!disconnectAfterwards) {
- ADMIN_CHANNEL.sendMessage(sanitizeMessage(message));
- } else {
- try {
- ADMIN_CHANNEL.sendMessage(sanitizeMessage(message)).get();
- } catch (Exception ignored) {
- }
- DISCORD_API.disconnect();
- }
- }
+ public static void transmitAdminMessage(String message, boolean disconnectAfterwards) {
+ if (ADMIN_CHANNEL == null) {
+ return;
+ }
+ if (!disconnectAfterwards) {
+ ADMIN_CHANNEL.sendMessage(sanitizeMessage(message));
+ } else {
+ try {
+ ADMIN_CHANNEL.sendMessage(sanitizeMessage(message)).get();
+ } catch (Exception ignored) {
+ }
+ DISCORD_API.disconnect();
+ }
+ }
- public static void stop() {
+ public static void stop() {
- if (Boolean.FALSE.equals(MainConfig.getBoolean(ConfigurationEntry.DISCORD_IS_ENABLED))) {
- return;
- }
+ if (Boolean.FALSE.equals(MainConfig.getBoolean(ConfigurationEntry.DISCORD_IS_ENABLED))) {
+ return;
+ }
- transmitMessage("**Server has stopped**", true);
+ transmitMessage("**Server has stopped**", true);
- Log.info("TFM 4.3 Reloaded Discord stopped.");
- }
+ Log.info("TFM 4.3 Reloaded Discord stopped.");
+ }
- public static String fullySanitizeDiscordMessage(String message) {
- String partiallySanitized = sanitizeMessage(message);
- return partiallySanitized.replaceAll("([`_~*|\\\\])", "\\\\$1");
- }
+ public static String fullySanitizeDiscordMessage(String message) {
+ String partiallySanitized = sanitizeMessage(message);
+ return partiallySanitized.replaceAll("([`_~*|\\\\])", "\\\\$1");
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/discord/command/DiscordCommand.java b/src/main/java/me/StevenLawson/TotalFreedomMod/discord/command/DiscordCommand.java
index 8f8d4d6..bacde97 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/discord/command/DiscordCommand.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/discord/command/DiscordCommand.java
@@ -1,26 +1,28 @@
package me.StevenLawson.TotalFreedomMod.discord.command;
+import java.util.List;
import org.javacord.api.entity.message.MessageBuilder;
import org.javacord.api.entity.server.Server;
import org.javacord.api.entity.user.User;
-import java.util.List;
-
public interface DiscordCommand {
- /**
- * Can the user execute the command?
- * @param user The user who is attempting execution
- * @param server Where the user is attempting execution from
- * @return If it can be executed
- */
- boolean canExecute(User user, Server server);
- /**
- * Execute the command, and return the results
- * @param user The user who executed the command
- * @param args The arguments they executed it with
- * @param guild
- * @return The results as a MessageBuilder
- */
- MessageBuilder execute(User user, List args, Server guild);
+ /**
+ * Can the user execute the command?
+ *
+ * @param user The user who is attempting execution
+ * @param server Where the user is attempting execution from
+ * @return If it can be executed
+ */
+ boolean canExecute(User user, Server server);
+
+ /**
+ * Execute the command, and return the results
+ *
+ * @param user The user who executed the command
+ * @param args The arguments they executed it with
+ * @param guild
+ * @return The results as a MessageBuilder
+ */
+ MessageBuilder execute(User user, List args, Server guild);
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/discord/command/DiscordCommandManager.java b/src/main/java/me/StevenLawson/TotalFreedomMod/discord/command/DiscordCommandManager.java
index 4a29574..6f50f26 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/discord/command/DiscordCommandManager.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/discord/command/DiscordCommandManager.java
@@ -1,49 +1,61 @@
package me.StevenLawson.TotalFreedomMod.discord.command;
-import me.StevenLawson.TotalFreedomMod.discord.commands.*;
+import java.awt.Color;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import me.StevenLawson.TotalFreedomMod.discord.commands.AdminConsoleCommand;
+import me.StevenLawson.TotalFreedomMod.discord.commands.HelpCommand;
+import me.StevenLawson.TotalFreedomMod.discord.commands.ListCommand;
+import me.StevenLawson.TotalFreedomMod.discord.commands.TPSCommand;
+import me.StevenLawson.TotalFreedomMod.discord.commands.UptimeCommand;
import org.javacord.api.entity.channel.TextChannel;
import org.javacord.api.entity.message.MessageBuilder;
import org.javacord.api.entity.message.embed.EmbedBuilder;
import org.javacord.api.entity.server.Server;
import org.javacord.api.entity.user.User;
-import java.awt.*;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
public class DiscordCommandManager {
- public List commands = new ArrayList<>();
- public void init() {
- // Server Commands
- commands.add(new ListCommand("list", "Gives a list of online players.", "Server Commands", Collections.singletonList("l"), false));
- commands.add(new TPSCommand("tps", "Lag information regarding the server.", "Server Commands", false));
- commands.add(new AdminConsoleCommand("adminconsole", "Execute admin commands from discord.", "Server Commands", Collections.singletonList("ac"),true));
- commands.add(new UptimeCommand("uptime", "Returns the uptime of the VPS.", "Server Commands", false));
+ public List commands = new ArrayList<>();
- // Help
- commands.add(new HelpCommand("help", "Displays the help command", "Help", false));
- }
+ public void init() {
+ // Server Commands
+ commands.add(new ListCommand("list", "Gives a list of online players.", "Server Commands",
+ Collections.singletonList("l"), false));
+ commands.add(
+ new TPSCommand("tps", "Lag information regarding the server.", "Server Commands",
+ false));
+ commands.add(new AdminConsoleCommand("adminconsole", "Execute admin commands from discord.",
+ "Server Commands", Collections.singletonList("ac"), true));
+ commands.add(
+ new UptimeCommand("uptime", "Returns the uptime of the VPS.", "Server Commands",
+ false));
- public void parse(String content, User user, Server server, TextChannel channel, String prefix) {
- List args = new ArrayList<>(Arrays.asList(content.split(" ")));
- String commandOrAlias = args.remove(0).split(prefix)[1];
+ // Help
+ commands.add(new HelpCommand("help", "Displays the help command", "Help", false));
+ }
- for (ExecutableDiscordCommand command : commands) {
- if(command.command.equalsIgnoreCase(commandOrAlias) || command.aliases.contains(commandOrAlias.toLowerCase())) {
- if(command.canExecute(user, server)) {
- MessageBuilder messageBuilder = command.execute(user, args, server);
- messageBuilder.send(channel);
- } else {
- EmbedBuilder errorEmbed = new EmbedBuilder();
- errorEmbed.setTitle("Command error");
- errorEmbed.setColor(Color.RED);
- errorEmbed.setDescription("You don't have permission to execute this command.");
- channel.sendMessage(errorEmbed);
- }
- }
- }
- }
+ public void parse(String content, User user, Server server, TextChannel channel,
+ String prefix) {
+ List args = new ArrayList<>(Arrays.asList(content.split(" ")));
+ String commandOrAlias = args.remove(0).split(prefix)[1];
+
+ for (ExecutableDiscordCommand command : commands) {
+ if (command.command.equalsIgnoreCase(commandOrAlias) || command.aliases.contains(
+ commandOrAlias.toLowerCase())) {
+ if (command.canExecute(user, server)) {
+ MessageBuilder messageBuilder = command.execute(user, args, server);
+ messageBuilder.send(channel);
+ } else {
+ EmbedBuilder errorEmbed = new EmbedBuilder();
+ errorEmbed.setTitle("Command error");
+ errorEmbed.setColor(Color.RED);
+ errorEmbed.setDescription("You don't have permission to execute this command.");
+ channel.sendMessage(errorEmbed);
+ }
+ }
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/discord/command/ExecutableDiscordCommand.java b/src/main/java/me/StevenLawson/TotalFreedomMod/discord/command/ExecutableDiscordCommand.java
index b428edf..812fe28 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/discord/command/ExecutableDiscordCommand.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/discord/command/ExecutableDiscordCommand.java
@@ -1,69 +1,73 @@
package me.StevenLawson.TotalFreedomMod.discord.command;
import com.google.common.collect.ImmutableList;
+import java.util.ArrayList;
+import java.util.List;
import org.javacord.api.entity.message.MessageBuilder;
import org.javacord.api.entity.permission.Role;
import org.javacord.api.entity.server.Server;
import org.javacord.api.entity.user.User;
-import java.util.ArrayList;
-import java.util.List;
-
public class ExecutableDiscordCommand implements DiscordCommand {
- public String command;
- public String description;
- public String category;
- public List aliases;
- //TODO: Add support for more complex permissions
- public boolean isAdmin;
- /**
- * Creates a command
- * @param command The string the command is execute by, e.g. list
- * @param description What the command does
- * @param category The category of the command
- * @param aliases Other strings that should execute the command
- * @param isAdmin If the command should only be accessible by administrators
- */
- public ExecutableDiscordCommand(String command, String description, String category, List aliases, boolean isAdmin) {
- this.command = command;
- this.description = description;
- this.category = category;
- this.aliases = ImmutableList.copyOf(aliases);
- this.isAdmin = isAdmin;
- }
+ public String command;
+ public String description;
+ public String category;
+ public List aliases;
+ //TODO: Add support for more complex permissions
+ public boolean isAdmin;
+
+ /**
+ * Creates a command
+ *
+ * @param command The string the command is execute by, e.g. list
+ * @param description What the command does
+ * @param category The category of the command
+ * @param aliases Other strings that should execute the command
+ * @param isAdmin If the command should only be accessible by administrators
+ */
+ public ExecutableDiscordCommand(String command, String description, String category,
+ List aliases, boolean isAdmin) {
+ this.command = command;
+ this.description = description;
+ this.category = category;
+ this.aliases = ImmutableList.copyOf(aliases);
+ this.isAdmin = isAdmin;
+ }
- /**
- * Creates a command
- * @param command The string the command is execute by, e.g. list
- * @param description What the command does
- * @param category The category of the command
- * @param isAdmin If the command should only be accessible by administrators
- */
- public ExecutableDiscordCommand(String command, String description, String category, boolean isAdmin) {
- this.command = command;
- this.description = description;
- this.category = category;
- this.aliases = ImmutableList.copyOf(new ArrayList<>());
- this.isAdmin = isAdmin;
- }
+ /**
+ * Creates a command
+ *
+ * @param command The string the command is execute by, e.g. list
+ * @param description What the command does
+ * @param category The category of the command
+ * @param isAdmin If the command should only be accessible by administrators
+ */
+ public ExecutableDiscordCommand(String command, String description, String category,
+ boolean isAdmin) {
+ this.command = command;
+ this.description = description;
+ this.category = category;
+ this.aliases = ImmutableList.copyOf(new ArrayList<>());
+ this.isAdmin = isAdmin;
+ }
- public boolean canExecute(User user, Server server) {
- if(this.isAdmin) {
- for (Role role : user.getRoles(server)) {
- if(role.getName().toLowerCase().contains("admin")) {
- return true;
- }
- }
+ public boolean canExecute(User user, Server server) {
+ if (this.isAdmin) {
+ for (Role role : user.getRoles(server)) {
+ if (role.getName().toLowerCase().contains("admin")) {
+ return true;
+ }
+ }
- return false;
- }
+ return false;
+ }
- return true;
- }
+ return true;
+ }
- public MessageBuilder execute(User user, List args, Server guild) {
- return new MessageBuilder().setContent("");
- }
+ public MessageBuilder execute(User user, List args, Server guild) {
+ return new MessageBuilder().setContent("");
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/discord/commands/AdminConsoleCommand.java b/src/main/java/me/StevenLawson/TotalFreedomMod/discord/commands/AdminConsoleCommand.java
index e2867d3..015897a 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/discord/commands/AdminConsoleCommand.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/discord/commands/AdminConsoleCommand.java
@@ -1,5 +1,7 @@
package me.StevenLawson.TotalFreedomMod.discord.commands;
+import java.awt.Color;
+import java.util.List;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import me.StevenLawson.TotalFreedomMod.discord.command.ExecutableDiscordCommand;
import me.StevenLawson.TotalFreedomMod.discord.sender.DiscordCommandSender;
@@ -10,34 +12,36 @@ import org.javacord.api.entity.message.embed.EmbedBuilder;
import org.javacord.api.entity.server.Server;
import org.javacord.api.entity.user.User;
-import java.awt.*;
-import java.util.List;
-
public class AdminConsoleCommand extends ExecutableDiscordCommand {
- private final EmbedBuilder success = new EmbedBuilder().setTitle("Success").setColor(Color.GREEN).setDescription("Command sent.");
- private final EmbedBuilder error = new EmbedBuilder().setTitle("Command error").setColor(Color.RED).setDescription("An error occured. Check your DMs for more info.");
- public AdminConsoleCommand(String command, String description, String category, List aliases, boolean isAdmin) {
- super(command, description, category, aliases, isAdmin);
- }
+ private final EmbedBuilder success = new EmbedBuilder().setTitle("Success")
+ .setColor(Color.GREEN).setDescription("Command sent.");
+ private final EmbedBuilder error = new EmbedBuilder().setTitle("Command error")
+ .setColor(Color.RED).setDescription("An error occured. Check your DMs for more info.");
- @Override
- public MessageBuilder execute(User user, List args, Server guild) {
- try {
- new BukkitRunnable() {
+ public AdminConsoleCommand(String command, String description, String category,
+ List aliases, boolean isAdmin) {
+ super(command, description, category, aliases, isAdmin);
+ }
- @Override
- public void run() {
- DiscordCommandSender discordCommandSender = new DiscordCommandSender(user, guild);
- String command = String.join(" ", args);
- Bukkit.dispatchCommand(discordCommandSender, command);
- }
- }.runTask(TotalFreedomMod.plugin);
+ @Override
+ public MessageBuilder execute(User user, List args, Server guild) {
+ try {
+ new BukkitRunnable() {
- return new MessageBuilder().addEmbed(success);
- } catch (Exception e) {
- user.sendMessage(String.valueOf(e));
- return new MessageBuilder().addEmbed(error);
- }
- }
+ @Override
+ public void run() {
+ DiscordCommandSender discordCommandSender = new DiscordCommandSender(user,
+ guild);
+ String command = String.join(" ", args);
+ Bukkit.dispatchCommand(discordCommandSender, command);
+ }
+ }.runTask(TotalFreedomMod.plugin);
+
+ return new MessageBuilder().addEmbed(success);
+ } catch (Exception e) {
+ user.sendMessage(String.valueOf(e));
+ return new MessageBuilder().addEmbed(error);
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/discord/commands/HelpCommand.java b/src/main/java/me/StevenLawson/TotalFreedomMod/discord/commands/HelpCommand.java
index 71fca60..b00a32f 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/discord/commands/HelpCommand.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/discord/commands/HelpCommand.java
@@ -1,5 +1,11 @@
package me.StevenLawson.TotalFreedomMod.discord.commands;
+import java.awt.Color;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
import me.StevenLawson.TotalFreedomMod.config.MainConfig;
import me.StevenLawson.TotalFreedomMod.discord.bridge.DiscordBridge;
@@ -9,43 +15,43 @@ import org.javacord.api.entity.message.embed.EmbedBuilder;
import org.javacord.api.entity.server.Server;
import org.javacord.api.entity.user.User;
-import java.awt.*;
-import java.util.*;
-import java.util.List;
-
public class HelpCommand extends ExecutableDiscordCommand {
- public HelpCommand(String command, String description, String category, boolean isAdmin) {
- super(command, description, category, isAdmin);
- }
- @Override
- public MessageBuilder execute(User user, List args, Server guild) {
- EmbedBuilder embedBuilder = new EmbedBuilder();
- embedBuilder.setColor(Color.GREEN);
- embedBuilder.setTitle("Help Command");
- Map> categories = new HashMap<>();
+ public HelpCommand(String command, String description, String category, boolean isAdmin) {
+ super(command, description, category, isAdmin);
+ }
- for (ExecutableDiscordCommand command : DiscordBridge.COMMAND_MANAGER.commands) {
- if(!categories.containsKey(command.category)) {
- categories.put(command.category, new ArrayList<>(Collections.singletonList(command)));
- } else {
- List commands = categories.get(command.category);
- commands.add(command);
- categories.put(command.category, commands);
- }
- }
+ @Override
+ public MessageBuilder execute(User user, List args, Server guild) {
+ EmbedBuilder embedBuilder = new EmbedBuilder();
+ embedBuilder.setColor(Color.GREEN);
+ embedBuilder.setTitle("Help Command");
+ Map> categories = new HashMap<>();
- for (String category : categories.keySet()) {
- List commands = categories.get(category);
- StringBuilder value = new StringBuilder();
+ for (ExecutableDiscordCommand command : DiscordBridge.COMMAND_MANAGER.commands) {
+ if (!categories.containsKey(command.category)) {
+ categories.put(command.category,
+ new ArrayList<>(Collections.singletonList(command)));
+ } else {
+ List commands = categories.get(command.category);
+ commands.add(command);
+ categories.put(command.category, commands);
+ }
+ }
- for (ExecutableDiscordCommand command : commands) {
- value.append(String.format("**%s%s** - %s%n", MainConfig.getString(ConfigurationEntry.DISCORD_PREFIX), command.command, command.description));
- }
+ for (String category : categories.keySet()) {
+ List commands = categories.get(category);
+ StringBuilder value = new StringBuilder();
- embedBuilder.addField(category, value.toString().trim(), false);
- }
+ for (ExecutableDiscordCommand command : commands) {
+ value.append(String.format("**%s%s** - %s%n",
+ MainConfig.getString(ConfigurationEntry.DISCORD_PREFIX), command.command,
+ command.description));
+ }
- return new MessageBuilder().addEmbeds(embedBuilder);
- }
+ embedBuilder.addField(category, value.toString().trim(), false);
+ }
+
+ return new MessageBuilder().addEmbeds(embedBuilder);
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/discord/commands/ListCommand.java b/src/main/java/me/StevenLawson/TotalFreedomMod/discord/commands/ListCommand.java
index 1b5efb9..24b5556 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/discord/commands/ListCommand.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/discord/commands/ListCommand.java
@@ -39,20 +39,20 @@ public class ListCommand extends ExecutableDiscordCommand {
player.getDisplayName());
if (essentialsUser != null) {
- if (essentialsUser.isVanished()) {
- continue;
- }
+ if (essentialsUser.isVanished()) {
+ continue;
+ }
}
- if (VanishManager.isVanished(player)) {
- continue;
- }
+ if (VanishManager.isVanished(player)) {
+ continue;
+ }
PlayerRank rank = PlayerRank.fromSender(player);
- if (!inGameRanks.contains(rank)) {
- inGameRanks.add(rank);
- }
+ if (!inGameRanks.contains(rank)) {
+ inGameRanks.add(rank);
+ }
}
Collections.sort(inGameRanks);
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/discord/commands/TPSCommand.java b/src/main/java/me/StevenLawson/TotalFreedomMod/discord/commands/TPSCommand.java
index 31b0694..91223ec 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/discord/commands/TPSCommand.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/discord/commands/TPSCommand.java
@@ -1,27 +1,29 @@
package me.StevenLawson.TotalFreedomMod.discord.commands;
+import java.util.List;
import me.StevenLawson.TotalFreedomMod.Server;
import me.StevenLawson.TotalFreedomMod.discord.command.ExecutableDiscordCommand;
import org.javacord.api.entity.message.MessageBuilder;
import org.javacord.api.entity.message.embed.EmbedBuilder;
import org.javacord.api.entity.user.User;
-import java.util.List;
-
public class TPSCommand extends ExecutableDiscordCommand {
- public TPSCommand(String command, String description, String category, boolean isAdmin) {
- super(command, description, category, isAdmin);
- }
- @Override
- public MessageBuilder execute(User user, List args, org.javacord.api.entity.server.Server guild) {
- EmbedBuilder builder = new EmbedBuilder();
- builder.setTitle("Server lag information");
- builder.addField("TPS", String.valueOf(Math.round(Server.getTPS())));
- builder.addField("Uptime", Server.getUptime());
- builder.addField("Maximum Memory", String.format("%s MB", Math.ceil(Server.getMaxMem())));
- builder.addField("Allocated Memory", String.format("%s MB", Math.floor(Server.getTotalMem())));
- builder.addField("Free Memory", String.format("%s MB", Math.ceil(Server.getFreeMem())));
- return new MessageBuilder().addEmbed(builder);
- }
+ public TPSCommand(String command, String description, String category, boolean isAdmin) {
+ super(command, description, category, isAdmin);
+ }
+
+ @Override
+ public MessageBuilder execute(User user, List args,
+ org.javacord.api.entity.server.Server guild) {
+ EmbedBuilder builder = new EmbedBuilder();
+ builder.setTitle("Server lag information");
+ builder.addField("TPS", String.valueOf(Math.round(Server.getTPS())));
+ builder.addField("Uptime", Server.getUptime());
+ builder.addField("Maximum Memory", String.format("%s MB", Math.ceil(Server.getMaxMem())));
+ builder.addField("Allocated Memory",
+ String.format("%s MB", Math.floor(Server.getTotalMem())));
+ builder.addField("Free Memory", String.format("%s MB", Math.ceil(Server.getFreeMem())));
+ return new MessageBuilder().addEmbed(builder);
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/discord/commands/UptimeCommand.java b/src/main/java/me/StevenLawson/TotalFreedomMod/discord/commands/UptimeCommand.java
index d25e4b3..7adb095 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/discord/commands/UptimeCommand.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/discord/commands/UptimeCommand.java
@@ -1,5 +1,9 @@
package me.StevenLawson.TotalFreedomMod.discord.commands;
+import java.awt.Color;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.util.List;
import me.StevenLawson.TotalFreedomMod.discord.command.ExecutableDiscordCommand;
import me.StevenLawson.TotalFreedomMod.exception.PenisException;
import org.javacord.api.entity.message.MessageBuilder;
@@ -7,38 +11,34 @@ import org.javacord.api.entity.message.embed.EmbedBuilder;
import org.javacord.api.entity.server.Server;
import org.javacord.api.entity.user.User;
-import java.awt.*;
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.util.List;
-
public class UptimeCommand extends ExecutableDiscordCommand {
- public UptimeCommand(String command, String description, String category, boolean isAdmin) {
- super(command, description, category, isAdmin);
- }
- @Override
- public MessageBuilder execute(User user, List args, Server guild) {
- EmbedBuilder builder = new EmbedBuilder();
- try {
- builder.setTitle("VPS Uptime Information")
- .setDescription(getSystemUptime());
- } catch (Exception e) {
- builder.setTitle("Command error")
- .setColor(Color.RED)
- .setDescription("Something went wrong");
- }
- return new MessageBuilder().addEmbed(builder);
- }
+ public UptimeCommand(String command, String description, String category, boolean isAdmin) {
+ super(command, description, category, isAdmin);
+ }
- private String getSystemUptime() throws Exception {
- Process uptimeProc = Runtime.getRuntime().exec("uptime");
- BufferedReader in = new BufferedReader(new InputStreamReader(uptimeProc.getInputStream()));
- String line = in.readLine();
- if (line != null) {
- return line;
- } else {
- throw new PenisException();
- }
- }
+ @Override
+ public MessageBuilder execute(User user, List args, Server guild) {
+ EmbedBuilder builder = new EmbedBuilder();
+ try {
+ builder.setTitle("VPS Uptime Information")
+ .setDescription(getSystemUptime());
+ } catch (Exception e) {
+ builder.setTitle("Command error")
+ .setColor(Color.RED)
+ .setDescription("Something went wrong");
+ }
+ return new MessageBuilder().addEmbed(builder);
+ }
+
+ private String getSystemUptime() throws Exception {
+ Process uptimeProc = Runtime.getRuntime().exec("uptime");
+ BufferedReader in = new BufferedReader(new InputStreamReader(uptimeProc.getInputStream()));
+ String line = in.readLine();
+ if (line != null) {
+ return line;
+ } else {
+ throw new PenisException();
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/discord/sender/DiscordCommandSender.java b/src/main/java/me/StevenLawson/TotalFreedomMod/discord/sender/DiscordCommandSender.java
index 24fa839..31d22ca 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/discord/sender/DiscordCommandSender.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/discord/sender/DiscordCommandSender.java
@@ -1,5 +1,6 @@
package me.StevenLawson.TotalFreedomMod.discord.sender;
+import java.util.Set;
import me.StevenLawson.TotalFreedomMod.discord.bridge.DiscordBridge;
import org.bukkit.Bukkit;
import org.bukkit.Server;
@@ -11,108 +12,107 @@ import org.bukkit.permissions.PermissionAttachmentInfo;
import org.bukkit.plugin.Plugin;
import org.javacord.api.entity.user.User;
-import java.util.Set;
-
public class DiscordCommandSender implements CommandSender {
- private final User user;
- private final org.javacord.api.entity.server.Server server;
- protected final PermissibleBase perm;
- public DiscordCommandSender(User user, org.javacord.api.entity.server.Server server) {
- this.user = user;
- this.server = server;
- this.perm = new PermissibleBase(this);
- }
+ protected final PermissibleBase perm;
+ private final User user;
+ private final org.javacord.api.entity.server.Server server;
- @Override
- public void sendMessage(String s) {
- user.sendMessage(DiscordBridge.sanitizeMessage(s));
- }
+ public DiscordCommandSender(User user, org.javacord.api.entity.server.Server server) {
+ this.user = user;
+ this.server = server;
+ this.perm = new PermissibleBase(this);
+ }
- @Override
- public void sendMessage(String[] strings) {
- user.sendMessage(DiscordBridge.sanitizeMessage(String.join("\n", strings)));
- }
+ @Override
+ public void sendMessage(String s) {
+ user.sendMessage(DiscordBridge.sanitizeMessage(s));
+ }
- @Override
- public Server getServer() {
- return Bukkit.getServer();
- }
+ @Override
+ public void sendMessage(String[] strings) {
+ user.sendMessage(DiscordBridge.sanitizeMessage(String.join("\n", strings)));
+ }
- @Override
- public String getName() {
- return user.getDiscriminatedName();
- }
+ @Override
+ public Server getServer() {
+ return Bukkit.getServer();
+ }
- @Override
- public boolean isPermissionSet(String s) {
- return this.perm.isPermissionSet(s);
- }
+ @Override
+ public String getName() {
+ return user.getDiscriminatedName();
+ }
- @Override
- public boolean isPermissionSet(Permission permission) {
- return this.perm.isPermissionSet(permission);
- }
+ @Override
+ public boolean isPermissionSet(String s) {
+ return this.perm.isPermissionSet(s);
+ }
- @Override
- public boolean hasPermission(String s) {
- return this.perm.hasPermission(s);
- }
+ @Override
+ public boolean isPermissionSet(Permission permission) {
+ return this.perm.isPermissionSet(permission);
+ }
- @Override
- public boolean hasPermission(Permission permission) {
- return this.perm.hasPermission(permission);
- }
+ @Override
+ public boolean hasPermission(String s) {
+ return this.perm.hasPermission(s);
+ }
- @Override
- public PermissionAttachment addAttachment(Plugin plugin, String s, boolean b) {
- return this.perm.addAttachment(plugin, s, b);
- }
+ @Override
+ public boolean hasPermission(Permission permission) {
+ return this.perm.hasPermission(permission);
+ }
- @Override
- public PermissionAttachment addAttachment(Plugin plugin) {
- return this.perm.addAttachment(plugin);
- }
+ @Override
+ public PermissionAttachment addAttachment(Plugin plugin, String s, boolean b) {
+ return this.perm.addAttachment(plugin, s, b);
+ }
- @Override
- public PermissionAttachment addAttachment(Plugin plugin, String s, boolean b, int i) {
- return this.perm.addAttachment(plugin, s, b, i);
- }
+ @Override
+ public PermissionAttachment addAttachment(Plugin plugin) {
+ return this.perm.addAttachment(plugin);
+ }
- @Override
- public PermissionAttachment addAttachment(Plugin plugin, int i) {
- return this.perm.addAttachment(plugin, i);
- }
+ @Override
+ public PermissionAttachment addAttachment(Plugin plugin, String s, boolean b, int i) {
+ return this.perm.addAttachment(plugin, s, b, i);
+ }
- @Override
- public void removeAttachment(PermissionAttachment permissionAttachment) {
- this.perm.removeAttachment(permissionAttachment);
- }
+ @Override
+ public PermissionAttachment addAttachment(Plugin plugin, int i) {
+ return this.perm.addAttachment(plugin, i);
+ }
- @Override
- public void recalculatePermissions() {
- this.perm.recalculatePermissions();
- }
+ @Override
+ public void removeAttachment(PermissionAttachment permissionAttachment) {
+ this.perm.removeAttachment(permissionAttachment);
+ }
- @Override
- public Set getEffectivePermissions() {
- return this.perm.getEffectivePermissions();
- }
+ @Override
+ public void recalculatePermissions() {
+ this.perm.recalculatePermissions();
+ }
- @Override
- public boolean isOp() {
- return true;
- }
+ @Override
+ public Set getEffectivePermissions() {
+ return this.perm.getEffectivePermissions();
+ }
- @Override
- public void setOp(boolean b) {
- }
+ @Override
+ public boolean isOp() {
+ return true;
+ }
- public User getUser() {
- return user;
- }
+ @Override
+ public void setOp(boolean b) {
+ }
- public org.javacord.api.entity.server.Server getDiscordServer() {
- return server;
- }
+ public User getUser() {
+ return user;
+ }
+
+ public org.javacord.api.entity.server.Server getDiscordServer() {
+ return server;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/exception/PenisException.java b/src/main/java/me/StevenLawson/TotalFreedomMod/exception/PenisException.java
index a53b061..5013f25 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/exception/PenisException.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/exception/PenisException.java
@@ -1,11 +1,12 @@
package me.StevenLawson.TotalFreedomMod.exception;
public class PenisException extends Exception {
- public PenisException() {
- }
+ public PenisException() {
- public PenisException(String name) {
- super(name);
- }
+ }
+
+ public PenisException(String name) {
+ super(name);
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/fun/JumpPads.java b/src/main/java/me/StevenLawson/TotalFreedomMod/fun/JumpPads.java
index 2146d10..857bb59 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/fun/JumpPads.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/fun/JumpPads.java
@@ -8,126 +8,101 @@ import org.bukkit.entity.Player;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.util.Vector;
-public class JumpPads
-{
- public static final Material BLOCK_ID;
- public static final double DAMPING_COEFFICIENT;
- public static final Map PUSH_MAP;
- private static JumpPadMode mode;
- private static double strength;
+public class JumpPads {
- static
- {
- BLOCK_ID = Material.WOOL;
- DAMPING_COEFFICIENT = 0.8;
- PUSH_MAP = new HashMap();
- mode = JumpPadMode.MADGEEK;
- strength = 0.4;
- }
+ public static final Material BLOCK_ID;
+ public static final double DAMPING_COEFFICIENT;
+ public static final Map PUSH_MAP;
+ private static JumpPadMode mode;
+ private static double strength;
- public static void PlayerMoveEvent(PlayerMoveEvent event)
- {
- if (mode == JumpPadMode.OFF)
- {
- return;
- }
+ static {
+ BLOCK_ID = Material.WOOL;
+ DAMPING_COEFFICIENT = 0.8;
+ PUSH_MAP = new HashMap();
+ mode = JumpPadMode.MADGEEK;
+ strength = 0.4;
+ }
- final Player player = event.getPlayer();
- final Block block = event.getTo().getBlock();
- final Vector velocity = player.getVelocity().clone();
+ public static void PlayerMoveEvent(PlayerMoveEvent event) {
+ if (mode == JumpPadMode.OFF) {
+ return;
+ }
- if (mode == JumpPadMode.MADGEEK)
- {
- Boolean canPush = PUSH_MAP.get(player);
- if (canPush == null)
- {
- canPush = true;
- }
- if (block.getRelative(0, -1, 0).getType() == BLOCK_ID)
- {
- if (canPush)
- {
- velocity.multiply(strength + 0.85).multiply(-1.0);
- }
- canPush = false;
- }
- else
- {
- canPush = true;
- }
- PUSH_MAP.put(player, canPush);
- }
- else
- {
- if (block.getRelative(0, -1, 0).getType() == BLOCK_ID)
- {
- velocity.add(new Vector(0.0, strength, 0.0));
- }
+ final Player player = event.getPlayer();
+ final Block block = event.getTo().getBlock();
+ final Vector velocity = player.getVelocity().clone();
- if (mode == JumpPadMode.NORMAL_AND_SIDEWAYS)
- {
- if (block.getRelative(1, 0, 0).getType() == BLOCK_ID)
- {
- velocity.add(new Vector(-DAMPING_COEFFICIENT * strength, 0.0, 0.0));
- }
+ if (mode == JumpPadMode.MADGEEK) {
+ Boolean canPush = PUSH_MAP.get(player);
+ if (canPush == null) {
+ canPush = true;
+ }
+ if (block.getRelative(0, -1, 0).getType() == BLOCK_ID) {
+ if (canPush) {
+ velocity.multiply(strength + 0.85).multiply(-1.0);
+ }
+ canPush = false;
+ } else {
+ canPush = true;
+ }
+ PUSH_MAP.put(player, canPush);
+ } else {
+ if (block.getRelative(0, -1, 0).getType() == BLOCK_ID) {
+ velocity.add(new Vector(0.0, strength, 0.0));
+ }
- if (block.getRelative(-1, 0, 0).getType() == BLOCK_ID)
- {
- velocity.add(new Vector(DAMPING_COEFFICIENT * strength, 0.0, 0.0));
- }
+ if (mode == JumpPadMode.NORMAL_AND_SIDEWAYS) {
+ if (block.getRelative(1, 0, 0).getType() == BLOCK_ID) {
+ velocity.add(new Vector(-DAMPING_COEFFICIENT * strength, 0.0, 0.0));
+ }
- if (block.getRelative(0, 0, 1).getType() == BLOCK_ID)
- {
- velocity.add(new Vector(0.0, 0.0, -DAMPING_COEFFICIENT * strength));
- }
+ if (block.getRelative(-1, 0, 0).getType() == BLOCK_ID) {
+ velocity.add(new Vector(DAMPING_COEFFICIENT * strength, 0.0, 0.0));
+ }
- if (block.getRelative(0, 0, -1).getType() == BLOCK_ID)
- {
- velocity.add(new Vector(0.0, 0.0, DAMPING_COEFFICIENT * strength));
- }
- }
- }
+ if (block.getRelative(0, 0, 1).getType() == BLOCK_ID) {
+ velocity.add(new Vector(0.0, 0.0, -DAMPING_COEFFICIENT * strength));
+ }
- if (!player.getVelocity().equals(velocity))
- {
- player.setFallDistance(0.0f);
- player.setVelocity(velocity);
- }
- }
+ if (block.getRelative(0, 0, -1).getType() == BLOCK_ID) {
+ velocity.add(new Vector(0.0, 0.0, DAMPING_COEFFICIENT * strength));
+ }
+ }
+ }
- public static JumpPadMode getMode()
- {
- return mode;
- }
+ if (!player.getVelocity().equals(velocity)) {
+ player.setFallDistance(0.0f);
+ player.setVelocity(velocity);
+ }
+ }
- public static void setMode(JumpPadMode mode)
- {
- JumpPads.mode = mode;
- }
+ public static JumpPadMode getMode() {
+ return mode;
+ }
- public static double getStrength()
- {
- return strength;
- }
+ public static void setMode(JumpPadMode mode) {
+ JumpPads.mode = mode;
+ }
- public static void setStrength(double strength)
- {
- JumpPads.strength = strength;
- }
+ public static double getStrength() {
+ return strength;
+ }
- public enum JumpPadMode
- {
- OFF(false), NORMAL(true), NORMAL_AND_SIDEWAYS(true), MADGEEK(true);
- private final boolean on;
+ public static void setStrength(double strength) {
+ JumpPads.strength = strength;
+ }
- JumpPadMode(boolean on)
- {
- this.on = on;
- }
+ public enum JumpPadMode {
+ OFF(false), NORMAL(true), NORMAL_AND_SIDEWAYS(true), MADGEEK(true);
+ private final boolean on;
- public boolean isOn()
- {
- return on;
- }
- }
+ JumpPadMode(boolean on) {
+ this.on = on;
+ }
+
+ public boolean isOn() {
+ return on;
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/gamerule/GameRuleHandler.java b/src/main/java/me/StevenLawson/TotalFreedomMod/gamerule/GameRuleHandler.java
index 7c89370..632b75e 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/gamerule/GameRuleHandler.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/gamerule/GameRuleHandler.java
@@ -4,117 +4,99 @@ import java.util.EnumMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import org.bukkit.Bukkit;
import org.bukkit.World;
-public class GameRuleHandler
-{
- private static final EnumMap GAME_RULES = new EnumMap(TFM_GameRule.class);
+public class GameRuleHandler {
- static
- {
- for (TFM_GameRule gameRule : TFM_GameRule.values())
- {
- GAME_RULES.put(gameRule, gameRule.getDefaultValue());
- }
- }
+ private static final EnumMap GAME_RULES = new EnumMap(
+ TFM_GameRule.class);
- private GameRuleHandler()
- {
- throw new AssertionError();
- }
+ static {
+ for (TFM_GameRule gameRule : TFM_GameRule.values()) {
+ GAME_RULES.put(gameRule, gameRule.getDefaultValue());
+ }
+ }
- public static void setGameRule(TFM_GameRule gameRule, boolean value)
- {
- setGameRule(gameRule, value, true);
- }
+ private GameRuleHandler() {
+ throw new AssertionError();
+ }
- public static void setGameRule(TFM_GameRule gameRule, boolean value, boolean doCommit)
- {
- GAME_RULES.put(gameRule, TFM_GameRule_Value.fromBoolean(value));
- if (doCommit)
- {
- commitGameRules();
- }
- }
+ public static void setGameRule(TFM_GameRule gameRule, boolean value) {
+ setGameRule(gameRule, value, true);
+ }
- public static void commitGameRules()
- {
- List worlds = Bukkit.getWorlds();
- Iterator> it = GAME_RULES.entrySet().iterator();
- while (it.hasNext())
- {
- 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())
- {
- Utilities.setWorldTime(world, 6000L);
- }
- }
- }
- }
+ public static void setGameRule(TFM_GameRule gameRule, boolean value, boolean doCommit) {
+ GAME_RULES.put(gameRule, TFM_GameRule_Value.fromBoolean(value));
+ if (doCommit) {
+ commitGameRules();
+ }
+ }
- public enum TFM_GameRule
- {
- DO_FIRE_TICK("doFireTick", TFM_GameRule_Value.TRUE),
- MOB_GRIEFING("mobGriefing", TFM_GameRule_Value.TRUE),
- KEEP_INVENTORY("keepInventory", TFM_GameRule_Value.TRUE),
- 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);
- private final String gameRuleName;
- private final TFM_GameRule_Value defaultValue;
+ public static void commitGameRules() {
+ List worlds = Bukkit.getWorlds();
+ Iterator> it = GAME_RULES.entrySet().iterator();
+ while (it.hasNext()) {
+ 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()) {
+ Utilities.setWorldTime(world, 6000L);
+ }
+ }
+ }
+ }
- TFM_GameRule(String gameRuleName, TFM_GameRule_Value defaultValue)
- {
- this.gameRuleName = gameRuleName;
- this.defaultValue = defaultValue;
- }
+ public enum TFM_GameRule {
+ DO_FIRE_TICK("doFireTick", TFM_GameRule_Value.TRUE),
+ MOB_GRIEFING("mobGriefing", TFM_GameRule_Value.TRUE),
+ KEEP_INVENTORY("keepInventory", TFM_GameRule_Value.TRUE),
+ 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);
+ private final String gameRuleName;
+ private final TFM_GameRule_Value defaultValue;
- public String getGameRuleName()
- {
- return gameRuleName;
- }
+ TFM_GameRule(String gameRuleName, TFM_GameRule_Value defaultValue) {
+ this.gameRuleName = gameRuleName;
+ this.defaultValue = defaultValue;
+ }
- public TFM_GameRule_Value getDefaultValue()
- {
- return defaultValue;
- }
- }
+ public String getGameRuleName() {
+ return gameRuleName;
+ }
- public enum TFM_GameRule_Value
- {
- TRUE("true"), FALSE("false");
- private final String value;
+ public TFM_GameRule_Value getDefaultValue() {
+ return defaultValue;
+ }
+ }
- TFM_GameRule_Value(String value)
- {
- this.value = value;
- }
+ public enum TFM_GameRule_Value {
+ TRUE("true"), FALSE("false");
+ private final String value;
- @Override
- public String toString()
- {
- return this.value;
- }
+ TFM_GameRule_Value(String value) {
+ this.value = 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);
+ }
- public static TFM_GameRule_Value fromBoolean(boolean in)
- {
- return (in ? TFM_GameRule_Value.TRUE : TFM_GameRule_Value.FALSE);
- }
- }
+ @Override
+ public String toString() {
+ return this.value;
+ }
+
+ public boolean toBoolean() {
+ return (this.value.equals(TFM_GameRule_Value.TRUE.value));
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTMLGenerationTools.java b/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTMLGenerationTools.java
index 4f93c34..96008be 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTMLGenerationTools.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTMLGenerationTools.java
@@ -1,58 +1,54 @@
package me.StevenLawson.TotalFreedomMod.httpd;
+import static org.apache.commons.lang3.StringEscapeUtils.escapeHtml4;
+
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
-import static org.apache.commons.lang3.StringEscapeUtils.escapeHtml4;
-public class HTMLGenerationTools
-{
- private HTMLGenerationTools()
- {
- throw new AssertionError();
- }
+public class HTMLGenerationTools {
- public static String paragraph(String data)
- {
- return "" + escapeHtml4(data) + "
\r\n";
- }
+ private HTMLGenerationTools() {
+ throw new AssertionError();
+ }
- public static String heading(String data, int level)
- {
- return "" + escapeHtml4(data) + "\r\n";
- }
+ public static String paragraph(String data) {
+ return "" + escapeHtml4(data) + "
\r\n";
+ }
- public static String list(Map map)
- {
- StringBuilder output = new StringBuilder();
+ public static String heading(String data, int level) {
+ return "" + escapeHtml4(data) + "\r\n";
+ }
- output.append("\r\n");
+ public static String list(Map map) {
+ StringBuilder output = new StringBuilder();
- Iterator> it = map.entrySet().iterator();
- while (it.hasNext())
- {
- Map.Entry entry = it.next();
- output.append("- ").append(escapeHtml4(entry.getKey().toString() + " = " + entry.getValue().toString())).append("
\r\n");
- }
+ output.append("\r\n");
- output.append("
\r\n");
+ Iterator> it = map.entrySet().iterator();
+ while (it.hasNext()) {
+ Map.Entry entry = it.next();
+ output.append("- ").append(
+ escapeHtml4(entry.getKey().toString() + " = " + entry.getValue().toString()))
+ .append("
\r\n");
+ }
- return output.toString();
- }
+ output.append("
\r\n");
- public static String list(Collection list)
- {
- StringBuilder output = new StringBuilder();
+ return output.toString();
+ }
- output.append("\r\n");
+ public static String list(Collection list) {
+ StringBuilder output = new StringBuilder();
- for (T entry : list)
- {
- output.append("- ").append(escapeHtml4(entry.toString())).append("
\r\n");
- }
+ output.append("\r\n");
- output.append("
\r\n");
+ for (T entry : list) {
+ output.append("- ").append(escapeHtml4(entry.toString())).append("
\r\n");
+ }
- return output.toString();
- }
+ output.append("
\r\n");
+
+ return output.toString();
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDFileModule.java b/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDFileModule.java
index 9448408..e8a17e5 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDFileModule.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDFileModule.java
@@ -1,367 +1,314 @@
package me.StevenLawson.TotalFreedomMod.httpd;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.StringTokenizer;
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
import me.StevenLawson.TotalFreedomMod.httpd.NanoHTTPD.Response;
import org.apache.commons.lang3.StringUtils;
-import java.io.*;
-import java.net.URLEncoder;
-import java.util.*;
-
/*
* This class was adapted from https://github.com/NanoHttpd/nanohttpd/blob/master/webserver/src/main/java/fi/iki/elonen/SimpleWebServer.java
*/
public class HTTPDFileModule extends HTTPDModule {
- private final File rootDir = new File(ConfigurationEntry.HTTPD_PUBLIC_FOLDER.getString());
- public static final Map MIME_TYPES = new HashMap();
- static {
- MIME_TYPES.put("css", "text/css");
- MIME_TYPES.put("htm", "text/html");
- MIME_TYPES.put("html", "text/html");
- MIME_TYPES.put("xml", "text/xml");
- MIME_TYPES.put("java", "text/x-java-source, text/java");
- MIME_TYPES.put("txt", "text/plain");
- MIME_TYPES.put("asc", "text/plain");
- MIME_TYPES.put("yml", "text/yaml");
- MIME_TYPES.put("gif", "image/gif");
- MIME_TYPES.put("jpg", "image/jpeg");
- MIME_TYPES.put("jpeg", "image/jpeg");
- MIME_TYPES.put("png", "image/png");
- MIME_TYPES.put("mp3", "audio/mpeg");
- MIME_TYPES.put("m3u", "audio/mpeg-url");
- MIME_TYPES.put("mp4", "video/mp4");
- MIME_TYPES.put("ogv", "video/ogg");
- MIME_TYPES.put("flv", "video/x-flv");
- MIME_TYPES.put("mov", "video/quicktime");
- MIME_TYPES.put("swf", "application/x-shockwave-flash");
- MIME_TYPES.put("js", "application/javascript");
- MIME_TYPES.put("pdf", "application/pdf");
- MIME_TYPES.put("doc", "application/msword");
- MIME_TYPES.put("ogg", "application/x-ogg");
- MIME_TYPES.put("zip", "application/octet-stream");
- MIME_TYPES.put("exe", "application/octet-stream");
- MIME_TYPES.put("class", "application/octet-stream");
- }
+ public static final Map MIME_TYPES = new HashMap();
- public HTTPDFileModule(NanoHTTPD.HTTPSession session) {
- super(session);
- }
+ static {
+ MIME_TYPES.put("css", "text/css");
+ MIME_TYPES.put("htm", "text/html");
+ MIME_TYPES.put("html", "text/html");
+ MIME_TYPES.put("xml", "text/xml");
+ MIME_TYPES.put("java", "text/x-java-source, text/java");
+ MIME_TYPES.put("txt", "text/plain");
+ MIME_TYPES.put("asc", "text/plain");
+ MIME_TYPES.put("yml", "text/yaml");
+ MIME_TYPES.put("gif", "image/gif");
+ MIME_TYPES.put("jpg", "image/jpeg");
+ MIME_TYPES.put("jpeg", "image/jpeg");
+ MIME_TYPES.put("png", "image/png");
+ MIME_TYPES.put("mp3", "audio/mpeg");
+ MIME_TYPES.put("m3u", "audio/mpeg-url");
+ MIME_TYPES.put("mp4", "video/mp4");
+ MIME_TYPES.put("ogv", "video/ogg");
+ MIME_TYPES.put("flv", "video/x-flv");
+ MIME_TYPES.put("mov", "video/quicktime");
+ MIME_TYPES.put("swf", "application/x-shockwave-flash");
+ MIME_TYPES.put("js", "application/javascript");
+ MIME_TYPES.put("pdf", "application/pdf");
+ MIME_TYPES.put("doc", "application/msword");
+ MIME_TYPES.put("ogg", "application/x-ogg");
+ MIME_TYPES.put("zip", "application/octet-stream");
+ MIME_TYPES.put("exe", "application/octet-stream");
+ MIME_TYPES.put("class", "application/octet-stream");
+ }
- private File getRootDir()
- {
- return rootDir;
- }
+ private final File rootDir = new File(ConfigurationEntry.HTTPD_PUBLIC_FOLDER.getString());
- private String encodeUri(String uri)
- {
- String newUri = "";
- StringTokenizer st = new StringTokenizer(uri, "/ ", true);
- while (st.hasMoreTokens())
- {
- String tok = st.nextToken();
- if (tok.equals("/"))
- {
- newUri += "/";
- }
- else if (tok.equals(" "))
- {
- newUri += "%20";
- }
- else
- {
- try
- {
- newUri += URLEncoder.encode(tok, "UTF-8");
- }
- catch (UnsupportedEncodingException ignored)
- {
- }
- }
- }
- return newUri;
- }
+ public HTTPDFileModule(NanoHTTPD.HTTPSession session) {
+ super(session);
+ }
- public Response serveFile(String uri, Map params, File homeDir)
- {
- Response res = null;
+ private File getRootDir() {
+ return rootDir;
+ }
- // Make sure we won't die of an exception later
- if (!homeDir.isDirectory())
- {
- res = new Response(Response.Status.INTERNAL_ERROR, NanoHTTPD.MIME_PLAINTEXT, "INTERNAL ERRROR: serveFile(): given homeDir is not a directory.");
- }
+ private String encodeUri(String uri) {
+ String newUri = "";
+ StringTokenizer st = new StringTokenizer(uri, "/ ", true);
+ while (st.hasMoreTokens()) {
+ String tok = st.nextToken();
+ if (tok.equals("/")) {
+ newUri += "/";
+ } else if (tok.equals(" ")) {
+ newUri += "%20";
+ } else {
+ try {
+ newUri += URLEncoder.encode(tok, "UTF-8");
+ } catch (UnsupportedEncodingException ignored) {
+ }
+ }
+ }
+ return newUri;
+ }
- if (res == null)
- {
- // Remove URL arguments
- uri = uri.trim().replace(File.separatorChar, '/');
- if (uri.indexOf('?') >= 0)
- {
- uri = uri.substring(0, uri.indexOf('?'));
- }
+ public Response serveFile(String uri, Map params, File homeDir) {
+ Response res = null;
- // Prohibit getting out of current directory
- if (uri.startsWith("src/main") || uri.endsWith("src/main") || uri.contains("../"))
- {
- res = new Response(Response.Status.FORBIDDEN, NanoHTTPD.MIME_PLAINTEXT, "FORBIDDEN: Won't serve ../ for security reasons.");
- }
- }
+ // Make sure we won't die of an exception later
+ if (!homeDir.isDirectory()) {
+ res = new Response(Response.Status.INTERNAL_ERROR, NanoHTTPD.MIME_PLAINTEXT,
+ "INTERNAL ERRROR: serveFile(): given homeDir is not a directory.");
+ }
- File f = new File(homeDir, uri);
- if (res == null && !f.exists())
- {
- res = new Response(Response.Status.NOT_FOUND, NanoHTTPD.MIME_PLAINTEXT, "Error 404, file not found.");
- }
+ if (res == null) {
+ // Remove URL arguments
+ uri = uri.trim().replace(File.separatorChar, '/');
+ if (uri.indexOf('?') >= 0) {
+ uri = uri.substring(0, uri.indexOf('?'));
+ }
- // List the directory, if necessary
- if (res == null && f.isDirectory())
- {
- // Browsers get confused without '/' after the
- // directory, send a redirect.
- if (!uri.endsWith("/"))
- {
- uri += "/";
- res = new Response(Response.Status.REDIRECT, NanoHTTPD.MIME_HTML, "Redirected: " + uri
- + "");
- res.addHeader("Location", uri);
- }
+ // Prohibit getting out of current directory
+ if (uri.startsWith("src/main") || uri.endsWith("src/main") || uri.contains("../")) {
+ res = new Response(Response.Status.FORBIDDEN, NanoHTTPD.MIME_PLAINTEXT,
+ "FORBIDDEN: Won't serve ../ for security reasons.");
+ }
+ }
- if (res == null)
- {
- // First try index.html and index.htm
- if (new File(f, "index.html").exists())
- {
- f = new File(homeDir, uri + "/index.html");
- }
- else if (new File(f, "index.htm").exists())
- {
- f = new File(homeDir, uri + "/index.htm");
- }
- else if (f.canRead())
- {
- // No index file, list the directory if it is readable
- res = new Response(listDirectory(uri, f));
- }
- else
- {
- res = new Response(Response.Status.FORBIDDEN, NanoHTTPD.MIME_PLAINTEXT, "FORBIDDEN: No directory listing.");
- }
- }
- }
+ File f = new File(homeDir, uri);
+ if (res == null && !f.exists()) {
+ res = new Response(Response.Status.NOT_FOUND, NanoHTTPD.MIME_PLAINTEXT,
+ "Error 404, file not found.");
+ }
- try
- {
- if (res == null)
- {
- // Get MIME type from file name extension, if possible
- String mime = null;
- int dot = f.getCanonicalPath().lastIndexOf('.');
- if (dot >= 0)
- {
- mime = MIME_TYPES.get(f.getCanonicalPath().substring(dot + 1).toLowerCase());
- }
- if (mime == null)
- {
- mime = HTTPDManager.MIME_DEFAULT_BINARY;
- }
+ // List the directory, if necessary
+ if (res == null && f.isDirectory()) {
+ // Browsers get confused without '/' after the
+ // directory, send a redirect.
+ if (!uri.endsWith("/")) {
+ uri += "/";
+ res = new Response(Response.Status.REDIRECT, NanoHTTPD.MIME_HTML,
+ "Redirected: " + uri
+ + "");
+ res.addHeader("Location", uri);
+ }
- // Calculate etag
- String etag = Integer.toHexString((f.getAbsolutePath() + f.lastModified() + "" + f.length()).hashCode());
+ if (res == null) {
+ // First try index.html and index.htm
+ if (new File(f, "index.html").exists()) {
+ f = new File(homeDir, uri + "/index.html");
+ } else if (new File(f, "index.htm").exists()) {
+ f = new File(homeDir, uri + "/index.htm");
+ } else if (f.canRead()) {
+ // No index file, list the directory if it is readable
+ res = new Response(listDirectory(uri, f));
+ } else {
+ res = new Response(Response.Status.FORBIDDEN, NanoHTTPD.MIME_PLAINTEXT,
+ "FORBIDDEN: No directory listing.");
+ }
+ }
+ }
- final long fileLen = f.length();
+ try {
+ if (res == null) {
+ // Get MIME type from file name extension, if possible
+ String mime = null;
+ int dot = f.getCanonicalPath().lastIndexOf('.');
+ if (dot >= 0) {
+ mime = MIME_TYPES.get(f.getCanonicalPath().substring(dot + 1).toLowerCase());
+ }
+ if (mime == null) {
+ mime = HTTPDManager.MIME_DEFAULT_BINARY;
+ }
- long startFrom = 0;
- long endAt = -1;
- final String range = params.get("range");
- if (range != null)
- {
- final String[] rangeParams = StringUtils.split(range, "=");
- if (rangeParams.length >= 2)
- {
- if ("bytes".equalsIgnoreCase(rangeParams[0]))
- {
- try
- {
- int minus = rangeParams[1].indexOf('-');
- if (minus > 0)
- {
- startFrom = Long.parseLong(rangeParams[1].substring(0, minus));
- endAt = Long.parseLong(rangeParams[1].substring(minus + 1));
- }
- }
- catch (NumberFormatException ignored)
- {
- }
- }
- else if ("tail".equalsIgnoreCase(rangeParams[0]))
- {
- try
- {
- final long tailLen = Long.parseLong(rangeParams[1]);
- if (tailLen < fileLen)
- {
- startFrom = fileLen - tailLen - 2;
- if (startFrom < 0)
- {
- startFrom = 0;
- }
- }
- }
- catch (NumberFormatException ignored)
- {
- }
- }
- }
- }
+ // Calculate etag
+ String etag = Integer.toHexString(
+ (f.getAbsolutePath() + f.lastModified() + "" + f.length()).hashCode());
- // Change return code and add Content-Range header when skipping is requested
- if (range != null && startFrom >= 0)
- {
- if (startFrom >= fileLen)
- {
- res = new Response(Response.Status.RANGE_NOT_SATISFIABLE, NanoHTTPD.MIME_PLAINTEXT, "");
- res.addHeader("Content-Range", "bytes 0-0/" + fileLen);
- res.addHeader("ETag", etag);
- }
- else
- {
- if (endAt < 0)
- {
- endAt = fileLen - 1;
- }
- long newLen = endAt - startFrom + 1;
- if (newLen < 0)
- {
- newLen = 0;
- }
+ final long fileLen = f.length();
- final long dataLen = newLen;
- FileInputStream fis = new FileInputStream(f)
- {
- @Override
- public int available() throws IOException
- {
- return (int) dataLen;
- }
- };
- fis.skip(startFrom);
+ long startFrom = 0;
+ long endAt = -1;
+ final String range = params.get("range");
+ if (range != null) {
+ final String[] rangeParams = StringUtils.split(range, "=");
+ if (rangeParams.length >= 2) {
+ if ("bytes".equalsIgnoreCase(rangeParams[0])) {
+ try {
+ int minus = rangeParams[1].indexOf('-');
+ if (minus > 0) {
+ startFrom = Long.parseLong(rangeParams[1].substring(0, minus));
+ endAt = Long.parseLong(rangeParams[1].substring(minus + 1));
+ }
+ } catch (NumberFormatException ignored) {
+ }
+ } else if ("tail".equalsIgnoreCase(rangeParams[0])) {
+ try {
+ final long tailLen = Long.parseLong(rangeParams[1]);
+ if (tailLen < fileLen) {
+ startFrom = fileLen - tailLen - 2;
+ if (startFrom < 0) {
+ startFrom = 0;
+ }
+ }
+ } catch (NumberFormatException ignored) {
+ }
+ }
+ }
+ }
- res = new Response(Response.Status.PARTIAL_CONTENT, mime, fis);
- res.addHeader("Content-Length", "" + dataLen);
- res.addHeader("Content-Range", "bytes " + startFrom + "-" + endAt + "/" + fileLen);
- res.addHeader("ETag", etag);
- }
- }
- else
- {
- res = new Response(Response.Status.OK, mime, new FileInputStream(f));
- res.addHeader("Content-Length", "" + fileLen);
- res.addHeader("ETag", etag);
- }
- }
- }
- catch (IOException ioe)
- {
- res = new Response(Response.Status.FORBIDDEN, NanoHTTPD.MIME_PLAINTEXT, "FORBIDDEN: Reading file failed.");
- }
+ // Change return code and add Content-Range header when skipping is requested
+ if (range != null && startFrom >= 0) {
+ if (startFrom >= fileLen) {
+ res = new Response(Response.Status.RANGE_NOT_SATISFIABLE,
+ NanoHTTPD.MIME_PLAINTEXT, "");
+ res.addHeader("Content-Range", "bytes 0-0/" + fileLen);
+ res.addHeader("ETag", etag);
+ } else {
+ if (endAt < 0) {
+ endAt = fileLen - 1;
+ }
+ long newLen = endAt - startFrom + 1;
+ if (newLen < 0) {
+ newLen = 0;
+ }
- res.addHeader("Accept-Ranges", "bytes"); // Announce that the file server accepts partial content requestes
- return res;
- }
+ final long dataLen = newLen;
+ FileInputStream fis = new FileInputStream(f) {
+ @Override
+ public int available() throws IOException {
+ return (int) dataLen;
+ }
+ };
+ fis.skip(startFrom);
- private String listDirectory(String uri, File f)
- {
- String heading = "Directory " + uri;
- String msg = "" + heading + ""
- + "" + heading + "
";
+ res = new Response(Response.Status.PARTIAL_CONTENT, mime, fis);
+ res.addHeader("Content-Length", "" + dataLen);
+ res.addHeader("Content-Range",
+ "bytes " + startFrom + "-" + endAt + "/" + fileLen);
+ res.addHeader("ETag", etag);
+ }
+ } else {
+ res = new Response(Response.Status.OK, mime, new FileInputStream(f));
+ res.addHeader("Content-Length", "" + fileLen);
+ res.addHeader("ETag", etag);
+ }
+ }
+ } catch (IOException ioe) {
+ res = new Response(Response.Status.FORBIDDEN, NanoHTTPD.MIME_PLAINTEXT,
+ "FORBIDDEN: Reading file failed.");
+ }
- String up = null;
- if (uri.length() > 1)
- {
- String u = uri.substring(0, uri.length() - 1);
- int slash = u.lastIndexOf('/');
- if (slash >= 0 && slash < u.length())
- {
- up = uri.substring(0, slash + 1);
- }
- }
+ res.addHeader("Accept-Ranges",
+ "bytes"); // Announce that the file server accepts partial content requestes
+ return res;
+ }
- List _files = Arrays.asList(f.list(new FilenameFilter()
- {
- @Override
- public boolean accept(File dir, String name)
- {
- return new File(dir, name).isFile();
- }
- }));
- Collections.sort(_files);
- List directories = Arrays.asList(f.list(new FilenameFilter()
- {
- @Override
- public boolean accept(File dir, String name)
- {
- return new File(dir, name).isDirectory();
- }
- }));
- Collections.sort(directories);
- if (up != null || directories.size() + _files.size() > 0)
- {
- msg += "";
- if (up != null || directories.size() > 0)
- {
- msg += "";
- if (up != null)
- {
- msg += "- ..
";
- }
- for (int i = 0; i < directories.size(); i++)
- {
- String dir = directories.get(i) + "/";
- msg += "- " + dir + "
";
- }
- msg += "";
- }
- if (_files.size() > 0)
- {
- msg += "";
- for (int i = 0; i < _files.size(); i++)
- {
- String file = _files.get(i);
+ private String listDirectory(String uri, File f) {
+ String heading = "Directory " + uri;
+ String msg = "" + heading + ""
+ + "" + heading + "
";
- msg += "- " + file + "";
- File curFile = new File(f, file);
- long len = curFile.length();
- msg += " (";
- if (len < 1024)
- {
- msg += len + " bytes";
- }
- else if (len < 1024 * 1024)
- {
- msg += len / 1024 + "." + (len % 1024 / 10 % 100) + " KB";
- }
- else
- {
- msg += len / (1024 * 1024) + "." + len % (1024 * 1024) / 10 % 100 + " MB";
- }
- msg += ")
";
- }
- msg += "";
- }
- msg += "
";
- }
- msg += "";
- return msg;
- }
+ String up = null;
+ if (uri.length() > 1) {
+ String u = uri.substring(0, uri.length() - 1);
+ int slash = u.lastIndexOf('/');
+ if (slash >= 0 && slash < u.length()) {
+ up = uri.substring(0, slash + 1);
+ }
+ }
- @Override
- public Response getResponse()
- {
- return serveFile(uri, params, getRootDir());
- }
+ List _files = Arrays.asList(f.list(new FilenameFilter() {
+ @Override
+ public boolean accept(File dir, String name) {
+ return new File(dir, name).isFile();
+ }
+ }));
+ Collections.sort(_files);
+ List directories = Arrays.asList(f.list(new FilenameFilter() {
+ @Override
+ public boolean accept(File dir, String name) {
+ return new File(dir, name).isDirectory();
+ }
+ }));
+ Collections.sort(directories);
+ if (up != null || directories.size() + _files.size() > 0) {
+ msg += "";
+ if (up != null || directories.size() > 0) {
+ msg += "";
+ if (up != null) {
+ msg += "- ..
";
+ }
+ for (int i = 0; i < directories.size(); i++) {
+ String dir = directories.get(i) + "/";
+ msg += "- " + dir + "
";
+ }
+ msg += "";
+ }
+ if (_files.size() > 0) {
+ msg += "";
+ for (int i = 0; i < _files.size(); i++) {
+ String file = _files.get(i);
+
+ msg += "- "
+ + file + "";
+ File curFile = new File(f, file);
+ long len = curFile.length();
+ msg += " (";
+ if (len < 1024) {
+ msg += len + " bytes";
+ } else if (len < 1024 * 1024) {
+ msg += len / 1024 + "." + (len % 1024 / 10 % 100) + " KB";
+ } else {
+ msg += len / (1024 * 1024) + "." + len % (1024 * 1024) / 10 % 100 + " MB";
+ }
+ msg += ")
";
+ }
+ msg += "";
+ }
+ msg += "
";
+ }
+ msg += "";
+ return msg;
+ }
+
+ @Override
+ public Response getResponse() {
+ return serveFile(uri, params, getRootDir());
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDHelpModule.java b/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDHelpModule.java
index 74721c5..582302d 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDHelpModule.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDHelpModule.java
@@ -1,5 +1,16 @@
package me.StevenLawson.TotalFreedomMod.httpd;
+import static me.StevenLawson.TotalFreedomMod.httpd.HTMLGenerationTools.heading;
+import static me.StevenLawson.TotalFreedomMod.httpd.HTMLGenerationTools.paragraph;
+import static org.apache.commons.lang3.StringEscapeUtils.escapeHtml4;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import org.apache.commons.lang3.StringUtils;
import org.bukkit.Bukkit;
@@ -7,114 +18,103 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandMap;
import org.bukkit.command.PluginIdentifiableCommand;
-import java.util.*;
-
-import static me.StevenLawson.TotalFreedomMod.httpd.HTMLGenerationTools.heading;
-import static me.StevenLawson.TotalFreedomMod.httpd.HTMLGenerationTools.paragraph;
-import static org.apache.commons.lang3.StringEscapeUtils.escapeHtml4;
-
public class HTTPDHelpModule extends HTTPDModule {
- public HTTPDHelpModule(NanoHTTPD.HTTPSession session) {
- super(session);
- }
- @Override
- public String getBody() {
- StringBuilder responseBody = new StringBuilder();
+ public HTTPDHelpModule(NanoHTTPD.HTTPSession session) {
+ super(session);
+ }
- CommandMap commandMap = Utilities.getField(Bukkit.getServer().getPluginManager(), "commandMap");
- HashMap knownCommands;
- if (commandMap == null
- || (knownCommands = Utilities.getField(commandMap, "knownCommands")) == null) {
- return paragraph("Error loading commands.");
- }
+ private static String buildDescription(Command command) {
+ StringBuilder sb = new StringBuilder();
- responseBody
- .append(heading("Command Help", 1))
- .append(paragraph(
- "This page is an automatically generated listing of all plugin commands that are currently live on the server. "
- + "Please note that it does not include vanilla server commands."));
+ sb.append(
+ "{$CMD_NAME} - Usage: {$CMD_USAGE}"
+ .replace("{$CMD_NAME}", escapeHtml4(command.getName().trim()))
+ .replace("{$CMD_USAGE}", escapeHtml4(command.getUsage().trim())));
- final Map> commandsByPlugin = new HashMap>();
+ if (!command.getAliases().isEmpty()) {
+ sb.append(
+ " - Aliases: {$CMD_ALIASES}"
+ .replace("{$CMD_ALIASES}",
+ escapeHtml4(StringUtils.join(command.getAliases(), ", "))));
+ }
- final Iterator> itKnownCommands = knownCommands.entrySet().iterator();
- while (itKnownCommands.hasNext())
- {
- final Map.Entry entry = itKnownCommands.next();
- final String name = entry.getKey();
- final Command command = entry.getValue();
- if (name.equalsIgnoreCase(command.getName()))
- {
- String pluginName = "Bukkit Default";
- if (command instanceof PluginIdentifiableCommand)
- {
- pluginName = ((PluginIdentifiableCommand) command).getPlugin().getName();
- }
- List pluginCommands = commandsByPlugin.get(pluginName);
- if (pluginCommands == null)
- {
- commandsByPlugin.put(pluginName, pluginCommands = new ArrayList());
- }
- pluginCommands.add(command);
- }
- }
+ sb.append(
+ "
{$CMD_DESC}\r\n"
+ .replace("{$CMD_DESC}", escapeHtml4(command.getDescription().trim())));
- final Iterator>> itCommandsByPlugin = commandsByPlugin.entrySet().iterator();
- while (itCommandsByPlugin.hasNext())
- {
- final Map.Entry> entry = itCommandsByPlugin.next();
- final String pluginName = entry.getKey();
- final List commands = entry.getValue();
+ return sb.toString();
+ }
- Collections.sort(commands, Comparator.comparing(Command::getName));
+ @Override
+ public String getBody() {
+ StringBuilder responseBody = new StringBuilder();
- responseBody.append(heading(pluginName, 2)).append("\r\n");
+ CommandMap commandMap = Utilities.getField(Bukkit.getServer().getPluginManager(),
+ "commandMap");
+ HashMap knownCommands;
+ if (commandMap == null
+ || (knownCommands = Utilities.getField(commandMap, "knownCommands")) == null) {
+ return paragraph("Error loading commands.");
+ }
- for (Command command : commands)
- {
- responseBody.append(buildDescription(command));
- }
+ responseBody
+ .append(heading("Command Help", 1))
+ .append(paragraph(
+ "This page is an automatically generated listing of all plugin commands that are currently live on the server. "
+ + "Please note that it does not include vanilla server commands."));
- responseBody.append("
\r\n");
- }
+ final Map> commandsByPlugin = new HashMap>();
- return responseBody.toString();
- }
+ final Iterator> itKnownCommands = knownCommands.entrySet()
+ .iterator();
+ while (itKnownCommands.hasNext()) {
+ final Map.Entry entry = itKnownCommands.next();
+ final String name = entry.getKey();
+ final Command command = entry.getValue();
+ if (name.equalsIgnoreCase(command.getName())) {
+ String pluginName = "Bukkit Default";
+ if (command instanceof PluginIdentifiableCommand) {
+ pluginName = ((PluginIdentifiableCommand) command).getPlugin().getName();
+ }
+ List pluginCommands = commandsByPlugin.get(pluginName);
+ if (pluginCommands == null) {
+ commandsByPlugin.put(pluginName, pluginCommands = new ArrayList());
+ }
+ pluginCommands.add(command);
+ }
+ }
- private static String buildDescription(Command command)
- {
- StringBuilder sb = new StringBuilder();
+ final Iterator>> itCommandsByPlugin = commandsByPlugin.entrySet()
+ .iterator();
+ while (itCommandsByPlugin.hasNext()) {
+ final Map.Entry> entry = itCommandsByPlugin.next();
+ final String pluginName = entry.getKey();
+ final List commands = entry.getValue();
- sb.append(
- "{$CMD_NAME} - Usage: {$CMD_USAGE}"
- .replace("{$CMD_NAME}", escapeHtml4(command.getName().trim()))
- .replace("{$CMD_USAGE}", escapeHtml4(command.getUsage().trim())));
+ Collections.sort(commands, Comparator.comparing(Command::getName));
- if (!command.getAliases().isEmpty())
- {
- sb.append(
- " - Aliases: {$CMD_ALIASES}"
- .replace("{$CMD_ALIASES}", escapeHtml4(StringUtils.join(command.getAliases(), ", "))));
- }
+ responseBody.append(heading(pluginName, 2)).append("\r\n");
- sb.append(
- "
{$CMD_DESC}
\r\n"
- .replace("{$CMD_DESC}", escapeHtml4(command.getDescription().trim())));
+ for (Command command : commands) {
+ responseBody.append(buildDescription(command));
+ }
- return sb.toString();
- }
+ responseBody.append("\r\n");
+ }
- @Override
- public String getTitle()
- {
- return "TotalFreedomMod :: Command Help";
- }
+ return responseBody.toString();
+ }
- @Override
- public String getStyle()
- {
- return ".commandName{font-weight:bold;}.commandDescription{padding-left:15px;}li{margin:.15em;padding:.15em;}";
- }
+ @Override
+ public String getTitle() {
+ return "TotalFreedomMod :: Command Help";
+ }
+
+ @Override
+ public String getStyle() {
+ return ".commandName{font-weight:bold;}.commandDescription{padding-left:15px;}li{margin:.15em;padding:.15em;}";
+ }
// @Override
// public String getScript()
// {
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDListModule.java b/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDListModule.java
index 9060472..dcd6d97 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDListModule.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDListModule.java
@@ -1,70 +1,60 @@
package me.StevenLawson.TotalFreedomMod.httpd;
+import java.util.Collection;
import me.StevenLawson.TotalFreedomMod.admin.AdminList;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
-import java.util.Collection;
-
public class HTTPDListModule extends HTTPDModule {
- public HTTPDListModule(NanoHTTPD.HTTPSession session) {
- super(session);
- }
- @Override
- public String getBody() {
- final StringBuilder body = new StringBuilder();
+ public HTTPDListModule(NanoHTTPD.HTTPSession session) {
+ super(session);
+ }
- final Collection extends Player> onlinePlayers = Bukkit.getOnlinePlayers();
+ @Override
+ public String getBody() {
+ final StringBuilder body = new StringBuilder();
- body.append("There are ").append(onlinePlayers.size()).append("/").append(Bukkit.getMaxPlayers()).append(" players online:
\r\n");
+ final Collection extends Player> onlinePlayers = Bukkit.getOnlinePlayers();
- body.append("\r\n");
+ body.append("There are ").append(onlinePlayers.size()).append("/")
+ .append(Bukkit.getMaxPlayers()).append(" players online:
\r\n");
- for (Player player : onlinePlayers)
- {
- String prefix = "";
- if (AdminList.isSuperAdmin(player))
- {
- if (AdminList.isSeniorAdmin(player))
- {
- prefix = "[SrA]";
- }
- else
- {
- prefix = "[SA]";
- }
+ body.append("\r\n");
- if (Utilities.DEVELOPERS.contains(player.getName()))
- {
- prefix = "[Dev]";
- }
+ for (Player player : onlinePlayers) {
+ String prefix = "";
+ if (AdminList.isSuperAdmin(player)) {
+ if (AdminList.isSeniorAdmin(player)) {
+ prefix = "[SrA]";
+ } else {
+ prefix = "[SA]";
+ }
- if (player.getName().equals("markbyron"))
- {
- prefix = "[Owner]";
- }
- }
- else
- {
- if (player.isOp())
- {
- prefix = "[OP]";
- }
- }
+ if (Utilities.DEVELOPERS.contains(player.getName())) {
+ prefix = "[Dev]";
+ }
- body.append("- ").append(prefix).append(player.getName()).append("
\r\n");
- }
+ if (player.getName().equals("markbyron")) {
+ prefix = "[Owner]";
+ }
+ } else {
+ if (player.isOp()) {
+ prefix = "[OP]";
+ }
+ }
- body.append("
\r\n");
+ body.append("- ").append(prefix).append(player.getName()).append("
\r\n");
+ }
- return body.toString();
- }
+ body.append("
\r\n");
- @Override
- public String getTitle()
- {
- return "Total Freedom - Online Users";
- }
+ return body.toString();
+ }
+
+ @Override
+ public String getTitle() {
+ return "Total Freedom - Online Users";
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDManager.java b/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDManager.java
index 2832b63..dd9f3f1 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDManager.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDManager.java
@@ -1,5 +1,11 @@
package me.StevenLawson.TotalFreedomMod.httpd;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.concurrent.Callable;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import me.StevenLawson.TotalFreedomMod.Log;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
@@ -9,258 +15,219 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.bukkit.Bukkit;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.util.concurrent.Callable;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
public class HTTPDManager {
- public static String MIME_DEFAULT_BINARY;
- //
- private static final Pattern EXT_REGEX;
- //
- public static final int PORT;
- //
- private static final TFM_HTTPD HTTPD;
- private HTTPDManager() {
- throw new AssertionError();
- }
+ //
+ public static final int PORT;
+ //
+ private static final Pattern EXT_REGEX;
+ //
+ private static final TFM_HTTPD HTTPD;
+ public static String MIME_DEFAULT_BINARY;
- static
- {
- MIME_DEFAULT_BINARY = "application/octet-stream";
- EXT_REGEX = Pattern.compile("\\.([^\\.\\s]+)$");
- PORT = ConfigurationEntry.HTTPD_PORT.getInteger();
- HTTPD = new TFM_HTTPD(PORT);
- }
+ static {
+ MIME_DEFAULT_BINARY = "application/octet-stream";
+ EXT_REGEX = Pattern.compile("\\.([^\\.\\s]+)$");
+ PORT = ConfigurationEntry.HTTPD_PORT.getInteger();
+ HTTPD = new TFM_HTTPD(PORT);
+ }
- public static void start()
- {
- if (!ConfigurationEntry.HTTPD_ENABLED.getBoolean())
- {
- return;
- }
+ private HTTPDManager() {
+ throw new AssertionError();
+ }
- try
- {
- HTTPD.start();
+ public static void start() {
+ if (!ConfigurationEntry.HTTPD_ENABLED.getBoolean()) {
+ return;
+ }
- if (HTTPD.isAlive())
- {
- Log.info("TFM HTTPd started. Listening on port: " + HTTPD.getListeningPort());
- }
- else
- {
- Log.info("Error starting TFM HTTPd.");
- }
- }
- catch (IOException ex)
- {
- Log.severe(ex);
- }
- }
+ try {
+ HTTPD.start();
- public static void stop()
- {
- if (!ConfigurationEntry.HTTPD_ENABLED.getBoolean()) {
- return;
- }
+ if (HTTPD.isAlive()) {
+ Log.info("TFM HTTPd started. Listening on port: " + HTTPD.getListeningPort());
+ } else {
+ Log.info("Error starting TFM HTTPd.");
+ }
+ } catch (IOException ex) {
+ Log.severe(ex);
+ }
+ }
- HTTPD.stop();
+ public static void stop() {
+ if (!ConfigurationEntry.HTTPD_ENABLED.getBoolean()) {
+ return;
+ }
- Log.info("TFM HTTPd stopped.");
- }
+ HTTPD.stop();
- public static Response serveFileBasic(File file) {
- Response response = null;
+ Log.info("TFM HTTPd stopped.");
+ }
- if (file != null && file.exists()) {
- try {
- String mimetype = null;
+ public static Response serveFileBasic(File file) {
+ Response response = null;
- Matcher matcher = EXT_REGEX.matcher(file.getCanonicalPath());
- if (matcher.find()) {
- mimetype = HTTPDFileModule.MIME_TYPES.get(matcher.group(1));
- }
+ if (file != null && file.exists()) {
+ try {
+ String mimetype = null;
- if (mimetype == null || mimetype.trim().isEmpty()) {
- mimetype = MIME_DEFAULT_BINARY;
- }
+ Matcher matcher = EXT_REGEX.matcher(file.getCanonicalPath());
+ if (matcher.find()) {
+ mimetype = HTTPDFileModule.MIME_TYPES.get(matcher.group(1));
+ }
- response = new Response(Response.Status.OK, mimetype, new FileInputStream(file));
- response.addHeader("Content-Length", "" + file.length());
- } catch (IOException ex) {
- Log.severe(ex);
- }
- }
+ if (mimetype == null || mimetype.trim().isEmpty()) {
+ mimetype = MIME_DEFAULT_BINARY;
+ }
- return response;
- }
+ response = new Response(Response.Status.OK, mimetype, new FileInputStream(file));
+ response.addHeader("Content-Length", "" + file.length());
+ } catch (IOException ex) {
+ Log.severe(ex);
+ }
+ }
- private static class TFM_HTTPD extends NanoHTTPD {
- public TFM_HTTPD(int port) {
- super(port);
- }
+ return response;
+ }
- public TFM_HTTPD(String hostname, int port) {
- super(hostname, port);
- }
+ private enum ModuleType {
+ DUMP(new ModuleExecutable(false, "dump") {
+ @Override
+ public Response getResponse(HTTPSession session) {
+ return new Response(Response.Status.OK, NanoHTTPD.MIME_PLAINTEXT,
+ "The DUMP module is disabled. It is intended for debugging use only.");
+ }
+ }),
+ HELP(new ModuleExecutable(true, "help") {
+ @Override
+ public Response getResponse(HTTPSession session) {
+ return new HTTPDHelpModule(session).getResponse();
+ }
+ }),
+ LIST(new ModuleExecutable(true, "list") {
+ @Override
+ public Response getResponse(HTTPSession session) {
+ return new HTTPDListModule(session).getResponse();
+ }
+ }),
+ FILE(new ModuleExecutable(false, "file") {
+ @Override
+ public Response getResponse(HTTPSession session) {
+ return new HTTPDFileModule(session).getResponse();
+ }
+ }),
+ SCHEMATIC(new ModuleExecutable(false, "schematic") {
+ @Override
+ public Response getResponse(HTTPSession session) {
+ return new HTTPDSchematicModule(session).getResponse();
+ }
+ }),
+ PERMBANS(new ModuleExecutable(false, "permbans") {
+ @Override
+ public Response getResponse(HTTPSession session) {
+ return new HTTPDPermanentBansModule(session).getResponse();
+ }
+ }),
+ PLAYERS(new ModuleExecutable(true, "players") {
+ @Override
+ public Response getResponse(HTTPSession session) {
+ return new HTTPDPlayersModule(session).getResponse();
+ }
+ }),
+ LOGS(new ModuleExecutable(false, "logs") {
+ @Override
+ public Response getResponse(HTTPSession session) {
+ return new LogFileModule(session).getResponse();
+ }
+ });
+ //
+ private final ModuleExecutable moduleExecutable;
- @Override
- public Response serve(HTTPSession session) {
- Response response;
+ ModuleType(ModuleExecutable moduleExecutable) {
+ this.moduleExecutable = moduleExecutable;
+ }
- try {
- final String[] args = StringUtils.split(session.getUri(), "/");
- final ModuleType moduleType = args.length >= 1 ? ModuleType.getByName(args[0]) : ModuleType.FILE;
- response = moduleType.getModuleExecutable().execute(session);
- } catch (Exception ex) {
- response = new Response(Response.Status.INTERNAL_ERROR, MIME_PLAINTEXT, "Error 500: Internal Server Error\r\n" + ex.getMessage() + "\r\n" + ExceptionUtils.getStackTrace(ex));
- }
+ private static ModuleType getByName(String needle) {
+ for (ModuleType type : values()) {
+ if (type.getModuleExecutable().getName().equalsIgnoreCase(needle)) {
+ return type;
+ }
+ }
+ return FILE;
+ }
- if (response == null) {
- response = new Response(Response.Status.NOT_FOUND, MIME_PLAINTEXT, "Error 404: Not Found - The requested resource was not found on this server.");
- }
+ public ModuleExecutable getModuleExecutable() {
+ return moduleExecutable;
+ }
- return response;
- }
- }
+ private abstract static class ModuleExecutable {
- private enum ModuleType {
- DUMP(new ModuleExecutable(false, "dump") {
- @Override
- public Response getResponse(HTTPSession session) {
- return new Response(Response.Status.OK, NanoHTTPD.MIME_PLAINTEXT, "The DUMP module is disabled. It is intended for debugging use only.");
- }
- }),
- HELP(new ModuleExecutable(true, "help")
- {
- @Override
- public Response getResponse(HTTPSession session)
- {
- return new HTTPDHelpModule(session).getResponse();
- }
- }),
- LIST(new ModuleExecutable(true, "list")
- {
- @Override
- public Response getResponse(HTTPSession session)
- {
- return new HTTPDListModule(session).getResponse();
- }
- }),
- FILE(new ModuleExecutable(false, "file")
- {
- @Override
- public Response getResponse(HTTPSession session)
- {
- return new HTTPDFileModule(session).getResponse();
- }
- }),
- SCHEMATIC(new ModuleExecutable(false, "schematic")
- {
- @Override
- public Response getResponse(HTTPSession session)
- {
- return new HTTPDSchematicModule(session).getResponse();
- }
- }),
- PERMBANS(new ModuleExecutable(false, "permbans")
- {
- @Override
- public Response getResponse(HTTPSession session)
- {
- return new HTTPDPermanentBansModule(session).getResponse();
- }
- }),
- PLAYERS(new ModuleExecutable(true, "players")
- {
- @Override
- public Response getResponse(HTTPSession session)
- {
- return new HTTPDPlayersModule(session).getResponse();
- }
- }),
- LOGS(new ModuleExecutable(false, "logs")
- {
- @Override
- public Response getResponse(HTTPSession session)
- {
- return new LogFileModule(session).getResponse();
- }
- });
- //
- private final ModuleExecutable moduleExecutable;
+ private final boolean runOnBukkitThread;
+ private final String name;
- ModuleType(ModuleExecutable moduleExecutable)
- {
- this.moduleExecutable = moduleExecutable;
- }
+ public ModuleExecutable(boolean runOnBukkitThread, String name) {
+ this.runOnBukkitThread = runOnBukkitThread;
+ this.name = name;
+ }
- private abstract static class ModuleExecutable
- {
- private final boolean runOnBukkitThread;
- private final String name;
+ public Response execute(final HTTPSession session) {
+ try {
+ if (this.runOnBukkitThread) {
+ return Bukkit.getScheduler()
+ .callSyncMethod(TotalFreedomMod.plugin, new Callable() {
+ @Override
+ public Response call() throws Exception {
+ return getResponse(session);
+ }
+ }).get();
+ } else {
+ return getResponse(session);
+ }
+ } catch (Exception ex) {
+ Log.severe(ex);
+ }
+ return null;
+ }
- public ModuleExecutable(boolean runOnBukkitThread, String name)
- {
- this.runOnBukkitThread = runOnBukkitThread;
- this.name = name;
- }
+ public abstract Response getResponse(HTTPSession session);
- public Response execute(final HTTPSession session)
- {
- try
- {
- if (this.runOnBukkitThread)
- {
- return Bukkit.getScheduler().callSyncMethod(TotalFreedomMod.plugin, new Callable()
- {
- @Override
- public Response call() throws Exception
- {
- return getResponse(session);
- }
- }).get();
- }
- else
- {
- return getResponse(session);
- }
- }
- catch (Exception ex)
- {
- Log.severe(ex);
- }
- return null;
- }
+ public String getName() {
+ return name;
+ }
+ }
+ }
- public abstract Response getResponse(HTTPSession session);
+ private static class TFM_HTTPD extends NanoHTTPD {
- public String getName()
- {
- return name;
- }
- }
+ public TFM_HTTPD(int port) {
+ super(port);
+ }
- public ModuleExecutable getModuleExecutable()
- {
- return moduleExecutable;
- }
+ public TFM_HTTPD(String hostname, int port) {
+ super(hostname, port);
+ }
- private static ModuleType getByName(String needle)
- {
- for (ModuleType type : values())
- {
- if (type.getModuleExecutable().getName().equalsIgnoreCase(needle))
- {
- return type;
- }
- }
- return FILE;
- }
- }
+ @Override
+ public Response serve(HTTPSession session) {
+ Response response;
+
+ try {
+ final String[] args = StringUtils.split(session.getUri(), "/");
+ final ModuleType moduleType =
+ args.length >= 1 ? ModuleType.getByName(args[0]) : ModuleType.FILE;
+ response = moduleType.getModuleExecutable().execute(session);
+ } catch (Exception ex) {
+ response = new Response(Response.Status.INTERNAL_ERROR, MIME_PLAINTEXT,
+ "Error 500: Internal Server Error\r\n" + ex.getMessage() + "\r\n"
+ + ExceptionUtils.getStackTrace(ex));
+ }
+
+ if (response == null) {
+ response = new Response(Response.Status.NOT_FOUND, MIME_PLAINTEXT,
+ "Error 404: Not Found - The requested resource was not found on this server.");
+ }
+
+ return response;
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDModule.java b/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDModule.java
index 43129fc..dbb8cd9 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDModule.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDModule.java
@@ -1,69 +1,60 @@
package me.StevenLawson.TotalFreedomMod.httpd;
+import java.net.Socket;
+import java.util.HashMap;
+import java.util.Map;
import me.StevenLawson.TotalFreedomMod.Log;
import me.StevenLawson.TotalFreedomMod.httpd.NanoHTTPD.HTTPSession;
import me.StevenLawson.TotalFreedomMod.httpd.NanoHTTPD.Method;
import me.StevenLawson.TotalFreedomMod.httpd.NanoHTTPD.Response;
-import java.net.Socket;
-import java.util.HashMap;
-import java.util.Map;
-
public abstract class HTTPDModule {
- protected final String uri;
- protected final Method method;
- protected final Map headers;
- protected final Map params;
- protected final Socket socket;
- protected final HTTPSession session;
- public HTTPDModule(HTTPSession session) {
- this.uri = session.getUri();
- this.method = session.getMethod();
- this.headers = session.getHeaders();
- this.params = session.getParms();
- this.socket = session.getSocket();
- this.session = session;
- }
+ protected final String uri;
+ protected final Method method;
+ protected final Map headers;
+ protected final Map params;
+ protected final Socket socket;
+ protected final HTTPSession session;
- public String getBody()
- {
- return null;
- }
+ public HTTPDModule(HTTPSession session) {
+ this.uri = session.getUri();
+ this.method = session.getMethod();
+ this.headers = session.getHeaders();
+ this.params = session.getParms();
+ this.socket = session.getSocket();
+ this.session = session;
+ }
- public String getTitle()
- {
- return null;
- }
+ public String getBody() {
+ return null;
+ }
- public String getStyle()
- {
- return null;
- }
+ public String getTitle() {
+ return null;
+ }
- public String getScript()
- {
- return null;
- }
+ public String getStyle() {
+ return null;
+ }
- public Response getResponse()
- {
- return new HTTPDPageBuilder(getBody(), getTitle(), getStyle(), getScript()).getResponse();
- }
+ public String getScript() {
+ return null;
+ }
- protected final Map getFiles()
- {
- Map files = new HashMap();
+ public Response getResponse() {
+ return new HTTPDPageBuilder(getBody(), getTitle(), getStyle(), getScript()).getResponse();
+ }
- try
- {
- session.parseBody(files);
- }
- catch (Exception ex)
- {
- Log.severe(ex);
- }
+ protected final Map getFiles() {
+ Map files = new HashMap();
- return files;
- }
+ try {
+ session.parseBody(files);
+ } catch (Exception ex) {
+ Log.severe(ex);
+ }
+
+ return files;
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDPageBuilder.java b/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDPageBuilder.java
index 1152a21..c9e9971 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDPageBuilder.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDPageBuilder.java
@@ -3,68 +3,65 @@ package me.StevenLawson.TotalFreedomMod.httpd;
import me.StevenLawson.TotalFreedomMod.httpd.NanoHTTPD.Response;
public class HTTPDPageBuilder {
- private static final String TEMPLATE = "\r\n"
- + "\r\n"
- + "\r\n"
- + "{$TITLE}\r\n"
- + "\r\n"
- + "{$STYLE}"
- + "{$SCRIPT}"
- + "\r\n"
- + "\r\n{$BODY}\r\n"
- + "\r\n";
- private static final String STYLE = "\r\n";
- private static final String SCRIPT = "\r\n"
- + "\r\n"
- + "\r\n";
- //
- private String body = null;
- private String title = null;
- private String style = null;
- private String script = null;
- public HTTPDPageBuilder() {
- }
+ private static final String TEMPLATE = "\r\n"
+ + "\r\n"
+ + "\r\n"
+ + "{$TITLE}\r\n"
+ + "\r\n"
+ + "{$STYLE}"
+ + "{$SCRIPT}"
+ + "\r\n"
+ + "\r\n{$BODY}\r\n"
+ + "\r\n";
+ private static final String STYLE = "\r\n";
+ private static final String SCRIPT =
+ "\r\n"
+ + "\r\n"
+ + "\r\n";
+ //
+ private String body = null;
+ private String title = null;
+ private String style = null;
+ private String script = null;
- public HTTPDPageBuilder(String body, String title, String style, String script) {
- this.body = body;
- this.title = title;
- this.style = style;
- this.script = script;
- }
+ public HTTPDPageBuilder() {
+ }
- public void setBody(String body)
- {
- this.body = body;
- }
+ public HTTPDPageBuilder(String body, String title, String style, String script) {
+ this.body = body;
+ this.title = title;
+ this.style = style;
+ this.script = script;
+ }
- public void setTitle(String title)
- {
- this.title = title;
- }
+ public void setBody(String body) {
+ this.body = body;
+ }
- public void setStyle(String style)
- {
- this.style = style;
- }
+ public void setTitle(String title) {
+ this.title = title;
+ }
- public void setScript(String script)
- {
- this.script = script;
- }
+ public void setStyle(String style) {
+ this.style = style;
+ }
- public Response getResponse()
- {
- return new Response(this.toString());
- }
+ public void setScript(String script) {
+ this.script = script;
+ }
- @Override
- public String toString()
- {
- return TEMPLATE
- .replace("{$BODY}", this.body == null ? "" : this.body)
- .replace("{$TITLE}", this.title == null ? "" : this.title)
- .replace("{$STYLE}", this.style == null ? "" : STYLE.replace("{$STYLE}", this.style))
- .replace("{$SCRIPT}", this.script == null ? "" : SCRIPT.replace("{$SCRIPT}", this.script));
- }
+ public Response getResponse() {
+ return new Response(this.toString());
+ }
+
+ @Override
+ public String toString() {
+ return TEMPLATE
+ .replace("{$BODY}", this.body == null ? "" : this.body)
+ .replace("{$TITLE}", this.title == null ? "" : this.title)
+ .replace("{$STYLE}", this.style == null ? "" : STYLE.replace("{$STYLE}", this.style))
+ .replace("{$SCRIPT}",
+ this.script == null ? "" : SCRIPT.replace("{$SCRIPT}", this.script));
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDPermanentBansModule.java b/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDPermanentBansModule.java
index f467381..0bd6143 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDPermanentBansModule.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDPermanentBansModule.java
@@ -1,24 +1,25 @@
package me.StevenLawson.TotalFreedomMod.httpd;
+import java.io.File;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
-import java.io.File;
-
public class HTTPDPermanentBansModule extends HTTPDModule {
- public HTTPDPermanentBansModule(NanoHTTPD.HTTPSession session) {
- super(session);
- }
- @Override
- public NanoHTTPD.Response getResponse() {
- File permbanFile = new File(TotalFreedomMod.plugin.getDataFolder(), TotalFreedomMod.PERMBAN_FILENAME);
- if (permbanFile.exists()) {
- return HTTPDManager.serveFileBasic(new File(TotalFreedomMod.plugin.getDataFolder(), TotalFreedomMod.PERMBAN_FILENAME));
- }
- else
- {
- return new NanoHTTPD.Response(NanoHTTPD.Response.Status.NOT_FOUND, NanoHTTPD.MIME_PLAINTEXT,
- "Error 404: Not Found - The requested resource was not found on this server.");
- }
- }
+ public HTTPDPermanentBansModule(NanoHTTPD.HTTPSession session) {
+ super(session);
+ }
+
+ @Override
+ public NanoHTTPD.Response getResponse() {
+ File permbanFile = new File(TotalFreedomMod.plugin.getDataFolder(),
+ TotalFreedomMod.PERMBAN_FILENAME);
+ if (permbanFile.exists()) {
+ return HTTPDManager.serveFileBasic(
+ new File(TotalFreedomMod.plugin.getDataFolder(), TotalFreedomMod.PERMBAN_FILENAME));
+ } else {
+ return new NanoHTTPD.Response(NanoHTTPD.Response.Status.NOT_FOUND,
+ NanoHTTPD.MIME_PLAINTEXT,
+ "Error 404: Not Found - The requested resource was not found on this server.");
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDPlayersModule.java b/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDPlayersModule.java
index e664cbd..96fed26 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDPlayersModule.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDPlayersModule.java
@@ -1,5 +1,6 @@
package me.StevenLawson.TotalFreedomMod.httpd;
+import java.util.UUID;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import me.StevenLawson.TotalFreedomMod.admin.AdminList;
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
@@ -9,78 +10,71 @@ import org.bukkit.entity.Player;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
-import java.util.UUID;
-
public class HTTPDPlayersModule extends HTTPDModule {
- public HTTPDPlayersModule(NanoHTTPD.HTTPSession session) {
- super(session);
- }
- @Override
- @SuppressWarnings("unchecked")
- public NanoHTTPD.Response getResponse() {
- final JSONObject responseObject = new JSONObject();
+ public HTTPDPlayersModule(NanoHTTPD.HTTPSession session) {
+ super(session);
+ }
- final JSONArray players = new JSONArray();
- final JSONArray superadmins = new JSONArray();
- final JSONArray telnetadmins = new JSONArray();
- final JSONArray senioradmins = new JSONArray();
- final JSONArray developers = new JSONArray();
+ @Override
+ @SuppressWarnings("unchecked")
+ public NanoHTTPD.Response getResponse() {
+ final JSONObject responseObject = new JSONObject();
- // All online players
- for (Player player : TotalFreedomMod.server.getOnlinePlayers())
- {
- players.add(player.getName());
- }
+ final JSONArray players = new JSONArray();
+ final JSONArray superadmins = new JSONArray();
+ final JSONArray telnetadmins = new JSONArray();
+ final JSONArray senioradmins = new JSONArray();
+ final JSONArray developers = new JSONArray();
- // Super admins (non-telnet and non-senior)
- for (UUID superadmin : AdminList.getSuperUUIDs())
- {
- if (AdminList.getSeniorUUIDs().contains(superadmin))
- {
- continue;
- }
+ // All online players
+ for (Player player : TotalFreedomMod.server.getOnlinePlayers()) {
+ players.add(player.getName());
+ }
- if (AdminList.getTelnetUUIDs().contains(superadmin))
- {
- continue;
- }
+ // Super admins (non-telnet and non-senior)
+ for (UUID superadmin : AdminList.getSuperUUIDs()) {
+ if (AdminList.getSeniorUUIDs().contains(superadmin)) {
+ continue;
+ }
- superadmins.add(getName(superadmin));
- }
+ if (AdminList.getTelnetUUIDs().contains(superadmin)) {
+ continue;
+ }
- // Telnet admins (non-senior)
- for (UUID telnetadmin : AdminList.getTelnetUUIDs())
- {
- if (AdminList.getSeniorUUIDs().contains(telnetadmin))
- {
- continue;
- }
- telnetadmins.add(getName(telnetadmin));
- }
+ superadmins.add(getName(superadmin));
+ }
- // Senior admins
- for (UUID senioradmin : AdminList.getSeniorUUIDs())
- {
- senioradmins.add(getName(senioradmin));
- }
+ // Telnet admins (non-senior)
+ for (UUID telnetadmin : AdminList.getTelnetUUIDs()) {
+ if (AdminList.getSeniorUUIDs().contains(telnetadmin)) {
+ continue;
+ }
+ telnetadmins.add(getName(telnetadmin));
+ }
- // Developers
- developers.addAll(Utilities.DEVELOPERS);
+ // Senior admins
+ for (UUID senioradmin : AdminList.getSeniorUUIDs()) {
+ senioradmins.add(getName(senioradmin));
+ }
- responseObject.put("players", players);
- responseObject.put("superadmins", superadmins);
- responseObject.put("telnetadmins", telnetadmins);
- responseObject.put("senioradmins", senioradmins);
- responseObject.put("developers", developers);
+ // Developers
+ developers.addAll(Utilities.DEVELOPERS);
- final NanoHTTPD.Response response = new NanoHTTPD.Response(NanoHTTPD.Response.Status.OK, NanoHTTPD.MIME_JSON, responseObject.toString());
- response.addHeader("Access-Control-Allow-Origin", MainConfig.getString(ConfigurationEntry.HTTPD_ORIGIN));
- return response;
- }
+ responseObject.put("players", players);
+ responseObject.put("superadmins", superadmins);
+ responseObject.put("telnetadmins", telnetadmins);
+ responseObject.put("senioradmins", senioradmins);
+ responseObject.put("developers", developers);
- private String getName(UUID uuid)
- {
- return AdminList.getEntry(uuid).getLastLoginName();
- }
+ final NanoHTTPD.Response response = new NanoHTTPD.Response(NanoHTTPD.Response.Status.OK,
+ NanoHTTPD.MIME_JSON, responseObject.toString());
+ response.addHeader("Access-Control-Allow-Origin",
+ MainConfig.getString(ConfigurationEntry.HTTPD_ORIGIN));
+ return response;
+ }
+
+ private String getName(UUID uuid) {
+ return AdminList.getEntry(uuid).getLastLoginName();
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDSchematicModule.java b/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDSchematicModule.java
index 08ffda4..99c90d9 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDSchematicModule.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDSchematicModule.java
@@ -1,5 +1,14 @@
package me.StevenLawson.TotalFreedomMod.httpd;
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Pattern;
import me.StevenLawson.TotalFreedomMod.Log;
import me.StevenLawson.TotalFreedomMod.admin.Admin;
import me.StevenLawson.TotalFreedomMod.admin.AdminList;
@@ -9,289 +18,246 @@ import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.commons.lang3.StringUtils;
-import java.io.File;
-import java.io.IOException;
-import java.util.*;
-import java.util.regex.Pattern;
-
public class HTTPDSchematicModule extends HTTPDModule {
- private static final File SCHEMATIC_FOLDER = new File("./plugins/WorldEdit/schematics/");
- private static final String REQUEST_FORM_FILE_ELEMENT_NAME = "schematicFile";
- private static final Pattern SCHEMATIC_FILENAME_LC = Pattern.compile("^[a-z0-9_'!,\\-]{1,30}\\.schematic$");
- private static final String[] SCHEMATIC_FILTER = new String[]
- {
- "schematic"
- };
- private static final String UPLOAD_FORM = "";
- public HTTPDSchematicModule(NanoHTTPD.HTTPSession session) {
- super(session);
- }
+ private static final File SCHEMATIC_FOLDER = new File("./plugins/WorldEdit/schematics/");
+ private static final String REQUEST_FORM_FILE_ELEMENT_NAME = "schematicFile";
+ private static final Pattern SCHEMATIC_FILENAME_LC = Pattern.compile(
+ "^[a-z0-9_'!,\\-]{1,30}\\.schematic$");
+ private static final String[] SCHEMATIC_FILTER = new String[]
+ {
+ "schematic"
+ };
+ private static final String UPLOAD_FORM =
+ "";
- @Override
- public Response getResponse()
- {
- try
- {
- return new HTTPDPageBuilder(body(), title(), null, null).getResponse();
- }
- catch (ResponseOverrideException ex)
- {
- return ex.getResponse();
- }
- }
+ public HTTPDSchematicModule(NanoHTTPD.HTTPSession session) {
+ super(session);
+ }
- public String title()
- {
- return "TotalFreedomMod :: Schematic Manager";
- }
+ private static String getArg(String[] args, int index) {
+ String out = (args.length == index + 1 ? args[index] : null);
+ return (out == null ? null : (out.trim().isEmpty() ? null : out.trim()));
+ }
- public String body() throws ResponseOverrideException
- {
- if (!SCHEMATIC_FOLDER.exists())
- {
- return HTMLGenerationTools.paragraph("Can't find the WorldEdit schematic folder.");
- }
+ @Override
+ public Response getResponse() {
+ try {
+ return new HTTPDPageBuilder(body(), title(), null, null).getResponse();
+ } catch (ResponseOverrideException ex) {
+ return ex.getResponse();
+ }
+ }
- final StringBuilder out = new StringBuilder();
+ public String title() {
+ return "TotalFreedomMod :: Schematic Manager";
+ }
- final String[] args = StringUtils.split(uri, "/");
- final ModuleMode mode = ModuleMode.getMode(getArg(args, 1));
+ public String body() throws ResponseOverrideException {
+ if (!SCHEMATIC_FOLDER.exists()) {
+ return HTMLGenerationTools.paragraph("Can't find the WorldEdit schematic folder.");
+ }
- switch (mode)
- {
- case LIST:
- {
- Collection schematics = FileUtils.listFiles(SCHEMATIC_FOLDER, SCHEMATIC_FILTER, false);
+ final StringBuilder out = new StringBuilder();
- final List schematicsFormatted = new ArrayList();
- for (File schematic : schematics)
- {
- String filename = StringEscapeUtils.escapeHtml4(schematic.getName());
+ final String[] args = StringUtils.split(uri, "/");
+ final ModuleMode mode = ModuleMode.getMode(getArg(args, 1));
- if (SCHEMATIC_FILENAME_LC.matcher(filename.trim().toLowerCase()).find())
- {
- schematicsFormatted.add("" + filename + "");
- }
- else
- {
- schematicsFormatted.add("" + filename + " - (Illegal filename, can't download)");
- }
- }
+ switch (mode) {
+ case LIST: {
+ Collection schematics = FileUtils.listFiles(SCHEMATIC_FOLDER,
+ SCHEMATIC_FILTER, false);
- Collections.sort(schematicsFormatted, new Comparator()
- {
- @Override
- public int compare(String a, String b)
- {
- return a.toLowerCase().compareTo(b.toLowerCase());
- }
- });
+ final List schematicsFormatted = new ArrayList();
+ for (File schematic : schematics) {
+ String filename = StringEscapeUtils.escapeHtml4(schematic.getName());
- out
- .append(HTMLGenerationTools.heading("Schematics:", 1))
- .append("")
- .append(StringUtils.join(schematicsFormatted, "\r\n"))
- .append("
");
+ if (SCHEMATIC_FILENAME_LC.matcher(filename.trim().toLowerCase()).find()) {
+ schematicsFormatted.add(
+ ""
+ + filename + "");
+ } else {
+ schematicsFormatted.add(
+ "" + filename + " - (Illegal filename, can't download)");
+ }
+ }
- break;
- }
- case DOWNLOAD:
- {
- try
- {
- throw new ResponseOverrideException(downloadSchematic(params.get("schematicName")));
- }
- catch (SchematicTransferException ex)
- {
- out.append(HTMLGenerationTools.paragraph("Error downloading schematic: " + ex.getMessage()));
- }
- break;
- }
- case UPLOAD:
- {
- final String remoteAddress = socket.getInetAddress().getHostAddress();
- if (!isAuthorized(remoteAddress))
- {
- out.append(HTMLGenerationTools.paragraph("Schematic upload access denied: Your IP, " + remoteAddress + ", is not registered to a superadmin on this server."));
- }
- else
- {
- if (method == Method.POST)
- {
- try
- {
- uploadSchematic();
- out.append(HTMLGenerationTools.paragraph("Schematic uploaded successfully."));
- }
- catch (SchematicTransferException ex)
- {
- out.append(HTMLGenerationTools.paragraph("Error uploading schematic: " + ex.getMessage()));
- }
- }
- else
- {
- out.append(UPLOAD_FORM);
- }
- }
- break;
- }
- default:
- {
- out.append(HTMLGenerationTools.paragraph("Invalid request mode."));
- break;
- }
- }
+ Collections.sort(schematicsFormatted, new Comparator() {
+ @Override
+ public int compare(String a, String b) {
+ return a.toLowerCase().compareTo(b.toLowerCase());
+ }
+ });
- return out.toString();
- }
+ out
+ .append(HTMLGenerationTools.heading("Schematics:", 1))
+ .append("")
+ .append(StringUtils.join(schematicsFormatted, "\r\n"))
+ .append("
");
- private boolean uploadSchematic() throws SchematicTransferException
- {
- Map files = getFiles();
+ break;
+ }
+ case DOWNLOAD: {
+ try {
+ throw new ResponseOverrideException(
+ downloadSchematic(params.get("schematicName")));
+ } catch (SchematicTransferException ex) {
+ out.append(HTMLGenerationTools.paragraph(
+ "Error downloading schematic: " + ex.getMessage()));
+ }
+ break;
+ }
+ case UPLOAD: {
+ final String remoteAddress = socket.getInetAddress().getHostAddress();
+ if (!isAuthorized(remoteAddress)) {
+ out.append(HTMLGenerationTools.paragraph(
+ "Schematic upload access denied: Your IP, " + remoteAddress
+ + ", is not registered to a superadmin on this server."));
+ } else {
+ if (method == Method.POST) {
+ try {
+ uploadSchematic();
+ out.append(
+ HTMLGenerationTools.paragraph("Schematic uploaded successfully."));
+ } catch (SchematicTransferException ex) {
+ out.append(HTMLGenerationTools.paragraph(
+ "Error uploading schematic: " + ex.getMessage()));
+ }
+ } else {
+ out.append(UPLOAD_FORM);
+ }
+ }
+ break;
+ }
+ default: {
+ out.append(HTMLGenerationTools.paragraph("Invalid request mode."));
+ break;
+ }
+ }
- final String tempFileName = files.get(REQUEST_FORM_FILE_ELEMENT_NAME);
- if (tempFileName == null)
- {
- throw new SchematicTransferException("No file transmitted to server.");
- }
+ return out.toString();
+ }
- final File tempFile = new File(tempFileName);
- if (!tempFile.exists())
- {
- throw new SchematicTransferException();
- }
+ private boolean uploadSchematic() throws SchematicTransferException {
+ Map files = getFiles();
- String origFileName = params.get(REQUEST_FORM_FILE_ELEMENT_NAME);
- if (origFileName == null || (origFileName = origFileName.trim()).isEmpty())
- {
- throw new SchematicTransferException("Can't resolve original file name.");
- }
+ final String tempFileName = files.get(REQUEST_FORM_FILE_ELEMENT_NAME);
+ if (tempFileName == null) {
+ throw new SchematicTransferException("No file transmitted to server.");
+ }
- if (tempFile.length() > FileUtils.ONE_KB * 64L)
- {
- throw new SchematicTransferException("Schematic is too big (64kb max).");
- }
+ final File tempFile = new File(tempFileName);
+ if (!tempFile.exists()) {
+ throw new SchematicTransferException();
+ }
- if (!SCHEMATIC_FILENAME_LC.matcher(origFileName.toLowerCase()).find())
- {
- throw new SchematicTransferException("File name must be alphanumeric, between 1 and 30 characters long (inclusive), and have a \".schematic\" extension.");
- }
+ String origFileName = params.get(REQUEST_FORM_FILE_ELEMENT_NAME);
+ if (origFileName == null || (origFileName = origFileName.trim()).isEmpty()) {
+ throw new SchematicTransferException("Can't resolve original file name.");
+ }
- final File targetFile = new File(SCHEMATIC_FOLDER.getPath(), origFileName);
- if (targetFile.exists())
- {
- throw new SchematicTransferException("Schematic already exists on the server.");
- }
+ if (tempFile.length() > FileUtils.ONE_KB * 64L) {
+ throw new SchematicTransferException("Schematic is too big (64kb max).");
+ }
- try
- {
- FileUtils.copyFile(tempFile, targetFile);
- }
- catch (IOException ex)
- {
- Log.severe(ex);
- throw new SchematicTransferException();
- }
+ if (!SCHEMATIC_FILENAME_LC.matcher(origFileName.toLowerCase()).find()) {
+ throw new SchematicTransferException(
+ "File name must be alphanumeric, between 1 and 30 characters long (inclusive), and have a \".schematic\" extension.");
+ }
- return true;
- }
+ final File targetFile = new File(SCHEMATIC_FOLDER.getPath(), origFileName);
+ if (targetFile.exists()) {
+ throw new SchematicTransferException("Schematic already exists on the server.");
+ }
- private Response downloadSchematic(String schematicName) throws SchematicTransferException
- {
- if (schematicName == null || !SCHEMATIC_FILENAME_LC.matcher((schematicName = schematicName.trim()).toLowerCase()).find())
- {
- throw new SchematicTransferException("Invalid schematic name requested: " + schematicName);
- }
+ try {
+ FileUtils.copyFile(tempFile, targetFile);
+ } catch (IOException ex) {
+ Log.severe(ex);
+ throw new SchematicTransferException();
+ }
- final File targetFile = new File(SCHEMATIC_FOLDER.getPath(), schematicName);
- if (!targetFile.exists())
- {
- throw new SchematicTransferException("Schematic not found: " + schematicName);
- }
+ return true;
+ }
- Response response = HTTPDManager.serveFileBasic(targetFile);
+ private Response downloadSchematic(String schematicName) throws SchematicTransferException {
+ if (schematicName == null || !SCHEMATIC_FILENAME_LC.matcher(
+ (schematicName = schematicName.trim()).toLowerCase()).find()) {
+ throw new SchematicTransferException(
+ "Invalid schematic name requested: " + schematicName);
+ }
- response.addHeader("Content-Disposition", "attachment; filename=" + targetFile.getName() + ";");
+ final File targetFile = new File(SCHEMATIC_FOLDER.getPath(), schematicName);
+ if (!targetFile.exists()) {
+ throw new SchematicTransferException("Schematic not found: " + schematicName);
+ }
- return response;
- }
+ Response response = HTTPDManager.serveFileBasic(targetFile);
- private boolean isAuthorized(String remoteAddress)
- {
- Admin entry = AdminList.getEntryByIp(remoteAddress);
- return entry != null && entry.isActivated();
- }
+ response.addHeader("Content-Disposition",
+ "attachment; filename=" + targetFile.getName() + ";");
- private static class SchematicTransferException extends Exception
- {
- public SchematicTransferException()
- {
- }
+ return response;
+ }
- public SchematicTransferException(String string)
- {
- super(string);
- }
- }
+ private boolean isAuthorized(String remoteAddress) {
+ Admin entry = AdminList.getEntryByIp(remoteAddress);
+ return entry != null && entry.isActivated();
+ }
- private static class ResponseOverrideException extends Exception
- {
- private final Response response;
+ private enum ModuleMode {
+ LIST("list"),
+ UPLOAD("upload"),
+ DOWNLOAD("download"),
+ INVALID(null);
+ //
+ private final String modeName;
- public ResponseOverrideException(Response response)
- {
- this.response = response;
- }
+ ModuleMode(String modeName) {
+ this.modeName = modeName;
+ }
- public Response getResponse()
- {
- return response;
- }
- }
+ public static ModuleMode getMode(String needle) {
+ for (ModuleMode mode : values()) {
+ final String haystack = mode.toString();
+ if (haystack != null && haystack.equalsIgnoreCase(needle)) {
+ return mode;
+ }
+ }
+ return INVALID;
+ }
- private static String getArg(String[] args, int index)
- {
- String out = (args.length == index + 1 ? args[index] : null);
- return (out == null ? null : (out.trim().isEmpty() ? null : out.trim()));
- }
+ @Override
+ public String toString() {
+ return this.modeName;
+ }
+ }
- private enum ModuleMode
- {
- LIST("list"),
- UPLOAD("upload"),
- DOWNLOAD("download"),
- INVALID(null);
- //
- private final String modeName;
+ private static class SchematicTransferException extends Exception {
- ModuleMode(String modeName)
- {
- this.modeName = modeName;
- }
+ public SchematicTransferException() {
+ }
- @Override
- public String toString()
- {
- return this.modeName;
- }
+ public SchematicTransferException(String string) {
+ super(string);
+ }
+ }
- public static ModuleMode getMode(String needle)
- {
- for (ModuleMode mode : values())
- {
- final String haystack = mode.toString();
- if (haystack != null && haystack.equalsIgnoreCase(needle))
- {
- return mode;
- }
- }
- return INVALID;
- }
- }
+ private static class ResponseOverrideException extends Exception {
+
+ private final Response response;
+
+ public ResponseOverrideException(Response response) {
+ this.response = response;
+ }
+
+ public Response getResponse() {
+ return response;
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDumpModule.java b/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDumpModule.java
index 86a7e93..cc8f7d3 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDumpModule.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/HTTPDumpModule.java
@@ -1,111 +1,100 @@
package me.StevenLawson.TotalFreedomMod.httpd;
-import me.StevenLawson.TotalFreedomMod.Log;
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang3.StringUtils;
+import static me.StevenLawson.TotalFreedomMod.httpd.HTMLGenerationTools.list;
+import static me.StevenLawson.TotalFreedomMod.httpd.HTMLGenerationTools.paragraph;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.Map;
-
-import static me.StevenLawson.TotalFreedomMod.httpd.HTMLGenerationTools.list;
-import static me.StevenLawson.TotalFreedomMod.httpd.HTMLGenerationTools.paragraph;
+import me.StevenLawson.TotalFreedomMod.Log;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang3.StringUtils;
public class HTTPDumpModule extends HTTPDModule {
- private File echoFile = null;
- private final String body;
- public HTTPDumpModule(NanoHTTPD.HTTPSession session) {
- super(session);
+ private final String body;
+ private File echoFile = null;
- //Body needs to be computed before getResponse, so we know if a text response or a file echo is needed.
- this.body = body();
- }
+ public HTTPDumpModule(NanoHTTPD.HTTPSession session) {
+ super(session);
- @Override
- public NanoHTTPD.Response getResponse()
- {
- String echo = params.get("echo");
- boolean doEcho = echo != null && ((echo = echo.toLowerCase().trim()).equalsIgnoreCase("true") || echo.equalsIgnoreCase("1"));
+ //Body needs to be computed before getResponse, so we know if a text response or a file echo is needed.
+ this.body = body();
+ }
- if (doEcho && this.echoFile != null && this.echoFile.exists())
- {
- return HTTPDManager.serveFileBasic(this.echoFile);
- }
- else
- {
- return super.getResponse();
- }
- }
+ @Override
+ public NanoHTTPD.Response getResponse() {
+ String echo = params.get("echo");
+ boolean doEcho =
+ echo != null && ((echo = echo.toLowerCase().trim()).equalsIgnoreCase("true")
+ || echo.equalsIgnoreCase("1"));
- @Override
- public String getBody()
- {
- return body;
- }
+ if (doEcho && this.echoFile != null && this.echoFile.exists()) {
+ return HTTPDManager.serveFileBasic(this.echoFile);
+ } else {
+ return super.getResponse();
+ }
+ }
- private String body()
- {
- StringBuilder responseBody = new StringBuilder();
+ @Override
+ public String getBody() {
+ return body;
+ }
- String remoteAddress = socket.getInetAddress().getHostAddress();
+ private String body() {
+ StringBuilder responseBody = new StringBuilder();
- String[] args = StringUtils.split(uri, "/");
+ String remoteAddress = socket.getInetAddress().getHostAddress();
- Map files = getFiles();
+ String[] args = StringUtils.split(uri, "/");
- responseBody
- .append(paragraph("URI: " + uri))
- .append(paragraph("args (Length: " + args.length + "): " + StringUtils.join(args, ",")))
- .append(paragraph("Method: " + method.toString()))
- .append(paragraph("Remote Address: " + remoteAddress))
- .append(paragraph("Headers:"))
- .append(list(headers))
- .append(paragraph("Params:"))
- .append(list(params))
- .append(paragraph("Files:"))
- .append(list(files));
+ Map files = getFiles();
- Iterator> it = files.entrySet().iterator();
- while (it.hasNext())
- {
- Map.Entry entry = it.next();
- String formName = entry.getKey();
- String tempFileName = entry.getValue();
- String origFileName = params.get(formName);
+ responseBody
+ .append(paragraph("URI: " + uri))
+ .append(paragraph("args (Length: " + args.length + "): " + StringUtils.join(args, ",")))
+ .append(paragraph("Method: " + method.toString()))
+ .append(paragraph("Remote Address: " + remoteAddress))
+ .append(paragraph("Headers:"))
+ .append(list(headers))
+ .append(paragraph("Params:"))
+ .append(list(params))
+ .append(paragraph("Files:"))
+ .append(list(files));
- File tempFile = new File(tempFileName);
- if (tempFile.exists())
- {
- this.echoFile = tempFile;
+ Iterator> it = files.entrySet().iterator();
+ while (it.hasNext()) {
+ Map.Entry entry = it.next();
+ String formName = entry.getKey();
+ String tempFileName = entry.getValue();
+ String origFileName = params.get(formName);
- if (origFileName.contains("../"))
- {
- continue;
- }
+ File tempFile = new File(tempFileName);
+ if (tempFile.exists()) {
+ this.echoFile = tempFile;
- String targetFileName = "./public_html/uploads/" + origFileName;
+ if (origFileName.contains("../")) {
+ continue;
+ }
- File targetFile = new File(targetFileName);
+ String targetFileName = "./public_html/uploads/" + origFileName;
- try
- {
- FileUtils.copyFile(tempFile, targetFile);
- }
- catch (IOException ex)
- {
- Log.severe(ex);
- }
- }
- }
+ File targetFile = new File(targetFileName);
- return responseBody.toString();
- }
+ try {
+ FileUtils.copyFile(tempFile, targetFile);
+ } catch (IOException ex) {
+ Log.severe(ex);
+ }
+ }
+ }
- @Override
- public String getTitle()
- {
- return "TotalFreedomMod :: Request Debug Dumper";
- }
+ return responseBody.toString();
+ }
+
+ @Override
+ public String getTitle() {
+ return "TotalFreedomMod :: Request Debug Dumper";
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/LogFileModule.java b/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/LogFileModule.java
index 17e9dab..6eef38c 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/LogFileModule.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/LogFileModule.java
@@ -1,23 +1,21 @@
package me.StevenLawson.TotalFreedomMod.httpd;
+import java.io.File;
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
-import java.io.File;
-
public class LogFileModule extends HTTPDFileModule {
- public LogFileModule(NanoHTTPD.HTTPSession session) {
- super(session);
- }
- @Override
- public NanoHTTPD.Response getResponse() {
- if (ConfigurationEntry.LOGS_SECRET.getString().equals(params.get("password")))
- {
- return serveFile("latest.log", params, new File("./logs"));
- }
- else
- {
- return new NanoHTTPD.Response(NanoHTTPD.Response.Status.FORBIDDEN, NanoHTTPD.MIME_PLAINTEXT, "Incorrect password.");
- }
- }
+ public LogFileModule(NanoHTTPD.HTTPSession session) {
+ super(session);
+ }
+
+ @Override
+ public NanoHTTPD.Response getResponse() {
+ if (ConfigurationEntry.LOGS_SECRET.getString().equals(params.get("password"))) {
+ return serveFile("latest.log", params, new File("./logs"));
+ } else {
+ return new NanoHTTPD.Response(NanoHTTPD.Response.Status.FORBIDDEN,
+ NanoHTTPD.MIME_PLAINTEXT, "Incorrect password.");
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/NanoHTTPD.java b/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/NanoHTTPD.java
index 9ea59d7..b38a5be 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/NanoHTTPD.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/httpd/NanoHTTPD.java
@@ -40,7 +40,8 @@ import me.StevenLawson.TotalFreedomMod.Log;
*
*
* NanoHTTPD
- * Copyright (c) 2012-2013 by Paul S. Hawke, 2001,2005-2013 by Jarno Elonen, 2010 by Konstantinos Togias
+ * Copyright (c) 2012-2013 by Paul S. Hawke, 2001,2005-2013 by Jarno Elonen, 2010 by
+ * Konstantinos Togias
*
*
* Features + limitations:
@@ -79,1492 +80,1295 @@ import me.StevenLawson.TotalFreedomMod.Log;
*
* See the separate "LICENSE.md" file for the distribution license (Modified BSD licence)
*/
-public abstract class NanoHTTPD
-{
- /**
- * Common mime type for dynamic content: plain text
- */
- public static final String MIME_PLAINTEXT = "text/plain";
- /**
- * Common mime type for dynamic content: html
- */
- public static final String MIME_HTML = "text/html";
- // TFM Start
- /**
- * Common mime type for dynamic content: json
- */
- public static final String MIME_JSON = "application/json";
- // TFM End
- /**
- * Pseudo-Parameter to use to store the actual query string in the parameters map for later re-processing.
- */
- private static final String QUERY_STRING_PARAMETER = "NanoHttpd.QUERY_STRING";
- private final String hostname;
- private final int myPort;
- private ServerSocket myServerSocket;
- private Thread myThread;
- /**
- * Pluggable strategy for asynchronously executing requests.
- */
- private AsyncRunner asyncRunner;
- /**
- * Pluggable strategy for creating and cleaning up temporary files.
- */
- private TempFileManagerFactory tempFileManagerFactory;
-
- /**
- * Constructs an HTTP server on given port.
- */
- public NanoHTTPD(int port)
- {
- this(null, port);
- }
-
- /**
- * Constructs an HTTP server on given hostname and port.
- */
- public NanoHTTPD(String hostname, int port)
- {
- this.hostname = hostname;
- this.myPort = port;
- setTempFileManagerFactory(new DefaultTempFileManagerFactory());
- setAsyncRunner(new DefaultAsyncRunner());
- }
-
- private static final void safeClose(ServerSocket serverSocket)
- {
- if (serverSocket != null)
- {
- try
- {
- serverSocket.close();
- }
- catch (IOException e)
- {
- }
- }
- }
-
- private static final void safeClose(Socket socket)
- {
- if (socket != null)
- {
- try
- {
- socket.close();
- }
- catch (IOException e)
- {
- }
- }
- }
-
- private static final void safeClose(Closeable closeable)
- {
- if (closeable != null)
- {
- try
- {
- closeable.close();
- }
- catch (IOException e)
- {
- }
- }
- }
-
- /**
- * Start the server.
- *
- * @throws IOException if the socket is in use.
- */
- public void start() throws IOException
- {
- myServerSocket = new ServerSocket();
- myServerSocket.bind((hostname != null) ? new InetSocketAddress(hostname, myPort) : new InetSocketAddress(myPort));
-
- myThread = new Thread(new Runnable()
- {
- @Override
- public void run()
- {
- do
- {
- try
- {
- final Socket finalAccept = myServerSocket.accept();
- final InputStream inputStream = finalAccept.getInputStream();
- if (inputStream == null)
- {
- safeClose(finalAccept);
- }
- else
- {
- asyncRunner.exec(new Runnable()
- {
- @Override
- public void run()
- {
- OutputStream outputStream = null;
- try
- {
- outputStream = finalAccept.getOutputStream();
- TempFileManager tempFileManager = tempFileManagerFactory.create();
- HTTPSession session = new HTTPSession(tempFileManager, inputStream, outputStream, finalAccept);
- while (!finalAccept.isClosed())
- {
- session.execute();
- }
- }
- catch (Exception e)
- {
- // When the socket is closed by the client, we throw our own SocketException
- // to break the "keep alive" loop above.
- if (!(e instanceof SocketException && "NanoHttpd Shutdown".equals(e.getMessage())))
- {
- Log.severe(e);
- }
- }
- finally
- {
- safeClose(outputStream);
- safeClose(inputStream);
- safeClose(finalAccept);
- }
- }
- });
- }
- }
- catch (IOException e)
- {
- }
- }
- while (!myServerSocket.isClosed());
- }
- });
- myThread.setDaemon(true);
- myThread.setName("NanoHttpd Main Listener");
- myThread.start();
- }
-
- /**
- * Stop the server.
- */
- public void stop()
- {
- try
- {
- safeClose(myServerSocket);
- myThread.join();
- }
- catch (Exception e)
- {
- Log.severe(e);
- }
- }
-
- public final int getListeningPort()
- {
- return myServerSocket == null ? -1 : myServerSocket.getLocalPort();
- }
-
- public final boolean wasStarted()
- {
- return myServerSocket != null && myThread != null;
- }
-
- public final boolean isAlive()
- {
- return wasStarted() && !myServerSocket.isClosed() && myThread.isAlive();
- }
-
- /**
- * Override this to customize the server.
- *
- *
- * (By default, this delegates to serveFile() and allows directory listing.)
- *
- * @param uri Percent-decoded URI without parameters, for example "/index.cgi"
- * @param method "GET", "POST" etc.
- * @param parms Parsed, percent decoded parameters from URI and, in case of POST, data.
- * @param headers Header entries, percent decoded
- * @return HTTP response, see class Response for details
- */
- @Deprecated
- public Response serve(String uri, Method method, Map headers, Map parms,
- Map files)
- {
- return new Response(Response.Status.NOT_FOUND, MIME_PLAINTEXT, "Not Found");
- }
-
- /**
- * Override this to customize the server.
- *
- *
- * (By default, this delegates to serveFile() and allows directory listing.)
- *
- * @param session The HTTP session
- * @return HTTP response, see class Response for details
- */
- public Response serve(HTTPSession session)
- {
- Map files = new HashMap();
- Method method = session.getMethod();
- if (Method.PUT.equals(method) || Method.POST.equals(method))
- {
- try
- {
- session.parseBody(files);
- }
- catch (IOException ioe)
- {
- return new Response(Response.Status.INTERNAL_ERROR, MIME_PLAINTEXT, "SERVER INTERNAL ERROR: IOException: " + ioe.getMessage());
- }
- catch (ResponseException re)
- {
- return new Response(re.getStatus(), MIME_PLAINTEXT, re.getMessage());
- }
- }
-
- return serve(session.getUri(), method, session.getHeaders(), session.getParms(), files);
- }
-
- /**
- * Decode percent encoded String
values.
- *
- * @param str the percent encoded String
- * @return expanded form of the input, for example "foo%20bar" becomes "foo bar"
- */
- protected String decodePercent(String str)
- {
- String decoded = null;
- try
- {
- decoded = URLDecoder.decode(str, "UTF8");
- }
- catch (UnsupportedEncodingException ignored)
- {
- }
- return decoded;
- }
-
- /**
- * Decode parameters from a URL, handing the case where a single parameter name might have been
- * supplied several times, by return lists of values. In general these lists will contain a single
- * element.
- *
- * @param parms original NanoHttpd parameters values, as passed to the serve()
method.
- * @return a map of String
(parameter name) to List<String>
(a list of the values supplied).
- */
- protected Map> decodeParameters(Map parms)
- {
- return this.decodeParameters(parms.get(QUERY_STRING_PARAMETER));
- }
-
- /**
- * Decode parameters from a URL, handing the case where a single parameter name might have been
- * supplied several times, by return lists of values. In general these lists will contain a single
- * element.
- *
- * @param queryString a query string pulled from the URL.
- * @return a map of String
(parameter name) to List<String>
(a list of the values supplied).
- */
- protected Map> decodeParameters(String queryString)
- {
- Map> parms = new HashMap>();
- if (queryString != null)
- {
- StringTokenizer st = new StringTokenizer(queryString, "&");
- while (st.hasMoreTokens())
- {
- String e = st.nextToken();
- int sep = e.indexOf('=');
- String propertyName = (sep >= 0) ? decodePercent(e.substring(0, sep)).trim() : decodePercent(e).trim();
- if (!parms.containsKey(propertyName))
- {
- parms.put(propertyName, new ArrayList());
- }
- String propertyValue = (sep >= 0) ? decodePercent(e.substring(sep + 1)) : null;
- if (propertyValue != null)
- {
- parms.get(propertyName).add(propertyValue);
- }
- }
- }
- return parms;
- }
-
- // ------------------------------------------------------------------------------- //
- //
- // Threading Strategy.
- //
- // ------------------------------------------------------------------------------- //
- /**
- * Pluggable strategy for asynchronously executing requests.
- *
- * @param asyncRunner new strategy for handling threads.
- */
- public void setAsyncRunner(AsyncRunner asyncRunner)
- {
- this.asyncRunner = asyncRunner;
- }
-
- // ------------------------------------------------------------------------------- //
- //
- // Temp file handling strategy.
- //
- // ------------------------------------------------------------------------------- //
- /**
- * Pluggable strategy for creating and cleaning up temporary files.
- *
- * @param tempFileManagerFactory new strategy for handling temp files.
- */
- public void setTempFileManagerFactory(TempFileManagerFactory tempFileManagerFactory)
- {
- this.tempFileManagerFactory = tempFileManagerFactory;
- }
-
- /**
- * HTTP Request methods, with the ability to decode a String
back to its enum value.
- */
- public enum Method
- {
- GET, PUT, POST, DELETE, HEAD;
-
- static Method lookup(String method)
- {
- for (Method m : Method.values())
- {
- if (m.toString().equalsIgnoreCase(method))
- {
- return m;
- }
- }
- return null;
- }
- }
-
- /**
- * Pluggable strategy for asynchronously executing requests.
- */
- public interface AsyncRunner
- {
- void exec(Runnable code);
- }
-
- /**
- * Factory to create temp file managers.
- */
- public interface TempFileManagerFactory
- {
- TempFileManager create();
- }
-
- // ------------------------------------------------------------------------------- //
- /**
- * Temp file manager.
- *
- * Temp file managers are created 1-to-1 with incoming requests, to create and cleanup
- * temporary files created as a result of handling the request.
- */
- public interface TempFileManager
- {
- TempFile createTempFile() throws Exception;
-
- void clear();
- }
-
- /**
- * A temp file.
- *
- * Temp files are responsible for managing the actual temporary storage and cleaning
- * themselves up when no longer needed.
- */
- public interface TempFile
- {
- OutputStream open() throws Exception;
-
- void delete() throws Exception;
-
- String getName();
- }
-
- /**
- * Default threading strategy for NanoHttpd.
- *
- * By default, the server spawns a new Thread for every incoming request. These are set
- * to daemon status, and named according to the request number. The name is
- * useful when profiling the application.
- */
- public static class DefaultAsyncRunner implements AsyncRunner
- {
- private long requestCount;
-
- @Override
- public void exec(Runnable code)
- {
- ++requestCount;
- Thread t = new Thread(code);
- t.setDaemon(true);
- t.setName("NanoHttpd Request Processor (#" + requestCount + ")");
- t.start();
- }
- }
-
- /**
- * Default strategy for creating and cleaning up temporary files.
- *
- * This class stores its files in the standard location (that is,
- * wherever java.io.tmpdir
points to). Files are added
- * to an internal list, and deleted when no longer needed (that is,
- * when clear()
is invoked at the end of processing a
- * request).
- */
- public static class DefaultTempFileManager implements TempFileManager
- {
- private final String tmpdir;
- private final List tempFiles;
-
- public DefaultTempFileManager()
- {
- tmpdir = System.getProperty("java.io.tmpdir");
- tempFiles = new ArrayList();
- }
-
- @Override
- public TempFile createTempFile() throws Exception
- {
- DefaultTempFile tempFile = new DefaultTempFile(tmpdir);
- tempFiles.add(tempFile);
- return tempFile;
- }
-
- @Override
- public void clear()
- {
- for (TempFile file : tempFiles)
- {
- try
- {
- file.delete();
- }
- catch (Exception ignored)
- {
- }
- }
- tempFiles.clear();
- }
- }
-
- /**
- * Default strategy for creating and cleaning up temporary files.
- *
- * [>By default, files are created by File.createTempFile()
in
- * the directory specified.
- */
- public static class DefaultTempFile implements TempFile
- {
- private final File file;
- private final OutputStream fstream;
-
- public DefaultTempFile(String tempdir) throws IOException
- {
- file = File.createTempFile("NanoHTTPD-", "", new File(tempdir));
- fstream = new FileOutputStream(file);
- }
-
- @Override
- public OutputStream open() throws Exception
- {
- return fstream;
- }
-
- @Override
- public void delete() throws Exception
- {
- safeClose(fstream);
- file.delete();
- }
-
- @Override
- public String getName()
- {
- return file.getAbsolutePath();
- }
- }
-
- /**
- * HTTP response. Return one of these from serve().
- */
- public static class Response
- {
- /**
- * HTTP status code after processing, e.g. "200 OK", HTTP_OK
- */
- private Status status;
- /**
- * MIME type of content, e.g. "text/html"
- */
- private String mimeType;
- /**
- * Data of the response, may be null.
- */
- private InputStream data;
- /**
- * Headers for the HTTP response. Use addHeader() to add lines.
- */
- private final Map header = new HashMap();
- /**
- * The request method that spawned this response.
- */
- private Method requestMethod;
- /**
- * Use chunkedTransfer
- */
- private boolean chunkedTransfer;
-
- /**
- * Default constructor: response = HTTP_OK, mime = MIME_HTML and your supplied message
- */
- public Response(String msg)
- {
- this(Status.OK, MIME_HTML, msg);
- }
-
- /**
- * Basic constructor.
- */
- public Response(Status status, String mimeType, InputStream data)
- {
- this.status = status;
- this.mimeType = mimeType;
- this.data = data;
- }
-
- /**
- * Convenience method that makes an InputStream out of given text.
- */
- public Response(Status status, String mimeType, String txt)
- {
- this.status = status;
- this.mimeType = mimeType;
- this.data = txt != null ? new ByteArrayInputStream(txt.getBytes(StandardCharsets.UTF_8)) : null;
- }
-
- /**
- * Adds given line to the header.
- */
- public void addHeader(String name, String value)
- {
- header.put(name, value);
- }
-
- /**
- * Sends given response to the socket.
- */
- private void send(OutputStream outputStream)
- {
- String mime = mimeType;
- SimpleDateFormat gmtFrmt = new SimpleDateFormat("E, d MMM yyyy HH:mm:ss 'GMT'", Locale.US);
- gmtFrmt.setTimeZone(TimeZone.getTimeZone("GMT"));
-
- try
- {
- if (status == null)
- {
- throw new Error("sendResponse(): Status can't be null.");
- }
- PrintWriter pw = new PrintWriter(outputStream);
- pw.print("HTTP/1.1 " + status.getDescription() + " \r\n");
-
- if (mime != null)
- {
- pw.print("Content-Type: " + mime + "\r\n");
- }
-
- if (header == null || header.get("Date") == null)
- {
- pw.print("Date: " + gmtFrmt.format(new Date()) + "\r\n");
- }
-
- if (header != null)
- {
- for (String key : header.keySet())
- {
- String value = header.get(key);
- pw.print(key + ": " + value + "\r\n");
- }
- }
-
- pw.print("Connection: keep-alive\r\n");
-
- if (requestMethod != Method.HEAD && chunkedTransfer)
- {
- sendAsChunked(outputStream, pw);
- }
- else
- {
- sendAsFixedLength(outputStream, pw);
- }
- outputStream.flush();
- safeClose(data);
- }
- catch (IOException ioe)
- {
- // Couldn't write? No can do.
- }
- }
-
- private void sendAsChunked(OutputStream outputStream, PrintWriter pw) throws IOException
- {
- pw.print("Transfer-Encoding: chunked\r\n");
- pw.print("\r\n");
- pw.flush();
- int BUFFER_SIZE = 16 * 1024;
- byte[] CRLF = "\r\n".getBytes();
- byte[] buff = new byte[BUFFER_SIZE];
- int read;
- while ((read = data.read(buff)) > 0)
- {
- outputStream.write(String.format("%x\r\n", read).getBytes());
- outputStream.write(buff, 0, read);
- outputStream.write(CRLF);
- }
- outputStream.write(String.format("0\r\n\r\n").getBytes());
- }
-
- private void sendAsFixedLength(OutputStream outputStream, PrintWriter pw) throws IOException
- {
- int pending = data != null ? data.available() : 0; // This is to support partial sends, see serveFile()
- pw.print("Content-Length: " + pending + "\r\n");
-
- pw.print("\r\n");
- pw.flush();
-
- if (requestMethod != Method.HEAD && data != null)
- {
- int BUFFER_SIZE = 16 * 1024;
- byte[] buff = new byte[BUFFER_SIZE];
- while (pending > 0)
- {
- int read = data.read(buff, 0, ((pending > BUFFER_SIZE) ? BUFFER_SIZE : pending));
- if (read <= 0)
- {
- break;
- }
- outputStream.write(buff, 0, read);
-
- pending -= read;
- }
- }
- }
-
- public Status getStatus()
- {
- return status;
- }
-
- public void setStatus(Status status)
- {
- this.status = status;
- }
-
- public String getMimeType()
- {
- return mimeType;
- }
-
- public void setMimeType(String mimeType)
- {
- this.mimeType = mimeType;
- }
-
- public InputStream getData()
- {
- return data;
- }
-
- public void setData(InputStream data)
- {
- this.data = data;
- }
-
- public Method getRequestMethod()
- {
- return requestMethod;
- }
-
- public void setRequestMethod(Method requestMethod)
- {
- this.requestMethod = requestMethod;
- }
-
- public void setChunkedTransfer(boolean chunkedTransfer)
- {
- this.chunkedTransfer = chunkedTransfer;
- }
-
- /**
- * Some HTTP response status codes
- */
- public enum Status
- {
- OK(200, "OK"), CREATED(201, "Created"), ACCEPTED(202, "Accepted"), NO_CONTENT(204, "No Content"), PARTIAL_CONTENT(206, "Partial Content"), REDIRECT(301,
- "Moved Permanently"), NOT_MODIFIED(304, "Not Modified"), BAD_REQUEST(400, "Bad Request"), UNAUTHORIZED(401,
- "Unauthorized"), FORBIDDEN(403, "Forbidden"), NOT_FOUND(404, "Not Found"), RANGE_NOT_SATISFIABLE(416,
- "Requested Range Not Satisfiable"), INTERNAL_ERROR(500, "Internal Server Error");
- private final int requestStatus;
- private final String description;
-
- Status(int requestStatus, String description)
- {
- this.requestStatus = requestStatus;
- this.description = description;
- }
-
- public int getRequestStatus()
- {
- return this.requestStatus;
- }
-
- public String getDescription()
- {
- return "" + this.requestStatus + " " + description;
- }
- }
- }
-
- public static final class ResponseException extends Exception
- {
- private final Response.Status status;
-
- public ResponseException(Response.Status status, String message)
- {
- super(message);
- this.status = status;
- }
-
- public ResponseException(Response.Status status, String message, Exception e)
- {
- super(message, e);
- this.status = status;
- }
-
- public Response.Status getStatus()
- {
- return status;
- }
- }
-
- /**
- * Default strategy for creating and cleaning up temporary files.
- */
- private class DefaultTempFileManagerFactory implements TempFileManagerFactory
- {
- @Override
- public TempFileManager create()
- {
- return new DefaultTempFileManager();
- }
- }
-
- /**
- * Handles one session, i.e. parses the HTTP request and returns the response.
- */
- protected class HTTPSession
- {
- public static final int BUFSIZE = 8192;
- private final TempFileManager tempFileManager;
- private final OutputStream outputStream;
- private final Socket socket;
- private InputStream inputStream;
- private int splitbyte;
- private int rlen;
- private String uri;
- private Method method;
- private Map parms;
- private Map headers;
- private CookieHandler cookies;
-
- public HTTPSession(TempFileManager tempFileManager, InputStream inputStream, OutputStream outputStream, Socket socket)
- {
- this.tempFileManager = tempFileManager;
- this.inputStream = inputStream;
- this.outputStream = outputStream;
- this.socket = socket;
- }
-
- public void execute() throws IOException
- {
- try
- {
- // Read the first 8192 bytes.
- // The full header should fit in here.
- // Apache's default header limit is 8KB.
- // Do NOT assume that a single read will get the entire header at once!
- byte[] buf = new byte[BUFSIZE];
- splitbyte = 0;
- rlen = 0;
- {
- int read = inputStream.read(buf, 0, BUFSIZE);
- if (read == -1)
- {
- // socket was been closed
- throw new SocketException("NanoHttpd Shutdown");
- }
- while (read > 0)
- {
- rlen += read;
- splitbyte = findHeaderEnd(buf, rlen);
- if (splitbyte > 0)
- {
- break;
- }
- read = inputStream.read(buf, rlen, BUFSIZE - rlen);
- }
- }
-
- if (splitbyte < rlen)
- {
- ByteArrayInputStream splitInputStream = new ByteArrayInputStream(buf, splitbyte, rlen - splitbyte);
- SequenceInputStream sequenceInputStream = new SequenceInputStream(splitInputStream, inputStream);
- inputStream = sequenceInputStream;
- }
-
- parms = new HashMap();
- headers = new HashMap();
-
- // Create a BufferedReader for parsing the header.
- BufferedReader hin = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(buf, 0, rlen)));
-
- // Decode the header into parms and header java properties
- Map pre = new HashMap();
- decodeHeader(hin, pre, parms, headers);
-
- method = Method.lookup(pre.get("method"));
- if (method == null)
- {
- throw new ResponseException(Response.Status.BAD_REQUEST, "BAD REQUEST: Syntax error.");
- }
-
- uri = pre.get("uri");
-
- cookies = new CookieHandler(headers);
-
- // Ok, now do the serve()
- Response r = serve(this);
- if (r == null)
- {
- throw new ResponseException(Response.Status.INTERNAL_ERROR, "SERVER INTERNAL ERROR: Serve() returned a null response.");
- }
- else
- {
- cookies.unloadQueue(r);
- r.setRequestMethod(method);
- r.send(outputStream);
- }
- }
- catch (SocketException e)
- {
- // throw it out to close socket object (finalAccept)
- throw e;
- }
- catch (IOException ioe)
- {
- Response r = new Response(Response.Status.INTERNAL_ERROR, MIME_PLAINTEXT, "SERVER INTERNAL ERROR: IOException: " + ioe.getMessage());
- r.send(outputStream);
- safeClose(outputStream);
- }
- catch (ResponseException re)
- {
- Response r = new Response(re.getStatus(), MIME_PLAINTEXT, re.getMessage());
- r.send(outputStream);
- safeClose(outputStream);
- }
- finally
- {
- tempFileManager.clear();
- }
- }
-
- protected void parseBody(Map files) throws IOException, ResponseException
- {
- RandomAccessFile randomAccessFile = null;
- BufferedReader in = null;
- try
- {
-
- randomAccessFile = getTmpBucket();
-
- long size;
- if (headers.containsKey("content-length"))
- {
- size = Integer.parseInt(headers.get("content-length"));
- }
- else if (splitbyte < rlen)
- {
- size = rlen - splitbyte;
- }
- else
- {
- size = 0;
- }
-
- // Now read all the body and write it to f
- byte[] buf = new byte[512];
- while (rlen >= 0 && size > 0)
- {
- rlen = inputStream.read(buf, 0, 512);
- size -= rlen;
- if (rlen > 0)
- {
- randomAccessFile.write(buf, 0, rlen);
- }
- }
-
- // Get the raw body as a byte []
- ByteBuffer fbuf = randomAccessFile.getChannel().map(FileChannel.MapMode.READ_ONLY, 0, randomAccessFile.length());
- randomAccessFile.seek(0);
-
- // Create a BufferedReader for easily reading it as string.
- InputStream bin = new FileInputStream(randomAccessFile.getFD());
- in = new BufferedReader(new InputStreamReader(bin));
-
- // If the method is POST, there may be parameters
- // in data section, too, read it:
- if (Method.POST.equals(method))
- {
- String contentType = "";
- String contentTypeHeader = headers.get("content-type");
-
- StringTokenizer st = null;
- if (contentTypeHeader != null)
- {
- st = new StringTokenizer(contentTypeHeader, ",; ");
- if (st.hasMoreTokens())
- {
- contentType = st.nextToken();
- }
- }
-
- if ("multipart/form-data".equalsIgnoreCase(contentType))
- {
- // Handle multipart/form-data
- if (!st.hasMoreTokens())
- {
- throw new ResponseException(Response.Status.BAD_REQUEST, "BAD REQUEST: Content type is multipart/form-data but boundary missing. Usage: GET /example/file.html");
- }
-
- String boundaryStartString = "boundary=";
- int boundaryContentStart = contentTypeHeader.indexOf(boundaryStartString) + boundaryStartString.length();
- String boundary = contentTypeHeader.substring(boundaryContentStart);
- if (boundary.startsWith("\"") && boundary.endsWith("\""))
- {
- boundary = boundary.substring(1, boundary.length() - 1);
- }
-
- decodeMultipartData(boundary, fbuf, in, parms, files);
- }
- else
- {
- // Handle application/x-www-form-urlencoded
- String postLine = "";
- char[] pbuf = new char[512];
- int read = in.read(pbuf);
- while (read >= 0 && !postLine.endsWith("\r\n"))
- {
- postLine += String.valueOf(pbuf, 0, read);
- read = in.read(pbuf);
- }
- postLine = postLine.trim();
- decodeParms(postLine, parms);
- }
- }
- else if (Method.PUT.equals(method))
- {
- files.put("content", saveTmpFile(fbuf, 0, fbuf.limit()));
- }
- }
- finally
- {
- safeClose(randomAccessFile);
- safeClose(in);
- }
- }
-
- /**
- * Decodes the sent headers and loads the data into Key/value pairs
- */
- private void decodeHeader(BufferedReader in, Map pre, Map parms, Map headers)
- throws ResponseException
- {
- try
- {
- // Read the request line
- String inLine = in.readLine();
- if (inLine == null)
- {
- return;
- }
-
- StringTokenizer st = new StringTokenizer(inLine);
- if (!st.hasMoreTokens())
- {
- throw new ResponseException(Response.Status.BAD_REQUEST, "BAD REQUEST: Syntax error. Usage: GET /example/file.html");
- }
-
- pre.put("method", st.nextToken());
-
- if (!st.hasMoreTokens())
- {
- throw new ResponseException(Response.Status.BAD_REQUEST, "BAD REQUEST: Missing URI. Usage: GET /example/file.html");
- }
-
- String uri = st.nextToken();
-
- // Decode parameters from the URI
- int qmi = uri.indexOf('?');
- if (qmi >= 0)
- {
- decodeParms(uri.substring(qmi + 1), parms);
- uri = decodePercent(uri.substring(0, qmi));
- }
- else
- {
- uri = decodePercent(uri);
- }
-
- // If there's another token, it's protocol version,
- // followed by HTTP headers. Ignore version but parse headers.
- // NOTE: this now forces header names lowercase since they are
- // case insensitive and vary by client.
- if (st.hasMoreTokens())
- {
- String line = in.readLine();
- while (line != null && line.trim().length() > 0)
- {
- int p = line.indexOf(':');
- if (p >= 0)
- {
- headers.put(line.substring(0, p).trim().toLowerCase(), line.substring(p + 1).trim());
- }
- line = in.readLine();
- }
- }
-
- pre.put("uri", uri);
- }
- catch (IOException ioe)
- {
- throw new ResponseException(Response.Status.INTERNAL_ERROR, "SERVER INTERNAL ERROR: IOException: " + ioe.getMessage(), ioe);
- }
- }
-
- /**
- * Decodes the Multipart Body data and put it into Key/Value pairs.
- */
- private void decodeMultipartData(String boundary, ByteBuffer fbuf, BufferedReader in, Map parms,
- Map files) throws ResponseException
- {
- try
- {
- int[] bpositions = getBoundaryPositions(fbuf, boundary.getBytes());
- int boundarycount = 1;
- String mpline = in.readLine();
- while (mpline != null)
- {
- if (!mpline.contains(boundary))
- {
- throw new ResponseException(Response.Status.BAD_REQUEST, "BAD REQUEST: Content type is multipart/form-data but next chunk does not start with boundary. Usage: GET /example/file.html");
- }
- boundarycount++;
- Map item = new HashMap();
- mpline = in.readLine();
- while (mpline != null && mpline.trim().length() > 0)
- {
- int p = mpline.indexOf(':');
- if (p != -1)
- {
- item.put(mpline.substring(0, p).trim().toLowerCase(), mpline.substring(p + 1).trim());
- }
- mpline = in.readLine();
- }
- if (mpline != null)
- {
- String contentDisposition = item.get("content-disposition");
- if (contentDisposition == null)
- {
- throw new ResponseException(Response.Status.BAD_REQUEST, "BAD REQUEST: Content type is multipart/form-data but no content-disposition info found. Usage: GET /example/file.html");
- }
- StringTokenizer st = new StringTokenizer(contentDisposition, "; ");
- Map disposition = new HashMap();
- while (st.hasMoreTokens())
- {
- String token = st.nextToken();
- int p = token.indexOf('=');
- if (p != -1)
- {
- disposition.put(token.substring(0, p).trim().toLowerCase(), token.substring(p + 1).trim());
- }
- }
- String pname = disposition.get("name");
- pname = pname.substring(1, pname.length() - 1);
-
- String value = "";
- if (item.get("content-type") == null)
- {
- while (mpline != null && !mpline.contains(boundary))
- {
- mpline = in.readLine();
- if (mpline != null)
- {
- int d = mpline.indexOf(boundary);
- if (d == -1)
- {
- value += mpline;
- }
- else
- {
- value += mpline.substring(0, d - 2);
- }
- }
- }
- }
- else
- {
- if (boundarycount > bpositions.length)
- {
- throw new ResponseException(Response.Status.INTERNAL_ERROR, "Error processing request");
- }
- int offset = stripMultipartHeaders(fbuf, bpositions[boundarycount - 2]);
- String path = saveTmpFile(fbuf, offset, bpositions[boundarycount - 1] - offset - 4);
- files.put(pname, path);
- value = disposition.get("filename");
- value = value.substring(1, value.length() - 1);
- do
- {
- mpline = in.readLine();
- }
- while (mpline != null && !mpline.contains(boundary));
- }
- parms.put(pname, value);
- }
- }
- }
- catch (IOException ioe)
- {
- throw new ResponseException(Response.Status.INTERNAL_ERROR, "SERVER INTERNAL ERROR: IOException: " + ioe.getMessage(), ioe);
- }
- }
-
- /**
- * Find byte index separating header from body. It must be the last byte of the first two sequential new lines.
- */
- private int findHeaderEnd(final byte[] buf, int rlen)
- {
- int splitbyte = 0;
- while (splitbyte + 3 < rlen)
- {
- if (buf[splitbyte] == '\r' && buf[splitbyte + 1] == '\n' && buf[splitbyte + 2] == '\r' && buf[splitbyte + 3] == '\n')
- {
- return splitbyte + 4;
- }
- splitbyte++;
- }
- return 0;
- }
-
- /**
- * Find the byte positions where multipart boundaries start.
- */
- private int[] getBoundaryPositions(ByteBuffer b, byte[] boundary)
- {
- int matchcount = 0;
- int matchbyte = -1;
- List matchbytes = new ArrayList();
- for (int i = 0; i < b.limit(); i++)
- {
- if (b.get(i) == boundary[matchcount])
- {
- if (matchcount == 0)
- {
- matchbyte = i;
- }
- matchcount++;
- if (matchcount == boundary.length)
- {
- matchbytes.add(matchbyte);
- matchcount = 0;
- matchbyte = -1;
- }
- }
- else
- {
- i -= matchcount;
- matchcount = 0;
- matchbyte = -1;
- }
- }
- int[] ret = new int[matchbytes.size()];
- for (int i = 0; i < ret.length; i++)
- {
- ret[i] = matchbytes.get(i);
- }
- return ret;
- }
-
- /**
- * Retrieves the content of a sent file and saves it to a temporary file. The full path to the saved file is returned.
- */
- private String saveTmpFile(ByteBuffer b, int offset, int len)
- {
- String path = "";
- if (len > 0)
- {
- FileOutputStream fileOutputStream = null;
- try
- {
- TempFile tempFile = tempFileManager.createTempFile();
- ByteBuffer src = b.duplicate();
- fileOutputStream = new FileOutputStream(tempFile.getName());
- FileChannel dest = fileOutputStream.getChannel();
- src.position(offset).limit(offset + len);
- dest.write(src.slice());
- path = tempFile.getName();
- }
- catch (Exception e)
- { // Catch exception if any
- Log.severe(e);
- }
- finally
- {
- safeClose(fileOutputStream);
- }
- }
- return path;
- }
-
- private RandomAccessFile getTmpBucket()
- {
- try
- {
- TempFile tempFile = tempFileManager.createTempFile();
- return new RandomAccessFile(tempFile.getName(), "rw");
- }
- catch (Exception e)
- {
- Log.severe(e);
- }
- return null;
- }
-
- /**
- * It returns the offset separating multipart file headers from the file's data.
- */
- private int stripMultipartHeaders(ByteBuffer b, int offset)
- {
- int i;
- for (i = offset; i < b.limit(); i++)
- {
- if (b.get(i) == '\r' && b.get(++i) == '\n' && b.get(++i) == '\r' && b.get(++i) == '\n')
- {
- break;
- }
- }
- return i + 1;
- }
-
- /**
- * Decodes parameters in percent-encoded URI-format ( e.g. "name=Jack%20Daniels&pass=Single%20Malt" ) and
- * adds them to given Map. NOTE: this doesn't support multiple identical keys due to the simplicity of Map.
- */
- private void decodeParms(String parms, Map p)
- {
- if (parms == null)
- {
- p.put(QUERY_STRING_PARAMETER, "");
- return;
- }
-
- p.put(QUERY_STRING_PARAMETER, parms);
- StringTokenizer st = new StringTokenizer(parms, "&");
- while (st.hasMoreTokens())
- {
- String e = st.nextToken();
- int sep = e.indexOf('=');
- if (sep >= 0)
- {
- p.put(decodePercent(e.substring(0, sep)).trim(),
- decodePercent(e.substring(sep + 1)));
- }
- else
- {
- p.put(decodePercent(e).trim(), "");
- }
- }
- }
-
- public final Map getParms()
- {
- return parms;
- }
-
- public final Map getHeaders()
- {
- return headers;
- }
-
- public final String getUri()
- {
- return uri;
- }
-
- public final Method getMethod()
- {
- return method;
- }
-
- public final InputStream getInputStream()
- {
- return inputStream;
- }
-
- public CookieHandler getCookies()
- {
- return cookies;
- }
-
- public Socket getSocket()
- {
- return socket;
- }
- }
-
- public static class Cookie
- {
- private final String n;
- private final String v;
- private final String e;
-
- public Cookie(String name, String value, String expires)
- {
- n = name;
- v = value;
- e = expires;
- }
-
- public Cookie(String name, String value)
- {
- this(name, value, 30);
- }
-
- public Cookie(String name, String value, int numDays)
- {
- n = name;
- v = value;
- e = getHTTPTime(numDays);
- }
-
- public String getHTTPHeader()
- {
- String fmt = "%s=%s; expires=%s";
- return String.format(fmt, n, v, e);
- }
-
- public static String getHTTPTime(int days)
- {
- Calendar calendar = Calendar.getInstance();
- SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.US);
- dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
- calendar.add(Calendar.DAY_OF_MONTH, days);
- return dateFormat.format(calendar.getTime());
- }
- }
-
- /**
- * Provides rudimentary support for cookies.
- * Doesn't support 'path', 'secure' nor 'httpOnly'.
- * Feel free to improve it and/or add unsupported features.
- *
- * @author LordFokas
- */
- public class CookieHandler implements Iterable
- {
- private final HashMap cookies = new HashMap();
- private final ArrayList queue = new ArrayList();
-
- public CookieHandler(Map httpHeaders)
- {
- String raw = httpHeaders.get("cookie");
- if (raw != null)
- {
- String[] tokens = raw.split(";");
- for (String token : tokens)
- {
- String[] data = token.trim().split("=");
- if (data.length == 2)
- {
- cookies.put(data[0], data[1]);
- }
- }
- }
- }
-
- @Override
- public Iterator iterator()
- {
- return cookies.keySet().iterator();
- }
-
- /**
- * Read a cookie from the HTTP Headers.
- *
- * @param name The cookie's name.
- * @return The cookie's value if it exists, null otherwise.
- */
- public String read(String name)
- {
- return cookies.get(name);
- }
-
- /**
- * Sets a cookie.
- *
- * @param name The cookie's name.
- * @param value The cookie's value.
- * @param expires How many days until the cookie expires.
- */
- public void set(String name, String value, int expires)
- {
- queue.add(new Cookie(name, value, Cookie.getHTTPTime(expires)));
- }
-
- public void set(Cookie cookie)
- {
- queue.add(cookie);
- }
-
- /**
- * Set a cookie with an expiration date from a month ago, effectively deleting it on the client side.
- *
- * @param name The cookie name.
- */
- public void delete(String name)
- {
- set(name, "-delete-", -30);
- }
-
- /**
- * Internally used by the webserver to add all queued cookies into the Response's HTTP Headers.
- *
- * @param response The Response object to which headers the queued cookies will be added.
- */
- public void unloadQueue(Response response)
- {
- for (Cookie cookie : queue)
- {
- response.addHeader("Set-Cookie", cookie.getHTTPHeader());
- }
- }
- }
+public abstract class NanoHTTPD {
+
+ /**
+ * Common mime type for dynamic content: plain text
+ */
+ public static final String MIME_PLAINTEXT = "text/plain";
+ /**
+ * Common mime type for dynamic content: html
+ */
+ public static final String MIME_HTML = "text/html";
+ // TFM Start
+ /**
+ * Common mime type for dynamic content: json
+ */
+ public static final String MIME_JSON = "application/json";
+ // TFM End
+ /**
+ * Pseudo-Parameter to use to store the actual query string in the parameters map for later
+ * re-processing.
+ */
+ private static final String QUERY_STRING_PARAMETER = "NanoHttpd.QUERY_STRING";
+ private final String hostname;
+ private final int myPort;
+ private ServerSocket myServerSocket;
+ private Thread myThread;
+ /**
+ * Pluggable strategy for asynchronously executing requests.
+ */
+ private AsyncRunner asyncRunner;
+ /**
+ * Pluggable strategy for creating and cleaning up temporary files.
+ */
+ private TempFileManagerFactory tempFileManagerFactory;
+
+ /**
+ * Constructs an HTTP server on given port.
+ */
+ public NanoHTTPD(int port) {
+ this(null, port);
+ }
+
+ /**
+ * Constructs an HTTP server on given hostname and port.
+ */
+ public NanoHTTPD(String hostname, int port) {
+ this.hostname = hostname;
+ this.myPort = port;
+ setTempFileManagerFactory(new DefaultTempFileManagerFactory());
+ setAsyncRunner(new DefaultAsyncRunner());
+ }
+
+ private static final void safeClose(ServerSocket serverSocket) {
+ if (serverSocket != null) {
+ try {
+ serverSocket.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+
+ private static final void safeClose(Socket socket) {
+ if (socket != null) {
+ try {
+ socket.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+
+ private static final void safeClose(Closeable closeable) {
+ if (closeable != null) {
+ try {
+ closeable.close();
+ } catch (IOException e) {
+ }
+ }
+ }
+
+ /**
+ * Start the server.
+ *
+ * @throws IOException if the socket is in use.
+ */
+ public void start() throws IOException {
+ myServerSocket = new ServerSocket();
+ myServerSocket.bind((hostname != null) ? new InetSocketAddress(hostname, myPort)
+ : new InetSocketAddress(myPort));
+
+ myThread = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ do {
+ try {
+ final Socket finalAccept = myServerSocket.accept();
+ final InputStream inputStream = finalAccept.getInputStream();
+ if (inputStream == null) {
+ safeClose(finalAccept);
+ } else {
+ asyncRunner.exec(new Runnable() {
+ @Override
+ public void run() {
+ OutputStream outputStream = null;
+ try {
+ outputStream = finalAccept.getOutputStream();
+ TempFileManager tempFileManager = tempFileManagerFactory.create();
+ HTTPSession session = new HTTPSession(tempFileManager,
+ inputStream, outputStream, finalAccept);
+ while (!finalAccept.isClosed()) {
+ session.execute();
+ }
+ } catch (Exception e) {
+ // When the socket is closed by the client, we throw our own SocketException
+ // to break the "keep alive" loop above.
+ if (!(e instanceof SocketException
+ && "NanoHttpd Shutdown".equals(e.getMessage()))) {
+ Log.severe(e);
+ }
+ } finally {
+ safeClose(outputStream);
+ safeClose(inputStream);
+ safeClose(finalAccept);
+ }
+ }
+ });
+ }
+ } catch (IOException e) {
+ }
+ }
+ while (!myServerSocket.isClosed());
+ }
+ });
+ myThread.setDaemon(true);
+ myThread.setName("NanoHttpd Main Listener");
+ myThread.start();
+ }
+
+ /**
+ * Stop the server.
+ */
+ public void stop() {
+ try {
+ safeClose(myServerSocket);
+ myThread.join();
+ } catch (Exception e) {
+ Log.severe(e);
+ }
+ }
+
+ public final int getListeningPort() {
+ return myServerSocket == null ? -1 : myServerSocket.getLocalPort();
+ }
+
+ public final boolean wasStarted() {
+ return myServerSocket != null && myThread != null;
+ }
+
+ public final boolean isAlive() {
+ return wasStarted() && !myServerSocket.isClosed() && myThread.isAlive();
+ }
+
+ /**
+ * Override this to customize the server.
+ *
+ *
+ * (By default, this delegates to serveFile() and allows directory listing.)
+ *
+ * @param uri Percent-decoded URI without parameters, for example "/index.cgi"
+ * @param method "GET", "POST" etc.
+ * @param parms Parsed, percent decoded parameters from URI and, in case of POST, data.
+ * @param headers Header entries, percent decoded
+ * @return HTTP response, see class Response for details
+ */
+ @Deprecated
+ public Response serve(String uri, Method method, Map headers,
+ Map parms,
+ Map files) {
+ return new Response(Response.Status.NOT_FOUND, MIME_PLAINTEXT, "Not Found");
+ }
+
+ /**
+ * Override this to customize the server.
+ *
+ *
+ * (By default, this delegates to serveFile() and allows directory listing.)
+ *
+ * @param session The HTTP session
+ * @return HTTP response, see class Response for details
+ */
+ public Response serve(HTTPSession session) {
+ Map files = new HashMap();
+ Method method = session.getMethod();
+ if (Method.PUT.equals(method) || Method.POST.equals(method)) {
+ try {
+ session.parseBody(files);
+ } catch (IOException ioe) {
+ return new Response(Response.Status.INTERNAL_ERROR, MIME_PLAINTEXT,
+ "SERVER INTERNAL ERROR: IOException: " + ioe.getMessage());
+ } catch (ResponseException re) {
+ return new Response(re.getStatus(), MIME_PLAINTEXT, re.getMessage());
+ }
+ }
+
+ return serve(session.getUri(), method, session.getHeaders(), session.getParms(), files);
+ }
+
+ /**
+ * Decode percent encoded String
values.
+ *
+ * @param str the percent encoded String
+ * @return expanded form of the input, for example "foo%20bar" becomes "foo bar"
+ */
+ protected String decodePercent(String str) {
+ String decoded = null;
+ try {
+ decoded = URLDecoder.decode(str, "UTF8");
+ } catch (UnsupportedEncodingException ignored) {
+ }
+ return decoded;
+ }
+
+ /**
+ * Decode parameters from a URL, handing the case where a single parameter name might have been
+ * supplied several times, by return lists of values. In general these lists will contain a
+ * single element.
+ *
+ * @param parms original NanoHttpd parameters values, as passed to the
+ * serve()
method.
+ * @return a map of String
(parameter name) to List<String>
(a
+ * list of the values supplied).
+ */
+ protected Map> decodeParameters(Map parms) {
+ return this.decodeParameters(parms.get(QUERY_STRING_PARAMETER));
+ }
+
+ /**
+ * Decode parameters from a URL, handing the case where a single parameter name might have been
+ * supplied several times, by return lists of values. In general these lists will contain a
+ * single element.
+ *
+ * @param queryString a query string pulled from the URL.
+ * @return a map of String
(parameter name) to List<String>
(a
+ * list of the values supplied).
+ */
+ protected Map> decodeParameters(String queryString) {
+ Map> parms = new HashMap>();
+ if (queryString != null) {
+ StringTokenizer st = new StringTokenizer(queryString, "&");
+ while (st.hasMoreTokens()) {
+ String e = st.nextToken();
+ int sep = e.indexOf('=');
+ String propertyName = (sep >= 0) ? decodePercent(e.substring(0, sep)).trim()
+ : decodePercent(e).trim();
+ if (!parms.containsKey(propertyName)) {
+ parms.put(propertyName, new ArrayList());
+ }
+ String propertyValue = (sep >= 0) ? decodePercent(e.substring(sep + 1)) : null;
+ if (propertyValue != null) {
+ parms.get(propertyName).add(propertyValue);
+ }
+ }
+ }
+ return parms;
+ }
+
+ // ------------------------------------------------------------------------------- //
+ //
+ // Threading Strategy.
+ //
+ // ------------------------------------------------------------------------------- //
+
+ /**
+ * Pluggable strategy for asynchronously executing requests.
+ *
+ * @param asyncRunner new strategy for handling threads.
+ */
+ public void setAsyncRunner(AsyncRunner asyncRunner) {
+ this.asyncRunner = asyncRunner;
+ }
+
+ // ------------------------------------------------------------------------------- //
+ //
+ // Temp file handling strategy.
+ //
+ // ------------------------------------------------------------------------------- //
+
+ /**
+ * Pluggable strategy for creating and cleaning up temporary files.
+ *
+ * @param tempFileManagerFactory new strategy for handling temp files.
+ */
+ public void setTempFileManagerFactory(TempFileManagerFactory tempFileManagerFactory) {
+ this.tempFileManagerFactory = tempFileManagerFactory;
+ }
+
+ /**
+ * HTTP Request methods, with the ability to decode a String
back to its enum
+ * value.
+ */
+ public enum Method {
+ GET, PUT, POST, DELETE, HEAD;
+
+ static Method lookup(String method) {
+ for (Method m : Method.values()) {
+ if (m.toString().equalsIgnoreCase(method)) {
+ return m;
+ }
+ }
+ return null;
+ }
+ }
+
+ /**
+ * Pluggable strategy for asynchronously executing requests.
+ */
+ public interface AsyncRunner {
+
+ void exec(Runnable code);
+ }
+
+ /**
+ * Factory to create temp file managers.
+ */
+ public interface TempFileManagerFactory {
+
+ TempFileManager create();
+ }
+
+ // ------------------------------------------------------------------------------- //
+
+ /**
+ * Temp file manager.
+ *
+ * Temp file managers are created 1-to-1 with incoming requests, to create and cleanup
+ * temporary files created as a result of handling the request.
+ */
+ public interface TempFileManager {
+
+ TempFile createTempFile() throws Exception;
+
+ void clear();
+ }
+
+ /**
+ * A temp file.
+ *
+ * Temp files are responsible for managing the actual temporary storage and cleaning
+ * themselves up when no longer needed.
+ */
+ public interface TempFile {
+
+ OutputStream open() throws Exception;
+
+ void delete() throws Exception;
+
+ String getName();
+ }
+
+ /**
+ * Default threading strategy for NanoHttpd.
+ *
+ * By default, the server spawns a new Thread for every incoming request. These are set
+ * to daemon status, and named according to the request number. The name is useful when
+ * profiling the application.
+ */
+ public static class DefaultAsyncRunner implements AsyncRunner {
+
+ private long requestCount;
+
+ @Override
+ public void exec(Runnable code) {
+ ++requestCount;
+ Thread t = new Thread(code);
+ t.setDaemon(true);
+ t.setName("NanoHttpd Request Processor (#" + requestCount + ")");
+ t.start();
+ }
+ }
+
+ /**
+ * Default strategy for creating and cleaning up temporary files.
+ *
+ * This class stores its files in the standard location (that is,
+ * wherever java.io.tmpdir
points to). Files are added to an internal list, and
+ * deleted when no longer needed (that is, when clear()
is invoked at the end of
+ * processing a request).
+ */
+ public static class DefaultTempFileManager implements TempFileManager {
+
+ private final String tmpdir;
+ private final List tempFiles;
+
+ public DefaultTempFileManager() {
+ tmpdir = System.getProperty("java.io.tmpdir");
+ tempFiles = new ArrayList();
+ }
+
+ @Override
+ public TempFile createTempFile() throws Exception {
+ DefaultTempFile tempFile = new DefaultTempFile(tmpdir);
+ tempFiles.add(tempFile);
+ return tempFile;
+ }
+
+ @Override
+ public void clear() {
+ for (TempFile file : tempFiles) {
+ try {
+ file.delete();
+ } catch (Exception ignored) {
+ }
+ }
+ tempFiles.clear();
+ }
+ }
+
+ /**
+ * Default strategy for creating and cleaning up temporary files.
+ *
+ * [>By default, files are created by File.createTempFile()
in
+ * the directory specified.
+ */
+ public static class DefaultTempFile implements TempFile {
+
+ private final File file;
+ private final OutputStream fstream;
+
+ public DefaultTempFile(String tempdir) throws IOException {
+ file = File.createTempFile("NanoHTTPD-", "", new File(tempdir));
+ fstream = new FileOutputStream(file);
+ }
+
+ @Override
+ public OutputStream open() throws Exception {
+ return fstream;
+ }
+
+ @Override
+ public void delete() throws Exception {
+ safeClose(fstream);
+ file.delete();
+ }
+
+ @Override
+ public String getName() {
+ return file.getAbsolutePath();
+ }
+ }
+
+ /**
+ * HTTP response. Return one of these from serve().
+ */
+ public static class Response {
+
+ /**
+ * Headers for the HTTP response. Use addHeader() to add lines.
+ */
+ private final Map header = new HashMap();
+ /**
+ * HTTP status code after processing, e.g. "200 OK", HTTP_OK
+ */
+ private Status status;
+ /**
+ * MIME type of content, e.g. "text/html"
+ */
+ private String mimeType;
+ /**
+ * Data of the response, may be null.
+ */
+ private InputStream data;
+ /**
+ * The request method that spawned this response.
+ */
+ private Method requestMethod;
+ /**
+ * Use chunkedTransfer
+ */
+ private boolean chunkedTransfer;
+
+ /**
+ * Default constructor: response = HTTP_OK, mime = MIME_HTML and your supplied message
+ */
+ public Response(String msg) {
+ this(Status.OK, MIME_HTML, msg);
+ }
+
+ /**
+ * Basic constructor.
+ */
+ public Response(Status status, String mimeType, InputStream data) {
+ this.status = status;
+ this.mimeType = mimeType;
+ this.data = data;
+ }
+
+ /**
+ * Convenience method that makes an InputStream out of given text.
+ */
+ public Response(Status status, String mimeType, String txt) {
+ this.status = status;
+ this.mimeType = mimeType;
+ this.data =
+ txt != null ? new ByteArrayInputStream(txt.getBytes(StandardCharsets.UTF_8)) : null;
+ }
+
+ /**
+ * Adds given line to the header.
+ */
+ public void addHeader(String name, String value) {
+ header.put(name, value);
+ }
+
+ /**
+ * Sends given response to the socket.
+ */
+ private void send(OutputStream outputStream) {
+ String mime = mimeType;
+ SimpleDateFormat gmtFrmt = new SimpleDateFormat("E, d MMM yyyy HH:mm:ss 'GMT'",
+ Locale.US);
+ gmtFrmt.setTimeZone(TimeZone.getTimeZone("GMT"));
+
+ try {
+ if (status == null) {
+ throw new Error("sendResponse(): Status can't be null.");
+ }
+ PrintWriter pw = new PrintWriter(outputStream);
+ pw.print("HTTP/1.1 " + status.getDescription() + " \r\n");
+
+ if (mime != null) {
+ pw.print("Content-Type: " + mime + "\r\n");
+ }
+
+ if (header == null || header.get("Date") == null) {
+ pw.print("Date: " + gmtFrmt.format(new Date()) + "\r\n");
+ }
+
+ if (header != null) {
+ for (String key : header.keySet()) {
+ String value = header.get(key);
+ pw.print(key + ": " + value + "\r\n");
+ }
+ }
+
+ pw.print("Connection: keep-alive\r\n");
+
+ if (requestMethod != Method.HEAD && chunkedTransfer) {
+ sendAsChunked(outputStream, pw);
+ } else {
+ sendAsFixedLength(outputStream, pw);
+ }
+ outputStream.flush();
+ safeClose(data);
+ } catch (IOException ioe) {
+ // Couldn't write? No can do.
+ }
+ }
+
+ private void sendAsChunked(OutputStream outputStream, PrintWriter pw) throws IOException {
+ pw.print("Transfer-Encoding: chunked\r\n");
+ pw.print("\r\n");
+ pw.flush();
+ int BUFFER_SIZE = 16 * 1024;
+ byte[] CRLF = "\r\n".getBytes();
+ byte[] buff = new byte[BUFFER_SIZE];
+ int read;
+ while ((read = data.read(buff)) > 0) {
+ outputStream.write(String.format("%x\r\n", read).getBytes());
+ outputStream.write(buff, 0, read);
+ outputStream.write(CRLF);
+ }
+ outputStream.write(String.format("0\r\n\r\n").getBytes());
+ }
+
+ private void sendAsFixedLength(OutputStream outputStream, PrintWriter pw)
+ throws IOException {
+ int pending = data != null ? data.available()
+ : 0; // This is to support partial sends, see serveFile()
+ pw.print("Content-Length: " + pending + "\r\n");
+
+ pw.print("\r\n");
+ pw.flush();
+
+ if (requestMethod != Method.HEAD && data != null) {
+ int BUFFER_SIZE = 16 * 1024;
+ byte[] buff = new byte[BUFFER_SIZE];
+ while (pending > 0) {
+ int read = data.read(buff, 0,
+ ((pending > BUFFER_SIZE) ? BUFFER_SIZE : pending));
+ if (read <= 0) {
+ break;
+ }
+ outputStream.write(buff, 0, read);
+
+ pending -= read;
+ }
+ }
+ }
+
+ public Status getStatus() {
+ return status;
+ }
+
+ public void setStatus(Status status) {
+ this.status = status;
+ }
+
+ public String getMimeType() {
+ return mimeType;
+ }
+
+ public void setMimeType(String mimeType) {
+ this.mimeType = mimeType;
+ }
+
+ public InputStream getData() {
+ return data;
+ }
+
+ public void setData(InputStream data) {
+ this.data = data;
+ }
+
+ public Method getRequestMethod() {
+ return requestMethod;
+ }
+
+ public void setRequestMethod(Method requestMethod) {
+ this.requestMethod = requestMethod;
+ }
+
+ public void setChunkedTransfer(boolean chunkedTransfer) {
+ this.chunkedTransfer = chunkedTransfer;
+ }
+
+ /**
+ * Some HTTP response status codes
+ */
+ public enum Status {
+ OK(200, "OK"), CREATED(201, "Created"), ACCEPTED(202, "Accepted"), NO_CONTENT(204,
+ "No Content"), PARTIAL_CONTENT(206, "Partial Content"), REDIRECT(301,
+ "Moved Permanently"), NOT_MODIFIED(304, "Not Modified"), BAD_REQUEST(400,
+ "Bad Request"), UNAUTHORIZED(401,
+ "Unauthorized"), FORBIDDEN(403, "Forbidden"), NOT_FOUND(404,
+ "Not Found"), RANGE_NOT_SATISFIABLE(416,
+ "Requested Range Not Satisfiable"), INTERNAL_ERROR(500, "Internal Server Error");
+ private final int requestStatus;
+ private final String description;
+
+ Status(int requestStatus, String description) {
+ this.requestStatus = requestStatus;
+ this.description = description;
+ }
+
+ public int getRequestStatus() {
+ return this.requestStatus;
+ }
+
+ public String getDescription() {
+ return "" + this.requestStatus + " " + description;
+ }
+ }
+ }
+
+ public static final class ResponseException extends Exception {
+
+ private final Response.Status status;
+
+ public ResponseException(Response.Status status, String message) {
+ super(message);
+ this.status = status;
+ }
+
+ public ResponseException(Response.Status status, String message, Exception e) {
+ super(message, e);
+ this.status = status;
+ }
+
+ public Response.Status getStatus() {
+ return status;
+ }
+ }
+
+ public static class Cookie {
+
+ private final String n;
+ private final String v;
+ private final String e;
+
+ public Cookie(String name, String value, String expires) {
+ n = name;
+ v = value;
+ e = expires;
+ }
+
+ public Cookie(String name, String value) {
+ this(name, value, 30);
+ }
+
+ public Cookie(String name, String value, int numDays) {
+ n = name;
+ v = value;
+ e = getHTTPTime(numDays);
+ }
+
+ public static String getHTTPTime(int days) {
+ Calendar calendar = Calendar.getInstance();
+ SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z",
+ Locale.US);
+ dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
+ calendar.add(Calendar.DAY_OF_MONTH, days);
+ return dateFormat.format(calendar.getTime());
+ }
+
+ public String getHTTPHeader() {
+ String fmt = "%s=%s; expires=%s";
+ return String.format(fmt, n, v, e);
+ }
+ }
+
+ /**
+ * Default strategy for creating and cleaning up temporary files.
+ */
+ private class DefaultTempFileManagerFactory implements TempFileManagerFactory {
+
+ @Override
+ public TempFileManager create() {
+ return new DefaultTempFileManager();
+ }
+ }
+
+ /**
+ * Handles one session, i.e. parses the HTTP request and returns the response.
+ */
+ protected class HTTPSession {
+
+ public static final int BUFSIZE = 8192;
+ private final TempFileManager tempFileManager;
+ private final OutputStream outputStream;
+ private final Socket socket;
+ private InputStream inputStream;
+ private int splitbyte;
+ private int rlen;
+ private String uri;
+ private Method method;
+ private Map parms;
+ private Map headers;
+ private CookieHandler cookies;
+
+ public HTTPSession(TempFileManager tempFileManager, InputStream inputStream,
+ OutputStream outputStream, Socket socket) {
+ this.tempFileManager = tempFileManager;
+ this.inputStream = inputStream;
+ this.outputStream = outputStream;
+ this.socket = socket;
+ }
+
+ public void execute() throws IOException {
+ try {
+ // Read the first 8192 bytes.
+ // The full header should fit in here.
+ // Apache's default header limit is 8KB.
+ // Do NOT assume that a single read will get the entire header at once!
+ byte[] buf = new byte[BUFSIZE];
+ splitbyte = 0;
+ rlen = 0;
+ {
+ int read = inputStream.read(buf, 0, BUFSIZE);
+ if (read == -1) {
+ // socket was been closed
+ throw new SocketException("NanoHttpd Shutdown");
+ }
+ while (read > 0) {
+ rlen += read;
+ splitbyte = findHeaderEnd(buf, rlen);
+ if (splitbyte > 0) {
+ break;
+ }
+ read = inputStream.read(buf, rlen, BUFSIZE - rlen);
+ }
+ }
+
+ if (splitbyte < rlen) {
+ ByteArrayInputStream splitInputStream = new ByteArrayInputStream(buf, splitbyte,
+ rlen - splitbyte);
+ SequenceInputStream sequenceInputStream = new SequenceInputStream(
+ splitInputStream, inputStream);
+ inputStream = sequenceInputStream;
+ }
+
+ parms = new HashMap();
+ headers = new HashMap();
+
+ // Create a BufferedReader for parsing the header.
+ BufferedReader hin = new BufferedReader(
+ new InputStreamReader(new ByteArrayInputStream(buf, 0, rlen)));
+
+ // Decode the header into parms and header java properties
+ Map pre = new HashMap();
+ decodeHeader(hin, pre, parms, headers);
+
+ method = Method.lookup(pre.get("method"));
+ if (method == null) {
+ throw new ResponseException(Response.Status.BAD_REQUEST,
+ "BAD REQUEST: Syntax error.");
+ }
+
+ uri = pre.get("uri");
+
+ cookies = new CookieHandler(headers);
+
+ // Ok, now do the serve()
+ Response r = serve(this);
+ if (r == null) {
+ throw new ResponseException(Response.Status.INTERNAL_ERROR,
+ "SERVER INTERNAL ERROR: Serve() returned a null response.");
+ } else {
+ cookies.unloadQueue(r);
+ r.setRequestMethod(method);
+ r.send(outputStream);
+ }
+ } catch (SocketException e) {
+ // throw it out to close socket object (finalAccept)
+ throw e;
+ } catch (IOException ioe) {
+ Response r = new Response(Response.Status.INTERNAL_ERROR, MIME_PLAINTEXT,
+ "SERVER INTERNAL ERROR: IOException: " + ioe.getMessage());
+ r.send(outputStream);
+ safeClose(outputStream);
+ } catch (ResponseException re) {
+ Response r = new Response(re.getStatus(), MIME_PLAINTEXT, re.getMessage());
+ r.send(outputStream);
+ safeClose(outputStream);
+ } finally {
+ tempFileManager.clear();
+ }
+ }
+
+ protected void parseBody(Map files) throws IOException, ResponseException {
+ RandomAccessFile randomAccessFile = null;
+ BufferedReader in = null;
+ try {
+
+ randomAccessFile = getTmpBucket();
+
+ long size;
+ if (headers.containsKey("content-length")) {
+ size = Integer.parseInt(headers.get("content-length"));
+ } else if (splitbyte < rlen) {
+ size = rlen - splitbyte;
+ } else {
+ size = 0;
+ }
+
+ // Now read all the body and write it to f
+ byte[] buf = new byte[512];
+ while (rlen >= 0 && size > 0) {
+ rlen = inputStream.read(buf, 0, 512);
+ size -= rlen;
+ if (rlen > 0) {
+ randomAccessFile.write(buf, 0, rlen);
+ }
+ }
+
+ // Get the raw body as a byte []
+ ByteBuffer fbuf = randomAccessFile.getChannel()
+ .map(FileChannel.MapMode.READ_ONLY, 0, randomAccessFile.length());
+ randomAccessFile.seek(0);
+
+ // Create a BufferedReader for easily reading it as string.
+ InputStream bin = new FileInputStream(randomAccessFile.getFD());
+ in = new BufferedReader(new InputStreamReader(bin));
+
+ // If the method is POST, there may be parameters
+ // in data section, too, read it:
+ if (Method.POST.equals(method)) {
+ String contentType = "";
+ String contentTypeHeader = headers.get("content-type");
+
+ StringTokenizer st = null;
+ if (contentTypeHeader != null) {
+ st = new StringTokenizer(contentTypeHeader, ",; ");
+ if (st.hasMoreTokens()) {
+ contentType = st.nextToken();
+ }
+ }
+
+ if ("multipart/form-data".equalsIgnoreCase(contentType)) {
+ // Handle multipart/form-data
+ if (!st.hasMoreTokens()) {
+ throw new ResponseException(Response.Status.BAD_REQUEST,
+ "BAD REQUEST: Content type is multipart/form-data but boundary missing. Usage: GET /example/file.html");
+ }
+
+ String boundaryStartString = "boundary=";
+ int boundaryContentStart = contentTypeHeader.indexOf(boundaryStartString)
+ + boundaryStartString.length();
+ String boundary = contentTypeHeader.substring(boundaryContentStart);
+ if (boundary.startsWith("\"") && boundary.endsWith("\"")) {
+ boundary = boundary.substring(1, boundary.length() - 1);
+ }
+
+ decodeMultipartData(boundary, fbuf, in, parms, files);
+ } else {
+ // Handle application/x-www-form-urlencoded
+ String postLine = "";
+ char[] pbuf = new char[512];
+ int read = in.read(pbuf);
+ while (read >= 0 && !postLine.endsWith("\r\n")) {
+ postLine += String.valueOf(pbuf, 0, read);
+ read = in.read(pbuf);
+ }
+ postLine = postLine.trim();
+ decodeParms(postLine, parms);
+ }
+ } else if (Method.PUT.equals(method)) {
+ files.put("content", saveTmpFile(fbuf, 0, fbuf.limit()));
+ }
+ } finally {
+ safeClose(randomAccessFile);
+ safeClose(in);
+ }
+ }
+
+ /**
+ * Decodes the sent headers and loads the data into Key/value pairs
+ */
+ private void decodeHeader(BufferedReader in, Map pre,
+ Map parms, Map headers)
+ throws ResponseException {
+ try {
+ // Read the request line
+ String inLine = in.readLine();
+ if (inLine == null) {
+ return;
+ }
+
+ StringTokenizer st = new StringTokenizer(inLine);
+ if (!st.hasMoreTokens()) {
+ throw new ResponseException(Response.Status.BAD_REQUEST,
+ "BAD REQUEST: Syntax error. Usage: GET /example/file.html");
+ }
+
+ pre.put("method", st.nextToken());
+
+ if (!st.hasMoreTokens()) {
+ throw new ResponseException(Response.Status.BAD_REQUEST,
+ "BAD REQUEST: Missing URI. Usage: GET /example/file.html");
+ }
+
+ String uri = st.nextToken();
+
+ // Decode parameters from the URI
+ int qmi = uri.indexOf('?');
+ if (qmi >= 0) {
+ decodeParms(uri.substring(qmi + 1), parms);
+ uri = decodePercent(uri.substring(0, qmi));
+ } else {
+ uri = decodePercent(uri);
+ }
+
+ // If there's another token, it's protocol version,
+ // followed by HTTP headers. Ignore version but parse headers.
+ // NOTE: this now forces header names lowercase since they are
+ // case insensitive and vary by client.
+ if (st.hasMoreTokens()) {
+ String line = in.readLine();
+ while (line != null && line.trim().length() > 0) {
+ int p = line.indexOf(':');
+ if (p >= 0) {
+ headers.put(line.substring(0, p).trim().toLowerCase(),
+ line.substring(p + 1).trim());
+ }
+ line = in.readLine();
+ }
+ }
+
+ pre.put("uri", uri);
+ } catch (IOException ioe) {
+ throw new ResponseException(Response.Status.INTERNAL_ERROR,
+ "SERVER INTERNAL ERROR: IOException: " + ioe.getMessage(), ioe);
+ }
+ }
+
+ /**
+ * Decodes the Multipart Body data and put it into Key/Value pairs.
+ */
+ private void decodeMultipartData(String boundary, ByteBuffer fbuf, BufferedReader in,
+ Map parms,
+ Map files) throws ResponseException {
+ try {
+ int[] bpositions = getBoundaryPositions(fbuf, boundary.getBytes());
+ int boundarycount = 1;
+ String mpline = in.readLine();
+ while (mpline != null) {
+ if (!mpline.contains(boundary)) {
+ throw new ResponseException(Response.Status.BAD_REQUEST,
+ "BAD REQUEST: Content type is multipart/form-data but next chunk does not start with boundary. Usage: GET /example/file.html");
+ }
+ boundarycount++;
+ Map item = new HashMap();
+ mpline = in.readLine();
+ while (mpline != null && mpline.trim().length() > 0) {
+ int p = mpline.indexOf(':');
+ if (p != -1) {
+ item.put(mpline.substring(0, p).trim().toLowerCase(),
+ mpline.substring(p + 1).trim());
+ }
+ mpline = in.readLine();
+ }
+ if (mpline != null) {
+ String contentDisposition = item.get("content-disposition");
+ if (contentDisposition == null) {
+ throw new ResponseException(Response.Status.BAD_REQUEST,
+ "BAD REQUEST: Content type is multipart/form-data but no content-disposition info found. Usage: GET /example/file.html");
+ }
+ StringTokenizer st = new StringTokenizer(contentDisposition, "; ");
+ Map disposition = new HashMap();
+ while (st.hasMoreTokens()) {
+ String token = st.nextToken();
+ int p = token.indexOf('=');
+ if (p != -1) {
+ disposition.put(token.substring(0, p).trim().toLowerCase(),
+ token.substring(p + 1).trim());
+ }
+ }
+ String pname = disposition.get("name");
+ pname = pname.substring(1, pname.length() - 1);
+
+ String value = "";
+ if (item.get("content-type") == null) {
+ while (mpline != null && !mpline.contains(boundary)) {
+ mpline = in.readLine();
+ if (mpline != null) {
+ int d = mpline.indexOf(boundary);
+ if (d == -1) {
+ value += mpline;
+ } else {
+ value += mpline.substring(0, d - 2);
+ }
+ }
+ }
+ } else {
+ if (boundarycount > bpositions.length) {
+ throw new ResponseException(Response.Status.INTERNAL_ERROR,
+ "Error processing request");
+ }
+ int offset = stripMultipartHeaders(fbuf, bpositions[boundarycount - 2]);
+ String path = saveTmpFile(fbuf, offset,
+ bpositions[boundarycount - 1] - offset - 4);
+ files.put(pname, path);
+ value = disposition.get("filename");
+ value = value.substring(1, value.length() - 1);
+ do {
+ mpline = in.readLine();
+ }
+ while (mpline != null && !mpline.contains(boundary));
+ }
+ parms.put(pname, value);
+ }
+ }
+ } catch (IOException ioe) {
+ throw new ResponseException(Response.Status.INTERNAL_ERROR,
+ "SERVER INTERNAL ERROR: IOException: " + ioe.getMessage(), ioe);
+ }
+ }
+
+ /**
+ * Find byte index separating header from body. It must be the last byte of the first two
+ * sequential new lines.
+ */
+ private int findHeaderEnd(final byte[] buf, int rlen) {
+ int splitbyte = 0;
+ while (splitbyte + 3 < rlen) {
+ if (buf[splitbyte] == '\r' && buf[splitbyte + 1] == '\n'
+ && buf[splitbyte + 2] == '\r' && buf[splitbyte + 3] == '\n') {
+ return splitbyte + 4;
+ }
+ splitbyte++;
+ }
+ return 0;
+ }
+
+ /**
+ * Find the byte positions where multipart boundaries start.
+ */
+ private int[] getBoundaryPositions(ByteBuffer b, byte[] boundary) {
+ int matchcount = 0;
+ int matchbyte = -1;
+ List matchbytes = new ArrayList();
+ for (int i = 0; i < b.limit(); i++) {
+ if (b.get(i) == boundary[matchcount]) {
+ if (matchcount == 0) {
+ matchbyte = i;
+ }
+ matchcount++;
+ if (matchcount == boundary.length) {
+ matchbytes.add(matchbyte);
+ matchcount = 0;
+ matchbyte = -1;
+ }
+ } else {
+ i -= matchcount;
+ matchcount = 0;
+ matchbyte = -1;
+ }
+ }
+ int[] ret = new int[matchbytes.size()];
+ for (int i = 0; i < ret.length; i++) {
+ ret[i] = matchbytes.get(i);
+ }
+ return ret;
+ }
+
+ /**
+ * Retrieves the content of a sent file and saves it to a temporary file. The full path to
+ * the saved file is returned.
+ */
+ private String saveTmpFile(ByteBuffer b, int offset, int len) {
+ String path = "";
+ if (len > 0) {
+ FileOutputStream fileOutputStream = null;
+ try {
+ TempFile tempFile = tempFileManager.createTempFile();
+ ByteBuffer src = b.duplicate();
+ fileOutputStream = new FileOutputStream(tempFile.getName());
+ FileChannel dest = fileOutputStream.getChannel();
+ src.position(offset).limit(offset + len);
+ dest.write(src.slice());
+ path = tempFile.getName();
+ } catch (Exception e) { // Catch exception if any
+ Log.severe(e);
+ } finally {
+ safeClose(fileOutputStream);
+ }
+ }
+ return path;
+ }
+
+ private RandomAccessFile getTmpBucket() {
+ try {
+ TempFile tempFile = tempFileManager.createTempFile();
+ return new RandomAccessFile(tempFile.getName(), "rw");
+ } catch (Exception e) {
+ Log.severe(e);
+ }
+ return null;
+ }
+
+ /**
+ * It returns the offset separating multipart file headers from the file's data.
+ */
+ private int stripMultipartHeaders(ByteBuffer b, int offset) {
+ int i;
+ for (i = offset; i < b.limit(); i++) {
+ if (b.get(i) == '\r' && b.get(++i) == '\n' && b.get(++i) == '\r'
+ && b.get(++i) == '\n') {
+ break;
+ }
+ }
+ return i + 1;
+ }
+
+ /**
+ * Decodes parameters in percent-encoded URI-format ( e.g. "name=Jack%20Daniels&pass=Single%20Malt"
+ * ) and adds them to given Map. NOTE: this doesn't support multiple identical keys due to
+ * the simplicity of Map.
+ */
+ private void decodeParms(String parms, Map p) {
+ if (parms == null) {
+ p.put(QUERY_STRING_PARAMETER, "");
+ return;
+ }
+
+ p.put(QUERY_STRING_PARAMETER, parms);
+ StringTokenizer st = new StringTokenizer(parms, "&");
+ while (st.hasMoreTokens()) {
+ String e = st.nextToken();
+ int sep = e.indexOf('=');
+ if (sep >= 0) {
+ p.put(decodePercent(e.substring(0, sep)).trim(),
+ decodePercent(e.substring(sep + 1)));
+ } else {
+ p.put(decodePercent(e).trim(), "");
+ }
+ }
+ }
+
+ public final Map getParms() {
+ return parms;
+ }
+
+ public final Map getHeaders() {
+ return headers;
+ }
+
+ public final String getUri() {
+ return uri;
+ }
+
+ public final Method getMethod() {
+ return method;
+ }
+
+ public final InputStream getInputStream() {
+ return inputStream;
+ }
+
+ public CookieHandler getCookies() {
+ return cookies;
+ }
+
+ public Socket getSocket() {
+ return socket;
+ }
+ }
+
+ /**
+ * Provides rudimentary support for cookies. Doesn't support 'path', 'secure' nor 'httpOnly'.
+ * Feel free to improve it and/or add unsupported features.
+ *
+ * @author LordFokas
+ */
+ public class CookieHandler implements Iterable {
+
+ private final HashMap cookies = new HashMap();
+ private final ArrayList queue = new ArrayList();
+
+ public CookieHandler(Map httpHeaders) {
+ String raw = httpHeaders.get("cookie");
+ if (raw != null) {
+ String[] tokens = raw.split(";");
+ for (String token : tokens) {
+ String[] data = token.trim().split("=");
+ if (data.length == 2) {
+ cookies.put(data[0], data[1]);
+ }
+ }
+ }
+ }
+
+ @Override
+ public Iterator iterator() {
+ return cookies.keySet().iterator();
+ }
+
+ /**
+ * Read a cookie from the HTTP Headers.
+ *
+ * @param name The cookie's name.
+ * @return The cookie's value if it exists, null otherwise.
+ */
+ public String read(String name) {
+ return cookies.get(name);
+ }
+
+ /**
+ * Sets a cookie.
+ *
+ * @param name The cookie's name.
+ * @param value The cookie's value.
+ * @param expires How many days until the cookie expires.
+ */
+ public void set(String name, String value, int expires) {
+ queue.add(new Cookie(name, value, Cookie.getHTTPTime(expires)));
+ }
+
+ public void set(Cookie cookie) {
+ queue.add(cookie);
+ }
+
+ /**
+ * Set a cookie with an expiration date from a month ago, effectively deleting it on the
+ * client side.
+ *
+ * @param name The cookie name.
+ */
+ public void delete(String name) {
+ set(name, "-delete-", -30);
+ }
+
+ /**
+ * Internally used by the webserver to add all queued cookies into the Response's HTTP
+ * Headers.
+ *
+ * @param response The Response object to which headers the queued cookies will be added.
+ */
+ public void unloadQueue(Response response) {
+ for (Cookie cookie : queue) {
+ response.addHeader("Set-Cookie", cookie.getHTTPHeader());
+ }
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/listener/BlockListener.java b/src/main/java/me/StevenLawson/TotalFreedomMod/listener/BlockListener.java
index 61c17f1..e4c62f0 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/listener/BlockListener.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/listener/BlockListener.java
@@ -15,247 +15,230 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
-import org.bukkit.event.block.*;
+import org.bukkit.event.block.BlockBreakEvent;
+import org.bukkit.event.block.BlockBurnEvent;
+import org.bukkit.event.block.BlockFromToEvent;
+import org.bukkit.event.block.BlockIgniteEvent;
+import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.inventory.ItemStack;
public class BlockListener implements Listener {
- @EventHandler(priority = EventPriority.HIGH)
- public void onBlockBurn(BlockBurnEvent event) {
- if (!ConfigurationEntry.ALLOW_FIRE_SPREAD.getBoolean()) {
- event.setCancelled(true);
- }
- }
- @EventHandler(priority = EventPriority.HIGH)
- public void onBlockIgnite(BlockIgniteEvent event)
- {
- if (!ConfigurationEntry.ALLOW_FIRE_PLACE.getBoolean())
- {
- event.setCancelled(true);
- }
- }
+ @EventHandler(priority = EventPriority.HIGH)
+ public void onBlockBurn(BlockBurnEvent event) {
+ if (!ConfigurationEntry.ALLOW_FIRE_SPREAD.getBoolean()) {
+ event.setCancelled(true);
+ }
+ }
- @EventHandler(priority = EventPriority.NORMAL)
- public void onBlockBreak(BlockBreakEvent event)
- {
- final Player player = event.getPlayer();
- final Location location = event.getBlock().getLocation();
+ @EventHandler(priority = EventPriority.HIGH)
+ public void onBlockIgnite(BlockIgniteEvent event) {
+ if (!ConfigurationEntry.ALLOW_FIRE_PLACE.getBoolean()) {
+ event.setCancelled(true);
+ }
+ }
- if (ConfigurationEntry.NUKE_MONITOR_ENABLED.getBoolean())
- {
- final PlayerData playerdata = PlayerData.getPlayerData(player);
+ @EventHandler(priority = EventPriority.NORMAL)
+ public void onBlockBreak(BlockBreakEvent event) {
+ final Player player = event.getPlayer();
+ final Location location = event.getBlock().getLocation();
- final Location playerLocation = player.getLocation();
+ if (ConfigurationEntry.NUKE_MONITOR_ENABLED.getBoolean()) {
+ final PlayerData playerdata = PlayerData.getPlayerData(player);
- final double nukeMonitorRange = ConfigurationEntry.NUKE_MONITOR_RANGE.getDouble().doubleValue();
+ final Location playerLocation = player.getLocation();
- boolean outOfRange = false;
- if (!playerLocation.getWorld().equals(location.getWorld()))
- {
- outOfRange = true;
- }
- else if (playerLocation.distanceSquared(location) > (nukeMonitorRange * nukeMonitorRange))
- {
- outOfRange = true;
- }
+ final double nukeMonitorRange = ConfigurationEntry.NUKE_MONITOR_RANGE.getDouble()
+ .doubleValue();
- if (outOfRange)
- {
- if (playerdata.incrementAndGetFreecamDestroyCount() > ConfigurationEntry.FREECAM_TRIGGER_COUNT.getInteger())
- {
- Utilities.bcastMsg(player.getName() + " has been flagged for possible freecam nuking.", ChatColor.RED);
- Utilities.autoEject(player, "Freecam (extended range) block breaking is not permitted on this server.");
+ boolean outOfRange = false;
+ if (!playerLocation.getWorld().equals(location.getWorld())) {
+ outOfRange = true;
+ } else if (playerLocation.distanceSquared(location) > (nukeMonitorRange
+ * nukeMonitorRange)) {
+ outOfRange = true;
+ }
- playerdata.resetFreecamDestroyCount();
+ if (outOfRange) {
+ if (playerdata.incrementAndGetFreecamDestroyCount()
+ > ConfigurationEntry.FREECAM_TRIGGER_COUNT.getInteger()) {
+ Utilities.bcastMsg(
+ player.getName() + " has been flagged for possible freecam nuking.",
+ ChatColor.RED);
+ Utilities.autoEject(player,
+ "Freecam (extended range) block breaking is not permitted on this server.");
- event.setCancelled(true);
- return;
- }
- }
+ playerdata.resetFreecamDestroyCount();
- final Long lastRan = HeartBeat.getLastRan();
- if (lastRan == null || lastRan + TotalFreedomMod.HEARTBEAT_RATE * 1000L < System.currentTimeMillis())
- {
- // Log.warning("Heartbeat service timeout - can't check block place/break rates.");
- }
- else
- {
- if (playerdata.incrementAndGetBlockDestroyCount() > ConfigurationEntry.NUKE_MONITOR_COUNT_BREAK.getInteger())
- {
- Utilities.bcastMsg(player.getName() + " is breaking blocks too fast!", ChatColor.RED);
- Utilities.autoEject(player, "You are breaking blocks too fast. Nukers are not permitted on this server.");
+ event.setCancelled(true);
+ return;
+ }
+ }
- playerdata.resetBlockDestroyCount();
+ final Long lastRan = HeartBeat.getLastRan();
+ if (lastRan == null
+ || lastRan + TotalFreedomMod.HEARTBEAT_RATE * 1000L < System.currentTimeMillis()) {
+ // Log.warning("Heartbeat service timeout - can't check block place/break rates.");
+ } else {
+ if (playerdata.incrementAndGetBlockDestroyCount()
+ > ConfigurationEntry.NUKE_MONITOR_COUNT_BREAK.getInteger()) {
+ Utilities.bcastMsg(player.getName() + " is breaking blocks too fast!",
+ ChatColor.RED);
+ Utilities.autoEject(player,
+ "You are breaking blocks too fast. Nukers are not permitted on this server.");
- event.setCancelled(true);
- return;
- }
- }
- }
+ playerdata.resetBlockDestroyCount();
- if (ConfigurationEntry.PROTECTAREA_ENABLED.getBoolean())
- {
- if (!AdminList.isSuperAdmin(player))
- {
- if (ProtectedArea.isInProtectedArea(location))
- {
- event.setCancelled(true);
- }
- }
- }
- }
+ event.setCancelled(true);
+ return;
+ }
+ }
+ }
- @EventHandler(priority = EventPriority.HIGH)
- public void onBlockPlace(BlockPlaceEvent event)
- {
- Player player = event.getPlayer();
- Location blockLocation = event.getBlock().getLocation();
+ if (ConfigurationEntry.PROTECTAREA_ENABLED.getBoolean()) {
+ if (!AdminList.isSuperAdmin(player)) {
+ if (ProtectedArea.isInProtectedArea(location)) {
+ event.setCancelled(true);
+ }
+ }
+ }
+ }
- if (ConfigurationEntry.NUKE_MONITOR_ENABLED.getBoolean())
- {
- PlayerData playerdata = PlayerData.getPlayerData(player);
+ @EventHandler(priority = EventPriority.HIGH)
+ public void onBlockPlace(BlockPlaceEvent event) {
+ Player player = event.getPlayer();
+ Location blockLocation = event.getBlock().getLocation();
- Location playerLocation = player.getLocation();
+ if (ConfigurationEntry.NUKE_MONITOR_ENABLED.getBoolean()) {
+ PlayerData playerdata = PlayerData.getPlayerData(player);
- double nukeMonitorRange = ConfigurationEntry.NUKE_MONITOR_RANGE.getDouble().doubleValue();
+ Location playerLocation = player.getLocation();
- boolean outOfRange = false;
- if (!playerLocation.getWorld().equals(blockLocation.getWorld()))
- {
- outOfRange = true;
- }
- else if (playerLocation.distanceSquared(blockLocation) > (nukeMonitorRange * nukeMonitorRange))
- {
- outOfRange = true;
- }
+ double nukeMonitorRange = ConfigurationEntry.NUKE_MONITOR_RANGE.getDouble()
+ .doubleValue();
- if (outOfRange)
- {
- if (playerdata.incrementAndGetFreecamPlaceCount() > ConfigurationEntry.FREECAM_TRIGGER_COUNT.getInteger())
- {
- Utilities.bcastMsg(player.getName() + " has been flagged for possible freecam building.", ChatColor.RED);
- Utilities.autoEject(player, "Freecam (extended range) block building is not permitted on this server.");
+ boolean outOfRange = false;
+ if (!playerLocation.getWorld().equals(blockLocation.getWorld())) {
+ outOfRange = true;
+ } else if (playerLocation.distanceSquared(blockLocation) > (nukeMonitorRange
+ * nukeMonitorRange)) {
+ outOfRange = true;
+ }
- playerdata.resetFreecamPlaceCount();
+ if (outOfRange) {
+ if (playerdata.incrementAndGetFreecamPlaceCount()
+ > ConfigurationEntry.FREECAM_TRIGGER_COUNT.getInteger()) {
+ Utilities.bcastMsg(
+ player.getName() + " has been flagged for possible freecam building.",
+ ChatColor.RED);
+ Utilities.autoEject(player,
+ "Freecam (extended range) block building is not permitted on this server.");
- event.setCancelled(true);
- return;
- }
- }
+ playerdata.resetFreecamPlaceCount();
- Long lastRan = HeartBeat.getLastRan();
- if (lastRan == null || lastRan + TotalFreedomMod.HEARTBEAT_RATE * 1000L < System.currentTimeMillis())
- {
- //Log.warning("Heartbeat service timeout - can't check block place/break rates.");
- }
- else
- {
- if (playerdata.incrementAndGetBlockPlaceCount() > ConfigurationEntry.NUKE_MONITOR_COUNT_PLACE.getInteger())
- {
- Utilities.bcastMsg(player.getName() + " is placing blocks too fast!", ChatColor.RED);
- Utilities.autoEject(player, "You are placing blocks too fast.");
+ event.setCancelled(true);
+ return;
+ }
+ }
- playerdata.resetBlockPlaceCount();
+ Long lastRan = HeartBeat.getLastRan();
+ if (lastRan == null
+ || lastRan + TotalFreedomMod.HEARTBEAT_RATE * 1000L < System.currentTimeMillis()) {
+ //Log.warning("Heartbeat service timeout - can't check block place/break rates.");
+ } else {
+ if (playerdata.incrementAndGetBlockPlaceCount()
+ > ConfigurationEntry.NUKE_MONITOR_COUNT_PLACE.getInteger()) {
+ Utilities.bcastMsg(player.getName() + " is placing blocks too fast!",
+ ChatColor.RED);
+ Utilities.autoEject(player, "You are placing blocks too fast.");
- event.setCancelled(true);
- return;
- }
- }
- }
+ playerdata.resetBlockPlaceCount();
- if (ConfigurationEntry.PROTECTAREA_ENABLED.getBoolean())
- {
- if (!AdminList.isSuperAdmin(player))
- {
- if (ProtectedArea.isInProtectedArea(blockLocation))
- {
- event.setCancelled(true);
- return;
- }
- }
- }
+ event.setCancelled(true);
+ return;
+ }
+ }
+ }
- switch (event.getBlockPlaced().getType())
- {
- case LAVA:
- case STATIONARY_LAVA:
- {
- if (ConfigurationEntry.ALLOW_LAVA_PLACE.getBoolean())
- {
- Log.info(String.format("%s placed lava @ %s", player.getName(), Utilities.formatLocation(event.getBlock().getLocation())));
+ if (ConfigurationEntry.PROTECTAREA_ENABLED.getBoolean()) {
+ if (!AdminList.isSuperAdmin(player)) {
+ if (ProtectedArea.isInProtectedArea(blockLocation)) {
+ event.setCancelled(true);
+ return;
+ }
+ }
+ }
- player.getInventory().clear(player.getInventory().getHeldItemSlot());
- }
- else
- {
- player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1));
- player.sendMessage(ChatColor.GRAY + "Lava placement is currently disabled.");
+ switch (event.getBlockPlaced().getType()) {
+ case LAVA:
+ case STATIONARY_LAVA: {
+ if (ConfigurationEntry.ALLOW_LAVA_PLACE.getBoolean()) {
+ Log.info(String.format("%s placed lava @ %s", player.getName(),
+ Utilities.formatLocation(event.getBlock().getLocation())));
- event.setCancelled(true);
- }
- break;
- }
- case WATER:
- case STATIONARY_WATER:
- {
- if (ConfigurationEntry.ALLOW_WATER_PLACE.getBoolean())
- {
- Log.info(String.format("%s placed water @ %s", player.getName(), Utilities.formatLocation(event.getBlock().getLocation())));
+ player.getInventory().clear(player.getInventory().getHeldItemSlot());
+ } else {
+ player.getInventory().setItem(player.getInventory().getHeldItemSlot(),
+ new ItemStack(Material.COOKIE, 1));
+ player.sendMessage(ChatColor.GRAY + "Lava placement is currently disabled.");
- player.getInventory().clear(player.getInventory().getHeldItemSlot());
- }
- else
- {
- player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1));
- player.sendMessage(ChatColor.GRAY + "Water placement is currently disabled.");
+ event.setCancelled(true);
+ }
+ break;
+ }
+ case WATER:
+ case STATIONARY_WATER: {
+ if (ConfigurationEntry.ALLOW_WATER_PLACE.getBoolean()) {
+ Log.info(String.format("%s placed water @ %s", player.getName(),
+ Utilities.formatLocation(event.getBlock().getLocation())));
- event.setCancelled(true);
- }
- break;
- }
- case FIRE:
- {
- if (ConfigurationEntry.ALLOW_FIRE_PLACE.getBoolean())
- {
- Log.info(String.format("%s placed fire @ %s", player.getName(), Utilities.formatLocation(event.getBlock().getLocation())));
+ player.getInventory().clear(player.getInventory().getHeldItemSlot());
+ } else {
+ player.getInventory().setItem(player.getInventory().getHeldItemSlot(),
+ new ItemStack(Material.COOKIE, 1));
+ player.sendMessage(ChatColor.GRAY + "Water placement is currently disabled.");
- player.getInventory().clear(player.getInventory().getHeldItemSlot());
- }
- else
- {
- player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1));
- player.sendMessage(ChatColor.GRAY + "Fire placement is currently disabled.");
+ event.setCancelled(true);
+ }
+ break;
+ }
+ case FIRE: {
+ if (ConfigurationEntry.ALLOW_FIRE_PLACE.getBoolean()) {
+ Log.info(String.format("%s placed fire @ %s", player.getName(),
+ Utilities.formatLocation(event.getBlock().getLocation())));
- event.setCancelled(true);
- }
- break;
- }
- case TNT:
- {
- if (ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean())
- {
- Log.info(String.format("%s placed TNT @ %s", player.getName(), Utilities.formatLocation(event.getBlock().getLocation())));
+ player.getInventory().clear(player.getInventory().getHeldItemSlot());
+ } else {
+ player.getInventory().setItem(player.getInventory().getHeldItemSlot(),
+ new ItemStack(Material.COOKIE, 1));
+ player.sendMessage(ChatColor.GRAY + "Fire placement is currently disabled.");
- player.getInventory().clear(player.getInventory().getHeldItemSlot());
- }
- else
- {
- player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1));
+ event.setCancelled(true);
+ }
+ break;
+ }
+ case TNT: {
+ if (ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean()) {
+ Log.info(String.format("%s placed TNT @ %s", player.getName(),
+ Utilities.formatLocation(event.getBlock().getLocation())));
- player.sendMessage(ChatColor.GRAY + "TNT is currently disabled.");
- event.setCancelled(true);
- }
- break;
- }
- }
- }
+ player.getInventory().clear(player.getInventory().getHeldItemSlot());
+ } else {
+ player.getInventory().setItem(player.getInventory().getHeldItemSlot(),
+ new ItemStack(Material.COOKIE, 1));
- @EventHandler(priority = EventPriority.HIGH)
- public void onBlockFromTo(BlockFromToEvent event)
- {
- if (!ConfigurationEntry.ALLOW_FLUID_SPREAD.getBoolean())
- {
- event.setCancelled(true);
- }
- }
+ player.sendMessage(ChatColor.GRAY + "TNT is currently disabled.");
+ event.setCancelled(true);
+ }
+ break;
+ }
+ }
+ }
+
+ @EventHandler(priority = EventPriority.HIGH)
+ public void onBlockFromTo(BlockFromToEvent event) {
+ if (!ConfigurationEntry.ALLOW_FLUID_SPREAD.getBoolean()) {
+ event.setCancelled(true);
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/listener/EntityListener.java b/src/main/java/me/StevenLawson/TotalFreedomMod/listener/EntityListener.java
index d307f39..01e2ba8 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/listener/EntityListener.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/listener/EntityListener.java
@@ -1,178 +1,158 @@
package me.StevenLawson.TotalFreedomMod.listener;
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
-import org.bukkit.entity.*;
+import org.bukkit.entity.Bat;
+import org.bukkit.entity.EnderDragon;
+import org.bukkit.entity.Entity;
+import org.bukkit.entity.EntityType;
+import org.bukkit.entity.Ghast;
+import org.bukkit.entity.Giant;
+import org.bukkit.entity.HumanEntity;
+import org.bukkit.entity.Projectile;
+import org.bukkit.entity.Slime;
+import org.bukkit.entity.Tameable;
+import org.bukkit.entity.Vehicle;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
-import org.bukkit.event.entity.*;
-import org.bukkit.event.vehicle.*;
-import org.bukkit.util.Vector;
+import org.bukkit.event.entity.CreatureSpawnEvent;
+import org.bukkit.event.entity.EntityCombustEvent;
+import org.bukkit.event.entity.EntityDamageEvent;
+import org.bukkit.event.entity.EntityDeathEvent;
+import org.bukkit.event.entity.EntityExplodeEvent;
+import org.bukkit.event.entity.ExplosionPrimeEvent;
+import org.bukkit.event.entity.ProjectileHitEvent;
+import org.bukkit.event.vehicle.VehicleEntityCollisionEvent;
public class EntityListener implements Listener {
- @EventHandler(priority = EventPriority.HIGH)
- public void onEntityExplode(EntityExplodeEvent event) {
- if (!ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean()) {
- event.setCancelled(true);
- return;
- }
- event.setYield(0.0F);
- }
+ @EventHandler(priority = EventPriority.HIGH)
+ public void onEntityExplode(EntityExplodeEvent event) {
+ if (!ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean()) {
+ event.setCancelled(true);
+ return;
+ }
- @EventHandler(priority = EventPriority.HIGH)
- public void onExplosionPrime(ExplosionPrimeEvent event)
- {
- if (!ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean())
- {
- event.setCancelled(true);
- return;
- }
+ event.setYield(0.0F);
+ }
- event.setRadius((float) ConfigurationEntry.EXPLOSIVE_RADIUS.getDouble().doubleValue());
- }
+ @EventHandler(priority = EventPriority.HIGH)
+ public void onExplosionPrime(ExplosionPrimeEvent event) {
+ if (!ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean()) {
+ event.setCancelled(true);
+ return;
+ }
- @EventHandler(priority = EventPriority.HIGH)
- public void onEntityCombust(EntityCombustEvent event)
- {
- if (!ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean())
- {
- event.setCancelled(true);
- }
- }
+ event.setRadius((float) ConfigurationEntry.EXPLOSIVE_RADIUS.getDouble().doubleValue());
+ }
- @EventHandler(priority = EventPriority.HIGH)
- public void onEntityDamage(EntityDamageEvent event)
- {
- switch (event.getCause())
- {
- case LAVA:
- {
- if (!ConfigurationEntry.ALLOW_LAVA_DAMAGE.getBoolean())
- {
- event.setCancelled(true);
- return;
- }
- }
- }
+ @EventHandler(priority = EventPriority.HIGH)
+ public void onEntityCombust(EntityCombustEvent event) {
+ if (!ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean()) {
+ event.setCancelled(true);
+ }
+ }
- if (ConfigurationEntry.ENABLE_PET_PROTECT.getBoolean())
- {
- Entity entity = event.getEntity();
- if (entity instanceof Tameable)
- {
- if (((Tameable) entity).isTamed())
- {
- event.setCancelled(true);
- }
- }
- }
- }
+ @EventHandler(priority = EventPriority.HIGH)
+ public void onEntityDamage(EntityDamageEvent event) {
+ switch (event.getCause()) {
+ case LAVA: {
+ if (!ConfigurationEntry.ALLOW_LAVA_DAMAGE.getBoolean()) {
+ event.setCancelled(true);
+ return;
+ }
+ }
+ }
- @EventHandler(priority = EventPriority.NORMAL)
- public void onCreatureSpawn(CreatureSpawnEvent event)
- {
- if (ConfigurationEntry.MOB_LIMITER_ENABLED.getBoolean())
- {
- if (event.getSpawnReason().equals(CreatureSpawnEvent.SpawnReason.EGG))
- {
- event.setCancelled(true);
- return;
- }
+ if (ConfigurationEntry.ENABLE_PET_PROTECT.getBoolean()) {
+ Entity entity = event.getEntity();
+ if (entity instanceof Tameable) {
+ if (((Tameable) entity).isTamed()) {
+ event.setCancelled(true);
+ }
+ }
+ }
+ }
- Entity spawned = event.getEntity();
+ @EventHandler(priority = EventPriority.NORMAL)
+ public void onCreatureSpawn(CreatureSpawnEvent event) {
+ if (ConfigurationEntry.MOB_LIMITER_ENABLED.getBoolean()) {
+ if (event.getSpawnReason().equals(CreatureSpawnEvent.SpawnReason.EGG)) {
+ event.setCancelled(true);
+ return;
+ }
- if (spawned instanceof EnderDragon)
- {
- if (ConfigurationEntry.MOB_LIMITER_DISABLE_DRAGON.getBoolean())
- {
- event.setCancelled(true);
- return;
- }
- }
- else if (spawned instanceof Ghast)
- {
- if (ConfigurationEntry.MOB_LIMITER_DISABLE_GHAST.getBoolean())
- {
- event.setCancelled(true);
- return;
- }
- }
- else if (spawned instanceof Slime)
- {
- if (ConfigurationEntry.MOB_LIMITER_DISABLE_SLIME.getBoolean())
- {
- event.setCancelled(true);
- return;
- }
- }
- else if (spawned instanceof Giant)
- {
- if (ConfigurationEntry.MOB_LIMITER_DISABLE_GIANT.getBoolean())
- {
- event.setCancelled(true);
- return;
- }
- }
- else if (spawned instanceof Bat)
- {
- event.setCancelled(true);
- return;
- }
+ Entity spawned = event.getEntity();
- int mobLimiterMax = ConfigurationEntry.MOB_LIMITER_MAX.getInteger().intValue();
+ if (spawned instanceof EnderDragon) {
+ if (ConfigurationEntry.MOB_LIMITER_DISABLE_DRAGON.getBoolean()) {
+ event.setCancelled(true);
+ return;
+ }
+ } else if (spawned instanceof Ghast) {
+ if (ConfigurationEntry.MOB_LIMITER_DISABLE_GHAST.getBoolean()) {
+ event.setCancelled(true);
+ return;
+ }
+ } else if (spawned instanceof Slime) {
+ if (ConfigurationEntry.MOB_LIMITER_DISABLE_SLIME.getBoolean()) {
+ event.setCancelled(true);
+ return;
+ }
+ } else if (spawned instanceof Giant) {
+ if (ConfigurationEntry.MOB_LIMITER_DISABLE_GIANT.getBoolean()) {
+ event.setCancelled(true);
+ return;
+ }
+ } else if (spawned instanceof Bat) {
+ event.setCancelled(true);
+ return;
+ }
- if (mobLimiterMax > 0)
- {
- int mobcount = 0;
+ int mobLimiterMax = ConfigurationEntry.MOB_LIMITER_MAX.getInteger().intValue();
- for (Entity entity : event.getLocation().getWorld().getLivingEntities())
- {
- if (!(entity instanceof HumanEntity))
- {
- mobcount++;
- }
- }
+ if (mobLimiterMax > 0) {
+ int mobcount = 0;
- if (mobcount > mobLimiterMax)
- {
- event.setCancelled(true);
- }
- }
- }
- }
+ for (Entity entity : event.getLocation().getWorld().getLivingEntities()) {
+ if (!(entity instanceof HumanEntity)) {
+ mobcount++;
+ }
+ }
- //FIXME Make patch better
+ if (mobcount > mobLimiterMax) {
+ event.setCancelled(true);
+ }
+ }
+ }
+ }
- @EventHandler(priority = EventPriority.HIGH)
- public void onVehicleCollisionEntity(VehicleEntityCollisionEvent event) {
- if(event.getEntity() instanceof Vehicle) {
- event.setCollisionCancelled(true);
- event.setPickupCancelled(true);
- event.setCancelled(true);
- event.getVehicle().remove();
- }
- }
+ //FIXME Make patch better
- @EventHandler(priority = EventPriority.HIGH)
- public void onEntityDeath(EntityDeathEvent event)
- {
- if (ConfigurationEntry.AUTO_ENTITY_WIPE.getBoolean())
- {
- event.setDroppedExp(0);
- }
- }
+ @EventHandler(priority = EventPriority.HIGH)
+ public void onVehicleCollisionEntity(VehicleEntityCollisionEvent event) {
+ if (event.getEntity() instanceof Vehicle) {
+ event.setCollisionCancelled(true);
+ event.setPickupCancelled(true);
+ event.setCancelled(true);
+ event.getVehicle().remove();
+ }
+ }
- @EventHandler(priority = EventPriority.NORMAL)
- public void onProjectileHit(ProjectileHitEvent event)
- {
- if (ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean())
- {
- Projectile entity = event.getEntity();
- if (event.getEntityType() == EntityType.ARROW)
- {
- entity.getWorld().createExplosion(entity.getLocation(), 2F);
- }
- }
- }
+ @EventHandler(priority = EventPriority.HIGH)
+ public void onEntityDeath(EntityDeathEvent event) {
+ if (ConfigurationEntry.AUTO_ENTITY_WIPE.getBoolean()) {
+ event.setDroppedExp(0);
+ }
+ }
+
+ @EventHandler(priority = EventPriority.NORMAL)
+ public void onProjectileHit(ProjectileHitEvent event) {
+ if (ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean()) {
+ Projectile entity = event.getEntity();
+ if (event.getEntityType() == EntityType.ARROW) {
+ entity.getWorld().createExplosion(entity.getLocation(), 2F);
+ }
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/listener/PlayerListener.java b/src/main/java/me/StevenLawson/TotalFreedomMod/listener/PlayerListener.java
index 0930080..3264248 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/listener/PlayerListener.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/listener/PlayerListener.java
@@ -84,6 +84,17 @@ public class PlayerListener implements Listener {
public static final int MSG_PER_HEARTBEAT = 10;
public static final int DEFAULT_PORT = 25565;
public static final int MAX_XY_COORD = 30000000;
+ private static final Random RANDOM = new Random();
+
+ private static Location randomOffset(Location a, double magnitude) {
+ return a.clone()
+ .add(randomDoubleRange(-1.0, 1.0) * magnitude, randomDoubleRange(-1.0, 1.0) * magnitude,
+ randomDoubleRange(-1.0, 1.0) * magnitude);
+ }
+
+ private static Double randomDoubleRange(double min, double max) {
+ return min + (RANDOM.nextDouble() * ((max - min) + 1.0));
+ }
@EventHandler(priority = EventPriority.HIGH)
public void onPlayerInteract(PlayerInteractEvent event) {
@@ -325,18 +336,6 @@ public class PlayerListener implements Listener {
}
}
- private static final Random RANDOM = new Random();
-
- private static Location randomOffset(Location a, double magnitude) {
- return a.clone()
- .add(randomDoubleRange(-1.0, 1.0) * magnitude, randomDoubleRange(-1.0, 1.0) * magnitude,
- randomDoubleRange(-1.0, 1.0) * magnitude);
- }
-
- private static Double randomDoubleRange(double min, double max) {
- return min + (RANDOM.nextDouble() * ((max - min) + 1.0));
- }
-
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerTeleport(PlayerTeleportEvent event) {
final org.bukkit.entity.Player player = event.getPlayer();
@@ -574,7 +573,7 @@ public class PlayerListener implements Listener {
event.setMessage(ChatColor.translateAlternateColorCodes('&', message));
if (message.toLowerCase().contains("molesllc") || message.toLowerCase()
- .contains("moles llc")) {
+ .contains("moles llc") || message.toLowerCase().contains("discord.gg/moles")) {
SecureRandom secureRandom = new SecureRandom();
Utilities.bcastMsg(String.format(MOCK_THE_MOLES_FOREVER.get(
secureRandom.nextInt(MOCK_THE_MOLES_FOREVER.size())),
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/listener/ServerListener.java b/src/main/java/me/StevenLawson/TotalFreedomMod/listener/ServerListener.java
index 8126fa2..52bc353 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/listener/ServerListener.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/listener/ServerListener.java
@@ -12,48 +12,45 @@ import org.bukkit.event.Listener;
import org.bukkit.event.server.ServerListPingEvent;
public class ServerListener implements Listener {
- @EventHandler(priority = EventPriority.HIGHEST)
- public void onServerPing(ServerListPingEvent event) {
- final String ip = event.getAddress().getHostAddress();
- if (BanManager.isIpBanned(ip)) {
- event.setMotd(ChatColor.RED + "You are banned.");
- return;
- }
+ @EventHandler(priority = EventPriority.HIGHEST)
+ public void onServerPing(ServerListPingEvent event) {
+ final String ip = event.getAddress().getHostAddress();
- if (ConfigurationEntry.ADMIN_ONLY_MODE.getBoolean())
- {
- event.setMotd(ChatColor.RED + "Server is in adminmode.");
- return;
- }
+ if (BanManager.isIpBanned(ip)) {
+ event.setMotd(ChatColor.RED + "You are banned.");
+ return;
+ }
- if (Bukkit.hasWhitelist())
- {
- event.setMotd(ChatColor.RED + "Server is whitelisted.");
- return;
- }
+ if (ConfigurationEntry.ADMIN_ONLY_MODE.getBoolean()) {
+ event.setMotd(ChatColor.RED + "Server is in adminmode.");
+ return;
+ }
- if (Bukkit.getOnlinePlayers().size() >= Bukkit.getMaxPlayers())
- {
- event.setMotd(ChatColor.RED + "Server is full.");
- return;
- }
+ if (Bukkit.hasWhitelist()) {
+ event.setMotd(ChatColor.RED + "Server is whitelisted.");
+ return;
+ }
- if (!ConfigurationEntry.SERVER_COLORFUL_MOTD.getBoolean())
- {
- event.setMotd(Utilities.colorize(ConfigurationEntry.SERVER_MOTD.getString()
- .replace("%mcversion%", Server.getVersion())));
- return;
- }
- // Colorful MOTD
+ if (Bukkit.getOnlinePlayers().size() >= Bukkit.getMaxPlayers()) {
+ event.setMotd(ChatColor.RED + "Server is full.");
+ return;
+ }
- final StringBuilder motd = new StringBuilder();
+ if (!ConfigurationEntry.SERVER_COLORFUL_MOTD.getBoolean()) {
+ event.setMotd(Utilities.colorize(ConfigurationEntry.SERVER_MOTD.getString()
+ .replace("%mcversion%", Server.getVersion())));
+ return;
+ }
+ // Colorful MOTD
- for (String word : ConfigurationEntry.SERVER_MOTD.getString().replace("%mcversion%", Server.getVersion()).split(" "))
- {
- motd.append(Utilities.randomChatColor()).append(word).append(" ");
- }
+ final StringBuilder motd = new StringBuilder();
- event.setMotd(Utilities.colorize(motd.toString()));
- }
+ for (String word : ConfigurationEntry.SERVER_MOTD.getString()
+ .replace("%mcversion%", Server.getVersion()).split(" ")) {
+ motd.append(Utilities.randomChatColor()).append(word).append(" ");
+ }
+
+ event.setMotd(Utilities.colorize(motd.toString()));
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/listener/WeatherListener.java b/src/main/java/me/StevenLawson/TotalFreedomMod/listener/WeatherListener.java
index 0802905..cd36575 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/listener/WeatherListener.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/listener/WeatherListener.java
@@ -9,42 +9,36 @@ import org.bukkit.event.weather.ThunderChangeEvent;
import org.bukkit.event.weather.WeatherChangeEvent;
public class WeatherListener implements Listener {
- @EventHandler(priority = EventPriority.HIGH)
- public void onThunderChange(ThunderChangeEvent event) {
- try {
- if (event.getWorld() == AdminWorld.getInstance().getWorld() && AdminWorld.getInstance().getWeatherMode() != AdminWorld.WeatherMode.OFF) {
- return;
- }
- }
- catch (Exception ex)
- {
- }
- if (event.toThunderState() && ConfigurationEntry.DISABLE_WEATHER.getBoolean())
- {
- event.setCancelled(true);
- return;
- }
- }
+ @EventHandler(priority = EventPriority.HIGH)
+ public void onThunderChange(ThunderChangeEvent event) {
+ try {
+ if (event.getWorld() == AdminWorld.getInstance().getWorld()
+ && AdminWorld.getInstance().getWeatherMode() != AdminWorld.WeatherMode.OFF) {
+ return;
+ }
+ } catch (Exception ex) {
+ }
- @EventHandler(priority = EventPriority.HIGH)
- public void onWeatherChange(WeatherChangeEvent event)
- {
- try
- {
- if (event.getWorld() == AdminWorld.getInstance().getWorld() && AdminWorld.getInstance().getWeatherMode() != AdminWorld.WeatherMode.OFF)
- {
- return;
- }
- }
- catch (Exception ex)
- {
- }
+ if (event.toThunderState() && ConfigurationEntry.DISABLE_WEATHER.getBoolean()) {
+ event.setCancelled(true);
+ return;
+ }
+ }
- if (event.toWeatherState() && ConfigurationEntry.DISABLE_WEATHER.getBoolean())
- {
- event.setCancelled(true);
- return;
- }
- }
+ @EventHandler(priority = EventPriority.HIGH)
+ public void onWeatherChange(WeatherChangeEvent event) {
+ try {
+ if (event.getWorld() == AdminWorld.getInstance().getWorld()
+ && AdminWorld.getInstance().getWeatherMode() != AdminWorld.WeatherMode.OFF) {
+ return;
+ }
+ } catch (Exception ex) {
+ }
+
+ if (event.toWeatherState() && ConfigurationEntry.DISABLE_WEATHER.getBoolean()) {
+ event.setCancelled(true);
+ return;
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/listener/WorldEditListener.java b/src/main/java/me/StevenLawson/TotalFreedomMod/listener/WorldEditListener.java
index fd5586b..6d693a9 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/listener/WorldEditListener.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/listener/WorldEditListener.java
@@ -12,48 +12,48 @@ import org.bukkit.event.Listener;
public class WorldEditListener implements Listener {
- @EventHandler
- public void onSelectionChange(final SelectionChangedEvent event) {
- final Player player = event.getPlayer();
+ @EventHandler
+ public void onSelectionChange(final SelectionChangedEvent event) {
+ final Player player = event.getPlayer();
- if (AdminList.isSuperAdmin(player)) {
- return;
- }
+ if (AdminList.isSuperAdmin(player)) {
+ return;
+ }
- if (ProtectedArea.isInProtectedArea(
- event.getMinVector(),
- event.getMaxVector(),
- event.getWorld().getName()))
- {
+ if (ProtectedArea.isInProtectedArea(
+ event.getMinVector(),
+ event.getMaxVector(),
+ event.getWorld().getName())) {
- player.sendMessage(ChatColor.RED + "The region that you selected contained a protected area. Selection cleared.");
- event.setCancelled(true);
- }
- }
+ player.sendMessage(ChatColor.RED
+ + "The region that you selected contained a protected area. Selection cleared.");
+ event.setCancelled(true);
+ }
+ }
- @EventHandler
- public void onLimitChanged(LimitChangedEvent event)
- {
- final Player player = event.getPlayer();
+ @EventHandler
+ public void onLimitChanged(LimitChangedEvent event) {
+ final Player player = event.getPlayer();
- if (AdminList.isSuperAdmin(player))
- {
- return;
- }
+ if (AdminList.isSuperAdmin(player)) {
+ return;
+ }
- if (!event.getPlayer().equals(event.getTarget()))
- {
- player.sendMessage(ChatColor.RED + "Only admins can change the limit for other players!");
- event.setCancelled(true);
- }
+ if (!event.getPlayer().equals(event.getTarget())) {
+ player.sendMessage(
+ ChatColor.RED + "Only admins can change the limit for other players!");
+ event.setCancelled(true);
+ }
- if (event.getLimit() < 0 || event.getLimit() > 10000)
- {
- player.setOp(false);
- Utilities.bcastMsg(event.getPlayer().getName() + " tried to set their WorldEdit limit to " + event.getLimit() + " and has been de-opped", ChatColor.RED);
- event.setCancelled(true);
- player.sendMessage(ChatColor.RED + "You cannot set your limit higher than 10000 or to -1!");
- }
- }
+ if (event.getLimit() < 0 || event.getLimit() > 10000) {
+ player.setOp(false);
+ Utilities.bcastMsg(
+ event.getPlayer().getName() + " tried to set their WorldEdit limit to "
+ + event.getLimit() + " and has been de-opped", ChatColor.RED);
+ event.setCancelled(true);
+ player.sendMessage(
+ ChatColor.RED + "You cannot set your limit higher than 10000 or to -1!");
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/manager/UUIDManager.java b/src/main/java/me/StevenLawson/TotalFreedomMod/manager/UUIDManager.java
index 41f2d52..a2024c2 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/manager/UUIDManager.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/manager/UUIDManager.java
@@ -36,10 +36,6 @@ public class UUIDManager {
private static final Statement FIND;
private static final Statement UPDATE;
- private UUIDManager() {
- throw new AssertionError();
- }
-
static {
SQL = new SQLiteDatabase(
"uuids.db",
@@ -53,6 +49,10 @@ public class UUIDManager {
"REPLACE INTO " + TABLE_NAME + " (username, uuid) VALUES (?, ?);");
}
+ private UUIDManager() {
+ throw new AssertionError();
+ }
+
public static void load() {
// Init DB
SQL.connect();
@@ -228,6 +228,10 @@ public class UUIDManager {
this.names = ImmutableList.copyOf(names);
}
+ public static UUID getUUIDOf(String name) {
+ return new TFM_UuidResolver(Arrays.asList(name)).call().get(name);
+ }
+
@Override
public Map call() {
final Map uuidMap = new HashMap();
@@ -279,10 +283,6 @@ public class UUIDManager {
}
return uuidMap;
}
-
- public static UUID getUUIDOf(String name) {
- return new TFM_UuidResolver(Arrays.asList(name)).call().get(name);
- }
}
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/player/HeartBeat.java b/src/main/java/me/StevenLawson/TotalFreedomMod/player/HeartBeat.java
index 7a51ffd..49f4111 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/player/HeartBeat.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/player/HeartBeat.java
@@ -10,81 +10,71 @@ import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
-public class HeartBeat extends BukkitRunnable
-{
- private static final long AUTO_KICK_TIME = (long) ConfigurationEntry.AUTOKICK_TIME.getInteger() * 1000L;
- private final TotalFreedomMod plugin;
- private final Server server;
- private static Long lastRan = null;
+public class HeartBeat extends BukkitRunnable {
- public HeartBeat(TotalFreedomMod instance)
- {
- this.plugin = instance;
- this.server = plugin.getServer();
- }
+ private static final long AUTO_KICK_TIME =
+ (long) ConfigurationEntry.AUTOKICK_TIME.getInteger() * 1000L;
+ private static Long lastRan = null;
+ private final TotalFreedomMod plugin;
+ private final Server server;
- public static Long getLastRan()
- {
- return lastRan;
- }
+ public HeartBeat(TotalFreedomMod instance) {
+ this.plugin = instance;
+ this.server = plugin.getServer();
+ }
- @Override
- public void run()
- {
- lastRan = System.currentTimeMillis();
+ public static Long getLastRan() {
+ return lastRan;
+ }
- final boolean doAwayKickCheck = ConfigurationEntry.AUTOKICK_ENABLED.getBoolean()
- && EssentialsBridge.isEssentialsEnabled()
- && ((server.getOnlinePlayers().size() / server.getMaxPlayers()) > ConfigurationEntry.AUTOKICK_THRESHOLD.getDouble());
+ @Override
+ public void run() {
+ lastRan = System.currentTimeMillis();
- for (Player player : server.getOnlinePlayers())
- {
- final PlayerData playerdata = PlayerData.getPlayerData(player);
- playerdata.resetMsgCount();
- playerdata.resetBlockDestroyCount();
- playerdata.resetBlockPlaceCount();
+ final boolean doAwayKickCheck = ConfigurationEntry.AUTOKICK_ENABLED.getBoolean()
+ && EssentialsBridge.isEssentialsEnabled()
+ && ((server.getOnlinePlayers().size() / server.getMaxPlayers())
+ > ConfigurationEntry.AUTOKICK_THRESHOLD.getDouble());
- if (doAwayKickCheck)
- {
- final long lastActivity = EssentialsBridge.getLastActivity(player.getName());
- if (lastActivity > 0 && lastActivity + AUTO_KICK_TIME < System.currentTimeMillis())
- {
- player.kickPlayer("Automatically kicked by server for inactivity.");
- }
- }
- }
+ for (Player player : server.getOnlinePlayers()) {
+ final PlayerData playerdata = PlayerData.getPlayerData(player);
+ playerdata.resetMsgCount();
+ playerdata.resetBlockDestroyCount();
+ playerdata.resetBlockPlaceCount();
- if (ConfigurationEntry.AUTO_ENTITY_WIPE.getBoolean())
- {
- Utilities.TFM_EntityWiper.wipeEntities(!ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean(), false);
- }
+ if (doAwayKickCheck) {
+ final long lastActivity = EssentialsBridge.getLastActivity(player.getName());
+ if (lastActivity > 0
+ && lastActivity + AUTO_KICK_TIME < System.currentTimeMillis()) {
+ player.kickPlayer("Automatically kicked by server for inactivity.");
+ }
+ }
+ }
- if (ConfigurationEntry.DISABLE_WEATHER.getBoolean())
- {
- for (World world : server.getWorlds())
- {
- try
- {
- if (world == AdminWorld.getInstance().getWorld() && AdminWorld.getInstance().getWeatherMode() != AdminWorld.WeatherMode.OFF)
- {
- continue;
- }
- }
- catch (Exception ex)
- {
- }
+ if (ConfigurationEntry.AUTO_ENTITY_WIPE.getBoolean()) {
+ Utilities.TFM_EntityWiper.wipeEntities(
+ !ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean(), false);
+ }
- if (world.getWeatherDuration() > 0)
- {
- world.setThundering(false);
- world.setWeatherDuration(0);
- }
- else if (world.getThunderDuration() > 0)
- {
- world.setStorm(false);
- world.setThunderDuration(0);
- }
- }
- }
- }
+ if (ConfigurationEntry.DISABLE_WEATHER.getBoolean()) {
+ for (World world : server.getWorlds()) {
+ try {
+ if (world == AdminWorld.getInstance().getWorld()
+ && AdminWorld.getInstance().getWeatherMode()
+ != AdminWorld.WeatherMode.OFF) {
+ continue;
+ }
+ } catch (Exception ex) {
+ }
+
+ if (world.getWeatherDuration() > 0) {
+ world.setThundering(false);
+ world.setWeatherDuration(0);
+ } else if (world.getThunderDuration() > 0) {
+ world.setStorm(false);
+ world.setThunderDuration(0);
+ }
+ }
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/player/Player.java b/src/main/java/me/StevenLawson/TotalFreedomMod/player/Player.java
index cc2f8cc..e46593c 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/player/Player.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/player/Player.java
@@ -1,144 +1,124 @@
package me.StevenLawson.TotalFreedomMod.player;
-import java.sql.Array;
+import com.google.common.collect.ImmutableList;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.UUID;
-
-import com.google.common.collect.ImmutableList;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import org.bukkit.configuration.ConfigurationSection;
-public class Player
-{
- private final UUID uuid;
- private String firstJoinName;
- private String lastJoinName;
- private long firstJoinUnix;
- private long lastJoinUnix;
- private final List ips;
+public class Player {
- protected Player(UUID uuid, ConfigurationSection section)
- {
- this(uuid);
+ private final UUID uuid;
+ private final List ips;
+ private String firstJoinName;
+ private String lastJoinName;
+ private long firstJoinUnix;
+ private long lastJoinUnix;
- this.firstJoinName = section.getString("firstjoinname");
- this.lastJoinName = section.getString("lastjoinname");
+ protected Player(UUID uuid, ConfigurationSection section) {
+ this(uuid);
- this.firstJoinUnix = section.getLong("firstjoinunix");
- this.lastJoinUnix = section.getLong("lastjoinunix");
+ this.firstJoinName = section.getString("firstjoinname");
+ this.lastJoinName = section.getString("lastjoinname");
- this.ips.addAll(section.getStringList("ips"));
- }
+ this.firstJoinUnix = section.getLong("firstjoinunix");
+ this.lastJoinUnix = section.getLong("lastjoinunix");
- protected Player(UUID uuid, String firstJoinName, String lastJoinName, long firstJoinUnix, long lastJoinUnix, List ips)
- {
- this(uuid);
+ this.ips.addAll(section.getStringList("ips"));
+ }
- this.firstJoinName = firstJoinName;
- this.lastJoinName = lastJoinName;
+ protected Player(UUID uuid, String firstJoinName, String lastJoinName, long firstJoinUnix,
+ long lastJoinUnix, List ips) {
+ this(uuid);
- this.firstJoinUnix = firstJoinUnix;
- this.lastJoinUnix = lastJoinUnix;
+ this.firstJoinName = firstJoinName;
+ this.lastJoinName = lastJoinName;
- this.ips.addAll(ips);
- }
+ this.firstJoinUnix = firstJoinUnix;
+ this.lastJoinUnix = lastJoinUnix;
- protected Player(UUID uuid)
- {
- if (uuid == null)
- {
- throw new IllegalArgumentException("UUID can not be null!");
- }
+ this.ips.addAll(ips);
+ }
- this.uuid = uuid;
- this.ips = new ArrayList();
- }
+ protected Player(UUID uuid) {
+ if (uuid == null) {
+ throw new IllegalArgumentException("UUID can not be null!");
+ }
- // Getters / Setters below
- public UUID getUniqueId()
- {
- return uuid;
- }
+ this.uuid = uuid;
+ this.ips = new ArrayList();
+ }
- public List getFuzziedIps() {
- final ArrayList fuzziedIps = new ArrayList<>();
+ // Getters / Setters below
+ public UUID getUniqueId() {
+ return uuid;
+ }
- for (String ip : ips)
- {
- fuzziedIps.add(Utilities.getFuzzyIp(ip));
- }
+ public List getFuzziedIps() {
+ final ArrayList fuzziedIps = new ArrayList<>();
- return ImmutableList.copyOf(fuzziedIps);
- }
+ for (String ip : ips) {
+ fuzziedIps.add(Utilities.getFuzzyIp(ip));
+ }
- public List getIps()
- {
- return Collections.unmodifiableList(ips);
- }
+ return ImmutableList.copyOf(fuzziedIps);
+ }
- public String getFirstLoginName()
- {
- return firstJoinName;
- }
+ public List getIps() {
+ return Collections.unmodifiableList(ips);
+ }
- public void setFirstLoginName(String firstJoinName)
- {
- this.firstJoinName = firstJoinName;
- }
+ public String getFirstLoginName() {
+ return firstJoinName;
+ }
- public String getLastLoginName()
- {
- return lastJoinName;
- }
+ public void setFirstLoginName(String firstJoinName) {
+ this.firstJoinName = firstJoinName;
+ }
- public void setLastLoginName(String lastJoinName)
- {
- this.lastJoinName = lastJoinName;
- }
+ public String getLastLoginName() {
+ return lastJoinName;
+ }
- public long getFirstLoginUnix()
- {
- return firstJoinUnix;
- }
+ public void setLastLoginName(String lastJoinName) {
+ this.lastJoinName = lastJoinName;
+ }
- public void setFirstLoginUnix(long firstJoinUnix)
- {
- this.firstJoinUnix = firstJoinUnix;
- }
+ public long getFirstLoginUnix() {
+ return firstJoinUnix;
+ }
- public long getLastLoginUnix()
- {
- return lastJoinUnix;
- }
+ public void setFirstLoginUnix(long firstJoinUnix) {
+ this.firstJoinUnix = firstJoinUnix;
+ }
- public void setLastLoginUnix(long lastJoinUnix)
- {
- this.lastJoinUnix = lastJoinUnix;
- }
+ public long getLastLoginUnix() {
+ return lastJoinUnix;
+ }
- public boolean addIp(String ip)
- {
- if (!ips.contains(ip))
- {
- ips.add(ip);
- return true;
- }
- return false;
- }
+ public void setLastLoginUnix(long lastJoinUnix) {
+ this.lastJoinUnix = lastJoinUnix;
+ }
- public final boolean isComplete()
- {
- return firstJoinName != null
- && lastJoinName != null
- && firstJoinUnix != 0
- && lastJoinUnix != 0
- && !ips.isEmpty();
- }
+ public boolean addIp(String ip) {
+ if (!ips.contains(ip)) {
+ ips.add(ip);
+ return true;
+ }
+ return false;
+ }
- public void save()
- {
- PlayerList.save(this);
- }
+ public final boolean isComplete() {
+ return firstJoinName != null
+ && lastJoinName != null
+ && firstJoinUnix != 0
+ && lastJoinUnix != 0
+ && !ips.isEmpty();
+ }
+
+ public void save() {
+ PlayerList.save(this);
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/player/PlayerData.java b/src/main/java/me/StevenLawson/TotalFreedomMod/player/PlayerData.java
index d9130d9..89c5d32 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/player/PlayerData.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/player/PlayerData.java
@@ -1,11 +1,20 @@
package me.StevenLawson.TotalFreedomMod.player;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import me.StevenLawson.TotalFreedomMod.bridge.EssentialsBridge;
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
import me.StevenLawson.TotalFreedomMod.manager.UUIDManager;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
-import org.bukkit.*;
+import org.bukkit.Bukkit;
+import org.bukkit.ChatColor;
+import org.bukkit.GameMode;
+import org.bukkit.Location;
+import org.bukkit.Material;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.LivingEntity;
@@ -13,574 +22,476 @@ import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask;
-import java.util.*;
-
public class PlayerData {
- public static final Map PLAYER_DATA = new HashMap(); // ip,data
- public static final long AUTO_PURGE = 20L * 60L * 5L;
-
- public static boolean hasPlayerData(Player player) {
- return PLAYER_DATA.containsKey(Utilities.getIp(player));
- }
-
- public static PlayerData getPlayerDataSync(Player player)
- {
- synchronized (PLAYER_DATA)
- {
- return getPlayerData(player);
- }
- }
-
- public static PlayerData getPlayerData(Player player)
- {
- final String ip = Utilities.getIp(player);
-
- PlayerData data = PlayerData.PLAYER_DATA.get(ip);
-
- if (data != null)
- {
- return data;
- }
-
- if (Bukkit.getOnlineMode())
- {
- for (PlayerData dataTest : PLAYER_DATA.values())
- {
- if (dataTest.player.getName().equalsIgnoreCase(player.getName()))
- {
- data = dataTest;
- break;
- }
- }
- }
-
- if (data != null)
- {
- return data;
- }
-
- data = new PlayerData(player, UUIDManager.getUniqueId(player), ip);
- PlayerData.PLAYER_DATA.put(ip, data);
-
- return data;
- }
- //
- private final Player player;
- private final String ip;
- private final UUID uuid;
- //
- private BukkitTask unmuteTask;
- private BukkitTask unfreezeTask;
- private Location freezeLocation;
- private boolean isHalted = false;
- private int messageCount = 0;
- private int totalBlockDestroy = 0;
- private int totalBlockPlace = 0;
- private int freecamDestroyCount = 0;
- private int freecamPlaceCount = 0;
- private boolean isCaged = false;
- private Location cagePosition;
- private final List cageHistory = new ArrayList();
- private Material cageOuterMaterial = Material.GLASS;
- private Material cageInnerMatterial = Material.AIR;
- private boolean isOrbiting = false;
- private double orbitStrength = 10.0;
- private boolean mobThrowerEnabled = false;
- private EntityType mobThrowerEntity = EntityType.PIG;
- private double mobThrowerSpeed = 4.0;
- private final List mobThrowerQueue = new ArrayList();
- private BukkitTask mp44ScheduleTask = null;
- private boolean mp44Armed = false;
- private boolean mp44Firing = false;
- private BukkitTask lockupScheduleTask = null;
- private String lastMessage = "";
- private boolean inAdminchat = false;
- private boolean allCommandsBlocked = false;
- private boolean verifiedSuperadminId = false;
- private String lastCommand = "";
- private boolean cmdspyEnabled = false;
- private String tag = null;
- private int warningCount = 0;
-
- private PlayerData(Player player, UUID uuid, String ip)
- {
- this.player = player;
- this.uuid = uuid;
- this.ip = ip;
- }
-
- public String getIpAddress()
- {
- return this.ip;
- }
-
- public UUID getUniqueId()
- {
- return uuid;
- }
-
- public boolean isOrbiting()
- {
- return isOrbiting;
- }
-
- public void startOrbiting(double strength)
- {
- this.isOrbiting = true;
- this.orbitStrength = strength;
- }
-
- public void stopOrbiting()
- {
- this.isOrbiting = false;
- }
-
- public double orbitStrength()
- {
- return orbitStrength;
- }
-
- public void setCaged(boolean state)
- {
- this.isCaged = state;
- }
-
- public void setCaged(boolean state, Location location, Material outer, Material inner)
- {
- this.isCaged = state;
- this.cagePosition = location;
- this.cageOuterMaterial = outer;
- this.cageInnerMatterial = inner;
- }
-
- public boolean isCaged()
- {
- return isCaged;
- }
-
- public Material getCageMaterial(CageLayer layer)
- {
- switch (layer)
- {
- case OUTER:
- return this.cageOuterMaterial;
- case INNER:
- return this.cageInnerMatterial;
- default:
- return this.cageOuterMaterial;
- }
- }
-
- public Location getCagePos()
- {
- return cagePosition;
- }
-
- public void clearHistory()
- {
- cageHistory.clear();
- }
-
- public void insertHistoryBlock(Location location, Material material)
- {
- cageHistory.add(new TFM_BlockData(location, material));
- }
-
- public void regenerateHistory()
- {
- for (TFM_BlockData blockdata : this.cageHistory)
- {
- blockdata.location.getBlock().setType(blockdata.material);
- }
- }
-
- public Location getFreezeLocation()
- {
- return freezeLocation;
- }
-
- public boolean isFrozen()
- {
- return unfreezeTask != null;
- }
-
- public void setFrozen(boolean freeze)
- {
- cancel(unfreezeTask);
- unfreezeTask = null;
- freezeLocation = null;
-
- if (player.getGameMode() != GameMode.CREATIVE)
- {
- Utilities.setFlying(player, false);
- }
-
- if (!freeze)
- {
- return;
- }
-
- freezeLocation = player.getLocation(); // Blockify location
- Utilities.setFlying(player, true); // Avoid infinite falling
-
- unfreezeTask = new BukkitRunnable()
- {
- @Override
- public void run()
- {
- Utilities.adminAction("TotalFreedom", "Unfreezing " + player.getName(), false);
- setFrozen(false);
- }
-
- }.runTaskLater(TotalFreedomMod.plugin, AUTO_PURGE);
- }
-
- public void resetMsgCount()
- {
- this.messageCount = 0;
- }
-
- public int incrementAndGetMsgCount()
- {
- return this.messageCount++;
- }
-
- public int incrementAndGetBlockDestroyCount()
- {
- return this.totalBlockDestroy++;
- }
-
- public void resetBlockDestroyCount()
- {
- this.totalBlockDestroy = 0;
- }
-
- public int incrementAndGetBlockPlaceCount()
- {
- return this.totalBlockPlace++;
- }
-
- public void resetBlockPlaceCount()
- {
- this.totalBlockPlace = 0;
- }
-
- public int incrementAndGetFreecamDestroyCount()
- {
- return this.freecamDestroyCount++;
- }
-
- public void resetFreecamDestroyCount()
- {
- this.freecamDestroyCount = 0;
- }
-
- public int incrementAndGetFreecamPlaceCount()
- {
- return this.freecamPlaceCount++;
- }
-
- public void resetFreecamPlaceCount()
- {
- this.freecamPlaceCount = 0;
- }
-
- public void enableMobThrower(EntityType mobThrowerCreature, double mobThrowerSpeed)
- {
- this.mobThrowerEnabled = true;
- this.mobThrowerEntity = mobThrowerCreature;
- this.mobThrowerSpeed = mobThrowerSpeed;
- }
-
- public void disableMobThrower()
- {
- this.mobThrowerEnabled = false;
- }
-
- public EntityType mobThrowerCreature()
- {
- return this.mobThrowerEntity;
- }
-
- public double mobThrowerSpeed()
- {
- return this.mobThrowerSpeed;
- }
-
- public boolean mobThrowerEnabled()
- {
- return this.mobThrowerEnabled;
- }
-
- public void enqueueMob(LivingEntity mob)
- {
- mobThrowerQueue.add(mob);
- if (mobThrowerQueue.size() > 4)
- {
- LivingEntity oldmob = mobThrowerQueue.remove(0);
- if (oldmob != null)
- {
- oldmob.damage(500.0);
- }
- }
- }
-
- public void startArrowShooter(TotalFreedomMod plugin)
- {
- this.stopArrowShooter();
- this.mp44ScheduleTask = new ArrowShooter(this.player).runTaskTimer(plugin, 1L, 1L);
- this.mp44Firing = true;
- }
-
- public void stopArrowShooter()
- {
- if (this.mp44ScheduleTask != null)
- {
- this.mp44ScheduleTask.cancel();
- this.mp44ScheduleTask = null;
- }
- this.mp44Firing = false;
- }
-
- public void armMP44()
- {
- this.mp44Armed = true;
- this.stopArrowShooter();
- }
-
- public void disarmMP44()
- {
- this.mp44Armed = false;
- this.stopArrowShooter();
- }
-
- public boolean isMP44Armed()
- {
- return this.mp44Armed;
- }
-
- public boolean toggleMP44Firing()
- {
- this.mp44Firing = !this.mp44Firing;
- return mp44Firing;
- }
-
- public boolean isMuted()
- {
- return unmuteTask != null;
- }
-
- public void setMuted(boolean muted)
- {
- cancel(unmuteTask);
- unmuteTask = null;
-
- if (!muted)
- {
- return;
- }
-
- unmuteTask = new BukkitRunnable()
- {
- @Override
- public void run()
- {
- Utilities.adminAction("TotalFreedom", "Unmuting " + player.getName(), false);
- setMuted(false);
- }
- }.runTaskLater(TotalFreedomMod.plugin, AUTO_PURGE);
- }
-
- public boolean isHalted()
- {
- return this.isHalted;
- }
-
- public void setHalted(boolean halted)
- {
- this.isHalted = halted;
-
- if (halted)
- {
- player.setOp(false);
- player.setGameMode(GameMode.SURVIVAL);
- Utilities.setFlying(player, false);
- EssentialsBridge.setNickname(player.getName(), player.getName());
- player.closeInventory();
- player.setTotalExperience(0);
-
- stopOrbiting();
- setFrozen(true);
- setMuted(true);
-
- player.sendMessage(ChatColor.GRAY + "You have been halted, don't move!");
- }
- else
- {
- player.setOp(true);
- player.setGameMode(GameMode.CREATIVE);
- setFrozen(false);
- setMuted(false);
-
- player.sendMessage(ChatColor.GRAY + "You are no longer halted.");
- }
-
- }
-
- public BukkitTask getLockupScheduleID()
- {
- return this.lockupScheduleTask;
- }
-
- public void setLockupScheduleID(BukkitTask id)
- {
- this.lockupScheduleTask = id;
- }
-
- public void setLastMessage(String message)
- {
- this.lastMessage = message;
- }
-
- public String getLastMessage()
- {
- return lastMessage;
- }
-
- public void setAdminChat(boolean inAdminchat)
- {
- this.inAdminchat = inAdminchat;
- }
-
- public boolean inAdminChat()
- {
- return this.inAdminchat;
- }
-
- public boolean allCommandsBlocked()
- {
- return this.allCommandsBlocked;
- }
-
- public void setCommandsBlocked(boolean commandsBlocked)
- {
- this.allCommandsBlocked = commandsBlocked;
- }
-
- // If someone logs in to telnet or minecraft, and they are an admin, make sure that they are using a username that is associated with their IP.
- // After the check for this is done in PlayerListener, never change it elsewhere.
- public boolean isSuperadminIdVerified()
- {
- return this.verifiedSuperadminId;
- }
-
- // If someone logs in to telnet or minecraft, and they are an admin, make sure that they are using a username that is associated with their IP.
- // After the check for this is done in PlayerListener, never change it elsewhere.
- public void setSuperadminIdVerified(boolean verifiedSuperadminId)
- {
- this.verifiedSuperadminId = verifiedSuperadminId;
- }
-
- public String getLastCommand()
- {
- return lastCommand;
- }
-
- public void setLastCommand(String lastCommand)
- {
- this.lastCommand = lastCommand;
- }
-
- public void setCommandSpy(boolean enabled)
- {
- this.cmdspyEnabled = enabled;
- }
-
- public boolean cmdspyEnabled()
- {
- return cmdspyEnabled;
- }
-
- public void setTag(String tag)
- {
- if (tag == null)
- {
- this.tag = null;
- }
- else
- {
- this.tag = Utilities.colorize(tag) + ChatColor.RESET;
- }
- }
-
- public String getTag()
- {
- return this.tag;
- }
-
- public int getWarningCount()
- {
- return this.warningCount;
- }
-
- public void incrementWarnings()
- {
- this.warningCount++;
-
- if (this.warningCount % 2 == 0)
- {
- this.player.getWorld().strikeLightning(this.player.getLocation());
- Utilities.playerMsg(this.player, ChatColor.RED + "You have been warned at least twice now, make sure to read the rules at " + ConfigurationEntry.SERVER_BAN_URL.getString());
- }
- }
-
- public void cancel(BukkitTask task)
- {
- if (task == null)
- {
- return;
- }
-
- try
- {
- task.cancel();
- }
- catch (Exception ex)
- {
- }
- }
-
- public enum CageLayer
- {
- INNER, OUTER
- }
-
- private class TFM_BlockData
- {
- public Material material;
- public Location location;
-
- private TFM_BlockData(Location location, Material material)
- {
- this.location = location;
- this.material = material;
- }
- }
-
- private class ArrowShooter extends BukkitRunnable
- {
- private final Player player;
-
- private ArrowShooter(Player player)
- {
- this.player = player;
- }
-
- @Override
- public void run()
- {
- Arrow shot = player.launchProjectile(Arrow.class);
- shot.setVelocity(shot.getVelocity().multiply(2.0));
- }
- }
+
+ public static final Map PLAYER_DATA = new HashMap(); // ip,data
+ public static final long AUTO_PURGE = 20L * 60L * 5L;
+ //
+ private final Player player;
+ private final String ip;
+ private final UUID uuid;
+ private final List cageHistory = new ArrayList();
+ private final List mobThrowerQueue = new ArrayList();
+ //
+ private BukkitTask unmuteTask;
+ private BukkitTask unfreezeTask;
+ private Location freezeLocation;
+ private boolean isHalted = false;
+ private int messageCount = 0;
+ private int totalBlockDestroy = 0;
+ private int totalBlockPlace = 0;
+ private int freecamDestroyCount = 0;
+ private int freecamPlaceCount = 0;
+ private boolean isCaged = false;
+ private Location cagePosition;
+ private Material cageOuterMaterial = Material.GLASS;
+ private Material cageInnerMatterial = Material.AIR;
+ private boolean isOrbiting = false;
+ private double orbitStrength = 10.0;
+ private boolean mobThrowerEnabled = false;
+ private EntityType mobThrowerEntity = EntityType.PIG;
+ private double mobThrowerSpeed = 4.0;
+ private BukkitTask mp44ScheduleTask = null;
+ private boolean mp44Armed = false;
+ private boolean mp44Firing = false;
+ private BukkitTask lockupScheduleTask = null;
+ private String lastMessage = "";
+ private boolean inAdminchat = false;
+ private boolean allCommandsBlocked = false;
+ private boolean verifiedSuperadminId = false;
+ private String lastCommand = "";
+ private boolean cmdspyEnabled = false;
+ private String tag = null;
+ private int warningCount = 0;
+ private PlayerData(Player player, UUID uuid, String ip) {
+ this.player = player;
+ this.uuid = uuid;
+ this.ip = ip;
+ }
+
+ public static boolean hasPlayerData(Player player) {
+ return PLAYER_DATA.containsKey(Utilities.getIp(player));
+ }
+
+ public static PlayerData getPlayerDataSync(Player player) {
+ synchronized (PLAYER_DATA) {
+ return getPlayerData(player);
+ }
+ }
+
+ public static PlayerData getPlayerData(Player player) {
+ final String ip = Utilities.getIp(player);
+
+ PlayerData data = PlayerData.PLAYER_DATA.get(ip);
+
+ if (data != null) {
+ return data;
+ }
+
+ if (Bukkit.getOnlineMode()) {
+ for (PlayerData dataTest : PLAYER_DATA.values()) {
+ if (dataTest.player.getName().equalsIgnoreCase(player.getName())) {
+ data = dataTest;
+ break;
+ }
+ }
+ }
+
+ if (data != null) {
+ return data;
+ }
+
+ data = new PlayerData(player, UUIDManager.getUniqueId(player), ip);
+ PlayerData.PLAYER_DATA.put(ip, data);
+
+ return data;
+ }
+
+ public String getIpAddress() {
+ return this.ip;
+ }
+
+ public UUID getUniqueId() {
+ return uuid;
+ }
+
+ public boolean isOrbiting() {
+ return isOrbiting;
+ }
+
+ public void startOrbiting(double strength) {
+ this.isOrbiting = true;
+ this.orbitStrength = strength;
+ }
+
+ public void stopOrbiting() {
+ this.isOrbiting = false;
+ }
+
+ public double orbitStrength() {
+ return orbitStrength;
+ }
+
+ public void setCaged(boolean state, Location location, Material outer, Material inner) {
+ this.isCaged = state;
+ this.cagePosition = location;
+ this.cageOuterMaterial = outer;
+ this.cageInnerMatterial = inner;
+ }
+
+ public boolean isCaged() {
+ return isCaged;
+ }
+
+ public void setCaged(boolean state) {
+ this.isCaged = state;
+ }
+
+ public Material getCageMaterial(CageLayer layer) {
+ switch (layer) {
+ case OUTER:
+ return this.cageOuterMaterial;
+ case INNER:
+ return this.cageInnerMatterial;
+ default:
+ return this.cageOuterMaterial;
+ }
+ }
+
+ public Location getCagePos() {
+ return cagePosition;
+ }
+
+ public void clearHistory() {
+ cageHistory.clear();
+ }
+
+ public void insertHistoryBlock(Location location, Material material) {
+ cageHistory.add(new TFM_BlockData(location, material));
+ }
+
+ public void regenerateHistory() {
+ for (TFM_BlockData blockdata : this.cageHistory) {
+ blockdata.location.getBlock().setType(blockdata.material);
+ }
+ }
+
+ public Location getFreezeLocation() {
+ return freezeLocation;
+ }
+
+ public boolean isFrozen() {
+ return unfreezeTask != null;
+ }
+
+ public void setFrozen(boolean freeze) {
+ cancel(unfreezeTask);
+ unfreezeTask = null;
+ freezeLocation = null;
+
+ if (player.getGameMode() != GameMode.CREATIVE) {
+ Utilities.setFlying(player, false);
+ }
+
+ if (!freeze) {
+ return;
+ }
+
+ freezeLocation = player.getLocation(); // Blockify location
+ Utilities.setFlying(player, true); // Avoid infinite falling
+
+ unfreezeTask = new BukkitRunnable() {
+ @Override
+ public void run() {
+ Utilities.adminAction("TotalFreedom", "Unfreezing " + player.getName(), false);
+ setFrozen(false);
+ }
+
+ }.runTaskLater(TotalFreedomMod.plugin, AUTO_PURGE);
+ }
+
+ public void resetMsgCount() {
+ this.messageCount = 0;
+ }
+
+ public int incrementAndGetMsgCount() {
+ return this.messageCount++;
+ }
+
+ public int incrementAndGetBlockDestroyCount() {
+ return this.totalBlockDestroy++;
+ }
+
+ public void resetBlockDestroyCount() {
+ this.totalBlockDestroy = 0;
+ }
+
+ public int incrementAndGetBlockPlaceCount() {
+ return this.totalBlockPlace++;
+ }
+
+ public void resetBlockPlaceCount() {
+ this.totalBlockPlace = 0;
+ }
+
+ public int incrementAndGetFreecamDestroyCount() {
+ return this.freecamDestroyCount++;
+ }
+
+ public void resetFreecamDestroyCount() {
+ this.freecamDestroyCount = 0;
+ }
+
+ public int incrementAndGetFreecamPlaceCount() {
+ return this.freecamPlaceCount++;
+ }
+
+ public void resetFreecamPlaceCount() {
+ this.freecamPlaceCount = 0;
+ }
+
+ public void enableMobThrower(EntityType mobThrowerCreature, double mobThrowerSpeed) {
+ this.mobThrowerEnabled = true;
+ this.mobThrowerEntity = mobThrowerCreature;
+ this.mobThrowerSpeed = mobThrowerSpeed;
+ }
+
+ public void disableMobThrower() {
+ this.mobThrowerEnabled = false;
+ }
+
+ public EntityType mobThrowerCreature() {
+ return this.mobThrowerEntity;
+ }
+
+ public double mobThrowerSpeed() {
+ return this.mobThrowerSpeed;
+ }
+
+ public boolean mobThrowerEnabled() {
+ return this.mobThrowerEnabled;
+ }
+
+ public void enqueueMob(LivingEntity mob) {
+ mobThrowerQueue.add(mob);
+ if (mobThrowerQueue.size() > 4) {
+ LivingEntity oldmob = mobThrowerQueue.remove(0);
+ if (oldmob != null) {
+ oldmob.damage(500.0);
+ }
+ }
+ }
+
+ public void startArrowShooter(TotalFreedomMod plugin) {
+ this.stopArrowShooter();
+ this.mp44ScheduleTask = new ArrowShooter(this.player).runTaskTimer(plugin, 1L, 1L);
+ this.mp44Firing = true;
+ }
+
+ public void stopArrowShooter() {
+ if (this.mp44ScheduleTask != null) {
+ this.mp44ScheduleTask.cancel();
+ this.mp44ScheduleTask = null;
+ }
+ this.mp44Firing = false;
+ }
+
+ public void armMP44() {
+ this.mp44Armed = true;
+ this.stopArrowShooter();
+ }
+
+ public void disarmMP44() {
+ this.mp44Armed = false;
+ this.stopArrowShooter();
+ }
+
+ public boolean isMP44Armed() {
+ return this.mp44Armed;
+ }
+
+ public boolean toggleMP44Firing() {
+ this.mp44Firing = !this.mp44Firing;
+ return mp44Firing;
+ }
+
+ public boolean isMuted() {
+ return unmuteTask != null;
+ }
+
+ public void setMuted(boolean muted) {
+ cancel(unmuteTask);
+ unmuteTask = null;
+
+ if (!muted) {
+ return;
+ }
+
+ unmuteTask = new BukkitRunnable() {
+ @Override
+ public void run() {
+ Utilities.adminAction("TotalFreedom", "Unmuting " + player.getName(), false);
+ setMuted(false);
+ }
+ }.runTaskLater(TotalFreedomMod.plugin, AUTO_PURGE);
+ }
+
+ public boolean isHalted() {
+ return this.isHalted;
+ }
+
+ public void setHalted(boolean halted) {
+ this.isHalted = halted;
+
+ if (halted) {
+ player.setOp(false);
+ player.setGameMode(GameMode.SURVIVAL);
+ Utilities.setFlying(player, false);
+ EssentialsBridge.setNickname(player.getName(), player.getName());
+ player.closeInventory();
+ player.setTotalExperience(0);
+
+ stopOrbiting();
+ setFrozen(true);
+ setMuted(true);
+
+ player.sendMessage(ChatColor.GRAY + "You have been halted, don't move!");
+ } else {
+ player.setOp(true);
+ player.setGameMode(GameMode.CREATIVE);
+ setFrozen(false);
+ setMuted(false);
+
+ player.sendMessage(ChatColor.GRAY + "You are no longer halted.");
+ }
+
+ }
+
+ public BukkitTask getLockupScheduleID() {
+ return this.lockupScheduleTask;
+ }
+
+ public void setLockupScheduleID(BukkitTask id) {
+ this.lockupScheduleTask = id;
+ }
+
+ public String getLastMessage() {
+ return lastMessage;
+ }
+
+ public void setLastMessage(String message) {
+ this.lastMessage = message;
+ }
+
+ public void setAdminChat(boolean inAdminchat) {
+ this.inAdminchat = inAdminchat;
+ }
+
+ public boolean inAdminChat() {
+ return this.inAdminchat;
+ }
+
+ public boolean allCommandsBlocked() {
+ return this.allCommandsBlocked;
+ }
+
+ public void setCommandsBlocked(boolean commandsBlocked) {
+ this.allCommandsBlocked = commandsBlocked;
+ }
+
+ // If someone logs in to telnet or minecraft, and they are an admin, make sure that they are using a username that is associated with their IP.
+ // After the check for this is done in PlayerListener, never change it elsewhere.
+ public boolean isSuperadminIdVerified() {
+ return this.verifiedSuperadminId;
+ }
+
+ // If someone logs in to telnet or minecraft, and they are an admin, make sure that they are using a username that is associated with their IP.
+ // After the check for this is done in PlayerListener, never change it elsewhere.
+ public void setSuperadminIdVerified(boolean verifiedSuperadminId) {
+ this.verifiedSuperadminId = verifiedSuperadminId;
+ }
+
+ public String getLastCommand() {
+ return lastCommand;
+ }
+
+ public void setLastCommand(String lastCommand) {
+ this.lastCommand = lastCommand;
+ }
+
+ public void setCommandSpy(boolean enabled) {
+ this.cmdspyEnabled = enabled;
+ }
+
+ public boolean cmdspyEnabled() {
+ return cmdspyEnabled;
+ }
+
+ public String getTag() {
+ return this.tag;
+ }
+
+ public void setTag(String tag) {
+ if (tag == null) {
+ this.tag = null;
+ } else {
+ this.tag = Utilities.colorize(tag) + ChatColor.RESET;
+ }
+ }
+
+ public int getWarningCount() {
+ return this.warningCount;
+ }
+
+ public void incrementWarnings() {
+ this.warningCount++;
+
+ if (this.warningCount % 2 == 0) {
+ this.player.getWorld().strikeLightning(this.player.getLocation());
+ Utilities.playerMsg(this.player, ChatColor.RED
+ + "You have been warned at least twice now, make sure to read the rules at "
+ + ConfigurationEntry.SERVER_BAN_URL.getString());
+ }
+ }
+
+ public void cancel(BukkitTask task) {
+ if (task == null) {
+ return;
+ }
+
+ try {
+ task.cancel();
+ } catch (Exception ex) {
+ }
+ }
+
+ public enum CageLayer {
+ INNER, OUTER
+ }
+
+ private class TFM_BlockData {
+
+ public Material material;
+ public Location location;
+
+ private TFM_BlockData(Location location, Material material) {
+ this.location = location;
+ this.material = material;
+ }
+ }
+
+ private class ArrowShooter extends BukkitRunnable {
+
+ private final Player player;
+
+ private ArrowShooter(Player player) {
+ this.player = player;
+ }
+
+ @Override
+ public void run() {
+ Arrow shot = player.launchProjectile(Arrow.class);
+ shot.setVelocity(shot.getVelocity().multiply(2.0));
+ }
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/player/PlayerList.java b/src/main/java/me/StevenLawson/TotalFreedomMod/player/PlayerList.java
index 06a64fe..79d4bb2 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/player/PlayerList.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/player/PlayerList.java
@@ -1,6 +1,12 @@
package me.StevenLawson.TotalFreedomMod.player;
import com.google.common.collect.Sets;
+import java.io.File;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
import me.StevenLawson.TotalFreedomMod.Log;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import me.StevenLawson.TotalFreedomMod.config.Configuration;
@@ -8,164 +14,162 @@ import me.StevenLawson.TotalFreedomMod.manager.UUIDManager;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import org.bukkit.Bukkit;
-import java.io.File;
-import java.util.*;
-
public class PlayerList {
- private static final Map PLAYER_LIST = new HashMap();
+ private static final Map PLAYER_LIST = new HashMap();
- private PlayerList() {
- throw new AssertionError();
- }
+ private PlayerList() {
+ throw new AssertionError();
+ }
- public static Set getAllPlayers() {
- return Collections.unmodifiableSet(Sets.newHashSet(PLAYER_LIST.values()));
- }
+ public static Set getAllPlayers() {
+ return Collections.unmodifiableSet(Sets.newHashSet(PLAYER_LIST.values()));
+ }
- public static void load() {
- PLAYER_LIST.clear();
+ public static void load() {
+ PLAYER_LIST.clear();
- // Load online players
- for (org.bukkit.entity.Player player : Bukkit.getOnlinePlayers()) {
- getEntry(player);
- }
+ // Load online players
+ for (org.bukkit.entity.Player player : Bukkit.getOnlinePlayers()) {
+ getEntry(player);
+ }
- Log.info("Loaded playerdata for " + PLAYER_LIST.size() + " players");
- }
+ Log.info("Loaded playerdata for " + PLAYER_LIST.size() + " players");
+ }
- public static void saveAll() {
- for (Player entry : PLAYER_LIST.values()) {
- save(entry);
- }
- }
+ public static void saveAll() {
+ for (Player entry : PLAYER_LIST.values()) {
+ save(entry);
+ }
+ }
- // May return null
- public static Player getEntry(UUID uuid) {
- if (PLAYER_LIST.containsKey(uuid)) {
- return PLAYER_LIST.get(uuid);
- }
+ // May return null
+ public static Player getEntry(UUID uuid) {
+ if (PLAYER_LIST.containsKey(uuid)) {
+ return PLAYER_LIST.get(uuid);
+ }
- final File configFile = getConfigFile(uuid);
+ final File configFile = getConfigFile(uuid);
- if (!configFile.exists()) {
- return null;
- }
+ if (!configFile.exists()) {
+ return null;
+ }
- final Player entry = new Player(uuid, getConfig(uuid));
+ final Player entry = new Player(uuid, getConfig(uuid));
- if (entry.isComplete()) {
- PLAYER_LIST.put(uuid, entry);
- return entry;
- } else {
- Log.warning("Could not load entry: Entry is not complete!");
- configFile.delete();
- }
+ if (entry.isComplete()) {
+ PLAYER_LIST.put(uuid, entry);
+ return entry;
+ } else {
+ Log.warning("Could not load entry: Entry is not complete!");
+ configFile.delete();
+ }
- return null;
- }
+ return null;
+ }
- public static Player getEntry(org.bukkit.entity.Player player) {
- final UUID uuid = UUIDManager.getUniqueId(player);
- Player entry = getEntry(uuid);
+ public static Player getEntry(org.bukkit.entity.Player player) {
+ final UUID uuid = UUIDManager.getUniqueId(player);
+ Player entry = getEntry(uuid);
- if (entry != null) {
- return entry;
- }
+ if (entry != null) {
+ return entry;
+ }
- final long unix = Utilities.getUnixTime();
- entry = new Player(uuid);
- entry.setFirstLoginName(player.getName());
- entry.setLastLoginName(player.getName());
- entry.setFirstLoginUnix(unix);
- entry.setLastLoginUnix(unix);
- entry.addIp(Utilities.getIp(player));
+ final long unix = Utilities.getUnixTime();
+ entry = new Player(uuid);
+ entry.setFirstLoginName(player.getName());
+ entry.setLastLoginName(player.getName());
+ entry.setFirstLoginUnix(unix);
+ entry.setLastLoginUnix(unix);
+ entry.addIp(Utilities.getIp(player));
- save(entry);
- PLAYER_LIST.put(uuid, entry);
+ save(entry);
+ PLAYER_LIST.put(uuid, entry);
- return entry;
- }
+ return entry;
+ }
- public static void removeEntry(org.bukkit.entity.Player player) {
- final UUID uuid = UUIDManager.getUniqueId(player);
+ public static void removeEntry(org.bukkit.entity.Player player) {
+ final UUID uuid = UUIDManager.getUniqueId(player);
- if (!PLAYER_LIST.containsKey(uuid)) {
- return;
- }
+ if (!PLAYER_LIST.containsKey(uuid)) {
+ return;
+ }
- save(PLAYER_LIST.get(uuid));
+ save(PLAYER_LIST.get(uuid));
- PLAYER_LIST.remove(uuid);
- }
+ PLAYER_LIST.remove(uuid);
+ }
- public static boolean existsEntry(org.bukkit.entity.Player player) {
- return existsEntry(UUIDManager.getUniqueId(player));
- }
+ public static boolean existsEntry(org.bukkit.entity.Player player) {
+ return existsEntry(UUIDManager.getUniqueId(player));
+ }
- public static boolean existsEntry(UUID uuid) {
- return getConfigFile(uuid).exists();
- }
+ public static boolean existsEntry(UUID uuid) {
+ return getConfigFile(uuid).exists();
+ }
- public static void setUniqueId(Player entry, UUID newUuid) {
- if (entry.getUniqueId().equals(newUuid)) {
- Log.warning("Not setting new UUID: UUIDs match!");
- return;
- }
+ public static void setUniqueId(Player entry, UUID newUuid) {
+ if (entry.getUniqueId().equals(newUuid)) {
+ Log.warning("Not setting new UUID: UUIDs match!");
+ return;
+ }
- // Add new entry
- final Player newEntry = new Player(
- newUuid,
- entry.getFirstLoginName(),
- entry.getLastLoginName(),
- entry.getFirstLoginUnix(),
- entry.getLastLoginUnix(),
- entry.getIps());
- newEntry.save();
- PLAYER_LIST.put(newUuid, newEntry);
+ // Add new entry
+ final Player newEntry = new Player(
+ newUuid,
+ entry.getFirstLoginName(),
+ entry.getLastLoginName(),
+ entry.getFirstLoginUnix(),
+ entry.getLastLoginUnix(),
+ entry.getIps());
+ newEntry.save();
+ PLAYER_LIST.put(newUuid, newEntry);
- // Remove old entry
- PLAYER_LIST.remove(entry.getUniqueId());
- final File oldFile = getConfigFile(entry.getUniqueId());
- if (oldFile.exists() && !oldFile.delete()) {
- Log.warning("Could not delete config: " + getConfigFile(entry.getUniqueId()).getName());
- }
- }
+ // Remove old entry
+ PLAYER_LIST.remove(entry.getUniqueId());
+ final File oldFile = getConfigFile(entry.getUniqueId());
+ if (oldFile.exists() && !oldFile.delete()) {
+ Log.warning("Could not delete config: " + getConfigFile(entry.getUniqueId()).getName());
+ }
+ }
- public static void purgeAll() {
- for (File file : getConfigFolder().listFiles()) {
- file.delete();
- }
+ public static void purgeAll() {
+ for (File file : getConfigFolder().listFiles()) {
+ file.delete();
+ }
- // Load online players
- load();
- }
+ // Load online players
+ load();
+ }
- public static File getConfigFolder() {
- return new File(TotalFreedomMod.plugin.getDataFolder(), "players");
- }
+ public static File getConfigFolder() {
+ return new File(TotalFreedomMod.plugin.getDataFolder(), "players");
+ }
- public static File getConfigFile(UUID uuid) {
- return new File(getConfigFolder(), uuid + ".yml");
- }
+ public static File getConfigFile(UUID uuid) {
+ return new File(getConfigFolder(), uuid + ".yml");
+ }
- public static Configuration getConfig(UUID uuid) {
- final Configuration config = new Configuration(TotalFreedomMod.plugin, getConfigFile(uuid), false);
- config.load();
- return config;
- }
+ public static Configuration getConfig(UUID uuid) {
+ final Configuration config = new Configuration(TotalFreedomMod.plugin, getConfigFile(uuid),
+ false);
+ config.load();
+ return config;
+ }
- public static void save(Player entry) {
- if (!entry.isComplete()) {
- throw new IllegalArgumentException("Entry is not complete!");
- }
+ public static void save(Player entry) {
+ if (!entry.isComplete()) {
+ throw new IllegalArgumentException("Entry is not complete!");
+ }
- final Configuration config = getConfig(entry.getUniqueId());
- config.set("firstjoinname", entry.getFirstLoginName());
- config.set("lastjoinname", entry.getLastLoginName());
- config.set("firstjoinunix", entry.getFirstLoginUnix());
- config.set("lastjoinunix", entry.getLastLoginUnix());
- config.set("ips", entry.getIps());
- config.save();
- }
+ final Configuration config = getConfig(entry.getUniqueId());
+ config.set("firstjoinname", entry.getFirstLoginName());
+ config.set("lastjoinname", entry.getLastLoginName());
+ config.set("firstjoinunix", entry.getFirstLoginUnix());
+ config.set("lastjoinunix", entry.getLastLoginUnix());
+ config.set("ips", entry.getIps());
+ config.save();
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/player/PlayerRank.java b/src/main/java/me/StevenLawson/TotalFreedomMod/player/PlayerRank.java
index c065882..8902a0b 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/player/PlayerRank.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/player/PlayerRank.java
@@ -1,6 +1,11 @@
package me.StevenLawson.TotalFreedomMod.player;
+import static me.StevenLawson.TotalFreedomMod.util.Utilities.DEVELOPERS;
+
import com.google.common.collect.ImmutableList;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
import me.StevenLawson.TotalFreedomMod.admin.Admin;
import me.StevenLawson.TotalFreedomMod.admin.AdminList;
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
@@ -12,181 +17,158 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.javacord.api.entity.permission.Role;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.List;
+public enum PlayerRank implements Comparator, Comparable {
+ IMPOSTOR("an " + ChatColor.YELLOW + ChatColor.UNDERLINE + "Impostor",
+ ChatColor.YELLOW.toString() + ChatColor.UNDERLINE + "[IMP]", "Impostors", 0),
+ NON_OP("a " + ChatColor.GREEN + "Non-OP", ChatColor.GREEN.toString(), "Non-Operators", 1),
+ OP("an " + ChatColor.RED + "OP", ChatColor.RED + "[OP]", "Operators", 2),
+ SUPER("a " + ChatColor.GOLD + "Super Admin", ChatColor.GOLD + "[SA]", "Super Admins", 3),
+ TELNET("a " + ChatColor.DARK_GREEN + "Super Telnet Admin", ChatColor.DARK_GREEN + "[STA]",
+ "Super Telnet Admins", 4),
+ SENIOR("a " + ChatColor.LIGHT_PURPLE + "Senior Admin", ChatColor.LIGHT_PURPLE + "[SrA]",
+ "Senior Admins", 5),
+ DEVELOPER("a " + ChatColor.DARK_PURPLE + "Developer", ChatColor.DARK_PURPLE + "[Dev]",
+ "Developers", 6),
+ OWNER("an " + ChatColor.BLUE + "Owner", ChatColor.BLUE + "[Owner]", "Owners", 7),
+ CONSOLE("The " + ChatColor.DARK_PURPLE + "Console", ChatColor.DARK_PURPLE + "[Console]", 8);
+ private final String loginMessage;
+ private final String prefix;
-import static me.StevenLawson.TotalFreedomMod.util.Utilities.DEVELOPERS;
-import static me.StevenLawson.TotalFreedomMod.util.Utilities.getPluginFile;
-
-public enum PlayerRank implements Comparator, Comparable
-{
- IMPOSTOR("an " + ChatColor.YELLOW + ChatColor.UNDERLINE + "Impostor", ChatColor.YELLOW.toString() + ChatColor.UNDERLINE + "[IMP]", "Impostors", 0),
- NON_OP("a " + ChatColor.GREEN + "Non-OP", ChatColor.GREEN.toString(), "Non-Operators", 1),
- OP("an " + ChatColor.RED + "OP", ChatColor.RED + "[OP]", "Operators" ,2),
- SUPER("a " + ChatColor.GOLD + "Super Admin", ChatColor.GOLD + "[SA]", "Super Admins", 3),
- TELNET("a " + ChatColor.DARK_GREEN + "Super Telnet Admin", ChatColor.DARK_GREEN + "[STA]", "Super Telnet Admins", 4),
- SENIOR("a " + ChatColor.LIGHT_PURPLE + "Senior Admin", ChatColor.LIGHT_PURPLE + "[SrA]", "Senior Admins", 5),
- DEVELOPER("a " + ChatColor.DARK_PURPLE + "Developer", ChatColor.DARK_PURPLE + "[Dev]", "Developers", 6),
- OWNER("an " + ChatColor.BLUE + "Owner", ChatColor.BLUE + "[Owner]", "Owners", 7),
- CONSOLE("The " + ChatColor.DARK_PURPLE + "Console", ChatColor.DARK_PURPLE + "[Console]", 8);
- private final String loginMessage;
- private final String prefix;
-
- private final String plural;
- private final int ordinal;
+ private final String plural;
+ private final int ordinal;
- PlayerRank(String loginMessage, String prefix, int ordinal) {
- this.loginMessage = loginMessage;
- this.prefix = prefix;
- this.plural = "";
- this.ordinal = ordinal;
- }
+ PlayerRank(String loginMessage, String prefix, int ordinal) {
+ this.loginMessage = loginMessage;
+ this.prefix = prefix;
+ this.plural = "";
+ this.ordinal = ordinal;
+ }
- PlayerRank(String loginMessage, String prefix, String plural, int ordinal)
- {
- this.loginMessage = loginMessage;
- this.prefix = prefix;
- this.plural = plural;
- this.ordinal = ordinal;
- }
+ PlayerRank(String loginMessage, String prefix, String plural, int ordinal) {
+ this.loginMessage = loginMessage;
+ this.prefix = prefix;
+ this.plural = plural;
+ this.ordinal = ordinal;
+ }
- public static String getLoginMessage(CommandSender sender)
- {
- // Handle console
- if (!(sender instanceof Player))
- {
- return fromSender(sender).getLoginMessage();
- }
+ public static String getLoginMessage(CommandSender sender) {
+ // Handle console
+ if (!(sender instanceof Player)) {
+ return fromSender(sender).getLoginMessage();
+ }
- // Handle admins
- final Admin entry = AdminList.getEntry((Player) sender);
- if (entry == null)
- {
- // Player is not an admin
- return fromSender(sender).getLoginMessage();
- }
+ // Handle admins
+ final Admin entry = AdminList.getEntry((Player) sender);
+ if (entry == null) {
+ // Player is not an admin
+ return fromSender(sender).getLoginMessage();
+ }
- // Custom login message
- final String loginMessage = entry.getCustomLoginMessage();
+ // Custom login message
+ final String loginMessage = entry.getCustomLoginMessage();
- if (loginMessage == null || loginMessage.isEmpty())
- {
- return fromSender(sender).getLoginMessage();
- }
+ if (loginMessage == null || loginMessage.isEmpty()) {
+ return fromSender(sender).getLoginMessage();
+ }
- return ChatColor.translateAlternateColorCodes('&', loginMessage);
- }
+ return ChatColor.translateAlternateColorCodes('&', loginMessage);
+ }
- public static PlayerRank fromSender(CommandSender sender)
- {
- if (sender instanceof DiscordCommandSender) {
- DiscordCommandSender discordSender = (DiscordCommandSender) sender;
- List roles = discordSender.getUser().getRoles(discordSender.getDiscordServer());
+ public static PlayerRank fromSender(CommandSender sender) {
+ if (sender instanceof DiscordCommandSender) {
+ DiscordCommandSender discordSender = (DiscordCommandSender) sender;
+ List roles = discordSender.getUser().getRoles(discordSender.getDiscordServer());
- for (Role role : roles) {
- if(role.getName().toLowerCase().contains("senior")) {
- return SENIOR;
- }
- }
+ for (Role role : roles) {
+ if (role.getName().toLowerCase().contains("senior")) {
+ return SENIOR;
+ }
+ }
- return SUPER;
- }
- if (!(sender instanceof Player))
- {
- return CONSOLE;
- }
+ return SUPER;
+ }
+ if (!(sender instanceof Player)) {
+ return CONSOLE;
+ }
- if (AdminList.isAdminImpostor((Player) sender))
- {
- return IMPOSTOR;
- }
+ if (AdminList.isAdminImpostor((Player) sender)) {
+ return IMPOSTOR;
+ }
+
+ final Admin entry = AdminList.getEntryByIp(Utilities.getIp((Player) sender));
+
+ final PlayerRank rank;
+
+ if (entry != null && entry.isActivated()) {
+ if (ConfigurationEntry.SERVER_OWNERS.getList().contains(sender.getName())) {
+ return OWNER;
+ }
+
+ if (entry.isSeniorAdmin()) {
+ rank = SENIOR;
+ } else if (entry.isTelnetAdmin()) {
+ rank = TELNET;
+ } else {
+ rank = SUPER;
+ }
+ } else {
+ if (DEVELOPERS.contains(sender.getName())) {
+ return DEVELOPER;
+ } else if (sender.isOp()) {
+ rank = OP;
+ } else {
+ rank = NON_OP;
+ }
+
+ }
+ return rank;
+ }
+
+ public String getPrefix() {
+ return prefix;
+ }
+
+ public String getLoginMessage() {
+ return loginMessage;
+ }
- final Admin entry = AdminList.getEntryByIp(Utilities.getIp((Player) sender));
+ public String getPlural() {
+ return plural;
+ }
- final PlayerRank rank;
+ public int getOrdinal() {
+ return ordinal;
+ }
- if (entry != null && entry.isActivated())
- {
- if (ConfigurationEntry.SERVER_OWNERS.getList().contains(sender.getName()))
- {
- return OWNER;
- }
+ public List getWithRank() {
+ List