From a3813b9ac9e7e7bfdd0b04d99c14ffb1c7ed6634 Mon Sep 17 00:00:00 2001
From: Business Goose
Date: Thu, 31 Mar 2022 01:32:10 +0100
Subject: [PATCH 01/13] Hopefully fix the way we get UUIDs so we don't spoof
them
---
.../TotalFreedomMod/manager/UUIDManager.java | 288 ++++++++++++++++++
.../TotalFreedomMod/player/UUIDManager.java | 262 ----------------
2 files changed, 288 insertions(+), 262 deletions(-)
create mode 100644 src/main/java/me/StevenLawson/TotalFreedomMod/manager/UUIDManager.java
delete mode 100644 src/main/java/me/StevenLawson/TotalFreedomMod/player/UUIDManager.java
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/manager/UUIDManager.java b/src/main/java/me/StevenLawson/TotalFreedomMod/manager/UUIDManager.java
new file mode 100644
index 0000000..41f2d52
--- /dev/null
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/manager/UUIDManager.java
@@ -0,0 +1,288 @@
+package me.StevenLawson.TotalFreedomMod.manager;
+
+import com.google.common.collect.ImmutableList;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.Callable;
+import me.StevenLawson.TotalFreedomMod.Log;
+import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
+import me.StevenLawson.TotalFreedomMod.player.PlayerData;
+import me.StevenLawson.TotalFreedomMod.sql.SQLiteDatabase;
+import me.StevenLawson.TotalFreedomMod.sql.SQLiteDatabase.Statement;
+import me.StevenLawson.TotalFreedomMod.util.SQLUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.bukkit.Bukkit;
+import org.bukkit.OfflinePlayer;
+import org.bukkit.entity.Player;
+import org.json.simple.JSONArray;
+import org.json.simple.JSONObject;
+import org.json.simple.parser.JSONParser;
+
+public class UUIDManager {
+
+ public static final String TABLE_NAME = "uuids";
+ private static final SQLiteDatabase SQL;
+ private static final Statement FIND;
+ private static final Statement UPDATE;
+
+ private UUIDManager() {
+ throw new AssertionError();
+ }
+
+ static {
+ SQL = new SQLiteDatabase(
+ "uuids.db",
+ TABLE_NAME,
+ "username VARCHAR(" + TotalFreedomMod.MAX_USERNAME_LENGTH
+ + ") NOT NULL PRIMARY KEY, uuid CHAR(36) NOT NULL");
+
+ FIND = SQL.addPreparedStatement(
+ "SELECT * FROM " + TABLE_NAME + " WHERE lower(username) = ?;");
+ UPDATE = SQL.addPreparedStatement(
+ "REPLACE INTO " + TABLE_NAME + " (username, uuid) VALUES (?, ?);");
+ }
+
+ public static void load() {
+ // Init DB
+ SQL.connect();
+ }
+
+ public static void close() {
+ SQL.close();
+ }
+
+ public static int purge() {
+ return SQL.purge();
+ }
+
+ public static UUID newPlayer(Player player, String ip) {
+ Log.info("Obtaining UUID for new player: " + player.getName());
+
+ final String username = player.getName().toLowerCase();
+
+ // Look in DB
+ final UUID dbUuid = find(username);
+ if (dbUuid != null) {
+ return dbUuid;
+ }
+
+ // Find UUID and update in DB if not found
+ // Try API
+ UUID uuid = TFM_UuidResolver.getUUIDOf(username);
+ if (uuid == null) {
+ // Spoof
+ uuid = generateSpoofUuid(username);
+ }
+
+ update(username, uuid);
+ return uuid;
+ }
+
+ private static UUID generateOfflineUUID(String username) {
+ return UUID.nameUUIDFromBytes(("OfflinePlayer:" + username).getBytes());
+ }
+
+ public static UUID getUniqueId(OfflinePlayer offlinePlayer) {
+ // Online check first
+ if (offlinePlayer.isOnline() && PlayerData.hasPlayerData(offlinePlayer.getPlayer())) {
+ return PlayerData.getPlayerData(offlinePlayer.getPlayer()).getUniqueId();
+ }
+
+ // If the offline player's uuid isn't offline, just return that.
+ if (!offlinePlayer.getUniqueId().equals(generateOfflineUUID(offlinePlayer.getName()))) {
+ return offlinePlayer.getUniqueId();
+ }
+
+ // DB, API, Spoof
+ return getUniqueId(offlinePlayer.getName());
+ }
+
+ public static UUID getUniqueId(String username) {
+ // Use Bukkit
+ final Player player = Bukkit.getPlayerExact(username);
+ if (player != null) {
+ return player.getUniqueId();
+ }
+
+ // Look in DB
+ final UUID dbUuid = find(username);
+ if (dbUuid != null) {
+ return dbUuid;
+ }
+
+ // Try API
+ final UUID apiUuid = TFM_UuidResolver.getUUIDOf(username);
+ if (apiUuid != null) {
+ return apiUuid;
+ }
+
+ // Spoof
+ return generateSpoofUuid(username);
+ }
+
+ public static void rawSetUUID(String name, UUID uuid) {
+ if (name == null || uuid == null || name.isEmpty()) {
+ Log.warning("Not setting raw UUID: name and uuid may not be null!");
+ return;
+ }
+
+ update(name.toLowerCase().trim(), uuid);
+ }
+
+ private static UUID find(String searchName) {
+ if (!SQL.connect()) {
+ return null;
+ }
+
+ final ResultSet result;
+ try {
+ final PreparedStatement statement = FIND.getStatement();
+ statement.clearParameters();
+ statement.setString(1, searchName.toLowerCase());
+ result = statement.executeQuery();
+ } catch (Exception ex) {
+ Log.severe("Could not execute find statement!");
+ Log.severe(ex);
+ return null;
+ }
+
+ if (!SQLUtil.hasData(result)) {
+ SQLUtil.close(result);
+ return null;
+ }
+
+ try {
+ final String uuidString = result.getString("uuid");
+ return UUID.fromString(uuidString);
+ } catch (Exception ex) {
+ Log.severe(ex);
+ return null;
+ } finally {
+ SQLUtil.close(result);
+ }
+ }
+
+ private static boolean update(String username, UUID uuid) {
+ if (!SQL.connect()) {
+ return false;
+ }
+
+ try {
+ final PreparedStatement statement = UPDATE.getStatement();
+ statement.clearParameters();
+ statement.setString(1, username.toLowerCase());
+ statement.setString(2, uuid.toString());
+ statement.executeUpdate();
+ return true;
+ } catch (Exception ex) {
+ Log.severe("Could not execute update statement!");
+ Log.severe(ex);
+ return false;
+ }
+ }
+
+ private static UUID generateSpoofUuid(String name) {
+ name = name.toLowerCase();
+ Log.info("Generating spoof UUID for " + name);
+
+ try {
+ final MessageDigest digest = MessageDigest.getInstance("SHA256");
+ final byte[] result = digest.digest(name.getBytes());
+ final StringBuilder builder = new StringBuilder();
+ for (int i = 0; i < result.length; i++) {
+ builder.append(Integer.toString((result[i] & 0xff) + 0x100, 16).substring(1));
+ }
+
+ return UUID.fromString(
+ "deadbeef"
+ + "-" + builder.substring(8, 12)
+ + "-" + builder.substring(12, 16)
+ + "-" + builder.substring(16, 20)
+ + "-" + builder.substring(20, 32));
+ } catch (NoSuchAlgorithmException ex) {
+ Log.warning("Could not generate spoof UUID: SHA1 algorithm not found!");
+ }
+
+ return UUID.randomUUID();
+ }
+
+ public static class TFM_UuidResolver implements Callable
- *
- * @param ip The IP-address to escape.
- * @return The config-friendly IP address.
- * @see #fromEscapedString(String)
- */
- public static String toEscapedString(String ip) // BukkitLib @ https://github.com/Pravian/BukkitLib
- {
- return ip.trim().replaceAll("\\.", "_");
- }
-
- /**
- * Un-escapes a config-friendly Ipv4-address.
- *
- * Example:
- *
- * IpUtils.fromEscapedString("192_168_1_192"); // 192.168.1.192
- *
- *
- * @param escapedIp The IP-address to un-escape.
- * @return The config-friendly IP address.
- * @see #toEscapedString(String)
- */
- public static String fromEscapedString(String escapedIp) // BukkitLib @ https://github.com/Pravian/BukkitLib
- {
- return escapedIp.trim().replaceAll("_", "\\.");
- }
-
- public static void gotoWorld(org.bukkit.entity.Player player, String targetWorld)
- {
- if (player == null)
- {
- return;
- }
-
- if (player.getWorld().getName().equalsIgnoreCase(targetWorld))
- {
- playerMsg(player, "Going to main world.", ChatColor.GRAY);
- player.teleport(Bukkit.getWorlds().get(0).getSpawnLocation());
- return;
- }
-
- for (World world : Bukkit.getWorlds())
- {
- if (world.getName().equalsIgnoreCase(targetWorld))
- {
- playerMsg(player, "Going to world: " + targetWorld, ChatColor.GRAY);
- player.teleport(world.getSpawnLocation());
- return;
- }
- }
-
- playerMsg(player, "World " + targetWorld + " not found.", ChatColor.GRAY);
- }
-
- public static String decolorize(String string)
- {
- return string.replaceAll("\\u00A7(?=[0-9a-fk-or])", "&");
- }
-
- public static void buildHistory(Location location, int length, PlayerData playerdata)
- {
- final Block center = location.getBlock();
- for (int xOffset = -length; xOffset <= length; xOffset++)
- {
- for (int yOffset = -length; yOffset <= length; yOffset++)
- {
- for (int zOffset = -length; zOffset <= length; zOffset++)
- {
- final Block block = center.getRelative(xOffset, yOffset, zOffset);
- playerdata.insertHistoryBlock(block.getLocation(), block.getType());
- }
- }
- }
- }
-
- public static void generateCube(Location location, int length, Material material)
- {
- final Block center = location.getBlock();
- for (int xOffset = -length; xOffset <= length; xOffset++)
- {
- for (int yOffset = -length; yOffset <= length; yOffset++)
- {
- for (int zOffset = -length; zOffset <= length; zOffset++)
- {
- final Block block = center.getRelative(xOffset, yOffset, zOffset);
- if (block.getType() != material)
- {
- block.setType(material);
- }
- }
- }
- }
- }
-
- public static void generateHollowCube(Location location, int length, Material material)
- {
- final Block center = location.getBlock();
- for (int xOffset = -length; xOffset <= length; xOffset++)
- {
- for (int yOffset = -length; yOffset <= length; yOffset++)
- {
- for (int zOffset = -length; zOffset <= length; zOffset++)
- {
- // Hollow
- if (Math.abs(xOffset) != length && Math.abs(yOffset) != length && Math.abs(zOffset) != length)
- {
- continue;
- }
-
- final Block block = center.getRelative(xOffset, yOffset, zOffset);
-
- if (material != Material.SKULL)
- {
- // Glowstone light
- if (material != Material.GLASS && xOffset == 0 && yOffset == 2 && zOffset == 0)
- {
- block.setType(Material.GLOWSTONE);
- continue;
- }
-
- block.setType(material);
- }
- else // Darth mode
- {
- if (Math.abs(xOffset) == length && Math.abs(yOffset) == length && Math.abs(zOffset) == length)
- {
- block.setType(Material.GLOWSTONE);
- continue;
- }
-
- block.setType(Material.SKULL);
- final Skull skull = (Skull) block.getState();
- skull.setSkullType(SkullType.PLAYER);
- skull.setOwner("Prozza");
- skull.update();
- }
- }
- }
- }
- }
-
- public static void setWorldTime(World world, long ticks)
- {
- long time = world.getTime();
- time -= time % 24000;
- world.setTime(time + 24000 + ticks);
- }
-
- public static void createDefaultConfiguration(final String configFileName)
- {
- final File targetFile = new File(TotalFreedomMod.plugin.getDataFolder(), configFileName);
-
- if (targetFile.exists())
- {
- return;
- }
-
- Log.info("Installing default configuration file template: " + targetFile.getPath());
-
- try
- {
- final InputStream configFileStream = TotalFreedomMod.plugin.getResource(configFileName);
- FileUtils.copyInputStreamToFile(configFileStream, targetFile);
- configFileStream.close();
- }
- catch (IOException ex)
- {
- Log.severe(ex);
- }
- }
-
- public static boolean deleteFolder(final File file)
- {
- if (file.exists() && file.isDirectory())
- {
- return FileUtils.deleteQuietly(file);
- }
- return false;
- }
-
- public static void deleteCoreDumps()
- {
- final File[] coreDumps = new File(".").listFiles(new FileFilter()
- {
- @Override
- public boolean accept(File file)
- {
- return file.getName().startsWith("java.core");
- }
- });
-
- for (File dump : coreDumps)
- {
- Log.info("Removing core dump file: " + dump.getName());
- dump.delete();
- }
- }
-
- public static EntityType getEntityType(String mobname) throws Exception
- {
- mobname = mobname.toLowerCase().trim();
-
- if (!Utilities.mobtypes.containsKey(mobname))
- {
- throw new Exception();
- }
-
- return Utilities.mobtypes.get(mobname);
- }
-
- /**
- * Write the specified InputStream to a file.
- *
- * @param in The InputStream from which to read.
- * @param file The File to write to.
- * @throws IOException
- */
- public static void copy(InputStream in, File file) throws IOException // BukkitLib @ https://github.com/Pravian/BukkitLib
- {
- if (!file.exists())
- {
- file.getParentFile().mkdirs();
- }
-
- final OutputStream out = new FileOutputStream(file);
- byte[] buf = new byte[1024];
- int len;
- while ((len = in.read(buf)) > 0)
- {
- out.write(buf, 0, len);
- }
- out.close();
- in.close();
- }
-
- /**
- * Returns a file at located at the Plugins Data folder.
- *
- * @param plugin The plugin to use
- * @param name The name of the file.
- * @return The requested file.
- */
- public static File getPluginFile(Plugin plugin, String name) // BukkitLib @ https://github.com/Pravian/BukkitLib
- {
- return new File(plugin.getDataFolder(), name);
- }
-
- public static void autoEject(org.bukkit.entity.Player player, String kickMessage)
- {
- EjectMethod method = EjectMethod.STRIKE_ONE;
- final String ip = Utilities.getIp(player);
-
- if (!Utilities.ejectTracker.containsKey(ip))
- {
- Utilities.ejectTracker.put(ip, 0);
- }
-
- int kicks = Utilities.ejectTracker.get(ip);
- kicks += 1;
-
- Utilities.ejectTracker.put(ip, kicks);
-
- if (kicks <= 1)
- {
- method = EjectMethod.STRIKE_ONE;
- }
- else if (kicks == 2)
- {
- method = EjectMethod.STRIKE_TWO;
- }
- else if (kicks >= 3)
- {
- method = EjectMethod.STRIKE_THREE;
- }
-
- Log.info("AutoEject -> name: " + player.getName() + " - player ip: " + ip + " - method: " + method);
-
- player.setOp(false);
- player.setGameMode(GameMode.SURVIVAL);
- player.getInventory().clear();
-
- switch (method)
- {
- case STRIKE_ONE:
- {
- final Calendar cal = new GregorianCalendar();
- cal.add(Calendar.MINUTE, 1);
- final Date expires = cal.getTime();
-
- Utilities.bcastMsg(ChatColor.RED + player.getName() + " has been banned for 1 minute.");
-
- BanManager.addIpBan(new Ban(ip, player.getName(), "AutoEject", expires, kickMessage));
- BanManager.addUuidBan(new Ban(UUIDManager.getUniqueId(player), player.getName(), "AutoEject", expires, kickMessage));
- player.kickPlayer(kickMessage);
-
- break;
- }
- case STRIKE_TWO:
- {
- final Calendar c = new GregorianCalendar();
- c.add(Calendar.MINUTE, 3);
- final Date expires = c.getTime();
-
- Utilities.bcastMsg(ChatColor.RED + player.getName() + " has been banned for 3 minutes.");
-
- BanManager.addIpBan(new Ban(ip, player.getName(), "AutoEject", expires, kickMessage));
- BanManager.addUuidBan(new Ban(UUIDManager.getUniqueId(player), player.getName(), "AutoEject", expires, kickMessage));
- player.kickPlayer(kickMessage);
- break;
- }
- case STRIKE_THREE:
- {
- String[] ipAddressParts = ip.split("\\.");
-
- BanManager.addIpBan(new Ban(ip, player.getName(), "AutoEject", null, kickMessage));
- BanManager.addIpBan(new Ban(ipAddressParts[0] + "." + ipAddressParts[1] + ".*.*", player.getName(), "AutoEject", null, kickMessage));
- BanManager.addUuidBan(new Ban(UUIDManager.getUniqueId(player), player.getName(), "AutoEject", null, kickMessage));
-
- Utilities.bcastMsg(ChatColor.RED + player.getName() + " has been banned.");
-
- player.kickPlayer(kickMessage);
- break;
- }
- }
- }
-
- public static Date parseDateOffset(String time)
- {
- Pattern timePattern = Pattern.compile(
- "(?:([0-9]+)\\s*y[a-z]*[,\\s]*)?"
- + "(?:([0-9]+)\\s*mo[a-z]*[,\\s]*)?"
- + "(?:([0-9]+)\\s*w[a-z]*[,\\s]*)?"
- + "(?:([0-9]+)\\s*d[a-z]*[,\\s]*)?"
- + "(?:([0-9]+)\\s*h[a-z]*[,\\s]*)?"
- + "(?:([0-9]+)\\s*m[a-z]*[,\\s]*)?"
- + "(?:([0-9]+)\\s*(?:s[a-z]*)?)?", Pattern.CASE_INSENSITIVE);
- Matcher m = timePattern.matcher(time);
- int years = 0;
- int months = 0;
- int weeks = 0;
- int days = 0;
- int hours = 0;
- int minutes = 0;
- int seconds = 0;
- boolean found = false;
- while (m.find())
- {
- if (m.group() == null || m.group().isEmpty())
- {
- continue;
- }
- for (int i = 0; i < m.groupCount(); i++)
- {
- if (m.group(i) != null && !m.group(i).isEmpty())
- {
- found = true;
- break;
- }
- }
- if (found)
- {
- if (m.group(1) != null && !m.group(1).isEmpty())
- {
- years = Integer.parseInt(m.group(1));
- }
- if (m.group(2) != null && !m.group(2).isEmpty())
- {
- months = Integer.parseInt(m.group(2));
- }
- if (m.group(3) != null && !m.group(3).isEmpty())
- {
- weeks = Integer.parseInt(m.group(3));
- }
- if (m.group(4) != null && !m.group(4).isEmpty())
- {
- days = Integer.parseInt(m.group(4));
- }
- if (m.group(5) != null && !m.group(5).isEmpty())
- {
- hours = Integer.parseInt(m.group(5));
- }
- if (m.group(6) != null && !m.group(6).isEmpty())
- {
- minutes = Integer.parseInt(m.group(6));
- }
- if (m.group(7) != null && !m.group(7).isEmpty())
- {
- seconds = Integer.parseInt(m.group(7));
- }
- break;
- }
- }
- if (!found)
- {
- return null;
- }
-
- Calendar c = new GregorianCalendar();
-
- if (years > 0)
- {
- c.add(Calendar.YEAR, years);
- }
- if (months > 0)
- {
- c.add(Calendar.MONTH, months);
- }
- if (weeks > 0)
- {
- c.add(Calendar.WEEK_OF_YEAR, weeks);
- }
- if (days > 0)
- {
- c.add(Calendar.DAY_OF_MONTH, days);
- }
- if (hours > 0)
- {
- c.add(Calendar.HOUR_OF_DAY, hours);
- }
- if (minutes > 0)
- {
- c.add(Calendar.MINUTE, minutes);
- }
- if (seconds > 0)
- {
- c.add(Calendar.SECOND, seconds);
- }
-
- return c.getTime();
- }
-
- public static String playerListToNames(Set players)
- {
- List names = new ArrayList();
- for (OfflinePlayer player : players)
- {
- names.add(player.getName());
- }
- return StringUtils.join(names, ", ");
- }
-
- @SuppressWarnings("unchecked")
- public static Map getSavedFlags()
- {
- Map flags = null;
-
- File input = new File(TotalFreedomMod.plugin.getDataFolder(), TotalFreedomMod.SAVED_FLAGS_FILENAME);
- if (input.exists())
- {
- try
- {
- FileInputStream fis = new FileInputStream(input);
- ObjectInputStream ois = new ObjectInputStream(fis);
- flags = (HashMap) ois.readObject();
- ois.close();
- fis.close();
- }
- catch (Exception ex)
- {
- Log.severe(ex);
- }
- }
-
- return flags;
- }
-
- public static boolean getSavedFlag(String flag) throws Exception
- {
- Boolean flagValue = null;
-
- Map flags = Utilities.getSavedFlags();
-
- if (flags != null)
- {
- if (flags.containsKey(flag))
- {
- flagValue = flags.get(flag);
- }
- }
-
- if (flagValue != null)
- {
- return flagValue.booleanValue();
- }
- else
- {
- throw new Exception();
- }
- }
-
- public static void setSavedFlag(String flag, boolean value)
- {
- Map flags = Utilities.getSavedFlags();
-
- if (flags == null)
- {
- flags = new HashMap();
- }
-
- flags.put(flag, value);
-
- try
- {
- final FileOutputStream fos = new FileOutputStream(new File(TotalFreedomMod.plugin.getDataFolder(), TotalFreedomMod.SAVED_FLAGS_FILENAME));
- final ObjectOutputStream oos = new ObjectOutputStream(fos);
- oos.writeObject(flags);
- oos.close();
- fos.close();
- }
- catch (Exception ex)
- {
- Log.severe(ex);
- }
- }
-
- public static void createBackups(String file)
- {
- createBackups(file, false);
- }
-
- public static void createBackups(String file, boolean onlyWeekly)
- {
- final String save = file.split("\\.")[0];
- final Configuration config = new Configuration(TotalFreedomMod.plugin, "backup/backup.yml", false);
- config.load();
-
- // Weekly
- if (!config.isInt(save + ".weekly"))
- {
- performBackup(file, "weekly");
- config.set(save + ".weekly", Utilities.getUnixTime());
- }
- else
- {
- int lastBackupWeekly = config.getInt(save + ".weekly");
-
- if (lastBackupWeekly + 3600 * 24 * 7 < Utilities.getUnixTime())
- {
- performBackup(file, "weekly");
- config.set(save + ".weekly", Utilities.getUnixTime());
- }
- }
-
- if (onlyWeekly)
- {
- config.save();
- return;
- }
-
- // Daily
- if (!config.isInt(save + ".daily"))
- {
- performBackup(file, "daily");
- config.set(save + ".daily", Utilities.getUnixTime());
- }
- else
- {
- int lastBackupDaily = config.getInt(save + ".daily");
-
- if (lastBackupDaily + 3600 * 24 < Utilities.getUnixTime())
- {
- performBackup(file, "daily");
- config.set(save + ".daily", Utilities.getUnixTime());
- }
- }
-
- config.save();
- }
-
- private static void performBackup(String file, String type)
- {
- Log.info("Backing up " + file + " to " + file + "." + type + ".bak");
- final File backupFolder = new File(TotalFreedomMod.plugin.getDataFolder(), "backup");
-
- if (!backupFolder.exists())
- {
- backupFolder.mkdirs();
- }
-
- final File oldYaml = new File(TotalFreedomMod.plugin.getDataFolder(), file);
- final File newYaml = new File(backupFolder, file + "." + type + ".bak");
- FileUtil.copy(oldYaml, newYaml);
- }
-
- public static String dateToString(Date date)
- {
- return new SimpleDateFormat(DATE_STORAGE_FORMAT, Locale.ENGLISH).format(date);
- }
-
- public static Date stringToDate(String dateString)
- {
- try
- {
- return new SimpleDateFormat(DATE_STORAGE_FORMAT, Locale.ENGLISH).parse(dateString);
- }
- catch (ParseException pex)
- {
- return new Date(0L);
- }
- }
-
- @SuppressWarnings("unchecked")
- public static boolean isFromHostConsole(String senderName)
- {
- return ConfigurationEntry.HOST_SENDER_NAMES.getList().contains(senderName.toLowerCase());
- }
-
- public static List removeDuplicates(List oldList)
- {
- List newList = new ArrayList();
- for (String entry : oldList)
- {
- if (!newList.contains(entry))
- {
- newList.add(entry);
- }
- }
- return newList;
- }
-
- public static boolean fuzzyIpMatch(String a, String b, int octets)
- {
- boolean match = true;
-
- String[] aParts = a.split("\\.");
- String[] bParts = b.split("\\.");
-
- if (aParts.length != 4 || bParts.length != 4)
- {
- return false;
- }
-
- if (octets > 4)
- {
- octets = 4;
- }
- else if (octets < 1)
- {
- octets = 1;
- }
-
- for (int i = 0; i < octets && i < 4; i++)
- {
- if (aParts[i].equals("*") || bParts[i].equals("*"))
- {
- continue;
- }
-
- if (!aParts[i].equals(bParts[i]))
- {
- match = false;
- break;
- }
- }
-
- return match;
- }
-
- public static String getFuzzyIp(String ip)
- {
- final String[] ipParts = ip.split("\\.");
- if (ipParts.length == 4)
- {
- return String.format("%s.%s.*.*", ipParts[0], ipParts[1]);
- }
-
- return ip;
- }
-
- public static int replaceBlocks(Location center, Material fromMaterial, Material toMaterial, int radius)
- {
- int affected = 0;
-
- Block centerBlock = center.getBlock();
- for (int xOffset = -radius; xOffset <= radius; xOffset++)
- {
- for (int yOffset = -radius; yOffset <= radius; yOffset++)
- {
- for (int zOffset = -radius; zOffset <= radius; zOffset++)
- {
- Block block = centerBlock.getRelative(xOffset, yOffset, zOffset);
-
- if (block.getType().equals(fromMaterial))
- {
- if (block.getLocation().distanceSquared(center) < (radius * radius))
- {
- block.setType(toMaterial);
- affected++;
- }
- }
- }
- }
- }
-
- return affected;
- }
-
- public static void downloadFile(String url, File output) throws java.lang.Exception
- {
- downloadFile(url, output, false);
- }
-
- public static void downloadFile(String url, File output, boolean verbose) throws java.lang.Exception
- {
- final URL website = new URL(url);
- ReadableByteChannel rbc = Channels.newChannel(website.openStream());
- FileOutputStream fos = new FileOutputStream(output);
- fos.getChannel().transferFrom(rbc, 0, 1 << 24);
- fos.close();
-
- if (verbose)
- {
- Log.info("Downloaded " + url + " to " + output + ".");
- }
- }
-
- public static void adminChatMessage(CommandSender sender, String message, boolean senderIsConsole)
- {
- String name = sender.getName() + " " + PlayerRank.fromSender(sender).getPrefix() + ChatColor.WHITE;
- Log.info("[ADMIN] " + name + ": " + message);
- String adminChatMessage = "[" + ChatColor.AQUA + "ADMIN" + ChatColor.WHITE + "] " + ChatColor.DARK_RED + name + ": " + ChatColor.AQUA + message;
-
- for (org.bukkit.entity.Player player : Bukkit.getOnlinePlayers())
- {
- if (AdminList.isSuperAdmin(player))
- {
- player.sendMessage(adminChatMessage);
- }
- }
-
- DiscordBridge.transmitAdminMessage(adminChatMessage.replaceAll("([`_~*])", "\\\\$1"));
- }
-
- //getField: Borrowed from WorldEdit
- @SuppressWarnings("unchecked")
- public static T getField(Object from, String name)
- {
- Class> checkClass = from.getClass();
- do
- {
- try
- {
- Field field = checkClass.getDeclaredField(name);
- field.setAccessible(true);
- return (T) field.get(from);
-
- }
- catch (NoSuchFieldException ex)
- {
- }
- catch (IllegalAccessException ex)
- {
- }
- }
- while (checkClass.getSuperclass() != Object.class
- && ((checkClass = checkClass.getSuperclass()) != null));
-
- return null;
- }
-
- public static ChatColor randomChatColor()
- {
- return CHAT_COLOR_POOL.get(RANDOM.nextInt(CHAT_COLOR_POOL.size()));
- }
-
- public static String colorize(String string)
- {
- return ChatColor.translateAlternateColorCodes('&', string);
- }
-
- public static long getUnixTime()
- {
- return System.currentTimeMillis() / 1000L;
- }
-
- public static Date getUnixDate(long unix)
- {
- return new Date(unix * 1000);
- }
-
- public static long getUnixTime(Date date)
- {
- if (date == null)
- {
- return 0;
- }
-
- return date.getTime() / 1000L;
- }
-
- public static String getNmsVersion()
- {
- String packageName = Bukkit.getServer().getClass().getPackage().getName();
- return packageName.substring(packageName.lastIndexOf('.') + 1);
-
- }
-
- public static void reportAction(org.bukkit.entity.Player reporter, org.bukkit.entity.Player reported, String report)
- {
- for (org.bukkit.entity.Player player : Bukkit.getOnlinePlayers())
- {
- if (AdminList.isSuperAdmin(player))
- {
- playerMsg(player, ChatColor.RED + "[REPORTS] " + ChatColor.GOLD + reporter.getName() + " has reported " + reported.getName() + " for " + report);
- }
- }
- }
-
- public static class TFM_EntityWiper
- {
- private static final List> WIPEABLES = new ArrayList>();
-
- static
- {
- WIPEABLES.add(EnderCrystal.class);
- WIPEABLES.add(EnderSignal.class);
- WIPEABLES.add(ExperienceOrb.class);
- WIPEABLES.add(Projectile.class);
- WIPEABLES.add(FallingBlock.class);
- WIPEABLES.add(Firework.class);
- WIPEABLES.add(Item.class);
- }
-
- private TFM_EntityWiper()
- {
- throw new AssertionError();
- }
-
- private static boolean canWipe(Entity entity, boolean wipeExplosives, boolean wipeVehicles)
- {
- if (wipeExplosives)
- {
- if (Explosive.class.isAssignableFrom(entity.getClass()))
- {
- return true;
- }
- }
-
- if (wipeVehicles)
- {
- if (Boat.class.isAssignableFrom(entity.getClass()))
- {
- return true;
- }
- else if (Minecart.class.isAssignableFrom(entity.getClass()))
- {
- return true;
- }
- }
-
- Iterator> it = WIPEABLES.iterator();
- while (it.hasNext())
- {
- if (it.next().isAssignableFrom(entity.getClass()))
- {
- return true;
- }
- }
-
- return false;
- }
-
- public static int wipeEntities(boolean wipeExplosives, boolean wipeVehicles)
- {
- int removed = 0;
-
- Iterator worlds = Bukkit.getWorlds().iterator();
- while (worlds.hasNext())
- {
- Iterator entities = worlds.next().getEntities().iterator();
- while (entities.hasNext())
- {
- Entity entity = entities.next();
- if (canWipe(entity, wipeExplosives, wipeVehicles))
- {
- entity.remove();
- removed++;
- }
- }
- }
-
- return removed;
- }
- }
-
- public enum EjectMethod
- {
- STRIKE_ONE, STRIKE_TWO, STRIKE_THREE
- }
-
- public static class MethodTimer
- {
- private long lastStart;
- private long total = 0;
-
- public MethodTimer()
- {
- }
-
- public void start()
- {
- this.lastStart = System.currentTimeMillis();
- }
-
- public void update()
- {
- this.total += (System.currentTimeMillis() - this.lastStart);
- }
-
- public long getTotal()
- {
- return this.total;
- }
-
- public void printTotalToLog(String timerName)
- {
- Log.info("DEBUG: " + timerName + " used " + this.getTotal() + " ms.");
- }
- }
+import me.StevenLawson.TotalFreedomMod.Log;
+import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
+import me.StevenLawson.TotalFreedomMod.admin.AdminList;
+import me.StevenLawson.TotalFreedomMod.ban.Ban;
+import me.StevenLawson.TotalFreedomMod.ban.BanManager;
+import me.StevenLawson.TotalFreedomMod.config.Configuration;
+import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
+import me.StevenLawson.TotalFreedomMod.discord.bridge.DiscordBridge;
+import me.StevenLawson.TotalFreedomMod.manager.UUIDManager;
+import me.StevenLawson.TotalFreedomMod.player.Player;
+import me.StevenLawson.TotalFreedomMod.player.PlayerData;
+import me.StevenLawson.TotalFreedomMod.player.PlayerList;
+import me.StevenLawson.TotalFreedomMod.player.PlayerRank;
+import net.md_5.bungee.api.chat.BaseComponent;
+import net.md_5.bungee.api.chat.TextComponent;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.bukkit.Bukkit;
+import org.bukkit.ChatColor;
+import org.bukkit.GameMode;
+import org.bukkit.Location;
+import org.bukkit.Material;
+import org.bukkit.OfflinePlayer;
+import org.bukkit.SkullType;
+import org.bukkit.World;
+import org.bukkit.block.Block;
+import org.bukkit.block.Skull;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Boat;
+import org.bukkit.entity.Creature;
+import org.bukkit.entity.EnderCrystal;
+import org.bukkit.entity.EnderSignal;
+import org.bukkit.entity.Entity;
+import org.bukkit.entity.EntityType;
+import org.bukkit.entity.ExperienceOrb;
+import org.bukkit.entity.Explosive;
+import org.bukkit.entity.FallingBlock;
+import org.bukkit.entity.Firework;
+import org.bukkit.entity.Item;
+import org.bukkit.entity.Minecart;
+import org.bukkit.entity.Projectile;
+import org.bukkit.plugin.Plugin;
+import org.bukkit.util.FileUtil;
+
+public class Utilities {
+
+ private static final Map ejectTracker = new HashMap();
+ public static final Map mobtypes = new HashMap();
+ // See https://github.com/TotalFreedom/License - None of the listed names may be removed.
+ public static final List DEVELOPERS = Arrays.asList("Madgeek1450", "Prozza",
+ "DarthSalmon", "AcidicCyanide", "Wild1145", "WickedGamingUK", "G6_", "videogamesm12",
+ "maniaplay", "evanbt");
+ private static final Random RANDOM = new Random();
+ public static String DATE_STORAGE_FORMAT = "EEE, d MMM yyyy HH:mm:ss Z";
+ public static final Map CHAT_COLOR_NAMES = new HashMap();
+ public static final List CHAT_COLOR_POOL = Arrays.asList(
+ ChatColor.DARK_BLUE,
+ ChatColor.DARK_GREEN,
+ ChatColor.DARK_AQUA,
+ ChatColor.DARK_RED,
+ ChatColor.DARK_PURPLE,
+ ChatColor.GOLD,
+ ChatColor.BLUE,
+ ChatColor.GREEN,
+ ChatColor.AQUA,
+ ChatColor.RED,
+ ChatColor.LIGHT_PURPLE,
+ ChatColor.YELLOW);
+
+ static {
+ for (EntityType type : EntityType.values()) {
+ try {
+ if (DeprecationUtil.getName_EntityType(type) != null) {
+ if (Creature.class.isAssignableFrom(type.getEntityClass())) {
+ mobtypes.put(DeprecationUtil.getName_EntityType(type).toLowerCase(), type);
+ }
+ }
+ } catch (Exception ex) {
+ }
+ }
+
+ for (ChatColor chatColor : CHAT_COLOR_POOL) {
+ CHAT_COLOR_NAMES.put(chatColor.name().toLowerCase().replace("_", ""), chatColor);
+ }
+ }
+
+ private Utilities() {
+ throw new AssertionError();
+ }
+
+ public static void bcastMsg(String message, ChatColor color, boolean transmitToDiscord) {
+ Log.info(message, true);
+
+ for (org.bukkit.entity.Player player : Bukkit.getOnlinePlayers()) {
+ player.sendMessage((color == null ? "" : color) + message);
+ }
+
+ if (transmitToDiscord) {
+ DiscordBridge.transmitMessage(message.replaceAll("([`_~*])", "\\\\$1"));
+ }
+ }
+
+ public static void bcastMsg(String message, ChatColor color) {
+ bcastMsg(message, color, true);
+ }
+
+ public static void bcastMsg(String message, boolean transmitToDiscord) {
+ bcastMsg(message, null, transmitToDiscord);
+ }
+
+ public static void bcastMsg(String message) {
+ Utilities.bcastMsg(message, null);
+ }
+
+ // Still in use by listeners
+ public static void playerMsg(CommandSender sender, String message, ChatColor color) {
+ sender.sendMessage(color + message);
+ }
+
+ // Still in use by listeners
+ public static void playerMsg(CommandSender sender, String message) {
+ Utilities.playerMsg(sender, message, ChatColor.GRAY);
+ }
+
+ public static void setFlying(org.bukkit.entity.Player player, boolean flying) {
+ player.setAllowFlight(true);
+ player.setFlying(flying);
+ }
+
+ public static void adminAction(String adminName, String action, boolean isRed) {
+ Utilities.bcastMsg(adminName + " - " + action, (isRed ? ChatColor.RED : ChatColor.AQUA));
+ }
+
+ public static String getIp(OfflinePlayer player) {
+ if (player.isOnline()) {
+ return player.getPlayer().getAddress().getAddress().getHostAddress().trim();
+ }
+
+ final Player entry = PlayerList.getEntry(UUIDManager.getUniqueId(player));
+
+ return (entry == null ? null : entry.getIps().get(0));
+ }
+
+ public static boolean isUniqueId(String uuid) {
+ try {
+ UUID.fromString(uuid);
+ return true;
+ } catch (IllegalArgumentException ex) {
+ return false;
+ }
+ }
+
+ public static String formatLocation(Location location) {
+ return String.format("%s: (%d, %d, %d)",
+ location.getWorld().getName(),
+ Math.round(location.getX()),
+ Math.round(location.getY()),
+ Math.round(location.getZ()));
+ }
+
+ public static String formatPlayer(OfflinePlayer player) {
+ return player.getName() + " (" + UUIDManager.getUniqueId(player) + ")";
+ }
+
+ /**
+ * Escapes an IP-address to a config-friendly version.
+ *
+ * Example:
+ *
+ * IpUtils.toEscapedString("192.168.1.192"); // 192_168_1_192
+ *
+ *
+ * @param ip The IP-address to escape.
+ * @return The config-friendly IP address.
+ * @see #fromEscapedString(String)
+ */
+ public static String toEscapedString(
+ String ip) // BukkitLib @ https://github.com/Pravian/BukkitLib
+ {
+ return ip.trim().replaceAll("\\.", "_");
+ }
+
+ /**
+ * Un-escapes a config-friendly Ipv4-address.
+ *
+ * Example:
+ *
+ * IpUtils.fromEscapedString("192_168_1_192"); // 192.168.1.192
+ *
+ *
+ * @param escapedIp The IP-address to un-escape.
+ * @return The config-friendly IP address.
+ * @see #toEscapedString(String)
+ */
+ public static String fromEscapedString(
+ String escapedIp) // BukkitLib @ https://github.com/Pravian/BukkitLib
+ {
+ return escapedIp.trim().replaceAll("_", "\\.");
+ }
+
+ public static void gotoWorld(org.bukkit.entity.Player player, String targetWorld) {
+ if (player == null) {
+ return;
+ }
+
+ if (player.getWorld().getName().equalsIgnoreCase(targetWorld)) {
+ playerMsg(player, "Going to main world.", ChatColor.GRAY);
+ player.teleport(Bukkit.getWorlds().get(0).getSpawnLocation());
+ return;
+ }
+
+ for (World world : Bukkit.getWorlds()) {
+ if (world.getName().equalsIgnoreCase(targetWorld)) {
+ playerMsg(player, "Going to world: " + targetWorld, ChatColor.GRAY);
+ player.teleport(world.getSpawnLocation());
+ return;
+ }
+ }
+
+ playerMsg(player, "World " + targetWorld + " not found.", ChatColor.GRAY);
+ }
+
+ public static String decolorize(String string) {
+ return string.replaceAll("\\u00A7(?=[0-9a-fk-or])", "&");
+ }
+
+ public static void buildHistory(Location location, int length, PlayerData playerdata) {
+ final Block center = location.getBlock();
+ for (int xOffset = -length; xOffset <= length; xOffset++) {
+ for (int yOffset = -length; yOffset <= length; yOffset++) {
+ for (int zOffset = -length; zOffset <= length; zOffset++) {
+ final Block block = center.getRelative(xOffset, yOffset, zOffset);
+ playerdata.insertHistoryBlock(block.getLocation(), block.getType());
+ }
+ }
+ }
+ }
+
+ public static void generateCube(Location location, int length, Material material) {
+ final Block center = location.getBlock();
+ for (int xOffset = -length; xOffset <= length; xOffset++) {
+ for (int yOffset = -length; yOffset <= length; yOffset++) {
+ for (int zOffset = -length; zOffset <= length; zOffset++) {
+ final Block block = center.getRelative(xOffset, yOffset, zOffset);
+ if (block.getType() != material) {
+ block.setType(material);
+ }
+ }
+ }
+ }
+ }
+
+ public static void generateHollowCube(Location location, int length, Material material) {
+ final Block center = location.getBlock();
+ for (int xOffset = -length; xOffset <= length; xOffset++) {
+ for (int yOffset = -length; yOffset <= length; yOffset++) {
+ for (int zOffset = -length; zOffset <= length; zOffset++) {
+ // Hollow
+ if (Math.abs(xOffset) != length && Math.abs(yOffset) != length
+ && Math.abs(zOffset) != length) {
+ continue;
+ }
+
+ final Block block = center.getRelative(xOffset, yOffset, zOffset);
+
+ if (material != Material.SKULL) {
+ // Glowstone light
+ if (material != Material.GLASS && xOffset == 0 && yOffset == 2
+ && zOffset == 0) {
+ block.setType(Material.GLOWSTONE);
+ continue;
+ }
+
+ block.setType(material);
+ } else // Darth mode
+ {
+ if (Math.abs(xOffset) == length && Math.abs(yOffset) == length
+ && Math.abs(zOffset) == length) {
+ block.setType(Material.GLOWSTONE);
+ continue;
+ }
+
+ block.setType(Material.SKULL);
+ final Skull skull = (Skull) block.getState();
+ skull.setSkullType(SkullType.PLAYER);
+ skull.setOwner("Prozza");
+ skull.update();
+ }
+ }
+ }
+ }
+ }
+
+ public static void setWorldTime(World world, long ticks) {
+ long time = world.getTime();
+ time -= time % 24000;
+ world.setTime(time + 24000 + ticks);
+ }
+
+ public static void createDefaultConfiguration(final String configFileName) {
+ final File targetFile = new File(TotalFreedomMod.plugin.getDataFolder(), configFileName);
+
+ if (targetFile.exists()) {
+ return;
+ }
+
+ Log.info("Installing default configuration file template: " + targetFile.getPath());
+
+ try {
+ final InputStream configFileStream = TotalFreedomMod.plugin.getResource(configFileName);
+ FileUtils.copyInputStreamToFile(configFileStream, targetFile);
+ configFileStream.close();
+ } catch (IOException ex) {
+ Log.severe(ex);
+ }
+ }
+
+ public static boolean deleteFolder(final File file) {
+ if (file.exists() && file.isDirectory()) {
+ return FileUtils.deleteQuietly(file);
+ }
+ return false;
+ }
+
+ public static void deleteCoreDumps() {
+ final File[] coreDumps = new File(".").listFiles(new FileFilter() {
+ @Override
+ public boolean accept(File file) {
+ return file.getName().startsWith("java.core");
+ }
+ });
+
+ for (File dump : coreDumps) {
+ Log.info("Removing core dump file: " + dump.getName());
+ dump.delete();
+ }
+ }
+
+ public static EntityType getEntityType(String mobname) throws Exception {
+ mobname = mobname.toLowerCase().trim();
+
+ if (!Utilities.mobtypes.containsKey(mobname)) {
+ throw new Exception();
+ }
+
+ return Utilities.mobtypes.get(mobname);
+ }
+
+ /**
+ * Write the specified InputStream to a file.
+ *
+ * @param in The InputStream from which to read.
+ * @param file The File to write to.
+ * @throws IOException
+ */
+ public static void copy(InputStream in, File file)
+ throws IOException // BukkitLib @ https://github.com/Pravian/BukkitLib
+ {
+ if (!file.exists()) {
+ file.getParentFile().mkdirs();
+ }
+
+ final OutputStream out = new FileOutputStream(file);
+ byte[] buf = new byte[1024];
+ int len;
+ while ((len = in.read(buf)) > 0) {
+ out.write(buf, 0, len);
+ }
+ out.close();
+ in.close();
+ }
+
+ /**
+ * Returns a file at located at the Plugins Data folder.
+ *
+ * @param plugin The plugin to use
+ * @param name The name of the file.
+ * @return The requested file.
+ */
+ public static File getPluginFile(Plugin plugin,
+ String name) // BukkitLib @ https://github.com/Pravian/BukkitLib
+ {
+ return new File(plugin.getDataFolder(), name);
+ }
+
+ public static void autoEject(org.bukkit.entity.Player player, String kickMessage) {
+ EjectMethod method = EjectMethod.STRIKE_ONE;
+ final String ip = Utilities.getIp(player);
+
+ if (!Utilities.ejectTracker.containsKey(ip)) {
+ Utilities.ejectTracker.put(ip, 0);
+ }
+
+ int kicks = Utilities.ejectTracker.get(ip);
+ kicks += 1;
+
+ Utilities.ejectTracker.put(ip, kicks);
+
+ if (kicks <= 1) {
+ method = EjectMethod.STRIKE_ONE;
+ } else if (kicks == 2) {
+ method = EjectMethod.STRIKE_TWO;
+ } else if (kicks >= 3) {
+ method = EjectMethod.STRIKE_THREE;
+ }
+
+ Log.info("AutoEject -> name: " + player.getName() + " - player ip: " + ip + " - method: "
+ + method);
+
+ player.setOp(false);
+ player.setGameMode(GameMode.SURVIVAL);
+ player.getInventory().clear();
+
+ switch (method) {
+ case STRIKE_ONE: {
+ final Calendar cal = new GregorianCalendar();
+ cal.add(Calendar.MINUTE, 1);
+ final Date expires = cal.getTime();
+
+ Utilities.bcastMsg(
+ ChatColor.RED + player.getName() + " has been banned for 1 minute.");
+
+ BanManager.addIpBan(
+ new Ban(ip, player.getName(), "AutoEject", expires, kickMessage));
+ BanManager.addUuidBan(
+ new Ban(UUIDManager.getUniqueId(player), player.getName(), "AutoEject", expires,
+ kickMessage));
+ player.kickPlayer(kickMessage);
+
+ break;
+ }
+ case STRIKE_TWO: {
+ final Calendar c = new GregorianCalendar();
+ c.add(Calendar.MINUTE, 3);
+ final Date expires = c.getTime();
+
+ Utilities.bcastMsg(
+ ChatColor.RED + player.getName() + " has been banned for 3 minutes.");
+
+ BanManager.addIpBan(
+ new Ban(ip, player.getName(), "AutoEject", expires, kickMessage));
+ BanManager.addUuidBan(
+ new Ban(UUIDManager.getUniqueId(player), player.getName(), "AutoEject", expires,
+ kickMessage));
+ player.kickPlayer(kickMessage);
+ break;
+ }
+ case STRIKE_THREE: {
+ String[] ipAddressParts = ip.split("\\.");
+
+ BanManager.addIpBan(new Ban(ip, player.getName(), "AutoEject", null, kickMessage));
+ BanManager.addIpBan(
+ new Ban(ipAddressParts[0] + "." + ipAddressParts[1] + ".*.*", player.getName(),
+ "AutoEject", null, kickMessage));
+ BanManager.addUuidBan(
+ new Ban(UUIDManager.getUniqueId(player), player.getName(), "AutoEject", null,
+ kickMessage));
+
+ Utilities.bcastMsg(ChatColor.RED + player.getName() + " has been banned.");
+
+ player.kickPlayer(kickMessage);
+ break;
+ }
+ }
+ }
+
+ public static Date parseDateOffset(String time) {
+ Pattern timePattern = Pattern.compile(
+ "(?:([0-9]+)\\s*y[a-z]*[,\\s]*)?"
+ + "(?:([0-9]+)\\s*mo[a-z]*[,\\s]*)?"
+ + "(?:([0-9]+)\\s*w[a-z]*[,\\s]*)?"
+ + "(?:([0-9]+)\\s*d[a-z]*[,\\s]*)?"
+ + "(?:([0-9]+)\\s*h[a-z]*[,\\s]*)?"
+ + "(?:([0-9]+)\\s*m[a-z]*[,\\s]*)?"
+ + "(?:([0-9]+)\\s*(?:s[a-z]*)?)?", Pattern.CASE_INSENSITIVE);
+ Matcher m = timePattern.matcher(time);
+ int years = 0;
+ int months = 0;
+ int weeks = 0;
+ int days = 0;
+ int hours = 0;
+ int minutes = 0;
+ int seconds = 0;
+ boolean found = false;
+ while (m.find()) {
+ if (m.group() == null || m.group().isEmpty()) {
+ continue;
+ }
+ for (int i = 0; i < m.groupCount(); i++) {
+ if (m.group(i) != null && !m.group(i).isEmpty()) {
+ found = true;
+ break;
+ }
+ }
+ if (found) {
+ if (m.group(1) != null && !m.group(1).isEmpty()) {
+ years = Integer.parseInt(m.group(1));
+ }
+ if (m.group(2) != null && !m.group(2).isEmpty()) {
+ months = Integer.parseInt(m.group(2));
+ }
+ if (m.group(3) != null && !m.group(3).isEmpty()) {
+ weeks = Integer.parseInt(m.group(3));
+ }
+ if (m.group(4) != null && !m.group(4).isEmpty()) {
+ days = Integer.parseInt(m.group(4));
+ }
+ if (m.group(5) != null && !m.group(5).isEmpty()) {
+ hours = Integer.parseInt(m.group(5));
+ }
+ if (m.group(6) != null && !m.group(6).isEmpty()) {
+ minutes = Integer.parseInt(m.group(6));
+ }
+ if (m.group(7) != null && !m.group(7).isEmpty()) {
+ seconds = Integer.parseInt(m.group(7));
+ }
+ break;
+ }
+ }
+ if (!found) {
+ return null;
+ }
+
+ Calendar c = new GregorianCalendar();
+
+ if (years > 0) {
+ c.add(Calendar.YEAR, years);
+ }
+ if (months > 0) {
+ c.add(Calendar.MONTH, months);
+ }
+ if (weeks > 0) {
+ c.add(Calendar.WEEK_OF_YEAR, weeks);
+ }
+ if (days > 0) {
+ c.add(Calendar.DAY_OF_MONTH, days);
+ }
+ if (hours > 0) {
+ c.add(Calendar.HOUR_OF_DAY, hours);
+ }
+ if (minutes > 0) {
+ c.add(Calendar.MINUTE, minutes);
+ }
+ if (seconds > 0) {
+ c.add(Calendar.SECOND, seconds);
+ }
+
+ return c.getTime();
+ }
+
+ public static String playerListToNames(Set players) {
+ List names = new ArrayList();
+ for (OfflinePlayer player : players) {
+ names.add(player.getName());
+ }
+ return StringUtils.join(names, ", ");
+ }
+
+ @SuppressWarnings("unchecked")
+ public static Map getSavedFlags() {
+ Map flags = null;
+
+ File input = new File(TotalFreedomMod.plugin.getDataFolder(),
+ TotalFreedomMod.SAVED_FLAGS_FILENAME);
+ if (input.exists()) {
+ try {
+ FileInputStream fis = new FileInputStream(input);
+ ObjectInputStream ois = new ObjectInputStream(fis);
+ flags = (HashMap) ois.readObject();
+ ois.close();
+ fis.close();
+ } catch (Exception ex) {
+ Log.severe(ex);
+ }
+ }
+
+ return flags;
+ }
+
+ public static boolean getSavedFlag(String flag) throws Exception {
+ Boolean flagValue = null;
+
+ Map flags = Utilities.getSavedFlags();
+
+ if (flags != null) {
+ if (flags.containsKey(flag)) {
+ flagValue = flags.get(flag);
+ }
+ }
+
+ if (flagValue != null) {
+ return flagValue.booleanValue();
+ } else {
+ throw new Exception();
+ }
+ }
+
+ public static void setSavedFlag(String flag, boolean value) {
+ Map flags = Utilities.getSavedFlags();
+
+ if (flags == null) {
+ flags = new HashMap();
+ }
+
+ flags.put(flag, value);
+
+ try {
+ final FileOutputStream fos = new FileOutputStream(
+ new File(TotalFreedomMod.plugin.getDataFolder(),
+ TotalFreedomMod.SAVED_FLAGS_FILENAME));
+ final ObjectOutputStream oos = new ObjectOutputStream(fos);
+ oos.writeObject(flags);
+ oos.close();
+ fos.close();
+ } catch (Exception ex) {
+ Log.severe(ex);
+ }
+ }
+
+ public static void createBackups(String file) {
+ createBackups(file, false);
+ }
+
+ public static void createBackups(String file, boolean onlyWeekly) {
+ final String save = file.split("\\.")[0];
+ final Configuration config = new Configuration(TotalFreedomMod.plugin, "backup/backup.yml",
+ false);
+ config.load();
+
+ // Weekly
+ if (!config.isInt(save + ".weekly")) {
+ performBackup(file, "weekly");
+ config.set(save + ".weekly", Utilities.getUnixTime());
+ } else {
+ int lastBackupWeekly = config.getInt(save + ".weekly");
+
+ if (lastBackupWeekly + 3600 * 24 * 7 < Utilities.getUnixTime()) {
+ performBackup(file, "weekly");
+ config.set(save + ".weekly", Utilities.getUnixTime());
+ }
+ }
+
+ if (onlyWeekly) {
+ config.save();
+ return;
+ }
+
+ // Daily
+ if (!config.isInt(save + ".daily")) {
+ performBackup(file, "daily");
+ config.set(save + ".daily", Utilities.getUnixTime());
+ } else {
+ int lastBackupDaily = config.getInt(save + ".daily");
+
+ if (lastBackupDaily + 3600 * 24 < Utilities.getUnixTime()) {
+ performBackup(file, "daily");
+ config.set(save + ".daily", Utilities.getUnixTime());
+ }
+ }
+
+ config.save();
+ }
+
+ private static void performBackup(String file, String type) {
+ Log.info("Backing up " + file + " to " + file + "." + type + ".bak");
+ final File backupFolder = new File(TotalFreedomMod.plugin.getDataFolder(), "backup");
+
+ if (!backupFolder.exists()) {
+ backupFolder.mkdirs();
+ }
+
+ final File oldYaml = new File(TotalFreedomMod.plugin.getDataFolder(), file);
+ final File newYaml = new File(backupFolder, file + "." + type + ".bak");
+ FileUtil.copy(oldYaml, newYaml);
+ }
+
+ public static String dateToString(Date date) {
+ return new SimpleDateFormat(DATE_STORAGE_FORMAT, Locale.ENGLISH).format(date);
+ }
+
+ public static Date stringToDate(String dateString) {
+ try {
+ return new SimpleDateFormat(DATE_STORAGE_FORMAT, Locale.ENGLISH).parse(dateString);
+ } catch (ParseException pex) {
+ return new Date(0L);
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ public static boolean isFromHostConsole(String senderName) {
+ return ConfigurationEntry.HOST_SENDER_NAMES.getList().contains(senderName.toLowerCase());
+ }
+
+ public static List removeDuplicates(List oldList) {
+ List newList = new ArrayList();
+ for (String entry : oldList) {
+ if (!newList.contains(entry)) {
+ newList.add(entry);
+ }
+ }
+ return newList;
+ }
+
+ public static boolean fuzzyIpMatch(String a, String b, int octets) {
+ boolean match = true;
+
+ String[] aParts = a.split("\\.");
+ String[] bParts = b.split("\\.");
+
+ if (aParts.length != 4 || bParts.length != 4) {
+ return false;
+ }
+
+ if (octets > 4) {
+ octets = 4;
+ } else if (octets < 1) {
+ octets = 1;
+ }
+
+ for (int i = 0; i < octets && i < 4; i++) {
+ if (aParts[i].equals("*") || bParts[i].equals("*")) {
+ continue;
+ }
+
+ if (!aParts[i].equals(bParts[i])) {
+ match = false;
+ break;
+ }
+ }
+
+ return match;
+ }
+
+ public static String getFuzzyIp(String ip) {
+ final String[] ipParts = ip.split("\\.");
+ if (ipParts.length == 4) {
+ return String.format("%s.%s.*.*", ipParts[0], ipParts[1]);
+ }
+
+ return ip;
+ }
+
+ public static int replaceBlocks(Location center, Material fromMaterial, Material toMaterial,
+ int radius) {
+ int affected = 0;
+
+ Block centerBlock = center.getBlock();
+ for (int xOffset = -radius; xOffset <= radius; xOffset++) {
+ for (int yOffset = -radius; yOffset <= radius; yOffset++) {
+ for (int zOffset = -radius; zOffset <= radius; zOffset++) {
+ Block block = centerBlock.getRelative(xOffset, yOffset, zOffset);
+
+ if (block.getType().equals(fromMaterial)) {
+ if (block.getLocation().distanceSquared(center) < (radius * radius)) {
+ block.setType(toMaterial);
+ affected++;
+ }
+ }
+ }
+ }
+ }
+
+ return affected;
+ }
+
+ public static void downloadFile(String url, File output) throws java.lang.Exception {
+ downloadFile(url, output, false);
+ }
+
+ public static void downloadFile(String url, File output, boolean verbose)
+ throws java.lang.Exception {
+ final URL website = new URL(url);
+ ReadableByteChannel rbc = Channels.newChannel(website.openStream());
+ FileOutputStream fos = new FileOutputStream(output);
+ fos.getChannel().transferFrom(rbc, 0, 1 << 24);
+ fos.close();
+
+ if (verbose) {
+ Log.info("Downloaded " + url + " to " + output + ".");
+ }
+ }
+
+ public static void adminChatMessage(CommandSender sender, String message,
+ boolean senderIsConsole) {
+ String name =
+ sender.getName() + " " + PlayerRank.fromSender(sender).getPrefix() + ChatColor.WHITE;
+ Log.info("[ADMIN] " + name + ": " + message);
+ String adminChatMessage =
+ "[" + ChatColor.AQUA + "ADMIN" + ChatColor.WHITE + "] " + ChatColor.DARK_RED + name
+ + ": " + ChatColor.AQUA + message;
+
+ for (org.bukkit.entity.Player player : Bukkit.getOnlinePlayers()) {
+ if (AdminList.isSuperAdmin(player)) {
+ player.sendMessage(adminChatMessage);
+ }
+ }
+
+ DiscordBridge.transmitAdminMessage(adminChatMessage.replaceAll("([`_~*])", "\\\\$1"));
+ }
+
+ //getField: Borrowed from WorldEdit
+ @SuppressWarnings("unchecked")
+ public static T getField(Object from, String name) {
+ Class> checkClass = from.getClass();
+ do {
+ try {
+ Field field = checkClass.getDeclaredField(name);
+ field.setAccessible(true);
+ return (T) field.get(from);
+
+ } catch (NoSuchFieldException ex) {
+ } catch (IllegalAccessException ex) {
+ }
+ }
+ while (checkClass.getSuperclass() != Object.class
+ && ((checkClass = checkClass.getSuperclass()) != null));
+
+ return null;
+ }
+
+ public static ChatColor randomChatColor() {
+ return CHAT_COLOR_POOL.get(RANDOM.nextInt(CHAT_COLOR_POOL.size()));
+ }
+
+ public static TextComponent fromBaseComponents(BaseComponent[] components) {
+ TextComponent newComponent = new TextComponent("");
+
+ for (BaseComponent component : components) {
+ newComponent.addExtra(component);
+ }
+
+ return newComponent;
+ }
+
+ public static String colorize(String string) {
+ return ChatColor.translateAlternateColorCodes('&', string);
+ }
+
+ public static long getUnixTime() {
+ return System.currentTimeMillis() / 1000L;
+ }
+
+ public static Date getUnixDate(long unix) {
+ return new Date(unix * 1000);
+ }
+
+ public static long getUnixTime(Date date) {
+ if (date == null) {
+ return 0;
+ }
+
+ return date.getTime() / 1000L;
+ }
+
+ public static String getNmsVersion() {
+ String packageName = Bukkit.getServer().getClass().getPackage().getName();
+ return packageName.substring(packageName.lastIndexOf('.') + 1);
+
+ }
+
+ public static void reportAction(org.bukkit.entity.Player reporter,
+ org.bukkit.entity.Player reported, String report) {
+ for (org.bukkit.entity.Player player : Bukkit.getOnlinePlayers()) {
+ if (AdminList.isSuperAdmin(player)) {
+ playerMsg(player, ChatColor.RED + "[REPORTS] " + ChatColor.GOLD + reporter.getName()
+ + " has reported " + reported.getName() + " for " + report);
+ }
+ }
+ }
+
+ public static class TFM_EntityWiper {
+
+ private static final List> WIPEABLES = new ArrayList>();
+
+ static {
+ WIPEABLES.add(EnderCrystal.class);
+ WIPEABLES.add(EnderSignal.class);
+ WIPEABLES.add(ExperienceOrb.class);
+ WIPEABLES.add(Projectile.class);
+ WIPEABLES.add(FallingBlock.class);
+ WIPEABLES.add(Firework.class);
+ WIPEABLES.add(Item.class);
+ }
+
+ private TFM_EntityWiper() {
+ throw new AssertionError();
+ }
+
+ private static boolean canWipe(Entity entity, boolean wipeExplosives,
+ boolean wipeVehicles) {
+ if (wipeExplosives) {
+ if (Explosive.class.isAssignableFrom(entity.getClass())) {
+ return true;
+ }
+ }
+
+ if (wipeVehicles) {
+ if (Boat.class.isAssignableFrom(entity.getClass())) {
+ return true;
+ } else if (Minecart.class.isAssignableFrom(entity.getClass())) {
+ return true;
+ }
+ }
+
+ Iterator> it = WIPEABLES.iterator();
+ while (it.hasNext()) {
+ if (it.next().isAssignableFrom(entity.getClass())) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ public static int wipeEntities(boolean wipeExplosives, boolean wipeVehicles) {
+ int removed = 0;
+
+ Iterator worlds = Bukkit.getWorlds().iterator();
+ while (worlds.hasNext()) {
+ Iterator entities = worlds.next().getEntities().iterator();
+ while (entities.hasNext()) {
+ Entity entity = entities.next();
+ if (canWipe(entity, wipeExplosives, wipeVehicles)) {
+ entity.remove();
+ removed++;
+ }
+ }
+ }
+
+ return removed;
+ }
+ }
+
+ public enum EjectMethod {
+ STRIKE_ONE, STRIKE_TWO, STRIKE_THREE
+ }
+
+ public static class MethodTimer {
+
+ private long lastStart;
+ private long total = 0;
+
+ public MethodTimer() {
+ }
+
+ public void start() {
+ this.lastStart = System.currentTimeMillis();
+ }
+
+ public void update() {
+ this.total += (System.currentTimeMillis() - this.lastStart);
+ }
+
+ public long getTotal() {
+ return this.total;
+ }
+
+ public void printTotalToLog(String timerName) {
+ Log.info("DEBUG: " + timerName + " used " + this.getTotal() + " ms.");
+ }
+ }
}
From 522915a76a9ae76b487c50a5d9a25c3d8ebde099 Mon Sep 17 00:00:00 2001
From: Luna
Date: Wed, 30 Mar 2022 20:40:07 -0300
Subject: [PATCH 11/13] Merge vanish and coreprotect-switch into main
---
.../commands/Command_gtfo.java | 4 +-
.../commands/Command_rollback.java | 77 -
.../TotalFreedomMod/commands/Commands.java | 213 +-
.../listener/BlockListener.java | 19 -
.../listener/PlayerListener.java | 1755 ++++++++---------
.../world/RollbackManager.java | 316 ---
src/main/resources/plugin.yml | 4 -
7 files changed, 979 insertions(+), 1409 deletions(-)
delete mode 100644 src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_rollback.java
delete mode 100644 src/main/java/me/StevenLawson/TotalFreedomMod/world/RollbackManager.java
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 46a35ca..ec21987 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_gtfo.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_gtfo.java
@@ -5,7 +5,6 @@ import me.StevenLawson.TotalFreedomMod.ban.BanManager;
import me.StevenLawson.TotalFreedomMod.bridge.WorldEditBridge;
import me.StevenLawson.TotalFreedomMod.manager.UUIDManager;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
-import me.StevenLawson.TotalFreedomMod.world.RollbackManager;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.bukkit.ChatColor;
@@ -48,7 +47,8 @@ public class Command_gtfo extends FreedomCommand {
}
// rollback
- RollbackManager.rollback(player.getName());
+ // RollbackManager.rollback(player.getName());
+ // TODO: Use coreprotect API calls
// deop
player.setOp(false);
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_rollback.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_rollback.java
deleted file mode 100644
index 0611a91..0000000
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Command_rollback.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package me.StevenLawson.TotalFreedomMod.commands;
-
-import me.StevenLawson.TotalFreedomMod.util.Utilities;
-import me.StevenLawson.TotalFreedomMod.world.RollbackManager;
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandSender;
-
-@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH, blockHostConsole = true)
-public class Command_rollback 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 ("purgeall".equals(args[0])) {
- Utilities.adminAction(sender.getName(), "Purging all rollback history", false);
- playerMsg(sender, "Purged all rollback history for " + RollbackManager.purgeEntries() + " players.");
- }
- else
- {
- final String playerName = RollbackManager.findPlayer(args[0]);
-
- if (playerName == null)
- {
- playerMsg(sender, "That player has no entries stored.");
- return true;
- }
-
- if (RollbackManager.canUndoRollback(playerName))
- {
- playerMsg(sender, "That player has just been rolled back.");
- }
-
- Utilities.adminAction(sender.getName(), "Rolling back player: " + playerName, false);
- playerMsg(sender, "Rolled back " + RollbackManager.rollback(playerName) + " edits for " + playerName + ".");
- playerMsg(sender, "If this rollback was a mistake, use /rollback undo " + playerName + " within 40 seconds to reverse the rollback.");
- }
- return true;
- }
-
- if (args.length == 2)
- {
- if ("purge".equalsIgnoreCase(args[0]))
- {
- final String playerName = RollbackManager.findPlayer(args[1]);
-
- if (playerName == null)
- {
- playerMsg(sender, "That player has no entries stored.");
- return true;
- }
-
- playerMsg(sender, "Purged " + RollbackManager.purgeEntries(playerName) + " rollback history entries for " + playerName + ".");
- return true;
- }
-
- if ("undo".equalsIgnoreCase(args[0]))
- {
- final String playerName = RollbackManager.findPlayer(args[1]);
-
- if (playerName == null)
- {
- playerMsg(sender, "That player hasn't been rolled back recently.");
- return true;
- }
-
- Utilities.adminAction(sender.getName(), "Reverting rollback for player: " + playerName, false);
- playerMsg(sender, "Reverted " + RollbackManager.undoRollback(playerName) + " edits for " + playerName + ".");
- return true;
- }
- }
-
- return false;
- }
-}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Commands.java b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Commands.java
index 90b0e9d..681bbbd 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Commands.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/commands/Commands.java
@@ -3,112 +3,109 @@ 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("rollback").setExecutor(new Command_rollback());
- 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());
- plugin.getCommand("vanish").setExecutor(new Command_vanish());
- }
+ 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/listener/BlockListener.java b/src/main/java/me/StevenLawson/TotalFreedomMod/listener/BlockListener.java
index c47fc88..61c17f1 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/listener/BlockListener.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/listener/BlockListener.java
@@ -8,7 +8,6 @@ import me.StevenLawson.TotalFreedomMod.player.HeartBeat;
import me.StevenLawson.TotalFreedomMod.player.PlayerData;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import me.StevenLawson.TotalFreedomMod.world.ProtectedArea;
-import me.StevenLawson.TotalFreedomMod.world.RollbackManager;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
@@ -251,24 +250,6 @@ public class BlockListener implements Listener {
}
}
- @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
- public void onRollbackBlockBreak(BlockBreakEvent event)
- {
- if (!AdminList.isSuperAdmin(event.getPlayer()))
- {
- RollbackManager.blockBreak(event);
- }
- }
-
- @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
- public void onRollbackBlockPlace(BlockPlaceEvent event)
- {
- if (!AdminList.isSuperAdmin(event.getPlayer()))
- {
- RollbackManager.blockPlace(event);
- }
- }
-
@EventHandler(priority = EventPriority.HIGH)
public void onBlockFromTo(BlockFromToEvent event)
{
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/listener/PlayerListener.java b/src/main/java/me/StevenLawson/TotalFreedomMod/listener/PlayerListener.java
index 45958c8..294ad4b 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/listener/PlayerListener.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/listener/PlayerListener.java
@@ -1,47 +1,25 @@
package me.StevenLawson.TotalFreedomMod.listener;
-import java.security.SecureRandom;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map.Entry;
-import java.util.Random;
-import java.util.regex.Pattern;
import me.StevenLawson.TotalFreedomMod.Log;
import me.StevenLawson.TotalFreedomMod.Server;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import me.StevenLawson.TotalFreedomMod.admin.AdminList;
import me.StevenLawson.TotalFreedomMod.ban.BanManager;
+import me.StevenLawson.TotalFreedomMod.config.TagConfiguration;
+import me.StevenLawson.TotalFreedomMod.discord.bridge.DiscordBridge;
import me.StevenLawson.TotalFreedomMod.command.CommandBlocker;
-import me.StevenLawson.TotalFreedomMod.commands.Command_doom;
import me.StevenLawson.TotalFreedomMod.commands.Command_landmine;
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
import me.StevenLawson.TotalFreedomMod.config.MainConfig;
-import me.StevenLawson.TotalFreedomMod.config.TagConfiguration;
-import me.StevenLawson.TotalFreedomMod.discord.bridge.DiscordBridge;
import me.StevenLawson.TotalFreedomMod.fun.JumpPads;
-import me.StevenLawson.TotalFreedomMod.manager.UUIDManager;
-import me.StevenLawson.TotalFreedomMod.manager.VanishManager;
-import me.StevenLawson.TotalFreedomMod.player.HeartBeat;
-import me.StevenLawson.TotalFreedomMod.player.Player;
-import me.StevenLawson.TotalFreedomMod.player.PlayerData;
-import me.StevenLawson.TotalFreedomMod.player.PlayerList;
-import me.StevenLawson.TotalFreedomMod.player.PlayerRank;
+import me.StevenLawson.TotalFreedomMod.player.*;
import me.StevenLawson.TotalFreedomMod.util.DeprecationUtil;
import me.StevenLawson.TotalFreedomMod.util.SynchronousUtil;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import me.StevenLawson.TotalFreedomMod.world.AdminWorld;
-import me.StevenLawson.TotalFreedomMod.world.RollbackManager;
-import me.StevenLawson.TotalFreedomMod.world.RollbackManager.RollbackEntry;
import net.md_5.bungee.api.chat.TextComponent;
import org.apache.commons.lang3.StringUtils;
-import org.bukkit.Bukkit;
-import org.bukkit.ChatColor;
-import org.bukkit.GameMode;
-import org.bukkit.Location;
-import org.bukkit.Material;
-import org.bukkit.Sound;
+import org.bukkit.*;
import org.bukkit.block.Block;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.TNTPrimed;
@@ -50,866 +28,877 @@ import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.block.LeavesDecayEvent;
-import org.bukkit.event.player.AsyncPlayerChatEvent;
-import org.bukkit.event.player.AsyncPlayerPreLoginEvent;
-import org.bukkit.event.player.PlayerCommandPreprocessEvent;
-import org.bukkit.event.player.PlayerDropItemEvent;
-import org.bukkit.event.player.PlayerInteractEvent;
-import org.bukkit.event.player.PlayerJoinEvent;
-import org.bukkit.event.player.PlayerKickEvent;
-import org.bukkit.event.player.PlayerLoginEvent;
-import org.bukkit.event.player.PlayerMoveEvent;
-import org.bukkit.event.player.PlayerQuitEvent;
-import org.bukkit.event.player.PlayerTeleportEvent;
+import org.bukkit.event.player.*;
import org.bukkit.inventory.ItemStack;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector;
+import java.util.*;
+import java.util.List;
+import java.util.Map.Entry;
+import java.util.regex.Pattern;
+
public class PlayerListener implements Listener {
-
- public static final List BLOCKED_MUTED_CMDS = Arrays.asList(
- StringUtils.split("say,main.java.me,msg,m,tell,r,reply,mail,email", ","));
- public static final List MOCK_THE_MOLES_FOREVER = Arrays.asList(
- "%s advocates for doxxing of children.", "%s is fat.", "%s has no real friends.",
- "%s's parents don't love them.", "%s doesn't go outside.", "%s doesn't have a life.",
- "%s is a virgin.", "%s wants a cupcake.", "%s glows in the dark.",
- "%s is friends with F_x.", "%s should take a seat.");
- public static final List BY_BEING_A_MOLE_YOU_MOCK_YOURSELF = Arrays.asList(
- "I love kissing children!", "Can I have a cupcake?",
- "Officer, it was just a silly goof! Why aren't you laughing?", "I love MCFreedom!",
- "I love FreedomForever!", "I'm here to collect my cupcake.", "Do you have any cupcakes?",
- "I like pineapple pizza.", "Do you have any pineapple pizza?",
- "I dislike Cherry Pepsi Max.",
- "Guys, did you know my father is getting milk? He hasn't been back for hours, I'm worried...",
- "My wife's boyfriend is a nice guy.", "My wife's boyfriend got me a new Switch!",
- "My wife's boyfriend got me a new PS5!");
- public static final int MSG_PER_HEARTBEAT = 10;
- public static final int DEFAULT_PORT = 25565;
- public static final int MAX_XY_COORD = 30000000;
-
- @EventHandler(priority = EventPriority.HIGH)
- public void onPlayerInteract(PlayerInteractEvent event) {
- final org.bukkit.entity.Player player = event.getPlayer();
- final PlayerData playerdata = PlayerData.getPlayerData(player);
-
- switch (event.getAction()) {
- case RIGHT_CLICK_AIR:
- case RIGHT_CLICK_BLOCK: {
- switch (event.getMaterial()) {
- case WATER_BUCKET: {
- if (ConfigurationEntry.ALLOW_WATER_PLACE.getBoolean()) {
- break;
- }
-
- player.getInventory().setItem(player.getInventory().getHeldItemSlot(),
- new ItemStack(Material.COOKIE, 1));
- player.sendMessage(
- ChatColor.GRAY + "Water buckets are currently disabled.");
- event.setCancelled(true);
- break;
- }
-
- case LAVA_BUCKET: {
- if (ConfigurationEntry.ALLOW_LAVA_PLACE.getBoolean()) {
- break;
- }
-
- player.getInventory().setItem(player.getInventory().getHeldItemSlot(),
- new ItemStack(Material.COOKIE, 1));
- player.sendMessage(ChatColor.GRAY + "Lava buckets are currently disabled.");
- event.setCancelled(true);
- break;
- }
-
- case EXPLOSIVE_MINECART: {
- if (ConfigurationEntry.ALLOW_TNT_MINECARTS.getBoolean()) {
- break;
- }
-
- player.getInventory().clear(player.getInventory().getHeldItemSlot());
- player.sendMessage(
- ChatColor.GRAY + "TNT minecarts are currently disabled.");
- event.setCancelled(true);
- break;
- }
- }
- break;
- }
-
- case LEFT_CLICK_AIR:
- case LEFT_CLICK_BLOCK: {
- switch (event.getMaterial()) {
- case STICK: {
- if (!AdminList.isSuperAdmin(player)) {
- break;
- }
-
- event.setCancelled(true);
-
- final Location location = DeprecationUtil.getTargetBlock(player, null, 5)
- .getLocation();
- final List entries = RollbackManager.getEntriesAtLocation(
- location);
-
- if (entries.isEmpty()) {
- Utilities.playerMsg(player, "No block edits at that location.");
- break;
- }
-
- Utilities.playerMsg(player, "Block edits at ("
- + ChatColor.WHITE + "x" + location.getBlockX()
- + ", y" + location.getBlockY()
- + ", z" + location.getBlockZ()
- + ChatColor.BLUE + ")" + ChatColor.WHITE + ":", ChatColor.BLUE);
- for (RollbackEntry entry : entries) {
- Utilities.playerMsg(player,
- " - " + ChatColor.BLUE + entry.author + " " + entry.getType() + " "
- + StringUtils.capitalize(
- entry.getMaterial().toString().toLowerCase()) + (entry.data == 0
- ? "" : ":" + entry.data));
- }
-
- break;
- }
-
- case BONE: {
- if (!playerdata.mobThrowerEnabled()) {
- break;
- }
-
- Location player_pos = player.getLocation();
- Vector direction = player_pos.getDirection().normalize();
-
- LivingEntity rezzed_mob = (LivingEntity) player.getWorld()
- .spawnEntity(player_pos.add(direction.multiply(2.0)),
- playerdata.mobThrowerCreature());
- rezzed_mob.setVelocity(direction.multiply(playerdata.mobThrowerSpeed()));
- playerdata.enqueueMob(rezzed_mob);
-
- event.setCancelled(true);
- break;
- }
-
- case SULPHUR: {
- if (!playerdata.isMP44Armed()) {
- break;
- }
-
- event.setCancelled(true);
-
- if (playerdata.toggleMP44Firing()) {
- playerdata.startArrowShooter(TotalFreedomMod.plugin);
- } else {
- playerdata.stopArrowShooter();
- }
- break;
- }
-
- case BLAZE_ROD: {
- if (!ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean()) {
- break;
- }
-
- if (!AdminList.isSeniorAdmin(player, true)) {
- break;
- }
-
- event.setCancelled(true);
- Block targetBlock;
-
- if (event.getAction().equals(Action.LEFT_CLICK_AIR)) {
- targetBlock = DeprecationUtil.getTargetBlock(player, null, 120);
- } else {
- targetBlock = event.getClickedBlock();
- }
-
- if (targetBlock == null) {
- player.sendMessage("Can't resolve target block.");
- break;
- }
-
- player.getWorld().createExplosion(targetBlock.getLocation(), 4F, true);
- player.getWorld().strikeLightning(targetBlock.getLocation());
-
- break;
- }
-
- case CARROT: {
- if (!ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean()) {
- break;
- }
-
- if (!AdminList.isSeniorAdmin(player, true)) {
- break;
- }
-
- Location location = player.getLocation().clone();
-
- Vector playerPostion = location.toVector().add(new Vector(0.0, 1.65, 0.0));
- Vector playerDirection = location.getDirection().normalize();
-
- double distance = 150.0;
- Block targetBlock = DeprecationUtil.getTargetBlock(player, null,
- Math.round((float) distance));
- if (targetBlock != null) {
- distance = location.distance(targetBlock.getLocation());
- }
-
- final List affected = new ArrayList();
-
- Block lastBlock = null;
- for (double offset = 0.0; offset <= distance; offset += (distance / 25.0)) {
- Block block = playerPostion.clone()
- .add(playerDirection.clone().multiply(offset))
- .toLocation(player.getWorld()).getBlock();
-
- if (!block.equals(lastBlock)) {
- if (block.isEmpty()) {
- affected.add(block);
- block.setType(Material.TNT);
- } else {
- break;
- }
- }
-
- lastBlock = block;
- }
-
- new BukkitRunnable() {
- @Override
- public void run() {
- for (Block tntBlock : affected) {
- TNTPrimed tnt = tntBlock.getWorld()
- .spawn(tntBlock.getLocation(), TNTPrimed.class);
- tnt.setFuseTicks(5);
- tntBlock.setType(Material.AIR);
- }
- }
- }.runTaskLater(TotalFreedomMod.plugin, 30L);
-
- event.setCancelled(true);
- break;
- }
-
- case RAW_FISH: {
- final int RADIUS_HIT = 5;
- final int STRENGTH = 4;
-
- // Clownfish
- if (DeprecationUtil.getData_MaterialData(event.getItem().getData()) == 2) {
- if (AdminList.isSeniorAdmin(player, true) || AdminList.isTelnetAdmin(
- player, true)) {
- boolean didHit = false;
-
- final Location playerLoc = player.getLocation();
- final Vector playerLocVec = playerLoc.toVector();
-
- final List players = player.getWorld()
- .getPlayers();
- for (final org.bukkit.entity.Player target : players) {
- if (target == player) {
- continue;
- }
-
- final Location targetPos = target.getLocation();
- final Vector targetPosVec = targetPos.toVector();
-
- try {
- if (targetPosVec.distanceSquared(playerLocVec) < (RADIUS_HIT
- * RADIUS_HIT)) {
- Utilities.setFlying(player, false);
- target.setVelocity(
- targetPosVec.subtract(playerLocVec).normalize()
- .multiply(STRENGTH));
- didHit = true;
- }
- } catch (IllegalArgumentException ex) {
- }
- }
-
- if (didHit) {
- final Sound[] sounds = Sound.values();
- for (Sound sound : sounds) {
- if (sound.toString().contains("HIT")) {
- playerLoc.getWorld()
- .playSound(randomOffset(playerLoc, 5.0), sound,
- 100.0f,
- randomDoubleRange(0.5, 2.0).floatValue());
- }
- }
- }
- } else {
- final StringBuilder msg = new StringBuilder();
- final char[] chars = (player.getName()
- + " is a clown.").toCharArray();
- for (char c : chars) {
- msg.append(Utilities.randomChatColor()).append(c);
- }
- Utilities.bcastMsg(msg.toString());
-
- player.getInventory().getItemInHand().setType(Material.POTATO_ITEM);
- }
-
- event.setCancelled(true);
- break;
- }
- }
- }
- break;
- }
- }
- }
-
- 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();
- final PlayerData playerdata = PlayerData.getPlayerData(player);
- // Check absolute value to account for negatives
- if (Math.abs(event.getTo().getX()) >= MAX_XY_COORD
- || Math.abs(event.getTo().getZ()) >= MAX_XY_COORD) {
- event.setCancelled(true); // illegal position, cancel it
- }
-
- if (!AdminList.isSuperAdmin(player) && playerdata.isFrozen()) {
- Utilities.setFlying(player, true);
- event.setTo(playerdata.getFreezeLocation());
- return; // Don't process adminworld validation
- }
-
- AdminWorld.getInstance().validateMovement(event);
- }
-
- @EventHandler(priority = EventPriority.NORMAL)
- public void onPlayerMove(PlayerMoveEvent event) {
- final Location from = event.getFrom();
- final Location to = event.getTo();
- try {
- if (from.getWorld() == to.getWorld() && from.distanceSquared(to) < (0.0001 * 0.0001)) {
- // If player just rotated, but didn't move, don't process this event.
- return;
- }
- } catch (IllegalArgumentException ex) {
- }
-
- if (!AdminWorld.getInstance().validateMovement(event)) {
- return;
- }
-
- final org.bukkit.entity.Player player = event.getPlayer();
- final PlayerData playerdata = PlayerData.getPlayerData(player);
-
- for (Entry fuckoff : TotalFreedomMod.fuckoffEnabledFor.entrySet()) {
- org.bukkit.entity.Player fuckoffPlayer = fuckoff.getKey();
-
- if (fuckoffPlayer.equals(player) || !fuckoffPlayer.isOnline()) {
- continue;
- }
-
- double fuckoffRange = fuckoff.getValue();
-
- Location playerLocation = player.getLocation();
- Location fuckoffLocation = fuckoffPlayer.getLocation();
-
- double distanceSquared;
- try {
- distanceSquared = playerLocation.distanceSquared(fuckoffLocation);
- } catch (IllegalArgumentException ex) {
- continue;
- }
-
- if (distanceSquared < (fuckoffRange * fuckoffRange)) {
- event.setTo(fuckoffLocation.clone().add(
- playerLocation.subtract(fuckoffLocation).toVector().normalize()
- .multiply(fuckoffRange * 1.1)));
- break;
- }
- }
-
- // Freeze
- if (!AdminList.isSuperAdmin(player) && playerdata.isFrozen()) {
- Utilities.setFlying(player, true);
- event.setTo(playerdata.getFreezeLocation());
- }
-
- if (playerdata.isCaged()) {
- Location targetPos = player.getLocation().add(0, 1, 0);
-
- boolean outOfCage;
- if (!targetPos.getWorld().equals(playerdata.getCagePos().getWorld())) {
- outOfCage = true;
- } else {
- outOfCage = targetPos.distanceSquared(playerdata.getCagePos()) > (2.5 * 2.5);
- }
-
- if (outOfCage) {
- playerdata.setCaged(true, targetPos,
- playerdata.getCageMaterial(PlayerData.CageLayer.OUTER),
- playerdata.getCageMaterial(PlayerData.CageLayer.INNER));
- playerdata.regenerateHistory();
- playerdata.clearHistory();
- Utilities.buildHistory(targetPos, 2, playerdata);
- Utilities.generateHollowCube(targetPos, 2,
- playerdata.getCageMaterial(PlayerData.CageLayer.OUTER));
- Utilities.generateCube(targetPos, 1,
- playerdata.getCageMaterial(PlayerData.CageLayer.INNER));
- }
- }
-
- if (playerdata.isOrbiting()) {
- if (player.getVelocity().length() < playerdata.orbitStrength() * (2.0 / 3.0)) {
- player.setVelocity(new Vector(0, playerdata.orbitStrength(), 0));
- }
- }
-
- if (JumpPads.getMode().isOn()) {
- JumpPads.PlayerMoveEvent(event);
- }
-
- if (!(ConfigurationEntry.LANDMINES_ENABLED.getBoolean()
- && ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean())) {
- return;
- }
-
- final Iterator landmines = Command_landmine.TFM_LandmineData.landmines.iterator();
- while (landmines.hasNext()) {
- final Command_landmine.TFM_LandmineData landmine = landmines.next();
-
- final Location location = landmine.location;
- if (location.getBlock().getType() != Material.TNT) {
- landmines.remove();
- continue;
- }
-
- if (landmine.player.equals(player)) {
- break;
- }
-
- if (!player.getWorld().equals(location.getWorld())) {
- continue;
- }
-
- if (!(player.getLocation().distanceSquared(location) <= (landmine.radius
- * landmine.radius))) {
- break;
- }
-
- landmine.location.getBlock().setType(Material.AIR);
-
- final TNTPrimed tnt1 = location.getWorld().spawn(location, TNTPrimed.class);
- tnt1.setFuseTicks(40);
- tnt1.setPassenger(player);
- tnt1.setVelocity(new Vector(0.0, 2.0, 0.0));
-
- final TNTPrimed tnt2 = location.getWorld().spawn(player.getLocation(), TNTPrimed.class);
- tnt2.setFuseTicks(1);
-
- player.setGameMode(GameMode.SURVIVAL);
- landmines.remove();
- }
- }
-
- @EventHandler(priority = EventPriority.NORMAL)
- public void onLeavesDecay(LeavesDecayEvent event) {
- event.setCancelled(true);
- }
-
- @EventHandler(priority = EventPriority.NORMAL)
- public void onPlayerChat(AsyncPlayerChatEvent event) {
- try {
- final org.bukkit.entity.Player player = event.getPlayer();
- String message = event.getMessage().trim();
-
- final PlayerData playerdata = PlayerData.getPlayerDataSync(player);
-
- // Check for spam
- 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.incrementAndGetMsgCount() > MSG_PER_HEARTBEAT) {
- SynchronousUtil.bcastMsg(
- player.getName() + " was automatically kicked for spamming chat.",
- ChatColor.RED);
- SynchronousUtil.autoEject(player, "Kicked for spamming chat.");
-
- playerdata.resetMsgCount();
-
- event.setCancelled(true);
- return;
- }
- }
-
- // Check for message repeat
- if (playerdata.getLastMessage().equalsIgnoreCase(message)) {
- SynchronousUtil.playerMsg(player, "Please do not repeat messages.");
- event.setCancelled(true);
- return;
- }
-
- playerdata.setLastMessage(message);
-
- // Check for muted
- if (playerdata.isMuted()) {
- if (!AdminList.isSuperAdminSync(player)) {
- SynchronousUtil.playerMsg(player,
- ChatColor.RED + "You are muted, STFU! - You will be unmuted in 5 minutes.");
- event.setCancelled(true);
- return;
- }
-
- playerdata.setMuted(false);
- }
-
- // Strip color from messages
- message = ChatColor.stripColor(message);
-
- // Truncate messages that are too long - 100 characters is vanilla client max
- if (message.length() > 100) {
- message = message.substring(0, 100);
- SynchronousUtil.playerMsg(player,
- "Message was shortened because it was too long to send.");
- }
-
- // Check for caps
- if (message.length() >= 6) {
- int caps = 0;
- for (char c : message.toCharArray()) {
- if (Character.isUpperCase(c)) {
- caps++;
- }
- }
- if (((float) caps / (float) message.length())
- > 0.65) //Compute a ratio so that longer sentences can have more caps.
- {
- message = message.toLowerCase();
- }
- }
-
- // Check for adminchat
- if (playerdata.inAdminChat()) {
- SynchronousUtil.adminChatMessage(player, message, false);
- event.setCancelled(true);
- return;
- }
-
- // Finally, set message
- event.setMessage(ChatColor.translateAlternateColorCodes('&', message));
-
- if (message.toLowerCase().contains("molesllc") || message.toLowerCase()
- .contains("moles llc")) {
- SecureRandom secureRandom = new SecureRandom();
- Utilities.bcastMsg(String.format(MOCK_THE_MOLES_FOREVER.get(
- secureRandom.nextInt(MOCK_THE_MOLES_FOREVER.size())),
- player.getName() + ChatColor.RED), ChatColor.RED);
- Command_doom.doom(Bukkit.getConsoleSender(), player);
- event.setMessage(BY_BEING_A_MOLE_YOU_MOCK_YOURSELF.get(
- secureRandom.nextInt(BY_BEING_A_MOLE_YOU_MOCK_YOURSELF.size())));
- return;
- }
-
- // Set the tag
- if (playerdata.getTag() != null) {
- event.setFormat(ChatColor.translateAlternateColorCodes('&',
- MainConfig.getString(ConfigurationEntry.CHAT_FORMAT))
- .replace("{RANK}", playerdata.getTag().replaceAll("%", "%%")));
- }
-
- DiscordBridge.transmitMessage(DiscordBridge.fullySanitizeDiscordMessage(
- String.format(event.getFormat(), event.getPlayer().getDisplayName(),
- event.getMessage())));
- } catch (Exception ex) {
- Log.severe(ex);
- }
- }
-
- @EventHandler(priority = EventPriority.HIGHEST)
- public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) {
- String command = event.getMessage();
- final org.bukkit.entity.Player player = event.getPlayer();
-
- final PlayerData playerdata = PlayerData.getPlayerData(player);
- playerdata.setLastCommand(command);
-
- if (playerdata.incrementAndGetMsgCount() > MSG_PER_HEARTBEAT) {
- Utilities.bcastMsg(
- player.getName() + " was automatically kicked for spamming commands.",
- ChatColor.RED);
- Utilities.autoEject(player, "Kicked for spamming commands.");
-
- playerdata.resetMsgCount();
-
- Utilities.TFM_EntityWiper.wipeEntities(true, true);
-
- event.setCancelled(true);
- return;
- }
-
- if (playerdata.allCommandsBlocked()) {
- Utilities.playerMsg(player, "Your commands have been blocked by an admin.",
- ChatColor.RED);
- event.setCancelled(true);
- return;
- }
-
- // Block commands if player is muted
- if (playerdata.isMuted()) {
- if (!AdminList.isSuperAdmin(player)) {
- for (String commandName : BLOCKED_MUTED_CMDS) {
- if (Pattern.compile("^/" + commandName.toLowerCase() + " ")
- .matcher(command.toLowerCase()).find()) {
- player.sendMessage(
- ChatColor.RED + "That command is blocked while you are muted.");
- event.setCancelled(true);
- return;
- }
- }
- } else {
- playerdata.setMuted(false);
- }
- }
-
- if (ConfigurationEntry.ENABLE_PREPROCESS_LOG.getBoolean()) {
- Log.info(String.format("[PREPROCESS_COMMAND] %s(%s): %s", player.getName(),
- ChatColor.stripColor(player.getDisplayName()), command), true);
- }
-
- // Blocked commands
- if (CommandBlocker.isCommandBlocked(command, player, true)) {
- // CommandBlocker handles messages and broadcasts
- event.setCancelled(true);
- }
-
- if (!AdminList.isSuperAdmin(player)) {
- for (org.bukkit.entity.Player pl : Bukkit.getOnlinePlayers()) {
- if (AdminList.isSuperAdmin(pl) && PlayerData.getPlayerData(pl).cmdspyEnabled()) {
- Utilities.playerMsg(pl, player.getName() + ": " + command);
- }
- }
- }
- }
-
- @EventHandler(priority = EventPriority.NORMAL)
- public void onPlayerDropItem(PlayerDropItemEvent event) {
- if (ConfigurationEntry.AUTO_ENTITY_WIPE.getBoolean()) {
- if (event.getPlayer().getWorld().getEntities().size() > 750) {
- event.setCancelled(true);
- } else {
- event.getItemDrop().remove();
- }
- }
- }
-
- @EventHandler(priority = EventPriority.MONITOR)
- public void onPlayerKick(PlayerKickEvent event) {
- playerLeave(event.getPlayer());
- }
-
- @EventHandler(priority = EventPriority.HIGHEST)
- public void onPlayerQuit(PlayerQuitEvent event) {
- final org.bukkit.entity.Player player = event.getPlayer();
-
- if (VanishManager.isVanished(player)) {
- event.setQuitMessage(null);
- VanishManager.unvanishPlayer(player);
- }
-
- playerLeave(event.getPlayer());
- }
-
- private void playerLeave(org.bukkit.entity.Player player) {
- TotalFreedomMod.fuckoffEnabledFor.remove(player);
-
- final PlayerData playerdata = PlayerData.getPlayerData(player);
-
- playerdata.disarmMP44();
-
- if (playerdata.isCaged()) {
- playerdata.regenerateHistory();
- playerdata.clearHistory();
- }
-
- if (PlayerList.existsEntry(player)) {
- DiscordBridge.transmitMessage(String.format("**%s left the server**",
- DiscordBridge.fullySanitizeDiscordMessage(player.getDisplayName())));
- }
-
- PlayerList.removeEntry(player);
- Log.info("[EXIT] " + player.getName() + " left the game.", true);
-
- }
-
- @EventHandler(priority = EventPriority.HIGHEST)
- public void onPlayerJoin(PlayerJoinEvent event) {
- VanishManager.loadVanishedPlayers(event.getPlayer());
-
- final org.bukkit.entity.Player player = event.getPlayer();
- final String ip = Utilities.getIp(player);
- final Player playerEntry;
- Log.info(
- "[JOIN] " + Utilities.formatPlayer(player) + " joined the game with IP address: " + ip,
- true);
- TextComponent textComponent = new TextComponent(
- String.format("%s is joining with IP %s.", player.getName(), Utilities.getFuzzyIp(ip)));
- textComponent.setColor(ChatColor.GRAY.asBungee());
-
- for (org.bukkit.entity.Player onlinePlayer : Bukkit.getOnlinePlayers()) {
- if (AdminList.isSuperAdmin(player)) {
- onlinePlayer.spigot().sendMessage(textComponent);
- }
- }
-
- DiscordBridge.transmitAdminMessage(
- DiscordBridge.fullySanitizeDiscordMessage(textComponent.getText()));
-
- // Check absolute value to account for negatives
- if (Math.abs(player.getLocation().getX()) >= MAX_XY_COORD
- || Math.abs(player.getLocation().getZ()) >= MAX_XY_COORD) {
- player.teleport(
- player.getWorld().getSpawnLocation()); // Illegal position, teleport to spawn
- }
- // Handle PlayerList entry (persistent)
- if (PlayerList.existsEntry(player)) {
- playerEntry = PlayerList.getEntry(player);
- playerEntry.setLastLoginUnix(Utilities.getUnixTime());
- playerEntry.setLastLoginName(player.getName());
- playerEntry.addIp(ip);
- playerEntry.save();
- } else {
- playerEntry = PlayerList.getEntry(player);
- Log.info("Added new player: " + Utilities.formatPlayer(player));
- }
-
- // Generate PlayerData (non-persistent)
- final PlayerData playerdata = PlayerData.getPlayerData(player);
- playerdata.setSuperadminIdVerified(false);
-
- if (AdminList.isSuperAdmin(player)) {
- for (String storedIp : playerEntry.getIps()) {
- BanManager.unbanIp(storedIp);
- BanManager.unbanIp(Utilities.getFuzzyIp(storedIp));
- }
-
- BanManager.unbanUuid(UUIDManager.getUniqueId(player));
-
- player.setOp(true);
-
- // Verify strict IP match
- if (!AdminList.isIdentityMatched(player)) {
- playerdata.setSuperadminIdVerified(false);
- Utilities.bcastMsg("Warning: " + player.getName()
- + " is an admin, but is using an account not registered to one of their ip-list.",
- ChatColor.RED);
- } else {
- playerdata.setSuperadminIdVerified(true);
- AdminList.updateLastLogin(player);
- }
- }
-
- // Handle admin impostors
- if (AdminList.isAdminImpostor(player)) {
- Utilities.bcastMsg("Warning: " + player.getName()
- + " has been flagged as an impostor and has been frozen!", ChatColor.RED);
-
- player.getInventory().clear();
- player.setOp(false);
- player.setGameMode(GameMode.SURVIVAL);
- PlayerData.getPlayerData(player).setFrozen(true);
- }
-
- // Be the same as vanish
- TextComponent component = Utilities.fromBaseComponents(
- TextComponent.fromLegacyText(
- String.format(net.md_5.bungee.api.ChatColor.AQUA + "%s is %s", player.getName(),
- Utilities.colorize(PlayerRank.getLoginMessage(player)))));
-
- Bukkit.spigot().broadcast(component);
-
- //TODO: Cleanup
- String name = player.getName();
- if (AdminList.isSuperAdmin(player)) {
- if (ConfigurationEntry.SERVER_OWNERS.getList().contains(name)) {
- name = ChatColor.BLUE + name;
- PlayerData.getPlayerData(player).setTag("&8[&9Owner&8]");
- } else if (AdminList.isSeniorAdmin(player)) {
- name = ChatColor.LIGHT_PURPLE + name;
- PlayerData.getPlayerData(player).setTag("&8[&dSenior Admin&8]");
- } else if (AdminList.isTelnetAdmin(player, true)) {
- name = ChatColor.DARK_GREEN + name;
- PlayerData.getPlayerData(player).setTag("&8[&2Telnet Admin&8]");
- } else {
- name = ChatColor.AQUA + name;
- PlayerData.getPlayerData(player).setTag("&8[&BSuper Admin&8]");
- }
-
- if (Utilities.DEVELOPERS.contains(player.getName())) {
- PlayerData.getPlayerData(player)
- .setTag("&8[&5Developer&8] " + PlayerData.getPlayerData(player).getTag());
- }
- } else if (Utilities.DEVELOPERS.contains(player.getName())) {
- name = ChatColor.DARK_PURPLE + name;
- PlayerData.getPlayerData(player).setTag("&8[&5Developer&8]");
- }
-
- try {
- player.setPlayerListName(StringUtils.substring(name, 0, 16));
- } catch (IllegalArgumentException ex) {
- }
-
- new BukkitRunnable() {
- @Override
- public void run() {
- if (ConfigurationEntry.ADMIN_ONLY_MODE.getBoolean()) {
- player.sendMessage(
- ChatColor.RED + "Server is currently closed to non-superadmins.");
- }
-
- if (TotalFreedomMod.lockdownEnabled) {
- Utilities.playerMsg(player,
- "Warning: Server is currenty in lockdown-mode, new players will not be able to join!",
- ChatColor.RED);
- }
- }
- }.runTaskLater(TotalFreedomMod.plugin, 20L * 1L);
-
- if (!player.hasPlayedBefore()) {
- if (Boolean.TRUE.equals(MainConfig.getBoolean(ConfigurationEntry.SERVER_OP_ON_JOIN))) {
- PlayerRank rank = PlayerRank.fromSender(player);
-
- if (rank.equals(PlayerRank.NON_OP)) {
- player.setOp(true);
- }
- }
- }
- if (TagConfiguration.getTag(player.getUniqueId().toString()) != null) {
- String playerTag = TagConfiguration.getTag(player.getUniqueId().toString());
- if (!"".equalsIgnoreCase(playerTag)) {
- PlayerData.getPlayerData(player).setTag(playerTag);
- }
- }
- DiscordBridge.transmitMessage(String.format("**%s joined the server**",
- DiscordBridge.fullySanitizeDiscordMessage(player.getDisplayName())));
- }
-
- @EventHandler(priority = EventPriority.HIGHEST)
- public void onPlayerPreLogin(AsyncPlayerPreLoginEvent event) {
- Server.handlePlayerPreLogin(event);
- }
-
- @EventHandler(priority = EventPriority.HIGHEST)
- public void onPlayerLogin(PlayerLoginEvent event) {
- Server.handlePlayerLogin(event);
- }
+ public static final List BLOCKED_MUTED_CMDS = Arrays.asList(StringUtils.split("say,main.java.me,msg,m,tell,r,reply,mail,email", ","));
+ public static final int MSG_PER_HEARTBEAT = 10;
+ public static final int DEFAULT_PORT = 25565;
+ public static final int MAX_XY_COORD = 30000000;
+
+ @EventHandler(priority = EventPriority.HIGH)
+ public void onPlayerInteract(PlayerInteractEvent event) {
+ final org.bukkit.entity.Player player = event.getPlayer();
+ final PlayerData playerdata = PlayerData.getPlayerData(player);
+
+ switch (event.getAction())
+ {
+ case RIGHT_CLICK_AIR:
+ case RIGHT_CLICK_BLOCK:
+ {
+ switch (event.getMaterial())
+ {
+ case WATER_BUCKET:
+ {
+ if (ConfigurationEntry.ALLOW_WATER_PLACE.getBoolean())
+ {
+ break;
+ }
+
+ player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1));
+ player.sendMessage(ChatColor.GRAY + "Water buckets are currently disabled.");
+ event.setCancelled(true);
+ break;
+ }
+
+ case LAVA_BUCKET:
+ {
+ if (ConfigurationEntry.ALLOW_LAVA_PLACE.getBoolean())
+ {
+ break;
+ }
+
+ player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1));
+ player.sendMessage(ChatColor.GRAY + "Lava buckets are currently disabled.");
+ event.setCancelled(true);
+ break;
+ }
+
+ case EXPLOSIVE_MINECART:
+ {
+ if (ConfigurationEntry.ALLOW_TNT_MINECARTS.getBoolean())
+ {
+ break;
+ }
+
+ player.getInventory().clear(player.getInventory().getHeldItemSlot());
+ player.sendMessage(ChatColor.GRAY + "TNT minecarts are currently disabled.");
+ event.setCancelled(true);
+ break;
+ }
+ }
+ break;
+ }
+
+ case LEFT_CLICK_AIR:
+ case LEFT_CLICK_BLOCK:
+ {
+ switch (event.getMaterial())
+ {
+ case BONE:
+ {
+ if (!playerdata.mobThrowerEnabled())
+ {
+ break;
+ }
+
+ Location player_pos = player.getLocation();
+ Vector direction = player_pos.getDirection().normalize();
+
+ LivingEntity rezzed_mob = (LivingEntity) player.getWorld().spawnEntity(player_pos.add(direction.multiply(2.0)), playerdata.mobThrowerCreature());
+ rezzed_mob.setVelocity(direction.multiply(playerdata.mobThrowerSpeed()));
+ playerdata.enqueueMob(rezzed_mob);
+
+ event.setCancelled(true);
+ break;
+ }
+
+ case SULPHUR:
+ {
+ if (!playerdata.isMP44Armed())
+ {
+ break;
+ }
+
+ event.setCancelled(true);
+
+ if (playerdata.toggleMP44Firing())
+ {
+ playerdata.startArrowShooter(TotalFreedomMod.plugin);
+ }
+ else
+ {
+ playerdata.stopArrowShooter();
+ }
+ break;
+ }
+
+ case BLAZE_ROD:
+ {
+ if (!ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean())
+ {
+ break;
+ }
+
+ if (!AdminList.isSeniorAdmin(player, true))
+ {
+ break;
+ }
+
+ event.setCancelled(true);
+ Block targetBlock;
+
+ if (event.getAction().equals(Action.LEFT_CLICK_AIR))
+ {
+ targetBlock = DeprecationUtil.getTargetBlock(player, null, 120);
+ }
+ else
+ {
+ targetBlock = event.getClickedBlock();
+ }
+
+ if (targetBlock == null)
+ {
+ player.sendMessage("Can't resolve target block.");
+ break;
+ }
+
+ player.getWorld().createExplosion(targetBlock.getLocation(), 4F, true);
+ player.getWorld().strikeLightning(targetBlock.getLocation());
+
+ break;
+ }
+
+ case CARROT:
+ {
+ if (!ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean())
+ {
+ break;
+ }
+
+ if (!AdminList.isSeniorAdmin(player, true))
+ {
+ break;
+ }
+
+ Location location = player.getLocation().clone();
+
+ Vector playerPostion = location.toVector().add(new Vector(0.0, 1.65, 0.0));
+ Vector playerDirection = location.getDirection().normalize();
+
+ double distance = 150.0;
+ Block targetBlock = DeprecationUtil.getTargetBlock(player, null, Math.round((float) distance));
+ if (targetBlock != null)
+ {
+ distance = location.distance(targetBlock.getLocation());
+ }
+
+ final List affected = new ArrayList();
+
+ Block lastBlock = null;
+ for (double offset = 0.0; offset <= distance; offset += (distance / 25.0))
+ {
+ Block block = playerPostion.clone().add(playerDirection.clone().multiply(offset)).toLocation(player.getWorld()).getBlock();
+
+ if (!block.equals(lastBlock))
+ {
+ if (block.isEmpty())
+ {
+ affected.add(block);
+ block.setType(Material.TNT);
+ }
+ else
+ {
+ break;
+ }
+ }
+
+ lastBlock = block;
+ }
+
+ new BukkitRunnable()
+ {
+ @Override
+ public void run()
+ {
+ for (Block tntBlock : affected)
+ {
+ TNTPrimed tnt = tntBlock.getWorld().spawn(tntBlock.getLocation(), TNTPrimed.class);
+ tnt.setFuseTicks(5);
+ tntBlock.setType(Material.AIR);
+ }
+ }
+ }.runTaskLater(TotalFreedomMod.plugin, 30L);
+
+ event.setCancelled(true);
+ break;
+ }
+
+ case RAW_FISH:
+ {
+ final int RADIUS_HIT = 5;
+ final int STRENGTH = 4;
+
+ // Clownfish
+ if (DeprecationUtil.getData_MaterialData(event.getItem().getData()) == 2)
+ {
+ if (AdminList.isSeniorAdmin(player, true) || AdminList.isTelnetAdmin(player, true))
+ {
+ boolean didHit = false;
+
+ final Location playerLoc = player.getLocation();
+ final Vector playerLocVec = playerLoc.toVector();
+
+ final List players = player.getWorld().getPlayers();
+ for (final org.bukkit.entity.Player target : players)
+ {
+ if (target == player)
+ {
+ continue;
+ }
+
+ final Location targetPos = target.getLocation();
+ final Vector targetPosVec = targetPos.toVector();
+
+ try
+ {
+ if (targetPosVec.distanceSquared(playerLocVec) < (RADIUS_HIT * RADIUS_HIT))
+ {
+ Utilities.setFlying(player, false);
+ target.setVelocity(targetPosVec.subtract(playerLocVec).normalize().multiply(STRENGTH));
+ didHit = true;
+ }
+ }
+ catch (IllegalArgumentException ex)
+ {
+ }
+ }
+
+ if (didHit)
+ {
+ final Sound[] sounds = Sound.values();
+ for (Sound sound : sounds)
+ {
+ if (sound.toString().contains("HIT"))
+ {
+ playerLoc.getWorld().playSound(randomOffset(playerLoc, 5.0), sound, 100.0f, randomDoubleRange(0.5, 2.0).floatValue());
+ }
+ }
+ }
+ }
+ else
+ {
+ final StringBuilder msg = new StringBuilder();
+ final char[] chars = (player.getName() + " is a clown.").toCharArray();
+ for (char c : chars)
+ {
+ msg.append(Utilities.randomChatColor()).append(c);
+ }
+ Utilities.bcastMsg(msg.toString());
+
+ player.getInventory().getItemInHand().setType(Material.POTATO_ITEM);
+ }
+
+ event.setCancelled(true);
+ break;
+ }
+ }
+ }
+ break;
+ }
+ }
+ }
+ 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();
+ final PlayerData playerdata = PlayerData.getPlayerData(player);
+ // Check absolute value to account for negatives
+ if (Math.abs(event.getTo().getX()) >= MAX_XY_COORD || Math.abs(event.getTo().getZ()) >= MAX_XY_COORD)
+ {
+ event.setCancelled(true); // illegal position, cancel it
+ }
+
+ if (!AdminList.isSuperAdmin(player) && playerdata.isFrozen())
+ {
+ Utilities.setFlying(player, true);
+ event.setTo(playerdata.getFreezeLocation());
+ return; // Don't process adminworld validation
+ }
+
+ AdminWorld.getInstance().validateMovement(event);
+ }
+
+ @EventHandler(priority = EventPriority.NORMAL)
+ public void onPlayerMove(PlayerMoveEvent event)
+ {
+ final Location from = event.getFrom();
+ final Location to = event.getTo();
+ try
+ {
+ if (from.getWorld() == to.getWorld() && from.distanceSquared(to) < (0.0001 * 0.0001))
+ {
+ // If player just rotated, but didn't move, don't process this event.
+ return;
+ }
+ }
+ catch (IllegalArgumentException ex)
+ {
+ }
+
+ if (!AdminWorld.getInstance().validateMovement(event))
+ {
+ return;
+ }
+
+ final org.bukkit.entity.Player player = event.getPlayer();
+ final PlayerData playerdata = PlayerData.getPlayerData(player);
+
+ for (Entry fuckoff : TotalFreedomMod.fuckoffEnabledFor.entrySet())
+ {
+ org.bukkit.entity.Player fuckoffPlayer = fuckoff.getKey();
+
+ if (fuckoffPlayer.equals(player) || !fuckoffPlayer.isOnline())
+ {
+ continue;
+ }
+
+ double fuckoffRange = fuckoff.getValue();
+
+ Location playerLocation = player.getLocation();
+ Location fuckoffLocation = fuckoffPlayer.getLocation();
+
+ double distanceSquared;
+ try
+ {
+ distanceSquared = playerLocation.distanceSquared(fuckoffLocation);
+ }
+ catch (IllegalArgumentException ex)
+ {
+ continue;
+ }
+
+ if (distanceSquared < (fuckoffRange * fuckoffRange))
+ {
+ event.setTo(fuckoffLocation.clone().add(playerLocation.subtract(fuckoffLocation).toVector().normalize().multiply(fuckoffRange * 1.1)));
+ break;
+ }
+ }
+
+ // Freeze
+ if (!AdminList.isSuperAdmin(player) && playerdata.isFrozen())
+ {
+ Utilities.setFlying(player, true);
+ event.setTo(playerdata.getFreezeLocation());
+ }
+
+ if (playerdata.isCaged())
+ {
+ Location targetPos = player.getLocation().add(0, 1, 0);
+
+ boolean outOfCage;
+ if (!targetPos.getWorld().equals(playerdata.getCagePos().getWorld()))
+ {
+ outOfCage = true;
+ }
+ else
+ {
+ outOfCage = targetPos.distanceSquared(playerdata.getCagePos()) > (2.5 * 2.5);
+ }
+
+ if (outOfCage)
+ {
+ playerdata.setCaged(true, targetPos, playerdata.getCageMaterial(PlayerData.CageLayer.OUTER), playerdata.getCageMaterial(PlayerData.CageLayer.INNER));
+ playerdata.regenerateHistory();
+ playerdata.clearHistory();
+ Utilities.buildHistory(targetPos, 2, playerdata);
+ Utilities.generateHollowCube(targetPos, 2, playerdata.getCageMaterial(PlayerData.CageLayer.OUTER));
+ Utilities.generateCube(targetPos, 1, playerdata.getCageMaterial(PlayerData.CageLayer.INNER));
+ }
+ }
+
+ if (playerdata.isOrbiting())
+ {
+ if (player.getVelocity().length() < playerdata.orbitStrength() * (2.0 / 3.0))
+ {
+ player.setVelocity(new Vector(0, playerdata.orbitStrength(), 0));
+ }
+ }
+
+ if (JumpPads.getMode().isOn())
+ {
+ JumpPads.PlayerMoveEvent(event);
+ }
+
+ if (!(ConfigurationEntry.LANDMINES_ENABLED.getBoolean() && ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean()))
+ {
+ return;
+ }
+
+ final Iterator landmines = Command_landmine.TFM_LandmineData.landmines.iterator();
+ while (landmines.hasNext())
+ {
+ final Command_landmine.TFM_LandmineData landmine = landmines.next();
+
+ final Location location = landmine.location;
+ if (location.getBlock().getType() != Material.TNT)
+ {
+ landmines.remove();
+ continue;
+ }
+
+ if (landmine.player.equals(player))
+ {
+ break;
+ }
+
+ if (!player.getWorld().equals(location.getWorld()))
+ {
+ continue;
+ }
+
+ if (!(player.getLocation().distanceSquared(location) <= (landmine.radius * landmine.radius)))
+ {
+ break;
+ }
+
+ landmine.location.getBlock().setType(Material.AIR);
+
+ final TNTPrimed tnt1 = location.getWorld().spawn(location, TNTPrimed.class);
+ tnt1.setFuseTicks(40);
+ tnt1.setPassenger(player);
+ tnt1.setVelocity(new Vector(0.0, 2.0, 0.0));
+
+ final TNTPrimed tnt2 = location.getWorld().spawn(player.getLocation(), TNTPrimed.class);
+ tnt2.setFuseTicks(1);
+
+ player.setGameMode(GameMode.SURVIVAL);
+ landmines.remove();
+ }
+ }
+
+ @EventHandler(priority = EventPriority.NORMAL)
+ public void onLeavesDecay(LeavesDecayEvent event)
+ {
+ event.setCancelled(true);
+ }
+
+ @EventHandler(priority = EventPriority.NORMAL)
+ public void onPlayerChat(AsyncPlayerChatEvent event)
+ {
+ try
+ {
+ final org.bukkit.entity.Player player = event.getPlayer();
+ String message = event.getMessage().trim();
+
+ final PlayerData playerdata = PlayerData.getPlayerDataSync(player);
+
+ // Check for spam
+ 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.incrementAndGetMsgCount() > MSG_PER_HEARTBEAT)
+ {
+ SynchronousUtil.bcastMsg(player.getName() + " was automatically kicked for spamming chat.", ChatColor.RED);
+ SynchronousUtil.autoEject(player, "Kicked for spamming chat.");
+
+ playerdata.resetMsgCount();
+
+ event.setCancelled(true);
+ return;
+ }
+ }
+
+ // Check for message repeat
+ if (playerdata.getLastMessage().equalsIgnoreCase(message))
+ {
+ SynchronousUtil.playerMsg(player, "Please do not repeat messages.");
+ event.setCancelled(true);
+ return;
+ }
+
+ playerdata.setLastMessage(message);
+
+ // Check for muted
+ if (playerdata.isMuted())
+ {
+ if (!AdminList.isSuperAdminSync(player))
+ {
+ SynchronousUtil.playerMsg(player, ChatColor.RED + "You are muted, STFU! - You will be unmuted in 5 minutes.");
+ event.setCancelled(true);
+ return;
+ }
+
+ playerdata.setMuted(false);
+ }
+
+ // Strip color from messages
+ message = ChatColor.stripColor(message);
+
+ // Truncate messages that are too long - 100 characters is vanilla client max
+ if (message.length() > 100)
+ {
+ message = message.substring(0, 100);
+ SynchronousUtil.playerMsg(player, "Message was shortened because it was too long to send.");
+ }
+
+ // Check for caps
+ if (message.length() >= 6)
+ {
+ int caps = 0;
+ for (char c : message.toCharArray())
+ {
+ if (Character.isUpperCase(c))
+ {
+ caps++;
+ }
+ }
+ if (((float) caps / (float) message.length()) > 0.65) //Compute a ratio so that longer sentences can have more caps.
+ {
+ message = message.toLowerCase();
+ }
+ }
+
+ // Check for adminchat
+ if (playerdata.inAdminChat())
+ {
+ SynchronousUtil.adminChatMessage(player, message, false);
+ event.setCancelled(true);
+ return;
+ }
+
+ // Finally, set message
+ event.setMessage(ChatColor.translateAlternateColorCodes('&', message));
+
+ // Set the tag
+ if (playerdata.getTag() != null) {
+ event.setFormat(ChatColor.translateAlternateColorCodes('&', MainConfig.getString(ConfigurationEntry.CHAT_FORMAT)).replace("{RANK}", playerdata.getTag().replaceAll("%", "%%")));
+ }
+
+ DiscordBridge.transmitMessage(DiscordBridge.fullySanitizeDiscordMessage(String.format(event.getFormat(), event.getPlayer().getDisplayName(), event.getMessage())));
+ }
+ catch (Exception ex)
+ {
+ Log.severe(ex);
+ }
+ }
+
+ @EventHandler(priority = EventPriority.HIGHEST)
+ public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event)
+ {
+ String command = event.getMessage();
+ final org.bukkit.entity.Player player = event.getPlayer();
+
+ final PlayerData playerdata = PlayerData.getPlayerData(player);
+ playerdata.setLastCommand(command);
+
+ if (playerdata.incrementAndGetMsgCount() > MSG_PER_HEARTBEAT)
+ {
+ Utilities.bcastMsg(player.getName() + " was automatically kicked for spamming commands.", ChatColor.RED);
+ Utilities.autoEject(player, "Kicked for spamming commands.");
+
+ playerdata.resetMsgCount();
+
+ Utilities.TFM_EntityWiper.wipeEntities(true, true);
+
+ event.setCancelled(true);
+ return;
+ }
+
+ if (playerdata.allCommandsBlocked())
+ {
+ Utilities.playerMsg(player, "Your commands have been blocked by an admin.", ChatColor.RED);
+ event.setCancelled(true);
+ return;
+ }
+
+ // Block commands if player is muted
+ if (playerdata.isMuted())
+ {
+ if (!AdminList.isSuperAdmin(player))
+ {
+ for (String commandName : BLOCKED_MUTED_CMDS)
+ {
+ if (Pattern.compile("^/" + commandName.toLowerCase() + " ").matcher(command.toLowerCase()).find())
+ {
+ player.sendMessage(ChatColor.RED + "That command is blocked while you are muted.");
+ event.setCancelled(true);
+ return;
+ }
+ }
+ }
+ else
+ {
+ playerdata.setMuted(false);
+ }
+ }
+
+ if (ConfigurationEntry.ENABLE_PREPROCESS_LOG.getBoolean())
+ {
+ Log.info(String.format("[PREPROCESS_COMMAND] %s(%s): %s", player.getName(), ChatColor.stripColor(player.getDisplayName()), command), true);
+ }
+
+ // Blocked commands
+ if (CommandBlocker.isCommandBlocked(command, player, true))
+ {
+ // CommandBlocker handles messages and broadcasts
+ event.setCancelled(true);
+ }
+
+ if (!AdminList.isSuperAdmin(player))
+ {
+ for (org.bukkit.entity.Player pl : Bukkit.getOnlinePlayers())
+ {
+ if (AdminList.isSuperAdmin(pl) && PlayerData.getPlayerData(pl).cmdspyEnabled())
+ {
+ Utilities.playerMsg(pl, player.getName() + ": " + command);
+ }
+ }
+ }
+ }
+
+ @EventHandler(priority = EventPriority.NORMAL)
+ public void onPlayerDropItem(PlayerDropItemEvent event)
+ {
+ if (ConfigurationEntry.AUTO_ENTITY_WIPE.getBoolean())
+ {
+ if (event.getPlayer().getWorld().getEntities().size() > 750)
+ {
+ event.setCancelled(true);
+ }
+ else
+ {
+ event.getItemDrop().remove();
+ }
+ }
+ }
+
+ @EventHandler(priority = EventPriority.MONITOR)
+ public void onPlayerKick(PlayerKickEvent event)
+ {
+ playerLeave(event.getPlayer());
+ }
+
+ @EventHandler(priority = EventPriority.MONITOR)
+ public void onPlayerQuit(PlayerQuitEvent event)
+ {
+ playerLeave(event.getPlayer());
+ }
+
+ private void playerLeave(org.bukkit.entity.Player player)
+ {
+ TotalFreedomMod.fuckoffEnabledFor.remove(player);
+
+ final PlayerData playerdata = PlayerData.getPlayerData(player);
+
+ playerdata.disarmMP44();
+
+ if (playerdata.isCaged()) {
+ playerdata.regenerateHistory();
+ playerdata.clearHistory();
+ }
+
+ if (PlayerList.existsEntry(player)) {
+ DiscordBridge.transmitMessage(String.format("**%s left the server**", DiscordBridge.fullySanitizeDiscordMessage(player.getDisplayName())));
+ }
+
+ PlayerList.removeEntry(player);
+ Log.info("[EXIT] " + player.getName() + " left the game.", true);
+
+ }
+
+ @EventHandler(priority = EventPriority.MONITOR)
+ public void onPlayerJoin(PlayerJoinEvent event)
+ {
+ final org.bukkit.entity.Player player = event.getPlayer();
+ final String ip = Utilities.getIp(player);
+ final Player playerEntry;
+ Log.info("[JOIN] " + Utilities.formatPlayer(player) + " joined the game with IP address: " + ip, true);
+ TextComponent textComponent = new TextComponent(String.format("%s is joining with IP %s.", player.getName(), Utilities.getFuzzyIp(ip)));
+ textComponent.setColor(ChatColor.GRAY.asBungee());
+
+ for (org.bukkit.entity.Player onlinePlayer : Bukkit.getOnlinePlayers())
+ {
+ if (AdminList.isSuperAdmin(player))
+ {
+ onlinePlayer.spigot().sendMessage(textComponent);
+ }
+ }
+
+ DiscordBridge.transmitAdminMessage(DiscordBridge.fullySanitizeDiscordMessage(textComponent.getText()));
+
+ // Check absolute value to account for negatives
+ if (Math.abs(player.getLocation().getX()) >= MAX_XY_COORD || Math.abs(player.getLocation().getZ()) >= MAX_XY_COORD)
+ {
+ player.teleport(player.getWorld().getSpawnLocation()); // Illegal position, teleport to spawn
+ }
+ // Handle PlayerList entry (persistent)
+ if (PlayerList.existsEntry(player))
+ {
+ playerEntry = PlayerList.getEntry(player);
+ playerEntry.setLastLoginUnix(Utilities.getUnixTime());
+ playerEntry.setLastLoginName(player.getName());
+ playerEntry.addIp(ip);
+ playerEntry.save();
+ }
+ else
+ {
+ playerEntry = PlayerList.getEntry(player);
+ Log.info("Added new player: " + Utilities.formatPlayer(player));
+ }
+
+ // Generate PlayerData (non-persistent)
+ final PlayerData playerdata = PlayerData.getPlayerData(player);
+ playerdata.setSuperadminIdVerified(false);
+
+ if (AdminList.isSuperAdmin(player))
+ {
+ for (String storedIp : playerEntry.getIps())
+ {
+ BanManager.unbanIp(storedIp);
+ BanManager.unbanIp(Utilities.getFuzzyIp(storedIp));
+ }
+
+ BanManager.unbanUuid(UUIDManager.getUniqueId(player));
+
+ player.setOp(true);
+
+ // Verify strict IP match
+ if (!AdminList.isIdentityMatched(player))
+ {
+ playerdata.setSuperadminIdVerified(false);
+ Utilities.bcastMsg("Warning: " + player.getName() + " is an admin, but is using an account not registered to one of their ip-list.", ChatColor.RED);
+ }
+ else
+ {
+ playerdata.setSuperadminIdVerified(true);
+ AdminList.updateLastLogin(player);
+ }
+ }
+
+ // Handle admin impostors
+ if (AdminList.isAdminImpostor(player))
+ {
+ Utilities.bcastMsg("Warning: " + player.getName() + " has been flagged as an impostor and has been frozen!", ChatColor.RED);
+ Utilities.bcastMsg(ChatColor.AQUA + player.getName() + " is " + PlayerRank.getLoginMessage(player));
+ player.getInventory().clear();
+ player.setOp(false);
+ player.setGameMode(GameMode.SURVIVAL);
+ PlayerData.getPlayerData(player).setFrozen(true);
+ }
+ else if (AdminList.isSuperAdmin(player) || Utilities.DEVELOPERS.contains(player.getName()))
+ {
+ Utilities.bcastMsg(ChatColor.AQUA + player.getName() + " is " + PlayerRank.getLoginMessage(player));
+ }
+
+ //TODO: Cleanup
+ String name = player.getName();
+ if (AdminList.isSuperAdmin(player))
+ {
+ if (ConfigurationEntry.SERVER_OWNERS.getList().contains(name))
+ {
+ name = ChatColor.BLUE + name;
+ PlayerData.getPlayerData(player).setTag("&8[&9Owner&8]");
+ }
+ else if (AdminList.isSeniorAdmin(player))
+ {
+ name = ChatColor.LIGHT_PURPLE + name;
+ PlayerData.getPlayerData(player).setTag("&8[&dSenior Admin&8]");
+ }
+ else if (AdminList.isTelnetAdmin(player, true))
+ {
+ name = ChatColor.DARK_GREEN + name;
+ PlayerData.getPlayerData(player).setTag("&8[&2Telnet Admin&8]");
+ }
+ else
+ {
+ name = ChatColor.AQUA + name;
+ PlayerData.getPlayerData(player).setTag("&8[&BSuper Admin&8]");
+ }
+
+ if (Utilities.DEVELOPERS.contains(player.getName())) {
+ PlayerData.getPlayerData(player).setTag("&8[&5Developer&8] " + PlayerData.getPlayerData(player).getTag());
+ }
+ } else if (Utilities.DEVELOPERS.contains(player.getName()))
+ {
+ name = ChatColor.DARK_PURPLE + name;
+ PlayerData.getPlayerData(player).setTag("&8[&5Developer&8]");
+ }
+
+ try
+ {
+ player.setPlayerListName(StringUtils.substring(name, 0, 16));
+ }
+ catch (IllegalArgumentException ex)
+ {
+ }
+
+ new BukkitRunnable()
+ {
+ @Override
+ public void run()
+ {
+ if (ConfigurationEntry.ADMIN_ONLY_MODE.getBoolean()) {
+ player.sendMessage(ChatColor.RED + "Server is currently closed to non-superadmins.");
+ }
+
+ if (TotalFreedomMod.lockdownEnabled) {
+ Utilities.playerMsg(player, "Warning: Server is currenty in lockdown-mode, new players will not be able to join!", ChatColor.RED);
+ }
+ }
+ }.runTaskLater(TotalFreedomMod.plugin, 20L * 1L);
+
+ if (!player.hasPlayedBefore()) {
+ if (Boolean.TRUE.equals(MainConfig.getBoolean(ConfigurationEntry.SERVER_OP_ON_JOIN))) {
+ PlayerRank rank = PlayerRank.fromSender(player);
+
+ if (rank.equals(PlayerRank.NON_OP)) {
+ player.setOp(true);
+ }
+ }
+ }
+ if(TagConfiguration.getTag(player.getUniqueId().toString()) != null){
+ String playerTag = TagConfiguration.getTag(player.getUniqueId().toString());
+ if(!"".equalsIgnoreCase(playerTag)){
+ PlayerData.getPlayerData(player).setTag(playerTag);
+ }
+ }
+ DiscordBridge.transmitMessage(String.format("**%s joined the server**", DiscordBridge.fullySanitizeDiscordMessage(player.getDisplayName())));
+ }
+
+ @EventHandler(priority = EventPriority.HIGHEST)
+ public void onPlayerPreLogin(AsyncPlayerPreLoginEvent event)
+ {
+ Server.handlePlayerPreLogin(event);
+ }
+
+ @EventHandler(priority = EventPriority.HIGHEST)
+ public void onPlayerLogin(PlayerLoginEvent event)
+ {
+ Server.handlePlayerLogin(event);
+ }
}
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/world/RollbackManager.java b/src/main/java/me/StevenLawson/TotalFreedomMod/world/RollbackManager.java
deleted file mode 100644
index 48fb097..0000000
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/world/RollbackManager.java
+++ /dev/null
@@ -1,316 +0,0 @@
-package me.StevenLawson.TotalFreedomMod.world;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Map;
-
-import me.StevenLawson.TotalFreedomMod.Log;
-import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
-import me.StevenLawson.TotalFreedomMod.util.DeprecationUtil;
-import org.bukkit.Bukkit;
-import org.bukkit.Location;
-import org.bukkit.Material;
-import org.bukkit.block.Block;
-import org.bukkit.entity.Player;
-import org.bukkit.scheduler.BukkitRunnable;
-
-public class RollbackManager
-{
- private static final Map> PLAYER_HISTORY = new HashMap>();
- private static final List REMOVE_ROLLBACK_HISTORY = new ArrayList();
-
- private RollbackManager()
- {
- throw new AssertionError();
- }
-
- public static void blockPlace(org.bukkit.event.block.BlockPlaceEvent event)
- {
- storeEntry(event.getPlayer(), new RollbackEntry(event.getPlayer().getName(), event.getBlock(), EntryType.BLOCK_PLACE));
- }
-
- public static void blockBreak(org.bukkit.event.block.BlockBreakEvent event)
- {
- storeEntry(event.getPlayer(), new RollbackEntry(event.getPlayer().getName(), event.getBlock(), EntryType.BLOCK_BREAK));
- }
-
- private static void storeEntry(Player player, RollbackEntry entry)
- {
- List playerEntryList = getEntriesByPlayer(player.getName());
-
- if (playerEntryList != null)
- {
- playerEntryList.add(0, entry);
- }
- }
-
- // May return null
- public static String findPlayer(String partial)
- {
- partial = partial.toLowerCase();
-
- for (String player : PLAYER_HISTORY.keySet())
- {
- if (player.toLowerCase().equals(partial))
- {
- return player;
- }
- }
-
- for (String player : PLAYER_HISTORY.keySet())
- {
- if (player.toLowerCase().contains(partial))
- {
- return player;
- }
- }
-
- return null;
- }
-
- public static int purgeEntries()
- {
- Iterator> it = PLAYER_HISTORY.values().iterator();
- while (it.hasNext())
- {
- List playerEntryList = it.next();
- if (playerEntryList != null)
- {
- playerEntryList.clear();
- }
- }
- return PLAYER_HISTORY.size();
- }
-
- public static int purgeEntries(String playerName)
- {
- List playerEntryList = getEntriesByPlayer(playerName);
-
- if (playerEntryList == null)
- {
- return 0;
- }
-
- int count = playerEntryList.size();
- playerEntryList.clear();
- return count;
-
- }
-
- public static boolean canRollback(String playerName)
- {
- return PLAYER_HISTORY.containsKey(playerName.toLowerCase()) && !PLAYER_HISTORY.get(playerName.toLowerCase()).isEmpty();
- }
-
- public static boolean canUndoRollback(String playerName)
- {
- return REMOVE_ROLLBACK_HISTORY.contains(playerName.toLowerCase());
- }
-
- public static int rollback(final String playerName)
- {
- final List entries = getEntriesByPlayer(playerName);
- if (entries == null)
- {
- return 0;
- }
-
- int count = entries.size();
- for (RollbackEntry entry : entries)
- {
- if (entry != null)
- {
- entry.restore();
- }
- }
-
- if (!REMOVE_ROLLBACK_HISTORY.contains(playerName.toLowerCase()))
- {
- REMOVE_ROLLBACK_HISTORY.add(playerName.toLowerCase());
- }
-
- new BukkitRunnable()
- {
- @Override
- public void run()
- {
- if (REMOVE_ROLLBACK_HISTORY.contains(playerName.toLowerCase()))
- {
- REMOVE_ROLLBACK_HISTORY.remove(playerName.toLowerCase());
- purgeEntries(playerName);
- }
- }
- }.runTaskLater(TotalFreedomMod.plugin, 40L * 20L);
- return count;
- }
-
- public static int undoRollback(String playerName)
- {
- final List entries = getEntriesByPlayer(playerName);
-
- if (entries == null)
- {
- return 0;
- }
-
- final int count = entries.size();
-
- final ListIterator it = entries.listIterator(count);
- while (it.hasPrevious())
- {
- RollbackEntry entry = it.previous();
- if (entry != null)
- {
- entry.redo();
- }
- }
-
- REMOVE_ROLLBACK_HISTORY.remove(playerName.toLowerCase());
-
- return count;
- }
-
- public static List getEntriesAtLocation(final Location location)
- {
- final int testX = location.getBlockX();
- final short testY = (short) location.getBlockY();
- final int testZ = location.getBlockZ();
- final String testWorldName = location.getWorld().getName();
-
- List entries = new ArrayList();
- for (String playername : PLAYER_HISTORY.keySet())
- {
- for (RollbackEntry entry : PLAYER_HISTORY.get(playername.toLowerCase()))
- {
- if (testX == entry.x && testY == entry.y && testZ == entry.z && testWorldName.equals(entry.worldName))
- {
- entries.add(0, entry);
- }
- }
- }
-
- return entries;
- }
-
- private static List getEntriesByPlayer(String playerName)
- {
- playerName = playerName.toLowerCase();
- List playerEntryList = PLAYER_HISTORY.get(playerName.toLowerCase());
- if (playerEntryList == null)
- {
- playerEntryList = new ArrayList();
- PLAYER_HISTORY.put(playerName.toLowerCase(), playerEntryList);
- }
- return playerEntryList;
- }
-
- public enum EntryType
- {
- BLOCK_PLACE("placed"),
- BLOCK_BREAK("broke");
- private final String action;
-
- EntryType(String action)
- {
- this.action = action;
- }
-
- @Override
- public String toString()
- {
- return this.action;
- }
- }
-
- public static class RollbackEntry
- {
- // Use of primitives to decrease overhead
- public final String author;
- public final String worldName;
- public final int x;
- public final short y;
- public final int z;
- public final byte data;
- public final Material blockMaterial;
- private final boolean isBreak;
-
- private RollbackEntry(String author, Block block, EntryType entryType)
- {
- final Location location = block.getLocation();
-
- this.x = location.getBlockX();
- this.y = (short) location.getBlockY();
- this.z = location.getBlockZ();
- this.worldName = location.getWorld().getName();
- this.author = author;
-
- if (entryType == EntryType.BLOCK_BREAK)
- {
- this.blockMaterial = block.getType();
- this.data = DeprecationUtil.getData_Block(block);
- this.isBreak = true;
- }
- else
- {
- this.blockMaterial = block.getType();
- this.data = DeprecationUtil.getData_Block(block);
- this.isBreak = false;
- }
- }
-
- public Location getLocation()
- {
- try
- {
- return new Location(Bukkit.getWorld(worldName), x, (int) y, z);
- }
- catch (Exception ex)
- {
- Log.warning("Could not get location of rollback entry at (" + worldName + ":" + x + "," + y + "," + x + ")!");
- }
- return null;
- }
-
- public Material getMaterial()
- {
- return blockMaterial;
- }
-
- public EntryType getType()
- {
- return (isBreak ? EntryType.BLOCK_BREAK : EntryType.BLOCK_PLACE);
- }
-
- public void restore()
- {
- final Block block = Bukkit.getWorld(worldName).getBlockAt(x, y, z);
- if (isBreak)
- {
- block.setType(getMaterial());
- DeprecationUtil.setData_Block(block, data);
- }
- else
- {
- block.setType(Material.AIR);
- }
- }
-
- public void redo()
- {
- final Block block = Bukkit.getWorld(worldName).getBlockAt(x, y, z);
-
- if (isBreak)
- {
- block.setType(Material.AIR);
- }
- else
- {
- block.setType(getMaterial());
- DeprecationUtil.setData_Block(block, data);
- }
- }
- }
-}
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index 29a72b5..564edac 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -287,10 +287,6 @@ commands:
description: 'Mutes a player with brute force.'
usage: '/ [ [-s] | list | purge | all]'
aliases: 'mute'
- rollback:
- description: 'Issues a rollback on a player'
- usage: '/ <[partialname] | undo [partialname] purge [partialname] | purgeall>'
- aliases: 'rb'
nickclean:
description: 'Essentials Interface Command - Remove distracting things from nicknames of all players on server.'
usage: '/'
From 2a0244ddd45124cd33902f7fbb5a67624b3416d5 Mon Sep 17 00:00:00 2001
From: Business Goose
Date: Thu, 31 Mar 2022 03:07:44 +0100
Subject: [PATCH 12/13] Merge vanish & coreprotect-switch into main
---
.../listener/PlayerListener.java | 1720 ++++++++---------
1 file changed, 848 insertions(+), 872 deletions(-)
diff --git a/src/main/java/me/StevenLawson/TotalFreedomMod/listener/PlayerListener.java b/src/main/java/me/StevenLawson/TotalFreedomMod/listener/PlayerListener.java
index 294ad4b..0930080 100644
--- a/src/main/java/me/StevenLawson/TotalFreedomMod/listener/PlayerListener.java
+++ b/src/main/java/me/StevenLawson/TotalFreedomMod/listener/PlayerListener.java
@@ -1,25 +1,45 @@
package me.StevenLawson.TotalFreedomMod.listener;
+import java.security.SecureRandom;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map.Entry;
+import java.util.Random;
+import java.util.regex.Pattern;
import me.StevenLawson.TotalFreedomMod.Log;
import me.StevenLawson.TotalFreedomMod.Server;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import me.StevenLawson.TotalFreedomMod.admin.AdminList;
import me.StevenLawson.TotalFreedomMod.ban.BanManager;
-import me.StevenLawson.TotalFreedomMod.config.TagConfiguration;
-import me.StevenLawson.TotalFreedomMod.discord.bridge.DiscordBridge;
import me.StevenLawson.TotalFreedomMod.command.CommandBlocker;
+import me.StevenLawson.TotalFreedomMod.commands.Command_doom;
import me.StevenLawson.TotalFreedomMod.commands.Command_landmine;
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
import me.StevenLawson.TotalFreedomMod.config.MainConfig;
+import me.StevenLawson.TotalFreedomMod.config.TagConfiguration;
+import me.StevenLawson.TotalFreedomMod.discord.bridge.DiscordBridge;
import me.StevenLawson.TotalFreedomMod.fun.JumpPads;
-import me.StevenLawson.TotalFreedomMod.player.*;
+import me.StevenLawson.TotalFreedomMod.manager.UUIDManager;
+import me.StevenLawson.TotalFreedomMod.manager.VanishManager;
+import me.StevenLawson.TotalFreedomMod.player.HeartBeat;
+import me.StevenLawson.TotalFreedomMod.player.Player;
+import me.StevenLawson.TotalFreedomMod.player.PlayerData;
+import me.StevenLawson.TotalFreedomMod.player.PlayerList;
+import me.StevenLawson.TotalFreedomMod.player.PlayerRank;
import me.StevenLawson.TotalFreedomMod.util.DeprecationUtil;
import me.StevenLawson.TotalFreedomMod.util.SynchronousUtil;
import me.StevenLawson.TotalFreedomMod.util.Utilities;
import me.StevenLawson.TotalFreedomMod.world.AdminWorld;
import net.md_5.bungee.api.chat.TextComponent;
import org.apache.commons.lang3.StringUtils;
-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.Sound;
import org.bukkit.block.Block;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.TNTPrimed;
@@ -28,877 +48,833 @@ import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.block.LeavesDecayEvent;
-import org.bukkit.event.player.*;
+import org.bukkit.event.player.AsyncPlayerChatEvent;
+import org.bukkit.event.player.AsyncPlayerPreLoginEvent;
+import org.bukkit.event.player.PlayerCommandPreprocessEvent;
+import org.bukkit.event.player.PlayerDropItemEvent;
+import org.bukkit.event.player.PlayerInteractEvent;
+import org.bukkit.event.player.PlayerJoinEvent;
+import org.bukkit.event.player.PlayerKickEvent;
+import org.bukkit.event.player.PlayerLoginEvent;
+import org.bukkit.event.player.PlayerMoveEvent;
+import org.bukkit.event.player.PlayerQuitEvent;
+import org.bukkit.event.player.PlayerTeleportEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector;
-import java.util.*;
-import java.util.List;
-import java.util.Map.Entry;
-import java.util.regex.Pattern;
-
public class PlayerListener implements Listener {
- public static final List BLOCKED_MUTED_CMDS = Arrays.asList(StringUtils.split("say,main.java.me,msg,m,tell,r,reply,mail,email", ","));
- public static final int MSG_PER_HEARTBEAT = 10;
- public static final int DEFAULT_PORT = 25565;
- public static final int MAX_XY_COORD = 30000000;
-
- @EventHandler(priority = EventPriority.HIGH)
- public void onPlayerInteract(PlayerInteractEvent event) {
- final org.bukkit.entity.Player player = event.getPlayer();
- final PlayerData playerdata = PlayerData.getPlayerData(player);
-
- switch (event.getAction())
- {
- case RIGHT_CLICK_AIR:
- case RIGHT_CLICK_BLOCK:
- {
- switch (event.getMaterial())
- {
- case WATER_BUCKET:
- {
- if (ConfigurationEntry.ALLOW_WATER_PLACE.getBoolean())
- {
- break;
- }
-
- player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1));
- player.sendMessage(ChatColor.GRAY + "Water buckets are currently disabled.");
- event.setCancelled(true);
- break;
- }
-
- case LAVA_BUCKET:
- {
- if (ConfigurationEntry.ALLOW_LAVA_PLACE.getBoolean())
- {
- break;
- }
-
- player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1));
- player.sendMessage(ChatColor.GRAY + "Lava buckets are currently disabled.");
- event.setCancelled(true);
- break;
- }
-
- case EXPLOSIVE_MINECART:
- {
- if (ConfigurationEntry.ALLOW_TNT_MINECARTS.getBoolean())
- {
- break;
- }
-
- player.getInventory().clear(player.getInventory().getHeldItemSlot());
- player.sendMessage(ChatColor.GRAY + "TNT minecarts are currently disabled.");
- event.setCancelled(true);
- break;
- }
- }
- break;
- }
-
- case LEFT_CLICK_AIR:
- case LEFT_CLICK_BLOCK:
- {
- switch (event.getMaterial())
- {
- case BONE:
- {
- if (!playerdata.mobThrowerEnabled())
- {
- break;
- }
-
- Location player_pos = player.getLocation();
- Vector direction = player_pos.getDirection().normalize();
-
- LivingEntity rezzed_mob = (LivingEntity) player.getWorld().spawnEntity(player_pos.add(direction.multiply(2.0)), playerdata.mobThrowerCreature());
- rezzed_mob.setVelocity(direction.multiply(playerdata.mobThrowerSpeed()));
- playerdata.enqueueMob(rezzed_mob);
-
- event.setCancelled(true);
- break;
- }
-
- case SULPHUR:
- {
- if (!playerdata.isMP44Armed())
- {
- break;
- }
-
- event.setCancelled(true);
-
- if (playerdata.toggleMP44Firing())
- {
- playerdata.startArrowShooter(TotalFreedomMod.plugin);
- }
- else
- {
- playerdata.stopArrowShooter();
- }
- break;
- }
-
- case BLAZE_ROD:
- {
- if (!ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean())
- {
- break;
- }
-
- if (!AdminList.isSeniorAdmin(player, true))
- {
- break;
- }
-
- event.setCancelled(true);
- Block targetBlock;
-
- if (event.getAction().equals(Action.LEFT_CLICK_AIR))
- {
- targetBlock = DeprecationUtil.getTargetBlock(player, null, 120);
- }
- else
- {
- targetBlock = event.getClickedBlock();
- }
-
- if (targetBlock == null)
- {
- player.sendMessage("Can't resolve target block.");
- break;
- }
-
- player.getWorld().createExplosion(targetBlock.getLocation(), 4F, true);
- player.getWorld().strikeLightning(targetBlock.getLocation());
-
- break;
- }
-
- case CARROT:
- {
- if (!ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean())
- {
- break;
- }
-
- if (!AdminList.isSeniorAdmin(player, true))
- {
- break;
- }
-
- Location location = player.getLocation().clone();
-
- Vector playerPostion = location.toVector().add(new Vector(0.0, 1.65, 0.0));
- Vector playerDirection = location.getDirection().normalize();
-
- double distance = 150.0;
- Block targetBlock = DeprecationUtil.getTargetBlock(player, null, Math.round((float) distance));
- if (targetBlock != null)
- {
- distance = location.distance(targetBlock.getLocation());
- }
-
- final List affected = new ArrayList();
-
- Block lastBlock = null;
- for (double offset = 0.0; offset <= distance; offset += (distance / 25.0))
- {
- Block block = playerPostion.clone().add(playerDirection.clone().multiply(offset)).toLocation(player.getWorld()).getBlock();
-
- if (!block.equals(lastBlock))
- {
- if (block.isEmpty())
- {
- affected.add(block);
- block.setType(Material.TNT);
- }
- else
- {
- break;
- }
- }
-
- lastBlock = block;
- }
-
- new BukkitRunnable()
- {
- @Override
- public void run()
- {
- for (Block tntBlock : affected)
- {
- TNTPrimed tnt = tntBlock.getWorld().spawn(tntBlock.getLocation(), TNTPrimed.class);
- tnt.setFuseTicks(5);
- tntBlock.setType(Material.AIR);
- }
- }
- }.runTaskLater(TotalFreedomMod.plugin, 30L);
-
- event.setCancelled(true);
- break;
- }
-
- case RAW_FISH:
- {
- final int RADIUS_HIT = 5;
- final int STRENGTH = 4;
-
- // Clownfish
- if (DeprecationUtil.getData_MaterialData(event.getItem().getData()) == 2)
- {
- if (AdminList.isSeniorAdmin(player, true) || AdminList.isTelnetAdmin(player, true))
- {
- boolean didHit = false;
-
- final Location playerLoc = player.getLocation();
- final Vector playerLocVec = playerLoc.toVector();
-
- final List players = player.getWorld().getPlayers();
- for (final org.bukkit.entity.Player target : players)
- {
- if (target == player)
- {
- continue;
- }
-
- final Location targetPos = target.getLocation();
- final Vector targetPosVec = targetPos.toVector();
-
- try
- {
- if (targetPosVec.distanceSquared(playerLocVec) < (RADIUS_HIT * RADIUS_HIT))
- {
- Utilities.setFlying(player, false);
- target.setVelocity(targetPosVec.subtract(playerLocVec).normalize().multiply(STRENGTH));
- didHit = true;
- }
- }
- catch (IllegalArgumentException ex)
- {
- }
- }
-
- if (didHit)
- {
- final Sound[] sounds = Sound.values();
- for (Sound sound : sounds)
- {
- if (sound.toString().contains("HIT"))
- {
- playerLoc.getWorld().playSound(randomOffset(playerLoc, 5.0), sound, 100.0f, randomDoubleRange(0.5, 2.0).floatValue());
- }
- }
- }
- }
- else
- {
- final StringBuilder msg = new StringBuilder();
- final char[] chars = (player.getName() + " is a clown.").toCharArray();
- for (char c : chars)
- {
- msg.append(Utilities.randomChatColor()).append(c);
- }
- Utilities.bcastMsg(msg.toString());
-
- player.getInventory().getItemInHand().setType(Material.POTATO_ITEM);
- }
-
- event.setCancelled(true);
- break;
- }
- }
- }
- break;
- }
- }
- }
- 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();
- final PlayerData playerdata = PlayerData.getPlayerData(player);
- // Check absolute value to account for negatives
- if (Math.abs(event.getTo().getX()) >= MAX_XY_COORD || Math.abs(event.getTo().getZ()) >= MAX_XY_COORD)
- {
- event.setCancelled(true); // illegal position, cancel it
- }
-
- if (!AdminList.isSuperAdmin(player) && playerdata.isFrozen())
- {
- Utilities.setFlying(player, true);
- event.setTo(playerdata.getFreezeLocation());
- return; // Don't process adminworld validation
- }
-
- AdminWorld.getInstance().validateMovement(event);
- }
-
- @EventHandler(priority = EventPriority.NORMAL)
- public void onPlayerMove(PlayerMoveEvent event)
- {
- final Location from = event.getFrom();
- final Location to = event.getTo();
- try
- {
- if (from.getWorld() == to.getWorld() && from.distanceSquared(to) < (0.0001 * 0.0001))
- {
- // If player just rotated, but didn't move, don't process this event.
- return;
- }
- }
- catch (IllegalArgumentException ex)
- {
- }
-
- if (!AdminWorld.getInstance().validateMovement(event))
- {
- return;
- }
-
- final org.bukkit.entity.Player player = event.getPlayer();
- final PlayerData playerdata = PlayerData.getPlayerData(player);
-
- for (Entry fuckoff : TotalFreedomMod.fuckoffEnabledFor.entrySet())
- {
- org.bukkit.entity.Player fuckoffPlayer = fuckoff.getKey();
-
- if (fuckoffPlayer.equals(player) || !fuckoffPlayer.isOnline())
- {
- continue;
- }
-
- double fuckoffRange = fuckoff.getValue();
-
- Location playerLocation = player.getLocation();
- Location fuckoffLocation = fuckoffPlayer.getLocation();
-
- double distanceSquared;
- try
- {
- distanceSquared = playerLocation.distanceSquared(fuckoffLocation);
- }
- catch (IllegalArgumentException ex)
- {
- continue;
- }
-
- if (distanceSquared < (fuckoffRange * fuckoffRange))
- {
- event.setTo(fuckoffLocation.clone().add(playerLocation.subtract(fuckoffLocation).toVector().normalize().multiply(fuckoffRange * 1.1)));
- break;
- }
- }
-
- // Freeze
- if (!AdminList.isSuperAdmin(player) && playerdata.isFrozen())
- {
- Utilities.setFlying(player, true);
- event.setTo(playerdata.getFreezeLocation());
- }
-
- if (playerdata.isCaged())
- {
- Location targetPos = player.getLocation().add(0, 1, 0);
-
- boolean outOfCage;
- if (!targetPos.getWorld().equals(playerdata.getCagePos().getWorld()))
- {
- outOfCage = true;
- }
- else
- {
- outOfCage = targetPos.distanceSquared(playerdata.getCagePos()) > (2.5 * 2.5);
- }
-
- if (outOfCage)
- {
- playerdata.setCaged(true, targetPos, playerdata.getCageMaterial(PlayerData.CageLayer.OUTER), playerdata.getCageMaterial(PlayerData.CageLayer.INNER));
- playerdata.regenerateHistory();
- playerdata.clearHistory();
- Utilities.buildHistory(targetPos, 2, playerdata);
- Utilities.generateHollowCube(targetPos, 2, playerdata.getCageMaterial(PlayerData.CageLayer.OUTER));
- Utilities.generateCube(targetPos, 1, playerdata.getCageMaterial(PlayerData.CageLayer.INNER));
- }
- }
-
- if (playerdata.isOrbiting())
- {
- if (player.getVelocity().length() < playerdata.orbitStrength() * (2.0 / 3.0))
- {
- player.setVelocity(new Vector(0, playerdata.orbitStrength(), 0));
- }
- }
-
- if (JumpPads.getMode().isOn())
- {
- JumpPads.PlayerMoveEvent(event);
- }
-
- if (!(ConfigurationEntry.LANDMINES_ENABLED.getBoolean() && ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean()))
- {
- return;
- }
-
- final Iterator landmines = Command_landmine.TFM_LandmineData.landmines.iterator();
- while (landmines.hasNext())
- {
- final Command_landmine.TFM_LandmineData landmine = landmines.next();
-
- final Location location = landmine.location;
- if (location.getBlock().getType() != Material.TNT)
- {
- landmines.remove();
- continue;
- }
-
- if (landmine.player.equals(player))
- {
- break;
- }
-
- if (!player.getWorld().equals(location.getWorld()))
- {
- continue;
- }
-
- if (!(player.getLocation().distanceSquared(location) <= (landmine.radius * landmine.radius)))
- {
- break;
- }
-
- landmine.location.getBlock().setType(Material.AIR);
-
- final TNTPrimed tnt1 = location.getWorld().spawn(location, TNTPrimed.class);
- tnt1.setFuseTicks(40);
- tnt1.setPassenger(player);
- tnt1.setVelocity(new Vector(0.0, 2.0, 0.0));
-
- final TNTPrimed tnt2 = location.getWorld().spawn(player.getLocation(), TNTPrimed.class);
- tnt2.setFuseTicks(1);
-
- player.setGameMode(GameMode.SURVIVAL);
- landmines.remove();
- }
- }
-
- @EventHandler(priority = EventPriority.NORMAL)
- public void onLeavesDecay(LeavesDecayEvent event)
- {
- event.setCancelled(true);
- }
-
- @EventHandler(priority = EventPriority.NORMAL)
- public void onPlayerChat(AsyncPlayerChatEvent event)
- {
- try
- {
- final org.bukkit.entity.Player player = event.getPlayer();
- String message = event.getMessage().trim();
-
- final PlayerData playerdata = PlayerData.getPlayerDataSync(player);
-
- // Check for spam
- 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.incrementAndGetMsgCount() > MSG_PER_HEARTBEAT)
- {
- SynchronousUtil.bcastMsg(player.getName() + " was automatically kicked for spamming chat.", ChatColor.RED);
- SynchronousUtil.autoEject(player, "Kicked for spamming chat.");
-
- playerdata.resetMsgCount();
-
- event.setCancelled(true);
- return;
- }
- }
-
- // Check for message repeat
- if (playerdata.getLastMessage().equalsIgnoreCase(message))
- {
- SynchronousUtil.playerMsg(player, "Please do not repeat messages.");
- event.setCancelled(true);
- return;
- }
-
- playerdata.setLastMessage(message);
-
- // Check for muted
- if (playerdata.isMuted())
- {
- if (!AdminList.isSuperAdminSync(player))
- {
- SynchronousUtil.playerMsg(player, ChatColor.RED + "You are muted, STFU! - You will be unmuted in 5 minutes.");
- event.setCancelled(true);
- return;
- }
-
- playerdata.setMuted(false);
- }
-
- // Strip color from messages
- message = ChatColor.stripColor(message);
-
- // Truncate messages that are too long - 100 characters is vanilla client max
- if (message.length() > 100)
- {
- message = message.substring(0, 100);
- SynchronousUtil.playerMsg(player, "Message was shortened because it was too long to send.");
- }
-
- // Check for caps
- if (message.length() >= 6)
- {
- int caps = 0;
- for (char c : message.toCharArray())
- {
- if (Character.isUpperCase(c))
- {
- caps++;
- }
- }
- if (((float) caps / (float) message.length()) > 0.65) //Compute a ratio so that longer sentences can have more caps.
- {
- message = message.toLowerCase();
- }
- }
-
- // Check for adminchat
- if (playerdata.inAdminChat())
- {
- SynchronousUtil.adminChatMessage(player, message, false);
- event.setCancelled(true);
- return;
- }
-
- // Finally, set message
- event.setMessage(ChatColor.translateAlternateColorCodes('&', message));
-
- // Set the tag
- if (playerdata.getTag() != null) {
- event.setFormat(ChatColor.translateAlternateColorCodes('&', MainConfig.getString(ConfigurationEntry.CHAT_FORMAT)).replace("{RANK}", playerdata.getTag().replaceAll("%", "%%")));
- }
-
- DiscordBridge.transmitMessage(DiscordBridge.fullySanitizeDiscordMessage(String.format(event.getFormat(), event.getPlayer().getDisplayName(), event.getMessage())));
- }
- catch (Exception ex)
- {
- Log.severe(ex);
- }
- }
-
- @EventHandler(priority = EventPriority.HIGHEST)
- public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event)
- {
- String command = event.getMessage();
- final org.bukkit.entity.Player player = event.getPlayer();
-
- final PlayerData playerdata = PlayerData.getPlayerData(player);
- playerdata.setLastCommand(command);
-
- if (playerdata.incrementAndGetMsgCount() > MSG_PER_HEARTBEAT)
- {
- Utilities.bcastMsg(player.getName() + " was automatically kicked for spamming commands.", ChatColor.RED);
- Utilities.autoEject(player, "Kicked for spamming commands.");
-
- playerdata.resetMsgCount();
-
- Utilities.TFM_EntityWiper.wipeEntities(true, true);
-
- event.setCancelled(true);
- return;
- }
-
- if (playerdata.allCommandsBlocked())
- {
- Utilities.playerMsg(player, "Your commands have been blocked by an admin.", ChatColor.RED);
- event.setCancelled(true);
- return;
- }
-
- // Block commands if player is muted
- if (playerdata.isMuted())
- {
- if (!AdminList.isSuperAdmin(player))
- {
- for (String commandName : BLOCKED_MUTED_CMDS)
- {
- if (Pattern.compile("^/" + commandName.toLowerCase() + " ").matcher(command.toLowerCase()).find())
- {
- player.sendMessage(ChatColor.RED + "That command is blocked while you are muted.");
- event.setCancelled(true);
- return;
- }
- }
- }
- else
- {
- playerdata.setMuted(false);
- }
- }
-
- if (ConfigurationEntry.ENABLE_PREPROCESS_LOG.getBoolean())
- {
- Log.info(String.format("[PREPROCESS_COMMAND] %s(%s): %s", player.getName(), ChatColor.stripColor(player.getDisplayName()), command), true);
- }
-
- // Blocked commands
- if (CommandBlocker.isCommandBlocked(command, player, true))
- {
- // CommandBlocker handles messages and broadcasts
- event.setCancelled(true);
- }
-
- if (!AdminList.isSuperAdmin(player))
- {
- for (org.bukkit.entity.Player pl : Bukkit.getOnlinePlayers())
- {
- if (AdminList.isSuperAdmin(pl) && PlayerData.getPlayerData(pl).cmdspyEnabled())
- {
- Utilities.playerMsg(pl, player.getName() + ": " + command);
- }
- }
- }
- }
-
- @EventHandler(priority = EventPriority.NORMAL)
- public void onPlayerDropItem(PlayerDropItemEvent event)
- {
- if (ConfigurationEntry.AUTO_ENTITY_WIPE.getBoolean())
- {
- if (event.getPlayer().getWorld().getEntities().size() > 750)
- {
- event.setCancelled(true);
- }
- else
- {
- event.getItemDrop().remove();
- }
- }
- }
-
- @EventHandler(priority = EventPriority.MONITOR)
- public void onPlayerKick(PlayerKickEvent event)
- {
- playerLeave(event.getPlayer());
- }
-
- @EventHandler(priority = EventPriority.MONITOR)
- public void onPlayerQuit(PlayerQuitEvent event)
- {
- playerLeave(event.getPlayer());
- }
-
- private void playerLeave(org.bukkit.entity.Player player)
- {
- TotalFreedomMod.fuckoffEnabledFor.remove(player);
-
- final PlayerData playerdata = PlayerData.getPlayerData(player);
-
- playerdata.disarmMP44();
-
- if (playerdata.isCaged()) {
- playerdata.regenerateHistory();
- playerdata.clearHistory();
- }
-
- if (PlayerList.existsEntry(player)) {
- DiscordBridge.transmitMessage(String.format("**%s left the server**", DiscordBridge.fullySanitizeDiscordMessage(player.getDisplayName())));
- }
-
- PlayerList.removeEntry(player);
- Log.info("[EXIT] " + player.getName() + " left the game.", true);
-
- }
-
- @EventHandler(priority = EventPriority.MONITOR)
- public void onPlayerJoin(PlayerJoinEvent event)
- {
- final org.bukkit.entity.Player player = event.getPlayer();
- final String ip = Utilities.getIp(player);
- final Player playerEntry;
- Log.info("[JOIN] " + Utilities.formatPlayer(player) + " joined the game with IP address: " + ip, true);
- TextComponent textComponent = new TextComponent(String.format("%s is joining with IP %s.", player.getName(), Utilities.getFuzzyIp(ip)));
- textComponent.setColor(ChatColor.GRAY.asBungee());
-
- for (org.bukkit.entity.Player onlinePlayer : Bukkit.getOnlinePlayers())
- {
- if (AdminList.isSuperAdmin(player))
- {
- onlinePlayer.spigot().sendMessage(textComponent);
- }
- }
-
- DiscordBridge.transmitAdminMessage(DiscordBridge.fullySanitizeDiscordMessage(textComponent.getText()));
-
- // Check absolute value to account for negatives
- if (Math.abs(player.getLocation().getX()) >= MAX_XY_COORD || Math.abs(player.getLocation().getZ()) >= MAX_XY_COORD)
- {
- player.teleport(player.getWorld().getSpawnLocation()); // Illegal position, teleport to spawn
- }
- // Handle PlayerList entry (persistent)
- if (PlayerList.existsEntry(player))
- {
- playerEntry = PlayerList.getEntry(player);
- playerEntry.setLastLoginUnix(Utilities.getUnixTime());
- playerEntry.setLastLoginName(player.getName());
- playerEntry.addIp(ip);
- playerEntry.save();
- }
- else
- {
- playerEntry = PlayerList.getEntry(player);
- Log.info("Added new player: " + Utilities.formatPlayer(player));
- }
-
- // Generate PlayerData (non-persistent)
- final PlayerData playerdata = PlayerData.getPlayerData(player);
- playerdata.setSuperadminIdVerified(false);
-
- if (AdminList.isSuperAdmin(player))
- {
- for (String storedIp : playerEntry.getIps())
- {
- BanManager.unbanIp(storedIp);
- BanManager.unbanIp(Utilities.getFuzzyIp(storedIp));
- }
-
- BanManager.unbanUuid(UUIDManager.getUniqueId(player));
-
- player.setOp(true);
-
- // Verify strict IP match
- if (!AdminList.isIdentityMatched(player))
- {
- playerdata.setSuperadminIdVerified(false);
- Utilities.bcastMsg("Warning: " + player.getName() + " is an admin, but is using an account not registered to one of their ip-list.", ChatColor.RED);
- }
- else
- {
- playerdata.setSuperadminIdVerified(true);
- AdminList.updateLastLogin(player);
- }
- }
-
- // Handle admin impostors
- if (AdminList.isAdminImpostor(player))
- {
- Utilities.bcastMsg("Warning: " + player.getName() + " has been flagged as an impostor and has been frozen!", ChatColor.RED);
- Utilities.bcastMsg(ChatColor.AQUA + player.getName() + " is " + PlayerRank.getLoginMessage(player));
- player.getInventory().clear();
- player.setOp(false);
- player.setGameMode(GameMode.SURVIVAL);
- PlayerData.getPlayerData(player).setFrozen(true);
- }
- else if (AdminList.isSuperAdmin(player) || Utilities.DEVELOPERS.contains(player.getName()))
- {
- Utilities.bcastMsg(ChatColor.AQUA + player.getName() + " is " + PlayerRank.getLoginMessage(player));
- }
-
- //TODO: Cleanup
- String name = player.getName();
- if (AdminList.isSuperAdmin(player))
- {
- if (ConfigurationEntry.SERVER_OWNERS.getList().contains(name))
- {
- name = ChatColor.BLUE + name;
- PlayerData.getPlayerData(player).setTag("&8[&9Owner&8]");
- }
- else if (AdminList.isSeniorAdmin(player))
- {
- name = ChatColor.LIGHT_PURPLE + name;
- PlayerData.getPlayerData(player).setTag("&8[&dSenior Admin&8]");
- }
- else if (AdminList.isTelnetAdmin(player, true))
- {
- name = ChatColor.DARK_GREEN + name;
- PlayerData.getPlayerData(player).setTag("&8[&2Telnet Admin&8]");
- }
- else
- {
- name = ChatColor.AQUA + name;
- PlayerData.getPlayerData(player).setTag("&8[&BSuper Admin&8]");
- }
-
- if (Utilities.DEVELOPERS.contains(player.getName())) {
- PlayerData.getPlayerData(player).setTag("&8[&5Developer&8] " + PlayerData.getPlayerData(player).getTag());
- }
- } else if (Utilities.DEVELOPERS.contains(player.getName()))
- {
- name = ChatColor.DARK_PURPLE + name;
- PlayerData.getPlayerData(player).setTag("&8[&5Developer&8]");
- }
-
- try
- {
- player.setPlayerListName(StringUtils.substring(name, 0, 16));
- }
- catch (IllegalArgumentException ex)
- {
- }
-
- new BukkitRunnable()
- {
- @Override
- public void run()
- {
- if (ConfigurationEntry.ADMIN_ONLY_MODE.getBoolean()) {
- player.sendMessage(ChatColor.RED + "Server is currently closed to non-superadmins.");
- }
-
- if (TotalFreedomMod.lockdownEnabled) {
- Utilities.playerMsg(player, "Warning: Server is currenty in lockdown-mode, new players will not be able to join!", ChatColor.RED);
- }
- }
- }.runTaskLater(TotalFreedomMod.plugin, 20L * 1L);
-
- if (!player.hasPlayedBefore()) {
- if (Boolean.TRUE.equals(MainConfig.getBoolean(ConfigurationEntry.SERVER_OP_ON_JOIN))) {
- PlayerRank rank = PlayerRank.fromSender(player);
-
- if (rank.equals(PlayerRank.NON_OP)) {
- player.setOp(true);
- }
- }
- }
- if(TagConfiguration.getTag(player.getUniqueId().toString()) != null){
- String playerTag = TagConfiguration.getTag(player.getUniqueId().toString());
- if(!"".equalsIgnoreCase(playerTag)){
- PlayerData.getPlayerData(player).setTag(playerTag);
- }
- }
- DiscordBridge.transmitMessage(String.format("**%s joined the server**", DiscordBridge.fullySanitizeDiscordMessage(player.getDisplayName())));
- }
-
- @EventHandler(priority = EventPriority.HIGHEST)
- public void onPlayerPreLogin(AsyncPlayerPreLoginEvent event)
- {
- Server.handlePlayerPreLogin(event);
- }
-
- @EventHandler(priority = EventPriority.HIGHEST)
- public void onPlayerLogin(PlayerLoginEvent event)
- {
- Server.handlePlayerLogin(event);
- }
+
+ public static final List BLOCKED_MUTED_CMDS = Arrays.asList(
+ StringUtils.split("say,main.java.me,msg,m,tell,r,reply,mail,email", ","));
+ public static final List MOCK_THE_MOLES_FOREVER = Arrays.asList(
+ "%s advocates for doxxing of children.", "%s is fat.", "%s has no real friends.",
+ "%s's parents don't love them.", "%s doesn't go outside.", "%s doesn't have a life.",
+ "%s is a virgin.", "%s wants a cupcake.", "%s glows in the dark.",
+ "%s is friends with F_x.", "%s should take a seat.");
+ public static final List BY_BEING_A_MOLE_YOU_MOCK_YOURSELF = Arrays.asList(
+ "I love kissing children!", "Can I have a cupcake?",
+ "Officer, it was just a silly goof! Why aren't you laughing?", "I love MCFreedom!",
+ "I love FreedomForever!", "I'm here to collect my cupcake.", "Do you have any cupcakes?",
+ "I like pineapple pizza.", "Do you have any pineapple pizza?",
+ "I dislike Cherry Pepsi Max.",
+ "Guys, did you know my father is getting milk? He hasn't been back for hours, I'm worried...",
+ "My wife's boyfriend is a nice guy.", "My wife's boyfriend got me a new Switch!",
+ "My wife's boyfriend got me a new PS5!");
+ public static final int MSG_PER_HEARTBEAT = 10;
+ public static final int DEFAULT_PORT = 25565;
+ public static final int MAX_XY_COORD = 30000000;
+
+ @EventHandler(priority = EventPriority.HIGH)
+ public void onPlayerInteract(PlayerInteractEvent event) {
+ final org.bukkit.entity.Player player = event.getPlayer();
+ final PlayerData playerdata = PlayerData.getPlayerData(player);
+
+ switch (event.getAction()) {
+ case RIGHT_CLICK_AIR:
+ case RIGHT_CLICK_BLOCK: {
+ switch (event.getMaterial()) {
+ case WATER_BUCKET: {
+ if (ConfigurationEntry.ALLOW_WATER_PLACE.getBoolean()) {
+ break;
+ }
+
+ player.getInventory().setItem(player.getInventory().getHeldItemSlot(),
+ new ItemStack(Material.COOKIE, 1));
+ player.sendMessage(
+ ChatColor.GRAY + "Water buckets are currently disabled.");
+ event.setCancelled(true);
+ break;
+ }
+
+ case LAVA_BUCKET: {
+ if (ConfigurationEntry.ALLOW_LAVA_PLACE.getBoolean()) {
+ break;
+ }
+
+ player.getInventory().setItem(player.getInventory().getHeldItemSlot(),
+ new ItemStack(Material.COOKIE, 1));
+ player.sendMessage(ChatColor.GRAY + "Lava buckets are currently disabled.");
+ event.setCancelled(true);
+ break;
+ }
+
+ case EXPLOSIVE_MINECART: {
+ if (ConfigurationEntry.ALLOW_TNT_MINECARTS.getBoolean()) {
+ break;
+ }
+
+ player.getInventory().clear(player.getInventory().getHeldItemSlot());
+ player.sendMessage(
+ ChatColor.GRAY + "TNT minecarts are currently disabled.");
+ event.setCancelled(true);
+ break;
+ }
+ }
+ break;
+ }
+
+ case LEFT_CLICK_AIR:
+ case LEFT_CLICK_BLOCK: {
+ switch (event.getMaterial()) {
+ case BONE: {
+ if (!playerdata.mobThrowerEnabled()) {
+ break;
+ }
+
+ Location player_pos = player.getLocation();
+ Vector direction = player_pos.getDirection().normalize();
+
+ LivingEntity rezzed_mob = (LivingEntity) player.getWorld()
+ .spawnEntity(player_pos.add(direction.multiply(2.0)),
+ playerdata.mobThrowerCreature());
+ rezzed_mob.setVelocity(direction.multiply(playerdata.mobThrowerSpeed()));
+ playerdata.enqueueMob(rezzed_mob);
+
+ event.setCancelled(true);
+ break;
+ }
+
+ case SULPHUR: {
+ if (!playerdata.isMP44Armed()) {
+ break;
+ }
+
+ event.setCancelled(true);
+
+ if (playerdata.toggleMP44Firing()) {
+ playerdata.startArrowShooter(TotalFreedomMod.plugin);
+ } else {
+ playerdata.stopArrowShooter();
+ }
+ break;
+ }
+
+ case BLAZE_ROD: {
+ if (!ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean()) {
+ break;
+ }
+
+ if (!AdminList.isSeniorAdmin(player, true)) {
+ break;
+ }
+
+ event.setCancelled(true);
+ Block targetBlock;
+
+ if (event.getAction().equals(Action.LEFT_CLICK_AIR)) {
+ targetBlock = DeprecationUtil.getTargetBlock(player, null, 120);
+ } else {
+ targetBlock = event.getClickedBlock();
+ }
+
+ if (targetBlock == null) {
+ player.sendMessage("Can't resolve target block.");
+ break;
+ }
+
+ player.getWorld().createExplosion(targetBlock.getLocation(), 4F, true);
+ player.getWorld().strikeLightning(targetBlock.getLocation());
+
+ break;
+ }
+
+ case CARROT: {
+ if (!ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean()) {
+ break;
+ }
+
+ if (!AdminList.isSeniorAdmin(player, true)) {
+ break;
+ }
+
+ Location location = player.getLocation().clone();
+
+ Vector playerPostion = location.toVector().add(new Vector(0.0, 1.65, 0.0));
+ Vector playerDirection = location.getDirection().normalize();
+
+ double distance = 150.0;
+ Block targetBlock = DeprecationUtil.getTargetBlock(player, null,
+ Math.round((float) distance));
+ if (targetBlock != null) {
+ distance = location.distance(targetBlock.getLocation());
+ }
+
+ final List affected = new ArrayList();
+
+ Block lastBlock = null;
+ for (double offset = 0.0; offset <= distance; offset += (distance / 25.0)) {
+ Block block = playerPostion.clone()
+ .add(playerDirection.clone().multiply(offset))
+ .toLocation(player.getWorld()).getBlock();
+
+ if (!block.equals(lastBlock)) {
+ if (block.isEmpty()) {
+ affected.add(block);
+ block.setType(Material.TNT);
+ } else {
+ break;
+ }
+ }
+
+ lastBlock = block;
+ }
+
+ new BukkitRunnable() {
+ @Override
+ public void run() {
+ for (Block tntBlock : affected) {
+ TNTPrimed tnt = tntBlock.getWorld()
+ .spawn(tntBlock.getLocation(), TNTPrimed.class);
+ tnt.setFuseTicks(5);
+ tntBlock.setType(Material.AIR);
+ }
+ }
+ }.runTaskLater(TotalFreedomMod.plugin, 30L);
+
+ event.setCancelled(true);
+ break;
+ }
+
+ case RAW_FISH: {
+ final int RADIUS_HIT = 5;
+ final int STRENGTH = 4;
+
+ // Clownfish
+ if (DeprecationUtil.getData_MaterialData(event.getItem().getData()) == 2) {
+ if (AdminList.isSeniorAdmin(player, true) || AdminList.isTelnetAdmin(
+ player, true)) {
+ boolean didHit = false;
+
+ final Location playerLoc = player.getLocation();
+ final Vector playerLocVec = playerLoc.toVector();
+
+ final List players = player.getWorld()
+ .getPlayers();
+ for (final org.bukkit.entity.Player target : players) {
+ if (target == player) {
+ continue;
+ }
+
+ final Location targetPos = target.getLocation();
+ final Vector targetPosVec = targetPos.toVector();
+
+ try {
+ if (targetPosVec.distanceSquared(playerLocVec) < (RADIUS_HIT
+ * RADIUS_HIT)) {
+ Utilities.setFlying(player, false);
+ target.setVelocity(
+ targetPosVec.subtract(playerLocVec).normalize()
+ .multiply(STRENGTH));
+ didHit = true;
+ }
+ } catch (IllegalArgumentException ex) {
+ }
+ }
+
+ if (didHit) {
+ final Sound[] sounds = Sound.values();
+ for (Sound sound : sounds) {
+ if (sound.toString().contains("HIT")) {
+ playerLoc.getWorld()
+ .playSound(randomOffset(playerLoc, 5.0), sound,
+ 100.0f,
+ randomDoubleRange(0.5, 2.0).floatValue());
+ }
+ }
+ }
+ } else {
+ final StringBuilder msg = new StringBuilder();
+ final char[] chars = (player.getName()
+ + " is a clown.").toCharArray();
+ for (char c : chars) {
+ msg.append(Utilities.randomChatColor()).append(c);
+ }
+ Utilities.bcastMsg(msg.toString());
+
+ player.getInventory().getItemInHand().setType(Material.POTATO_ITEM);
+ }
+
+ event.setCancelled(true);
+ break;
+ }
+ }
+ }
+ break;
+ }
+ }
+ }
+
+ 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();
+ final PlayerData playerdata = PlayerData.getPlayerData(player);
+ // Check absolute value to account for negatives
+ if (Math.abs(event.getTo().getX()) >= MAX_XY_COORD
+ || Math.abs(event.getTo().getZ()) >= MAX_XY_COORD) {
+ event.setCancelled(true); // illegal position, cancel it
+ }
+
+ if (!AdminList.isSuperAdmin(player) && playerdata.isFrozen()) {
+ Utilities.setFlying(player, true);
+ event.setTo(playerdata.getFreezeLocation());
+ return; // Don't process adminworld validation
+ }
+
+ AdminWorld.getInstance().validateMovement(event);
+ }
+
+ @EventHandler(priority = EventPriority.NORMAL)
+ public void onPlayerMove(PlayerMoveEvent event) {
+ final Location from = event.getFrom();
+ final Location to = event.getTo();
+ try {
+ if (from.getWorld() == to.getWorld() && from.distanceSquared(to) < (0.0001 * 0.0001)) {
+ // If player just rotated, but didn't move, don't process this event.
+ return;
+ }
+ } catch (IllegalArgumentException ex) {
+ }
+
+ if (!AdminWorld.getInstance().validateMovement(event)) {
+ return;
+ }
+
+ final org.bukkit.entity.Player player = event.getPlayer();
+ final PlayerData playerdata = PlayerData.getPlayerData(player);
+
+ for (Entry fuckoff : TotalFreedomMod.fuckoffEnabledFor.entrySet()) {
+ org.bukkit.entity.Player fuckoffPlayer = fuckoff.getKey();
+
+ if (fuckoffPlayer.equals(player) || !fuckoffPlayer.isOnline()) {
+ continue;
+ }
+
+ double fuckoffRange = fuckoff.getValue();
+
+ Location playerLocation = player.getLocation();
+ Location fuckoffLocation = fuckoffPlayer.getLocation();
+
+ double distanceSquared;
+ try {
+ distanceSquared = playerLocation.distanceSquared(fuckoffLocation);
+ } catch (IllegalArgumentException ex) {
+ continue;
+ }
+
+ if (distanceSquared < (fuckoffRange * fuckoffRange)) {
+ event.setTo(fuckoffLocation.clone().add(
+ playerLocation.subtract(fuckoffLocation).toVector().normalize()
+ .multiply(fuckoffRange * 1.1)));
+ break;
+ }
+ }
+
+ // Freeze
+ if (!AdminList.isSuperAdmin(player) && playerdata.isFrozen()) {
+ Utilities.setFlying(player, true);
+ event.setTo(playerdata.getFreezeLocation());
+ }
+
+ if (playerdata.isCaged()) {
+ Location targetPos = player.getLocation().add(0, 1, 0);
+
+ boolean outOfCage;
+ if (!targetPos.getWorld().equals(playerdata.getCagePos().getWorld())) {
+ outOfCage = true;
+ } else {
+ outOfCage = targetPos.distanceSquared(playerdata.getCagePos()) > (2.5 * 2.5);
+ }
+
+ if (outOfCage) {
+ playerdata.setCaged(true, targetPos,
+ playerdata.getCageMaterial(PlayerData.CageLayer.OUTER),
+ playerdata.getCageMaterial(PlayerData.CageLayer.INNER));
+ playerdata.regenerateHistory();
+ playerdata.clearHistory();
+ Utilities.buildHistory(targetPos, 2, playerdata);
+ Utilities.generateHollowCube(targetPos, 2,
+ playerdata.getCageMaterial(PlayerData.CageLayer.OUTER));
+ Utilities.generateCube(targetPos, 1,
+ playerdata.getCageMaterial(PlayerData.CageLayer.INNER));
+ }
+ }
+
+ if (playerdata.isOrbiting()) {
+ if (player.getVelocity().length() < playerdata.orbitStrength() * (2.0 / 3.0)) {
+ player.setVelocity(new Vector(0, playerdata.orbitStrength(), 0));
+ }
+ }
+
+ if (JumpPads.getMode().isOn()) {
+ JumpPads.PlayerMoveEvent(event);
+ }
+
+ if (!(ConfigurationEntry.LANDMINES_ENABLED.getBoolean()
+ && ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean())) {
+ return;
+ }
+
+ final Iterator landmines = Command_landmine.TFM_LandmineData.landmines.iterator();
+ while (landmines.hasNext()) {
+ final Command_landmine.TFM_LandmineData landmine = landmines.next();
+
+ final Location location = landmine.location;
+ if (location.getBlock().getType() != Material.TNT) {
+ landmines.remove();
+ continue;
+ }
+
+ if (landmine.player.equals(player)) {
+ break;
+ }
+
+ if (!player.getWorld().equals(location.getWorld())) {
+ continue;
+ }
+
+ if (!(player.getLocation().distanceSquared(location) <= (landmine.radius
+ * landmine.radius))) {
+ break;
+ }
+
+ landmine.location.getBlock().setType(Material.AIR);
+
+ final TNTPrimed tnt1 = location.getWorld().spawn(location, TNTPrimed.class);
+ tnt1.setFuseTicks(40);
+ tnt1.setPassenger(player);
+ tnt1.setVelocity(new Vector(0.0, 2.0, 0.0));
+
+ final TNTPrimed tnt2 = location.getWorld().spawn(player.getLocation(), TNTPrimed.class);
+ tnt2.setFuseTicks(1);
+
+ player.setGameMode(GameMode.SURVIVAL);
+ landmines.remove();
+ }
+ }
+
+ @EventHandler(priority = EventPriority.NORMAL)
+ public void onLeavesDecay(LeavesDecayEvent event) {
+ event.setCancelled(true);
+ }
+
+ @EventHandler(priority = EventPriority.NORMAL)
+ public void onPlayerChat(AsyncPlayerChatEvent event) {
+ try {
+ final org.bukkit.entity.Player player = event.getPlayer();
+ String message = event.getMessage().trim();
+
+ final PlayerData playerdata = PlayerData.getPlayerDataSync(player);
+
+ // Check for spam
+ 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.incrementAndGetMsgCount() > MSG_PER_HEARTBEAT) {
+ SynchronousUtil.bcastMsg(
+ player.getName() + " was automatically kicked for spamming chat.",
+ ChatColor.RED);
+ SynchronousUtil.autoEject(player, "Kicked for spamming chat.");
+
+ playerdata.resetMsgCount();
+
+ event.setCancelled(true);
+ return;
+ }
+ }
+
+ // Check for message repeat
+ if (playerdata.getLastMessage().equalsIgnoreCase(message)) {
+ SynchronousUtil.playerMsg(player, "Please do not repeat messages.");
+ event.setCancelled(true);
+ return;
+ }
+
+ playerdata.setLastMessage(message);
+
+ // Check for muted
+ if (playerdata.isMuted()) {
+ if (!AdminList.isSuperAdminSync(player)) {
+ SynchronousUtil.playerMsg(player,
+ ChatColor.RED + "You are muted, STFU! - You will be unmuted in 5 minutes.");
+ event.setCancelled(true);
+ return;
+ }
+
+ playerdata.setMuted(false);
+ }
+
+ // Strip color from messages
+ message = ChatColor.stripColor(message);
+
+ // Truncate messages that are too long - 100 characters is vanilla client max
+ if (message.length() > 100) {
+ message = message.substring(0, 100);
+ SynchronousUtil.playerMsg(player,
+ "Message was shortened because it was too long to send.");
+ }
+
+ // Check for caps
+ if (message.length() >= 6) {
+ int caps = 0;
+ for (char c : message.toCharArray()) {
+ if (Character.isUpperCase(c)) {
+ caps++;
+ }
+ }
+ if (((float) caps / (float) message.length())
+ > 0.65) //Compute a ratio so that longer sentences can have more caps.
+ {
+ message = message.toLowerCase();
+ }
+ }
+
+ // Check for adminchat
+ if (playerdata.inAdminChat()) {
+ SynchronousUtil.adminChatMessage(player, message, false);
+ event.setCancelled(true);
+ return;
+ }
+
+ // Finally, set message
+ event.setMessage(ChatColor.translateAlternateColorCodes('&', message));
+
+ if (message.toLowerCase().contains("molesllc") || message.toLowerCase()
+ .contains("moles llc")) {
+ SecureRandom secureRandom = new SecureRandom();
+ Utilities.bcastMsg(String.format(MOCK_THE_MOLES_FOREVER.get(
+ secureRandom.nextInt(MOCK_THE_MOLES_FOREVER.size())),
+ player.getName() + ChatColor.RED), ChatColor.RED);
+ Command_doom.doom(Bukkit.getConsoleSender(), player);
+ event.setMessage(BY_BEING_A_MOLE_YOU_MOCK_YOURSELF.get(
+ secureRandom.nextInt(BY_BEING_A_MOLE_YOU_MOCK_YOURSELF.size())));
+ return;
+ }
+
+ // Set the tag
+ if (playerdata.getTag() != null) {
+ event.setFormat(ChatColor.translateAlternateColorCodes('&',
+ MainConfig.getString(ConfigurationEntry.CHAT_FORMAT))
+ .replace("{RANK}", playerdata.getTag().replaceAll("%", "%%")));
+ }
+
+ DiscordBridge.transmitMessage(DiscordBridge.fullySanitizeDiscordMessage(
+ String.format(event.getFormat(), event.getPlayer().getDisplayName(),
+ event.getMessage())));
+ } catch (Exception ex) {
+ Log.severe(ex);
+ }
+ }
+
+ @EventHandler(priority = EventPriority.HIGHEST)
+ public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) {
+ String command = event.getMessage();
+ final org.bukkit.entity.Player player = event.getPlayer();
+
+ final PlayerData playerdata = PlayerData.getPlayerData(player);
+ playerdata.setLastCommand(command);
+
+ if (playerdata.incrementAndGetMsgCount() > MSG_PER_HEARTBEAT) {
+ Utilities.bcastMsg(
+ player.getName() + " was automatically kicked for spamming commands.",
+ ChatColor.RED);
+ Utilities.autoEject(player, "Kicked for spamming commands.");
+
+ playerdata.resetMsgCount();
+
+ Utilities.TFM_EntityWiper.wipeEntities(true, true);
+
+ event.setCancelled(true);
+ return;
+ }
+
+ if (playerdata.allCommandsBlocked()) {
+ Utilities.playerMsg(player, "Your commands have been blocked by an admin.",
+ ChatColor.RED);
+ event.setCancelled(true);
+ return;
+ }
+
+ // Block commands if player is muted
+ if (playerdata.isMuted()) {
+ if (!AdminList.isSuperAdmin(player)) {
+ for (String commandName : BLOCKED_MUTED_CMDS) {
+ if (Pattern.compile("^/" + commandName.toLowerCase() + " ")
+ .matcher(command.toLowerCase()).find()) {
+ player.sendMessage(
+ ChatColor.RED + "That command is blocked while you are muted.");
+ event.setCancelled(true);
+ return;
+ }
+ }
+ } else {
+ playerdata.setMuted(false);
+ }
+ }
+
+ if (ConfigurationEntry.ENABLE_PREPROCESS_LOG.getBoolean()) {
+ Log.info(String.format("[PREPROCESS_COMMAND] %s(%s): %s", player.getName(),
+ ChatColor.stripColor(player.getDisplayName()), command), true);
+ }
+
+ // Blocked commands
+ if (CommandBlocker.isCommandBlocked(command, player, true)) {
+ // CommandBlocker handles messages and broadcasts
+ event.setCancelled(true);
+ }
+
+ if (!AdminList.isSuperAdmin(player)) {
+ for (org.bukkit.entity.Player pl : Bukkit.getOnlinePlayers()) {
+ if (AdminList.isSuperAdmin(pl) && PlayerData.getPlayerData(pl).cmdspyEnabled()) {
+ Utilities.playerMsg(pl, player.getName() + ": " + command);
+ }
+ }
+ }
+ }
+
+ @EventHandler(priority = EventPriority.NORMAL)
+ public void onPlayerDropItem(PlayerDropItemEvent event) {
+ if (ConfigurationEntry.AUTO_ENTITY_WIPE.getBoolean()) {
+ if (event.getPlayer().getWorld().getEntities().size() > 750) {
+ event.setCancelled(true);
+ } else {
+ event.getItemDrop().remove();
+ }
+ }
+ }
+
+ @EventHandler(priority = EventPriority.MONITOR)
+ public void onPlayerKick(PlayerKickEvent event) {
+ playerLeave(event.getPlayer());
+ }
+
+ @EventHandler(priority = EventPriority.HIGHEST)
+ public void onPlayerQuit(PlayerQuitEvent event) {
+ final org.bukkit.entity.Player player = event.getPlayer();
+
+ if (VanishManager.isVanished(player)) {
+ event.setQuitMessage(null);
+ VanishManager.unvanishPlayer(player);
+ }
+
+ playerLeave(event.getPlayer());
+ }
+
+ private void playerLeave(org.bukkit.entity.Player player) {
+ TotalFreedomMod.fuckoffEnabledFor.remove(player);
+
+ final PlayerData playerdata = PlayerData.getPlayerData(player);
+
+ playerdata.disarmMP44();
+
+ if (playerdata.isCaged()) {
+ playerdata.regenerateHistory();
+ playerdata.clearHistory();
+ }
+
+ if (PlayerList.existsEntry(player)) {
+ DiscordBridge.transmitMessage(String.format("**%s left the server**",
+ DiscordBridge.fullySanitizeDiscordMessage(player.getDisplayName())));
+ }
+
+ PlayerList.removeEntry(player);
+ Log.info("[EXIT] " + player.getName() + " left the game.", true);
+
+ }
+
+ @EventHandler(priority = EventPriority.HIGHEST)
+ public void onPlayerJoin(PlayerJoinEvent event) {
+ VanishManager.loadVanishedPlayers(event.getPlayer());
+
+ final org.bukkit.entity.Player player = event.getPlayer();
+ final String ip = Utilities.getIp(player);
+ final Player playerEntry;
+ Log.info(
+ "[JOIN] " + Utilities.formatPlayer(player) + " joined the game with IP address: " + ip,
+ true);
+ TextComponent textComponent = new TextComponent(
+ String.format("%s is joining with IP %s.", player.getName(), Utilities.getFuzzyIp(ip)));
+ textComponent.setColor(ChatColor.GRAY.asBungee());
+
+ for (org.bukkit.entity.Player onlinePlayer : Bukkit.getOnlinePlayers()) {
+ if (AdminList.isSuperAdmin(player)) {
+ onlinePlayer.spigot().sendMessage(textComponent);
+ }
+ }
+
+ DiscordBridge.transmitAdminMessage(
+ DiscordBridge.fullySanitizeDiscordMessage(textComponent.getText()));
+
+ // Check absolute value to account for negatives
+ if (Math.abs(player.getLocation().getX()) >= MAX_XY_COORD
+ || Math.abs(player.getLocation().getZ()) >= MAX_XY_COORD) {
+ player.teleport(
+ player.getWorld().getSpawnLocation()); // Illegal position, teleport to spawn
+ }
+ // Handle PlayerList entry (persistent)
+ if (PlayerList.existsEntry(player)) {
+ playerEntry = PlayerList.getEntry(player);
+ playerEntry.setLastLoginUnix(Utilities.getUnixTime());
+ playerEntry.setLastLoginName(player.getName());
+ playerEntry.addIp(ip);
+ playerEntry.save();
+ } else {
+ playerEntry = PlayerList.getEntry(player);
+ Log.info("Added new player: " + Utilities.formatPlayer(player));
+ }
+
+ // Generate PlayerData (non-persistent)
+ final PlayerData playerdata = PlayerData.getPlayerData(player);
+ playerdata.setSuperadminIdVerified(false);
+
+ if (AdminList.isSuperAdmin(player)) {
+ for (String storedIp : playerEntry.getIps()) {
+ BanManager.unbanIp(storedIp);
+ BanManager.unbanIp(Utilities.getFuzzyIp(storedIp));
+ }
+
+ BanManager.unbanUuid(UUIDManager.getUniqueId(player));
+
+ player.setOp(true);
+
+ // Verify strict IP match
+ if (!AdminList.isIdentityMatched(player)) {
+ playerdata.setSuperadminIdVerified(false);
+ Utilities.bcastMsg("Warning: " + player.getName()
+ + " is an admin, but is using an account not registered to one of their ip-list.",
+ ChatColor.RED);
+ } else {
+ playerdata.setSuperadminIdVerified(true);
+ AdminList.updateLastLogin(player);
+ }
+ }
+
+ // Handle admin impostors
+ if (AdminList.isAdminImpostor(player)) {
+ Utilities.bcastMsg("Warning: " + player.getName()
+ + " has been flagged as an impostor and has been frozen!", ChatColor.RED);
+
+ player.getInventory().clear();
+ player.setOp(false);
+ player.setGameMode(GameMode.SURVIVAL);
+ PlayerData.getPlayerData(player).setFrozen(true);
+ }
+
+ // Be the same as vanish
+ TextComponent component = Utilities.fromBaseComponents(
+ TextComponent.fromLegacyText(
+ String.format(net.md_5.bungee.api.ChatColor.AQUA + "%s is %s", player.getName(),
+ Utilities.colorize(PlayerRank.getLoginMessage(player)))));
+
+ Bukkit.spigot().broadcast(component);
+
+ //TODO: Cleanup
+ String name = player.getName();
+ if (AdminList.isSuperAdmin(player)) {
+ if (ConfigurationEntry.SERVER_OWNERS.getList().contains(name)) {
+ name = ChatColor.BLUE + name;
+ PlayerData.getPlayerData(player).setTag("&8[&9Owner&8]");
+ } else if (AdminList.isSeniorAdmin(player)) {
+ name = ChatColor.LIGHT_PURPLE + name;
+ PlayerData.getPlayerData(player).setTag("&8[&dSenior Admin&8]");
+ } else if (AdminList.isTelnetAdmin(player, true)) {
+ name = ChatColor.DARK_GREEN + name;
+ PlayerData.getPlayerData(player).setTag("&8[&2Telnet Admin&8]");
+ } else {
+ name = ChatColor.AQUA + name;
+ PlayerData.getPlayerData(player).setTag("&8[&BSuper Admin&8]");
+ }
+
+ if (Utilities.DEVELOPERS.contains(player.getName())) {
+ PlayerData.getPlayerData(player)
+ .setTag("&8[&5Developer&8] " + PlayerData.getPlayerData(player).getTag());
+ }
+ } else if (Utilities.DEVELOPERS.contains(player.getName())) {
+ name = ChatColor.DARK_PURPLE + name;
+ PlayerData.getPlayerData(player).setTag("&8[&5Developer&8]");
+ }
+
+ try {
+ player.setPlayerListName(StringUtils.substring(name, 0, 16));
+ } catch (IllegalArgumentException ex) {
+ }
+
+ new BukkitRunnable() {
+ @Override
+ public void run() {
+ if (ConfigurationEntry.ADMIN_ONLY_MODE.getBoolean()) {
+ player.sendMessage(
+ ChatColor.RED + "Server is currently closed to non-superadmins.");
+ }
+
+ if (TotalFreedomMod.lockdownEnabled) {
+ Utilities.playerMsg(player,
+ "Warning: Server is currenty in lockdown-mode, new players will not be able to join!",
+ ChatColor.RED);
+ }
+ }
+ }.runTaskLater(TotalFreedomMod.plugin, 20L * 1L);
+
+ if (!player.hasPlayedBefore()) {
+ if (Boolean.TRUE.equals(MainConfig.getBoolean(ConfigurationEntry.SERVER_OP_ON_JOIN))) {
+ PlayerRank rank = PlayerRank.fromSender(player);
+
+ if (rank.equals(PlayerRank.NON_OP)) {
+ player.setOp(true);
+ }
+ }
+ }
+ if (TagConfiguration.getTag(player.getUniqueId().toString()) != null) {
+ String playerTag = TagConfiguration.getTag(player.getUniqueId().toString());
+ if (!"".equalsIgnoreCase(playerTag)) {
+ PlayerData.getPlayerData(player).setTag(playerTag);
+ }
+ }
+ DiscordBridge.transmitMessage(String.format("**%s joined the server**",
+ DiscordBridge.fullySanitizeDiscordMessage(player.getDisplayName())));
+ }
+
+ @EventHandler(priority = EventPriority.HIGHEST)
+ public void onPlayerPreLogin(AsyncPlayerPreLoginEvent event) {
+ Server.handlePlayerPreLogin(event);
+ }
+
+ @EventHandler(priority = EventPriority.HIGHEST)
+ public void onPlayerLogin(PlayerLoginEvent event) {
+ Server.handlePlayerLogin(event);
+ }
}
From 4782438bc8d4cd4f0a827aa9590027a5616bef97 Mon Sep 17 00:00:00 2001
From: Business Goose
Date: Thu, 31 Mar 2022 03:10:08 +0100
Subject: [PATCH 13/13] Merge vanish & coreprotect-switch into main
---
.../me/StevenLawson/TotalFreedomMod/Log.java | 148 +-
.../StevenLawson/TotalFreedomMod/Server.java | 404 ++-
.../TotalFreedomMod/TotalFreedomMod.java | 389 ++-
.../TotalFreedomMod/admin/Admin.java | 254 +-
.../TotalFreedomMod/announcer/Announcer.java | 154 +-
.../StevenLawson/TotalFreedomMod/ban/Ban.java | 310 +-
.../TotalFreedomMod/ban/BanManager.java | 422 ++-
.../TotalFreedomMod/ban/PermbanList.java | 84 +-
.../bridge/EssentialsBridge.java | 181 +-
.../bridge/WorldEditBridge.java | 161 +-
.../command/CommandBlocker.java | 467 ++-
.../TotalFreedomMod/commands/AdminLevel.java | 20 +-
.../commands/CommandParameters.java | 8 +-
.../commands/CommandPermissions.java | 10 +-
.../commands/Command_adminmode.java | 48 +-
.../commands/Command_adminworld.java | 332 +-
.../commands/Command_blockcmd.java | 75 +-
.../commands/Command_cage.java | 155 +-
.../commands/Command_cake.java | 56 +-
.../commands/Command_cartsit.java | 105 +-
.../commands/Command_cbtool.java | 295 +-
.../commands/Command_cmdlist.java | 57 +-
.../commands/Command_cmdspy.java | 16 +-
.../commands/Command_colorme.java | 70 +-
.../commands/Command_creative.java | 88 +-
.../commands/Command_csay.java | 17 +-
.../commands/Command_deafen.java | 57 +-
.../commands/Command_debug.java | 148 +-
.../commands/Command_denick.java | 18 +-
.../commands/Command_deop.java | 42 +-
.../commands/Command_deopall.java | 20 +-
.../commands/Command_dispfill.java | 143 +-
.../commands/Command_enchant.java | 168 +-
.../commands/Command_ender.java | 12 +-
.../commands/Command_expel.java | 112 +-
.../commands/Command_findip.java | 44 +-
.../commands/Command_flatlands.java | 20 +-
.../TotalFreedomMod/commands/Command_fr.java | 106 +-
.../commands/Command_fuckoff.java | 55 +-
.../commands/Command_gadmin.java | 299 +-
.../commands/Command_glist.java | 172 +-
.../commands/Command_gtfo.java | 127 +-
.../commands/Command_halt.java | 144 +-
.../commands/Command_health.java | 139 +-
.../commands/Command_invis.java | 82 +-
.../commands/Command_jumppads.java | 132 +-
.../commands/Command_kicknoob.java | 22 +-
.../commands/Command_landmine.java | 110 +-
.../commands/Command_lastcmd.java | 44 +-
.../commands/Command_list.java | 135 +-
.../commands/Command_localspawn.java | 15 +-
.../commands/Command_lockup.java | 165 +-
.../commands/Command_logs.java | 229 +-
.../commands/Command_moblimiter.java | 117 +-
.../TotalFreedomMod/commands/Command_mp.java | 50 +-
.../commands/Command_mp44.java | 49 +-
.../commands/Command_nether.java | 12 +-
.../TotalFreedomMod/commands/Command_nf.java | 155 +-
.../commands/Command_nickclean.java | 57 +-
.../commands/Command_nicknyan.java | 84 +-
.../TotalFreedomMod/commands/Command_o.java | 35 +-
.../commands/Command_offlinetp.java | 71 +-
.../commands/Command_onlinemode.java | 85 +-
.../TotalFreedomMod/commands/Command_op.java | 67 +-
.../commands/Command_opall.java | 52 +-
.../commands/Command_opme.java | 16 +-
.../TotalFreedomMod/commands/Command_ops.java | 76 +-
.../commands/Command_orbit.java | 69 +-
.../commands/Command_overlord.java | 86 +-
.../commands/Command_permban.java | 83 +-
.../commands/Command_plugincontrol.java | 205 +-
.../commands/Command_potion.java | 258 +-
.../commands/Command_premium.java | 80 +-
.../commands/Command_protectarea.java | 131 +-
.../commands/Command_purgeall.java | 97 +-
.../commands/Command_qdeop.java | 74 +-
.../TotalFreedomMod/commands/Command_qop.java | 74 +-
.../commands/Command_radar.java | 150 +-
.../commands/Command_rank.java | 56 +-
.../commands/Command_rawsay.java | 16 +-
.../TotalFreedomMod/commands/Command_rd.java | 15 +-
.../commands/Command_report.java | 55 +-
.../commands/Command_resetplayer.java | 82 +-
.../TotalFreedomMod/commands/Command_ro.java | 171 +-
.../commands/Command_saconfig.java | 413 ++-
.../TotalFreedomMod/commands/Command_say.java | 43 +-
.../commands/Command_setl.java | 19 +-
.../commands/Command_setlevel.java | 50 +-
.../commands/Command_setlever.java | 97 +-
.../commands/Command_setspawnworld.java | 25 +-
.../commands/Command_smite.java | 72 +-
.../commands/Command_spectator.java | 69 +-
.../commands/Command_status.java | 51 +-
.../commands/Command_stfu.java | 161 +-
.../commands/Command_stop.java | 20 +-
.../commands/Command_survival.java | 92 +-
.../TotalFreedomMod/commands/Command_tag.java | 343 +-
.../commands/Command_tagnyan.java | 31 +-
.../commands/Command_tban.java | 63 +-
.../commands/Command_tempban.java | 96 +-
.../commands/Command_tfbanlist.java | 49 +-
.../commands/Command_tfipbanlist.java | 49 +-
.../TotalFreedomMod/commands/Command_tfm.java | 80 +-
.../commands/Command_toggle.java | 240 +-
.../commands/Command_tossmob.java | 114 +-
.../commands/Command_trail.java | 171 +-
.../commands/Command_updatetfm.java | 58 +-
.../commands/Command_warn.java | 57 +-
.../commands/Command_whitelist.java | 240 +-
.../commands/Command_whoami.java | 12 +-
.../commands/Command_whohas.java | 87 +-
.../commands/Command_wildcard.java | 79 +-
.../commands/Command_wipeflatlands.java | 23 +-
.../commands/Command_wipeuserdata.java | 29 +-
.../TotalFreedomMod/commands/Commands.java | 211 +-
.../commands/FreedomCommand.java | 284 +-
.../TotalFreedomMod/commands/SourceType.java | 5 +-
.../TotalFreedomMod/config/Configuration.java | 280 +-
.../config/ConfigurationEntry.java | 309 +-
.../TotalFreedomMod/config/MainConfig.java | 469 ++-
.../config/TagConfiguration.java | 69 +-
.../deprecated/bridge/BukkitTelnetBridge.java | 100 +-
.../deprecated/twitter/TwitterHandler.java | 168 +-
.../discord/bridge/DiscordBridge.java | 383 +--
.../discord/command/DiscordCommand.java | 36 +-
.../command/DiscordCommandManager.java | 82 +-
.../command/ExecutableDiscordCommand.java | 108 +-
.../discord/commands/AdminConsoleCommand.java | 54 +-
.../discord/commands/HelpCommand.java | 70 +-
.../discord/commands/ListCommand.java | 18 +-
.../discord/commands/TPSCommand.java | 34 +-
.../discord/commands/UptimeCommand.java | 62 +-
.../discord/sender/DiscordCommandSender.java | 166 +-
.../exception/PenisException.java | 11 +-
.../TotalFreedomMod/fun/JumpPads.java | 187 +-
.../gamerule/GameRuleHandler.java | 172 +-
.../httpd/HTMLGenerationTools.java | 74 +-
.../httpd/HTTPDFileModule.java | 611 ++--
.../httpd/HTTPDHelpModule.java | 178 +-
.../httpd/HTTPDListModule.java | 90 +-
.../TotalFreedomMod/httpd/HTTPDManager.java | 415 ++-
.../TotalFreedomMod/httpd/HTTPDModule.java | 93 +-
.../httpd/HTTPDPageBuilder.java | 109 +-
.../httpd/HTTPDPermanentBansModule.java | 35 +-
.../httpd/HTTPDPlayersModule.java | 116 +-
.../httpd/HTTPDSchematicModule.java | 458 ++-
.../TotalFreedomMod/httpd/HTTPDumpModule.java | 155 +-
.../TotalFreedomMod/httpd/LogFileModule.java | 30 +-
.../TotalFreedomMod/httpd/NanoHTTPD.java | 2782 ++++++++---------
.../listener/BlockListener.java | 393 ++-
.../listener/EntityListener.java | 284 +-
.../listener/PlayerListener.java | 25 +-
.../listener/ServerListener.java | 69 +-
.../listener/WeatherListener.java | 64 +-
.../listener/WorldEditListener.java | 72 +-
.../TotalFreedomMod/manager/UUIDManager.java | 16 +-
.../TotalFreedomMod/player/HeartBeat.java | 126 +-
.../TotalFreedomMod/player/Player.java | 196 +-
.../TotalFreedomMod/player/PlayerData.java | 1051 +++----
.../TotalFreedomMod/player/PlayerList.java | 254 +-
.../TotalFreedomMod/player/PlayerRank.java | 288 +-
.../TotalFreedomMod/sql/SQLiteDatabase.java | 198 +-
.../TotalFreedomMod/util/DeprecationUtil.java | 75 +-
.../TotalFreedomMod/util/SQLUtil.java | 139 +-
.../TotalFreedomMod/util/SynchronousUtil.java | 99 +-
.../TotalFreedomMod/util/Utilities.java | 14 +-
.../TotalFreedomMod/world/AdminWorld.java | 528 ++--
.../world/CleanroomBlockPopulator.java | 54 +-
.../world/CleanroomChunkGenerator.java | 342 +-
.../TotalFreedomMod/world/CustomWorld.java | 47 +-
.../TotalFreedomMod/world/FlatlandsWorld.java | 131 +-
.../TotalFreedomMod/world/ProtectedArea.java | 498 ++-
src/main/java/me/husky/Database.java | 75 +-
src/main/java/me/husky/mysql/MySQL.java | 226 +-
src/main/java/me/husky/sqlite/SQLite.java | 140 +-
src/main/resources/permban.yml | 8 +-
src/main/resources/superadmin.yml | 4 +-
177 files changed, 12395 insertions(+), 14092 deletions(-)
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