Merge branch 'development' of https://github.com/TFPatches/TotalFreedomMod into development

This commit is contained in:
Telesphoreo 2020-08-15 17:09:03 -05:00
commit 4407e9e6ec
186 changed files with 1275 additions and 1828 deletions

View File

@ -236,9 +236,9 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.github.speedxx</groupId> <groupId>com.github.TFPatches</groupId>
<artifactId>TFGuilds</artifactId> <artifactId>TFGuilds</artifactId>
<version>master</version> <version>ad93b9ed00</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>

View File

@ -5,7 +5,7 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import joptsimple.internal.Strings; import joptsimple.internal.Strings;
import lombok.Getter; import lombok.Getter;
import me.totalfreedom.totalfreedommod.admin.Admin; import me.totalfreedom.totalfreedommod.staff.StaffMember;
import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FLog; import me.totalfreedom.totalfreedommod.util.FLog;
@ -103,16 +103,16 @@ public class AMP extends FreedomService
FLog.info("Logged out of AMP"); FLog.info("Logged out of AMP");
} }
public void updateAccountStatus(Admin admin) public void updateAccountStatus(StaffMember staffMember)
{ {
String username = admin.getAmpUsername(); String username = staffMember.getAmpUsername();
if (username == null || !enabled) if (username == null || !enabled)
{ {
return; return;
} }
if (!admin.isActive() || admin.getRank() != Rank.SENIOR_ADMIN) if (!staffMember.isActive() || staffMember.getRank() != Rank.ADMIN)
{ {
FLog.debug("Disabling amp acc"); FLog.debug("Disabling amp acc");
setAccountEnabled(username, false); setAccountEnabled(username, false);

View File

@ -62,7 +62,7 @@ public class AntiSpam extends FreedomService
{ {
final Player player = event.getPlayer(); final Player player = event.getPlayer();
if (plugin.al.isAdmin(player)) if (plugin.sl.isStaff(player))
{ {
return; return;
} }
@ -109,7 +109,7 @@ public class AntiSpam extends FreedomService
return; return;
} }
if (plugin.al.isAdmin(player)) if (plugin.sl.isStaff(player))
{ {
return; return;
} }

View File

@ -1,7 +1,7 @@
package me.totalfreedom.totalfreedommod; package me.totalfreedom.totalfreedommod;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import me.totalfreedom.totalfreedommod.admin.Admin; import me.totalfreedom.totalfreedommod.staff.StaffMember;
import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.player.FPlayer; import me.totalfreedom.totalfreedommod.player.FPlayer;
import me.totalfreedom.totalfreedommod.player.PlayerData; import me.totalfreedom.totalfreedommod.player.PlayerData;
@ -65,7 +65,7 @@ public class ChatManager extends FreedomService
return; return;
} }
if (!ConfigEntry.TOGGLE_CHAT.getBoolean() && !plugin.al.isAdmin(player)) if (!ConfigEntry.TOGGLE_CHAT.getBoolean() && !plugin.sl.isStaff(player))
{ {
event.setCancelled(true); event.setCancelled(true);
playerMsg(player, "Chat is currently disabled.", org.bukkit.ChatColor.RED); playerMsg(player, "Chat is currently disabled.", org.bukkit.ChatColor.RED);
@ -123,7 +123,7 @@ public class ChatManager extends FreedomService
} }
// Check for mentions // 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()) for (Player p : server.getOnlinePlayers())
{ {
if (ChatColor.stripColor(message).toLowerCase().contains("@" + p.getName().toLowerCase()) || mentionEveryone) if (ChatColor.stripColor(message).toLowerCase().contains("@" + p.getName().toLowerCase()) || mentionEveryone)
@ -136,76 +136,44 @@ public class ChatManager extends FreedomService
event.setFormat(format); event.setFormat(format);
// Send to discord // 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)); 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(); 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; return color;
} }
public String getColoredTag(Admin admin, Displayable display) public String getColoredTag(Displayable display)
{ {
ChatColor color = display.getColor(); 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(); return color + display.getAbbr();
} }
public void adminChat(CommandSender sender, String message) public void staffChat(CommandSender sender, String message)
{ {
Displayable display = plugin.rm.getDisplay(sender); 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()) for (Player player : server.getOnlinePlayers())
{ {
if (plugin.al.isAdmin(player)) if (plugin.sl.isStaff(player))
{ {
Admin admin = plugin.al.getAdmin(player); StaffMember staffMember = plugin.sl.getAdmin(player);
if (!Strings.isNullOrEmpty(admin.getAcFormat())) if (!Strings.isNullOrEmpty(staffMember.getAcFormat()))
{ {
String format = admin.getAcFormat(); String format = staffMember.getAcFormat();
ChatColor color = getColor(admin, display); ChatColor color = getColor(display);
String msg = format.replace("%name%", sender.getName()).replace("%rank%", display.getAbbr()).replace("%rankcolor%", color.toString()).replace("%msg%", message); String msg = format.replace("%name%", sender.getName()).replace("%rank%", display.getAbbr()).replace("%rankcolor%", color.toString()).replace("%msg%", message);
player.sendMessage(FUtil.colorize(msg)); player.sendMessage(FUtil.colorize(msg));
} }
else 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()) 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); 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); FLog.info("[REPORTS] " + reporter.getName() + " has reported " + reported.getName() + " for " + report);

View File

@ -23,9 +23,9 @@ public class CommandSpy extends FreedomService
{ {
for (Player player : server.getOnlinePlayers()) 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; continue;
} }

View File

@ -53,7 +53,7 @@ public class LoginProcess extends FreedomService
public void onPlayerPreLogin(AsyncPlayerPreLoginEvent event) public void onPlayerPreLogin(AsyncPlayerPreLoginEvent event)
{ {
final String ip = event.getAddress().getHostAddress().trim(); final String ip = event.getAddress().getHostAddress().trim();
final boolean isAdmin = plugin.al.getEntryByIp(ip) != null; final boolean isAdmin = plugin.sl.getEntryByIp(ip) != null;
// Check if the player is already online // Check if the player is already online
for (Player onlinePlayer : server.getOnlinePlayers()) for (Player onlinePlayer : server.getOnlinePlayers())
@ -114,7 +114,7 @@ public class LoginProcess extends FreedomService
} }
// Check if player is admin // Check if player is admin
final boolean isAdmin = plugin.al.getEntryByIp(ip) != null; final boolean isAdmin = plugin.sl.getEntryByIp(ip) != null;
// Validation below this point // Validation below this point
if (isAdmin) // Player is admin if (isAdmin) // Player is admin
@ -127,7 +127,7 @@ public class LoginProcess extends FreedomService
{ {
for (Player onlinePlayer : server.getOnlinePlayers()) 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 an admin.");
count--; count--;
@ -149,7 +149,7 @@ public class LoginProcess extends FreedomService
return; return;
} }
// Player is not an admin // Player is not a staff member
// Server full check // Server full check
if (server.getOnlinePlayers().size() >= server.getMaxPlayers()) if (server.getOnlinePlayers().size() >= server.getMaxPlayers())
{ {
@ -157,8 +157,8 @@ public class LoginProcess extends FreedomService
return; return;
} }
// Admin-only mode // Staff-only mode
if (ConfigEntry.ADMIN_ONLY_MODE.getBoolean()) 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 admins only.");
return; return;
@ -226,7 +226,7 @@ public class LoginProcess extends FreedomService
player.setPlayerListFooter(FUtil.colorize(ConfigEntry.SERVER_TABLIST_FOOTER.getString()).replace("\\n", "\n")); 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(); String tag = playerData.getTag();
if (tag != null) if (tag != null)
@ -244,7 +244,7 @@ public class LoginProcess extends FreedomService
FLog.info(noteMessage); FLog.info(noteMessage);
for (Player p : server.getOnlinePlayers()) for (Player p : server.getOnlinePlayers())
{ {
if (plugin.al.isAdminImpostor(p)) if (plugin.sl.isAdminImpostor(p))
{ {
notice.send(p); notice.send(p);
} }
@ -257,9 +257,9 @@ public class LoginProcess extends FreedomService
@Override @Override
public void run() 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) if (lockdownEnabled)

View File

@ -34,7 +34,7 @@ public class Monitors extends FreedomService
{ {
for (Player player : recentlyThrownPotions.keySet()) for (Player player : recentlyThrownPotions.keySet())
{ {
if (plugin.al.isAdmin(player) && plugin.al.getAdmin(player).getPotionSpy()) if (plugin.sl.isStaff(player) && plugin.sl.getAdmin(player).getPotionSpy())
{ {
List<ThrownPotion> playerThrownPotions = recentlyThrownPotions.get(player); List<ThrownPotion> playerThrownPotions = recentlyThrownPotions.get(player);
ThrownPotion latestThrownPotion = playerThrownPotions.get(playerThrownPotions.size() - 1); // Get most recently thrown potion for the position. ThrownPotion latestThrownPotion = playerThrownPotions.get(playerThrownPotions.size() - 1); // Get most recently thrown potion for the position.

View File

@ -45,7 +45,7 @@ public class Muter extends FreedomService
return; return;
} }
if (plugin.al.isAdminSync(player)) if (plugin.sl.isStaffSync(player))
{ {
fPlayer.setMuted(false); fPlayer.setMuted(false);
MUTED_PLAYERS.remove(player.getName()); MUTED_PLAYERS.remove(player.getName());
@ -70,7 +70,7 @@ public class Muter extends FreedomService
} }
String message = event.getMessage(); String message = event.getMessage();
if (plugin.al.isAdmin(player)) if (plugin.sl.isStaff(player))
{ {
fPlayer.setMuted(false); fPlayer.setMuted(false);
return; return;

View File

@ -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<String, SerializableProtectedRegion> 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<String, SerializableProtectedRegion>)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<Map.Entry<String, SerializableProtectedRegion>> 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<Map.Entry<String, SerializableProtectedRegion>> 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<Map.Entry<String, SerializableProtectedRegion>> 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<String> 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);
}
}
}
}

View File

@ -203,9 +203,9 @@ public class Reddit extends FreedomService
flairList.put(Title.EXECUTIVE, ConfigEntry.REDDIT_EXECUTIVE_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.ASSISTANT_EXECUTIVE, ConfigEntry.REDDIT_ASSISTANT_EXECUTIVE_FLAIR_ID.getString());
flairList.put(Title.DEVELOPER, ConfigEntry.REDDIT_DEVELOPER_FLAIR_ID.getString()); flairList.put(Title.DEVELOPER, ConfigEntry.REDDIT_DEVELOPER_FLAIR_ID.getString());
flairList.put(Rank.SENIOR_ADMIN, ConfigEntry.REDDIT_SENIOR_FLAIR_ID.getString()); flairList.put(Rank.ADMIN, ConfigEntry.REDDIT_ADMIN_FLAIR_ID.getString());
flairList.put(Rank.TELNET_ADMIN, ConfigEntry.REDDIT_TELNET_FLAIR_ID.getString()); flairList.put(Rank.MOD, ConfigEntry.REDDIT_MOD_FLAIR_ID.getString());
flairList.put(Rank.SUPER_ADMIN, ConfigEntry.REDDIT_SUPER_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.MASTER_BUILDER, ConfigEntry.REDDIT_MASTER_BUILDER_FLAIR_ID.getString());
flairList.put(Title.DONATOR, ConfigEntry.REDDIT_DONATOR_FLAIR_ID.getString()); flairList.put(Title.DONATOR, ConfigEntry.REDDIT_DONATOR_FLAIR_ID.getString());
@ -214,9 +214,9 @@ public class Reddit extends FreedomService
flairNameList.put(Title.EXECUTIVE, "Executive"); flairNameList.put(Title.EXECUTIVE, "Executive");
flairNameList.put(Title.ASSISTANT_EXECUTIVE, "Assistant Executive"); flairNameList.put(Title.ASSISTANT_EXECUTIVE, "Assistant Executive");
flairNameList.put(Title.DEVELOPER, "Developer"); flairNameList.put(Title.DEVELOPER, "Developer");
flairNameList.put(Rank.SENIOR_ADMIN, "Senior Admin"); flairNameList.put(Rank.ADMIN, "Admin");
flairNameList.put(Rank.TELNET_ADMIN, "Telnet Admin"); flairNameList.put(Rank.MOD, "Mod");
flairNameList.put(Rank.SUPER_ADMIN, "Super Admin"); flairNameList.put(Rank.TRIAL_MOD, "Trial Mod");
flairNameList.put(Title.MASTER_BUILDER, "Master Builder"); flairNameList.put(Title.MASTER_BUILDER, "Master Builder");
flairNameList.put(Title.DONATOR, "Premium"); flairNameList.put(Title.DONATOR, "Premium");
} }

View File

@ -30,9 +30,9 @@ public class ServerPing extends FreedomService
return; 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; return;
} }

View File

@ -3,8 +3,8 @@ package me.totalfreedom.totalfreedommod;
import java.io.File; import java.io.File;
import java.io.InputStream; import java.io.InputStream;
import java.util.Properties; import java.util.Properties;
import me.totalfreedom.totalfreedommod.admin.ActivityLog; import me.totalfreedom.totalfreedommod.staff.ActivityLog;
import me.totalfreedom.totalfreedommod.admin.AdminList; import me.totalfreedom.totalfreedommod.staff.StaffList;
import me.totalfreedom.totalfreedommod.banning.BanManager; import me.totalfreedom.totalfreedommod.banning.BanManager;
import me.totalfreedom.totalfreedommod.banning.IndefiniteBanList; import me.totalfreedom.totalfreedommod.banning.IndefiniteBanList;
import me.totalfreedom.totalfreedommod.blocking.BlockBlocker; import me.totalfreedom.totalfreedommod.blocking.BlockBlocker;
@ -55,7 +55,6 @@ import org.bukkit.Bukkit;
import org.bukkit.generator.ChunkGenerator; import org.bukkit.generator.ChunkGenerator;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;
import org.spigotmc.SpigotConfig; import org.spigotmc.SpigotConfig;
public class TotalFreedomMod extends JavaPlugin public class TotalFreedomMod extends JavaPlugin
@ -86,7 +85,7 @@ public class TotalFreedomMod extends JavaPlugin
public SavedFlags sf; public SavedFlags sf;
public WorldManager wm; public WorldManager wm;
public LogViewer lv; public LogViewer lv;
public AdminList al; public StaffList sl;
public ActivityLog acl; public ActivityLog acl;
public RankManager rm; public RankManager rm;
public CommandBlocker cb; public CommandBlocker cb;
@ -109,7 +108,6 @@ public class TotalFreedomMod extends JavaPlugin
public BanManager bm; public BanManager bm;
public IndefiniteBanList im; public IndefiniteBanList im;
public PermissionManager pem; public PermissionManager pem;
public ProtectArea pa;
public Reddit rd; public Reddit rd;
public GameRuleHandler gr; public GameRuleHandler gr;
public CommandSpy cs; public CommandSpy cs;
@ -206,7 +204,7 @@ public class TotalFreedomMod extends JavaPlugin
wm = new WorldManager(); wm = new WorldManager();
lv = new LogViewer(); lv = new LogViewer();
sql = new SQLite(); sql = new SQLite();
al = new AdminList(); sl = new StaffList();
acl = new ActivityLog(); acl = new ActivityLog();
rm = new RankManager(); rm = new RankManager();
cb = new CommandBlocker(); cb = new CommandBlocker();
@ -229,7 +227,6 @@ public class TotalFreedomMod extends JavaPlugin
bm = new BanManager(); bm = new BanManager();
im = new IndefiniteBanList(); im = new IndefiniteBanList();
pem = new PermissionManager(); pem = new PermissionManager();
pa = new ProtectArea();
rd = new Reddit(); rd = new Reddit();
gr = new GameRuleHandler(); gr = new GameRuleHandler();
snp = new SignBlocker(); snp = new SignBlocker();
@ -284,15 +281,6 @@ public class TotalFreedomMod extends JavaPlugin
// Metrics @ https://bstats.org/plugin/bukkit/TotalFreedomMod/2966 // Metrics @ https://bstats.org/plugin/bukkit/TotalFreedomMod/2966
new Metrics(this, 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. // little workaround to stop spigot from autorestarting - causing AMP to detach from process.
SpigotConfig.config.set("settings.restart-on-crash", false); SpigotConfig.config.set("settings.restart-on-crash", false);
} }

View File

@ -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<Admin> allAdmins = Sets.newHashSet(); // Includes disabled admins
// Only active admins below
@Getter
private final Set<Admin> activeAdmins = Sets.newHashSet();
private final Map<String, Admin> nameTable = Maps.newHashMap();
private final Map<String, Admin> ipTable = Maps.newHashMap();
public final List<String> verifiedNoAdmins = new ArrayList<>();
public final Map<String, List<String>> verifiedNoAdminIps = Maps.newHashMap();
public static List<String> 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<String> getActiveAdminNames()
{
List<String> 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<String> getAdminNames()
{
return nameTable.keySet();
}
public Set<String> getAdminIps()
{
return ipTable.keySet();
}
public void save(Admin admin)
{
try
{
ResultSet currentSave = plugin.sql.getAdminByName(admin.getName());
for (Map.Entry<String, Object> 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);
}
}

View File

@ -271,7 +271,7 @@ public class BanManager extends FreedomService
final Player player = event.getPlayer(); final Player player = event.getPlayer();
final PlayerData data = plugin.pl.getData(player); final PlayerData data = plugin.pl.getData(player);
if (!plugin.al.isAdmin(player)) if (!plugin.sl.isStaff(player))
{ {
return; return;
} }

View File

@ -30,7 +30,7 @@ public class EditBlocker extends FreedomService
return; return;
} }
if (plugin.al.isAdminSync(event.getPlayer())) if (plugin.sl.isStaffSync(event.getPlayer()))
{ {
fPlayer.setEditBlocked(false); fPlayer.setEditBlocked(false);
return; return;
@ -49,7 +49,7 @@ public class EditBlocker extends FreedomService
return; return;
} }
if (plugin.al.isAdminSync(event.getPlayer())) if (plugin.sl.isStaffSync(event.getPlayer()))
{ {
fPlayer.setEditBlocked(false); fPlayer.setEditBlocked(false);
return; return;

View File

@ -148,7 +148,7 @@ public class EventBlocker extends FreedomService
@EventHandler(priority = EventPriority.NORMAL) @EventHandler(priority = EventPriority.NORMAL)
public void onPlayerDropItem(PlayerDropItemEvent event) public void onPlayerDropItem(PlayerDropItemEvent event)
{ {
if (!plugin.al.isAdmin(event.getPlayer())) if (!plugin.sl.isStaff(event.getPlayer()))
{ {
event.setCancelled(true); event.setCancelled(true);
} }

View File

@ -90,7 +90,7 @@ public class InteractBlocker extends FreedomService
{ {
case WATER_BUCKET: case WATER_BUCKET:
{ {
if (plugin.al.isAdmin(player) || ConfigEntry.ALLOW_WATER_PLACE.getBoolean()) if (plugin.sl.isStaff(player) || ConfigEntry.ALLOW_WATER_PLACE.getBoolean())
{ {
break; break;
} }
@ -103,7 +103,7 @@ public class InteractBlocker extends FreedomService
case LAVA_BUCKET: case LAVA_BUCKET:
{ {
if (plugin.al.isAdmin(player) || ConfigEntry.ALLOW_LAVA_PLACE.getBoolean()) if (plugin.sl.isStaff(player) || ConfigEntry.ALLOW_LAVA_PLACE.getBoolean())
{ {
break; break;
} }

View File

@ -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) if (player.getGameMode() == GameMode.CREATIVE)
{ {

View File

@ -171,7 +171,7 @@ public class CommandBlocker extends FreedomService
for (String part : commandParts) 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."); FUtil.playerMsg(sender, "WorldEdit copy variables are disabled.");
return true; return true;

View File

@ -1,7 +1,7 @@
package me.totalfreedom.totalfreedommod.blocking.command; package me.totalfreedom.totalfreedommod.blocking.command;
import me.totalfreedom.totalfreedommod.TotalFreedomMod; import me.totalfreedom.totalfreedommod.TotalFreedomMod;
import me.totalfreedom.totalfreedommod.admin.Admin; import me.totalfreedom.totalfreedommod.staff.StaffMember;
import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.rank.Rank;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -40,10 +40,10 @@ public enum CommandBlockerRank
return TELNET; return TELNET;
} }
Admin admin = TotalFreedomMod.plugin().al.getAdmin(sender); StaffMember staffMember = TotalFreedomMod.plugin().sl.getAdmin(sender);
if (admin != null) if (staffMember != null)
{ {
if (admin.getRank() == Rank.SENIOR_ADMIN) if (staffMember.getRank() == Rank.ADMIN)
{ {
return SENIOR; return SENIOR;
} }

View File

@ -10,7 +10,7 @@ import me.totalfreedom.bukkittelnet.api.TelnetPreLoginEvent;
import me.totalfreedom.bukkittelnet.api.TelnetRequestDataTagsEvent; import me.totalfreedom.bukkittelnet.api.TelnetRequestDataTagsEvent;
import me.totalfreedom.bukkittelnet.session.ClientSession; import me.totalfreedom.bukkittelnet.session.ClientSession;
import me.totalfreedom.totalfreedommod.FreedomService; import me.totalfreedom.totalfreedommod.FreedomService;
import me.totalfreedom.totalfreedommod.admin.Admin; import me.totalfreedom.totalfreedommod.staff.StaffMember;
import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FLog; import me.totalfreedom.totalfreedommod.util.FLog;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -43,15 +43,15 @@ public class BukkitTelnetBridge extends FreedomService
return; 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; return;
} }
event.setBypassPassword(true); event.setBypassPassword(true);
event.setName(admin.getName()); event.setName(staffMember.getName());
} }
@EventHandler(priority = EventPriority.NORMAL) @EventHandler(priority = EventPriority.NORMAL)
@ -77,14 +77,14 @@ public class BukkitTelnetBridge extends FreedomService
boolean isTelnetAdmin = false; boolean isTelnetAdmin = false;
boolean isSeniorAdmin = false; boolean isSeniorAdmin = false;
final Admin admin = plugin.al.getAdmin(player); final StaffMember staffMember = plugin.sl.getAdmin(player);
if (admin != null) if (staffMember != null)
{ {
boolean active = admin.isActive(); boolean active = staffMember.isActive();
isAdmin = active; isAdmin = active;
isSeniorAdmin = active && admin.getRank() == Rank.SENIOR_ADMIN; isSeniorAdmin = active && staffMember.getRank() == Rank.ADMIN;
isTelnetAdmin = active && (isSeniorAdmin || admin.getRank() == Rank.TELNET_ADMIN); isTelnetAdmin = active && (isSeniorAdmin || staffMember.getRank() == Rank.MOD);
} }
playerTags.put("tfm.admin.isAdmin", isAdmin); playerTags.put("tfm.admin.isAdmin", isAdmin);
@ -121,22 +121,22 @@ public class BukkitTelnetBridge extends FreedomService
return bukkitTelnetPlugin; return bukkitTelnetPlugin;
} }
public List<Admin> getConnectedAdmins() public List<StaffMember> getConnectedAdmins()
{ {
List<Admin> admins = new ArrayList<>(); List<StaffMember> staffMembers = new ArrayList<>();
final BukkitTelnet telnet = getBukkitTelnetPlugin(); final BukkitTelnet telnet = getBukkitTelnetPlugin();
if (telnet != null) if (telnet != null)
{ {
for (ClientSession session : telnet.appender.getSessions()) for (ClientSession session : telnet.appender.getSessions())
{ {
Admin admin = plugin.al.getEntryByName(session.getUserName().toLowerCase()); StaffMember staffMember = plugin.sl.getEntryByName(session.getUserName().toLowerCase());
if (admin != null && !admins.contains(admin)) if (staffMember != null && !staffMembers.contains(staffMember))
{ {
admins.add(admin); staffMembers.add(staffMember);
} }
} }
} }
return admins; return staffMembers;
} }
public void killTelnetSessions(final String name) public void killTelnetSessions(final String name)

View File

@ -63,7 +63,7 @@ public class LibsDisguisesBridge extends FreedomService
return null; return null;
} }
public void undisguiseAll(boolean admins) public void undisguiseAll(boolean staff)
{ {
try try
{ {
@ -78,7 +78,7 @@ public class LibsDisguisesBridge extends FreedomService
{ {
if (DisguiseAPI.isDisguised(player)) if (DisguiseAPI.isDisguised(player))
{ {
if (!admins && plugin.al.isAdmin(player)) if (!staff && plugin.sl.isStaff(player))
{ {
continue; continue;
} }

View File

@ -31,7 +31,7 @@ public class Cager extends FreedomService
{ {
Player player = event.getPlayer(); Player player = event.getPlayer();
if (player == null if (player == null
|| plugin.al.isAdmin(player)) || plugin.sl.isStaff(player))
{ {
return; return;
} }

View File

@ -28,7 +28,7 @@ public class Command_adventure extends FreedomCommand
return true; return true;
} }
checkRank(Rank.SUPER_ADMIN); checkRank(Rank.TRIAL_MOD);
if (args[0].equals("-a")) if (args[0].equals("-a"))
{ {
@ -37,7 +37,7 @@ public class Command_adventure extends FreedomCommand
targetPlayer.setGameMode(GameMode.ADVENTURE); 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."); msg("Your gamemode has been set to adventure.");
return true; return true;
} }

View File

@ -9,7 +9,7 @@ import org.bukkit.entity.AreaEffectCloud;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.Player; 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 = "/<command>", aliases = "aec") @CommandParameters(description = "Clears lingering potion area effect clouds.", usage = "/<command>", aliases = "aec")
public class Command_aeclear extends FreedomCommand public class Command_aeclear extends FreedomCommand
{ {
@ -17,7 +17,7 @@ public class Command_aeclear extends FreedomCommand
@Override @Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) 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; int removed = 0;
for (World world : server.getWorlds()) for (World world : server.getWorlds())
{ {

View File

@ -3,7 +3,7 @@ package me.totalfreedom.totalfreedommod.command;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import me.totalfreedom.totalfreedommod.admin.Admin; import me.totalfreedom.totalfreedommod.staff.StaffMember;
import me.totalfreedom.totalfreedommod.player.PlayerData; import me.totalfreedom.totalfreedommod.player.PlayerData;
import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil; import me.totalfreedom.totalfreedommod.util.FUtil;
@ -12,7 +12,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_IN_GAME) @CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_IN_GAME)
@CommandParameters(description = "Manage your AMP account", usage = "/<command> <create | resetpassword>") @CommandParameters(description = "Manage your AMP account", usage = "/<command> <create | resetpassword>")
public class Command_amp extends FreedomCommand public class Command_amp extends FreedomCommand
{ {
@ -43,9 +43,9 @@ public class Command_amp extends FreedomCommand
if (args[0].equals("create")) if (args[0].equals("create"))
{ {
msg("Creating your AMP account...", ChatColor.GREEN); msg("Creating your AMP account...", ChatColor.GREEN);
Admin admin = getAdmin(playerSender); StaffMember staffMember = getAdmin(playerSender);
if (admin.getAmpUsername() != null) if (staffMember.getAmpUsername() != null)
{ {
msg("You already have an AMP account.", ChatColor.RED); msg("You already have an AMP account.", ChatColor.RED);
return true; return true;
@ -54,9 +54,9 @@ public class Command_amp extends FreedomCommand
String username = sender.getName(); String username = sender.getName();
String password = FUtil.randomString(30); String password = FUtil.randomString(30);
admin.setAmpUsername(username); staffMember.setAmpUsername(username);
plugin.al.save(admin); plugin.sl.save(staffMember);
plugin.al.updateTables(); plugin.sl.updateTables();
plugin.amp.createAccount(username, password); plugin.amp.createAccount(username, password);
plugin.dc.sendAMPInfo(playerData, username, password); plugin.dc.sendAMPInfo(playerData, username, password);
@ -65,9 +65,9 @@ public class Command_amp extends FreedomCommand
} }
else if (args[0].equals("resetpassword")) else if (args[0].equals("resetpassword"))
{ {
Admin admin = getAdmin(playerSender); StaffMember staffMember = getAdmin(playerSender);
if (admin.getAmpUsername() == null) if (staffMember.getAmpUsername() == null)
{ {
msg("You do not have an AMP account.", ChatColor.RED); msg("You do not have an AMP account.", ChatColor.RED);
return true; return true;
@ -75,7 +75,7 @@ public class Command_amp extends FreedomCommand
msg("Resetting your password...", ChatColor.GREEN); msg("Resetting your password...", ChatColor.GREEN);
String username = admin.getAmpUsername(); String username = staffMember.getAmpUsername();
String password = FUtil.randomString(30); String password = FUtil.randomString(30);
plugin.amp.setPassword(username,password); plugin.amp.setPassword(username,password);
plugin.dc.sendAMPInfo(playerData, username, password); plugin.dc.sendAMPInfo(playerData, username, password);
@ -90,7 +90,7 @@ public class Command_amp extends FreedomCommand
@Override @Override
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{ {
if (args.length == 1 && plugin.al.isSeniorAdmin(sender)) if (args.length == 1 && plugin.sl.isAdmin(sender))
{ {
return Arrays.asList("create", "resetpassword"); return Arrays.asList("create", "resetpassword");
} }

View File

@ -6,7 +6,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> <message>") @CommandParameters(description = "Make an announcement anonymously to operators.", usage = "/<command> <message>")
public class Command_announce extends FreedomCommand public class Command_announce extends FreedomCommand
{ {

View File

@ -5,7 +5,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> <player>") @CommandParameters(description = "Toggle whether or not a player has their inventory automatically cleared when they join", usage = "/<command> <player>")
public class Command_autoclear extends FreedomCommand public class Command_autoclear extends FreedomCommand
{ {

View File

@ -5,7 +5,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> <player>") @CommandParameters(description = "Toggle whether or not a player is automatically teleported when they join", usage = "/<command> <player>")
public class Command_autotp extends FreedomCommand public class Command_autotp extends FreedomCommand
{ {

View File

@ -18,7 +18,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> <username> [reason] [-nrb | -q]", aliases = "gtfo") @CommandParameters(description = "Bans the specified player.", usage = "/<command> <username> [reason] [-nrb | -q]", aliases = "gtfo")
public class Command_ban extends FreedomCommand public class Command_ban extends FreedomCommand
{ {
@ -151,7 +151,7 @@ public class Command_ban extends FreedomCommand
bcast.append(" - Reason: ").append(ChatColor.YELLOW).append(reason); bcast.append(" - Reason: ").append(ChatColor.YELLOW).append(reason);
} }
msg(sender, ChatColor.GRAY + username + " has been banned and IP is: " + StringUtils.join(ips, ", ")); 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 // Kick player and handle others on IP

View File

@ -11,7 +11,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> <ip> [reason] [-q]") @CommandParameters(description = "Bans the specified ip.", usage = "/<command> <ip> [reason] [-q]")
public class Command_banip extends FreedomCommand public class Command_banip extends FreedomCommand
{ {
@ -72,7 +72,7 @@ public class Command_banip extends FreedomCommand
{ {
// Broadcast // Broadcast
FLog.info(ChatColor.RED + sender.getName() + " - Banned the IP " + ip); 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); player.sendMessage(message);
} }
} }

View File

@ -18,9 +18,9 @@ public class Command_banlist extends FreedomCommand
{ {
if (args[0].equalsIgnoreCase("purge")) 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(); int amount = plugin.bm.purge();
msg("Purged " + amount + " player bans."); msg("Purged " + amount + " player bans.");

View File

@ -10,7 +10,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> <name> [reason] [-q]") @CommandParameters(description = "Bans the specified name.", usage = "/<command> <name> [reason] [-q]")
public class Command_banname extends FreedomCommand public class Command_banname extends FreedomCommand
{ {
@ -55,7 +55,7 @@ public class Command_banname extends FreedomCommand
if (!silent) if (!silent)
{ {
FUtil.adminAction(sender.getName(), "Banned the name " + name, true); FUtil.staffAction(sender.getName(), "Banned the name " + name, true);
} }
Player player = getPlayer(name); Player player = getPlayer(name);

View File

@ -8,7 +8,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> <-a | purge | <player>>", aliases = "blockcommands,blockcommand,bc,bcmd") @CommandParameters(description = "Block all commands for everyone on the server, or a specific player.", usage = "/<command> <-a | purge | <player>>", aliases = "blockcommands,blockcommand,bc,bcmd")
public class Command_blockcmd extends FreedomCommand public class Command_blockcmd extends FreedomCommand
{ {
@ -23,7 +23,7 @@ public class Command_blockcmd extends FreedomCommand
if (args[0].equals("purge")) 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; int counter = 0;
for (Player player : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
@ -40,18 +40,18 @@ public class Command_blockcmd extends FreedomCommand
if (args[0].equals("-a")) 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; int counter = 0;
for (Player player : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
if (isAdmin(player)) if (isStaff(player))
{ {
continue; continue;
} }
counter += 1; counter += 1;
plugin.pl.getPlayer(player).setCommandsBlocked(true); 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."); msg("Blocked commands for " + counter + " players.");
@ -66,9 +66,9 @@ public class Command_blockcmd extends FreedomCommand
return true; 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; return true;
} }
@ -76,7 +76,7 @@ public class Command_blockcmd extends FreedomCommand
if (!playerdata.allCommandsBlocked()) if (!playerdata.allCommandsBlocked())
{ {
playerdata.setCommandsBlocked(true); 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() + "."); msg("Blocked commands for " + player.getName() + ".");
} }
else else

View File

@ -10,7 +10,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> [[-s] <player> [reason] | list | purge | all]") @CommandParameters(description = "Restricts/unrestricts block modification abilities for everyone on the server or a certain player.", usage = "/<command> [[-s] <player> [reason] | list | purge | all]")
public class Command_blockedit extends FreedomCommand public class Command_blockedit extends FreedomCommand
{ {
@ -46,7 +46,7 @@ public class Command_blockedit extends FreedomCommand
if (args[0].equals("purge")) 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; int count = 0;
for (final Player player : this.server.getOnlinePlayers()) for (final Player player : this.server.getOnlinePlayers())
{ {
@ -63,11 +63,11 @@ public class Command_blockedit extends FreedomCommand
if (args[0].equals("all")) 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; int counter = 0;
for (final Player player : this.server.getOnlinePlayers()) for (final Player player : this.server.getOnlinePlayers())
{ {
if (!plugin.al.isAdmin(player)) if (!plugin.sl.isStaff(player))
{ {
final FPlayer playerdata = plugin.pl.getPlayer(player); final FPlayer playerdata = plugin.pl.getPlayer(player);
playerdata.setEditBlocked(true); playerdata.setEditBlocked(true);
@ -105,20 +105,20 @@ public class Command_blockedit extends FreedomCommand
final FPlayer pd = plugin.pl.getPlayer(player2); final FPlayer pd = plugin.pl.getPlayer(player2);
if (pd.isEditBlocked()) 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); pd.setEditBlocked(false);
msg("Unblocking block modification abilities for " + player2.getName()); msg("Unblocking block modification abilities for " + player2.getName());
msg(player2, "Your block modification abilities have been restored.", ChatColor.RED); msg(player2, "Your block modification abilities have been restored.", ChatColor.RED);
} }
else 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 an admin, and cannot have their block edits blocked.");
return true; 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); pd.setEditBlocked(true);
if (smite) if (smite)

View File

@ -10,7 +10,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> [[-s] <player> [reason] | list | purge | all]", aliases = "pvpblock,pvpmode") @CommandParameters(description = "Toggle PVP mode for everyone or a certain player.", usage = "/<command> [[-s] <player> [reason] | list | purge | all]", aliases = "pvpblock,pvpmode")
public class Command_blockpvp extends FreedomCommand public class Command_blockpvp extends FreedomCommand
{ {
@ -46,7 +46,7 @@ public class Command_blockpvp extends FreedomCommand
if (args[0].equals("purge")) 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; int count = 0;
for (Player player : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
@ -64,11 +64,11 @@ public class Command_blockpvp extends FreedomCommand
if (args[0].equals("all")) 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; int counter = 0;
for (Player player : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
if (!plugin.al.isAdmin(player)) if (!plugin.sl.isStaff(player))
{ {
final FPlayer playerdata = plugin.pl.getPlayer(player); final FPlayer playerdata = plugin.pl.getPlayer(player);
playerdata.setPvpBlocked(true); playerdata.setPvpBlocked(true);
@ -106,20 +106,20 @@ public class Command_blockpvp extends FreedomCommand
final FPlayer pd = plugin.pl.getPlayer(p); final FPlayer pd = plugin.pl.getPlayer(p);
if (pd.isPvpBlocked()) 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); pd.setPvpBlocked(false);
msg("Enabling PVP for " + p.getName()); msg("Enabling PVP for " + p.getName());
msg(p, "Your PVP have been enabled.", ChatColor.GREEN); msg(p, "Your PVP have been enabled.", ChatColor.GREEN);
} }
else 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 an admin, and cannot have their PVP disabled.");
return true; 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); pd.setPvpBlocked(true);
if (smite) if (smite)
{ {

View File

@ -8,7 +8,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable; 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 = "/<command>", aliases = "bre") @CommandParameters(description = "Blocks redstone on the server.", usage = "/<command>", aliases = "bre")
public class Command_blockredstone extends FreedomCommand public class Command_blockredstone extends FreedomCommand
{ {
@ -18,14 +18,14 @@ public class Command_blockredstone extends FreedomCommand
if (ConfigEntry.ALLOW_REDSTONE.getBoolean()) if (ConfigEntry.ALLOW_REDSTONE.getBoolean())
{ {
ConfigEntry.ALLOW_REDSTONE.setBoolean(false); ConfigEntry.ALLOW_REDSTONE.setBoolean(false);
FUtil.adminAction(sender.getName(), "Blocking all redstone", true); FUtil.staffAction(sender.getName(), "Blocking all redstone", true);
new BukkitRunnable() new BukkitRunnable()
{ {
public void run() public void run()
{ {
if (!ConfigEntry.ALLOW_REDSTONE.getBoolean()) if (!ConfigEntry.ALLOW_REDSTONE.getBoolean())
{ {
FUtil.adminAction("TotalFreedom", "Unblocking all redstone", false); FUtil.staffAction("TotalFreedom", "Unblocking all redstone", false);
ConfigEntry.ALLOW_REDSTONE.setBoolean(true); ConfigEntry.ALLOW_REDSTONE.setBoolean(true);
} }
} }
@ -34,7 +34,7 @@ public class Command_blockredstone extends FreedomCommand
else else
{ {
ConfigEntry.ALLOW_REDSTONE.setBoolean(true); ConfigEntry.ALLOW_REDSTONE.setBoolean(true);
FUtil.adminAction(sender.getName(), "Unblocking all redstone", true); FUtil.staffAction(sender.getName(), "Unblocking all redstone", true);
} }
return true; return true;
} }

View File

@ -15,7 +15,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> <purge | <partialname> [head | block] [playername | blockname]") @CommandParameters(description = "Place a cage around someone with certain blocks, or someone's player head.", usage = "/<command> <purge | <partialname> [head | block] [playername | blockname]")
public class Command_cage extends FreedomCommand public class Command_cage extends FreedomCommand
{ {
@ -30,7 +30,7 @@ public class Command_cage extends FreedomCommand
String skullName = null; String skullName = null;
if ("purge".equals(args[0])) 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()) for (Player player : server.getOnlinePlayers())
{ {
final FPlayer fPlayer = plugin.pl.getPlayer(player); final FPlayer fPlayer = plugin.pl.getPlayer(player);
@ -101,11 +101,11 @@ public class Command_cage extends FreedomCommand
if (outerMaterial == Material.PLAYER_HEAD) 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 else
{ {
FUtil.adminAction(sender.getName(), "Caging " + player.getName(), true); FUtil.staffAction(sender.getName(), "Caging " + player.getName(), true);
} }
return true; return true;
} }
@ -113,7 +113,7 @@ public class Command_cage extends FreedomCommand
@Override @Override
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{ {
if (!plugin.al.isAdmin(sender)) if (!plugin.sl.isStaff(sender))
{ {
return null; return null;
} }

View File

@ -10,7 +10,7 @@ import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta; 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 = "/<command>") @CommandParameters(description = "For the people that are still alive - gives a cake to everyone on the server.", usage = "/<command>")
public class Command_cake extends FreedomCommand public class Command_cake extends FreedomCommand
{ {

View File

@ -16,7 +16,7 @@ public class Command_cartsit extends FreedomCommand
{ {
Player targetPlayer = playerSender; Player targetPlayer = playerSender;
if (args.length == 1 && plugin.al.isAdmin(sender)) if (args.length == 1 && plugin.sl.isStaff(sender))
{ {
targetPlayer = getPlayer(args[0]); targetPlayer = getPlayer(args[0]);

View File

@ -6,7 +6,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command>", aliases = "cc") @CommandParameters(description = "Clears the chat.", usage = "/<command>", aliases = "cc")
public class Command_clearchat extends FreedomCommand public class Command_clearchat extends FreedomCommand
{ {
@ -16,7 +16,7 @@ public class Command_clearchat extends FreedomCommand
{ {
for (Player player : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
if (!plugin.al.isAdmin(player)) if (!plugin.sl.isStaff(player))
{ {
for (int i = 0; i < 100; i++) 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; return true;
} }
} }

View File

@ -5,7 +5,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command>") @CommandParameters(description = "Clear the discord message queue.", usage = "/<command>")
public class Command_cleardiscordqueue extends FreedomCommand public class Command_cleardiscordqueue extends FreedomCommand
{ {

View File

@ -29,11 +29,11 @@ public class Command_clearinventory extends FreedomCommand
} }
else else
{ {
if (plugin.al.isAdmin(sender)) if (plugin.sl.isStaff(sender))
{ {
if (args[0].equals("-a")) 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()) for (Player player : server.getOnlinePlayers())
{ {
player.getInventory().clear(); player.getInventory().clear();
@ -67,7 +67,7 @@ public class Command_clearinventory extends FreedomCommand
@Override @Override
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) public List<String> 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<String> players = FUtil.getPlayerList(); List<String> players = FUtil.getPlayerList();
players.add("-a"); players.add("-a");

View File

@ -1,12 +1,12 @@
package me.totalfreedom.totalfreedommod.command; package me.totalfreedom.totalfreedommod.command;
import me.totalfreedom.totalfreedommod.admin.Admin; import me.totalfreedom.totalfreedommod.staff.StaffMember;
import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.rank.Rank;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command>", aliases = "commandspy") @CommandParameters(description = "Spy on commands", usage = "/<command>", aliases = "commandspy")
public class Command_cmdspy extends FreedomCommand public class Command_cmdspy extends FreedomCommand
{ {
@ -14,11 +14,11 @@ public class Command_cmdspy extends FreedomCommand
@Override @Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) 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);
admin.setCommandSpy(!admin.getCommandSpy()); staffMember.setCommandSpy(!staffMember.getCommandSpy());
msg("CommandSpy " + (admin.getCommandSpy() ? "enabled." : "disabled.")); msg("CommandSpy " + (staffMember.getCommandSpy() ? "enabled." : "disabled."));
plugin.al.save(admin); plugin.sl.save(staffMember);
plugin.al.updateTables(); plugin.sl.updateTables();
return true; return true;
} }

View File

@ -8,7 +8,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> <message>", aliases = "csay") @CommandParameters(description = "Telnet/Console command - Send a chat message with chat formatting over telnet.", usage = "/<command> <message>", aliases = "csay")
public class Command_consolesay extends FreedomCommand public class Command_consolesay extends FreedomCommand
{ {

View File

@ -11,7 +11,7 @@ import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta; 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 = "/<command>") @CommandParameters(description = "For those who have no friends - gives a cookie to everyone on the server.", usage = "/<command>")
public class Command_cookie extends FreedomCommand public class Command_cookie extends FreedomCommand
{ {

View File

@ -28,7 +28,7 @@ public class Command_creative extends FreedomCommand
return true; return true;
} }
checkRank(Rank.SUPER_ADMIN); checkRank(Rank.TRIAL_MOD);
if (args[0].equals("-a")) if (args[0].equals("-a"))
{ {
@ -37,7 +37,7 @@ public class Command_creative extends FreedomCommand
targetPlayer.setGameMode(GameMode.CREATIVE); 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."); msg("Your gamemode has been set to creative.");
return true; return true;
} }

View File

@ -9,7 +9,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> <player>") @CommandParameters(description = "Curse someone - sends a cursed texture pack to the specified player.", usage = "/<command> <player>")
public class Command_curse extends FreedomCommand public class Command_curse extends FreedomCommand
{ {
@ -57,7 +57,7 @@ public class Command_curse extends FreedomCommand
@Override @Override
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) public List<String> 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(); return FUtil.getPlayerList();
} }

View File

@ -6,7 +6,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command>") @CommandParameters(description = "Essentials Interface Command - Remove the nickname of all players on the server.", usage = "/<command>")
public class Command_denick extends FreedomCommand public class Command_denick extends FreedomCommand
{ {
@ -20,7 +20,7 @@ public class Command_denick extends FreedomCommand
return true; return true;
} }
FUtil.adminAction(sender.getName(), "Removing all nicknames", false); FUtil.staffAction(sender.getName(), "Removing all nicknames", false);
for (Player player : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {

View File

@ -9,7 +9,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> <partialname>") @CommandParameters(description = "Deop a player", usage = "/<command> <partialname>")
public class Command_deop extends FreedomCommand public class Command_deop extends FreedomCommand
{ {
@ -35,7 +35,7 @@ public class Command_deop extends FreedomCommand
if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName().toLowerCase().contains(targetName) if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName().toLowerCase().contains(targetName)
|| player.getName().contains(targetName) || player.getDisplayName().contains(targetName)) || player.getName().contains(targetName) || player.getDisplayName().contains(targetName))
{ {
if (player.isOp() && !plugin.al.isVanished(player)) if (player.isOp() && !plugin.sl.isVanished(player))
{ {
matchedPlayerNames.add(player.getName()); matchedPlayerNames.add(player.getName());
player.setOp(false); player.setOp(false);
@ -48,7 +48,7 @@ public class Command_deop extends FreedomCommand
{ {
if (!silent) if (!silent)
{ {
FUtil.adminAction(sender.getName(), "De-opping " + StringUtils.join(matchedPlayerNames, ", "), false); FUtil.staffAction(sender.getName(), "De-opping " + StringUtils.join(matchedPlayerNames, ", "), false);
} }
} }
else else

View File

@ -6,7 +6,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command>") @CommandParameters(description = "Deop everyone on the server.", usage = "/<command>")
public class Command_deopall extends FreedomCommand public class Command_deopall extends FreedomCommand
{ {
@ -14,7 +14,7 @@ public class Command_deopall extends FreedomCommand
@Override @Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) 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()) for (Player player : server.getOnlinePlayers())
{ {

View File

@ -6,7 +6,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command>", aliases = "dtoggle") @CommandParameters(description = "Toggle LibsDisguises for everyone online.", usage = "/<command>", aliases = "dtoggle")
public class Command_disguisetoggle extends FreedomCommand public class Command_disguisetoggle extends FreedomCommand
{ {
@ -20,7 +20,7 @@ public class Command_disguisetoggle extends FreedomCommand
return true; 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()) if (plugin.ldb.isDisguisesEnabled())
{ {

View File

@ -13,7 +13,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> <mode> <name> <ip> <package> [forum_user]") @CommandParameters(description = "Adds or removes donators", usage = "/<command> <mode> <name> <ip> <package> [forum_user]")
public class Command_donator extends FreedomCommand public class Command_donator extends FreedomCommand
{ {

View File

@ -1,6 +1,6 @@
package me.totalfreedom.totalfreedommod.command; package me.totalfreedom.totalfreedommod.command;
import me.totalfreedom.totalfreedommod.admin.Admin; import me.totalfreedom.totalfreedommod.staff.StaffMember;
import me.totalfreedom.totalfreedommod.banning.Ban; import me.totalfreedom.totalfreedommod.banning.Ban;
import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.punishments.Punishment; import me.totalfreedom.totalfreedommod.punishments.Punishment;
@ -17,7 +17,7 @@ import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector; 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 = "/<command> <playername> [reason]") @CommandParameters(description = "Sends the specified player to their doom.", usage = "/<command> <playername> [reason]")
public class Command_doom extends FreedomCommand public class Command_doom extends FreedomCommand
{ {
@ -38,23 +38,23 @@ public class Command_doom extends FreedomCommand
return true; 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); FUtil.bcastMsg(player.getName() + " will be completely obliviated!", ChatColor.RED);
final String ip = player.getAddress().getAddress().getHostAddress().trim(); final String ip = player.getAddress().getAddress().getHostAddress().trim();
// Remove from admin // Remove from admin
Admin admin = getAdmin(player); StaffMember staffMember = getAdmin(player);
if (admin != null) if (staffMember != null)
{ {
FUtil.adminAction(sender.getName(), "Removing " + player.getName() + " from the admin list", true); FUtil.staffAction(sender.getName(), "Removing " + player.getName() + " from the staff list", true);
admin.setActive(false); staffMember.setActive(false);
plugin.al.save(admin); plugin.sl.save(staffMember);
plugin.al.updateTables(); plugin.sl.updateTables();
plugin.amp.updateAccountStatus(admin); plugin.amp.updateAccountStatus(staffMember);
if (plugin.dc.enabled && ConfigEntry.DISCORD_ROLE_SYNC.getBoolean()) if (plugin.dc.enabled && ConfigEntry.DISCORD_ROLE_SYNC.getBoolean())
{ {
plugin.dc.syncRoles(admin, plugin.pl.getData(admin.getName()).getDiscordID()); plugin.dc.syncRoles(staffMember, plugin.pl.getData(staffMember.getName()).getDiscordID());
} }
} }
@ -120,7 +120,7 @@ public class Command_doom extends FreedomCommand
public void run() public void run()
{ {
// message // 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); msg(sender, player.getName() + " has been banned and IP is: " + ip);
// generate explosion // generate explosion

View File

@ -12,7 +12,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.EntityType; import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player; 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 = "/<command> [name | -a]", aliases = "ew,rd") @CommandParameters(description = "Remove various server entities that may cause lag, such as dropped items, minecarts, and boats.", usage = "/<command> [name | -a]", aliases = "ew,rd")
public class Command_entitywipe extends FreedomCommand public class Command_entitywipe extends FreedomCommand
{ {
@ -54,7 +54,7 @@ public class Command_entitywipe extends FreedomCommand
entityName = FUtil.formatName(type.name()); 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; int count;
if (type != null) if (type != null)
{ {

View File

@ -11,7 +11,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.util.Vector; 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 = "/<command> [radius] [strength]") @CommandParameters(description = "Push people away from you.", usage = "/<command> [radius] [strength]")
public class Command_expel extends FreedomCommand public class Command_expel extends FreedomCommand
{ {

View File

@ -10,7 +10,7 @@ import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector; 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 = "/<command> <player>") @CommandParameters(description = "Surprise someone.", usage = "/<command> <player>")
public class Command_explode extends FreedomCommand public class Command_explode extends FreedomCommand
{ {
@ -58,7 +58,7 @@ public class Command_explode extends FreedomCommand
@Override @Override
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) public List<String> 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(); return FUtil.getPlayerList();
} }

View File

@ -6,7 +6,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command>", aliases = "ea") @CommandParameters(description = "Make arrows explode", usage = "/<command>", aliases = "ea")
public class Command_explosivearrows extends FreedomCommand public class Command_explosivearrows extends FreedomCommand
{ {

View File

@ -6,7 +6,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> <player>", aliases = "showip,listip") @CommandParameters(description = "Shows all IPs registered to a player", usage = "/<command> <player>", aliases = "showip,listip")
public class Command_findip extends FreedomCommand public class Command_findip extends FreedomCommand
{ {

View File

@ -13,7 +13,7 @@ public class Command_forcekill extends FreedomCommand
@Override @Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) 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); playerSender.setHealth(0);
return true; return true;

View File

@ -8,7 +8,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH)
@CommandParameters(description = "Freeze/Unfreeze a specified player, or all non-admins on the server.", usage = "/<command> [target | purge]", aliases = "fr") @CommandParameters(description = "Freeze/Unfreeze a specified player, or all non-admins on the server.", usage = "/<command> [target | purge]", aliases = "fr")
public class Command_freeze extends FreedomCommand public class Command_freeze extends FreedomCommand
{ {
@ -23,15 +23,15 @@ public class Command_freeze extends FreedomCommand
if (!gFreeze) 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."); msg("Players are now free to move.");
return true; 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()) 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); 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(player, "You have been globally frozen due to an OP breaking the rules, please wait and you will be unfrozen soon.", ChatColor.RED);
@ -44,10 +44,10 @@ public class Command_freeze extends FreedomCommand
if (args[0].equals("purge")) 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()) 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); player.sendTitle(ChatColor.GREEN + "You've been unfrozen.", ChatColor.YELLOW + "You may now move again.", 20, 100, 60);
} }

View File

@ -6,7 +6,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> <on [radius (default=25)] | off>") @CommandParameters(description = "You'll never even see it coming - repeatedly push players away from you until command is untoggled.", usage = "/<command> <on [radius (default=25)] | off>")
public class Command_fuckoff extends FreedomCommand public class Command_fuckoff extends FreedomCommand
{ {

View File

@ -13,7 +13,7 @@ import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask; 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 = "/<command>") @CommandParameters(description = "View server health, such as ticks-per-second, memory, etc.", usage = "/<command>")
public class Command_health extends FreedomCommand public class Command_health extends FreedomCommand
{ {

View File

@ -152,7 +152,7 @@ public class Command_hubworld extends FreedomCommand
@Override @Override
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{ {
if (!plugin.al.isAdmin(sender)) if (!plugin.sl.isStaff(sender))
{ {
return Collections.emptyList(); return Collections.emptyList();
} }
@ -177,7 +177,7 @@ public class Command_hubworld extends FreedomCommand
// TODO: Redo this properly // TODO: Redo this properly
private void assertCommandPerms(CommandSender sender, Player playerSender) throws PermissionDeniedException 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(); throw new PermissionDeniedException();
} }

View File

@ -5,7 +5,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_CONSOLE) @CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_CONSOLE)
@CommandParameters(description = "Reload the indefinite ban list.", usage = "/<command> reload", aliases = "ib") @CommandParameters(description = "Reload the indefinite ban list.", usage = "/<command> reload", aliases = "ib")
public class Command_indefban extends FreedomCommand public class Command_indefban extends FreedomCommand
{ {

View File

@ -26,11 +26,11 @@ public class Command_invis extends FreedomCommand
{ {
if (args[0].equalsIgnoreCase("clear")) if (args[0].equalsIgnoreCase("clear"))
{ {
if(!plugin.al.isAdmin(sender)) if(!plugin.sl.isStaff(sender))
return noPerms(); return noPerms();
else 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; clear = true;
} }
} }
@ -43,10 +43,10 @@ public class Command_invis extends FreedomCommand
for (Player player : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
if (player.hasPotionEffect(PotionEffectType.INVISIBILITY) && !plugin.al.isVanished(player)) if (player.hasPotionEffect(PotionEffectType.INVISIBILITY) && !plugin.sl.isVanished(player))
{ {
players.add(player.getName()); players.add(player.getName());
if (clear && !plugin.al.isAdmin(player)) if (clear && !plugin.sl.isStaff(player))
{ {
player.removePotionEffect((PotionEffectType.INVISIBILITY)); player.removePotionEffect((PotionEffectType.INVISIBILITY));
clears++; clears++;
@ -71,7 +71,7 @@ public class Command_invis extends FreedomCommand
@Override @Override
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) public List<String> 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 Arrays.asList("clear");
return Collections.emptyList(); return Collections.emptyList();

View File

@ -35,7 +35,7 @@ public class Command_invsee extends FreedomCommand
return true; 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 administrators.");
return true; return true;
@ -44,7 +44,7 @@ public class Command_invsee extends FreedomCommand
Inventory inv; Inventory inv;
if (plugin.al.isAdmin(player)) if (plugin.sl.isStaff(player))
{ {
if (args.length > 1) if (args.length > 1)
{ {
@ -75,7 +75,7 @@ public class Command_invsee extends FreedomCommand
return true; return true;
} }
if (!plugin.al.isAdmin(player)) if (!plugin.sl.isStaff(player))
{ {
if (args.length > 1) if (args.length > 1)
{ {

View File

@ -95,7 +95,7 @@ public class Command_jumppads extends FreedomCommand
@Override @Override
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{ {
if (!plugin.al.isAdmin(sender)) if (!plugin.sl.isStaff(sender))
{ {
return Collections.emptyList(); return Collections.emptyList();
} }

View File

@ -12,7 +12,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> <player> [reason] [-q]") @CommandParameters(description = "Kick the specified player.", usage = "/<command> <player> [reason] [-q]")
public class Command_kick extends FreedomCommand public class Command_kick extends FreedomCommand
{ {
@ -65,11 +65,11 @@ public class Command_kick extends FreedomCommand
{ {
if (reason != null) if (reason != null)
{ {
FUtil.adminAction(sender.getName(), "Kicking " + player.getName() + " - Reason: " + reason, true); FUtil.staffAction(sender.getName(), "Kicking " + player.getName() + " - Reason: " + reason, true);
} }
else else
{ {
FUtil.adminAction(sender.getName(), "Kicking " + player.getName(), true); FUtil.staffAction(sender.getName(), "Kicking " + player.getName(), true);
} }
} }

View File

@ -7,21 +7,21 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.TELNET_ADMIN, source = SourceType.BOTH) @CommandPermissions(level = Rank.MOD, source = SourceType.BOTH)
@CommandParameters(description = "Kick all non-admins on server.", usage = "/<command>", aliases = "kickall") @CommandParameters(description = "Kick all non-staff on server.", usage = "/<command>", aliases = "kickall")
public class Command_kicknoob extends FreedomCommand public class Command_kicknoob extends FreedomCommand
{ {
@Override @Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) 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()) 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() + ".");
} }
} }

View File

@ -7,7 +7,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> <player>") @CommandParameters(description = "Show the last command the specified player used.", usage = "/<command> <player>")
public class Command_lastcmd extends FreedomCommand public class Command_lastcmd extends FreedomCommand
{ {

View File

@ -22,7 +22,7 @@ public class Command_linkdiscord extends FreedomCommand
return true; 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]); PlayerData playerData = plugin.pl.getData(args[0]);
if (playerData == null) if (playerData == null)

View File

@ -1,9 +1,9 @@
package me.totalfreedom.totalfreedommod.command; package me.totalfreedom.totalfreedommod.command;
import de.myzelyam.api.vanish.VanishAPI;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import me.totalfreedom.totalfreedommod.admin.Admin; import me.totalfreedom.totalfreedommod.staff.StaffMember;
import me.totalfreedom.totalfreedommod.admin.AdminList;
import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.rank.Displayable; import me.totalfreedom.totalfreedommod.rank.Displayable;
import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.rank.Rank;
@ -15,7 +15,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.IMPOSTOR, source = SourceType.BOTH) @CommandPermissions(level = Rank.IMPOSTOR, source = SourceType.BOTH)
@CommandParameters(description = "Lists the real names of all online players.", usage = "/<command> [-a | -i | -f | -v]", aliases = "who,lsit") @CommandParameters(description = "Lists the real names of all online players.", usage = "/<command> [-s | -i | -f | -v]", aliases = "who,lsit")
public class Command_list extends FreedomCommand public class Command_list extends FreedomCommand
{ {
@ -41,20 +41,20 @@ public class Command_list extends FreedomCommand
String s = args[0]; String s = args[0];
switch (s) switch (s)
{ {
case "-a": case "-s":
{ {
listFilter = ListFilter.ADMINS; listFilter = ListFilter.STAFF;
break; break;
} }
case "-v": case "-v":
{ {
checkRank(Rank.SUPER_ADMIN); checkRank(Rank.TRIAL_MOD);
listFilter = ListFilter.VANISHED_ADMINS; listFilter = ListFilter.VANISHED_STAFF;
break; break;
} }
case "-t": case "-t":
{ {
checkRank(Rank.TELNET_ADMIN); checkRank(Rank.MOD);
listFilter = ListFilter.TELNET_SESSIONS; listFilter = ListFilter.TELNET_SESSIONS;
break; break;
} }
@ -83,20 +83,20 @@ public class Command_list extends FreedomCommand
List<String> n = new ArrayList<>(); List<String> 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<Admin> connectedAdmins = plugin.btb.getConnectedAdmins(); List<StaffMember> connectedStaffMembers = plugin.btb.getConnectedAdmins();
onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(connectedAdmins.size()) onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(connectedStaffMembers.size())
.append(ChatColor.BLUE) .append(ChatColor.BLUE)
.append(" admins connected to telnet."); .append(" staff connected to telnet.");
for (Admin admin : connectedAdmins) for (StaffMember staffMember : connectedStaffMembers)
{ {
n.add(plugin.rm.getDisplay(admin).getColoredTag() + admin.getName()); n.add(plugin.rm.getDisplay(staffMember).getColoredTag() + staffMember.getName());
} }
} }
else else
{ {
onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().size() - AdminList.vanished.size()) onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().size() - VanishAPI.getInvisiblePlayers().size())
.append(ChatColor.BLUE) .append(ChatColor.BLUE)
.append(" out of a maximum ") .append(" out of a maximum ")
.append(ChatColor.RED) .append(ChatColor.RED)
@ -105,19 +105,19 @@ public class Command_list extends FreedomCommand
.append(" players online."); .append(" players online.");
for (Player p : server.getOnlinePlayers()) for (Player p : server.getOnlinePlayers())
{ {
if (listFilter == ListFilter.ADMINS && !plugin.al.isAdmin(p)) if (listFilter == ListFilter.STAFF && !plugin.sl.isStaff(p))
{ {
continue; continue;
} }
if (listFilter == ListFilter.ADMINS && plugin.al.isVanished(p.getName())) if (listFilter == ListFilter.STAFF && plugin.sl.isVanished(p))
{ {
continue; continue;
} }
if (listFilter == ListFilter.VANISHED_ADMINS && !plugin.al.isVanished(p.getName())) if (listFilter == ListFilter.VANISHED_STAFF && !plugin.sl.isVanished(p))
{ {
continue; continue;
} }
if (listFilter == ListFilter.IMPOSTORS && !plugin.al.isAdminImpostor(p)) if (listFilter == ListFilter.IMPOSTORS && !plugin.sl.isAdminImpostor(p))
{ {
continue; continue;
} }
@ -125,20 +125,13 @@ public class Command_list extends FreedomCommand
{ {
continue; continue;
} }
if (listFilter == ListFilter.PLAYERS && plugin.al.isVanished(p)) if (listFilter == ListFilter.PLAYERS && plugin.sl.isVanished(p))
{ {
continue; continue;
} }
final Displayable display = plugin.rm.getDisplay(p); final Displayable display = plugin.rm.getDisplay(p);
if (!senderIsConsole && plugin.al.isAdmin(playerSender) && plugin.al.getAdmin(playerSender).getOldTags()) n.add(display.getColoredTag() + p.getName());
{
n.add(getOldPrefix(display) + p.getName());
}
else
{
n.add(display.getColoredTag() + p.getName());
}
} }
} }
String playerType = listFilter.toString().toLowerCase().replace('_', ' '); String playerType = listFilter.toString().toLowerCase().replace('_', ' ');
@ -162,29 +155,12 @@ public class Command_list extends FreedomCommand
return true; 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 private enum ListFilter
{ {
PLAYERS, PLAYERS,
ADMINS, STAFF,
VANISHED_ADMINS, VANISHED_STAFF,
TELNET_SESSIONS, TELNET_SESSIONS,
FAMOUS_PLAYERS, FAMOUS_PLAYERS,
IMPOSTORS IMPOSTORS

View File

@ -9,7 +9,7 @@ import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask; 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 = "/<command> <all | purge | <<partialname> on | off> [-q]>") @CommandParameters(description = "This is evil, and I never should have wrote it - blocks specified player's input.", usage = "/<command> <all | purge | <<partialname> on | off> [-q]>")
public class Command_lockup extends FreedomCommand public class Command_lockup extends FreedomCommand
{ {
@ -22,7 +22,7 @@ public class Command_lockup extends FreedomCommand
{ {
if (args[0].equalsIgnoreCase("all")) 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()) for (Player player : server.getOnlinePlayers())
{ {
@ -32,7 +32,7 @@ public class Command_lockup extends FreedomCommand
} }
else if (args[0].equalsIgnoreCase("purge")) 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()) for (Player player : server.getOnlinePlayers())
{ {
cancelLockup(player); cancelLockup(player);
@ -59,7 +59,7 @@ public class Command_lockup extends FreedomCommand
if (!silent) if (!silent)
{ {
FUtil.adminAction(sender.getName(), "Locking up " + player.getName(), true); FUtil.staffAction(sender.getName(), "Locking up " + player.getName(), true);
} }
startLockup(player); startLockup(player);
msg("Locked up " + player.getName() + "."); msg("Locked up " + player.getName() + ".");
@ -76,7 +76,7 @@ public class Command_lockup extends FreedomCommand
if (!silent) if (!silent)
{ {
FUtil.adminAction(sender.getName(), "Unlocking " + player.getName(), true); FUtil.staffAction(sender.getName(), "Unlocking " + player.getName(), true);
} }
cancelLockup(player); cancelLockup(player);
msg("Unlocked " + player.getName() + "."); msg("Unlocked " + player.getName() + ".");

View File

@ -6,7 +6,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> [off]") @CommandParameters(description = "Register your connection with the TFM logviewer.", usage = "/<command> [off]")
public class Command_logs extends FreedomCommand public class Command_logs extends FreedomCommand
{ {

View File

@ -19,7 +19,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> <playername> <name>", aliases = "mor") @CommandParameters(description = "Make a WorldGuard region for an OP.", usage = "/<command> <playername> <name>", aliases = "mor")
public class Command_makeopregion extends FreedomCommand public class Command_makeopregion extends FreedomCommand
{ {

View File

@ -10,7 +10,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> <coins: <add | set | remove> <amount> <player | all> | items: <give | take> <item> <player>", aliases = "ms") @CommandParameters(description = "Manage the shop", usage = "/<command> <coins: <add | set | remove> <amount> <player | all> | items: <give | take> <item> <player>", aliases = "ms")
public class Command_manageshop extends FreedomCommand public class Command_manageshop extends FreedomCommand
{ {

View File

@ -7,7 +7,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> <playername>", aliases="mv") @CommandParameters(description = "Manually verify someone", usage = "/<command> <playername>", aliases="mv")
public class Command_manuallyverify extends FreedomCommand public class Command_manuallyverify extends FreedomCommand
{ {
@ -39,7 +39,7 @@ public class Command_manuallyverify extends FreedomCommand
return true; 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.setOp(true);
player.sendMessage(YOU_ARE_OP); player.sendMessage(YOU_ARE_OP);

View File

@ -6,7 +6,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> <players>", aliases = "genocide") @CommandParameters(description = "seth's personal command", usage = "/<command> <players>", aliases = "genocide")
public class Command_massmurder extends FreedomCommand public class Command_massmurder extends FreedomCommand
{ {

View File

@ -152,7 +152,7 @@ public class Command_masterbuilderworld extends FreedomCommand
@Override @Override
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{ {
if (!plugin.al.isAdmin(sender)) if (!plugin.sl.isStaff(sender))
{ {
return Collections.emptyList(); return Collections.emptyList();
} }
@ -177,7 +177,7 @@ public class Command_masterbuilderworld extends FreedomCommand
// TODO: Redo this properly // TODO: Redo this properly
private void assertCommandPerms(CommandSender sender, Player playerSender) throws PermissionDeniedException 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(); throw new PermissionDeniedException();
} }

View File

@ -65,7 +65,7 @@ public class Command_mbconfig extends FreedomCommand
if (data.isMasterBuilder() && plugin.pl.isPlayerImpostor(player)) 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.setOp(true);
player.sendMessage(YOU_ARE_OP); player.sendMessage(YOU_ARE_OP);
@ -79,7 +79,7 @@ public class Command_mbconfig extends FreedomCommand
} }
else if (!data.isMasterBuilder()) 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.setMasterBuilder(true);
data.setVerification(true); data.setVerification(true);
plugin.pl.save(data); plugin.pl.save(data);
@ -113,7 +113,7 @@ public class Command_mbconfig extends FreedomCommand
return true; 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); data.setMasterBuilder(false);
if (data.getDiscordID() == null) if (data.getDiscordID() == null)
{ {

View File

@ -7,7 +7,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> <on|off|setmax <count>|dragon|giant|ghast|slime>") @CommandParameters(description = "Control mob limiting parameters.", usage = "/<command> <on|off|setmax <count>|dragon|giant|ghast|slime>")
public class Command_moblimiter extends FreedomCommand public class Command_moblimiter extends FreedomCommand
{ {

View File

@ -12,7 +12,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.EntityType; import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player; 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 = "/<command> [name]", aliases = "mp") @CommandParameters(description = "Purge all mobs in all worlds.", usage = "/<command> [name]", aliases = "mp")
public class Command_mobpurge extends FreedomCommand public class Command_mobpurge extends FreedomCommand
{ {
@ -46,7 +46,7 @@ public class Command_mobpurge extends FreedomCommand
mobName = FUtil.formatName(type.name()); 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); int count = plugin.ew.purgeMobs(type);
msg(count + " " + (type != null ? mobName : "mob") + FUtil.showS(count) + " removed."); msg(count + " " + (type != null ? mobName : "mob") + FUtil.showS(count) + " removed.");
return true; return true;

View File

@ -16,7 +16,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> <[-s | -q] <player> [reason] | list | purge | all>", aliases = "stfu") @CommandParameters(description = "Mutes a player with brute force.", usage = "/<command> <[-s | -q] <player> [reason] | list | purge | all>", aliases = "stfu")
public class Command_mute extends FreedomCommand public class Command_mute extends FreedomCommand
{ {
@ -53,7 +53,7 @@ public class Command_mute extends FreedomCommand
if (args[0].equals("purge")) if (args[0].equals("purge"))
{ {
FUtil.adminAction(sender.getName(), "Unmuting all players.", true); FUtil.staffAction(sender.getName(), "Unmuting all players.", true);
FPlayer info; FPlayer info;
int count = 0; int count = 0;
for (Player mp : server.getOnlinePlayers()) for (Player mp : server.getOnlinePlayers())
@ -73,13 +73,13 @@ public class Command_mute extends FreedomCommand
if (args[0].equals("all")) if (args[0].equals("all"))
{ {
FUtil.adminAction(sender.getName(), "Muting all non-admins", true); FUtil.staffAction(sender.getName(), "Muting all non-admins", true);
FPlayer playerdata; FPlayer playerdata;
int counter = 0; int counter = 0;
for (Player player : server.getOnlinePlayers()) 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); 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); playerdata = plugin.pl.getPlayer(player);
@ -120,7 +120,7 @@ public class Command_mute extends FreedomCommand
} }
FPlayer playerdata = plugin.pl.getPlayer(player); 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 an admin, and can't be muted.");
return true; return true;
@ -140,7 +140,7 @@ public class Command_mute extends FreedomCommand
return true; return true;
} }
FUtil.adminAction(sender.getName(), "Muting " + player.getName(), true); FUtil.staffAction(sender.getName(), "Muting " + player.getName(), true);
if (smite) if (smite)
{ {
@ -163,7 +163,7 @@ public class Command_mute extends FreedomCommand
@Override @Override
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{ {
if (!plugin.al.isAdmin(sender)) if (!plugin.sl.isStaff(sender))
{ {
return null; return null;
} }

View File

@ -4,7 +4,7 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import me.totalfreedom.totalfreedommod.admin.Admin; import me.totalfreedom.totalfreedommod.staff.StaffMember;
import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.player.PlayerData; import me.totalfreedom.totalfreedommod.player.PlayerData;
import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.rank.Rank;
@ -15,9 +15,9 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "Manage your admin entry.", usage = "/<command> [-o <admin>] <clearips | clearip <ip> | setlogin <message> | clearlogin | setacformat <format> | clearacformat> | oldtags | logstick | syncroles>") @CommandParameters(description = "Manage your staff entry.", usage = "/<command> [-o <staff member>] <clearips | clearip <ip> | setlogin <message> | clearlogin | setacformat <format> | clearacformat> | oldtags | logstick | syncroles>")
public class Command_myadmin extends FreedomCommand public class Command_mystaff extends FreedomCommand
{ {
@Override @Override
@ -29,13 +29,13 @@ public class Command_myadmin extends FreedomCommand
} }
Player init = null; Player init = null;
Admin target = getAdmin(playerSender); StaffMember target = getAdmin(playerSender);
Player targetPlayer = playerSender; Player targetPlayer = playerSender;
// -o switch // -o switch
if (args[0].equals("-o")) if (args[0].equals("-o"))
{ {
checkRank(Rank.SENIOR_ADMIN); checkRank(Rank.ADMIN);
init = playerSender; init = playerSender;
targetPlayer = getPlayer(args[1]); targetPlayer = getPlayer(args[1]);
if (targetPlayer == null) if (targetPlayer == null)
@ -47,7 +47,7 @@ public class Command_myadmin extends FreedomCommand
target = getAdmin(targetPlayer); target = getAdmin(targetPlayer);
if (target == null) if (target == null)
{ {
msg("That player is not an admin", ChatColor.RED); msg("That player is not a staff member", ChatColor.RED);
return true; return true;
} }
@ -72,19 +72,19 @@ public class Command_myadmin extends FreedomCommand
if (init == null) if (init == null)
{ {
FUtil.adminAction(sender.getName(), "Clearing my supered IPs", true); FUtil.staffAction(sender.getName(), "Clearing my IPs", true);
} }
else 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; int counter = target.getIps().size() - 1;
target.clearIPs(); target.clearIPs();
target.addIp(targetIp); target.addIp(targetIp);
plugin.al.save(target); plugin.sl.save(target);
plugin.al.updateTables(); plugin.sl.updateTables();
plugin.pl.syncIps(target); plugin.pl.syncIps(target);
@ -121,16 +121,16 @@ public class Command_myadmin extends FreedomCommand
} }
else else
{ {
msg("You cannot remove that admin's current IP."); msg("You cannot remove that staff members's current IP.");
} }
return true; 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]); target.removeIp(args[1]);
plugin.al.save(target); plugin.sl.save(target);
plugin.al.updateTables(); plugin.sl.updateTables();
plugin.pl.syncIps(target); plugin.pl.syncIps(target);
@ -141,6 +141,7 @@ public class Command_myadmin extends FreedomCommand
case "setlogin": case "setlogin":
{ {
checkRank(Rank.MOD);
if (args.length < 2) if (args.length < 2)
{ {
return false; return false;
@ -158,50 +159,43 @@ public class Command_myadmin extends FreedomCommand
msg("Your login message cannot be more than 100 characters (excluding your rank and your name)", ChatColor.RED); msg("Your login message cannot be more than 100 characters (excluding your rank and your name)", ChatColor.RED);
return true; 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); target.setLoginMessage(message);
String previewMessage = plugin.rm.craftLoginMessage(targetPlayer, message); String previewMessage = plugin.rm.craftLoginMessage(targetPlayer, message);
msg((init == null ? "Your" : targetPlayer.getName() + "'s") + " login message is now: "); msg((init == null ? "Your" : targetPlayer.getName() + "'s") + " login message is now: ");
msg("> " + previewMessage); msg("> " + previewMessage);
plugin.al.save(target); plugin.sl.save(target);
plugin.al.updateTables(); plugin.sl.updateTables();
return true; return true;
} }
case "clearlogin": 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); target.setLoginMessage(null);
plugin.al.save(target); plugin.sl.save(target);
plugin.al.updateTables(); plugin.sl.updateTables();
return true; return true;
} }
case "setacformat": case "setscformat":
{ {
String format = StringUtils.join(args, " ", 1, args.length); String format = StringUtils.join(args, " ", 1, args.length);
target.setAcFormat(format); target.setAcFormat(format);
plugin.al.save(target); plugin.sl.save(target);
plugin.al.updateTables(); plugin.sl.updateTables();
msg("Set admin chat format to \"" + format + "\".", ChatColor.GRAY); msg("Set staff 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."); 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)); msg(ChatColor.GRAY + "Example: " + FUtil.colorize(example));
return true; return true;
} }
case "clearacformat": case "clearscformat":
{ {
target.setAcFormat(null); target.setAcFormat(null);
plugin.al.save(target); plugin.sl.save(target);
plugin.al.updateTables(); plugin.sl.updateTables();
msg("Cleared admin chat format.", ChatColor.GRAY); msg("Cleared staff 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; return true;
} }
@ -248,7 +242,7 @@ public class Command_myadmin extends FreedomCommand
@Override @Override
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{ {
if (!plugin.al.isAdmin(sender)) if (!plugin.sl.isStaff(sender))
{ {
return Collections.emptyList(); return Collections.emptyList();
} }
@ -275,7 +269,7 @@ public class Command_myadmin extends FreedomCommand
{ {
if (args[0].equals("clearip")) if (args[0].equals("clearip"))
{ {
List<String> ips = plugin.al.getAdmin(sender).getIps(); List<String> ips = plugin.sl.getAdmin(sender).getIps();
ips.remove(FUtil.getIp((Player) sender)); ips.remove(FUtil.getIp((Player) sender));
return ips; return ips;
} }
@ -296,10 +290,10 @@ public class Command_myadmin extends FreedomCommand
{ {
if (args[0].equals("-o") && args[2].equals("clearip")) if (args[0].equals("-o") && args[2].equals("clearip"))
{ {
Admin admin = plugin.al.getEntryByName(args[1]); StaffMember staffMember = plugin.sl.getEntryByName(args[1]);
if (admin != null) if (staffMember != null)
{ {
return admin.getIps(); return staffMember.getIps();
} }
} }
} }

View File

@ -16,7 +16,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> [player]", aliases = "nc") @CommandParameters(description = "Essentials Interface Command - Remove illegal chatcodes from nicknames of one or all players on server.", usage = "/<command> [player]", aliases = "nc")
public class Command_nickclean extends FreedomCommand public class Command_nickclean extends FreedomCommand
{ {
@ -53,12 +53,12 @@ public class Command_nickclean extends FreedomCommand
return true; return true;
} }
FUtil.adminAction(sender.getName(), "Cleaning " + player.getName() + "'s nickname", false); FUtil.staffAction(sender.getName(), "Cleaning " + player.getName() + "'s nickname", false);
cleanNickname(player); cleanNickname(player);
return true; return true;
} }
FUtil.adminAction(sender.getName(), "Cleaning all nicknames", false); FUtil.staffAction(sender.getName(), "Cleaning all nicknames", false);
for (final Player player : server.getOnlinePlayers()) for (final Player player : server.getOnlinePlayers())
{ {
cleanNickname(player); cleanNickname(player);

View File

@ -41,11 +41,11 @@ public class Command_nickfilter extends FreedomCommand
player = getPlayerByDisplayName(displayName); player = getPlayerByDisplayName(displayName);
if (player == null || plugin.al.isVanished(player) && !plugin.al.isAdmin(sender)) if (player == null || plugin.sl.isVanished(player) && !plugin.sl.isStaff(sender))
{ {
player = getPlayerByDisplayNameAlt(displayName); player = getPlayerByDisplayNameAlt(displayName);
if (player == null || !plugin.al.isVanished(player) && !plugin.al.isAdmin(sender)) if (player == null || !plugin.sl.isVanished(player) && !plugin.sl.isStaff(sender))
{ {
sender.sendMessage(ChatColor.GRAY + "Can't find player by nickname: " + displayName); sender.sendMessage(ChatColor.GRAY + "Can't find player by nickname: " + displayName);
return true; return true;

View File

@ -13,7 +13,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command> <name> <list | add <note> | remove <id> | clear>") @CommandParameters(description = "Manage notes for a player", usage = "/<command> <name> <list | add <note> | remove <id> | clear>")
public class Command_notes extends FreedomCommand public class Command_notes extends FreedomCommand
{ {

View File

@ -36,7 +36,7 @@ public class Command_op extends FreedomCommand
if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName().toLowerCase().contains(targetName) if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName().toLowerCase().contains(targetName)
|| player.getName().contains(targetName) || player.getDisplayName().contains(targetName)) || player.getName().contains(targetName) || player.getDisplayName().contains(targetName))
{ {
if (!player.isOp() && !plugin.al.isVanished(player)) if (!player.isOp() && !plugin.sl.isVanished(player))
{ {
matchedPlayerNames.add(player.getName()); matchedPlayerNames.add(player.getName());
player.setOp(true); player.setOp(true);
@ -49,7 +49,7 @@ public class Command_op extends FreedomCommand
{ {
if (!silent) if (!silent)
{ {
FUtil.adminAction(sender.getName(), "Opping " + StringUtils.join(matchedPlayerNames, ", "), false); FUtil.staffAction(sender.getName(), "Opping " + StringUtils.join(matchedPlayerNames, ", "), false);
} }
} }
else else

View File

@ -14,7 +14,7 @@ public class Command_opall extends FreedomCommand
@Override @Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) 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()) for (Player player : server.getOnlinePlayers())
{ {

View File

@ -14,7 +14,7 @@ public class Command_opme extends FreedomCommand
@Override @Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) 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.setOp(true);
sender.sendMessage(FreedomCommand.YOU_ARE_OP); sender.sendMessage(FreedomCommand.YOU_ARE_OP);
return true; return true;

View File

@ -42,13 +42,13 @@ public class Command_ops extends FreedomCommand
if (args[0].equals("purge")) if (args[0].equals("purge"))
{ {
if (!plugin.al.isAdmin(sender)) if (!plugin.sl.isStaff(sender))
{ {
noPerms(); noPerms();
return true; return true;
} }
FUtil.adminAction(sender.getName(), "Purging all operators", true); FUtil.staffAction(sender.getName(), "Purging all operators", true);
for (OfflinePlayer player : server.getOperators()) for (OfflinePlayer player : server.getOperators())
{ {

View File

@ -10,7 +10,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.util.Vector; 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.", @CommandParameters(description = "POW!!! Right in the kisser! One of these days Alice, straight to the Moon - Sends the specified player into orbit.",
usage = "/<command> <target> [<<power> | stop>]") usage = "/<command> <target> [<<power> | stop>]")
public class Command_orbit extends FreedomCommand public class Command_orbit extends FreedomCommand
@ -60,7 +60,7 @@ public class Command_orbit extends FreedomCommand
playerdata.startOrbiting(strength); playerdata.startOrbiting(strength);
player.setVelocity(new Vector(0, strength, 0)); 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; return true;
} }

View File

@ -15,7 +15,7 @@ public class Command_permissions extends FreedomCommand
@Override @Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) 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.permissions.load();
plugin.pem.loadPermissionNodes(); plugin.pem.loadPermissionNodes();

View File

@ -3,14 +3,14 @@ package me.totalfreedom.totalfreedommod.command;
import java.time.Instant; import java.time.Instant;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import me.totalfreedom.totalfreedommod.admin.ActivityLogEntry; import me.totalfreedom.totalfreedommod.staff.ActivityLogEntry;
import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil; import me.totalfreedom.totalfreedommod.util.FUtil;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; 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 = "/<command>") @CommandParameters(description = "Gets your playtime statistics.", usage = "/<command>")
public class Command_playtime extends FreedomCommand public class Command_playtime extends FreedomCommand
{ {

View File

@ -13,7 +13,7 @@ import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginManager; 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 = "/<command> <<enable | disable | reload> <pluginname>> | list>", aliases = "plc") @CommandParameters(description = "Enable, disable, or reload a specified plugin, as well as list all plugins on the server.", usage = "/<command> <<enable | disable | reload> <pluginname>> | list>", aliases = "plc")
public class Command_plugincontrol extends FreedomCommand public class Command_plugincontrol extends FreedomCommand
{ {
@ -135,7 +135,7 @@ public class Command_plugincontrol extends FreedomCommand
@Override @Override
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args) public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{ {
if (!plugin.al.isAdmin(sender)) if (!plugin.sl.isStaff(sender))
{ {
return Collections.emptyList(); return Collections.emptyList();
} }

View File

@ -41,12 +41,12 @@ public class Command_potion extends FreedomCommand
} }
else if (args[0].equalsIgnoreCase("clearall")) else if (args[0].equalsIgnoreCase("clearall"))
{ {
if (!(plugin.al.isAdmin(sender) || senderIsConsole)) if (!(plugin.sl.isStaff(sender) || senderIsConsole))
{ {
noPerms(); noPerms();
return true; 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 (Player target : server.getOnlinePlayers())
{ {
for (PotionEffect potion_effect : target.getActivePotionEffects()) for (PotionEffect potion_effect : target.getActivePotionEffects())
@ -76,9 +76,9 @@ public class Command_potion extends FreedomCommand
return true; 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; return true;
} }
@ -104,7 +104,7 @@ public class Command_potion extends FreedomCommand
{ {
target = getPlayer(args[4]); target = getPlayer(args[4]);
if (target == null || plugin.al.isVanished(target) && !plugin.al.isAdmin(sender)) if (target == null || plugin.sl.isVanished(target) && !plugin.sl.isStaff(sender))
{ {
msg(FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED); msg(FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED);
return true; return true;
@ -117,9 +117,9 @@ public class Command_potion extends FreedomCommand
return true; 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; return true;
} }
@ -183,7 +183,7 @@ public class Command_potion extends FreedomCommand
{ {
List<String> arguments = new ArrayList<>(); List<String> arguments = new ArrayList<>();
arguments.addAll(Arrays.asList("list", "clear", "add")); arguments.addAll(Arrays.asList("list", "clear", "add"));
if (plugin.al.isAdmin(sender)) if (plugin.sl.isStaff(sender))
{ {
arguments.add("clearall"); arguments.add("clearall");
} }
@ -193,7 +193,7 @@ public class Command_potion extends FreedomCommand
{ {
if (args[0].equals("clear")) if (args[0].equals("clear"))
{ {
if (plugin.al.isAdmin(sender)) if (plugin.sl.isStaff(sender))
{ {
return FUtil.getPlayerList(); return FUtil.getPlayerList();
} }
@ -217,7 +217,7 @@ public class Command_potion extends FreedomCommand
return Arrays.asList("<amplifier>"); return Arrays.asList("<amplifier>");
} }
} }
else if (args.length == 5 && plugin.al.isAdmin(sender)) else if (args.length == 5 && plugin.sl.isStaff(sender))
{ {
if (args[0].equals("add")) if (args[0].equals("add"))
{ {

View File

@ -4,7 +4,7 @@ import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import me.totalfreedom.totalfreedommod.admin.Admin; import me.totalfreedom.totalfreedommod.staff.StaffMember;
import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil; import me.totalfreedom.totalfreedommod.util.FUtil;
import org.apache.commons.lang.math.NumberUtils; import org.apache.commons.lang.math.NumberUtils;
@ -15,8 +15,8 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.entity.ThrownPotion; import org.bukkit.entity.ThrownPotion;
@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.ONLY_IN_GAME) @CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.ONLY_IN_GAME)
@CommandParameters(description = "Allows admins to see potions that are thrown.", usage = "/<command> <enable | on | disable | off> | history [player] <page>", aliases = "potspy") @CommandParameters(description = "Allows staff to see potions that are thrown.", usage = "/<command> <enable | on | disable | off> | history [player] <page>", aliases = "potspy")
public class Command_potionspy extends FreedomCommand public class Command_potionspy extends FreedomCommand
{ {
private String titleText = "&8&m------------------&r &ePotionSpy &8&m------------------&r"; private String titleText = "&8&m------------------&r &ePotionSpy &8&m------------------&r";
@ -28,11 +28,11 @@ public class Command_potionspy extends FreedomCommand
@Override @Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) 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) if (args.length <= 0)
{ {
setPotionSpyState(admin, !admin.getPotionSpy()); setPotionSpyState(staffMember, !staffMember.getPotionSpy());
return true; return true;
} }
else else
@ -41,12 +41,12 @@ public class Command_potionspy extends FreedomCommand
{ {
case "enable": case "enable":
case "on": case "on":
setPotionSpyState(admin, true); setPotionSpyState(staffMember, true);
break; break;
case "disable": case "disable":
case "off": case "off":
setPotionSpyState(admin, false); setPotionSpyState(staffMember, false);
break; break;
case "history": case "history":
@ -176,12 +176,12 @@ public class Command_potionspy extends FreedomCommand
return true; return true;
} }
private void setPotionSpyState(Admin admin, boolean state) private void setPotionSpyState(StaffMember staffMember, boolean state)
{ {
admin.setPotionSpy(state); staffMember.setPotionSpy(state);
plugin.al.save(admin); plugin.sl.save(staffMember);
plugin.al.updateTables(); plugin.sl.updateTables();
msg("PotionSpy is now " + (admin.getPotionSpy() ? "enabled." : "disabled.")); msg("PotionSpy is now " + (staffMember.getPotionSpy() ? "enabled." : "disabled."));
} }
/** /**

View File

@ -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 = "/<command> <list | clear | remove <label> | add <label> <radius>>", aliases = "pa")
public class Command_protectarea extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!ConfigEntry.PROTECTAREA_ENABLED.getBoolean())
{
msg("Protected areas are currently disabled in the TotalFreedomMod configuration.");
return true;
}
if (args.length == 1)
{
if (args[0].equalsIgnoreCase("list"))
{
msg("Protected Areas: " + StringUtils.join(plugin.pa.getProtectedAreaLabels(), ", "));
}
else if (args[0].equalsIgnoreCase("clear"))
{
plugin.pa.clearProtectedAreas();
msg("Protected Areas Cleared.");
}
else
{
return false;
}
return true;
}
else if (args.length == 2)
{
if ("remove".equals(args[0]))
{
plugin.pa.removeProtectedArea(args[1]);
msg("Area removed. Protected Areas: " + StringUtils.join(plugin.pa.getProtectedAreaLabels(), ", "));
}
else
{
return false;
}
return true;
}
else if (args.length == 3)
{
if (args[0].equalsIgnoreCase("add"))
{
if (senderIsConsole)
{
msg("You must be in-game to set a protected area.");
return true;
}
Double radius;
try
{
radius = Double.parseDouble(args[2]);
}
catch (NumberFormatException nfex)
{
msg("Invalid radius.");
return true;
}
if (radius > ProtectArea.MAX_RADIUS || radius < 0.0D)
{
msg("Invalid radius. Radius must be a positive value less than " + ProtectArea.MAX_RADIUS + ".");
return true;
}
plugin.pa.addProtectedArea(args[1], playerSender.getLocation(), radius);
msg("Area added. Protected Areas: " + StringUtils.join(plugin.pa.getProtectedAreaLabels(), ", "));
}
else
{
return false;
}
return true;
}
else
{
return false;
}
}
}

View File

@ -11,7 +11,7 @@ import org.bukkit.entity.Entity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffect;
@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) @CommandPermissions(level = Rank.TRIAL_MOD, source = SourceType.BOTH)
@CommandParameters(description = "Purge current mutes, command blocks, orbits, freezes, potion effects, cages, and entities.", usage = "/<command>") @CommandParameters(description = "Purge current mutes, command blocks, orbits, freezes, potion effects, cages, and entities.", usage = "/<command>")
public class Command_purgeall extends FreedomCommand public class Command_purgeall extends FreedomCommand
{ {
@ -19,7 +19,7 @@ public class Command_purgeall extends FreedomCommand
@Override @Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{ {
FUtil.adminAction(sender.getName(), "Purging all player data", true); FUtil.staffAction(sender.getName(), "Purging all player data", true);
// Purge entities // Purge entities
for (World world : Bukkit.getWorlds()) for (World world : Bukkit.getWorlds())

Some files were not shown because too many files have changed in this diff Show More