diff --git a/.idea/misc.xml b/.idea/misc.xml
index 43612005..be85aa37 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,5 +1,10 @@
+
+
+
+
+
-
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 39d73362..7015c4d7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
me.totalfreedom
TotalFreedomMod
- 5.6
+ 2020.9
jar
@@ -104,6 +104,11 @@
rayzr-repo
https://cdn.rawgit.com/Rayzr522/maven-repo/master/
+
+
+ ess-repo
+ https://ci.ender.zone/plugin/repository/everything/
+
@@ -117,14 +122,14 @@
commons-io
commons-io
- 2.6
+ 2.7
compile
org.apache.commons
commons-lang3
- 3.9
+ 3.11
compile
@@ -153,6 +158,7 @@
com.github.TFPatches
TF-LibsDisguises
0cfa32159a
+ provided
@@ -165,28 +171,28 @@
net.ess3
EssentialsX
- 2.16.1
+ 2.18.0
provided
net.dv8tion
JDA
- 4.0.0_39
+ 4.2.0_168
provided
net.coreprotect
coreprotect
- 2.16.3
+ 2.18.2
provided
com.sk89q.worldguard
worldguard-bukkit
- 7.0.2
+ 7.0.3
provided
@@ -201,6 +207,7 @@
me.rayzr522
jsonmessage
1.0.0
+ compile
@@ -237,9 +244,10 @@
- com.github.speedxx
+ com.github.TFPatches
TFGuilds
- master
+ ad93b9ed00
+ provided
@@ -247,6 +255,13 @@
maven-checkstyle-plugin
3.1.1
+
+
+ net.dean.jraw
+ JRAW
+ 1.1.0
+ provided
+
@@ -331,7 +346,8 @@
-
+
+
@@ -407,6 +423,7 @@
commons-codec:commons-codec
org.reflections:reflections
javassist:javassist
+ me.rayzr522:jsonmessage
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/AMP.java b/src/main/java/me/totalfreedom/totalfreedommod/AMP.java
new file mode 100644
index 00000000..3bf1de6c
--- /dev/null
+++ b/src/main/java/me/totalfreedom/totalfreedommod/AMP.java
@@ -0,0 +1,187 @@
+package me.totalfreedom.totalfreedommod;
+
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.List;
+import joptsimple.internal.Strings;
+import lombok.Getter;
+import me.totalfreedom.totalfreedommod.config.ConfigEntry;
+import me.totalfreedom.totalfreedommod.rank.Rank;
+import me.totalfreedom.totalfreedommod.staff.StaffMember;
+import me.totalfreedom.totalfreedommod.util.FLog;
+import me.totalfreedom.totalfreedommod.util.FUtil;
+import org.json.simple.JSONObject;
+import org.json.simple.parser.JSONParser;
+import org.json.simple.parser.ParseException;
+
+public class AMP extends FreedomService
+{
+
+ public String URL = ConfigEntry.AMP_URL.getString();
+ private String API_URL = URL + "/API/Core";
+ private String USERNAME = ConfigEntry.AMP_USERNAME.getString();
+ private String PASSWORD = ConfigEntry.AMP_PASSWORD.getString();
+ private String SESSION_ID;
+
+ @Getter
+ private boolean enabled = !Strings.isNullOrEmpty(URL);
+
+ private final List headers = Arrays.asList("Accept:application/json");
+
+ public void onStart()
+ {
+ if (enabled)
+ {
+ login();
+ }
+ }
+
+ public void onStop()
+ {
+ if (enabled)
+ {
+ logout();
+ }
+ }
+
+ public void login()
+ {
+ JSONObject json = new JSONObject();
+ json.put("username", USERNAME);
+ json.put("password", PASSWORD);
+ json.put("token", "");
+ json.put("rememberMe", false);
+
+ String response;
+ try
+ {
+ response = FUtil.sendRequest(API_URL + "/Login", "POST", headers, json.toJSONString());
+ }
+ catch (IOException e)
+ {
+ e.printStackTrace();
+ return;
+ }
+
+ JSONObject jsonResponse;
+ try
+ {
+ jsonResponse = (JSONObject)new JSONParser().parse(response);
+ }
+ catch (ParseException e)
+ {
+ e.printStackTrace();
+ return;
+ }
+
+ Object sessionID = jsonResponse.get("sessionID");
+ if (sessionID == null)
+ {
+ FLog.warning("Invalid AMP credentials have been specified in the config");
+ enabled = false;
+ return;
+ }
+ SESSION_ID = sessionID.toString();
+ FLog.info("Logged into AMP");
+ }
+
+ public void logout()
+ {
+ JSONObject json = new JSONObject();
+ json.put("SESSIONID", SESSION_ID);
+
+ try
+ {
+ FUtil.sendRequest(API_URL + "/Logout", "POST", headers, json.toJSONString());
+ }
+ catch (IOException e)
+ {
+ e.printStackTrace();
+ return;
+ }
+
+ FLog.info("Logged out of AMP");
+ }
+
+ public void updateAccountStatus(StaffMember staffMember)
+ {
+ String username = staffMember.getAmpUsername();
+
+ if (username == null || !enabled)
+ {
+ return;
+ }
+
+ if (!staffMember.isActive() || staffMember.getRank() != Rank.ADMIN)
+ {
+ FLog.debug("Disabling amp acc");
+ setAccountEnabled(username, false);
+ return;
+ }
+
+ FLog.debug("Enabling amp acc");
+ setAccountEnabled(username, true);
+ }
+
+ public void createAccount(String username, String password)
+ {
+ makeAccount(username);
+ setPassword(username, password);
+ }
+
+ public void setAccountEnabled(String username, boolean enable)
+ {
+ JSONObject json = new JSONObject();
+ json.put("Username", username);
+ json.put("Disabled", !enable);
+ json.put("PasswordExpires", false);
+ json.put("CannotChangePassword", false);
+ json.put("MustChangePassword", false);
+ json.put("SESSIONID", SESSION_ID);
+
+ try
+ {
+ FUtil.sendRequest(API_URL + "/UpdateUserInfo", "POST", headers, json.toJSONString());
+ }
+ catch (IOException e)
+ {
+ e.printStackTrace();
+ return;
+ }
+ }
+
+ private void makeAccount(String username)
+ {
+ JSONObject json = new JSONObject();
+ json.put("Username", username);
+ json.put("SESSIONID", SESSION_ID);
+
+ try
+ {
+ FUtil.sendRequest(API_URL + "/CreateUser", "POST", headers, json.toJSONString());
+ }
+ catch (IOException e)
+ {
+ e.printStackTrace();
+ return;
+ }
+ }
+
+ public void setPassword(String username, String password)
+ {
+ JSONObject json = new JSONObject();
+ json.put("Username", username);
+ json.put("NewPassword", password);
+ json.put("SESSIONID", SESSION_ID);
+
+ try
+ {
+ FUtil.sendRequest(API_URL + "/ResetUserPassword", "POST", headers, json.toJSONString());
+ }
+ catch (IOException e)
+ {
+ e.printStackTrace();
+ return;
+ }
+ }
+}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/AntiSpam.java b/src/main/java/me/totalfreedom/totalfreedommod/AntiSpam.java
index 54764e87..af015222 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/AntiSpam.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/AntiSpam.java
@@ -62,7 +62,7 @@ public class AntiSpam extends FreedomService
{
final Player player = event.getPlayer();
- if (plugin.al.isAdmin(player))
+ if (plugin.sl.isStaff(player))
{
return;
}
@@ -109,7 +109,7 @@ public class AntiSpam extends FreedomService
return;
}
- if (plugin.al.isAdmin(player))
+ if (plugin.sl.isStaff(player))
{
return;
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/BackupManager.java b/src/main/java/me/totalfreedom/totalfreedommod/BackupManager.java
index e70033d3..e70bbf36 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/BackupManager.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/BackupManager.java
@@ -1,15 +1,13 @@
package me.totalfreedom.totalfreedommod;
-import com.sk89q.worldedit.bukkit.BukkitConfiguration;
import java.io.File;
-import me.totalfreedom.totalfreedommod.banning.PermbanList;
+import me.totalfreedom.totalfreedommod.banning.IndefiniteBanList;
import me.totalfreedom.totalfreedommod.config.YamlConfig;
import me.totalfreedom.totalfreedommod.permissions.PermissionConfig;
import me.totalfreedom.totalfreedommod.punishments.PunishmentList;
import me.totalfreedom.totalfreedommod.util.FLog;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.bukkit.util.FileUtil;
-import org.yaml.snakeyaml.Yaml;
public class BackupManager extends FreedomService
{
@@ -31,7 +29,7 @@ public class BackupManager extends FreedomService
public void createAllBackups()
{
createBackups(TotalFreedomMod.CONFIG_FILENAME, true);
- createBackups(PermbanList.CONFIG_FILENAME);
+ createBackups(IndefiniteBanList.CONFIG_FILENAME);
createBackups(PermissionConfig.PERMISSIONS_FILENAME, true);
createBackups(PunishmentList.CONFIG_FILENAME);
createBackups("database.db");
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java b/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java
index 079ef884..3c9c33bf 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/ChatManager.java
@@ -1,11 +1,11 @@
package me.totalfreedom.totalfreedommod;
import com.google.common.base.Strings;
-import me.totalfreedom.totalfreedommod.admin.Admin;
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.player.FPlayer;
import me.totalfreedom.totalfreedommod.player.PlayerData;
import me.totalfreedom.totalfreedommod.rank.Displayable;
+import me.totalfreedom.totalfreedommod.staff.StaffMember;
import me.totalfreedom.totalfreedommod.util.FLog;
import me.totalfreedom.totalfreedommod.util.FSync;
import me.totalfreedom.totalfreedommod.util.FUtil;
@@ -65,7 +65,7 @@ public class ChatManager extends FreedomService
return;
}
- if (!ConfigEntry.TOGGLE_CHAT.getBoolean() && !plugin.al.isAdmin(player))
+ if (!ConfigEntry.TOGGLE_CHAT.getBoolean() && !plugin.sl.isStaff(player))
{
event.setCancelled(true);
playerMsg(player, "Chat is currently disabled.", org.bukkit.ChatColor.RED);
@@ -87,10 +87,10 @@ public class ChatManager extends FreedomService
return;
}
- // Check for adminchat
- if (fPlayer.inAdminChat())
+ // Check for staffchat
+ if (fPlayer.inStaffChat())
{
- FSync.adminChatMessage(player, message);
+ FSync.staffChatMessage(player, message);
event.setCancelled(true);
return;
}
@@ -123,7 +123,7 @@ public class ChatManager extends FreedomService
}
// Check for mentions
- Boolean mentionEveryone = ChatColor.stripColor(message).toLowerCase().contains("@everyone") && plugin.al.isAdmin(player);
+ Boolean mentionEveryone = ChatColor.stripColor(message).toLowerCase().contains("@everyone") && plugin.sl.isStaff(player);
for (Player p : server.getOnlinePlayers())
{
if (ChatColor.stripColor(message).toLowerCase().contains("@" + p.getName().toLowerCase()) || mentionEveryone)
@@ -136,76 +136,44 @@ public class ChatManager extends FreedomService
event.setFormat(format);
// Send to discord
- if (!ConfigEntry.ADMIN_ONLY_MODE.getBoolean() && !Bukkit.hasWhitelist() && !plugin.pl.getPlayer(player).isMuted() && !plugin.tfg.inGuildChat(player))
+ if (!ConfigEntry.STAFF_ONLY_MODE.getBoolean() && !Bukkit.hasWhitelist() && !plugin.pl.getPlayer(player).isMuted() && !plugin.tfg.inGuildChat(player))
{
plugin.dc.messageChatChannel(plugin.dc.deformat(player.getName()) + " \u00BB " + ChatColor.stripColor(message));
}
}
- public ChatColor getColor(Admin admin, Displayable display)
+ public ChatColor getColor(Displayable display)
{
ChatColor color = display.getColor();
- if (admin.getOldTags())
- {
-
- if (color.equals(ChatColor.AQUA))
- {
- color = ChatColor.GOLD;
- }
- else if (color.equals(ChatColor.GOLD))
- {
- color = ChatColor.LIGHT_PURPLE;
- }
- else if (color.equals(ChatColor.DARK_RED))
- {
- color = ChatColor.BLUE;
- }
- }
return color;
}
- public String getColoredTag(Admin admin, Displayable display)
+ public String getColoredTag(Displayable display)
{
ChatColor color = display.getColor();
- if (admin.getOldTags())
- {
-
- if (color.equals(ChatColor.AQUA))
- {
- color = ChatColor.GOLD;
- }
- else if (color.equals(ChatColor.GOLD))
- {
- color = ChatColor.LIGHT_PURPLE;
- }
- else if (color.equals(ChatColor.DARK_RED))
- {
- color = ChatColor.BLUE;
- }
- }
return color + display.getAbbr();
}
- public void adminChat(CommandSender sender, String message)
+ public void staffChat(CommandSender sender, String message)
{
Displayable display = plugin.rm.getDisplay(sender);
- FLog.info("[ADMIN] " + sender.getName() + " " + display.getTag() + ": " + message, true);
+ FLog.info("[STAFF] " + sender.getName() + " " + display.getTag() + ": " + message, true);
for (Player player : server.getOnlinePlayers())
{
- if (plugin.al.isAdmin(player))
+ if (plugin.sl.isStaff(player))
{
- Admin admin = plugin.al.getAdmin(player);
- if (!Strings.isNullOrEmpty(admin.getAcFormat()))
+ StaffMember staffMember = plugin.sl.getAdmin(player);
+ if (!Strings.isNullOrEmpty(staffMember.getAcFormat()))
{
- String format = admin.getAcFormat();
- ChatColor color = getColor(admin, display);
+ String format = staffMember.getAcFormat();
+ ChatColor color = getColor(display);
String msg = format.replace("%name%", sender.getName()).replace("%rank%", display.getAbbr()).replace("%rankcolor%", color.toString()).replace("%msg%", message);
player.sendMessage(FUtil.colorize(msg));
}
else
{
- player.sendMessage("[" + ChatColor.AQUA + "ADMIN" + ChatColor.WHITE + "] " + ChatColor.DARK_RED + sender.getName() + ChatColor.DARK_GRAY + " [" + getColoredTag(admin, display) + ChatColor.DARK_GRAY + "]" + ChatColor.WHITE + ": " + ChatColor.GOLD + FUtil.colorize(message));
+ player.sendMessage("[" + ChatColor.AQUA + "STAFF" + ChatColor.WHITE + "] " + ChatColor.DARK_RED + sender.getName() + ChatColor.DARK_GRAY + " [" + getColoredTag(display) + ChatColor.DARK_GRAY + "]" + ChatColor.WHITE + ": " + ChatColor.GOLD + FUtil.colorize(message));
}
}
}
@@ -215,7 +183,7 @@ public class ChatManager extends FreedomService
{
for (Player player : server.getOnlinePlayers())
{
- if (plugin.al.isAdmin(player))
+ if (plugin.sl.isStaff(player))
{
playerMsg(player, ChatColor.RED + "[REPORTS] " + ChatColor.GOLD + reporter.getName() + " has reported " + reported.getName() + " for " + report);
FLog.info("[REPORTS] " + reporter.getName() + " has reported " + reported.getName() + " for " + report);
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/CommandSpy.java b/src/main/java/me/totalfreedom/totalfreedommod/CommandSpy.java
index 4da218d3..5bc0ddc0 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/CommandSpy.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/CommandSpy.java
@@ -23,9 +23,9 @@ public class CommandSpy extends FreedomService
{
for (Player player : server.getOnlinePlayers())
{
- if (plugin.al.isAdmin(player) && plugin.al.getAdmin(player).getCommandSpy())
+ if (plugin.sl.isStaff(player) && plugin.sl.getAdmin(player).getCommandSpy())
{
- if (plugin.al.isAdmin(event.getPlayer()) && !plugin.al.isSeniorAdmin(player))
+ if (plugin.sl.isStaff(event.getPlayer()) && !plugin.sl.isAdmin(player))
{
continue;
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/FreedomServiceHandler.java b/src/main/java/me/totalfreedom/totalfreedommod/FreedomServiceHandler.java
index d8960ab8..bb13eebf 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/FreedomServiceHandler.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/FreedomServiceHandler.java
@@ -23,4 +23,34 @@ public class FreedomServiceHandler
{
return services.size();
}
+
+ public void startServices()
+ {
+ for (FreedomService service : getServices())
+ {
+ try
+ {
+ service.onStart();
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ public void stopServices()
+ {
+ for (FreedomService service : getServices())
+ {
+ try
+ {
+ service.onStop();
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java b/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java
index f921bd71..77907ee2 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/LoginProcess.java
@@ -24,7 +24,6 @@ import org.bukkit.scheduler.BukkitRunnable;
public class LoginProcess extends FreedomService
{
-
public static final int DEFAULT_PORT = 25565;
public static final int MIN_USERNAME_LENGTH = 2;
public static final int MAX_USERNAME_LENGTH = 20;
@@ -53,7 +52,7 @@ public class LoginProcess extends FreedomService
public void onPlayerPreLogin(AsyncPlayerPreLoginEvent event)
{
final String ip = event.getAddress().getHostAddress().trim();
- final boolean isAdmin = plugin.al.getEntryByIp(ip) != null;
+ final boolean isStaff = plugin.sl.getEntryByIp(ip) != null;
// Check if the player is already online
for (Player onlinePlayer : server.getOnlinePlayers())
@@ -63,10 +62,10 @@ public class LoginProcess extends FreedomService
continue;
}
- if (isAdmin)
+ if (isStaff)
{
event.allow();
- FSync.playerKick(onlinePlayer, "An admin just logged in with the username you are using.");
+ FSync.playerKick(onlinePlayer, "A staff member just logged in with the username you are using.");
return;
}
@@ -113,11 +112,11 @@ public class LoginProcess extends FreedomService
}
}
- // Check if player is admin
- final boolean isAdmin = plugin.al.getEntryByIp(ip) != null;
+ // Check if player is staff
+ final boolean isStaff = plugin.sl.getEntryByIp(ip) != null;
// Validation below this point
- if (isAdmin) // Player is admin
+ if (isStaff) // Player is staff
{
// Force-allow log in
event.allow();
@@ -127,9 +126,9 @@ public class LoginProcess extends FreedomService
{
for (Player onlinePlayer : server.getOnlinePlayers())
{
- if (!plugin.al.isAdmin(onlinePlayer))
+ if (!plugin.sl.isStaff(onlinePlayer))
{
- onlinePlayer.kickPlayer("You have been kicked to free up room for an admin.");
+ onlinePlayer.kickPlayer("You have been kicked to free up room for a staff member.");
count--;
}
@@ -149,7 +148,7 @@ public class LoginProcess extends FreedomService
return;
}
- // Player is not an admin
+ // Player is not a staff member
// Server full check
if (server.getOnlinePlayers().size() >= server.getMaxPlayers())
{
@@ -157,10 +156,10 @@ public class LoginProcess extends FreedomService
return;
}
- // Admin-only mode
- if (ConfigEntry.ADMIN_ONLY_MODE.getBoolean())
+ // Staff-only mode
+ if (ConfigEntry.STAFF_ONLY_MODE.getBoolean())
{
- event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "Server is temporarily open to admins only.");
+ event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "Server is temporarily open to staff only.");
return;
}
@@ -226,7 +225,7 @@ public class LoginProcess extends FreedomService
player.setPlayerListFooter(FUtil.colorize(ConfigEntry.SERVER_TABLIST_FOOTER.getString()).replace("\\n", "\n"));
}
- if (!plugin.al.isAdmin(player))
+ if (!plugin.sl.isStaff(player))
{
String tag = playerData.getTag();
if (tag != null)
@@ -244,7 +243,7 @@ public class LoginProcess extends FreedomService
FLog.info(noteMessage);
for (Player p : server.getOnlinePlayers())
{
- if (plugin.al.isAdminImpostor(p))
+ if (plugin.sl.isStaffImpostor(p))
{
notice.send(p);
}
@@ -257,9 +256,9 @@ public class LoginProcess extends FreedomService
@Override
public void run()
{
- if (ConfigEntry.ADMIN_ONLY_MODE.getBoolean())
+ if (ConfigEntry.STAFF_ONLY_MODE.getBoolean())
{
- player.sendMessage(ChatColor.RED + "Server is currently closed to non-admins.");
+ player.sendMessage(ChatColor.RED + "Server is currently closed to non-staff.");
}
if (lockdownEnabled)
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/Muter.java b/src/main/java/me/totalfreedom/totalfreedommod/Muter.java
index 97891bef..203d3e77 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/Muter.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/Muter.java
@@ -45,7 +45,7 @@ public class Muter extends FreedomService
return;
}
- if (plugin.al.isAdminSync(player))
+ if (plugin.sl.isStaffSync(player))
{
fPlayer.setMuted(false);
MUTED_PLAYERS.remove(player.getName());
@@ -70,7 +70,7 @@ public class Muter extends FreedomService
}
String message = event.getMessage();
- if (plugin.al.isAdmin(player))
+ if (plugin.sl.isStaff(player))
{
fPlayer.setMuted(false);
return;
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/ProtectArea.java b/src/main/java/me/totalfreedom/totalfreedommod/ProtectArea.java
deleted file mode 100644
index 9dbcde21..00000000
--- a/src/main/java/me/totalfreedom/totalfreedommod/ProtectArea.java
+++ /dev/null
@@ -1,392 +0,0 @@
-package me.totalfreedom.totalfreedommod;
-
-import com.google.common.collect.Maps;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.Serializable;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-import me.totalfreedom.totalfreedommod.config.ConfigEntry;
-import me.totalfreedom.totalfreedommod.util.FLog;
-import org.bukkit.Bukkit;
-import org.bukkit.Location;
-import org.bukkit.World;
-import org.bukkit.entity.Player;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.EventPriority;
-import org.bukkit.event.block.BlockBreakEvent;
-import org.bukkit.event.block.BlockPlaceEvent;
-import org.bukkit.util.Vector;
-
-public class ProtectArea extends FreedomService
-{
-
- public static final String DATA_FILENAME = "protectedareas.dat";
- public static final double MAX_RADIUS = 50.0;
- //
- private final Map areas = Maps.newHashMap();
-
- @Override
- public void onStart()
- {
- if (!ConfigEntry.PROTECTAREA_ENABLED.getBoolean())
- {
- return;
- }
-
- File input = new File(plugin.getDataFolder(), DATA_FILENAME);
- try
- {
- if (input.exists())
- {
- FileInputStream fis = new FileInputStream(input);
- ObjectInputStream ois = new ObjectInputStream(fis);
- areas.clear();
- areas.putAll((HashMap)ois.readObject());
- ois.close();
- fis.close();
- }
- }
- catch (Exception ex)
- {
- input.delete();
- FLog.severe(ex);
- }
-
- cleanProtectedAreas();
- }
-
- @Override
- public void onStop()
- {
- save();
- }
-
- public void save()
- {
- try
- {
- FileOutputStream fos = new FileOutputStream(new File(plugin.getDataFolder(), DATA_FILENAME));
- ObjectOutputStream oos = new ObjectOutputStream(fos);
- oos.writeObject(areas);
- oos.close();
- fos.close();
- }
- catch (Exception ex)
- {
- FLog.severe(ex);
- }
- }
-
- @EventHandler(priority = EventPriority.NORMAL)
- public void onBlockBreak(BlockBreakEvent event)
- {
- if (!ConfigEntry.PROTECTAREA_ENABLED.getBoolean())
- {
- return;
- }
-
- final Player player = event.getPlayer();
- if (plugin.al.isAdmin(player))
- {
- return;
- }
-
- final Location location = event.getBlock().getLocation();
-
- if (isInProtectedArea(location))
- {
- event.setCancelled(true);
- }
- }
-
- @EventHandler(priority = EventPriority.NORMAL)
- public void onBlockPlace(BlockPlaceEvent event)
- {
- if (!ConfigEntry.PROTECTAREA_ENABLED.getBoolean())
- {
- return;
- }
-
- final Player player = event.getPlayer();
- if (plugin.al.isAdmin(player))
- {
- return;
- }
-
- final Location location = event.getBlock().getLocation();
-
- if (isInProtectedArea(location))
- {
- event.setCancelled(true);
- }
- }
-
- public boolean isInProtectedArea(final Location modifyLocation)
- {
- boolean doSave = false;
- boolean inProtectedArea = false;
-
- final Iterator> it = areas.entrySet().iterator();
-
- while (it.hasNext())
- {
- final SerializableProtectedRegion region = it.next().getValue();
-
- Location regionCenter = null;
- try
- {
- regionCenter = region.getLocation();
- }
- catch (SerializableProtectedRegion.CantFindWorldException ex)
- {
- it.remove();
- doSave = true;
- continue;
- }
-
- if (regionCenter != null)
- {
- if (modifyLocation.getWorld() == regionCenter.getWorld())
- {
- final double regionRadius = region.getRadius();
- if (modifyLocation.distanceSquared(regionCenter) <= (regionRadius * regionRadius))
- {
- inProtectedArea = true;
- break;
- }
- }
- }
- }
-
- if (doSave)
- {
- save();
- }
-
- return inProtectedArea;
- }
-
- public boolean isInProtectedArea(final Vector min, final Vector max, final String worldName)
- {
- boolean doSave = false;
- boolean inProtectedArea = false;
-
- final Iterator> it = areas.entrySet().iterator();
-
- while (it.hasNext())
- {
- final SerializableProtectedRegion region = it.next().getValue();
-
- Location regionCenter = null;
- try
- {
- regionCenter = region.getLocation();
- }
- catch (SerializableProtectedRegion.CantFindWorldException ex)
- {
- it.remove();
- doSave = true;
- continue;
- }
-
- if (regionCenter != null)
- {
- if (worldName.equals(regionCenter.getWorld().getName()))
- {
- if (cubeIntersectsSphere(min, max, regionCenter.toVector(), region.getRadius()))
- {
- inProtectedArea = true;
- break;
- }
- }
- }
- }
-
- if (doSave)
- {
- save();
- }
-
- return inProtectedArea;
- }
-
- private boolean cubeIntersectsSphere(Vector min, Vector max, Vector sphere, double radius)
- {
- double d = square(radius);
-
- if (sphere.getX() < min.getX())
- {
- d -= square(sphere.getX() - min.getX());
- }
- else if (sphere.getX() > max.getX())
- {
- d -= square(sphere.getX() - max.getX());
- }
- if (sphere.getY() < min.getY())
- {
- d -= square(sphere.getY() - min.getY());
- }
- else if (sphere.getY() > max.getY())
- {
- d -= square(sphere.getY() - max.getY());
- }
- if (sphere.getZ() < min.getZ())
- {
- d -= square(sphere.getZ() - min.getZ());
- }
- else if (sphere.getZ() > max.getZ())
- {
- d -= square(sphere.getZ() - max.getZ());
- }
-
- return d > 0;
- }
-
- private double square(double v)
- {
- return v * v;
- }
-
- public void addProtectedArea(String label, Location location, double radius)
- {
- areas.put(label.toLowerCase(), new SerializableProtectedRegion(location, radius));
- save();
- }
-
- public void removeProtectedArea(String label)
- {
- areas.remove(label.toLowerCase());
- save();
- }
-
- public void clearProtectedAreas()
- {
- clearProtectedAreas(true);
- }
-
- public void clearProtectedAreas(boolean createSpawnpointProtectedAreas)
- {
- areas.clear();
-
- if (createSpawnpointProtectedAreas)
- {
- autoAddSpawnpoints();
- }
-
- save();
- }
-
- public void cleanProtectedAreas()
- {
- boolean doSave = false;
-
- final Iterator> it = areas.entrySet().iterator();
-
- while (it.hasNext())
- {
- try
- {
- it.next().getValue().getLocation();
- }
- catch (SerializableProtectedRegion.CantFindWorldException ex)
- {
- it.remove();
- doSave = true;
- }
- }
-
- if (doSave)
- {
- save();
- }
- }
-
- public Set getProtectedAreaLabels()
- {
- return areas.keySet();
- }
-
- public void autoAddSpawnpoints()
- {
- if (!ConfigEntry.PROTECTAREA_ENABLED.getBoolean())
- {
- return;
- }
-
- if (ConfigEntry.PROTECTAREA_SPAWNPOINTS.getBoolean())
- {
- for (World world : Bukkit.getWorlds())
- {
- addProtectedArea("spawn_" + world.getName(), world.getSpawnLocation(), ConfigEntry.PROTECTAREA_RADIUS.getDouble());
- }
- }
- }
-
- public static class SerializableProtectedRegion implements Serializable
- {
-
- private static final long serialVersionUID = 213123517828282L;
- private final double x, y, z;
- private final double radius;
- private final String worldName;
- private final UUID worldUUID;
- private transient Location location = null;
-
- public SerializableProtectedRegion(final Location location, final double radius)
- {
- this.x = location.getX();
- this.y = location.getY();
- this.z = location.getZ();
- this.radius = radius;
- this.worldName = location.getWorld().getName();
- this.worldUUID = location.getWorld().getUID();
- this.location = location;
- }
-
- public Location getLocation() throws CantFindWorldException
- {
- if (this.location == null)
- {
- World world = Bukkit.getWorld(this.worldUUID);
-
- if (world == null)
- {
- world = Bukkit.getWorld(this.worldName);
- }
-
- if (world == null)
- {
- throw new CantFindWorldException("Can't find world " + this.worldName + ", UUID: " + this.worldUUID.toString());
- }
-
- location = new Location(world, x, y, z);
- }
- return this.location;
- }
-
- public double getRadius()
- {
- return radius;
- }
-
- public class CantFindWorldException extends Exception
- {
-
- private static final long serialVersionUID = 1L;
-
- public CantFindWorldException(String string)
- {
- super(string);
- }
- }
-
- }
-
-}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/Reddit.java b/src/main/java/me/totalfreedom/totalfreedommod/Reddit.java
new file mode 100644
index 00000000..fa0ae291
--- /dev/null
+++ b/src/main/java/me/totalfreedom/totalfreedommod/Reddit.java
@@ -0,0 +1,223 @@
+package me.totalfreedom.totalfreedommod;
+
+import com.google.common.base.Strings;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import me.totalfreedom.totalfreedommod.config.ConfigEntry;
+import me.totalfreedom.totalfreedommod.player.PlayerData;
+import me.totalfreedom.totalfreedommod.rank.Displayable;
+import me.totalfreedom.totalfreedommod.rank.Rank;
+import me.totalfreedom.totalfreedommod.rank.Title;
+import me.totalfreedom.totalfreedommod.util.FLog;
+import me.totalfreedom.totalfreedommod.util.FUtil;
+import net.dean.jraw.ApiException;
+import net.dean.jraw.RedditClient;
+import net.dean.jraw.http.OkHttpNetworkAdapter;
+import net.dean.jraw.http.UserAgent;
+import net.dean.jraw.models.CurrentFlair;
+import net.dean.jraw.models.Flair;
+import net.dean.jraw.oauth.Credentials;
+import net.dean.jraw.oauth.OAuthHelper;
+import net.dean.jraw.references.SubredditReference;
+import org.bukkit.entity.Player;
+
+public class Reddit extends FreedomService
+{
+ private final String SUBREDDIT_NAME = ConfigEntry.REDDIT_SUBREDDIT_NAME.getString();
+ private final String USERNAME = ConfigEntry.REDDIT_USERNAME.getString();
+ private final String PASSWORD = ConfigEntry.REDDIT_PASSWORD.getString();
+ private final String CLIENT_ID = ConfigEntry.REDDIT_CLIENT_ID.getString();
+ private final String CLIENT_SECRET = ConfigEntry.REDDIT_CLIENT_SECRET.getString();
+
+ private final UserAgent userAgent = new UserAgent("bot", "me.totalfreedom.reddit", plugin.build.version, USERNAME);
+ private final Credentials credentials = Credentials.script(USERNAME, PASSWORD, CLIENT_ID, CLIENT_SECRET);
+
+ private RedditClient reddit = null;
+ private SubredditReference subreddit = null;
+
+ private HashMap linkCodes = new HashMap<>();
+ private HashMap pending = new HashMap<>();
+
+ private Map flairList = new HashMap<>();
+
+ private Map flairNameList = new HashMap<>();
+
+ private List noFlairDisplays = Arrays.asList(Title.VERIFIED_STAFF, Rank.IMPOSTOR, Rank.NON_OP, Rank.OP);
+
+ public boolean enabled = false;
+
+ @Override
+ public void onStart()
+ {
+ enabled = ConfigEntry.REDDIT_CLIENT_ID.getString() == null;
+ if (!enabled)
+ {
+ return;
+ }
+
+ if (reddit == null)
+ {
+ try
+ {
+ reddit = OAuthHelper.automatic(new OkHttpNetworkAdapter(userAgent), credentials);
+ reddit.setLogHttp(FUtil.inDeveloperMode());
+ }
+ catch (NoClassDefFoundError e)
+ {
+ FLog.warning("The JRAW plugin is not installed, therefore the Reddit service cannot start.");
+ FLog.warning("To resolve this error, please download the latest JRAW from: https://github.com/TFPatches/Minecraft-JRAW/releases");
+ enabled = false;
+ return;
+ }
+ catch (NullPointerException e)
+ {
+ FLog.warning("Invalid Reddit credentials specified, please double check everything in the config.");
+ enabled = false;
+ return;
+ }
+ }
+
+ if (subreddit == null)
+ {
+ subreddit = reddit.subreddit(SUBREDDIT_NAME);
+ }
+
+ loadFlairList();
+ }
+
+ @Override
+ public void onStop()
+ {
+ }
+
+ public void setFlair(String username, String flairID)
+ {
+ List flairs = subreddit.userFlairOptions();
+ Flair flair = null;
+ for (Flair f : flairs)
+ {
+ if (f.getId().equals(flairID))
+ {
+ flair = f;
+ break;
+ }
+ }
+
+ if (flair == null)
+ {
+ return;
+ }
+
+ subreddit.otherUserFlair(username).updateToTemplate(flair.getId(), "");
+ }
+
+ public void removeFlair(String username)
+ {
+ subreddit.otherUserFlair(username).updateToTemplate("", "");
+ }
+
+ public void sendModMessage(String username, String subject, String body) throws ApiException
+ {
+ reddit.me().inbox().compose("/r/" + SUBREDDIT_NAME, username, subject, body);
+ }
+
+ public String addLinkCode(PlayerData data, String username)
+ {
+ String code = FUtil.randomAlphanumericString(10);
+ linkCodes.put(code, data);
+ pending.put(data, username);
+ return code;
+ }
+
+ public String checkLinkCode(String code)
+ {
+ PlayerData data = linkCodes.get(code);
+ String username = pending.get(data);
+ if (data == null || username == null)
+ {
+ return null;
+ }
+
+ linkCodes.remove(code);
+ pending.remove(data);
+
+ data.setRedditUsername(username);
+ plugin.pl.save(data);
+
+ return username;
+ }
+
+ public boolean updateFlair(Player player)
+ {
+ if (!enabled)
+ {
+ return false;
+ }
+
+ PlayerData data = plugin.pl.getData(player);
+ String username = data.getRedditUsername();
+ Displayable display = plugin.rm.getDisplay(player);
+ if (username == null)
+ {
+ FLog.debug("No Reddit account");
+ return false;
+ }
+
+ CurrentFlair currentFlair = subreddit.otherUserFlair(username).current();
+ String currentFlairName = currentFlair.getText();
+ String currentFlairID = currentFlair.getId();
+ String neededFlairID = flairList.get(display);
+ String neededFlairName = flairNameList.get(display);
+
+ FLog.debug("Current ID: " + currentFlairID);
+ FLog.debug("Needed ID: " + neededFlairID);
+
+ FLog.debug("Current Name: " + currentFlairName);
+ FLog.debug("Needed Name: " + neededFlairName);
+
+
+ // Work around
+ //if (currentFlairID == null && neededFlairID != null || currentFlairID != null && neededFlairID != null && !currentFlairID.equals(neededFlairID))
+ if (Strings.isNullOrEmpty(currentFlairName) && neededFlairName != null || !Strings.isNullOrEmpty(currentFlairName) && neededFlairName != null && !currentFlairName.equals(neededFlairName))
+ {
+ FLog.debug("Setting flair");
+ setFlair(username, neededFlairID);
+ return true;
+ }
+
+ if (noFlairDisplays.contains(display) && !Strings.isNullOrEmpty(currentFlairName))
+ {
+ FLog.debug("Removing flair");
+ removeFlair(username);
+ return true;
+ }
+
+ return false;
+ }
+
+ public void loadFlairList()
+ {
+ flairList.put(Title.OWNER, ConfigEntry.REDDIT_SERVER_OWNER_FLAIR_ID.getString());
+ flairList.put(Title.EXECUTIVE, ConfigEntry.REDDIT_EXECUTIVE_FLAIR_ID.getString());
+ flairList.put(Title.ASSISTANT_EXECUTIVE, ConfigEntry.REDDIT_ASSISTANT_EXECUTIVE_FLAIR_ID.getString());
+ flairList.put(Title.DEVELOPER, ConfigEntry.REDDIT_DEVELOPER_FLAIR_ID.getString());
+ flairList.put(Rank.ADMIN, ConfigEntry.REDDIT_ADMIN_FLAIR_ID.getString());
+ flairList.put(Rank.MOD, ConfigEntry.REDDIT_MOD_FLAIR_ID.getString());
+ flairList.put(Rank.TRIAL_MOD, ConfigEntry.REDDIT_TRIAL_MOD_FLAIR_ID.getString());
+ flairList.put(Title.MASTER_BUILDER, ConfigEntry.REDDIT_MASTER_BUILDER_FLAIR_ID.getString());
+ flairList.put(Title.DONATOR, ConfigEntry.REDDIT_DONATOR_FLAIR_ID.getString());
+
+ // Work around because the current flair id keeps returning null, either a JRAW bug or a reddit bug
+ flairNameList.put(Title.OWNER, "Server Owner");
+ flairNameList.put(Title.EXECUTIVE, "Executive");
+ flairNameList.put(Title.ASSISTANT_EXECUTIVE, "Assistant Executive");
+ flairNameList.put(Title.DEVELOPER, "Developer");
+ flairNameList.put(Rank.ADMIN, "Admin");
+ flairNameList.put(Rank.MOD, "Mod");
+ flairNameList.put(Rank.TRIAL_MOD, "Trial Mod");
+ flairNameList.put(Title.MASTER_BUILDER, "Master Builder");
+ flairNameList.put(Title.DONATOR, "Premium");
+ }
+}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/ServerPing.java b/src/main/java/me/totalfreedom/totalfreedommod/ServerPing.java
index a5a91ab8..e87f8005 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/ServerPing.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/ServerPing.java
@@ -30,9 +30,9 @@ public class ServerPing extends FreedomService
return;
}
- if (ConfigEntry.ADMIN_ONLY_MODE.getBoolean())
+ if (ConfigEntry.STAFF_ONLY_MODE.getBoolean())
{
- event.setMotd(FUtil.colorize(ConfigEntry.SERVER_ADMINMODE_MOTD.getString()));
+ event.setMotd(FUtil.colorize(ConfigEntry.SERVER_STAFFMODE_MOTD.getString()));
return;
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java
index c14763a0..a0381323 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/TotalFreedomMod.java
@@ -3,11 +3,8 @@ package me.totalfreedom.totalfreedommod;
import java.io.File;
import java.io.InputStream;
import java.util.Properties;
-import java.util.Set;
-import me.totalfreedom.totalfreedommod.admin.ActivityLog;
-import me.totalfreedom.totalfreedommod.admin.AdminList;
import me.totalfreedom.totalfreedommod.banning.BanManager;
-import me.totalfreedom.totalfreedommod.banning.PermbanList;
+import me.totalfreedom.totalfreedommod.banning.IndefiniteBanList;
import me.totalfreedom.totalfreedommod.blocking.BlockBlocker;
import me.totalfreedom.totalfreedommod.blocking.EditBlocker;
import me.totalfreedom.totalfreedommod.blocking.EventBlocker;
@@ -27,7 +24,6 @@ import me.totalfreedom.totalfreedommod.bridge.WorldEditBridge;
import me.totalfreedom.totalfreedommod.bridge.WorldGuardBridge;
import me.totalfreedom.totalfreedommod.caging.Cager;
import me.totalfreedom.totalfreedommod.command.CommandLoader;
-import me.totalfreedom.totalfreedommod.command.FreedomCommand;
import me.totalfreedom.totalfreedommod.config.MainConfig;
import me.totalfreedom.totalfreedommod.discord.Discord;
import me.totalfreedom.totalfreedommod.freeze.Freezer;
@@ -46,6 +42,8 @@ import me.totalfreedom.totalfreedommod.rank.RankManager;
import me.totalfreedom.totalfreedommod.shop.Shop;
import me.totalfreedom.totalfreedommod.shop.Votifier;
import me.totalfreedom.totalfreedommod.sql.SQLite;
+import me.totalfreedom.totalfreedommod.staff.ActivityLog;
+import me.totalfreedom.totalfreedommod.staff.StaffList;
import me.totalfreedom.totalfreedommod.util.FLog;
import me.totalfreedom.totalfreedommod.util.FUtil;
import me.totalfreedom.totalfreedommod.util.MethodTimer;
@@ -57,17 +55,17 @@ import org.bukkit.Bukkit;
import org.bukkit.generator.ChunkGenerator;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;
-import org.bukkit.scheduler.BukkitRunnable;
-import org.reflections.Reflections;
import org.spigotmc.SpigotConfig;
public class TotalFreedomMod extends JavaPlugin
{
private static TotalFreedomMod plugin;
+
public static TotalFreedomMod getPlugin()
{
return plugin;
}
+
public static final String CONFIG_FILENAME = "config.yml";
//
public static final BuildProperties build = new BuildProperties();
@@ -87,7 +85,7 @@ public class TotalFreedomMod extends JavaPlugin
public SavedFlags sf;
public WorldManager wm;
public LogViewer lv;
- public AdminList al;
+ public StaffList sl;
public ActivityLog acl;
public RankManager rm;
public CommandBlocker cb;
@@ -108,9 +106,9 @@ public class TotalFreedomMod extends JavaPlugin
public Discord dc;
public PunishmentList pul;
public BanManager bm;
- public PermbanList pm;
+ public IndefiniteBanList im;
public PermissionManager pem;
- public ProtectArea pa;
+ public Reddit rd;
public GameRuleHandler gr;
public CommandSpy cs;
public Cager ca;
@@ -137,6 +135,7 @@ public class TotalFreedomMod extends JavaPlugin
public EntityWiper ew;
public Sitter st;
public VanishHandler vh;
+ public AMP amp;
//public HubWorldRestrictions hwr;
//
@@ -185,17 +184,17 @@ public class TotalFreedomMod extends JavaPlugin
config = new MainConfig();
config.load();
+ if (FUtil.inDeveloperMode())
+ {
+ FLog.debug("Developer mode enabled.");
+ }
+
cl = new CommandLoader();
cl.loadCommands();
BackupManager backups = new BackupManager();
backups.createAllBackups();
- if (FUtil.inDeveloperMode())
- {
- FLog.debug("Developer mode enabled.");
- }
-
permissions = new PermissionConfig(this);
permissions.load();
@@ -205,7 +204,7 @@ public class TotalFreedomMod extends JavaPlugin
wm = new WorldManager();
lv = new LogViewer();
sql = new SQLite();
- al = new AdminList();
+ sl = new StaffList();
acl = new ActivityLog();
rm = new RankManager();
cb = new CommandBlocker();
@@ -226,14 +225,15 @@ public class TotalFreedomMod extends JavaPlugin
dc = new Discord();
pul = new PunishmentList();
bm = new BanManager();
- pm = new PermbanList();
+ im = new IndefiniteBanList();
pem = new PermissionManager();
- pa = new ProtectArea();
+ rd = new Reddit();
gr = new GameRuleHandler();
snp = new SignBlocker();
ew = new EntityWiper();
st = new Sitter();
vh = new VanishHandler();
+ amp = new AMP();
// Single admin utils
cs = new CommandSpy();
@@ -271,28 +271,16 @@ public class TotalFreedomMod extends JavaPlugin
fab = new FAWEBridge();
wgb = new WorldGuardBridge();
- for (FreedomService service : fsh.getServices())
- {
- service.onStart();
- }
+ fsh.startServices();
- FLog.info("Started " + fsh.getServiceAmount() + "services.");
+ FLog.info("Started " + fsh.getServiceAmount() + " services.");
timer.update();
FLog.info("Version " + pluginVersion + " for " + ServerInterface.COMPILE_NMS_VERSION + " enabled in " + timer.getTotal() + "ms");
- // Metrics @ https://bstats.org/plugin/bukkit/TotalFreedomMod
- new Metrics(this);
+ // Metrics @ https://bstats.org/plugin/bukkit/TotalFreedomMod/2966
+ new Metrics(this, 2966);
- // Add spawnpoints later - https://github.com/TotalFreedom/TotalFreedomMod/issues/438
- new BukkitRunnable()
- {
- @Override
- public void run()
- {
- plugin.pa.autoAddSpawnpoints();
- }
- }.runTaskLater(plugin, 60L);
// little workaround to stop spigot from autorestarting - causing AMP to detach from process.
SpigotConfig.config.set("settings.restart-on-crash", false);
}
@@ -301,10 +289,7 @@ public class TotalFreedomMod extends JavaPlugin
public void onDisable()
{
// Stop services and bridges
- for (FreedomService service : fsh.getServices())
- {
- service.onStop();
- }
+ fsh.stopServices();
getServer().getScheduler().cancelTasks(plugin);
@@ -313,7 +298,6 @@ public class TotalFreedomMod extends JavaPlugin
public static class BuildProperties
{
-
public String author;
public String codename;
public String version;
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/VanishHandler.java b/src/main/java/me/totalfreedom/totalfreedommod/VanishHandler.java
index 7d1e586d..d08cbfda 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/VanishHandler.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/VanishHandler.java
@@ -31,7 +31,7 @@ public class VanishHandler extends FreedomService
for (Player p : server.getOnlinePlayers())
{
- if (!plugin.al.isAdmin(player) && plugin.al.isVanished(p.getName()))
+ if (!plugin.sl.isAdmin(player) && plugin.sl.isVanished(p.getName()))
{
player.hidePlayer(plugin, p);
}
@@ -39,17 +39,17 @@ public class VanishHandler extends FreedomService
for (Player p : server.getOnlinePlayers())
{
- if (!plugin.al.isAdmin(p) && plugin.al.isVanished(player.getName()))
+ if (!plugin.sl.isAdmin(p) && plugin.sl.isVanished(player.getName()))
{
p.hidePlayer(plugin, player);
}
}
- if (plugin.al.isVanished(player.getName()))
+ if (plugin.sl.isVanished(player.getName()))
{
plugin.esb.setVanished(player.getName(), true);
FLog.info(player.getName() + " joined while still vanished.");
- plugin.al.messageAllAdmins(ChatColor.YELLOW + player.getName() + " has joined silently.");
+ plugin.sl.messageAllStaff(ChatColor.YELLOW + player.getName() + " has joined silently.");
event.setJoinMessage(null);
new BukkitRunnable()
@@ -57,7 +57,7 @@ public class VanishHandler extends FreedomService
@Override
public void run()
{
- if (!plugin.al.isVanished(player.getName()))
+ if (!plugin.sl.isVanished(player.getName()))
{
this.cancel();
}
@@ -73,11 +73,11 @@ public class VanishHandler extends FreedomService
{
Player player = event.getPlayer();
- if (plugin.al.isVanished(player.getName()))
+ if (plugin.sl.isVanished(player.getName()))
{
event.setQuitMessage(null);
FLog.info(player.getName() + " left while still vanished.");
- plugin.al.messageAllAdmins(ChatColor.YELLOW + player.getName() + " has left silently.");
+ plugin.sl.messageAllStaff(ChatColor.YELLOW + player.getName() + " has left silently.");
}
}
}
\ No newline at end of file
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java b/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java
deleted file mode 100644
index 8d2f5b54..00000000
--- a/src/main/java/me/totalfreedom/totalfreedommod/admin/AdminList.java
+++ /dev/null
@@ -1,370 +0,0 @@
-package me.totalfreedom.totalfreedommod.admin;
-
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.TimeUnit;
-import lombok.Getter;
-import me.totalfreedom.totalfreedommod.FreedomService;
-import me.totalfreedom.totalfreedommod.config.ConfigEntry;
-import me.totalfreedom.totalfreedommod.rank.Rank;
-import me.totalfreedom.totalfreedommod.util.FLog;
-import me.totalfreedom.totalfreedommod.util.FUtil;
-import org.bukkit.Bukkit;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-public class AdminList extends FreedomService
-{
- @Getter
- private final Set allAdmins = Sets.newHashSet(); // Includes disabled admins
- // Only active admins below
- @Getter
- private final Set activeAdmins = Sets.newHashSet();
- private final Map nameTable = Maps.newHashMap();
- private final Map ipTable = Maps.newHashMap();
- public final List verifiedNoAdmins = new ArrayList<>();
- public final Map> verifiedNoAdminIps = Maps.newHashMap();
- public static List vanished = new ArrayList<>();
-
- @Override
- public void onStart()
- {
- load();
- deactivateOldEntries(false);
- }
-
- @Override
- public void onStop()
- {
- }
-
- public void load()
- {
- allAdmins.clear();
- try
- {
- ResultSet adminSet = plugin.sql.getAdminList();
- {
- while (adminSet.next())
- {
- Admin admin = new Admin(adminSet);
- allAdmins.add(admin);
- }
- }
- }
- catch (SQLException e)
- {
- FLog.severe("Failed to load adminlist: " + e.getMessage());
- }
-
- updateTables();
- FLog.info("Loaded " + allAdmins.size() + " admins (" + nameTable.size() + " active, " + ipTable.size() + " IPs)");
- }
-
- public void messageAllAdmins(String message)
- {
- for (Player player : server.getOnlinePlayers())
- {
- if (isAdmin(player))
- {
- player.sendMessage(message);
- }
- }
- }
-
- public synchronized boolean isAdminSync(CommandSender sender)
- {
- return isAdmin(sender);
- }
-
- public List getActiveAdminNames()
- {
- List names = new ArrayList();
- for (Admin admin : activeAdmins)
- {
- names.add(admin.getName());
- }
- return names;
- }
-
- public boolean isAdmin(CommandSender sender)
- {
- if (!(sender instanceof Player))
- {
- return true;
- }
-
- Admin admin = getAdmin((Player)sender);
-
- return admin != null && admin.isActive();
- }
-
- public boolean isTelnetAdmin(CommandSender sender)
- {
- Admin admin = getAdmin(sender);
- if (admin == null)
- {
- return false;
- }
-
- return admin.getRank().ordinal() >= Rank.TELNET_ADMIN.ordinal();
- }
-
- public boolean isSeniorAdmin(CommandSender sender)
- {
- Admin admin = getAdmin(sender);
- if (admin == null)
- {
- return false;
- }
-
- return admin.getRank().ordinal() >= Rank.SENIOR_ADMIN.ordinal();
- }
-
- public Admin getAdmin(CommandSender sender)
- {
- if (sender instanceof Player)
- {
- return getAdmin((Player)sender);
- }
-
- return getEntryByName(sender.getName());
- }
-
- public Admin getAdmin(Player player)
- {
- // Find admin
- String ip = FUtil.getIp(player);
- Admin admin = getEntryByName(player.getName());
-
- // Admin by name
- if (admin != null)
- {
- // Check if we're in online mode,
- // Or the players IP is in the admin entry
- if (Bukkit.getOnlineMode() || admin.getIps().contains(ip))
- {
- if (!admin.getIps().contains(ip))
- {
- // Add the new IP if we have to
- admin.addIp(ip);
- save(admin);
- updateTables();
- }
- return admin;
- }
- }
-
- // Admin by ip
- admin = getEntryByIp(ip);
- if (admin != null)
- {
- // Set the new username
- String oldName = admin.getName();
- admin.setName(player.getName());
- plugin.sql.updateAdminName(oldName, admin.getName());
- updateTables();
- }
-
- return null;
- }
-
- public Admin getEntryByName(String name)
- {
- return nameTable.get(name.toLowerCase());
- }
-
- public Admin getEntryByIp(String ip)
- {
- return ipTable.get(ip);
- }
-
- public Admin getEntryByIpFuzzy(String needleIp)
- {
- final Admin directAdmin = getEntryByIp(needleIp);
- if (directAdmin != null)
- {
- return directAdmin;
- }
-
- for (String ip : ipTable.keySet())
- {
- if (FUtil.fuzzyIpMatch(needleIp, ip, 3))
- {
- return ipTable.get(ip);
- }
- }
-
- return null;
- }
-
- public void updateLastLogin(Player player)
- {
- final Admin admin = getAdmin(player);
- if (admin == null)
- {
- return;
- }
-
- admin.setLastLogin(new Date());
- admin.setName(player.getName());
- save(admin);
- }
-
- public boolean isAdminImpostor(Player player)
- {
- return getEntryByName(player.getName()) != null && !isAdmin(player) && !isVerifiedAdmin(player);
- }
-
- public boolean isVerifiedAdmin(Player player)
- {
- return verifiedNoAdmins.contains(player.getName()) && verifiedNoAdminIps.get(player.getName()).contains(FUtil.getIp(player));
- }
-
- public boolean isIdentityMatched(Player player)
- {
- if (Bukkit.getOnlineMode())
- {
- return true;
- }
-
- Admin admin = getAdmin(player);
- return admin == null ? false : admin.getName().equalsIgnoreCase(player.getName());
- }
-
- public boolean addAdmin(Admin admin)
- {
- if (!admin.isValid())
- {
- logger.warning("Could not add admin: " + admin.getName() + " Admin is missing details!");
- return false;
- }
-
- // Store admin, update views
- allAdmins.add(admin);
- updateTables();
-
- // Save admin
- plugin.sql.addAdmin(admin);
-
- return true;
- }
-
- public boolean removeAdmin(Admin admin)
- {
- if (admin.getRank().isAtLeast(Rank.TELNET_ADMIN))
- {
- if (plugin.btb != null)
- {
- plugin.btb.killTelnetSessions(admin.getName());
- }
- }
-
- // Remove admin, update views
- if (!allAdmins.remove(admin))
- {
- return false;
- }
- updateTables();
-
- // Unsave admin
- plugin.sql.removeAdmin(admin);
-
- return true;
- }
-
- public void updateTables()
- {
- activeAdmins.clear();
- nameTable.clear();
- ipTable.clear();
-
- for (Admin admin : allAdmins)
- {
- if (!admin.isActive())
- {
- continue;
- }
-
- activeAdmins.add(admin);
- nameTable.put(admin.getName().toLowerCase(), admin);
-
- for (String ip : admin.getIps())
- {
- ipTable.put(ip, admin);
- }
-
- }
- }
-
- public Set getAdminNames()
- {
- return nameTable.keySet();
- }
-
- public Set getAdminIps()
- {
- return ipTable.keySet();
- }
-
- public void save(Admin admin)
- {
- try
- {
- ResultSet currentSave = plugin.sql.getAdminByName(admin.getName());
- for (Map.Entry entry : admin.toSQLStorable().entrySet())
- {
- Object storedValue = plugin.sql.getValue(currentSave, entry.getKey(), entry.getValue());
- if (storedValue != null && !storedValue.equals(entry.getValue()) || storedValue == null && entry.getValue() != null || entry.getValue() == null)
- {
- plugin.sql.setAdminValue(admin, entry.getKey(), entry.getValue());
- }
- }
- }
- catch (SQLException e)
- {
- FLog.severe("Failed to save admin: " + e.getMessage());
- }
- }
-
- public void deactivateOldEntries(boolean verbose)
- {
- for (Admin admin : allAdmins)
- {
- if (!admin.isActive() || admin.getRank().isAtLeast(Rank.SENIOR_ADMIN))
- {
- continue;
- }
-
- final Date lastLogin = admin.getLastLogin();
- final long lastLoginHours = TimeUnit.HOURS.convert(new Date().getTime() - lastLogin.getTime(), TimeUnit.MILLISECONDS);
-
- if (lastLoginHours < ConfigEntry.ADMINLIST_CLEAN_THESHOLD_HOURS.getInteger())
- {
- continue;
- }
-
- if (verbose)
- {
- FUtil.adminAction("TotalFreedomMod", "Deactivating admin " + admin.getName() + ", inactive for " + lastLoginHours + " hours", true);
- }
-
- admin.setActive(false);
- save(admin);
- }
-
- updateTables();
- }
-
- public boolean isVanished(String player)
- {
- return vanished.contains(player);
- }
-}
\ No newline at end of file
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/banning/Ban.java b/src/main/java/me/totalfreedom/totalfreedommod/banning/Ban.java
index 11a56c04..0dc1e56e 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/banning/Ban.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/banning/Ban.java
@@ -10,17 +10,16 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
+import java.util.UUID;
import lombok.Getter;
import lombok.Setter;
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
-import me.totalfreedom.totalfreedommod.config.IConfig;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
-import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
-public class Ban implements IConfig
+public class Ban
{
public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd \'at\' HH:mm:ss z");
@@ -29,6 +28,9 @@ public class Ban implements IConfig
@Setter
private String username = null;
@Getter
+ @Setter
+ private UUID uuid = null;
+ @Getter
private final List ips = Lists.newArrayList();
@Getter
@Setter
@@ -47,9 +49,10 @@ public class Ban implements IConfig
{
}
- public Ban(String username, String ip, String by, Date at, Date expire, String reason)
+ public Ban(String username, UUID uuid, String ip, String by, Date at, Date expire, String reason)
{
this(username,
+ uuid,
Arrays.asList(ip),
by,
at,
@@ -57,9 +60,10 @@ public class Ban implements IConfig
reason);
}
- public Ban(String username, List ips, String by, Date at, Date expire, String reason)
+ public Ban(String username, UUID uuid, List ips, String by, Date at, Date expire, String reason)
{
this.username = username;
+ this.uuid = uuid;
if (ips != null)
{
this.ips.addAll(ips);
@@ -80,12 +84,12 @@ public class Ban implements IConfig
public static Ban forPlayerIp(Player player, CommandSender by, Date expiry, String reason)
{
- return new Ban(null, Arrays.asList(FUtil.getIp(player)), by.getName(), Date.from(Instant.now()), expiry, reason);
+ return new Ban(null, null, Arrays.asList(FUtil.getIp(player)), by.getName(), Date.from(Instant.now()), expiry, reason);
}
public static Ban forPlayerIp(String ip, CommandSender by, Date expiry, String reason)
{
- return new Ban(null, ip, by.getName(), Date.from(Instant.now()), expiry, reason);
+ return new Ban(null, null, ip, by.getName(), Date.from(Instant.now()), expiry, reason);
}
//
@@ -98,7 +102,8 @@ public class Ban implements IConfig
public static Ban forPlayerName(String player, CommandSender by, Date expiry, String reason)
{
return new Ban(player,
- new ArrayList(),
+ null,
+ new ArrayList<>(),
by.getName(),
Date.from(Instant.now()),
expiry,
@@ -115,6 +120,7 @@ public class Ban implements IConfig
public static Ban forPlayer(Player player, CommandSender by, Date expiry, String reason)
{
return new Ban(player.getName(),
+ player.getUniqueId(),
FUtil.getIp(player),
by.getName(),
Date.from(Instant.now()),
@@ -125,6 +131,7 @@ public class Ban implements IConfig
public static Ban forPlayerFuzzy(Player player, CommandSender by, Date expiry, String reason)
{
return new Ban(player.getName(),
+ player.getUniqueId(),
FUtil.getFuzzyIp(FUtil.getIp(player)),
by.getName(),
Date.from(Instant.now()),
@@ -137,6 +144,11 @@ public class Ban implements IConfig
return username != null && !username.isEmpty();
}
+ public boolean hasUUID()
+ {
+ return uuid != null;
+ }
+
public boolean addIp(String ip)
{
return ips.add(ip);
@@ -238,31 +250,6 @@ public class Ban implements IConfig
return !(hasUsername() && !(getUsername().equalsIgnoreCase(ban.getUsername())));
}
- @Override
- public int hashCode()
- {
- int hash = 7;
- hash = 79 * hash + (this.username != null ? this.username.toLowerCase().hashCode() : 0);
- hash = 79 * hash + (this.ips != null ? this.ips.hashCode() : 0);
- return hash;
- }
-
- @Override
- public void loadFrom(ConfigurationSection cs)
- {
- }
-
- @Override
- public void saveTo(ConfigurationSection cs)
- {
- }
-
- @Override
- public boolean isValid()
- {
- return username != null || !ips.isEmpty();
- }
-
private void dedupeIps()
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/banning/BanManager.java b/src/main/java/me/totalfreedom/totalfreedommod/banning/BanManager.java
index 76ee3c27..c07a3979 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/banning/BanManager.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/banning/BanManager.java
@@ -12,6 +12,7 @@ import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.UUID;
import me.totalfreedom.totalfreedommod.FreedomService;
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.player.PlayerData;
@@ -27,8 +28,9 @@ public class BanManager extends FreedomService
{
private final Set bans = Sets.newHashSet();
- private final Map ipBans = Maps.newHashMap();
private final Map nameBans = Maps.newHashMap();
+ private final Map uuidBans = Maps.newHashMap();
+ private final Map ipBans = Maps.newHashMap();
private final List unbannableUsernames = Lists.newArrayList();
//
@@ -44,12 +46,18 @@ public class BanManager extends FreedomService
while (banSet.next())
{
String name = banSet.getString("name");
+ UUID uuid = null;
+ String strUUID = banSet.getString("uuid");
+ if (strUUID != null)
+ {
+ uuid = UUID.fromString(strUUID);
+ }
List ips = FUtil.stringToList(banSet.getString("ips"));
String by = banSet.getString("by");
Date at = new Date(banSet.getLong("at"));
Date expires = new Date(banSet.getLong("expires"));
String reason = banSet.getString("reason");
- Ban ban = new Ban(name, ips, by, at, expires, reason);
+ Ban ban = new Ban(name, uuid, ips, by, at, expires, reason);
bans.add(ban);
}
}
@@ -136,6 +144,18 @@ public class BanManager extends FreedomService
return null;
}
+ public Ban getByUUID(UUID uuid)
+ {
+ final Ban directBan = uuidBans.get(uuid);
+
+ if (directBan != null && !directBan.isExpired())
+ {
+ return directBan;
+ }
+
+ return null;
+ }
+
public Ban unbanIp(String ip)
{
final Ban ban = getByIp(ip);
@@ -224,13 +244,19 @@ public class BanManager extends FreedomService
public void onPlayerLogin(PlayerLoginEvent event)
{
final String username = event.getPlayer().getName();
+ final UUID uuid = event.getPlayer().getUniqueId();
final String ip = FUtil.getIp(event);
// Regular ban
Ban ban = getByUsername(username);
if (ban == null)
{
- ban = getByIp(ip);
+ ban = getByUUID(uuid);
+
+ if (ban == null)
+ {
+ ban = getByIp(ip);
+ }
}
if (ban != null && !ban.isExpired())
@@ -245,7 +271,7 @@ public class BanManager extends FreedomService
final Player player = event.getPlayer();
final PlayerData data = plugin.pl.getData(player);
- if (!plugin.al.isAdmin(player))
+ if (!plugin.sl.isStaff(player))
{
return;
}
@@ -279,6 +305,7 @@ public class BanManager extends FreedomService
}
nameBans.clear();
+ uuidBans.clear();
ipBans.clear();
for (Ban ban : bans)
{
@@ -287,6 +314,11 @@ public class BanManager extends FreedomService
nameBans.put(ban.getUsername().toLowerCase(), ban);
}
+ if (ban.hasUUID())
+ {
+ uuidBans.put(ban.getUuid(), ban);
+ }
+
if (ban.hasIps())
{
for (String ip : ban.getIps())
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBan.java b/src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBan.java
new file mode 100644
index 00000000..1e3efcbe
--- /dev/null
+++ b/src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBan.java
@@ -0,0 +1,63 @@
+package me.totalfreedom.totalfreedommod.banning;
+
+import com.google.common.collect.Lists;
+import java.util.List;
+import java.util.UUID;
+import lombok.Getter;
+import lombok.Setter;
+import me.totalfreedom.totalfreedommod.config.IConfig;
+import me.totalfreedom.totalfreedommod.util.FLog;
+import org.bukkit.configuration.ConfigurationSection;
+
+public class IndefiniteBan implements IConfig
+{
+
+ @Getter
+ @Setter
+ private String username = null;
+ @Getter
+ @Setter
+ private UUID uuid = null;
+ @Getter
+ private final List ips = Lists.newArrayList();
+ @Getter
+ @Setter
+ private String reason = null;
+
+ public IndefiniteBan()
+ {
+ }
+
+ @Override
+ public void loadFrom(ConfigurationSection cs)
+ {
+ this.username = cs.getName();
+ try
+ {
+ String strUUID = cs.getString("uuid", null);
+ if (strUUID != null)
+ {
+ UUID uuid = UUID.fromString(strUUID);
+ this.uuid = uuid;
+ }
+ }
+ catch (IllegalArgumentException e)
+ {
+ FLog.warning("Failed to load indefinite banned UUID for " + this.username + ". Make sure the UUID is in the correct format with dashes.");
+ }
+ this.ips.clear();
+ this.ips.addAll(cs.getStringList("ips"));
+ this.reason = cs.getString("reason", null);
+ }
+
+ @Override
+ public void saveTo(ConfigurationSection cs)
+ {
+ }
+
+ @Override
+ public boolean isValid()
+ {
+ return username != null;
+ }
+}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBanList.java b/src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBanList.java
new file mode 100644
index 00000000..042cdf75
--- /dev/null
+++ b/src/main/java/me/totalfreedom/totalfreedommod/banning/IndefiniteBanList.java
@@ -0,0 +1,140 @@
+package me.totalfreedom.totalfreedommod.banning;
+
+import com.google.common.base.Strings;
+import com.google.common.collect.Sets;
+import java.util.Set;
+import java.util.UUID;
+import lombok.Getter;
+import me.totalfreedom.totalfreedommod.FreedomService;
+import me.totalfreedom.totalfreedommod.config.ConfigEntry;
+import me.totalfreedom.totalfreedommod.config.YamlConfig;
+import me.totalfreedom.totalfreedommod.util.FLog;
+import me.totalfreedom.totalfreedommod.util.FUtil;
+import org.bukkit.ChatColor;
+import org.bukkit.configuration.ConfigurationSection;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.EventPriority;
+import org.bukkit.event.player.PlayerLoginEvent;
+
+public class IndefiniteBanList extends FreedomService
+{
+
+ public static final String CONFIG_FILENAME = "indefinitebans.yml";
+
+ @Getter
+ private final Set indefBans = Sets.newHashSet();
+
+ @Getter
+ private int nameBanCount = 0;
+
+ @Getter
+ private int uuidBanCount = 0;
+
+ @Getter
+ private int ipBanCount = 0;
+
+ @Override
+ public void onStart()
+ {
+ indefBans.clear();
+
+ final YamlConfig config = new YamlConfig(plugin, CONFIG_FILENAME, true);
+ config.load();
+
+ for (String name : config.getKeys(false))
+ {
+ if (!config.isConfigurationSection(name))
+ {
+ FLog.warning("Could not load indefinite ban for " + name + ": Invalid format!");
+ continue;
+ }
+
+ IndefiniteBan indefBan = new IndefiniteBan();
+ ConfigurationSection cs = config.getConfigurationSection(name);
+ indefBan.loadFrom(cs);
+
+ if (!indefBan.isValid())
+ {
+ FLog.warning("Not adding indefinite ban for " + name + ": Missing information.");
+ continue;
+ }
+
+ indefBans.add(indefBan);
+ }
+
+ updateCount();
+
+ FLog.info("Loaded " + nameBanCount + " indefinite name bans, " + uuidBanCount + " UUID bans, and " + ipBanCount + " ip bans");
+ }
+
+ @Override
+ public void onStop()
+ {
+ }
+
+ @EventHandler(priority = EventPriority.LOWEST)
+ public void onPlayerLogin(PlayerLoginEvent event)
+ {
+ final String username = event.getPlayer().getName();
+ final UUID uuid = event.getPlayer().getUniqueId();
+ final String ip = FUtil.getIp(event);
+
+ String bannedBy = "";
+ IndefiniteBan ban = null;
+
+ for (IndefiniteBan indefBan : indefBans)
+ {
+ if (username.toLowerCase().equals(indefBan.getUsername().toLowerCase()))
+ {
+ bannedBy = "username";
+ ban = indefBan;
+ break;
+ }
+ else if (indefBan.getUuid() != null && indefBan.getUuid().equals(uuid))
+ {
+ bannedBy = "UUID";
+ ban = indefBan;
+ break;
+ }
+ else if (indefBan.getIps().contains(ip))
+ {
+ bannedBy = "IP address";
+ ban = indefBan;
+ break;
+ }
+ }
+
+ if (ban != null)
+ {
+ String kickMessage = ChatColor.RED + "Your " + bannedBy + " is indefinitely banned from this server.";
+ String reason = ban.getReason();
+ if (!Strings.isNullOrEmpty(reason))
+ {
+ kickMessage += "\nReason: " + ChatColor.GOLD + reason;
+ }
+ String appealURL = ConfigEntry.SERVER_INDEFBAN_URL.getString();
+ if (!Strings.isNullOrEmpty(appealURL))
+ {
+ kickMessage += ChatColor.RED + "\n\nRelease procedures are available at\n" + ChatColor.GOLD + ConfigEntry.SERVER_INDEFBAN_URL.getString();
+ }
+ event.disallow(PlayerLoginEvent.Result.KICK_OTHER, kickMessage);
+ }
+ }
+
+ private void updateCount()
+ {
+ nameBanCount = 0;
+ uuidBanCount = 0;
+ ipBanCount = 0;
+
+ for (IndefiniteBan indefBan : indefBans)
+ {
+ nameBanCount += 1;
+ if (indefBan.getUuid() != null)
+ {
+ uuidBanCount += 1;
+ }
+ ipBanCount += indefBan.getIps().size();
+ }
+ }
+}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/banning/PermbanList.java b/src/main/java/me/totalfreedom/totalfreedommod/banning/PermbanList.java
deleted file mode 100644
index 7265bab6..00000000
--- a/src/main/java/me/totalfreedom/totalfreedommod/banning/PermbanList.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package me.totalfreedom.totalfreedommod.banning;
-
-import com.google.common.collect.Sets;
-import java.util.Set;
-import lombok.Getter;
-import me.totalfreedom.totalfreedommod.FreedomService;
-import me.totalfreedom.totalfreedommod.config.ConfigEntry;
-import me.totalfreedom.totalfreedommod.config.YamlConfig;
-import me.totalfreedom.totalfreedommod.util.FLog;
-import me.totalfreedom.totalfreedommod.util.FUtil;
-import org.bukkit.ChatColor;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.EventPriority;
-import org.bukkit.event.player.PlayerLoginEvent;
-
-public class PermbanList extends FreedomService
-{
-
- public static final String CONFIG_FILENAME = "permbans.yml";
-
- @Getter
- private final Set permbannedNames = Sets.newHashSet();
- @Getter
- private final Set permbannedIps = Sets.newHashSet();
-
- @Override
- public void onStart()
- {
- permbannedNames.clear();
- permbannedIps.clear();
-
- final YamlConfig config = new YamlConfig(plugin, CONFIG_FILENAME, true);
- config.load();
-
- for (String name : config.getKeys(false))
- {
- permbannedNames.add(name.toLowerCase().trim());
- permbannedIps.addAll(config.getStringList(name));
- }
-
- FLog.info("Loaded " + permbannedIps.size() + " perm IP bans and " + permbannedNames.size() + " perm username bans.");
- }
-
- @Override
- public void onStop()
- {
- }
-
- @EventHandler(priority = EventPriority.LOWEST)
- public void onPlayerLogin(PlayerLoginEvent event)
- {
- final String username = event.getPlayer().getName();
- final String ip = FUtil.getIp(event);
-
- // Permbanned IPs
- for (String testIp : getPermbannedIps())
- {
- if (FUtil.fuzzyIpMatch(testIp, ip, 4))
- {
- event.disallow(PlayerLoginEvent.Result.KICK_OTHER,
- ChatColor.RED + "Your IP address is permanently banned from this server.\n"
- + "Release procedures are available at\n"
- + ChatColor.GOLD + ConfigEntry.SERVER_PERMBAN_URL.getString());
- return;
- }
- }
-
- // Permbanned usernames
- for (String testPlayer : getPermbannedNames())
- {
- if (testPlayer.equalsIgnoreCase(username))
- {
- event.disallow(PlayerLoginEvent.Result.KICK_OTHER,
- ChatColor.RED + "Your username is permanently banned from this server.\n"
- + "Release procedures are available at\n"
- + ChatColor.GOLD + ConfigEntry.SERVER_PERMBAN_URL.getString());
- return;
- }
- }
-
- }
-
- public Set getPermbannedNames()
- {
- return this.permbannedNames;
- }
-
- public Set getPermbannedIps()
- {
- return this.permbannedIps;
- }
-}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/EditBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/EditBlocker.java
index 0a7217e0..a27c4248 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/EditBlocker.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/EditBlocker.java
@@ -30,7 +30,7 @@ public class EditBlocker extends FreedomService
return;
}
- if (plugin.al.isAdminSync(event.getPlayer()))
+ if (plugin.sl.isStaffSync(event.getPlayer()))
{
fPlayer.setEditBlocked(false);
return;
@@ -49,7 +49,7 @@ public class EditBlocker extends FreedomService
return;
}
- if (plugin.al.isAdminSync(event.getPlayer()))
+ if (plugin.sl.isStaffSync(event.getPlayer()))
{
fPlayer.setEditBlocked(false);
return;
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/EventBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/EventBlocker.java
index 9917d90e..0e774701 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/EventBlocker.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/EventBlocker.java
@@ -11,13 +11,21 @@ import org.bukkit.Material;
import org.bukkit.attribute.Attribute;
import org.bukkit.attribute.AttributeModifier;
import org.bukkit.block.data.AnaloguePowerable;
-import org.bukkit.block.data.BlockData;
import org.bukkit.block.data.Powerable;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Tameable;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
-import org.bukkit.event.block.*;
+import org.bukkit.event.block.BlockBurnEvent;
+import org.bukkit.event.block.BlockDispenseEvent;
+import org.bukkit.event.block.BlockFromToEvent;
+import org.bukkit.event.block.BlockGrowEvent;
+import org.bukkit.event.block.BlockIgniteEvent;
+import org.bukkit.event.block.BlockPhysicsEvent;
+import org.bukkit.event.block.BlockPistonExtendEvent;
+import org.bukkit.event.block.BlockPistonRetractEvent;
+import org.bukkit.event.block.BlockRedstoneEvent;
+import org.bukkit.event.block.LeavesDecayEvent;
import org.bukkit.event.entity.EntityCombustEvent;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityDeathEvent;
@@ -27,7 +35,6 @@ import org.bukkit.event.entity.FireworkExplodeEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerDropItemEvent;
import org.bukkit.event.player.PlayerRespawnEvent;
-import org.bukkit.material.Redstone;
public class EventBlocker extends FreedomService
{
@@ -141,7 +148,7 @@ public class EventBlocker extends FreedomService
@EventHandler(priority = EventPriority.NORMAL)
public void onPlayerDropItem(PlayerDropItemEvent event)
{
- if (!plugin.al.isAdmin(event.getPlayer()))
+ if (!plugin.sl.isStaff(event.getPlayer()))
{
event.setCancelled(true);
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java
index f33e740b..b2dfadb2 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/InteractBlocker.java
@@ -5,7 +5,6 @@ import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.util.Groups;
import org.bukkit.ChatColor;
import org.bukkit.Material;
-import org.bukkit.block.Biome;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
@@ -91,7 +90,7 @@ public class InteractBlocker extends FreedomService
{
case WATER_BUCKET:
{
- if (plugin.al.isAdmin(player) || ConfigEntry.ALLOW_WATER_PLACE.getBoolean())
+ if (plugin.sl.isStaff(player) || ConfigEntry.ALLOW_WATER_PLACE.getBoolean())
{
break;
}
@@ -104,7 +103,7 @@ public class InteractBlocker extends FreedomService
case LAVA_BUCKET:
{
- if (plugin.al.isAdmin(player) || ConfigEntry.ALLOW_LAVA_PLACE.getBoolean())
+ if (plugin.sl.isStaff(player) || ConfigEntry.ALLOW_LAVA_PLACE.getBoolean())
{
break;
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/PVPBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/PVPBlocker.java
index b6efd382..de388454 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/PVPBlocker.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/PVPBlocker.java
@@ -61,7 +61,7 @@ public class PVPBlocker extends FreedomService
}
}
- if (player != null & !plugin.al.isAdmin(player))
+ if (player != null & !plugin.sl.isStaff(player))
{
if (player.getGameMode() == GameMode.CREATIVE)
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlocker.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlocker.java
index a0414fa2..0f19a90e 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlocker.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlocker.java
@@ -12,6 +12,7 @@ import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.util.FLog;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.apache.commons.lang.StringUtils;
+import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandMap;
import org.bukkit.command.CommandSender;
@@ -19,7 +20,6 @@ import org.bukkit.command.SimpleCommandMap;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
-import org.bukkit.Bukkit;
import org.bukkit.plugin.SimplePluginManager;
public class CommandBlocker extends FreedomService
@@ -171,7 +171,7 @@ public class CommandBlocker extends FreedomService
for (String part : commandParts)
{
- if (command.startsWith("/") && !plugin.al.isAdmin(sender) && (part.contains("#copy") || part.contains("#clipboard")))
+ if (command.startsWith("/") && !plugin.sl.isStaff(sender) && (part.contains("#copy") || part.contains("#clipboard")))
{
FUtil.playerMsg(sender, "WorldEdit copy variables are disabled.");
return true;
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlockerRank.java b/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlockerRank.java
index 84f7b6eb..cfb6e03c 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlockerRank.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/blocking/command/CommandBlockerRank.java
@@ -1,8 +1,8 @@
package me.totalfreedom.totalfreedommod.blocking.command;
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
-import me.totalfreedom.totalfreedommod.admin.Admin;
import me.totalfreedom.totalfreedommod.rank.Rank;
+import me.totalfreedom.totalfreedommod.staff.StaffMember;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@@ -40,10 +40,10 @@ public enum CommandBlockerRank
return TELNET;
}
- Admin admin = TotalFreedomMod.plugin().al.getAdmin(sender);
- if (admin != null)
+ StaffMember staffMember = TotalFreedomMod.plugin().sl.getAdmin(sender);
+ if (staffMember != null)
{
- if (admin.getRank() == Rank.SENIOR_ADMIN)
+ if (staffMember.getRank() == Rank.ADMIN)
{
return SENIOR;
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/bridge/BukkitTelnetBridge.java b/src/main/java/me/totalfreedom/totalfreedommod/bridge/BukkitTelnetBridge.java
index 607ad49d..f791e2ee 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/bridge/BukkitTelnetBridge.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/bridge/BukkitTelnetBridge.java
@@ -10,8 +10,8 @@ import me.totalfreedom.bukkittelnet.api.TelnetPreLoginEvent;
import me.totalfreedom.bukkittelnet.api.TelnetRequestDataTagsEvent;
import me.totalfreedom.bukkittelnet.session.ClientSession;
import me.totalfreedom.totalfreedommod.FreedomService;
-import me.totalfreedom.totalfreedommod.admin.Admin;
import me.totalfreedom.totalfreedommod.rank.Rank;
+import me.totalfreedom.totalfreedommod.staff.StaffMember;
import me.totalfreedom.totalfreedommod.util.FLog;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -43,15 +43,15 @@ public class BukkitTelnetBridge extends FreedomService
return;
}
- final Admin admin = plugin.al.getEntryByIpFuzzy(ip);
+ final StaffMember staffMember = plugin.sl.getEntryByIpFuzzy(ip);
- if (admin == null || !admin.isActive() || !admin.getRank().hasConsoleVariant())
+ if (staffMember == null || !staffMember.isActive() || !staffMember.getRank().hasConsoleVariant())
{
return;
}
event.setBypassPassword(true);
- event.setName(admin.getName());
+ event.setName(staffMember.getName());
}
@EventHandler(priority = EventPriority.NORMAL)
@@ -77,14 +77,14 @@ public class BukkitTelnetBridge extends FreedomService
boolean isTelnetAdmin = false;
boolean isSeniorAdmin = false;
- final Admin admin = plugin.al.getAdmin(player);
- if (admin != null)
+ final StaffMember staffMember = plugin.sl.getAdmin(player);
+ if (staffMember != null)
{
- boolean active = admin.isActive();
+ boolean active = staffMember.isActive();
isAdmin = active;
- isSeniorAdmin = active && admin.getRank() == Rank.SENIOR_ADMIN;
- isTelnetAdmin = active && (isSeniorAdmin || admin.getRank() == Rank.TELNET_ADMIN);
+ isSeniorAdmin = active && staffMember.getRank() == Rank.ADMIN;
+ isTelnetAdmin = active && (isSeniorAdmin || staffMember.getRank() == Rank.MOD);
}
playerTags.put("tfm.admin.isAdmin", isAdmin);
@@ -121,22 +121,22 @@ public class BukkitTelnetBridge extends FreedomService
return bukkitTelnetPlugin;
}
- public List getConnectedAdmins()
+ public List getConnectedAdmins()
{
- List admins = new ArrayList<>();
+ List staffMembers = new ArrayList<>();
final BukkitTelnet telnet = getBukkitTelnetPlugin();
if (telnet != null)
{
for (ClientSession session : telnet.appender.getSessions())
{
- Admin admin = plugin.al.getEntryByName(session.getUserName().toLowerCase());
- if (admin != null && !admins.contains(admin))
+ StaffMember staffMember = plugin.sl.getEntryByName(session.getUserName().toLowerCase());
+ if (staffMember != null && !staffMembers.contains(staffMember))
{
- admins.add(admin);
+ staffMembers.add(staffMember);
}
}
}
- return admins;
+ return staffMembers;
}
public void killTelnetSessions(final String name)
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/bridge/LibsDisguisesBridge.java b/src/main/java/me/totalfreedom/totalfreedommod/bridge/LibsDisguisesBridge.java
index 20cc105e..bf3cdca0 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/bridge/LibsDisguisesBridge.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/bridge/LibsDisguisesBridge.java
@@ -1,16 +1,15 @@
package me.totalfreedom.totalfreedommod.bridge;
+import me.libraryaddict.disguise.BlockedDisguises;
import me.libraryaddict.disguise.DisguiseAPI;
import me.libraryaddict.disguise.LibsDisguises;
import me.totalfreedom.totalfreedommod.FreedomService;
import me.totalfreedom.totalfreedommod.util.FLog;
-import me.libraryaddict.disguise.BlockedDisguises;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
public class LibsDisguisesBridge extends FreedomService
{
-
private LibsDisguises libsDisguisesPlugin = null;
@Override
@@ -64,7 +63,7 @@ public class LibsDisguisesBridge extends FreedomService
return null;
}
- public void undisguiseAll(boolean admins)
+ public void undisguiseAll(boolean staff)
{
try
{
@@ -79,7 +78,7 @@ public class LibsDisguisesBridge extends FreedomService
{
if (DisguiseAPI.isDisguised(player))
{
- if (!admins && plugin.al.isAdmin(player))
+ if (!staff && plugin.sl.isStaff(player))
{
continue;
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/caging/Cager.java b/src/main/java/me/totalfreedom/totalfreedommod/caging/Cager.java
index f006955c..504d9f72 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/caging/Cager.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/caging/Cager.java
@@ -31,7 +31,7 @@ public class Cager extends FreedomService
{
Player player = event.getPlayer();
if (player == null
- || plugin.al.isAdmin(player))
+ || plugin.sl.isStaff(player))
{
return;
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/CommandLoader.java b/src/main/java/me/totalfreedom/totalfreedommod/command/CommandLoader.java
index 9da62dee..fd11e02d 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/CommandLoader.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/CommandLoader.java
@@ -65,7 +65,6 @@ public class CommandLoader extends FreedomService
{
try
{
- FLog.debug("Loading command class " + commandClass.getSimpleName());
add(commandClass.newInstance());
}
catch (InstantiationException | IllegalAccessException | ExceptionInInitializerError ex)
@@ -73,10 +72,7 @@ public class CommandLoader extends FreedomService
FLog.warning("Failed to register command: /" + commandClass.getSimpleName().replace("Command_" , ""));
}
}
- }
- public int getCommandAmount()
- {
- return commands.size();
+ FLog.info("Loaded " + commands.size() + " commands");
}
}
\ No newline at end of file
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/CommandPermissions.java b/src/main/java/me/totalfreedom/totalfreedommod/command/CommandPermissions.java
index b5b00c9c..3db48004 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/CommandPermissions.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/CommandPermissions.java
@@ -8,7 +8,7 @@ import me.totalfreedom.totalfreedommod.rank.Rank;
public @interface CommandPermissions
{
- Rank level() default Rank.IMPOSTOR;
+ Rank level() default Rank.NON_OP;
SourceType source() default SourceType.BOTH;
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_adventure.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_adventure.java
index 1252dce1..49736cd2 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_adventure.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_adventure.java
@@ -28,7 +28,7 @@ public class Command_adventure extends FreedomCommand
return true;
}
- checkRank(Rank.SUPER_ADMIN);
+ checkRank(Rank.TRIAL_MOD);
if (args[0].equals("-a"))
{
@@ -37,7 +37,7 @@ public class Command_adventure extends FreedomCommand
targetPlayer.setGameMode(GameMode.ADVENTURE);
}
- FUtil.adminAction(sender.getName(), "Changing everyone's gamemode to adventure", false);
+ FUtil.staffAction(sender.getName(), "Changing everyone's gamemode to adventure", false);
msg("Your gamemode has been set to adventure.");
return true;
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_aeclear.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_aeclear.java
index 3127abbf..5fc4ba28 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_aeclear.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_aeclear.java
@@ -9,7 +9,7 @@ import org.bukkit.entity.AreaEffectCloud;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH)
@CommandParameters(description = "Clears lingering potion area effect clouds.", usage = "/", aliases = "aec")
public class Command_aeclear extends FreedomCommand
{
@@ -17,7 +17,7 @@ public class Command_aeclear extends FreedomCommand
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
- FUtil.adminAction(sender.getName(), "Removing all area effect clouds.", true);
+ FUtil.staffAction(sender.getName(), "Removing all area effect clouds.", true);
int removed = 0;
for (World world : server.getWorlds())
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_amp.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_amp.java
new file mode 100644
index 00000000..edaf44ef
--- /dev/null
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_amp.java
@@ -0,0 +1,101 @@
+package me.totalfreedom.totalfreedommod.command;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import me.totalfreedom.totalfreedommod.player.PlayerData;
+import me.totalfreedom.totalfreedommod.rank.Rank;
+import me.totalfreedom.totalfreedommod.staff.StaffMember;
+import me.totalfreedom.totalfreedommod.util.FUtil;
+import org.bukkit.ChatColor;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_IN_GAME)
+@CommandParameters(description = "Manage your AMP account", usage = "/ ")
+public class Command_amp extends FreedomCommand
+{
+
+ @Override
+ public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
+ {
+
+ if (!plugin.amp.isEnabled())
+ {
+ msg("AMP integration is currently disabled.", ChatColor.RED);
+ return true;
+ }
+
+ PlayerData playerData = getData(playerSender);
+
+ if (playerData.getDiscordID() == null)
+ {
+ msg("You must have a linked discord account.", ChatColor.RED);
+ return true;
+ }
+
+ if (args.length == 0)
+ {
+ return false;
+ }
+
+ if (args[0].equals("create"))
+ {
+ msg("Creating your AMP account...", ChatColor.GREEN);
+ StaffMember staffMember = getAdmin(playerSender);
+
+ if (staffMember.getAmpUsername() != null)
+ {
+ msg("You already have an AMP account.", ChatColor.RED);
+ return true;
+ }
+
+ String username = sender.getName();
+ String password = FUtil.randomString(30);
+
+ staffMember.setAmpUsername(username);
+ plugin.sl.save(staffMember);
+ plugin.sl.updateTables();
+
+ plugin.amp.createAccount(username, password);
+ plugin.dc.sendAMPInfo(playerData, username, password);
+ msg("Successfully created your AMP account. Check your DMs from " + plugin.dc.formatBotTag() + " on discord to get your credentials.", ChatColor.GREEN);
+ return true;
+ }
+ else if (args[0].equals("resetpassword"))
+ {
+ StaffMember staffMember = getAdmin(playerSender);
+
+ if (staffMember.getAmpUsername() == null)
+ {
+ msg("You do not have an AMP account.", ChatColor.RED);
+ return true;
+ }
+
+ msg("Resetting your password...", ChatColor.GREEN);
+
+ String username = staffMember.getAmpUsername();
+ String password = FUtil.randomString(30);
+ plugin.amp.setPassword(username,password);
+ plugin.dc.sendAMPInfo(playerData, username, password);
+
+ msg("Successfully reset your AMP account password. Check your DMs from " + plugin.dc.formatBotTag() + " on discord to get your credentials.", ChatColor.GREEN);
+ return true;
+ }
+
+ return false;
+ }
+
+ @Override
+ public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
+ {
+ if (args.length == 1 && plugin.sl.isAdmin(sender))
+ {
+ return Arrays.asList("create", "resetpassword");
+ }
+
+ return Collections.emptyList();
+ }
+
+}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_announce.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_announce.java
index 4abaf2b0..8e216bc1 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_announce.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_announce.java
@@ -6,7 +6,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.MOD, source = SourceType.BOTH)
@CommandParameters(description = "Make an announcement anonymously to operators.", usage = "/ ")
public class Command_announce extends FreedomCommand
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autoclear.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autoclear.java
index 66aa34f5..37a74954 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autoclear.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autoclear.java
@@ -5,7 +5,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH)
@CommandParameters(description = "Toggle whether or not a player has their inventory automatically cleared when they join", usage = "/ ")
public class Command_autoclear extends FreedomCommand
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autotp.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autotp.java
index f52e82b5..5b50a5f5 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autotp.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_autotp.java
@@ -5,7 +5,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH)
@CommandParameters(description = "Toggle whether or not a player is automatically teleported when they join", usage = "/ ")
public class Command_autotp extends FreedomCommand
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java
index dce660e1..e29e4595 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ban.java
@@ -18,11 +18,10 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH, blockHostConsole = true)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH, blockHostConsole = true)
@CommandParameters(description = "Bans the specified player.", usage = "/ [reason] [-nrb | -q]", aliases = "gtfo")
public class Command_ban extends FreedomCommand
{
-
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
@@ -105,7 +104,10 @@ public class Command_ban extends FreedomCommand
}
}
}
-
+ else
+ {
+ msg("Banned " + player.getName() + " quietly.");
+ }
// Kill player
player.setHealth(0.0);
}
@@ -122,7 +124,17 @@ public class Command_ban extends FreedomCommand
}
// Ban player
- Ban ban = Ban.forPlayerName(username, sender, null, reason);
+ Ban ban;
+
+ if (player != null)
+ {
+ ban = Ban.forPlayer(player, sender, null, reason);
+ }
+ else
+ {
+ ban = Ban.forPlayerName(username, sender, null, reason);
+ }
+
for (String ip : ips)
{
ban.addIp(ip);
@@ -142,7 +154,7 @@ public class Command_ban extends FreedomCommand
bcast.append(" - Reason: ").append(ChatColor.YELLOW).append(reason);
}
msg(sender, ChatColor.GRAY + username + " has been banned and IP is: " + StringUtils.join(ips, ", "));
- FUtil.adminAction(sender.getName(), String.format(bcast.toString()), true);
+ FUtil.staffAction(sender.getName(), String.format(bcast.toString()), true);
}
// Kick player and handle others on IP
@@ -163,4 +175,4 @@ public class Command_ban extends FreedomCommand
return true;
}
-}
\ No newline at end of file
+}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banip.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banip.java
index 272960cc..7a408d2a 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banip.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banip.java
@@ -11,7 +11,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH, blockHostConsole = true)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH, blockHostConsole = true)
@CommandParameters(description = "Bans the specified ip.", usage = "/ [reason] [-q]")
public class Command_banip extends FreedomCommand
{
@@ -72,7 +72,7 @@ public class Command_banip extends FreedomCommand
{
// Broadcast
FLog.info(ChatColor.RED + sender.getName() + " - Banned the IP " + ip);
- String message = ChatColor.RED + sender.getName() + " - Banned " + (plugin.al.isAdmin(player) ? "the IP " + ip : "an IP");
+ String message = ChatColor.RED + sender.getName() + " - Banned " + (plugin.sl.isStaff(player) ? "the IP " + ip : "an IP");
player.sendMessage(message);
}
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banlist.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banlist.java
index b16883a2..de81d15e 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banlist.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banlist.java
@@ -7,7 +7,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.OP, source = SourceType.BOTH)
-@CommandParameters(description = "Shows all banned player names. Senior Admins may optionally use 'purge' to clear the list.", usage = "/ [purge]")
+@CommandParameters(description = "Shows all banned player names. Admins may optionally use 'purge' to clear the list.", usage = "/ [purge]")
public class Command_banlist extends FreedomCommand
{
@@ -18,23 +18,19 @@ public class Command_banlist extends FreedomCommand
{
if (args[0].equalsIgnoreCase("purge"))
{
- checkRank(Rank.SENIOR_ADMIN);
+ checkRank(Rank.ADMIN);
- FUtil.adminAction(sender.getName(), "Purging the ban list", true);
+ FUtil.staffAction(sender.getName(), "Purging the ban list", true);
int amount = plugin.bm.purge();
msg("Purged " + amount + " player bans.");
-
return true;
-
}
-
return false;
}
msg(plugin.bm.getAllBans().size() + " player bans ("
+ plugin.bm.getUsernameBans().size() + " usernames, "
+ plugin.bm.getIpBans().size() + " IPs)");
-
return true;
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banname.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banname.java
index 2c6c977d..0d0ccd70 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banname.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_banname.java
@@ -10,7 +10,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH, blockHostConsole = true)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH, blockHostConsole = true)
@CommandParameters(description = "Bans the specified name.", usage = "/ [reason] [-q]")
public class Command_banname extends FreedomCommand
{
@@ -55,7 +55,7 @@ public class Command_banname extends FreedomCommand
if (!silent)
{
- FUtil.adminAction(sender.getName(), "Banned the name " + name, true);
+ FUtil.staffAction(sender.getName(), "Banned the name " + name, true);
}
Player player = getPlayer(name);
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockcmd.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockcmd.java
index 32a42f8f..73c536d9 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockcmd.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockcmd.java
@@ -8,7 +8,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH)
@CommandParameters(description = "Block all commands for everyone on the server, or a specific player.", usage = "/ <-a | purge | >", aliases = "blockcommands,blockcommand,bc,bcmd")
public class Command_blockcmd extends FreedomCommand
{
@@ -23,7 +23,7 @@ public class Command_blockcmd extends FreedomCommand
if (args[0].equals("purge"))
{
- FUtil.adminAction(sender.getName(), "Unblocking commands for all players", true);
+ FUtil.staffAction(sender.getName(), "Unblocking commands for all players", true);
int counter = 0;
for (Player player : server.getOnlinePlayers())
{
@@ -40,18 +40,18 @@ public class Command_blockcmd extends FreedomCommand
if (args[0].equals("-a"))
{
- FUtil.adminAction(sender.getName(), "Blocking commands for all non-admins", true);
+ FUtil.staffAction(sender.getName(), "Blocking commands for all non-staff", true);
int counter = 0;
for (Player player : server.getOnlinePlayers())
{
- if (isAdmin(player))
+ if (isStaff(player))
{
continue;
}
counter += 1;
plugin.pl.getPlayer(player).setCommandsBlocked(true);
- msg(player, "Your commands have been blocked by an admin.", ChatColor.RED);
+ msg(player, "Your commands have been blocked by a staff member.", ChatColor.RED);
}
msg("Blocked commands for " + counter + " players.");
@@ -66,9 +66,9 @@ public class Command_blockcmd extends FreedomCommand
return true;
}
- if (isAdmin(player))
+ if (isStaff(player))
{
- msg(player.getName() + " is an admin, and cannot have their commands blocked.");
+ msg(player.getName() + " is a staff member, and cannot have their commands blocked.");
return true;
}
@@ -76,7 +76,7 @@ public class Command_blockcmd extends FreedomCommand
if (!playerdata.allCommandsBlocked())
{
playerdata.setCommandsBlocked(true);
- FUtil.adminAction(sender.getName(), "Blocking all commands for " + player.getName(), true);
+ FUtil.staffAction(sender.getName(), "Blocking all commands for " + player.getName(), true);
msg("Blocked commands for " + player.getName() + ".");
}
else
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockedit.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockedit.java
index 70b9f15d..466a340f 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockedit.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockedit.java
@@ -10,7 +10,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH)
@CommandParameters(description = "Restricts/unrestricts block modification abilities for everyone on the server or a certain player.", usage = "/ [[-s] [reason] | list | purge | all]")
public class Command_blockedit extends FreedomCommand
{
@@ -46,7 +46,7 @@ public class Command_blockedit extends FreedomCommand
if (args[0].equals("purge"))
{
- FUtil.adminAction(sender.getName(), "Unblocking block modification abilities for all players.", true);
+ FUtil.staffAction(sender.getName(), "Unblocking block modification abilities for all players.", true);
int count = 0;
for (final Player player : this.server.getOnlinePlayers())
{
@@ -63,11 +63,11 @@ public class Command_blockedit extends FreedomCommand
if (args[0].equals("all"))
{
- FUtil.adminAction(sender.getName(), "Blocking block modification abilities for all non-admins.", true);
+ FUtil.staffAction(sender.getName(), "Blocking block modification abilities for all non-staff.", true);
int counter = 0;
for (final Player player : this.server.getOnlinePlayers())
{
- if (!plugin.al.isAdmin(player))
+ if (!plugin.sl.isStaff(player))
{
final FPlayer playerdata = plugin.pl.getPlayer(player);
playerdata.setEditBlocked(true);
@@ -105,20 +105,20 @@ public class Command_blockedit extends FreedomCommand
final FPlayer pd = plugin.pl.getPlayer(player2);
if (pd.isEditBlocked())
{
- FUtil.adminAction(sender.getName(), "Unblocking block modification abilities for " + player2.getName(), true);
+ FUtil.staffAction(sender.getName(), "Unblocking block modification abilities for " + player2.getName(), true);
pd.setEditBlocked(false);
msg("Unblocking block modification abilities for " + player2.getName());
msg(player2, "Your block modification abilities have been restored.", ChatColor.RED);
}
else
{
- if (plugin.al.isAdmin(player2))
+ if (plugin.sl.isStaff(player2))
{
- msg(player2.getName() + " is an admin, and cannot have their block edits blocked.");
+ msg(player2.getName() + " is a staff member, and cannot have their block edits blocked.");
return true;
}
- FUtil.adminAction(sender.getName(), "Blocking block modification abilities for " + player2.getName(), true);
+ FUtil.staffAction(sender.getName(), "Blocking block modification abilities for " + player2.getName(), true);
pd.setEditBlocked(true);
if (smite)
@@ -131,4 +131,4 @@ public class Command_blockedit extends FreedomCommand
}
return true;
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockpvp.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockpvp.java
index d9393dcb..0c6e70cd 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockpvp.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockpvp.java
@@ -10,7 +10,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH)
@CommandParameters(description = "Toggle PVP mode for everyone or a certain player.", usage = "/ [[-s] [reason] | list | purge | all]", aliases = "pvpblock,pvpmode")
public class Command_blockpvp extends FreedomCommand
{
@@ -46,7 +46,7 @@ public class Command_blockpvp extends FreedomCommand
if (args[0].equals("purge"))
{
- FUtil.adminAction(sender.getName(), "Enabling PVP for all players.", true);
+ FUtil.staffAction(sender.getName(), "Enabling PVP for all players.", true);
int count = 0;
for (Player player : server.getOnlinePlayers())
{
@@ -64,11 +64,11 @@ public class Command_blockpvp extends FreedomCommand
if (args[0].equals("all"))
{
- FUtil.adminAction(sender.getName(), "Disabling PVP for all non-admins", true);
+ FUtil.staffAction(sender.getName(), "Disabling PVP for all non-staff", true);
int counter = 0;
for (Player player : server.getOnlinePlayers())
{
- if (!plugin.al.isAdmin(player))
+ if (!plugin.sl.isStaff(player))
{
final FPlayer playerdata = plugin.pl.getPlayer(player);
playerdata.setPvpBlocked(true);
@@ -106,20 +106,20 @@ public class Command_blockpvp extends FreedomCommand
final FPlayer pd = plugin.pl.getPlayer(p);
if (pd.isPvpBlocked())
{
- FUtil.adminAction(sender.getName(), "Enabling PVP for " + p.getName(), true);
+ FUtil.staffAction(sender.getName(), "Enabling PVP for " + p.getName(), true);
pd.setPvpBlocked(false);
msg("Enabling PVP for " + p.getName());
msg(p, "Your PVP have been enabled.", ChatColor.GREEN);
}
else
{
- if (plugin.al.isAdmin(p))
+ if (plugin.sl.isStaff(p))
{
- msg(p.getName() + " is an admin, and cannot have their PVP disabled.");
+ msg(p.getName() + " is a staff member, and cannot have their PVP disabled.");
return true;
}
- FUtil.adminAction(sender.getName(), "Disabling PVP for " + p.getName(), true);
+ FUtil.staffAction(sender.getName(), "Disabling PVP for " + p.getName(), true);
pd.setPvpBlocked(true);
if (smite)
{
@@ -131,4 +131,4 @@ public class Command_blockpvp extends FreedomCommand
}
return true;
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockredstone.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockredstone.java
index 312abcce..1dfc7a43 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockredstone.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_blockredstone.java
@@ -8,7 +8,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH)
@CommandParameters(description = "Blocks redstone on the server.", usage = "/", aliases = "bre")
public class Command_blockredstone extends FreedomCommand
{
@@ -18,14 +18,14 @@ public class Command_blockredstone extends FreedomCommand
if (ConfigEntry.ALLOW_REDSTONE.getBoolean())
{
ConfigEntry.ALLOW_REDSTONE.setBoolean(false);
- FUtil.adminAction(sender.getName(), "Blocking all redstone", true);
+ FUtil.staffAction(sender.getName(), "Blocking all redstone", true);
new BukkitRunnable()
{
public void run()
{
if (!ConfigEntry.ALLOW_REDSTONE.getBoolean())
{
- FUtil.adminAction("TotalFreedom", "Unblocking all redstone", false);
+ FUtil.staffAction("TotalFreedom", "Unblocking all redstone", false);
ConfigEntry.ALLOW_REDSTONE.setBoolean(true);
}
}
@@ -34,7 +34,7 @@ public class Command_blockredstone extends FreedomCommand
else
{
ConfigEntry.ALLOW_REDSTONE.setBoolean(true);
- FUtil.adminAction(sender.getName(), "Unblocking all redstone", true);
+ FUtil.staffAction(sender.getName(), "Unblocking all redstone", true);
}
return true;
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cage.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cage.java
index df4f1eba..95535a5f 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cage.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cage.java
@@ -15,7 +15,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH)
@CommandParameters(description = "Place a cage around someone with certain blocks, or someone's player head.", usage = "/ [head | block] [playername | blockname]")
public class Command_cage extends FreedomCommand
{
@@ -30,7 +30,7 @@ public class Command_cage extends FreedomCommand
String skullName = null;
if ("purge".equals(args[0]))
{
- FUtil.adminAction(sender.getName(), "Uncaging all players", true);
+ FUtil.staffAction(sender.getName(), "Uncaging all players", true);
for (Player player : server.getOnlinePlayers())
{
final FPlayer fPlayer = plugin.pl.getPlayer(player);
@@ -101,11 +101,11 @@ public class Command_cage extends FreedomCommand
if (outerMaterial == Material.PLAYER_HEAD)
{
- FUtil.adminAction(sender.getName(), "Caging " + player.getName() + " in " + skullName, true);
+ FUtil.staffAction(sender.getName(), "Caging " + player.getName() + " in " + skullName, true);
}
else
{
- FUtil.adminAction(sender.getName(), "Caging " + player.getName(), true);
+ FUtil.staffAction(sender.getName(), "Caging " + player.getName(), true);
}
return true;
}
@@ -113,7 +113,7 @@ public class Command_cage extends FreedomCommand
@Override
public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{
- if (!plugin.al.isAdmin(sender))
+ if (!plugin.sl.isStaff(sender))
{
return null;
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cake.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cake.java
index 9b38f804..03e63bd2 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cake.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cake.java
@@ -10,7 +10,7 @@ import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.MOD, source = SourceType.BOTH)
@CommandParameters(description = "For the people that are still alive - gives a cake to everyone on the server.", usage = "/")
public class Command_cake extends FreedomCommand
{
@@ -32,7 +32,7 @@ public class Command_cake extends FreedomCommand
heldItemMeta.setDisplayName(ChatColor.WHITE + "The " + ChatColor.DARK_GRAY + "Lie");
heldItem.setItemMeta(heldItemMeta);
- for (final Player player : this.server.getOnlinePlayers())
+ for (Player player : server.getOnlinePlayers())
{
final int firstEmpty = player.getInventory().firstEmpty();
if (firstEmpty >= 0)
@@ -44,4 +44,4 @@ public class Command_cake extends FreedomCommand
FUtil.bcastMsg(output.toString());
return true;
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cartsit.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cartsit.java
index fe66cdd4..722c4a1b 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cartsit.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cartsit.java
@@ -16,7 +16,7 @@ public class Command_cartsit extends FreedomCommand
{
Player targetPlayer = playerSender;
- if (args.length == 1 && plugin.al.isAdmin(sender))
+ if (args.length == 1 && plugin.sl.isStaff(sender))
{
targetPlayer = getPlayer(args[0]);
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearchat.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearchat.java
index 35ed9dee..f6d590ed 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearchat.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearchat.java
@@ -6,7 +6,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH)
@CommandParameters(description = "Clears the chat.", usage = "/", aliases = "cc")
public class Command_clearchat extends FreedomCommand
{
@@ -16,7 +16,7 @@ public class Command_clearchat extends FreedomCommand
{
for (Player player : server.getOnlinePlayers())
{
- if (!plugin.al.isAdmin(player))
+ if (!plugin.sl.isStaff(player))
{
for (int i = 0; i < 100; i++)
{
@@ -24,7 +24,7 @@ public class Command_clearchat extends FreedomCommand
}
}
}
- FUtil.adminAction(sender.getName(), "Cleared chat", true);
+ FUtil.staffAction(sender.getName(), "Cleared chat", true);
return true;
}
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cleardiscordqueue.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cleardiscordqueue.java
index 8346fb70..a9b0b152 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cleardiscordqueue.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cleardiscordqueue.java
@@ -5,7 +5,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_CONSOLE)
+@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_CONSOLE)
@CommandParameters(description = "Clear the discord message queue.", usage = "/")
public class Command_cleardiscordqueue extends FreedomCommand
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearinventory.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearinventory.java
index f005d52f..e946d2bc 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearinventory.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_clearinventory.java
@@ -29,11 +29,11 @@ public class Command_clearinventory extends FreedomCommand
}
else
{
- if (plugin.al.isAdmin(sender))
+ if (plugin.sl.isStaff(sender))
{
if (args[0].equals("-a"))
{
- FUtil.adminAction(sender.getName(), "Clearing everyone's inventory", true);
+ FUtil.staffAction(sender.getName(), "Clearing everyone's inventory", true);
for (Player player : server.getOnlinePlayers())
{
player.getInventory().clear();
@@ -67,7 +67,7 @@ public class Command_clearinventory extends FreedomCommand
@Override
public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{
- if (args.length == 1 && plugin.al.isAdmin(sender))
+ if (args.length == 1 && plugin.sl.isStaff(sender))
{
List players = FUtil.getPlayerList();
players.add("-a");
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cmdspy.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cmdspy.java
index 6a6a8f8c..d67ef7f2 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cmdspy.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cmdspy.java
@@ -1,12 +1,12 @@
package me.totalfreedom.totalfreedommod.command;
-import me.totalfreedom.totalfreedommod.admin.Admin;
import me.totalfreedom.totalfreedommod.rank.Rank;
+import me.totalfreedom.totalfreedommod.staff.StaffMember;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME)
@CommandParameters(description = "Spy on commands", usage = "/", aliases = "commandspy")
public class Command_cmdspy extends FreedomCommand
{
@@ -14,11 +14,11 @@ public class Command_cmdspy extends FreedomCommand
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
- Admin admin = plugin.al.getAdmin(playerSender);
- admin.setCommandSpy(!admin.getCommandSpy());
- msg("CommandSpy " + (admin.getCommandSpy() ? "enabled." : "disabled."));
- plugin.al.save(admin);
- plugin.al.updateTables();
+ StaffMember staffMember = plugin.sl.getAdmin(playerSender);
+ staffMember.setCommandSpy(!staffMember.getCommandSpy());
+ msg("CommandSpy " + (staffMember.getCommandSpy() ? "enabled." : "disabled."));
+ plugin.sl.save(staffMember);
+ plugin.sl.updateTables();
return true;
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_consolesay.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_consolesay.java
index 745e20ed..6193e32c 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_consolesay.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_consolesay.java
@@ -8,7 +8,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_CONSOLE)
+@CommandPermissions(level = Rank.MOD, source = SourceType.ONLY_CONSOLE)
@CommandParameters(description = "Telnet/Console command - Send a chat message with chat formatting over telnet.", usage = "/ ", aliases = "csay")
public class Command_consolesay extends FreedomCommand
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cookie.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cookie.java
index 764981f4..aec2d717 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cookie.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_cookie.java
@@ -11,7 +11,7 @@ import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.MOD, source = SourceType.BOTH)
@CommandParameters(description = "For those who have no friends - gives a cookie to everyone on the server.", usage = "/")
public class Command_cookie extends FreedomCommand
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_creative.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_creative.java
index c81edfab..92bf02ee 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_creative.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_creative.java
@@ -28,7 +28,7 @@ public class Command_creative extends FreedomCommand
return true;
}
- checkRank(Rank.SUPER_ADMIN);
+ checkRank(Rank.TRIAL_MOD);
if (args[0].equals("-a"))
{
@@ -37,7 +37,7 @@ public class Command_creative extends FreedomCommand
targetPlayer.setGameMode(GameMode.CREATIVE);
}
- FUtil.adminAction(sender.getName(), "Changing everyone's gamemode to creative", false);
+ FUtil.staffAction(sender.getName(), "Changing everyone's gamemode to creative", false);
msg("Your gamemode has been set to creative.");
return true;
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_curse.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_curse.java
index c17b9eea..85f81ac6 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_curse.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_curse.java
@@ -9,7 +9,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_IN_GAME)
+@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_IN_GAME)
@CommandParameters(description = "Curse someone - sends a cursed texture pack to the specified player.", usage = "/ ")
public class Command_curse extends FreedomCommand
{
@@ -57,7 +57,7 @@ public class Command_curse extends FreedomCommand
@Override
public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{
- if (args.length == 1 && plugin.al.isAdmin(sender) && FUtil.isExecutive(sender.getName()))
+ if (args.length == 1 && plugin.sl.isStaff(sender) && FUtil.isExecutive(sender.getName()))
{
return FUtil.getPlayerList();
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_denick.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_denick.java
index a03aacb0..cd395cfa 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_denick.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_denick.java
@@ -6,7 +6,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH)
@CommandParameters(description = "Essentials Interface Command - Remove the nickname of all players on the server.", usage = "/")
public class Command_denick extends FreedomCommand
{
@@ -20,7 +20,7 @@ public class Command_denick extends FreedomCommand
return true;
}
- FUtil.adminAction(sender.getName(), "Removing all nicknames", false);
+ FUtil.staffAction(sender.getName(), "Removing all nicknames", false);
for (Player player : server.getOnlinePlayers())
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java
index 474d639f..b4017c47 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deop.java
@@ -2,7 +2,6 @@ package me.totalfreedom.totalfreedommod.command;
import java.util.ArrayList;
import java.util.List;
-import me.totalfreedom.totalfreedommod.admin.AdminList;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.apache.commons.lang.StringUtils;
@@ -10,7 +9,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH)
@CommandParameters(description = "Deop a player", usage = "/ ")
public class Command_deop extends FreedomCommand
{
@@ -31,12 +30,12 @@ public class Command_deop extends FreedomCommand
final String targetName = args[0].toLowerCase();
final List matchedPlayerNames = new ArrayList<>();
- for (final Player player : server.getOnlinePlayers())
+ for (Player player : server.getOnlinePlayers())
{
if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName().toLowerCase().contains(targetName)
|| player.getName().contains(targetName) || player.getDisplayName().contains(targetName))
{
- if (player.isOp() && !AdminList.vanished.contains(player.getName()))
+ if (player.isOp() && !plugin.sl.isVanished(player.getName()))
{
matchedPlayerNames.add(player.getName());
player.setOp(false);
@@ -49,7 +48,7 @@ public class Command_deop extends FreedomCommand
{
if (!silent)
{
- FUtil.adminAction(sender.getName(), "De-opping " + StringUtils.join(matchedPlayerNames, ", "), false);
+ FUtil.staffAction(sender.getName(), "De-opping " + StringUtils.join(matchedPlayerNames, ", "), false);
}
}
else
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deopall.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deopall.java
index 1eb990cf..b0eedd51 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deopall.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_deopall.java
@@ -6,7 +6,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH, blockHostConsole = true)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH, blockHostConsole = true)
@CommandParameters(description = "Deop everyone on the server.", usage = "/")
public class Command_deopall extends FreedomCommand
{
@@ -14,7 +14,7 @@ public class Command_deopall extends FreedomCommand
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
- FUtil.adminAction(sender.getName(), "De-opping all players on the server", true);
+ FUtil.staffAction(sender.getName(), "De-opping all players on the server", true);
for (Player player : server.getOnlinePlayers())
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_disguisetoggle.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_disguisetoggle.java
index 64121cf0..ff6ac8d1 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_disguisetoggle.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_disguisetoggle.java
@@ -6,7 +6,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH)
@CommandParameters(description = "Toggle LibsDisguises for everyone online.", usage = "/", aliases = "dtoggle")
public class Command_disguisetoggle extends FreedomCommand
{
@@ -20,7 +20,7 @@ public class Command_disguisetoggle extends FreedomCommand
return true;
}
- FUtil.adminAction(sender.getName(), (plugin.ldb.isDisguisesEnabled() ? "Disabling" : "Enabling") + " disguises", false);
+ FUtil.staffAction(sender.getName(), (plugin.ldb.isDisguisesEnabled() ? "Disabling" : "Enabling") + " disguises", false);
if (plugin.ldb.isDisguisesEnabled())
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_donator.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_donator.java
index ef626487..a0100491 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_donator.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_donator.java
@@ -13,7 +13,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_CONSOLE)
+@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_CONSOLE)
@CommandParameters(description = "Adds or removes donators", usage = "/ [forum_user]")
public class Command_donator extends FreedomCommand
{
@@ -77,7 +77,7 @@ public class Command_donator extends FreedomCommand
try
{
- FUtil.postRequestToEndpoint(url, "POST", headers, payload);
+ FUtil.sendRequest(url, "POST", headers, payload);
}
catch (IOException e)
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_doom.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_doom.java
index 741c7c67..10804c27 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_doom.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_doom.java
@@ -1,11 +1,11 @@
package me.totalfreedom.totalfreedommod.command;
-import me.totalfreedom.totalfreedommod.admin.Admin;
import me.totalfreedom.totalfreedommod.banning.Ban;
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.punishments.Punishment;
import me.totalfreedom.totalfreedommod.punishments.PunishmentType;
import me.totalfreedom.totalfreedommod.rank.Rank;
+import me.totalfreedom.totalfreedommod.staff.StaffMember;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
@@ -17,7 +17,7 @@ import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector;
-@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_CONSOLE, blockHostConsole = true)
+@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_CONSOLE, blockHostConsole = true)
@CommandParameters(description = "Sends the specified player to their doom.", usage = "/ [reason]")
public class Command_doom extends FreedomCommand
{
@@ -38,22 +38,23 @@ public class Command_doom extends FreedomCommand
return true;
}
- FUtil.adminAction(sender.getName(), "Casting oblivion over " + player.getName(), true);
+ FUtil.staffAction(sender.getName(), "Casting oblivion over " + player.getName(), true);
FUtil.bcastMsg(player.getName() + " will be completely obliviated!", ChatColor.RED);
final String ip = player.getAddress().getAddress().getHostAddress().trim();
// Remove from admin
- Admin admin = getAdmin(player);
- if (admin != null)
+ StaffMember staffMember = getAdmin(player);
+ if (staffMember != null)
{
- FUtil.adminAction(sender.getName(), "Removing " + player.getName() + " from the admin list", true);
- admin.setActive(false);
- plugin.al.save(admin);
- plugin.al.updateTables();
+ FUtil.staffAction(sender.getName(), "Removing " + player.getName() + " from the staff list", true);
+ staffMember.setActive(false);
+ plugin.sl.save(staffMember);
+ plugin.sl.updateTables();
+ plugin.amp.updateAccountStatus(staffMember);
if (plugin.dc.enabled && ConfigEntry.DISCORD_ROLE_SYNC.getBoolean())
{
- plugin.dc.syncRoles(admin, plugin.pl.getData(admin.getName()).getDiscordID());
+ plugin.dc.syncRoles(staffMember, plugin.pl.getData(staffMember.getName()).getDiscordID());
}
}
@@ -119,7 +120,7 @@ public class Command_doom extends FreedomCommand
public void run()
{
// message
- FUtil.adminAction(sender.getName(), "Banning " + player.getName(), true);
+ FUtil.staffAction(sender.getName(), "Banning " + player.getName(), true);
msg(sender, player.getName() + " has been banned and IP is: " + ip);
// generate explosion
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_entitywipe.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_entitywipe.java
index e82b27c1..47333c69 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_entitywipe.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_entitywipe.java
@@ -12,7 +12,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH)
@CommandParameters(description = "Remove various server entities that may cause lag, such as dropped items, minecarts, and boats.", usage = "/ [name | -a]", aliases = "ew,rd")
public class Command_entitywipe extends FreedomCommand
{
@@ -54,7 +54,7 @@ public class Command_entitywipe extends FreedomCommand
entityName = FUtil.formatName(type.name());
}
- FUtil.adminAction(sender.getName(), "Purging all " + (type != null ? entityName + "s" : "entities"), true);
+ FUtil.staffAction(sender.getName(), "Purging all " + (type != null ? entityName + "s" : "entities"), true);
int count;
if (type != null)
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_expel.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_expel.java
index e1c9c279..13ab38c8 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_expel.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_expel.java
@@ -11,7 +11,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME)
@CommandParameters(description = "Push people away from you.", usage = "/ [radius] [strength]")
public class Command_expel extends FreedomCommand
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explode.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explode.java
index ef4068b1..372016da 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explode.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explode.java
@@ -10,7 +10,7 @@ import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector;
-@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.ADMIN, source = SourceType.BOTH)
@CommandParameters(description = "Surprise someone.", usage = "/ ")
public class Command_explode extends FreedomCommand
{
@@ -58,7 +58,7 @@ public class Command_explode extends FreedomCommand
@Override
public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{
- if (args.length == 1 && plugin.al.isAdmin(sender))
+ if (args.length == 1 && plugin.sl.isStaff(sender))
{
return FUtil.getPlayerList();
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explosivearrows.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explosivearrows.java
index 62aa0f8d..4f21376a 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explosivearrows.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_explosivearrows.java
@@ -6,7 +6,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME)
+@CommandPermissions(level = Rank.MOD, source = SourceType.ONLY_IN_GAME)
@CommandParameters(description = "Make arrows explode", usage = "/", aliases = "ea")
public class Command_explosivearrows extends FreedomCommand
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_findip.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_findip.java
index b374f569..300d136e 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_findip.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_findip.java
@@ -6,7 +6,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH)
@CommandParameters(description = "Shows all IPs registered to a player", usage = "/ ", aliases = "showip,listip")
public class Command_findip extends FreedomCommand
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_forcekill.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_forcekill.java
index 4877457f..a7c4d1ce 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_forcekill.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_forcekill.java
@@ -13,7 +13,7 @@ public class Command_forcekill extends FreedomCommand
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
- if (!plugin.al.isAdmin(sender) && !senderIsConsole)
+ if (!plugin.sl.isMod(sender) && !senderIsConsole)
{
playerSender.setHealth(0);
return true;
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_freeze.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_freeze.java
index 8c50aec3..3dd64cd3 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_freeze.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_freeze.java
@@ -8,8 +8,8 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
-@CommandParameters(description = "Freeze/Unfreeze a specified player, or all non-admins on the server.", usage = "/ [target | purge]", aliases = "fr")
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH)
+@CommandParameters(description = "Freeze/Unfreeze a specified player, or all non-staff on the server.", usage = "/ [target | purge]", aliases = "fr")
public class Command_freeze extends FreedomCommand
{
@@ -23,31 +23,30 @@ public class Command_freeze extends FreedomCommand
if (!gFreeze)
{
- FUtil.adminAction(sender.getName(), "Disabling global player freeze", false);
+ FUtil.staffAction(sender.getName(), "Disabling global player freeze", false);
msg("Players are now free to move.");
return true;
}
- FUtil.adminAction(sender.getName(), "Enabling global player freeze", false);
+ FUtil.staffAction(sender.getName(), "Enabling global player freeze", false);
for (Player player : server.getOnlinePlayers())
{
- if (!isAdmin(player))
+ if (!isStaff(player))
{
player.sendTitle(ChatColor.RED + "You've been globally frozen.", ChatColor.YELLOW + "Please be patient and you will be unfrozen shortly.", 20, 100, 60);
msg(player, "You have been globally frozen due to an OP breaking the rules, please wait and you will be unfrozen soon.", ChatColor.RED);
}
}
msg("Players are now frozen.");
-
return true;
}
if (args[0].equals("purge"))
{
- FUtil.adminAction(sender.getName(), "Unfreezing all players", false);
+ FUtil.staffAction(sender.getName(), "Unfreezing all players", false);
for (Player player : server.getOnlinePlayers())
{
- if (!isAdmin(player))
+ if (!isStaff(player))
{
player.sendTitle(ChatColor.GREEN + "You've been unfrozen.", ChatColor.YELLOW + "You may now move again.", 20, 100, 60);
}
@@ -69,7 +68,6 @@ public class Command_freeze extends FreedomCommand
msg(player.getName() + " has been " + (fd.isFrozen() ? "frozen" : "unfrozen") + ".");
msg(player, "You have been " + (fd.isFrozen() ? "frozen" : "unfrozen") + ".", ChatColor.AQUA);
-
return true;
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_fuckoff.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_fuckoff.java
index ab5cb382..e1cf22e2 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_fuckoff.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_fuckoff.java
@@ -6,7 +6,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_IN_GAME)
+@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_IN_GAME)
@CommandParameters(description = "You'll never even see it coming - repeatedly push players away from you until command is untoggled.", usage = "/ ")
public class Command_fuckoff extends FreedomCommand
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_health.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_health.java
index f17867b8..617c7d2c 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_health.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_health.java
@@ -13,7 +13,7 @@ import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH)
@CommandParameters(description = "View server health, such as ticks-per-second, memory, etc.", usage = "/")
public class Command_health extends FreedomCommand
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_hubworld.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_hubworld.java
index 4e9eff37..97ab3f3f 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_hubworld.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_hubworld.java
@@ -152,7 +152,7 @@ public class Command_hubworld extends FreedomCommand
@Override
public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{
- if (!plugin.al.isAdmin(sender))
+ if (!plugin.sl.isStaff(sender))
{
return Collections.emptyList();
}
@@ -177,7 +177,7 @@ public class Command_hubworld extends FreedomCommand
// TODO: Redo this properly
private void assertCommandPerms(CommandSender sender, Player playerSender) throws PermissionDeniedException
{
- if (!(sender instanceof Player) || playerSender == null || !plugin.al.isSeniorAdmin(playerSender))
+ if (!(sender instanceof Player) || playerSender == null || !plugin.sl.isAdmin(playerSender))
{
throw new PermissionDeniedException();
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permban.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_indefban.java
similarity index 50%
rename from src/main/java/me/totalfreedom/totalfreedommod/command/Command_permban.java
rename to src/main/java/me/totalfreedom/totalfreedommod/command/Command_indefban.java
index ba8f8ef8..e645bbd3 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permban.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_indefban.java
@@ -1,14 +1,13 @@
package me.totalfreedom.totalfreedommod.command;
import me.totalfreedom.totalfreedommod.rank.Rank;
-import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_CONSOLE)
-@CommandParameters(description = "Reload the permban list.", usage = "/ reload", aliases = "pb")
-public class Command_permban extends FreedomCommand
+@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_CONSOLE)
+@CommandParameters(description = "Reload the indefinite ban list.", usage = "/ reload", aliases = "ib")
+public class Command_indefban extends FreedomCommand
{
@Override
@@ -24,12 +23,10 @@ public class Command_permban extends FreedomCommand
return false;
}
- msg("Reloading permban list...", ChatColor.RED);
- plugin.pm.onStop();
- plugin.pm.onStart();
- msg("Reloaded permban list.");
- msg(plugin.pm.getPermbannedIps().size() + " IPs and "
- + plugin.pm.getPermbannedNames().size() + " usernames loaded.");
+ msg("Reloading the indefinite ban list...");
+ plugin.im.onStop();
+ plugin.im.onStart();
+ msg("Reloaded the indefinite ban list.");
return true;
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invis.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invis.java
index f89113d5..266350f6 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invis.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invis.java
@@ -26,11 +26,11 @@ public class Command_invis extends FreedomCommand
{
if (args[0].equalsIgnoreCase("clear"))
{
- if(!plugin.al.isAdmin(sender))
+ if(!plugin.sl.isStaff(sender))
return noPerms();
else
{
- FUtil.adminAction(sender.getName(), "Clearing all invisibility potion effects from all players", true);
+ FUtil.staffAction(sender.getName(), "Clearing all invisibility potion effects from all players", true);
clear = true;
}
}
@@ -43,10 +43,10 @@ public class Command_invis extends FreedomCommand
for (Player player : server.getOnlinePlayers())
{
- if (player.hasPotionEffect(PotionEffectType.INVISIBILITY) && !plugin.al.isVanished(player.getName()))
+ if (player.hasPotionEffect(PotionEffectType.INVISIBILITY) && !plugin.sl.isVanished(player.getName()))
{
players.add(player.getName());
- if (clear && !plugin.al.isAdmin(player))
+ if (clear && !plugin.sl.isStaff(player))
{
player.removePotionEffect((PotionEffectType.INVISIBILITY));
clears++;
@@ -71,7 +71,7 @@ public class Command_invis extends FreedomCommand
@Override
public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{
- if (args.length == 1 && plugin.al.isAdmin(sender))
+ if (args.length == 1 && plugin.sl.isStaff(sender))
return Arrays.asList("clear");
return Collections.emptyList();
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invsee.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invsee.java
index 68f31b62..22300d90 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invsee.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_invsee.java
@@ -12,10 +12,10 @@ import org.bukkit.inventory.ItemStack;
@CommandParameters(description = "Look into another player's inventory, or optionally take items out.", usage = "/ [offhand | armor]", aliases = "inv,insee")
public class Command_invsee extends FreedomCommand
{
+
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
-
if (args.length < 1)
{
return false;
@@ -35,16 +35,15 @@ public class Command_invsee extends FreedomCommand
return true;
}
- if (plugin.al.isAdmin(player) && !plugin.al.isAdmin(playerSender))
+ if (plugin.sl.isStaff(player) && !plugin.sl.isStaff(playerSender))
{
- msg("You cannot spy on administrators.");
+ msg("You cannot spy on staff members.");
return true;
-
}
Inventory inv;
- if (plugin.al.isAdmin(player))
+ if (plugin.sl.isStaff(player))
{
if (args.length > 1)
{
@@ -75,7 +74,7 @@ public class Command_invsee extends FreedomCommand
return true;
}
- if (!plugin.al.isAdmin(player))
+ if (!plugin.sl.isStaff(player))
{
if (args.length > 1)
{
@@ -109,5 +108,4 @@ public class Command_invsee extends FreedomCommand
}
return true;
}
-}
-
+}
\ No newline at end of file
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_jumppads.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_jumppads.java
index 604ce9be..1ec12b73 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_jumppads.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_jumppads.java
@@ -95,7 +95,7 @@ public class Command_jumppads extends FreedomCommand
@Override
public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{
- if (!plugin.al.isAdmin(sender))
+ if (!plugin.sl.isStaff(sender))
{
return Collections.emptyList();
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kick.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kick.java
index c18f503b..911fc6925 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kick.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kick.java
@@ -12,7 +12,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH)
@CommandParameters(description = "Kick the specified player.", usage = "/ [reason] [-q]")
public class Command_kick extends FreedomCommand
{
@@ -65,12 +65,16 @@ public class Command_kick extends FreedomCommand
{
if (reason != null)
{
- FUtil.adminAction(sender.getName(), "Kicking " + player.getName() + " - Reason: " + reason, true);
+ FUtil.staffAction(sender.getName(), "Kicking " + player.getName() + " - Reason: " + reason, true);
}
else
{
- FUtil.adminAction(sender.getName(), "Kicking " + player.getName(), true);
+ FUtil.staffAction(sender.getName(), "Kicking " + player.getName(), true);
}
+ else
+ {
+ msg("Kicked " + player.getName() + " quietly.");
+ }
}
player.kickPlayer(builder.toString());
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kicknoob.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kicknoob.java
index b8b8c810..ce1ce71d 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kicknoob.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_kicknoob.java
@@ -7,21 +7,21 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.TELNET_ADMIN, source = SourceType.BOTH)
-@CommandParameters(description = "Kick all non-admins on server.", usage = "/", aliases = "kickall")
+@CommandPermissions(level = Rank.MOD, source = SourceType.BOTH)
+@CommandParameters(description = "Kick all non-staff on server.", usage = "/", aliases = "kickall")
public class Command_kicknoob extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
- FUtil.adminAction(sender.getName(), "Disconnecting all non-admins.", true);
+ FUtil.staffAction(sender.getName(), "Disconnecting all non-staff.", true);
for (Player player : server.getOnlinePlayers())
{
- if (!plugin.al.isAdmin(player))
+ if (!plugin.sl.isStaff(player))
{
- player.kickPlayer(ChatColor.RED + "All non-admins were kicked by " + sender.getName() + ".");
+ player.kickPlayer(ChatColor.RED + "All non-staff were kicked by " + sender.getName() + ".");
}
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lastcmd.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lastcmd.java
index 34600c1a..f0f4343f 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lastcmd.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lastcmd.java
@@ -7,7 +7,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH)
@CommandParameters(description = "Show the last command the specified player used.", usage = "/ ")
public class Command_lastcmd extends FreedomCommand
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkdiscord.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkdiscord.java
index a6510fc0..94dca915 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkdiscord.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkdiscord.java
@@ -22,7 +22,7 @@ public class Command_linkdiscord extends FreedomCommand
return true;
}
- if (args.length > 1 && plugin.al.isAdmin(playerSender))
+ if (args.length > 1 && plugin.sl.isStaff(playerSender))
{
PlayerData playerData = plugin.pl.getData(args[0]);
if (playerData == null)
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkreddit.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkreddit.java
new file mode 100644
index 00000000..f7d3cf35
--- /dev/null
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_linkreddit.java
@@ -0,0 +1,69 @@
+package me.totalfreedom.totalfreedommod.command;
+
+import me.totalfreedom.totalfreedommod.rank.Rank;
+import net.dean.jraw.ApiException;
+import org.bukkit.ChatColor;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+@CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME)
+@CommandParameters(description = "Link your reddit account", usage = "/ >")
+public class Command_linkreddit extends FreedomCommand
+{
+
+ public boolean run(final CommandSender sender, final Player playerSender, final Command cmd, final String commandLabel, final String[] args, final boolean senderIsConsole)
+ {
+ if (!plugin.rd.enabled)
+ {
+ msg("The Reddit system is currently disabled.", ChatColor.RED);
+ return true;
+ }
+
+ if (getData(playerSender).getRedditUsername() != null)
+ {
+ msg("Your Reddit account is already linked.");
+ return true;
+ }
+
+ if (args.length == 0)
+ {
+ return false;
+ }
+
+ if (args.length == 1 && !args[0].equals("code"))
+ {
+ String username = args[0];
+ String code = plugin.rd.addLinkCode(getData(playerSender), username);
+
+ try
+ {
+ plugin.rd.sendModMessage(username, "Link Code", "Please run the following in-game to link your Reddit account: /linkreddit code " + code);
+ }
+ catch (ApiException e)
+ {
+ msg("Could not find a Reddit account by the name of " + args[0], ChatColor.RED);
+ return true;
+ }
+
+ msg("A linking code has been sent to " + username + ". Please check your mod mail at " + ChatColor.AQUA + "https://www.reddit.com/message/moderator", ChatColor.GREEN);
+ return true;
+ }
+
+ String code = args[1];
+ String username = plugin.rd.checkLinkCode(code);
+
+ if (username == null)
+ {
+ msg(code + " is not a valid code", ChatColor.RED);
+ return true;
+ }
+
+ msg("Successfully linked the Reddit account " + username + " to your Minecraft account.", ChatColor.GREEN);
+ if (plugin.rd.updateFlair(playerSender))
+ {
+ msg("Your flair has been updated.", ChatColor.GREEN);
+ }
+ return true;
+ }
+}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java
index 4bced067..cee405ee 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_list.java
@@ -2,11 +2,11 @@ package me.totalfreedom.totalfreedommod.command;
import java.util.ArrayList;
import java.util.List;
-import me.totalfreedom.totalfreedommod.admin.Admin;
-import me.totalfreedom.totalfreedommod.admin.AdminList;
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.rank.Displayable;
import me.totalfreedom.totalfreedommod.rank.Rank;
+import me.totalfreedom.totalfreedommod.staff.StaffList;
+import me.totalfreedom.totalfreedommod.staff.StaffMember;
import me.totalfreedom.totalfreedommod.util.FUtil;
import net.md_5.bungee.api.ChatColor;
import org.apache.commons.lang.StringUtils;
@@ -15,10 +15,9 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.IMPOSTOR, source = SourceType.BOTH)
-@CommandParameters(description = "Lists the real names of all online players.", usage = "/ [-a | -i | -f | -v]", aliases = "who,lsit")
+@CommandParameters(description = "Lists the real names of all online players.", usage = "/ [-s | -i | -f | -v]", aliases = "who,lsit")
public class Command_list extends FreedomCommand
{
-
public boolean run(final CommandSender sender, final Player playerSender, final Command cmd, final String commandLabel, final String[] args, final boolean senderIsConsole)
{
if (args.length > 1)
@@ -41,20 +40,20 @@ public class Command_list extends FreedomCommand
String s = args[0];
switch (s)
{
- case "-a":
+ case "-s":
{
- listFilter = ListFilter.ADMINS;
+ listFilter = ListFilter.STAFF;
break;
}
case "-v":
{
- checkRank(Rank.SUPER_ADMIN);
- listFilter = ListFilter.VANISHED_ADMINS;
+ checkRank(Rank.TRIAL_MOD);
+ listFilter = ListFilter.VANISHED_STAFF;
break;
}
case "-t":
{
- checkRank(Rank.TELNET_ADMIN);
+ checkRank(Rank.MOD);
listFilter = ListFilter.TELNET_SESSIONS;
break;
}
@@ -83,20 +82,20 @@ public class Command_list extends FreedomCommand
List n = new ArrayList<>();
- if (listFilter == ListFilter.TELNET_SESSIONS && plugin.al.isAdmin(sender) && plugin.al.getAdmin(sender).getRank().isAtLeast(Rank.TELNET_ADMIN))
+ if (listFilter == ListFilter.TELNET_SESSIONS && plugin.sl.isStaff(sender) && plugin.sl.getAdmin(sender).getRank().isAtLeast(Rank.MOD))
{
- List connectedAdmins = plugin.btb.getConnectedAdmins();
- onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(connectedAdmins.size())
+ List connectedStaffMembers = plugin.btb.getConnectedAdmins();
+ onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(connectedStaffMembers.size())
.append(ChatColor.BLUE)
- .append(" admins connected to telnet.");
- for (Admin admin : connectedAdmins)
+ .append(" staff connected to telnet.");
+ for (StaffMember staffMember : connectedStaffMembers)
{
- n.add(plugin.rm.getDisplay(admin).getColoredTag() + admin.getName());
+ n.add(plugin.rm.getDisplay(staffMember).getColoredTag() + staffMember.getName());
}
}
else
{
- onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().size() - AdminList.vanished.size())
+ onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().size() - StaffList.vanished.size())
.append(ChatColor.BLUE)
.append(" out of a maximum ")
.append(ChatColor.RED)
@@ -105,19 +104,19 @@ public class Command_list extends FreedomCommand
.append(" players online.");
for (Player p : server.getOnlinePlayers())
{
- if (listFilter == ListFilter.ADMINS && !plugin.al.isAdmin(p))
+ if (listFilter == ListFilter.STAFF && !plugin.sl.isStaff(p))
{
continue;
}
- if (listFilter == ListFilter.ADMINS && AdminList.vanished.contains(p.getName()))
+ if (listFilter == ListFilter.STAFF && plugin.sl.isVanished(p.getName()))
{
continue;
}
- if (listFilter == ListFilter.VANISHED_ADMINS && !AdminList.vanished.contains(p.getName()))
+ if (listFilter == ListFilter.VANISHED_STAFF && !plugin.sl.isVanished(p.getName()))
{
continue;
}
- if (listFilter == ListFilter.IMPOSTORS && !plugin.al.isAdminImpostor(p))
+ if (listFilter == ListFilter.IMPOSTORS && !plugin.sl.isStaffImpostor(p))
{
continue;
}
@@ -125,20 +124,13 @@ public class Command_list extends FreedomCommand
{
continue;
}
- if (listFilter == ListFilter.PLAYERS && AdminList.vanished.contains(p.getName()))
+ if (listFilter == ListFilter.PLAYERS && plugin.sl.isVanished(p.getName()))
{
continue;
}
final Displayable display = plugin.rm.getDisplay(p);
- if (!senderIsConsole && plugin.al.isAdmin(playerSender) && plugin.al.getAdmin(playerSender).getOldTags())
- {
- n.add(getOldPrefix(display) + p.getName());
- }
- else
- {
- n.add(display.getColoredTag() + p.getName());
- }
+ n.add(display.getColoredTag() + p.getName());
}
}
String playerType = listFilter.toString().toLowerCase().replace('_', ' ');
@@ -162,29 +154,11 @@ public class Command_list extends FreedomCommand
return true;
}
- public String getOldPrefix(Displayable display)
- {
- ChatColor color = display.getColor();
-
- if (color.equals(ChatColor.AQUA))
- {
- color = ChatColor.GOLD;
- }
- else if (color.equals(ChatColor.GOLD))
- {
- color = ChatColor.LIGHT_PURPLE;
- }
-
- String prefix = "[" + display.getAbbr() + "]";
-
- return color + prefix;
- }
-
private enum ListFilter
{
PLAYERS,
- ADMINS,
- VANISHED_ADMINS,
+ STAFF,
+ VANISHED_STAFF,
TELNET_SESSIONS,
FAMOUS_PLAYERS,
IMPOSTORS
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lockup.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lockup.java
index 92222b16..4d3d4fb8 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lockup.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_lockup.java
@@ -9,7 +9,7 @@ import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask;
-@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.BOTH, blockHostConsole = true)
+@CommandPermissions(level = Rank.ADMIN, source = SourceType.BOTH, blockHostConsole = true)
@CommandParameters(description = "This is evil, and I never should have wrote it - blocks specified player's input.", usage = "/ on | off> [-q]>")
public class Command_lockup extends FreedomCommand
{
@@ -22,7 +22,7 @@ public class Command_lockup extends FreedomCommand
{
if (args[0].equalsIgnoreCase("all"))
{
- FUtil.adminAction(sender.getName(), "Locking up all players", true);
+ FUtil.staffAction(sender.getName(), "Locking up all players", true);
for (Player player : server.getOnlinePlayers())
{
@@ -32,7 +32,7 @@ public class Command_lockup extends FreedomCommand
}
else if (args[0].equalsIgnoreCase("purge"))
{
- FUtil.adminAction(sender.getName(), "Unlocking all players", true);
+ FUtil.staffAction(sender.getName(), "Unlocking all players", true);
for (Player player : server.getOnlinePlayers())
{
cancelLockup(player);
@@ -59,7 +59,7 @@ public class Command_lockup extends FreedomCommand
if (!silent)
{
- FUtil.adminAction(sender.getName(), "Locking up " + player.getName(), true);
+ FUtil.staffAction(sender.getName(), "Locking up " + player.getName(), true);
}
startLockup(player);
msg("Locked up " + player.getName() + ".");
@@ -76,7 +76,7 @@ public class Command_lockup extends FreedomCommand
if (!silent)
{
- FUtil.adminAction(sender.getName(), "Unlocking " + player.getName(), true);
+ FUtil.staffAction(sender.getName(), "Unlocking " + player.getName(), true);
}
cancelLockup(player);
msg("Unlocked " + player.getName() + ".");
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_logs.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_logs.java
index 5fae0ac8..190245b5 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_logs.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_logs.java
@@ -6,7 +6,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME)
@CommandParameters(description = "Register your connection with the TFM logviewer.", usage = "/ [off]")
public class Command_logs extends FreedomCommand
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_magicalsaddle.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_magicalsaddle.java
deleted file mode 100644
index 7241b521..00000000
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_magicalsaddle.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package me.totalfreedom.totalfreedommod.command;
-
-import me.totalfreedom.totalfreedommod.rank.Rank;
-import me.totalfreedom.totalfreedommod.shop.ShopItem;
-import org.bukkit.ChatColor;
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-@CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME)
-@CommandParameters(description = "Obtain a magical saddle.", usage = "/")
-public class Command_magicalsaddle extends FreedomCommand
-{
-
- @Override
- public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
- {
- if (plugin.pl.getData(playerSender).hasItem(ShopItem.MAGICAL_SADDLE))
- {
- playerSender.getInventory().addItem(plugin.sh.getMagicalSaddle());
- msg("You have been given a Magical Saddle", ChatColor.GREEN);
- }
- else
- {
- msg("You do not own a Magical Saddle! Purchase one from the shop.", ChatColor.RED);
- }
- return true;
- }
-}
\ No newline at end of file
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_makeopregion.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_makeopregion.java
index e61f8642..a1e64b00 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_makeopregion.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_makeopregion.java
@@ -19,7 +19,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME)
@CommandParameters(description = "Make a WorldGuard region for an OP.", usage = "/ ", aliases = "mor")
public class Command_makeopregion extends FreedomCommand
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manageshop.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manageshop.java
index de71f1dd..30ea0d05 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manageshop.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manageshop.java
@@ -10,7 +10,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_CONSOLE)
+@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_CONSOLE)
@CommandParameters(description = "Manage the shop", usage = "/ | items: - ", aliases = "ms")
public class Command_manageshop extends FreedomCommand
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manuallyverify.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manuallyverify.java
index 8141e729..6c875b0a 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manuallyverify.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_manuallyverify.java
@@ -7,7 +7,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH)
@CommandParameters(description = "Manually verify someone", usage = "/ ", aliases="mv")
public class Command_manuallyverify extends FreedomCommand
{
@@ -39,7 +39,7 @@ public class Command_manuallyverify extends FreedomCommand
return true;
}
- FUtil.adminAction(sender.getName(), "Manually verifying player " + player.getName(), false);
+ FUtil.staffAction(sender.getName(), "Manually verifying player " + player.getName(), false);
player.setOp(true);
player.sendMessage(YOU_ARE_OP);
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_massmurder.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_massmurder.java
index e5ed5857..bfa587b7 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_massmurder.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_massmurder.java
@@ -6,7 +6,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.ADMIN, source = SourceType.BOTH)
@CommandParameters(description = "seth's personal command", usage = "/ ", aliases = "genocide")
public class Command_massmurder extends FreedomCommand
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_masterbuilderworld.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_masterbuilderworld.java
index b368a18b..1ee29f31 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_masterbuilderworld.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_masterbuilderworld.java
@@ -152,7 +152,7 @@ public class Command_masterbuilderworld extends FreedomCommand
@Override
public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{
- if (!plugin.al.isAdmin(sender))
+ if (!plugin.sl.isStaff(sender))
{
return Collections.emptyList();
}
@@ -177,7 +177,7 @@ public class Command_masterbuilderworld extends FreedomCommand
// TODO: Redo this properly
private void assertCommandPerms(CommandSender sender, Player playerSender) throws PermissionDeniedException
{
- if (!(sender instanceof Player) || playerSender == null || !plugin.al.isSeniorAdmin(playerSender))
+ if (!(sender instanceof Player) || playerSender == null || !plugin.sl.isAdmin(playerSender))
{
throw new PermissionDeniedException();
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mbconfig.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mbconfig.java
index cbc0e349..7cbc0297 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mbconfig.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mbconfig.java
@@ -65,7 +65,7 @@ public class Command_mbconfig extends FreedomCommand
if (data.isMasterBuilder() && plugin.pl.isPlayerImpostor(player))
{
- FUtil.adminAction(sender.getName(), "Re-adding " + player.getName() + " to the Master Builder list", true);
+ FUtil.staffAction(sender.getName(), "Re-adding " + player.getName() + " to the Master Builder list", true);
player.setOp(true);
player.sendMessage(YOU_ARE_OP);
@@ -79,7 +79,7 @@ public class Command_mbconfig extends FreedomCommand
}
else if (!data.isMasterBuilder())
{
- FUtil.adminAction(sender.getName(), "Adding " + player.getName() + " to the Master Builder list", true);
+ FUtil.staffAction(sender.getName(), "Adding " + player.getName() + " to the Master Builder list", true);
data.setMasterBuilder(true);
data.setVerification(true);
plugin.pl.save(data);
@@ -113,7 +113,7 @@ public class Command_mbconfig extends FreedomCommand
return true;
}
- FUtil.adminAction(sender.getName(), "Removing " + data.getName() + " from the Master Builder list", true);
+ FUtil.staffAction(sender.getName(), "Removing " + data.getName() + " from the Master Builder list", true);
data.setMasterBuilder(false);
if (data.getDiscordID() == null)
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_moblimiter.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_moblimiter.java
index 2f3d1e94..05454acd 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_moblimiter.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_moblimiter.java
@@ -7,7 +7,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH)
@CommandParameters(description = "Control mob limiting parameters.", usage = "/ |dragon|giant|ghast|slime>")
public class Command_moblimiter extends FreedomCommand
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mobpurge.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mobpurge.java
index e6797d8e..cb7bcf9c 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mobpurge.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mobpurge.java
@@ -12,7 +12,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH)
@CommandParameters(description = "Purge all mobs in all worlds.", usage = "/ [name]", aliases = "mp")
public class Command_mobpurge extends FreedomCommand
{
@@ -46,7 +46,7 @@ public class Command_mobpurge extends FreedomCommand
mobName = FUtil.formatName(type.name());
}
- FUtil.adminAction(sender.getName(), "Purging all " + (type != null ? mobName + "s" : "mobs"), true);
+ FUtil.staffAction(sender.getName(), "Purging all " + (type != null ? mobName + "s" : "mobs"), true);
int count = plugin.ew.purgeMobs(type);
msg(count + " " + (type != null ? mobName : "mob") + FUtil.showS(count) + " removed.");
return true;
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_modifyitem.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_modifyitem.java
index 75d81ba9..96b9ebc6 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_modifyitem.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_modifyitem.java
@@ -2,6 +2,7 @@ package me.totalfreedom.totalfreedommod.command;
import java.util.ArrayList;
import java.util.List;
+import java.util.Random;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil;
import net.minecraft.server.v1_16_R1.NBTTagCompound;
@@ -10,6 +11,7 @@ import org.apache.commons.lang.StringUtils;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
+import org.bukkit.craftbukkit.v1_16_R1.inventory.CraftItemStack;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
@@ -141,13 +143,13 @@ public class Command_modifyitem extends FreedomCommand
item.setItemMeta(potionMeta);
break;
}
- // TODO: Fix code here bc 1.15 made some things private for some reason
- /*case "attribute":
+
+ case "attribute":
if (args.length < 3)
{
return false;
}
- net.minecraft.server.v1_15_R1.ItemStack nmsStack = CraftItemStack.asNMSCopy(item);
+ net.minecraft.server.v1_16_R1.ItemStack nmsStack = CraftItemStack.asNMSCopy(item);
NBTTagCompound compound = (nmsStack.hasTag()) ? nmsStack.getTag() : new NBTTagCompound();
NBTTagList modifiers = getAttributeList(nmsStack);
NBTTagCompound cmpnd = new NBTTagCompound();
@@ -157,28 +159,39 @@ public class Command_modifyitem extends FreedomCommand
msg("Invalid attribute. Please run /attributelist for a list of valid attributes.");
return true;
}
- cmpnd.set("AttributeName", new NBTTagString(attribute.getAttribute()));
- cmpnd.set("Name", new NBTTagString(attribute.getAttribute()));
- int amount;
+ cmpnd.setString("AttributeName", attribute.getAttribute());
+ cmpnd.setString("Name", attribute.getAttribute());
+ double amount;
try
{
- amount = Integer.parseInt(args[2]);
+ amount = Double.parseDouble(args[2]);
}
catch (NumberFormatException ex)
{
msg("The amount specified is not a valid integer.");
return true;
}
- cmpnd.set("Amount", new NBTTagInt(amount));
- cmpnd.set("Operation", new NBTTagInt(0));
- cmpnd.set("UUIDLeast", new NBTTagInt(894654));
- cmpnd.set("UUIDMost", new NBTTagInt(2872));
- cmpnd.set("Slot", new NBTTagString("mainhand"));
+ if (Double.isNaN(amount))
+ {
+ msg("The amount specified is illegal.");
+ return true;
+ }
+ cmpnd.setDouble("Amount", amount);
+ cmpnd.setInt("Operation", 0);
+ Random random = new Random();
+ cmpnd.setIntArray("UUID", new int[]
+ {
+ random.nextInt(),
+ random.nextInt(),
+ random.nextInt(),
+ random.nextInt()
+ });
+ cmpnd.setString("Slot", "mainhand");
modifiers.add(cmpnd);
compound.set("AttributeModifiers", modifiers);
nmsStack.setTag(compound);
item = CraftItemStack.asBukkitCopy(nmsStack);
- break;*/
+ break;
default:
return false;
}
@@ -200,21 +213,20 @@ public class Command_modifyitem extends FreedomCommand
return stack.getTag().getList("AttributeModifiers", 10);
}
-
private enum Attribute
{
- GENERIC_MAX_HEALTH("GENERIC_MAX_HEALTH", "generic.maxHealth"),
- GENERIC_FOLLOW_RANGE("GENERIC_FOLLOW_RANGE", "generic.followRange"),
- GENERIC_KNOCKBACK_RESISTANCE("GENERIC_KNOCKBACK_RESISTANCE", "generic.knockbackResistance"),
- GENERIC_MOVEMENT_SPEED("GENERIC_MOVEMENT_SPEED", "generic.movementSpeed"),
- GENERIC_FLYING_SPEED("GENERIC_FLYING_SPEED", "generic.flyingSpeed"),
- GENERIC_ATTACK_DAMAGE("GENERIC_ATTACK_DAMAGE", "generic.attackDamage"),
- GENERIC_ATTACK_SPEED("GENERIC_ATTACK_SPEED", "generic.attackSpeed"),
+ GENERIC_MAX_HEALTH("GENERIC_MAX_HEALTH", "generic.max_health"),
+ GENERIC_FOLLOW_RANGE("GENERIC_FOLLOW_RANGE", "generic.follow_range"),
+ GENERIC_KNOCKBACK_RESISTANCE("GENERIC_KNOCKBACK_RESISTANCE", "generic.knockback_resistance"),
+ GENERIC_MOVEMENT_SPEED("GENERIC_MOVEMENT_SPEED", "generic.movement_speed"),
+ GENERIC_FLYING_SPEED("GENERIC_FLYING_SPEED", "generic.flying_speed"),
+ GENERIC_ATTACK_DAMAGE("GENERIC_ATTACK_DAMAGE", "generic.attack_damage"),
+ GENERIC_ATTACK_SPEED("GENERIC_ATTACK_SPEED", "generic.attack_speed"),
GENERIC_ARMOR("GENERIC_ARMOR", "generic.armor"),
- GENERIC_ARMOR_TOUGHNESS("GENERIC_ARMOR_TOUGHNESS", "generic.armorToughmess"),
+ GENERIC_ARMOR_TOUGHNESS("GENERIC_ARMOR_TOUGHNESS", "generic.armor_toughmess"),
GENERIC_LUCK("GENERIC_LUCK", "generic.luck"),
- HORSE_JUMP_STRENGTH("GENERIC_MAX_HEALTH", "horse.JumpStrength"),
- ZOMBIE_SPAWN_REINFORCEMENTS("ZOMBIE_SPAWN_REINFORCEMENTS", "zombie.SpawnReinforcements");
+ HORSE_JUMP_STRENGTH("GENERIC_MAX_HEALTH", "horse.jump_strength"),
+ ZOMBIE_SPAWN_REINFORCEMENTS("ZOMBIE_SPAWN_REINFORCEMENTS", "zombie.spawn_reinforcements");
private final String name;
private final String attribute;
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mute.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mute.java
index 538ff60e..fdf47ce2 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mute.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mute.java
@@ -16,7 +16,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH)
@CommandParameters(description = "Mutes a player with brute force.", usage = "/ <[-s | -q] [reason] | list | purge | all>", aliases = "stfu")
public class Command_mute extends FreedomCommand
{
@@ -53,7 +53,7 @@ public class Command_mute extends FreedomCommand
if (args[0].equals("purge"))
{
- FUtil.adminAction(sender.getName(), "Unmuting all players.", true);
+ FUtil.staffAction(sender.getName(), "Unmuting all players.", true);
FPlayer info;
int count = 0;
for (Player mp : server.getOnlinePlayers())
@@ -73,13 +73,13 @@ public class Command_mute extends FreedomCommand
if (args[0].equals("all"))
{
- FUtil.adminAction(sender.getName(), "Muting all non-admins", true);
+ FUtil.staffAction(sender.getName(), "Muting all non-staff", true);
FPlayer playerdata;
int counter = 0;
for (Player player : server.getOnlinePlayers())
{
- if (!plugin.al.isAdmin(player))
+ if (!plugin.sl.isStaff(player))
{
player.sendTitle(ChatColor.RED + "You've been muted globally.", ChatColor.YELLOW + "Please be patient and you will be unmuted shortly.", 20, 100, 60);
playerdata = plugin.pl.getPlayer(player);
@@ -120,9 +120,9 @@ public class Command_mute extends FreedomCommand
}
FPlayer playerdata = plugin.pl.getPlayer(player);
- if (plugin.al.isAdmin(player))
+ if (plugin.sl.isStaff(player))
{
- msg(player.getName() + " is an admin, and can't be muted.");
+ msg(player.getName() + " is a staff member, and can't be muted.");
return true;
}
@@ -140,7 +140,7 @@ public class Command_mute extends FreedomCommand
return true;
}
- FUtil.adminAction(sender.getName(), "Muting " + player.getName(), true);
+ FUtil.staffAction(sender.getName(), "Muting " + player.getName(), true);
if (smite)
{
@@ -163,7 +163,7 @@ public class Command_mute extends FreedomCommand
@Override
public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{
- if (!plugin.al.isAdmin(sender))
+ if (!plugin.sl.isStaff(sender))
{
return null;
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_myadmin.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mystaff.java
similarity index 73%
rename from src/main/java/me/totalfreedom/totalfreedommod/command/Command_myadmin.java
rename to src/main/java/me/totalfreedom/totalfreedommod/command/Command_mystaff.java
index 7c4854b6..b42535d7 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_myadmin.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_mystaff.java
@@ -4,10 +4,10 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-import me.totalfreedom.totalfreedommod.admin.Admin;
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.player.PlayerData;
import me.totalfreedom.totalfreedommod.rank.Rank;
+import me.totalfreedom.totalfreedommod.staff.StaffMember;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.apache.commons.lang.StringUtils;
import org.bukkit.ChatColor;
@@ -15,9 +15,9 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME)
-@CommandParameters(description = "Manage your admin entry.", usage = "/ [-o ] | setlogin | clearlogin | setacformat | clearacformat> | oldtags | logstick | syncroles>")
-public class Command_myadmin extends FreedomCommand
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME)
+@CommandParameters(description = "Manage your staff entry.", usage = "/ [-o ] | setlogin | clearlogin | setscformat | clearscformat> | oldtags | logstick | syncroles>")
+public class Command_mystaff extends FreedomCommand
{
@Override
@@ -29,13 +29,13 @@ public class Command_myadmin extends FreedomCommand
}
Player init = null;
- Admin target = getAdmin(playerSender);
+ StaffMember target = getAdmin(playerSender);
Player targetPlayer = playerSender;
// -o switch
if (args[0].equals("-o"))
{
- checkRank(Rank.SENIOR_ADMIN);
+ checkRank(Rank.ADMIN);
init = playerSender;
targetPlayer = getPlayer(args[1]);
if (targetPlayer == null)
@@ -47,7 +47,7 @@ public class Command_myadmin extends FreedomCommand
target = getAdmin(targetPlayer);
if (target == null)
{
- msg("That player is not an admin", ChatColor.RED);
+ msg("That player is not a staff member", ChatColor.RED);
return true;
}
@@ -72,19 +72,19 @@ public class Command_myadmin extends FreedomCommand
if (init == null)
{
- FUtil.adminAction(sender.getName(), "Clearing my supered IPs", true);
+ FUtil.staffAction(sender.getName(), "Clearing my IPs", true);
}
else
{
- FUtil.adminAction(sender.getName(), "Clearing " + target.getName() + "' supered IPs", true);
+ FUtil.staffAction(sender.getName(), "Clearing " + target.getName() + "' IPs", true);
}
int counter = target.getIps().size() - 1;
target.clearIPs();
target.addIp(targetIp);
- plugin.al.save(target);
- plugin.al.updateTables();
+ plugin.sl.save(target);
+ plugin.sl.updateTables();
plugin.pl.syncIps(target);
@@ -121,16 +121,16 @@ public class Command_myadmin extends FreedomCommand
}
else
{
- msg("You cannot remove that admin's current IP.");
+ msg("You cannot remove that staff members's current IP.");
}
return true;
}
- FUtil.adminAction(sender.getName(), "Removing a supered IP" + (init == null ? "" : " from " + targetPlayer.getName() + "'s IPs"), true);
+ FUtil.staffAction(sender.getName(), "Removing an IP" + (init == null ? "" : " from " + targetPlayer.getName() + "'s IPs"), true);
target.removeIp(args[1]);
- plugin.al.save(target);
- plugin.al.updateTables();
+ plugin.sl.save(target);
+ plugin.sl.updateTables();
plugin.pl.syncIps(target);
@@ -141,6 +141,7 @@ public class Command_myadmin extends FreedomCommand
case "setlogin":
{
+ checkRank(Rank.MOD);
if (args.length < 2)
{
return false;
@@ -158,58 +159,44 @@ public class Command_myadmin extends FreedomCommand
msg("Your login message cannot be more than 100 characters (excluding your rank and your name)", ChatColor.RED);
return true;
}
- FUtil.adminAction(sender.getName(), "Setting personal login message" + (init == null ? "" : " for " + targetPlayer.getName()), false);
+ FUtil.staffAction(sender.getName(), "Setting personal login message" + (init == null ? "" : " for " + targetPlayer.getName()), false);
target.setLoginMessage(message);
String previewMessage = plugin.rm.craftLoginMessage(targetPlayer, message);
msg((init == null ? "Your" : targetPlayer.getName() + "'s") + " login message is now: ");
msg("> " + previewMessage);
- plugin.al.save(target);
- plugin.al.updateTables();
+ plugin.sl.save(target);
+ plugin.sl.updateTables();
return true;
}
case "clearlogin":
{
- FUtil.adminAction(sender.getName(), "Clearing personal login message" + (init == null ? "" : " for " + targetPlayer.getName()), false);
+ checkRank(Rank.MOD);
+ FUtil.staffAction(sender.getName(), "Clearing personal login message" + (init == null ? "" : " for " + targetPlayer.getName()), false);
target.setLoginMessage(null);
- plugin.al.save(target);
- plugin.al.updateTables();
+ plugin.sl.save(target);
+ plugin.sl.updateTables();
return true;
}
- case "setacformat":
+ case "setscformat":
{
String format = StringUtils.join(args, " ", 1, args.length);
target.setAcFormat(format);
- plugin.al.save(target);
- plugin.al.updateTables();
- msg("Set admin chat format to \"" + format + "\".", ChatColor.GRAY);
- String example = format.replace("%name%", "ExampleAdmin").replace("%rank%", Rank.TELNET_ADMIN.getAbbr()).replace("%rankcolor%", Rank.TELNET_ADMIN.getColor().toString()).replace("%msg%", "The quick brown fox jumps over the lazy dog.");
+ plugin.sl.save(target);
+ plugin.sl.updateTables();
+ msg("Set staff chat format to \"" + format + "\".", ChatColor.GRAY);
+ String example = format.replace("%name%", "ExampleStaff").replace("%rank%", Rank.MOD.getAbbr()).replace("%rankcolor%", Rank.MOD.getColor().toString()).replace("%msg%", "The quick brown fox jumps over the lazy dog.");
msg(ChatColor.GRAY + "Example: " + FUtil.colorize(example));
return true;
}
- case "clearacformat":
+
+ case "clearscformat":
{
target.setAcFormat(null);
- plugin.al.save(target);
- plugin.al.updateTables();
- msg("Cleared admin chat format.", ChatColor.GRAY);
- return true;
- }
- case "oldtags":
- {
- target.setOldTags(!target.getOldTags());
- plugin.al.save(target);
- plugin.al.updateTables();
- msg((target.getOldTags() ? "Enabled" : "Disabled") + " old tags.");
- return true;
- }
- case "logstick":
- {
- target.setLogStick(!target.getLogStick());
- plugin.al.save(target);
- plugin.al.updateTables();
- msg((target.getLogStick() ? "Enabled" : "Disabled") + " log-stick lookup.");
+ plugin.sl.save(target);
+ plugin.sl.updateTables();
+ msg("Cleared staff chat format.", ChatColor.GRAY);
return true;
}
@@ -256,13 +243,13 @@ public class Command_myadmin extends FreedomCommand
@Override
public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{
- if (!plugin.al.isAdmin(sender))
+ if (!plugin.sl.isStaff(sender))
{
return Collections.emptyList();
}
- List singleArguments = Arrays.asList("clearips", "setlogin", "setacformat");
- List doubleArguments = Arrays.asList("clearip", "clearlogin", "clearacformat", "oldtags", "logstick", "syncroles");
+ List singleArguments = Arrays.asList("clearips", "setlogin", "setscformat");
+ List doubleArguments = Arrays.asList("clearip", "clearlogin", "clearscformat", "oldtags", "syncroles");
if (args.length == 1)
{
List options = new ArrayList<>();
@@ -283,8 +270,8 @@ public class Command_myadmin extends FreedomCommand
{
if (args[0].equals("clearip"))
{
- List ips = plugin.al.getAdmin(sender).getIps();
- ips.remove(FUtil.getIp((Player) sender));
+ List ips = plugin.sl.getAdmin(sender).getIps();
+ ips.remove(FUtil.getIp((Player)sender));
return ips;
}
}
@@ -304,10 +291,10 @@ public class Command_myadmin extends FreedomCommand
{
if (args[0].equals("-o") && args[2].equals("clearip"))
{
- Admin admin = plugin.al.getEntryByName(args[1]);
- if (admin != null)
+ StaffMember staffMember = plugin.sl.getEntryByName(args[1]);
+ if (staffMember != null)
{
- return admin.getIps();
+ return staffMember.getIps();
}
}
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickclean.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickclean.java
index de963d8b..14ba4604 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickclean.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickclean.java
@@ -16,7 +16,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH)
@CommandParameters(description = "Essentials Interface Command - Remove illegal chatcodes from nicknames of one or all players on server.", usage = "/ [player]", aliases = "nc")
public class Command_nickclean extends FreedomCommand
{
@@ -53,12 +53,12 @@ public class Command_nickclean extends FreedomCommand
return true;
}
- FUtil.adminAction(sender.getName(), "Cleaning " + player.getName() + "'s nickname", false);
+ FUtil.staffAction(sender.getName(), "Cleaning " + player.getName() + "'s nickname", false);
cleanNickname(player);
return true;
}
- FUtil.adminAction(sender.getName(), "Cleaning all nicknames", false);
+ FUtil.staffAction(sender.getName(), "Cleaning all nicknames", false);
for (final Player player : server.getOnlinePlayers())
{
cleanNickname(player);
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickfilter.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickfilter.java
index 16d5375a..db6a70db 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickfilter.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_nickfilter.java
@@ -41,11 +41,11 @@ public class Command_nickfilter extends FreedomCommand
player = getPlayerByDisplayName(displayName);
- if (player == null || plugin.al.isVanished(player.getName()) && !plugin.al.isAdmin(sender))
+ if (player == null || plugin.sl.isVanished(player.getName()) && !plugin.sl.isStaff(sender))
{
player = getPlayerByDisplayNameAlt(displayName);
- if (player == null || !plugin.al.isVanished(player.getName()) && !plugin.al.isAdmin(sender))
+ if (player == null || !plugin.sl.isVanished(player.getName()) && !plugin.sl.isStaff(sender))
{
sender.sendMessage(ChatColor.GRAY + "Can't find player by nickname: " + displayName);
return true;
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_notes.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_notes.java
index 43c63234..81173fa4 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_notes.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_notes.java
@@ -13,7 +13,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH)
@CommandParameters(description = "Manage notes for a player", usage = "/
| remove | clear>")
public class Command_notes extends FreedomCommand
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_onlinemode.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_onlinemode.java
deleted file mode 100644
index 4b077da8..00000000
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_onlinemode.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package me.totalfreedom.totalfreedommod.command;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import me.totalfreedom.totalfreedommod.rank.Rank;
-import me.totalfreedom.totalfreedommod.util.FLog;
-import me.totalfreedom.totalfreedommod.util.FUtil;
-import org.bukkit.ChatColor;
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-@CommandPermissions(level = Rank.NON_OP, source = SourceType.BOTH)
-@CommandParameters(description = "Switch server to premium or cracked.", usage = "/ ")
-public class Command_onlinemode extends FreedomCommand
-{
-
- @Override
- public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
- {
- if (args.length < 1)
- {
- msg("Server is currently running with 'online-mode=" + (server.getOnlineMode() ? "true" : "false") + "'.", ChatColor.WHITE);
- msg("\"/onlinemode on\" and \"/onlinemode off\" can be used to change online mode from the console.", ChatColor.WHITE);
- }
- else
- {
- boolean onlineMode;
-
- if (sender instanceof Player && !plugin.al.isSeniorAdmin(sender))
- {
- noPerms();
- return true;
- }
-
- if (args[0].equalsIgnoreCase("on"))
- {
- onlineMode = true;
- }
- else if (args[0].equalsIgnoreCase("off"))
- {
- onlineMode = false;
- }
- else
- {
- return false;
- }
-
- try
- {
- plugin.si.setOnlineMode(onlineMode);
-
- if (onlineMode)
- {
- for (Player player : server.getOnlinePlayers())
- {
- player.kickPlayer("Server is activating \"online-mode=true\". Please reconnect.");
- }
- }
-
- FUtil.adminAction(sender.getName(), "Turning player validation " + (onlineMode ? "on" : "off") + ".", true);
-
- server.reload();
- }
- catch (Exception ex)
- {
- FLog.severe(ex);
- }
- }
- return true;
- }
-
- @Override
- public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
- {
- if (args.length == 1 && plugin.al.isAdmin(sender) && !(sender instanceof Player))
- {
- return Arrays.asList("on", "off");
- }
-
- return Collections.emptyList();
- }
-}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_op.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_op.java
index 3d97ee36..9cda7d52 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_op.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_op.java
@@ -2,7 +2,6 @@ package me.totalfreedom.totalfreedommod.command;
import java.util.ArrayList;
import java.util.List;
-import me.totalfreedom.totalfreedommod.admin.AdminList;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.apache.commons.lang.StringUtils;
@@ -37,7 +36,7 @@ public class Command_op extends FreedomCommand
if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName().toLowerCase().contains(targetName)
|| player.getName().contains(targetName) || player.getDisplayName().contains(targetName))
{
- if (!player.isOp() && !AdminList.vanished.contains(player.getName()))
+ if (!player.isOp() && !plugin.sl.isVanished(player.getName()))
{
matchedPlayerNames.add(player.getName());
player.setOp(true);
@@ -50,7 +49,7 @@ public class Command_op extends FreedomCommand
{
if (!silent)
{
- FUtil.adminAction(sender.getName(), "Opping " + StringUtils.join(matchedPlayerNames, ", "), false);
+ FUtil.staffAction(sender.getName(), "Opping " + StringUtils.join(matchedPlayerNames, ", "), false);
}
}
else
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opall.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opall.java
index b728a7fd..4ce3dd88 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opall.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opall.java
@@ -14,7 +14,7 @@ public class Command_opall extends FreedomCommand
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
- FUtil.adminAction(sender.getName(), "Opping all players on the server", false);
+ FUtil.staffAction(sender.getName(), "Opping all players on the server", false);
for (Player player : server.getOnlinePlayers())
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opme.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opme.java
index eaadd8fc..b39e8429 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opme.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_opme.java
@@ -14,7 +14,7 @@ public class Command_opme extends FreedomCommand
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
- FUtil.adminAction(sender.getName(), "Opping " + sender.getName(), false);
+ FUtil.staffAction(sender.getName(), "Opping " + sender.getName(), false);
sender.setOp(true);
sender.sendMessage(FreedomCommand.YOU_ARE_OP);
return true;
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ops.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ops.java
index cb7e697f..3ac97109 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ops.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_ops.java
@@ -42,13 +42,13 @@ public class Command_ops extends FreedomCommand
if (args[0].equals("purge"))
{
- if (!plugin.al.isAdmin(sender))
+ if (!plugin.sl.isStaff(sender))
{
noPerms();
return true;
}
- FUtil.adminAction(sender.getName(), "Purging all operators", true);
+ FUtil.staffAction(sender.getName(), "Purging all operators", true);
for (OfflinePlayer player : server.getOperators())
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_orbit.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_orbit.java
index b9aeb7ff..91c25594 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_orbit.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_orbit.java
@@ -10,7 +10,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.MOD, source = SourceType.BOTH)
@CommandParameters(description = "POW!!! Right in the kisser! One of these days Alice, straight to the Moon - Sends the specified player into orbit.",
usage = "/ [< | stop>]")
public class Command_orbit extends FreedomCommand
@@ -60,7 +60,7 @@ public class Command_orbit extends FreedomCommand
playerdata.startOrbiting(strength);
player.setVelocity(new Vector(0, strength, 0));
- FUtil.adminAction(sender.getName(), "Orbiting " + player.getName(), false);
+ FUtil.staffAction(sender.getName(), "Orbiting " + player.getName(), false);
return true;
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permissions.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permissions.java
index d328cc6b..2c9c8eeb 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permissions.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_permissions.java
@@ -12,11 +12,10 @@ import org.bukkit.permissions.PermissionAttachmentInfo;
@CommandParameters(description = "Check your permissions", usage = "/ [prefix | reload]")
public class Command_permissions extends FreedomCommand
{
-
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
- if (args.length > 0 && args[0].equals("reload") && plugin.al.isAdmin(sender))
+ if (args.length > 0 && args[0].equals("reload") && plugin.sl.isStaff(sender))
{
plugin.permissions.load();
plugin.pem.loadPermissionNodes();
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_playtime.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_playtime.java
index 276bbd7d..682369c2 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_playtime.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_playtime.java
@@ -3,14 +3,14 @@ package me.totalfreedom.totalfreedommod.command;
import java.time.Instant;
import java.util.Date;
import java.util.List;
-import me.totalfreedom.totalfreedommod.admin.ActivityLogEntry;
import me.totalfreedom.totalfreedommod.rank.Rank;
+import me.totalfreedom.totalfreedommod.staff.ActivityLogEntry;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME)
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME)
@CommandParameters(description = "Gets your playtime statistics.", usage = "/")
public class Command_playtime extends FreedomCommand
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_plugincontrol.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_plugincontrol.java
index db928089..7b2313e2 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_plugincontrol.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_plugincontrol.java
@@ -13,7 +13,7 @@ import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginManager;
-@CommandPermissions(level = Rank.TELNET_ADMIN, source = SourceType.BOTH)
+@CommandPermissions(level = Rank.MOD, source = SourceType.BOTH)
@CommandParameters(description = "Enable, disable, or reload a specified plugin, as well as list all plugins on the server.", usage = "/ < > | list>", aliases = "plc")
public class Command_plugincontrol extends FreedomCommand
{
@@ -135,7 +135,7 @@ public class Command_plugincontrol extends FreedomCommand
@Override
public List getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{
- if (!plugin.al.isAdmin(sender))
+ if (!plugin.sl.isStaff(sender))
{
return Collections.emptyList();
}
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potion.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potion.java
index d2c40f9d..719b0795 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potion.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potion.java
@@ -41,12 +41,12 @@ public class Command_potion extends FreedomCommand
}
else if (args[0].equalsIgnoreCase("clearall"))
{
- if (!(plugin.al.isAdmin(sender) || senderIsConsole))
+ if (!(plugin.sl.isStaff(sender) || senderIsConsole))
{
noPerms();
return true;
}
- FUtil.adminAction(sender.getName(), "Cleared all potion effects from all players", true);
+ FUtil.staffAction(sender.getName(), "Cleared all potion effects from all players", true);
for (Player target : server.getOnlinePlayers())
{
for (PotionEffect potion_effect : target.getActivePotionEffects())
@@ -76,9 +76,9 @@ public class Command_potion extends FreedomCommand
return true;
}
- if (!plugin.al.isAdmin(sender))
+ if (!plugin.sl.isStaff(sender))
{
- msg(ChatColor.RED + "Only admins can clear potion effects from other players.");
+ msg(ChatColor.RED + "Only staff can clear potion effects from other players.");
return true;
}
@@ -104,7 +104,7 @@ public class Command_potion extends FreedomCommand
{
target = getPlayer(args[4]);
- if (target == null || plugin.al.isVanished(target.getName()) && !plugin.al.isAdmin(sender))
+ if (target == null || plugin.sl.isVanished(target.getName()) && !plugin.sl.isStaff(sender))
{
msg(FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED);
return true;
@@ -117,9 +117,9 @@ public class Command_potion extends FreedomCommand
return true;
}
- if (!plugin.al.isAdmin(sender))
+ if (!plugin.sl.isStaff(sender))
{
- sender.sendMessage(ChatColor.RED + "Only admins can apply potion effects to other players.");
+ sender.sendMessage(ChatColor.RED + "Only staff can apply potion effects to other players.");
return true;
}
@@ -183,7 +183,7 @@ public class Command_potion extends FreedomCommand
{
List arguments = new ArrayList<>();
arguments.addAll(Arrays.asList("list", "clear", "add"));
- if (plugin.al.isAdmin(sender))
+ if (plugin.sl.isStaff(sender))
{
arguments.add("clearall");
}
@@ -193,7 +193,7 @@ public class Command_potion extends FreedomCommand
{
if (args[0].equals("clear"))
{
- if (plugin.al.isAdmin(sender))
+ if (plugin.sl.isStaff(sender))
{
return FUtil.getPlayerList();
}
@@ -217,7 +217,7 @@ public class Command_potion extends FreedomCommand
return Arrays.asList("");
}
}
- else if (args.length == 5 && plugin.al.isAdmin(sender))
+ else if (args.length == 5 && plugin.sl.isStaff(sender))
{
if (args[0].equals("add"))
{
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potionspy.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potionspy.java
index 9a1e7a21..90de5609 100644
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potionspy.java
+++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_potionspy.java
@@ -4,8 +4,8 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
-import me.totalfreedom.totalfreedommod.admin.Admin;
import me.totalfreedom.totalfreedommod.rank.Rank;
+import me.totalfreedom.totalfreedommod.staff.StaffMember;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.apache.commons.lang.math.NumberUtils;
import org.bukkit.Bukkit;
@@ -15,8 +15,8 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.entity.ThrownPotion;
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME)
-@CommandParameters(description = "Allows admins to see potions that are thrown.", usage = "/ | history [player] ", aliases = "potspy")
+@CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME)
+@CommandParameters(description = "Allows staff to see potions that are thrown.", usage = "/ | history [player] ", aliases = "potspy")
public class Command_potionspy extends FreedomCommand
{
private String titleText = "&8&m------------------&r &ePotionSpy &8&m------------------&r";
@@ -28,11 +28,11 @@ public class Command_potionspy extends FreedomCommand
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
- Admin admin = plugin.al.getAdmin(playerSender);
+ StaffMember staffMember = plugin.sl.getAdmin(playerSender);
if (args.length <= 0)
{
- setPotionSpyState(admin, !admin.getPotionSpy());
+ setPotionSpyState(staffMember, !staffMember.getPotionSpy());
return true;
}
else
@@ -41,12 +41,12 @@ public class Command_potionspy extends FreedomCommand
{
case "enable":
case "on":
- setPotionSpyState(admin, true);
+ setPotionSpyState(staffMember, true);
break;
case "disable":
case "off":
- setPotionSpyState(admin, false);
+ setPotionSpyState(staffMember, false);
break;
case "history":
@@ -176,12 +176,12 @@ public class Command_potionspy extends FreedomCommand
return true;
}
- private void setPotionSpyState(Admin admin, boolean state)
+ private void setPotionSpyState(StaffMember staffMember, boolean state)
{
- admin.setPotionSpy(state);
- plugin.al.save(admin);
- plugin.al.updateTables();
- msg("PotionSpy is now " + (admin.getPotionSpy() ? "enabled." : "disabled."));
+ staffMember.setPotionSpy(state);
+ plugin.sl.save(staffMember);
+ plugin.sl.updateTables();
+ msg("PotionSpy is now " + (staffMember.getPotionSpy() ? "enabled." : "disabled."));
}
/**
diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_protectarea.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_protectarea.java
deleted file mode 100644
index 1803aba7..00000000
--- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_protectarea.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package me.totalfreedom.totalfreedommod.command;
-
-import me.totalfreedom.totalfreedommod.ProtectArea;
-import me.totalfreedom.totalfreedommod.config.ConfigEntry;
-import me.totalfreedom.totalfreedommod.rank.Rank;
-import org.apache.commons.lang.StringUtils;
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandSender;
-import org.bukkit.entity.Player;
-
-@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH)
-@CommandParameters(
- description = "Protect areas so that only admins can directly modify blocks in those areas. WorldEdit and other such plugins might bypass this.",
- usage = "/ | add