TotalFreedomMod 6.0 Pre release 1

Due to the amount of breaking changes, I thought I would restart the numbering at 6.0
This commit is contained in:
Telesphoreo 2020-11-23 01:09:10 -06:00
parent de0d6853b7
commit edb1f224ca
No known key found for this signature in database
GPG Key ID: 50B67E055A6F167C
196 changed files with 1141 additions and 3162 deletions

19
pom.xml
View File

@ -5,12 +5,12 @@
<groupId>me.totalfreedom</groupId>
<artifactId>TotalFreedomMod</artifactId>
<version>2020.11.5</version>
<version>6.0</version>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<tfm.build.codename>Antaeus</tfm.build.codename>
<tfm.build.codename>Mirror</tfm.build.codename>
<jar.finalName>${project.name}</jar.finalName>
<timestamp>${maven.build.timestamp}</timestamp>
<maven.build.timestamp.format>MM/dd/yyyy HH:mm</maven.build.timestamp.format>
@ -33,9 +33,9 @@
</organization>
<scm>
<connection>scm:git:git@github.com:TFPatches/TotalFreedomMod.git</connection>
<developerConnection>scm:git:git@github.com:TFPatches/TotalFreedomMod.git</developerConnection>
<url>git@github.com:TFPatches/TotalFreedomMod.git</url>
<connection>scm:git:git@github.com:TotalFreedomMC/TotalFreedomMod.git</connection>
<developerConnection>scm:git:git@github.com:TotalFreedomMC/TotalFreedomMod.git</developerConnection>
<url>git@github.com:TotalFreedomMC/TotalFreedomMod.git</url>
</scm>
<repositories>
@ -195,7 +195,7 @@
<dependency>
<groupId>net.ess3</groupId>
<artifactId>EssentialsX</artifactId>
<version>2.18.1</version>
<version>2.18.2</version>
<scope>provided</scope>
</dependency>
@ -275,13 +275,6 @@
<version>3.1.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>net.dean.jraw</groupId>
<artifactId>JRAW</artifactId>
<version>1.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>

View File

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

View File

@ -5,7 +5,7 @@ import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.player.FPlayer;
import me.totalfreedom.totalfreedommod.player.PlayerData;
import me.totalfreedom.totalfreedommod.rank.Displayable;
import me.totalfreedom.totalfreedommod.staff.StaffMember;
import me.totalfreedom.totalfreedommod.admin.Admin;
import me.totalfreedom.totalfreedommod.util.FLog;
import me.totalfreedom.totalfreedommod.util.FSync;
import me.totalfreedom.totalfreedommod.util.FUtil;
@ -65,7 +65,7 @@ public class ChatManager extends FreedomService
return;
}
if (!ConfigEntry.TOGGLE_CHAT.getBoolean() && !plugin.sl.isStaff(player))
if (!ConfigEntry.TOGGLE_CHAT.getBoolean() && !plugin.al.isAdmin(player))
{
event.setCancelled(true);
playerMsg(player, "Chat is currently disabled.", org.bukkit.ChatColor.RED);
@ -87,29 +87,14 @@ public class ChatManager extends FreedomService
return;
}
// Check for staffchat
if (fPlayer.inStaffChat())
// Check for adminchat
if (fPlayer.inAdminChat())
{
FSync.staffChatMessage(player, message);
FSync.adminChatMessage(player, message);
event.setCancelled(true);
return;
}
// Check for 4chan trigger
Boolean green = ChatColor.stripColor(message).toLowerCase().startsWith(">");
Boolean orange = ChatColor.stripColor(message).toLowerCase().endsWith("<");
if (ConfigEntry.FOURCHAN_ENABLED.getBoolean())
{
if (green)
{
message = ChatColor.GREEN + message;
}
else if (orange)
{
message = ChatColor.GOLD + message;
}
}
// Finally, set message
event.setMessage(message);
@ -123,7 +108,7 @@ public class ChatManager extends FreedomService
}
// Check for mentions
Boolean mentionEveryone = ChatColor.stripColor(message).toLowerCase().contains("@everyone") && plugin.sl.isStaff(player);
Boolean mentionEveryone = ChatColor.stripColor(message).toLowerCase().contains("@everyone") && plugin.al.isAdmin(player);
for (Player p : server.getOnlinePlayers())
{
if (ChatColor.stripColor(message).toLowerCase().contains("@" + p.getName().toLowerCase()) || mentionEveryone)
@ -135,8 +120,8 @@ public class ChatManager extends FreedomService
// Set format
event.setFormat(format);
// Send to discord
if (!ConfigEntry.STAFF_ONLY_MODE.getBoolean() && !Bukkit.hasWhitelist() && !plugin.pl.getPlayer(player).isMuted() && !plugin.tfg.inGuildChat(player))
// Send to Discord
if (!ConfigEntry.ADMIN_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));
}
@ -144,8 +129,7 @@ public class ChatManager extends FreedomService
public ChatColor getColor(Displayable display)
{
ChatColor color = display.getColor();
return color;
return display.getColor();
}
public String getColoredTag(Displayable display)
@ -154,27 +138,27 @@ public class ChatManager extends FreedomService
return color + display.getAbbr();
}
public void staffChat(CommandSender sender, String message)
public void adminChat(CommandSender sender, String message)
{
Displayable display = plugin.rm.getDisplay(sender);
FLog.info("[STAFF] " + sender.getName() + " " + display.getTag() + ": " + message, true);
FLog.info("[ADMIN] " + sender.getName() + " " + display.getTag() + ": " + message, true);
plugin.dc.messageAdminChatChannel(sender.getName() + " \u00BB " + message);
for (Player player : server.getOnlinePlayers())
{
if (plugin.sl.isStaff(player))
if (plugin.al.isAdmin(player))
{
StaffMember staffMember = plugin.sl.getAdmin(player);
if (!Strings.isNullOrEmpty(staffMember.getAcFormat()))
Admin admin = plugin.al.getAdmin(player);
if (!Strings.isNullOrEmpty(admin.getAcFormat()))
{
String format = staffMember.getAcFormat();
String format = admin.getAcFormat();
ChatColor color = getColor(display);
String msg = format.replace("%name%", sender.getName()).replace("%rank%", display.getAbbr()).replace("%rankcolor%", color.toString()).replace("%msg%", message);
player.sendMessage(FUtil.colorize(msg));
}
else
{
player.sendMessage("[" + ChatColor.AQUA + "STAFF" + ChatColor.WHITE + "] " + ChatColor.DARK_RED + sender.getName() + ChatColor.DARK_GRAY + " [" + getColoredTag(display) + ChatColor.DARK_GRAY + "]" + ChatColor.WHITE + ": " + ChatColor.GOLD + FUtil.colorize(message));
player.sendMessage("[" + ChatColor.AQUA + "ADMIN" + ChatColor.WHITE + "] " + ChatColor.DARK_RED + sender.getName() + ChatColor.DARK_GRAY + " [" + getColoredTag(display) + ChatColor.DARK_GRAY + "]" + ChatColor.WHITE + ": " + ChatColor.GOLD + FUtil.colorize(message));
}
}
}
@ -184,7 +168,7 @@ public class ChatManager extends FreedomService
{
for (Player player : server.getOnlinePlayers())
{
if (plugin.sl.isStaff(player))
if (plugin.al.isAdmin(player))
{
playerMsg(player, ChatColor.RED + "[REPORTS] " + ChatColor.GOLD + reporter.getName() + " has reported " + reported.getName() + " for " + report);
}

View File

@ -23,9 +23,9 @@ public class CommandSpy extends FreedomService
{
for (Player player : server.getOnlinePlayers())
{
if (plugin.sl.isStaff(player) && plugin.sl.getAdmin(player).getCommandSpy())
if (plugin.al.isAdmin(player) && plugin.al.getAdmin(player).getCommandSpy())
{
if (plugin.sl.isStaff(event.getPlayer()) && !plugin.sl.isAdmin(player))
if (plugin.al.isAdmin(event.getPlayer()) && !plugin.al.isSeniorAdmin(player))
{
continue;
}

View File

@ -1,204 +0,0 @@
package me.totalfreedom.totalfreedommod;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.util.FLog;
import org.apache.commons.lang.StringUtils;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
public class LogViewer extends FreedomService
{
@Override
public void onStart()
{
}
@Override
public void onStop()
{
}
public void updateLogsRegistration(final CommandSender sender, final Player target, final LogsRegistrationMode mode)
{
updateLogsRegistration(sender, target.getName(), mode);
}
public void updateLogsRegistration(final CommandSender sender, final String targetName, final LogsRegistrationMode mode)
{
final String logsRegisterUrl = ConfigEntry.LOGS_URL.getString();
final String logsRegisterPassword = ConfigEntry.LOGS_SECRET.getString();
if (logsRegisterUrl == null || logsRegisterPassword == null || logsRegisterUrl.isEmpty() || logsRegisterPassword.isEmpty())
{
return;
}
new BukkitRunnable()
{
@Override
public void run()
{
try
{
if (sender != null)
{
sender.sendMessage(ChatColor.YELLOW + "Connecting...");
}
final String key = SecureCodeGenerator.generateCode(20);
final URL urlAdd = new URLBuilder(logsRegisterUrl)
.addQueryParameter("mode", mode.name())
.addQueryParameter("password", logsRegisterPassword)
.addQueryParameter("name", targetName)
.addQueryParameter("key", key)
.getURL();
final HttpURLConnection connection = (HttpURLConnection)urlAdd.openConnection();
connection.setConnectTimeout(1000 * 5);
connection.setReadTimeout(1000 * 5);
connection.setUseCaches(false);
connection.setRequestMethod("HEAD");
final int responseCode = connection.getResponseCode();
if (sender != null)
{
if (!plugin.isEnabled())
{
return;
}
new BukkitRunnable()
{
@Override
public void run()
{
if (responseCode == 200)
{
if (mode == LogsRegistrationMode.ADD)
{
String link = null;
try
{
final URL urlVerify = new URLBuilder(logsRegisterUrl)
.addQueryParameter("mode", LogsRegistrationMode.VERIFY.name())
.addQueryParameter("name", targetName)
.addQueryParameter("key", key)
.getURL();
link = urlVerify.toString();
}
catch (Exception ex)
{
FLog.severe(ex);
}
sender.sendMessage(ChatColor.GREEN + "Open this link to verify your logviewer registration:\n" + ChatColor.DARK_GREEN + link);
}
else
{
sender.sendMessage(ChatColor.GREEN + "Logviewer access revoked successfully.");
}
}
else
{
sender.sendMessage(ChatColor.RED + "Error contacting logs registration server.");
}
}
}.runTask(plugin);
}
}
catch (Exception ex)
{
FLog.severe(ex);
}
}
}.runTaskAsynchronously(plugin);
}
public static enum LogsRegistrationMode
{
ADD, DELETE, VERIFY;
}
private static class URLBuilder
{
private final String requestPath;
private final Map<String, String> queryStringMap = new HashMap<>();
private URLBuilder(String requestPath)
{
this.requestPath = requestPath;
}
public URLBuilder addQueryParameter(String key, String value)
{
queryStringMap.put(key, value);
return this;
}
public URL getURL() throws MalformedURLException
{
List<String> pairs = new ArrayList<>();
Iterator<Map.Entry<String, String>> it = queryStringMap.entrySet().iterator();
while (it.hasNext())
{
Map.Entry<String, String> pair = it.next();
try
{
pairs.add(URLEncoder.encode(pair.getKey(), "UTF-8") + "=" + URLEncoder.encode(pair.getValue(), "UTF-8"));
}
catch (UnsupportedEncodingException ex)
{
FLog.severe(ex);
}
}
return new URL(requestPath + "?" + StringUtils.join(pairs, "&"));
}
}
private static class SecureCodeGenerator
{
private static final String CHARACTER_SET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
public static String generateCode(final int length)
{
SecureRandom random;
try
{
random = SecureRandom.getInstance("SHA1PRNG", "SUN");
}
catch (NoSuchAlgorithmException | NoSuchProviderException ex)
{
random = new SecureRandom();
FLog.severe(ex);
}
final StringBuilder sb = new StringBuilder();
for (int i = 0; i < length; i++)
{
sb.append(CHARACTER_SET.charAt(random.nextInt(CHARACTER_SET.length())));
}
return sb.toString();
}
}
}

View File

@ -53,7 +53,7 @@ public class LoginProcess extends FreedomService
public void onPlayerPreLogin(AsyncPlayerPreLoginEvent event)
{
final String ip = event.getAddress().getHostAddress().trim();
final boolean isStaff = plugin.sl.getEntryByIp(ip) != null;
final boolean isAdmin = plugin.al.getEntryByIp(ip) != null;
// Check if the player is already online
for (Player onlinePlayer : server.getOnlinePlayers())
@ -63,10 +63,10 @@ public class LoginProcess extends FreedomService
continue;
}
if (isStaff)
if (isAdmin)
{
event.allow();
FSync.playerKick(onlinePlayer, "A staff member just logged in with the username you are using.");
FSync.playerKick(onlinePlayer, "An admin just logged in with the username you are using.");
return;
}
@ -113,11 +113,11 @@ public class LoginProcess extends FreedomService
}
}
// Check if player is staff
final boolean isStaff = plugin.sl.getEntryByIp(ip) != null;
// Check if player is admin
final boolean isAdmin = plugin.al.getEntryByIp(ip) != null;
// Validation below this point
if (isStaff) // Player is staff
if (isAdmin) // Player is admin
{
// Force-allow log in
event.allow();
@ -127,9 +127,9 @@ public class LoginProcess extends FreedomService
{
for (Player onlinePlayer : server.getOnlinePlayers())
{
if (!plugin.sl.isStaff(onlinePlayer))
if (!plugin.al.isAdmin(onlinePlayer))
{
onlinePlayer.kickPlayer("You have been kicked to free up room for a staff member.");
onlinePlayer.kickPlayer("You have been kicked to free up room for an admin.");
count--;
}
@ -149,7 +149,7 @@ public class LoginProcess extends FreedomService
return;
}
// Player is not a staff member
// Player is not an admin
// Server full check
if (server.getOnlinePlayers().size() >= server.getMaxPlayers())
{
@ -157,10 +157,10 @@ public class LoginProcess extends FreedomService
return;
}
// Staff-only mode
if (ConfigEntry.STAFF_ONLY_MODE.getBoolean())
// Admin-only mode
if (ConfigEntry.ADMIN_ONLY_MODE.getBoolean())
{
event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "Server is temporarily open to staff only.");
event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "Server is temporarily open to admins only.");
return;
}
@ -226,7 +226,7 @@ public class LoginProcess extends FreedomService
player.setPlayerListFooter(FUtil.colorize(ConfigEntry.SERVER_TABLIST_FOOTER.getString()).replace("\\n", "\n"));
}
if (!plugin.sl.isStaff(player))
if (!plugin.al.isAdmin(player))
{
String tag = playerData.getTag();
if (tag != null)
@ -237,14 +237,14 @@ public class LoginProcess extends FreedomService
int noteCount = playerData.getNotes().size();
if (noteCount != 0)
{
String noteMessage = "This player has " + noteCount + " staff note" + (noteCount > 1 ? "s" : "") + ".";
String noteMessage = "This player has " + noteCount + " admin note" + (noteCount > 1 ? "s" : "") + ".";
JSONMessage notice = JSONMessage.create(ChatColor.GOLD + noteMessage + " Click here to view them.")
.tooltip("Click here to view them.")
.runCommand("/notes " + player.getName() + " list");
FLog.info(noteMessage);
for (Player p : server.getOnlinePlayers())
{
if (plugin.sl.isStaffImpostor(p))
if (plugin.al.isAdminImpostor(p))
{
notice.send(p);
}
@ -257,14 +257,14 @@ public class LoginProcess extends FreedomService
@Override
public void run()
{
if (ConfigEntry.STAFF_ONLY_MODE.getBoolean())
if (ConfigEntry.ADMIN_ONLY_MODE.getBoolean())
{
player.sendMessage(ChatColor.RED + "Server is currently closed to non-staff.");
player.sendMessage(ChatColor.RED + "Server is currently closed to non-admins.");
}
if (lockdownEnabled)
{
FUtil.playerMsg(player, "Warning: Server is currenty in lockdown-mode, new players will not be able to join!", ChatColor.RED);
FUtil.playerMsg(player, "Warning: Server is currently in lockdown-mode, new players will not be able to join!", ChatColor.RED);
}
}
}.runTaskLater(plugin, 20L);

View File

@ -46,7 +46,7 @@ public class Monitors extends FreedomService
}
}
plugin.sl.potionSpyMessage(ChatColor.translateAlternateColorCodes('&', String.format("&8[&ePotionSpy&8] &r%s splashed %s %s at X: %s Y: %s Z: %s in the world '%s'%s.",
plugin.al.potionSpyMessage(ChatColor.translateAlternateColorCodes('&', String.format("&8[&ePotionSpy&8] &r%s splashed %s %s at X: %s Y: %s Z: %s in the world '%s'%s.",
player.getName(), potionsThrown, potionsThrown == 1 ? "potion" : "potions", latestThrownPotion.getLocation().getBlockX(), latestThrownPotion.getLocation().getBlockY(), latestThrownPotion.getLocation().getBlockZ(),
latestThrownPotion.getWorld().getName(), trollPotions > 0 ? String.format(" &c(most likely troll %s)", trollPotions == 1 ? "potion" : "potions") : "")));
}

View File

@ -23,7 +23,6 @@ import org.bukkit.inventory.ItemStack;
public class MovementValidator extends FreedomService
{
public static final int MAX_XYZ_COORD = 29999998;
public static final int MAX_DISTANCE_TRAVELED = 100;

View File

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

View File

@ -7,7 +7,7 @@ import joptsimple.internal.Strings;
import lombok.Getter;
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.staff.StaffMember;
import me.totalfreedom.totalfreedommod.admin.Admin;
import me.totalfreedom.totalfreedommod.util.FLog;
import me.totalfreedom.totalfreedommod.util.FUtil;
import me.totalfreedom.totalfreedommod.util.Response;
@ -34,16 +34,16 @@ public class Pterodactyl extends FreedomService
{
}
public void updateAccountStatus(StaffMember staffMember)
public void updateAccountStatus(Admin admin)
{
String id = staffMember.getPteroID();
String id = admin.getPteroID();
if (Strings.isNullOrEmpty(id) || !enabled)
{
return;
}
if (!staffMember.isActive() || staffMember.getRank() != Rank.SENIOR_ADMIN)
if (!admin.isActive() || admin.getRank() != Rank.SENIOR_ADMIN)
{
FLog.debug("Disabling ptero acc");
removeAccountFromServer(id);

View File

@ -1,217 +0,0 @@
package me.totalfreedom.totalfreedommod;
import com.google.common.base.Strings;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.player.PlayerData;
import me.totalfreedom.totalfreedommod.rank.Displayable;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.rank.Title;
import me.totalfreedom.totalfreedommod.util.FLog;
import me.totalfreedom.totalfreedommod.util.FUtil;
import net.dean.jraw.ApiException;
import net.dean.jraw.RedditClient;
import net.dean.jraw.http.OkHttpNetworkAdapter;
import net.dean.jraw.http.UserAgent;
import net.dean.jraw.models.CurrentFlair;
import net.dean.jraw.models.Flair;
import net.dean.jraw.oauth.Credentials;
import net.dean.jraw.oauth.OAuthHelper;
import net.dean.jraw.references.SubredditReference;
import org.bukkit.entity.Player;
public class Reddit extends FreedomService
{
private final String SUBREDDIT_NAME = ConfigEntry.REDDIT_SUBREDDIT_NAME.getString();
private final String USERNAME = ConfigEntry.REDDIT_USERNAME.getString();
private final String PASSWORD = ConfigEntry.REDDIT_PASSWORD.getString();
private final String CLIENT_ID = ConfigEntry.REDDIT_CLIENT_ID.getString();
private final String CLIENT_SECRET = ConfigEntry.REDDIT_CLIENT_SECRET.getString();
private final UserAgent userAgent = new UserAgent("bot", "me.totalfreedom.reddit", TotalFreedomMod.build.version, USERNAME);
private final Credentials credentials = Credentials.script(USERNAME, PASSWORD, CLIENT_ID, CLIENT_SECRET);
private RedditClient reddit = null;
private SubredditReference subreddit = null;
private HashMap<String, PlayerData> linkCodes = new HashMap<>();
private HashMap<PlayerData, String> pending = new HashMap<>();
private Map<Displayable, String> flairList = new HashMap<>();
private Map<Displayable, String> flairNameList = new HashMap<>();
private List<Displayable> noFlairDisplays = Arrays.asList(Title.VERIFIED_STAFF, Rank.IMPOSTOR, Rank.NON_OP, Rank.OP);
public boolean enabled = false;
@Override
public void onStart()
{
enabled = ConfigEntry.REDDIT_CLIENT_ID.getString() == null;
if (!enabled)
{
return;
}
if (reddit == null)
{
try
{
reddit = OAuthHelper.automatic(new OkHttpNetworkAdapter(userAgent), credentials);
reddit.setLogHttp(FUtil.inDeveloperMode());
}
catch (NoClassDefFoundError e)
{
FLog.warning("The JRAW plugin is not installed, therefore the Reddit service cannot start.");
FLog.warning("To resolve this error, please download the latest JRAW from: https://github.com/TFPatches/Minecraft-JRAW/releases");
enabled = false;
return;
}
catch (NullPointerException e)
{
FLog.warning("Invalid Reddit credentials specified, please double check everything in the config.");
enabled = false;
return;
}
}
if (subreddit == null)
{
subreddit = reddit.subreddit(SUBREDDIT_NAME);
}
loadFlairList();
}
@Override
public void onStop()
{
}
public void setFlair(String username, String flairID)
{
List<Flair> flairs = subreddit.userFlairOptions();
Flair flair = null;
for (Flair f : flairs)
{
if (f.getId().equals(flairID))
{
flair = f;
break;
}
}
if (flair == null)
{
return;
}
subreddit.otherUserFlair(username).updateToTemplate(flair.getId(), "");
}
public void removeFlair(String username)
{
subreddit.otherUserFlair(username).updateToTemplate("", "");
}
public void sendModMessage(String username, String subject, String body) throws ApiException
{
reddit.me().inbox().compose("/r/" + SUBREDDIT_NAME, username, subject, body);
}
public String addLinkCode(PlayerData data, String username)
{
String code = FUtil.randomAlphanumericString(10);
linkCodes.put(code, data);
pending.put(data, username);
return code;
}
public String checkLinkCode(String code)
{
PlayerData data = linkCodes.get(code);
String username = pending.get(data);
if (data == null || username == null)
{
return null;
}
linkCodes.remove(code);
pending.remove(data);
data.setRedditUsername(username);
plugin.pl.save(data);
return username;
}
public boolean updateFlair(Player player)
{
if (!enabled)
{
return false;
}
PlayerData data = plugin.pl.getData(player);
String username = data.getRedditUsername();
Displayable display = plugin.rm.getDisplay(player);
if (username == null)
{
FLog.debug("No Reddit account");
return false;
}
CurrentFlair currentFlair = subreddit.otherUserFlair(username).current();
String currentFlairName = currentFlair.getText();
String currentFlairID = currentFlair.getId();
String neededFlairID = flairList.get(display);
String neededFlairName = flairNameList.get(display);
FLog.debug("Current ID: " + currentFlairID);
FLog.debug("Needed ID: " + neededFlairID);
FLog.debug("Current Name: " + currentFlairName);
FLog.debug("Needed Name: " + neededFlairName);
// Work around
//if (currentFlairID == null && neededFlairID != null || currentFlairID != null && neededFlairID != null && !currentFlairID.equals(neededFlairID))
if (Strings.isNullOrEmpty(currentFlairName) && neededFlairName != null || !Strings.isNullOrEmpty(currentFlairName) && neededFlairName != null && !currentFlairName.equals(neededFlairName))
{
FLog.debug("Setting flair");
setFlair(username, neededFlairID);
return true;
}
if (noFlairDisplays.contains(display) && !Strings.isNullOrEmpty(currentFlairName))
{
FLog.debug("Removing flair");
removeFlair(username);
return true;
}
return false;
}
public void loadFlairList()
{
flairList.put(Title.OWNER, ConfigEntry.REDDIT_SERVER_OWNER_FLAIR_ID.getString());
flairList.put(Title.EXECUTIVE, ConfigEntry.REDDIT_EXECUTIVE_FLAIR_ID.getString());
flairList.put(Title.DEVELOPER, ConfigEntry.REDDIT_DEVELOPER_FLAIR_ID.getString());
flairList.put(Rank.SENIOR_ADMIN, ConfigEntry.REDDIT_SENIOR_ADMIN_FLAIR_ID.getString());
flairList.put(Rank.ADMIN, ConfigEntry.REDDIT_NEW_ADMIN_FLAIR_ID.getString());
flairList.put(Title.MASTER_BUILDER, ConfigEntry.REDDIT_MASTER_BUILDER_FLAIR_ID.getString());
// Work around because the current flair ID keeps returning null, either a JRAW bug or a Reddit bug
flairNameList.put(Title.OWNER, "Server Owner");
flairNameList.put(Title.EXECUTIVE, "Executive");
flairNameList.put(Title.DEVELOPER, "Developer");
flairNameList.put(Rank.SENIOR_ADMIN, "Senior Admin");
flairNameList.put(Rank.ADMIN, "Admin");
flairNameList.put(Title.MASTER_BUILDER, "Master Builder");
}
}

View File

@ -94,5 +94,4 @@ public class SavedFlags extends FreedomService
FLog.severe(ex);
}
}
}

View File

@ -30,9 +30,9 @@ public class ServerPing extends FreedomService
return;
}
if (ConfigEntry.STAFF_ONLY_MODE.getBoolean())
if (ConfigEntry.ADMIN_ONLY_MODE.getBoolean())
{
event.setMotd(FUtil.colorize(ConfigEntry.SERVER_STAFFMODE_MOTD.getString()));
event.setMotd(FUtil.colorize(ConfigEntry.SERVER_ADMINMODE_MOTD.getString()));
return;
}

View File

@ -1,34 +0,0 @@
package me.totalfreedom.totalfreedommod;
import me.totalfreedom.totalfreedommod.command.Command_sit;
import org.bukkit.entity.ArmorStand;
import org.bukkit.entity.Entity;
import org.bukkit.event.EventHandler;
import org.spigotmc.event.entity.EntityDismountEvent;
public class Sitter extends FreedomService
{
@Override
public void onStart()
{
}
@Override
public void onStop()
{
}
@EventHandler
public void onEntityDismount(EntityDismountEvent e)
{
Entity dm = e.getDismounted();
if (dm instanceof ArmorStand)
{
if (Command_sit.STANDS.contains(dm))
{
Command_sit.STANDS.remove(dm);
dm.remove();
}
}
}
}

View File

@ -26,11 +26,8 @@ import me.totalfreedom.totalfreedommod.command.CommandLoader;
import me.totalfreedom.totalfreedommod.config.MainConfig;
import me.totalfreedom.totalfreedommod.discord.Discord;
import me.totalfreedom.totalfreedommod.freeze.Freezer;
import me.totalfreedom.totalfreedommod.fun.CurseListener;
import me.totalfreedom.totalfreedommod.fun.ItemFun;
import me.totalfreedom.totalfreedommod.fun.Jumppads;
import me.totalfreedom.totalfreedommod.fun.Landminer;
import me.totalfreedom.totalfreedommod.fun.MP44;
import me.totalfreedom.totalfreedommod.fun.Trailer;
import me.totalfreedom.totalfreedommod.httpd.HTTPDaemon;
import me.totalfreedom.totalfreedommod.permissions.PermissionConfig;
@ -41,8 +38,8 @@ import me.totalfreedom.totalfreedommod.rank.RankManager;
import me.totalfreedom.totalfreedommod.shop.Shop;
import me.totalfreedom.totalfreedommod.shop.Votifier;
import me.totalfreedom.totalfreedommod.sql.SQLite;
import me.totalfreedom.totalfreedommod.staff.ActivityLog;
import me.totalfreedom.totalfreedommod.staff.StaffList;
import me.totalfreedom.totalfreedommod.admin.ActivityLog;
import me.totalfreedom.totalfreedommod.admin.AdminList;
import me.totalfreedom.totalfreedommod.util.FLog;
import me.totalfreedom.totalfreedommod.util.FUtil;
import me.totalfreedom.totalfreedommod.util.MethodTimer;
@ -83,8 +80,7 @@ public class TotalFreedomMod extends JavaPlugin
public ServerInterface si;
public SavedFlags sf;
public WorldManager wm;
public LogViewer lv;
public StaffList sl;
public AdminList al;
public ActivityLog acl;
public RankManager rm;
public CommandBlocker cb;
@ -107,7 +103,6 @@ public class TotalFreedomMod extends JavaPlugin
public BanManager bm;
public IndefiniteBanList im;
public PermissionManager pem;
public Reddit rd;
public GameRuleHandler gr;
public CommandSpy cs;
public Cager ca;
@ -122,22 +117,16 @@ public class TotalFreedomMod extends JavaPlugin
public Monitors mo;
public MovementValidator mv;
public ServerPing sp;
public CurseListener cul;
public ItemFun it;
public Landminer lm;
public MP44 mp;
public Jumppads jp;
public Trailer tr;
public HTTPDaemon hd;
public WorldRestrictions wr;
public SignBlocker snp;
public EntityWiper ew;
public Sitter st;
public VanishHandler vh;
public Pterodactyl ptero;
//public HubWorldRestrictions hwr;
//
// Bridges
public BukkitTelnetBridge btb;
public EssentialsBridge esb;
@ -200,9 +189,8 @@ public class TotalFreedomMod extends JavaPlugin
si = new ServerInterface();
sf = new SavedFlags();
wm = new WorldManager();
lv = new LogViewer();
sql = new SQLite();
sl = new StaffList();
al = new AdminList();
acl = new ActivityLog();
rm = new RankManager();
cb = new CommandBlocker();
@ -225,11 +213,9 @@ public class TotalFreedomMod extends JavaPlugin
bm = new BanManager();
im = new IndefiniteBanList();
pem = new PermissionManager();
rd = new Reddit();
gr = new GameRuleHandler();
snp = new SignBlocker();
ew = new EntityWiper();
st = new Sitter();
vh = new VanishHandler();
ptero = new Pterodactyl();
@ -250,10 +236,7 @@ public class TotalFreedomMod extends JavaPlugin
sp = new ServerPing();
// Fun
cul = new CurseListener();
it = new ItemFun();
lm = new Landminer();
mp = new MP44();
jp = new Jumppads();
tr = new Trailer();
// HTTPD

View File

@ -31,7 +31,7 @@ public class VanishHandler extends FreedomService
for (Player p : server.getOnlinePlayers())
{
if (!plugin.sl.isStaff(player) && plugin.sl.isVanished(p.getName()))
if (!plugin.al.isAdmin(player) && plugin.al.isVanished(p.getName()))
{
player.hidePlayer(plugin, p);
}
@ -39,17 +39,17 @@ public class VanishHandler extends FreedomService
for (Player p : server.getOnlinePlayers())
{
if (!plugin.sl.isStaff(p) && plugin.sl.isVanished(player.getName()))
if (!plugin.al.isAdmin(p) && plugin.al.isVanished(player.getName()))
{
p.hidePlayer(plugin, player);
}
}
if (plugin.sl.isVanished(player.getName()))
if (plugin.al.isVanished(player.getName()))
{
plugin.esb.setVanished(player.getName(), true);
FLog.info(player.getName() + " joined while still vanished.");
plugin.sl.messageAllStaff(ChatColor.YELLOW + player.getName() + " has joined silently.");
plugin.al.messageAllAdmins(ChatColor.YELLOW + player.getName() + " has joined silently.");
event.setJoinMessage(null);
new BukkitRunnable()
@ -57,7 +57,7 @@ public class VanishHandler extends FreedomService
@Override
public void run()
{
if (!plugin.sl.isVanished(player.getName()))
if (!plugin.al.isVanished(player.getName()))
{
this.cancel();
}
@ -73,11 +73,11 @@ public class VanishHandler extends FreedomService
{
Player player = event.getPlayer();
if (plugin.sl.isVanished(player.getName()))
if (plugin.al.isVanished(player.getName()))
{
event.setQuitMessage(null);
FLog.info(player.getName() + " left while still vanished.");
plugin.sl.messageAllStaff(ChatColor.YELLOW + player.getName() + " has left silently.");
plugin.al.messageAllAdmins(ChatColor.YELLOW + player.getName() + " has left silently.");
}
}
}

View File

@ -1,4 +1,4 @@
package me.totalfreedom.totalfreedommod.staff;
package me.totalfreedom.totalfreedommod.admin;
import com.google.common.collect.Maps;
import java.util.Map;
@ -17,7 +17,6 @@ import org.bukkit.event.player.PlayerQuitEvent;
public class ActivityLog extends FreedomService
{
public static final String FILENAME = "activitylog.yml";
@Getter
@ -167,7 +166,7 @@ public class ActivityLog extends FreedomService
public void onPlayerJoin(PlayerJoinEvent event)
{
Player player = event.getPlayer();
if (plugin.sl.isStaff(player))
if (plugin.al.isAdmin(player))
{
getActivityLog(event.getPlayer()).addLogin();
plugin.acl.save();
@ -179,7 +178,7 @@ public class ActivityLog extends FreedomService
public void onPlayerQuit(PlayerQuitEvent event)
{
Player player = event.getPlayer();
if (plugin.sl.isStaff(player))
if (plugin.al.isAdmin(player))
{
getActivityLog(event.getPlayer()).addLogout();
plugin.acl.save();

View File

@ -1,4 +1,4 @@
package me.totalfreedom.totalfreedommod.staff;
package me.totalfreedom.totalfreedommod.admin;
import com.google.common.collect.Lists;
import java.time.Instant;

View File

@ -1,4 +1,4 @@
package me.totalfreedom.totalfreedommod.staff;
package me.totalfreedom.totalfreedommod.admin;
import java.sql.ResultSet;
import java.sql.SQLException;
@ -9,7 +9,6 @@ import java.util.List;
import java.util.Map;
import lombok.Getter;
import lombok.Setter;
import me.totalfreedom.totalfreedommod.LogViewer.LogsRegistrationMode;
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FLog;
@ -17,7 +16,7 @@ import me.totalfreedom.totalfreedommod.util.FUtil;
import org.apache.commons.lang.StringUtils;
import org.bukkit.entity.Player;
public class StaffMember
public class Admin
{
@Getter
@Setter
@ -45,13 +44,13 @@ public class StaffMember
@Setter
private String pteroID = null;
public StaffMember(Player player)
public Admin(Player player)
{
this.name = player.getName();
this.ips.add(FUtil.getIp(player));
}
public StaffMember(ResultSet resultSet)
public Admin(ResultSet resultSet)
{
try
{
@ -68,7 +67,7 @@ public class StaffMember
}
catch (SQLException e)
{
FLog.severe("Failed to load staff: " + e.getMessage());
FLog.severe("Failed to load admin: " + e.getMessage());
}
}
@ -77,7 +76,7 @@ public class StaffMember
{
final StringBuilder output = new StringBuilder();
output.append("Staff: ").append(name).append("\n")
output.append("Admin: ").append(name).append("\n")
.append("- IPs: ").append(StringUtils.join(ips, ", ")).append("\n")
.append("- Last Login: ").append(FUtil.dateToString(lastLogin)).append("\n")
.append("- Rank: ").append(rank.getName()).append("\n")
@ -151,8 +150,6 @@ public class StaffMember
plugin.btb.killTelnetSessions(getName());
}
}
plugin.lv.updateLogsRegistration(null, getName(), LogsRegistrationMode.DELETE);
}
}

View File

@ -0,0 +1,381 @@
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> verifiedNoAdmin = new ArrayList<>();
public final Map<String, List<String>> verifiedNoAdminIps = Maps.newHashMap();
public static final 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 admin list: " + e.getMessage());
}
updateTables();
FLog.info("Loaded " + allAdmins.size() + " admin members (" + nameTable.size() + " active, " + ipTable.size() + " IPs)");
}
public void messageAllAdmins(String message)
{
for (Player player : server.getOnlinePlayers())
{
if (isAdmin(player))
{
player.sendMessage(message);
}
}
}
public void potionSpyMessage(String message)
{
for (Player player : server.getOnlinePlayers())
{
Admin admin = getAdmin(player.getPlayer());
if (isAdmin(player) && admin.getPotionSpy())
{
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 isAdmin(Player player)
{
if (player == null)
{
return true;
}
Admin admin = getAdmin(player);
return admin != null && admin.isActive();
}
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 verifiedNoAdmin.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 && admin.getName().equalsIgnoreCase(player.getName());
}
public void addAdmin(Admin admin)
{
if (!admin.isValid())
{
FLog.warning("Could not add admin: " + admin.getName() + ". Admin is missing details!");
return;
}
// Store admin, update views
allAdmins.add(admin);
updateTables();
// Save admin
plugin.sql.addAdmin(admin);
}
public boolean removeAdmin(Admin admin)
{
if (admin.getRank().isAtLeast(Rank.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 PlayerData data = plugin.pl.getData(player);
if (!plugin.sl.isStaff(player))
if (!plugin.al.isAdmin(player))
{
return;
}

View File

@ -181,6 +181,5 @@ public class BlockBlocker extends FreedomService
player.sendMessage(ChatColor.GRAY + "Your banner had too many patterns on it, so some were removed.");
}
}
}
}

View File

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

View File

@ -148,11 +148,6 @@ public class EventBlocker extends FreedomService
@EventHandler(priority = EventPriority.NORMAL)
public void onPlayerDropItem(PlayerDropItemEvent event)
{
if (!plugin.sl.isStaff(event.getPlayer()))
{
event.setCancelled(true);
}
if (!ConfigEntry.AUTO_ENTITY_WIPE.getBoolean())
{
return;
@ -213,7 +208,7 @@ public class EventBlocker extends FreedomService
}
// TODO: Revert back to old redstone block system when (or if) it is fixed in Bukkit, Spigot or Paper.
private ArrayList<Material> redstoneBlocks = new ArrayList<>(Arrays.asList(Material.REDSTONE, Material.DISPENSER, Material.DROPPER, Material.REDSTONE_LAMP));
private final ArrayList<Material> redstoneBlocks = new ArrayList<>(Arrays.asList(Material.REDSTONE, Material.DISPENSER, Material.DROPPER, Material.REDSTONE_LAMP));
@EventHandler
public void onBlockPhysics(BlockPhysicsEvent event)

View File

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

View File

@ -70,7 +70,7 @@ public class PVPBlocker extends FreedomService
}
}
if (player != null & !plugin.sl.isStaff(player))
if (player != null & !plugin.al.isAdmin(player))
{
if (player.getGameMode() == GameMode.CREATIVE)
{

View File

@ -24,7 +24,6 @@ import org.bukkit.plugin.SimplePluginManager;
public class CommandBlocker extends FreedomService
{
private final Pattern flagPattern = Pattern.compile("(:([0-9]){5,})");
//
private final Map<String, CommandBlockerEntry> entryList = Maps.newHashMap();
@ -171,7 +170,7 @@ public class CommandBlocker extends FreedomService
for (String part : commandParts)
{
if (command.startsWith("/") && !plugin.sl.isStaff(sender) && (part.contains("#copy") || part.contains("#clipboard")))
if (command.startsWith("/") && !plugin.al.isAdmin(sender) && (part.contains("#copy") || part.contains("#clipboard")))
{
FUtil.playerMsg(sender, "WorldEdit copy variables are disabled.");
return true;

View File

@ -2,7 +2,6 @@ package me.totalfreedom.totalfreedommod.blocking.command;
public enum CommandBlockerAction
{
BLOCK("b"),
BLOCK_AND_EJECT("a"),
BLOCK_UNKNOWN("u");

View File

@ -10,7 +10,6 @@ import org.spigotmc.SpigotConfig;
public class CommandBlockerEntry
{
@Getter
private final CommandBlockerRank rank;
@Getter

View File

@ -2,18 +2,15 @@ package me.totalfreedom.totalfreedommod.blocking.command;
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.staff.StaffMember;
import me.totalfreedom.totalfreedommod.admin.Admin;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public enum CommandBlockerRank
{
ANYONE("a"),
OP("o"),
SUPER("s"),
TELNET("t"),
SENIOR("c"),
ADMIN("a"),
SENIOR_ADMIN("s"),
NOBODY("n");
//
private final String token;
@ -35,19 +32,14 @@ public enum CommandBlockerRank
public static CommandBlockerRank fromSender(CommandSender sender)
{
if (!(sender instanceof Player))
Admin admin = TotalFreedomMod.plugin().al.getAdmin(sender);
if (admin != null)
{
return TELNET;
}
StaffMember staffMember = TotalFreedomMod.plugin().sl.getAdmin(sender);
if (staffMember != null)
{
if (staffMember.getRank() == Rank.SENIOR_ADMIN)
if (admin.getRank() == Rank.SENIOR_ADMIN)
{
return SENIOR;
return SENIOR_ADMIN;
}
return SUPER;
return ADMIN;
}
if (sender.isOp())

View File

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

View File

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

View File

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

View File

@ -8,10 +8,9 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.ADMIN, source = SourceType.BOTH)
@CommandParameters(description = "Talk privately with other staff on the server.", usage = "/<command> [message]", aliases = "o,sc")
public class Command_staffchat extends FreedomCommand
@CommandParameters(description = "Talk privately with other admins on the server.", usage = "/<command> [message]", aliases = "o,sc")
public class Command_adminchat extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
@ -19,17 +18,17 @@ public class Command_staffchat extends FreedomCommand
{
if (senderIsConsole)
{
msg("You must be in-game to toggle staff chat, it cannot be toggled via CONSOLE or Telnet.");
msg("You must be in-game to toggle admin chat, it cannot be toggled via CONSOLE or Telnet.");
return true;
}
FPlayer userinfo = plugin.pl.getPlayer(playerSender);
userinfo.setStaffChat(!userinfo.inStaffChat());
msg("Toggled your staff chat " + (userinfo.inStaffChat() ? "on" : "off") + ".");
userinfo.setAdminChat(!userinfo.inAdminChat());
msg("Toggled your admin chat " + (userinfo.inAdminChat() ? "on" : "off") + ".");
}
else
{
plugin.cm.staffChat(sender, StringUtils.join(args, " "));
plugin.cm.adminChat(sender, StringUtils.join(args, " "));
}
return true;
}

View File

@ -11,22 +11,21 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.OP, source = SourceType.BOTH)
@CommandParameters(description = "Information on how to apply for staff.", usage = "/<command>", aliases = "si")
public class Command_staffinfo extends FreedomCommand
@CommandParameters(description = "Information on how to apply for admin.", usage = "/<command>", aliases = "ai")
public class Command_admininfo extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
List<String> staffInfo = ConfigEntry.STAFF_INFO.getStringList();
List<String> adminInfo = ConfigEntry.ADMIN_INFO.getStringList();
if (staffInfo.isEmpty())
if (adminInfo.isEmpty())
{
msg("The staff information section of the config.yml file has not been configured.", ChatColor.RED);
msg("The admin information section in the config.yml file has not been configured.", ChatColor.RED);
}
else
{
msg(FUtil.colorize(StringUtils.join(staffInfo, "\n")));
msg(FUtil.colorize(StringUtils.join(adminInfo, "\n")));
}
return true;
}

View File

@ -11,10 +11,9 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.ADMIN, source = SourceType.BOTH)
@CommandParameters(description = "Denies joining of operators and only allows staff members to join.", usage = "/<command> [on | off]")
public class Command_staffmode extends FreedomCommand
@CommandParameters(description = "Denies joining of operators and only allows admins to join.", usage = "/<command> [on | off]")
public class Command_adminmode extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
@ -25,19 +24,19 @@ public class Command_staffmode extends FreedomCommand
if (args[0].equalsIgnoreCase("off"))
{
ConfigEntry.STAFF_ONLY_MODE.setBoolean(false);
FUtil.staffAction(sender.getName(), "Opening the server to all players.", true);
ConfigEntry.ADMIN_ONLY_MODE.setBoolean(false);
FUtil.adminAction(sender.getName(), "Opening the server to all players.", true);
return true;
}
else if (args[0].equalsIgnoreCase("on"))
{
ConfigEntry.STAFF_ONLY_MODE.setBoolean(true);
FUtil.staffAction(sender.getName(), "Closing the server to non-staff.", true);
ConfigEntry.ADMIN_ONLY_MODE.setBoolean(true);
FUtil.adminAction(sender.getName(), "Closing the server to non-admins.", true);
for (Player player : server.getOnlinePlayers())
{
if (!isStaff(player))
if (!isAdmin(player))
{
player.kickPlayer("Server is now closed to non-staff.");
player.kickPlayer("Server is now closed to non-admins.");
}
}
return true;
@ -49,7 +48,7 @@ public class Command_staffmode extends FreedomCommand
@Override
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{
if (args.length == 1 && plugin.sl.isStaff(sender) && !(sender instanceof Player))
if (args.length == 1 && plugin.al.isAdmin(sender) && !(sender instanceof Player))
{
return Arrays.asList("on", "off");
}

View File

@ -13,12 +13,11 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.OP, source = SourceType.BOTH)
@CommandParameters(description = "Allows for staff to configure time, and weather of the StaffWorld, and allows for staff and ops to go to the StaffWorld.",
@CommandParameters(description = "Allows for admins to configure time, and weather of the AdminWorld, and allows for admins and ops to go to the AdminWorld.",
usage = "/<command> [time <morning | noon | evening | night> | weather <off | rain | storm>]",
aliases = "sw")
public class Command_staffworld extends FreedomCommand
aliases = "aw")
public class Command_adminworld extends FreedomCommand
{
private enum CommandMode
{
TELEPORT, TIME, WEATHER
@ -61,24 +60,24 @@ public class Command_staffworld extends FreedomCommand
return false;
}
World staffWorld = null;
World adminWorld = null;
try
{
staffWorld = plugin.wm.staffworld.getWorld();
adminWorld = plugin.wm.adminworld.getWorld();
}
catch (Exception ex)
{
}
if (staffWorld == null || playerSender.getWorld() == staffWorld)
if (adminWorld == null || playerSender.getWorld() == adminWorld)
{
msg("Going to the main world.");
PaperLib.teleportAsync(playerSender, server.getWorlds().get(0).getSpawnLocation());
}
else
{
msg("Going to the StaffWorld.");
plugin.wm.staffworld.sendToWorld(playerSender);
msg("Going to the AdminWorld.");
plugin.wm.adminworld.sendToWorld(playerSender);
}
break;
}
@ -91,8 +90,8 @@ public class Command_staffworld extends FreedomCommand
WorldTime timeOfDay = WorldTime.getByAlias(args[1]);
if (timeOfDay != null)
{
plugin.wm.staffworld.setTimeOfDay(timeOfDay);
msg("StaffWorld time set to: " + timeOfDay.name());
plugin.wm.adminworld.setTimeOfDay(timeOfDay);
msg("AdminWorld time set to: " + timeOfDay.name());
}
else
{
@ -115,8 +114,8 @@ public class Command_staffworld extends FreedomCommand
WorldWeather weatherMode = WorldWeather.getByAlias(args[1]);
if (weatherMode != null)
{
plugin.wm.staffworld.setWeatherMode(weatherMode);
msg("StaffWorld weather set to: " + weatherMode.name());
plugin.wm.adminworld.setWeatherMode(weatherMode);
msg("AdminWorld weather set to: " + weatherMode.name());
}
else
{
@ -152,7 +151,7 @@ public class Command_staffworld extends FreedomCommand
// TODO: Redo this properly
private void assertCommandPerms(CommandSender sender, Player playerSender) throws PermissionDeniedException
{
if (!(sender instanceof Player) || playerSender == null || !isStaff(sender))
if (!(sender instanceof Player) || playerSender == null || !isAdmin(sender))
{
throw new PermissionDeniedException();
}
@ -177,7 +176,7 @@ public class Command_staffworld extends FreedomCommand
@Override
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{
if (!plugin.sl.isStaff(sender))
if (!plugin.al.isAdmin(sender))
{
return Collections.emptyList();
}

View File

@ -37,7 +37,7 @@ public class Command_adventure extends FreedomCommand
targetPlayer.setGameMode(GameMode.ADVENTURE);
}
FUtil.staffAction(sender.getName(), "Changing everyone's gamemode to adventure", false);
FUtil.adminAction(sender.getName(), "Changing everyone's gamemode to adventure", false);
msg("Your gamemode has been set to adventure.");
return true;
}

View File

@ -17,7 +17,7 @@ public class Command_aeclear extends FreedomCommand
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
FUtil.staffAction(sender.getName(), "Removing all area effect clouds.", true);
FUtil.adminAction(sender.getName(), "Removing all area effect clouds.", true);
int removed = 0;
for (World world : server.getWorlds())
{

View File

@ -1,30 +0,0 @@
package me.totalfreedom.totalfreedommod.command;
import me.totalfreedom.totalfreedommod.rank.Rank;
import org.bukkit.attribute.Attribute;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.OP, source = SourceType.BOTH)
@CommandParameters(description = "Lists all possible attributes.", usage = "/<command>")
public class Command_attributelist extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
String list = "All possible attributes: ";
for (Attribute attribute : Attribute.values())
{
list += attribute.name() + ", ";
}
// Remove extra comma at the end of the list
list = list.substring(0, list.length() - 2);
msg(list);
return true;
}
}

View File

@ -154,7 +154,7 @@ public class Command_ban extends FreedomCommand
bcast.append(" - Reason: ").append(ChatColor.YELLOW).append(reason);
}
msg(sender, ChatColor.GRAY + username + " has been banned and IP is: " + StringUtils.join(ips, ", "));
FUtil.staffAction(sender.getName(), String.format(bcast.toString()), true);
FUtil.adminAction(sender.getName(), String.format(bcast.toString()), true);
}
// Kick player and handle others on IP

View File

@ -72,7 +72,7 @@ public class Command_banip extends FreedomCommand
{
// Broadcast
FLog.info(ChatColor.RED + sender.getName() + " - Banned the IP " + ip);
String message = ChatColor.RED + sender.getName() + " - Banned " + (plugin.sl.isStaff(player) ? "the IP " + ip : "an IP");
String message = ChatColor.RED + sender.getName() + " - Banned " + (plugin.al.isAdmin(player) ? "the IP " + ip : "an IP");
player.sendMessage(message);
}
}

View File

@ -20,7 +20,7 @@ public class Command_banlist extends FreedomCommand
{
checkRank(Rank.SENIOR_ADMIN);
FUtil.staffAction(sender.getName(), "Purging the ban list", true);
FUtil.adminAction(sender.getName(), "Purging the ban list", true);
int amount = plugin.bm.purge();
msg("Purged " + amount + " player bans.");
return true;

View File

@ -55,7 +55,7 @@ public class Command_banname extends FreedomCommand
if (!silent)
{
FUtil.staffAction(sender.getName(), "Banned the name " + name, true);
FUtil.adminAction(sender.getName(), "Banned the name " + name, true);
}
Player player = getPlayer(name);

View File

@ -1,33 +0,0 @@
package me.totalfreedom.totalfreedommod.command;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
import me.totalfreedom.totalfreedommod.rank.Rank;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME)
@CommandParameters(description = "Spawns a random type of fish at your location.", usage = "/<command>")
public class Command_bird extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
Location location = playerSender.getTargetBlock(null, 15).getLocation().add(0, 1, 0);
playerSender.getWorld().spawnEntity(location, getRandomFish());
msg(":goodbird:");
return true;
}
public EntityType getRandomFish()
{
List<EntityType> fishTypes = Arrays.asList(EntityType.COD, EntityType.SALMON, EntityType.PUFFERFISH, EntityType.TROPICAL_FISH);
Random random = new Random();
return fishTypes.get(random.nextInt(fishTypes.size()));
}
}

View File

@ -23,7 +23,7 @@ public class Command_blockcmd extends FreedomCommand
if (args[0].equals("purge"))
{
FUtil.staffAction(sender.getName(), "Unblocking commands for all players", true);
FUtil.adminAction(sender.getName(), "Unblocking commands for all players", true);
int counter = 0;
for (Player player : server.getOnlinePlayers())
{
@ -40,18 +40,18 @@ public class Command_blockcmd extends FreedomCommand
if (args[0].equals("-a"))
{
FUtil.staffAction(sender.getName(), "Blocking commands for all non-staff", true);
FUtil.adminAction(sender.getName(), "Blocking commands for all non-admins", true);
int counter = 0;
for (Player player : server.getOnlinePlayers())
{
if (isStaff(player))
if (isAdmin(player))
{
continue;
}
counter += 1;
plugin.pl.getPlayer(player).setCommandsBlocked(true);
msg(player, "Your commands have been blocked by a staff member.", ChatColor.RED);
msg(player, "Your commands have been blocked by an admin.", ChatColor.RED);
}
msg("Blocked commands for " + counter + " players.");
@ -66,9 +66,9 @@ public class Command_blockcmd extends FreedomCommand
return true;
}
if (isStaff(player))
if (isAdmin(player))
{
msg(player.getName() + " is a staff member, and cannot have their commands blocked.");
msg(player.getName() + " is an admin, and cannot have their commands blocked.");
return true;
}
@ -76,7 +76,7 @@ public class Command_blockcmd extends FreedomCommand
if (!playerdata.allCommandsBlocked())
{
playerdata.setCommandsBlocked(true);
FUtil.staffAction(sender.getName(), "Blocking all commands for " + player.getName(), true);
FUtil.adminAction(sender.getName(), "Blocking all commands for " + player.getName(), true);
msg("Blocked commands for " + player.getName() + ".");
}
else

View File

@ -46,7 +46,7 @@ public class Command_blockedit extends FreedomCommand
if (args[0].equals("purge"))
{
FUtil.staffAction(sender.getName(), "Unblocking block modification abilities for all players.", true);
FUtil.adminAction(sender.getName(), "Unblocking block modification abilities for all players.", true);
int count = 0;
for (final Player player : this.server.getOnlinePlayers())
{
@ -63,11 +63,11 @@ public class Command_blockedit extends FreedomCommand
if (args[0].equals("all"))
{
FUtil.staffAction(sender.getName(), "Blocking block modification abilities for all non-staff.", true);
FUtil.adminAction(sender.getName(), "Blocking block modification abilities for all non-admins.", true);
int counter = 0;
for (final Player player : this.server.getOnlinePlayers())
{
if (!plugin.sl.isStaff(player))
if (!plugin.al.isAdmin(player))
{
final FPlayer playerdata = plugin.pl.getPlayer(player);
playerdata.setEditBlocked(true);
@ -105,20 +105,20 @@ public class Command_blockedit extends FreedomCommand
final FPlayer pd = plugin.pl.getPlayer(player2);
if (pd.isEditBlocked())
{
FUtil.staffAction(sender.getName(), "Unblocking block modification abilities for " + player2.getName(), true);
FUtil.adminAction(sender.getName(), "Unblocking block modification abilities for " + player2.getName(), true);
pd.setEditBlocked(false);
msg("Unblocking block modification abilities for " + player2.getName());
msg(player2, "Your block modification abilities have been restored.", ChatColor.RED);
}
else
{
if (plugin.sl.isStaff(player2))
if (plugin.al.isAdmin(player2))
{
msg(player2.getName() + " is a staff member, and cannot have their block edits blocked.");
msg(player2.getName() + " is an admin, and cannot have their block edits blocked.");
return true;
}
FUtil.staffAction(sender.getName(), "Blocking block modification abilities for " + player2.getName(), true);
FUtil.adminAction(sender.getName(), "Blocking block modification abilities for " + player2.getName(), true);
pd.setEditBlocked(true);
if (smite)

View File

@ -46,7 +46,7 @@ public class Command_blockpvp extends FreedomCommand
if (args[0].equals("purge"))
{
FUtil.staffAction(sender.getName(), "Enabling PVP for all players.", true);
FUtil.adminAction(sender.getName(), "Enabling PVP for all players.", true);
int count = 0;
for (Player player : server.getOnlinePlayers())
{
@ -64,11 +64,11 @@ public class Command_blockpvp extends FreedomCommand
if (args[0].equals("all"))
{
FUtil.staffAction(sender.getName(), "Disabling PVP for all non-staff", true);
FUtil.adminAction(sender.getName(), "Disabling PVP for all non-admins", true);
int counter = 0;
for (Player player : server.getOnlinePlayers())
{
if (!plugin.sl.isStaff(player))
if (!plugin.al.isAdmin(player))
{
final FPlayer playerdata = plugin.pl.getPlayer(player);
playerdata.setPvpBlocked(true);
@ -106,20 +106,20 @@ public class Command_blockpvp extends FreedomCommand
final FPlayer pd = plugin.pl.getPlayer(p);
if (pd.isPvpBlocked())
{
FUtil.staffAction(sender.getName(), "Enabling PVP for " + p.getName(), true);
FUtil.adminAction(sender.getName(), "Enabling PVP for " + p.getName(), true);
pd.setPvpBlocked(false);
msg("Enabling PVP for " + p.getName());
msg(p, "Your PVP have been enabled.", ChatColor.GREEN);
}
else
{
if (plugin.sl.isStaff(p))
if (plugin.al.isAdmin(p))
{
msg(p.getName() + " is a staff member, and cannot have their PVP disabled.");
msg(p.getName() + " is an admin and cannot have their PVP disabled.");
return true;
}
FUtil.staffAction(sender.getName(), "Disabling PVP for " + p.getName(), true);
FUtil.adminAction(sender.getName(), "Disabling PVP for " + p.getName(), true);
pd.setPvpBlocked(true);
if (smite)
{

View File

@ -18,14 +18,14 @@ public class Command_blockredstone extends FreedomCommand
if (ConfigEntry.ALLOW_REDSTONE.getBoolean())
{
ConfigEntry.ALLOW_REDSTONE.setBoolean(false);
FUtil.staffAction(sender.getName(), "Blocking all redstone", true);
FUtil.adminAction(sender.getName(), "Blocking all redstone", true);
new BukkitRunnable()
{
public void run()
{
if (!ConfigEntry.ALLOW_REDSTONE.getBoolean())
{
FUtil.staffAction("TotalFreedom", "Unblocking all redstone", false);
FUtil.adminAction("TotalFreedom", "Unblocking all redstone", false);
ConfigEntry.ALLOW_REDSTONE.setBoolean(true);
}
}
@ -34,7 +34,7 @@ public class Command_blockredstone extends FreedomCommand
else
{
ConfigEntry.ALLOW_REDSTONE.setBoolean(true);
FUtil.staffAction(sender.getName(), "Unblocking all redstone", true);
FUtil.adminAction(sender.getName(), "Unblocking all redstone", true);
}
return true;
}

View File

@ -30,7 +30,7 @@ public class Command_cage extends FreedomCommand
String skullName = null;
if ("purge".equals(args[0]))
{
FUtil.staffAction(sender.getName(), "Uncaging all players", true);
FUtil.adminAction(sender.getName(), "Uncaging all players", true);
for (Player player : server.getOnlinePlayers())
{
final FPlayer fPlayer = plugin.pl.getPlayer(player);
@ -101,11 +101,11 @@ public class Command_cage extends FreedomCommand
if (outerMaterial == Material.PLAYER_HEAD)
{
FUtil.staffAction(sender.getName(), "Caging " + player.getName() + " in " + skullName, true);
FUtil.adminAction(sender.getName(), "Caging " + player.getName() + " in " + skullName, true);
}
else
{
FUtil.staffAction(sender.getName(), "Caging " + player.getName(), true);
FUtil.adminAction(sender.getName(), "Caging " + player.getName(), true);
}
return true;
}
@ -113,7 +113,7 @@ public class Command_cage extends FreedomCommand
@Override
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{
if (!plugin.sl.isStaff(sender))
if (!plugin.al.isAdmin(sender))
{
return null;
}

View File

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

View File

@ -16,7 +16,7 @@ public class Command_clearchat extends FreedomCommand
{
for (Player player : server.getOnlinePlayers())
{
if (!plugin.sl.isStaff(player))
if (!plugin.al.isAdmin(player))
{
for (int i = 0; i < 100; i++)
{
@ -24,7 +24,7 @@ public class Command_clearchat extends FreedomCommand
}
}
}
FUtil.staffAction(sender.getName(), "Cleared chat", true);
FUtil.adminAction(sender.getName(), "Cleared chat", true);
return true;
}
}

View File

@ -9,7 +9,6 @@ import org.bukkit.entity.Player;
@CommandParameters(description = "Clear the discord message queue.", usage = "/<command>")
public class Command_cleardiscordqueue extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{

View File

@ -29,11 +29,11 @@ public class Command_clearinventory extends FreedomCommand
}
else
{
if (plugin.sl.isStaff(sender))
if (plugin.al.isAdmin(sender))
{
if (args[0].equals("-a"))
{
FUtil.staffAction(sender.getName(), "Clearing everyone's inventory", true);
FUtil.adminAction(sender.getName(), "Clearing everyone's inventory", true);
for (Player player : server.getOnlinePlayers())
{
player.getInventory().clear();
@ -67,7 +67,7 @@ public class Command_clearinventory extends FreedomCommand
@Override
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{
if (args.length == 1 && plugin.sl.isStaff(sender))
if (args.length == 1 && plugin.al.isAdmin(sender))
{
List<String> players = FUtil.getPlayerList();
players.add("-a");

View File

@ -11,7 +11,6 @@ import org.bukkit.entity.Player;
@CommandParameters(description = "Obtain a clown fish", usage = "/<command>")
public class Command_clownfish extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{

View File

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

View File

@ -1,59 +0,0 @@
package me.totalfreedom.totalfreedommod.command;
import java.util.Iterator;
import java.util.Map;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.apache.commons.lang.StringUtils;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME)
@CommandParameters(description = "Essentials Interface Command - Set your nickname to a certain color.", usage = "/<command> <color>")
public class Command_colorme extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (args.length != 1)
{
return false;
}
if ("list".equalsIgnoreCase(args[0]))
{
msg("Colors: " + StringUtils.join(FUtil.CHAT_COLOR_NAMES.keySet(), ", "));
return true;
}
final String needle = args[0].trim().toLowerCase();
ChatColor color = null;
final Iterator<Map.Entry<String, ChatColor>> it = FUtil.CHAT_COLOR_NAMES.entrySet().iterator();
while (it.hasNext())
{
final Map.Entry<String, ChatColor> entry = it.next();
if (entry.getKey().contains(needle))
{
color = entry.getValue();
break;
}
}
if (color == null)
{
msg("Invalid color: " + needle + " - Use \"/colorme list\" to list colors.");
return true;
}
final String newNick = color + ChatColor.stripColor(playerSender.getDisplayName()).trim() + ChatColor.WHITE;
plugin.esb.setNickname(sender.getName(), newNick);
msg("Your nickname is now: " + newNick);
return true;
}
}

View File

@ -1,53 +0,0 @@
package me.totalfreedom.totalfreedommod.command;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
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;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginDescriptionFile;
@CommandPermissions(level = Rank.NON_OP, source = SourceType.BOTH)
@CommandParameters(description = "Show all commands for all server plugins.", usage = "/<command>", aliases = "cmdlist")
public class Command_commandlist extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
List<String> commands = new ArrayList<>();
for (Plugin targetPlugin : server.getPluginManager().getPlugins())
{
try
{
PluginDescriptionFile desc = targetPlugin.getDescription();
Map<String, Map<String, Object>> map = desc.getCommands();
if (map != null)
{
for (Entry<String, Map<String, Object>> entry : map.entrySet())
{
String command_name = entry.getKey();
commands.add(command_name);
}
}
}
catch (Throwable ex)
{
}
}
Collections.sort(commands);
sender.sendMessage(StringUtils.join(commands, ", "));
return true;
}
}

View File

@ -37,7 +37,7 @@ public class Command_creative extends FreedomCommand
targetPlayer.setGameMode(GameMode.CREATIVE);
}
FUtil.staffAction(sender.getName(), "Changing everyone's gamemode to creative", false);
FUtil.adminAction(sender.getName(), "Changing everyone's gamemode to creative", false);
msg("Your gamemode has been set to creative.");
return true;
}

View File

@ -1,66 +0,0 @@
package me.totalfreedom.totalfreedommod.command;
import java.util.Collections;
import java.util.List;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.ONLY_IN_GAME)
@CommandParameters(description = "Curse someone - sends a cursed texture pack to the specified player.", usage = "/<command> <player>")
public class Command_curse extends FreedomCommand
{
/* The only problem with this is someone can prevent themself from being cursed by declining to download the
resource pack. However, if they hit yes, then you can curse them whenever you want and they can't stop it unless
they go into their server settings. and set server resource packs to prompt or disabled */
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!FUtil.isExecutive(sender.getName()))
{
return noPerms();
}
if (args.length == 0)
{
return false;
}
final Player player = getPlayer(args[0]);
if (player == null)
{
msg(FreedomCommand.PLAYER_NOT_FOUND);
return true;
}
if (plugin.cul.cursedPlayers.containsKey(player))
{
msg("Already attempting to curse!", ChatColor.RED);
return true;
}
player.setResourcePack("http://play.totalfreedom.me/cursed.zip");
msg("Attempting to curse " + player.getName(), ChatColor.GREEN);
plugin.cul.cursedPlayers.put(player, playerSender);
return true;
}
@Override
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{
if (args.length == 1 && plugin.sl.isStaff(sender) && FUtil.isExecutive(sender.getName()))
{
return FUtil.getPlayerList();
}
return Collections.emptyList();
}
}

View File

@ -20,7 +20,7 @@ public class Command_denick extends FreedomCommand
return true;
}
FUtil.staffAction(sender.getName(), "Removing all nicknames", false);
FUtil.adminAction(sender.getName(), "Removing all nicknames", false);
for (Player player : server.getOnlinePlayers())
{

View File

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

View File

@ -14,7 +14,7 @@ public class Command_deopall extends FreedomCommand
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
FUtil.staffAction(sender.getName(), "De-opping all players on the server", true);
FUtil.adminAction(sender.getName(), "De-opping all players on the server", true);
for (Player player : server.getOnlinePlayers())
{

View File

@ -20,7 +20,7 @@ public class Command_disguisetoggle extends FreedomCommand
return true;
}
FUtil.staffAction(sender.getName(), (plugin.ldb.isDisguisesEnabled() ? "Disabling" : "Enabling") + " disguises", false);
FUtil.adminAction(sender.getName(), (plugin.ldb.isDisguisesEnabled() ? "Disabling" : "Enabling") + " disguises", false);
if (plugin.ldb.isDisguisesEnabled())
{

View File

@ -5,7 +5,7 @@ import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.punishments.Punishment;
import me.totalfreedom.totalfreedommod.punishments.PunishmentType;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.staff.StaffMember;
import me.totalfreedom.totalfreedommod.admin.Admin;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
@ -38,23 +38,23 @@ public class Command_doom extends FreedomCommand
return true;
}
FUtil.staffAction(sender.getName(), "Casting oblivion over " + player.getName(), true);
FUtil.adminAction(sender.getName(), "Casting oblivion over " + player.getName(), true);
FUtil.bcastMsg(player.getName() + " will be completely obliviated!", ChatColor.RED);
final String ip = player.getAddress().getAddress().getHostAddress().trim();
// Remove from admin
StaffMember staffMember = getStaffMember(player);
if (staffMember != null)
Admin admin = getAdmin(player);
if (admin != null)
{
FUtil.staffAction(sender.getName(), "Removing " + player.getName() + " from the staff list", true);
staffMember.setActive(false);
plugin.sl.save(staffMember);
plugin.sl.updateTables();
plugin.ptero.updateAccountStatus(staffMember);
FUtil.adminAction(sender.getName(), "Removing " + player.getName() + " from the admin list", true);
admin.setActive(false);
plugin.al.save(admin);
plugin.al.updateTables();
plugin.ptero.updateAccountStatus(admin);
if (plugin.dc.enabled && ConfigEntry.DISCORD_ROLE_SYNC.getBoolean())
{
plugin.dc.syncRoles(staffMember, plugin.pl.getData(staffMember.getName()).getDiscordID());
plugin.dc.syncRoles(admin, plugin.pl.getData(admin.getName()).getDiscordID());
}
}
@ -120,7 +120,7 @@ public class Command_doom extends FreedomCommand
public void run()
{
// message
FUtil.staffAction(sender.getName(), "Banning " + player.getName(), true);
FUtil.adminAction(sender.getName(), "Banning " + player.getName(), true);
msg(sender, player.getName() + " has been banned and IP is: " + ip);
// generate explosion

View File

@ -54,7 +54,7 @@ public class Command_entitywipe extends FreedomCommand
entityName = FUtil.formatName(type.name());
}
FUtil.staffAction(sender.getName(), "Purging all " + (type != null ? entityName + "s" : "entities"), true);
FUtil.adminAction(sender.getName(), "Purging all " + (type != null ? entityName + "s" : "entities"), true);
int count;
if (type != null)
{

View File

@ -1,67 +0,0 @@
package me.totalfreedom.totalfreedommod.command;
import java.util.Collections;
import java.util.List;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector;
@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.BOTH)
@CommandParameters(description = "Surprise someone.", usage = "/<command> <player>")
public class Command_explode extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (args.length == 0)
{
return false;
}
final Player player = getPlayer(args[0]);
if (player == null)
{
msg(FreedomCommand.PLAYER_NOT_FOUND);
return true;
}
player.setFlying(false);
player.setVelocity(player.getVelocity().clone().add(new Vector(0, 50, 0)));
for (int i = 1; i <= 3; i++)
{
FUtil.createExplosionOnDelay(player.getLocation(), 2L, i * 10);
}
new BukkitRunnable()
{
@Override
public void run()
{
for (int i = 0; i < 4; i++)
{
player.getWorld().strikeLightning(player.getLocation());
player.getWorld().createExplosion(player.getLocation(), 4L);
}
player.setHealth(0.0);
msg("Exploded " + player.getName());
}
}.runTaskLater(plugin, 40);
return true;
}
@Override
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{
if (args.length == 1 && plugin.sl.isStaff(sender))
{
return FUtil.getPlayerList();
}
return Collections.emptyList();
}
}

View File

@ -11,7 +11,6 @@ import org.bukkit.entity.Player;
@CommandParameters(description = "Obtain a fire ball", usage = "/<command>")
public class Command_fireball extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{

View File

@ -1,38 +0,0 @@
package me.totalfreedom.totalfreedommod.command;
import me.totalfreedom.totalfreedommod.rank.Rank;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.OP, source = SourceType.BOTH)
@CommandParameters(description = "Forcefully kill someone - for those who REALLY need to die.", usage = "/<command> <playername>")
public class Command_forcekill extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!plugin.sl.isMod(sender) && !senderIsConsole)
{
playerSender.setHealth(0);
return true;
}
if (args.length < 1)
{
return false;
}
final Player player = getPlayer(args[0]);
if (player == null)
{
msg(PLAYER_NOT_FOUND);
return true;
}
player.setHealth(0);
return true;
}
}

View File

@ -9,10 +9,9 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.ADMIN, source = SourceType.BOTH)
@CommandParameters(description = "Freeze/Unfreeze a specified player, or all non-staff 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
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
@ -23,15 +22,15 @@ public class Command_freeze extends FreedomCommand
if (!gFreeze)
{
FUtil.staffAction(sender.getName(), "Disabling global player freeze", false);
FUtil.adminAction(sender.getName(), "Disabling global player freeze", false);
msg("Players are now free to move.");
return true;
}
FUtil.staffAction(sender.getName(), "Enabling global player freeze", false);
FUtil.adminAction(sender.getName(), "Enabling global player freeze", false);
for (Player player : server.getOnlinePlayers())
{
if (!isStaff(player))
if (!isAdmin(player))
{
player.sendTitle(ChatColor.RED + "You've been globally frozen.", ChatColor.YELLOW + "Please be patient and you will be unfrozen shortly.", 20, 100, 60);
msg(player, "You have been globally frozen due to an OP breaking the rules, please wait and you will be unfrozen soon.", ChatColor.RED);
@ -43,10 +42,10 @@ public class Command_freeze extends FreedomCommand
if (args[0].equals("purge"))
{
FUtil.staffAction(sender.getName(), "Unfreezing all players", false);
FUtil.adminAction(sender.getName(), "Unfreezing all players", false);
for (Player player : server.getOnlinePlayers())
{
if (!isStaff(player))
if (!isAdmin(player))
{
player.sendTitle(ChatColor.GREEN + "You've been unfrozen.", ChatColor.YELLOW + "You may now move again.", 20, 100, 60);
}

View File

@ -1,32 +0,0 @@
package me.totalfreedom.totalfreedommod.command;
import me.totalfreedom.totalfreedommod.rank.Rank;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
@CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME)
@CommandParameters(description = "Toggles the glowing outline effect because y'all lazy as fuck", usage = "/<command>")
public class Command_glow extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
boolean glowing = false;
if (playerSender.getPotionEffect(PotionEffectType.GLOWING) != null)
{
playerSender.removePotionEffect(PotionEffectType.GLOWING);
}
else
{
PotionEffect glow = new PotionEffect(PotionEffectType.GLOWING, 1000000, 1, false, false);
playerSender.addPotionEffect(glow);
glowing = true;
}
msg("You " + (glowing ? "are now" : "no longer") + " glowing.");
return true;
}
}

View File

@ -1,22 +0,0 @@
package me.totalfreedom.totalfreedommod.command;
import me.totalfreedom.totalfreedommod.rank.Rank;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME)
@CommandParameters(description = "Toggles player gravity on/off.", usage = "/<command>")
public class Command_gravity extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
boolean enabled = !playerSender.hasGravity();
playerSender.setGravity(enabled);
msg((enabled ? "En" : "Dis") + "abled gravity.", (enabled ? ChatColor.GREEN : ChatColor.RED));
return true;
}
}

View File

@ -1,35 +0,0 @@
package me.totalfreedom.totalfreedommod.command;
import me.totalfreedom.totalfreedommod.rank.Rank;
import org.apache.commons.lang3.StringUtils;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.ADMIN, source = SourceType.BOTH, blockHostConsole = true)
@CommandParameters(description = "Send a chat message as someone else.", usage = "/<command> <fromname> <outmessage>")
public class Command_gsay extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (args.length < 2)
{
return false;
}
final Player player = getPlayer(args[0]);
if (player == null)
{
sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
return true;
}
final String outMessage = StringUtils.join(args, " ", 1, args.length);
msg("Sending message as " + player.getName() + ": " + outMessage);
player.chat(outMessage);
msg("Message sent.");
return true;
}
}

View File

@ -17,7 +17,6 @@ import org.bukkit.scheduler.BukkitTask;
@CommandParameters(description = "View server health, such as ticks-per-second, memory, etc.", usage = "/<command>")
public class Command_health extends FreedomCommand
{
private static final int BYTES_PER_MB = 1024 * 1024;
private static final DoubleRange TPS_RANGE = new DoubleRange(20.0 - 0.1, 20.0 + 0.1);
@ -40,7 +39,7 @@ public class Command_health extends FreedomCommand
{
try
{
TFM_TickMeter tickMeter = new TFM_TickMeter(plugin);
TickMeter tickMeter = new TickMeter(plugin);
tickMeter.startTicking();
Thread.sleep(2500);
final double ticksPerSecond = tickMeter.stopTicking();
@ -70,15 +69,14 @@ public class Command_health extends FreedomCommand
return true;
}
private class TFM_TickMeter
private class TickMeter
{
private final AtomicInteger ticks = new AtomicInteger();
private final TotalFreedomMod plugin;
private long startTime;
private BukkitTask task;
public TFM_TickMeter(TotalFreedomMod plugin)
public TickMeter(TotalFreedomMod plugin)
{
this.plugin = plugin;
}
@ -107,5 +105,4 @@ public class Command_health extends FreedomCommand
return (double)tickCount / ((double)elapsed / 1000.0);
}
}
}

View File

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

View File

@ -9,7 +9,6 @@ import org.bukkit.entity.Player;
@CommandParameters(description = "Reload the indefinite ban list.", usage = "/<command> reload", aliases = "ib")
public class Command_indefban extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{

View File

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

View File

@ -35,9 +35,9 @@ public class Command_invsee extends FreedomCommand
return true;
}
if (plugin.sl.isStaff(player) && !plugin.sl.isStaff(playerSender))
if (plugin.al.isAdmin(player) && !plugin.al.isAdmin(playerSender))
{
msg("You cannot see the inventory of staff members.", ChatColor.RED);
msg("You cannot see the inventory of admin members.", ChatColor.RED);
return true;
}
@ -67,7 +67,7 @@ public class Command_invsee extends FreedomCommand
}
inv = player.getInventory();
playerSender.closeInventory();
if (!plugin.sl.isStaff(player))
if (!plugin.al.isAdmin(player))
{
FPlayer fPlayer = plugin.pl.getPlayer(playerSender);
fPlayer.setInvSee(true);

View File

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

View File

@ -65,11 +65,11 @@ public class Command_kick extends FreedomCommand
{
if (reason != null)
{
FUtil.staffAction(sender.getName(), "Kicking " + player.getName() + " - Reason: " + reason, true);
FUtil.adminAction(sender.getName(), "Kicking " + player.getName() + " - Reason: " + reason, true);
}
else
{
FUtil.staffAction(sender.getName(), "Kicking " + player.getName(), true);
FUtil.adminAction(sender.getName(), "Kicking " + player.getName(), true);
}
}
else

View File

@ -8,23 +8,21 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.ADMIN, source = SourceType.BOTH)
@CommandParameters(description = "Kick all non-staff on server.", usage = "/<command>", aliases = "kickall")
@CommandParameters(description = "Kick all non-admins on server.", usage = "/<command>", aliases = "kickall")
public class Command_kicknoob extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
FUtil.staffAction(sender.getName(), "Disconnecting all non-staff.", true);
FUtil.adminAction(sender.getName(), "Disconnecting all non-admins.", true);
for (Player player : server.getOnlinePlayers())
{
if (!plugin.sl.isStaff(player))
if (!plugin.al.isAdmin(player))
{
player.kickPlayer(ChatColor.RED + "All non-staff were kicked by " + sender.getName() + ".");
player.kickPlayer(ChatColor.RED + "All non-admins were kicked by " + sender.getName() + ".");
}
}
return true;
}
}
}

View File

@ -1,67 +0,0 @@
package me.totalfreedom.totalfreedommod.command;
import java.util.Iterator;
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.fun.Landminer.Landmine;
import me.totalfreedom.totalfreedommod.rank.Rank;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME)
@CommandParameters(description = "Set a landmine trap.", usage = "/<command>")
public class Command_landmine extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!ConfigEntry.LANDMINES_ENABLED.getBoolean())
{
msg("The landmine is currently disabled.", ChatColor.GREEN);
return true;
}
if (!ConfigEntry.ALLOW_EXPLOSIONS.getBoolean())
{
msg("Explosions are currently disabled.", ChatColor.GREEN);
return true;
}
double radius = 2.0;
if (args.length >= 1)
{
if ("list".equals(args[0]))
{
final Iterator<Landmine> landmines = plugin.lm.getLandmines().iterator();
while (landmines.hasNext())
{
msg(landmines.next().toString());
}
return true;
}
try
{
radius = Math.max(2.0, Math.min(6.0, Double.parseDouble(args[0])));
}
catch (NumberFormatException ex)
{
}
}
final Block landmine = playerSender.getLocation().getBlock().getRelative(BlockFace.DOWN);
landmine.setType(Material.TNT);
plugin.lm.add(new Landmine(landmine.getLocation(), playerSender, radius));
msg("Landmine planted - Radius = " + radius + " blocks.", ChatColor.GREEN);
return true;
}
}

View File

@ -22,7 +22,7 @@ public class Command_linkdiscord extends FreedomCommand
return true;
}
if (args.length > 1 && plugin.sl.isStaff(playerSender))
if (args.length > 1 && plugin.al.isAdmin(playerSender))
{
PlayerData playerData = plugin.pl.getData(args[0]);
if (playerData == null)

View File

@ -1,69 +0,0 @@
package me.totalfreedom.totalfreedommod.command;
import me.totalfreedom.totalfreedommod.rank.Rank;
import net.dean.jraw.ApiException;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME)
@CommandParameters(description = "Link your reddit account", usage = "/<command> <username | code <code>>")
public class Command_linkreddit extends FreedomCommand
{
public boolean run(final CommandSender sender, final Player playerSender, final Command cmd, final String commandLabel, final String[] args, final boolean senderIsConsole)
{
if (!plugin.rd.enabled)
{
msg("The Reddit system is currently disabled.", ChatColor.RED);
return true;
}
if (getData(playerSender).getRedditUsername() != null)
{
msg("Your Reddit account is already linked.");
return true;
}
if (args.length == 0)
{
return false;
}
if (args.length == 1 && !args[0].equals("code"))
{
String username = args[0];
String code = plugin.rd.addLinkCode(getData(playerSender), username);
try
{
plugin.rd.sendModMessage(username, "Link Code", "Please run the following in-game to link your Reddit account: /linkreddit code " + code);
}
catch (ApiException e)
{
msg("Could not find a Reddit account by the name of " + args[0], ChatColor.RED);
return true;
}
msg("A linking code has been sent to " + username + ". Please check your mod mail at " + ChatColor.AQUA + "https://www.reddit.com/message/moderator", ChatColor.GREEN);
return true;
}
String code = args[1];
String username = plugin.rd.checkLinkCode(code);
if (username == null)
{
msg(code + " is not a valid code", ChatColor.RED);
return true;
}
msg("Successfully linked the Reddit account " + username + " to your Minecraft account.", ChatColor.GREEN);
if (plugin.rd.updateFlair(playerSender))
{
msg("Your flair has been updated.", ChatColor.GREEN);
}
return true;
}
}

View File

@ -5,8 +5,8 @@ import java.util.List;
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.rank.Displayable;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.staff.StaffList;
import me.totalfreedom.totalfreedommod.staff.StaffMember;
import me.totalfreedom.totalfreedommod.admin.AdminList;
import me.totalfreedom.totalfreedommod.admin.Admin;
import me.totalfreedom.totalfreedommod.util.FUtil;
import net.md_5.bungee.api.ChatColor;
import org.apache.commons.lang.StringUtils;
@ -42,13 +42,13 @@ public class Command_list extends FreedomCommand
{
case "-s":
{
listFilter = ListFilter.STAFF;
listFilter = ListFilter.ADMINS;
break;
}
case "-v":
{
checkRank(Rank.ADMIN);
listFilter = ListFilter.VANISHED_STAFF;
listFilter = ListFilter.VANISHED_ADMINS;
break;
}
case "-t":
@ -82,20 +82,20 @@ public class Command_list extends FreedomCommand
List<String> n = new ArrayList<>();
if (listFilter == ListFilter.TELNET_SESSIONS && plugin.sl.isStaff(sender) && plugin.sl.getAdmin(playerSender).getRank().isAtLeast(Rank.ADMIN))
if (listFilter == ListFilter.TELNET_SESSIONS && plugin.al.isAdmin(sender) && plugin.al.getAdmin(playerSender).getRank().isAtLeast(Rank.ADMIN))
{
List<StaffMember> connectedStaffMembers = plugin.btb.getConnectedAdmins();
onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(connectedStaffMembers.size())
List<Admin> connectedAdmins = plugin.btb.getConnectedAdmins();
onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(connectedAdmins.size())
.append(ChatColor.BLUE)
.append(" staff members connected to telnet.");
for (StaffMember staffMember : connectedStaffMembers)
.append(" admins connected to telnet.");
for (Admin admin : connectedAdmins)
{
n.add(staffMember.getName());
n.add(admin.getName());
}
}
else
{
onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().size() - StaffList.vanished.size())
onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().size() - AdminList.vanished.size())
.append(ChatColor.BLUE)
.append(" out of a maximum ")
.append(ChatColor.RED)
@ -104,19 +104,19 @@ public class Command_list extends FreedomCommand
.append(" players online.");
for (Player p : server.getOnlinePlayers())
{
if (listFilter == ListFilter.STAFF && !plugin.sl.isStaff(p))
if (listFilter == ListFilter.ADMINS && !plugin.al.isAdmin(p))
{
continue;
}
if (listFilter == ListFilter.STAFF && plugin.sl.isVanished(p.getName()))
if (listFilter == ListFilter.ADMINS && plugin.al.isVanished(p.getName()))
{
continue;
}
if (listFilter == ListFilter.VANISHED_STAFF && !plugin.sl.isVanished(p.getName()))
if (listFilter == ListFilter.VANISHED_ADMINS && !plugin.al.isVanished(p.getName()))
{
continue;
}
if (listFilter == ListFilter.IMPOSTORS && !plugin.sl.isStaffImpostor(p))
if (listFilter == ListFilter.IMPOSTORS && !plugin.al.isAdminImpostor(p))
{
continue;
}
@ -124,7 +124,7 @@ public class Command_list extends FreedomCommand
{
continue;
}
if (listFilter == ListFilter.PLAYERS && plugin.sl.isVanished(p.getName()))
if (listFilter == ListFilter.PLAYERS && plugin.al.isVanished(p.getName()))
{
continue;
}
@ -155,8 +155,8 @@ public class Command_list extends FreedomCommand
private enum ListFilter
{
PLAYERS,
STAFF,
VANISHED_STAFF,
ADMINS,
VANISHED_ADMINS,
TELNET_SESSIONS,
FAMOUS_PLAYERS,
IMPOSTORS

View File

@ -22,7 +22,7 @@ public class Command_lockup extends FreedomCommand
{
if (args[0].equalsIgnoreCase("all"))
{
FUtil.staffAction(sender.getName(), "Locking up all players", true);
FUtil.adminAction(sender.getName(), "Locking up all players", true);
for (Player player : server.getOnlinePlayers())
{
@ -32,7 +32,7 @@ public class Command_lockup extends FreedomCommand
}
else if (args[0].equalsIgnoreCase("purge"))
{
FUtil.staffAction(sender.getName(), "Unlocking all players", true);
FUtil.adminAction(sender.getName(), "Unlocking all players", true);
for (Player player : server.getOnlinePlayers())
{
cancelLockup(player);
@ -59,7 +59,7 @@ public class Command_lockup extends FreedomCommand
if (!silent)
{
FUtil.staffAction(sender.getName(), "Locking up " + player.getName(), true);
FUtil.adminAction(sender.getName(), "Locking up " + player.getName(), true);
}
startLockup(player);
msg("Locked up " + player.getName() + ".");
@ -76,7 +76,7 @@ public class Command_lockup extends FreedomCommand
if (!silent)
{
FUtil.staffAction(sender.getName(), "Unlocking " + player.getName(), true);
FUtil.adminAction(sender.getName(), "Unlocking " + player.getName(), true);
}
cancelLockup(player);
msg("Unlocked " + player.getName() + ".");

View File

@ -16,7 +16,7 @@ public class Command_loginmessage extends FreedomCommand
@Override
public boolean run(final CommandSender sender, final Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!plugin.pl.getData(playerSender).hasItem(ShopItem.LOGIN_MESSAGES) && !isStaff(playerSender))
if (!plugin.pl.getData(playerSender).hasItem(ShopItem.LOGIN_MESSAGES) && !isAdmin(playerSender))
{
msg("You did not purchase the ability to use login messages! Purchase the ability from the shop.", ChatColor.RED);
return true;

View File

@ -1,26 +0,0 @@
package me.totalfreedom.totalfreedommod.command;
import me.totalfreedom.totalfreedommod.LogViewer.LogsRegistrationMode;
import me.totalfreedom.totalfreedommod.rank.Rank;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.ADMIN, source = SourceType.ONLY_IN_GAME)
@CommandParameters(description = "Register your connection with the TFM logviewer.", usage = "/<command> [off]")
public class Command_logs extends FreedomCommand
{
@Override
public boolean run(final CommandSender sender, final Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
LogsRegistrationMode mode = LogsRegistrationMode.ADD;
if (args.length == 1 && "off".equalsIgnoreCase(args[0]))
{
mode = LogsRegistrationMode.DELETE;
}
plugin.lv.updateLogsRegistration(sender, playerSender, mode);
return true;
}
}

View File

@ -39,7 +39,7 @@ public class Command_manuallyverify extends FreedomCommand
return true;
}
FUtil.staffAction(sender.getName(), "Manually verifying player " + player.getName(), false);
FUtil.adminAction(sender.getName(), "Manually verifying player " + player.getName(), false);
player.setOp(true);
player.sendMessage(YOU_ARE_OP);

View File

@ -1,42 +0,0 @@
package me.totalfreedom.totalfreedommod.command;
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.rank.Rank;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = Rank.SENIOR_ADMIN, source = SourceType.BOTH)
@CommandParameters(description = "seth's personal command", usage = "/<command> <players>", aliases = "genocide")
public class Command_massmurder extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!ConfigEntry.SERVER_OWNERS.getStringList().contains(playerSender.getName()))
{
return noPerms();
}
if (args.length < 1)
{
return false;
}
int count = 0;
for (String name : args)
{
Player player = getPlayer(name);
if (player != null)
{
player.setHealth(0);
count++;
}
}
msg("Mass murdered a school of " + count);
return true;
}
}

View File

@ -14,7 +14,6 @@ import org.bukkit.entity.Player;
@CommandParameters(description = "Information on how to apply for Master Builder.", usage = "/<command>", aliases = "mbi")
public class Command_masterbuilderinfo extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
@ -22,7 +21,7 @@ public class Command_masterbuilderinfo extends FreedomCommand
if (masterBuilderInfo.isEmpty())
{
msg("The master builder information section of the config.yml file has not been configured.", ChatColor.RED);
msg("The master builder information section in the config.yml file has not been configured.", ChatColor.RED);
}
else
{

View File

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

View File

@ -58,7 +58,7 @@ public class Command_mbconfig extends FreedomCommand
plugin.sql.addPlayer(data);
msg(counter + " IPs removed.");
msg(data.getIps().get(0) + " is now your only IP address");
FUtil.staffAction(sender.getName(), "Clearing my IPs", true);
FUtil.adminAction(sender.getName(), "Clearing my IPs", true);
return true;
}
case "clearip":
@ -118,7 +118,7 @@ public class Command_mbconfig extends FreedomCommand
if (data.isMasterBuilder() && plugin.pl.isPlayerImpostor(player))
{
FUtil.staffAction(sender.getName(), "Re-adding " + data.getName() + " to the Master Builder list", true);
FUtil.adminAction(sender.getName(), "Re-adding " + data.getName() + " to the Master Builder list", true);
if (plugin.pl.getPlayer(player).getFreezeData().isFrozen())
{
@ -134,7 +134,7 @@ public class Command_mbconfig extends FreedomCommand
}
else if (!data.isMasterBuilder())
{
FUtil.staffAction(sender.getName(), "Adding " + data.getName() + " to the Master Builder list", true);
FUtil.adminAction(sender.getName(), "Adding " + data.getName() + " to the Master Builder list", true);
data.setMasterBuilder(true);
data.setVerification(true);
plugin.pl.save(data);
@ -171,7 +171,7 @@ public class Command_mbconfig extends FreedomCommand
return true;
}
FUtil.staffAction(sender.getName(), "Removing " + data.getName() + " from the Master Builder list", true);
FUtil.adminAction(sender.getName(), "Removing " + data.getName() + " from the Master Builder list", true);
data.setMasterBuilder(false);
if (data.getDiscordID() == null)
{

View File

@ -46,7 +46,7 @@ public class Command_mobpurge extends FreedomCommand
mobName = FUtil.formatName(type.name());
}
FUtil.staffAction(sender.getName(), "Purging all " + (type != null ? mobName + "s" : "mobs"), true);
FUtil.adminAction(sender.getName(), "Purging all " + (type != null ? mobName + "s" : "mobs"), true);
int count = plugin.ew.purgeMobs(type);
msg(count + " " + (type != null ? mobName : "mob") + FUtil.showS(count) + " removed.");
return true;

View File

@ -23,7 +23,6 @@ import org.bukkit.potion.PotionEffectType;
@CommandParameters(description = "Modify the current item you are holding.", usage = "/<command> <name <message> | lore <message> | enchant <enchantment> <level> | potion <effect> <duration> <amplifier> | attribute <name> <amount> | clear>", aliases = "mi")
public class Command_modifyitem extends FreedomCommand
{
@Override
public boolean run(final CommandSender sender, final Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{

View File

@ -1,52 +0,0 @@
package me.totalfreedom.totalfreedommod.command;
import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.player.FPlayer;
import me.totalfreedom.totalfreedommod.rank.Rank;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
@CommandPermissions(level = Rank.OP, source = SourceType.ONLY_IN_GAME)
@CommandParameters(description = "Modern weaponry, FTW. Use 'draw' to start firing, 'sling' to stop firing.", usage = "/<command> <draw | sling>")
public class Command_mp44 extends FreedomCommand
{
@Override
public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!ConfigEntry.MP44_ENABLED.getBoolean())
{
msg("The mp44 is currently disabled.", ChatColor.GREEN);
return true;
}
if (args.length == 0)
{
return false;
}
FPlayer playerdata = plugin.pl.getPlayer(playerSender);
if (args[0].equalsIgnoreCase("draw"))
{
playerdata.armMP44();
msg("mp44 is ARMED! Left click with gunpowder to start firing, left click again to quit.", ChatColor.GREEN);
msg("Type /mp44 sling to disable. -by Madgeek1450", ChatColor.GREEN);
playerSender.getEquipment().setItemInMainHand(new ItemStack(Material.GUNPOWDER, 1));
}
else
{
playerdata.disarmMP44();
sender.sendMessage(ChatColor.GREEN + "mp44 Disarmed.");
}
return true;
}
}

View File

@ -53,7 +53,7 @@ public class Command_mute extends FreedomCommand
if (args[0].equals("purge"))
{
FUtil.staffAction(sender.getName(), "Unmuting all players.", true);
FUtil.adminAction(sender.getName(), "Unmuting all players.", true);
FPlayer info;
int count = 0;
for (Player mp : server.getOnlinePlayers())
@ -73,13 +73,13 @@ public class Command_mute extends FreedomCommand
if (args[0].equals("all"))
{
FUtil.staffAction(sender.getName(), "Muting all non-staff", true);
FUtil.adminAction(sender.getName(), "Muting all non-admins", true);
FPlayer playerdata;
int counter = 0;
for (Player player : server.getOnlinePlayers())
{
if (!plugin.sl.isStaff(player))
if (!plugin.al.isAdmin(player))
{
player.sendTitle(ChatColor.RED + "You've been muted globally.", ChatColor.YELLOW + "Please be patient and you will be unmuted shortly.", 20, 100, 60);
playerdata = plugin.pl.getPlayer(player);
@ -120,9 +120,9 @@ public class Command_mute extends FreedomCommand
}
FPlayer playerdata = plugin.pl.getPlayer(player);
if (plugin.sl.isStaff(player))
if (plugin.al.isAdmin(player))
{
msg(player.getName() + " is a staff member, and can't be muted.");
msg(player.getName() + " is an admin, and can't be muted.");
return true;
}
@ -140,7 +140,7 @@ public class Command_mute extends FreedomCommand
return true;
}
FUtil.staffAction(sender.getName(), "Muting " + player.getName(), true);
FUtil.adminAction(sender.getName(), "Muting " + player.getName(), true);
if (smite)
{
@ -163,7 +163,7 @@ public class Command_mute extends FreedomCommand
@Override
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{
if (!plugin.sl.isStaff(sender))
if (!plugin.al.isAdmin(sender))
{
return null;
}

View File

@ -8,7 +8,7 @@ import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import me.totalfreedom.totalfreedommod.discord.Discord;
import me.totalfreedom.totalfreedommod.player.PlayerData;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.staff.StaffMember;
import me.totalfreedom.totalfreedommod.admin.Admin;
import me.totalfreedom.totalfreedommod.util.FUtil;
import org.apache.commons.lang.StringUtils;
import org.bukkit.ChatColor;
@ -29,7 +29,7 @@ public class Command_myadmin extends FreedomCommand
}
Player init = null;
StaffMember target = getStaffMember(playerSender);
Admin target = getAdmin(playerSender);
Player targetPlayer = playerSender;
// -o switch
@ -44,10 +44,10 @@ public class Command_myadmin extends FreedomCommand
return true;
}
target = getStaffMember(targetPlayer);
target = getAdmin(targetPlayer);
if (target == null)
{
msg("That player is not a staff member", ChatColor.RED);
msg("That player is not an admin", ChatColor.RED);
return true;
}
@ -72,19 +72,19 @@ public class Command_myadmin extends FreedomCommand
if (init == null)
{
FUtil.staffAction(sender.getName(), "Clearing my IPs", true);
FUtil.adminAction(sender.getName(), "Clearing my IPs", true);
}
else
{
FUtil.staffAction(sender.getName(), "Clearing " + target.getName() + "' IPs", true);
FUtil.adminAction(sender.getName(), "Clearing " + target.getName() + "' IPs", true);
}
int counter = target.getIps().size() - 1;
target.clearIPs();
target.addIp(targetIp);
plugin.sl.save(target);
plugin.sl.updateTables();
plugin.al.save(target);
plugin.al.updateTables();
plugin.pl.syncIps(target);
msg(counter + " IPs removed.");
@ -120,16 +120,16 @@ public class Command_myadmin extends FreedomCommand
}
else
{
msg("You cannot remove that staff members current IP.");
msg("You cannot remove that admins current IP.");
}
return true;
}
FUtil.staffAction(sender.getName(), "Removing an IP" + (init == null ? "" : " from " + targetPlayer.getName() + "'s IPs"), true);
FUtil.adminAction(sender.getName(), "Removing an IP" + (init == null ? "" : " from " + targetPlayer.getName() + "'s IPs"), true);
target.removeIp(args[1]);
plugin.sl.save(target);
plugin.sl.updateTables();
plugin.al.save(target);
plugin.al.updateTables();
plugin.pl.syncIps(target);
@ -142,10 +142,10 @@ public class Command_myadmin extends FreedomCommand
{
String format = StringUtils.join(args, " ", 1, args.length);
target.setAcFormat(format);
plugin.sl.save(target);
plugin.sl.updateTables();
msg("Set staff chat format to \"" + format + "\".", ChatColor.GRAY);
String example = format.replace("%name%", "ExampleStaff").replace("%rank%", Rank.ADMIN.getAbbr()).replace("%rankcolor%", Rank.ADMIN.getColor().toString()).replace("%msg%", "The quick brown fox jumps over the lazy dog.");
plugin.al.save(target);
plugin.al.updateTables();
msg("Set admin chat format to \"" + format + "\".", ChatColor.GRAY);
String example = format.replace("%name%", "ExampleAdmin").replace("%rank%", Rank.ADMIN.getAbbr()).replace("%rankcolor%", Rank.ADMIN.getColor().toString()).replace("%msg%", "The quick brown fox jumps over the lazy dog.");
msg(ChatColor.GRAY + "Example: " + FUtil.colorize(example));
return true;
}
@ -153,9 +153,9 @@ public class Command_myadmin extends FreedomCommand
case "clearscformat":
{
target.setAcFormat(null);
plugin.sl.save(target);
plugin.sl.updateTables();
msg("Cleared staff chat format.", ChatColor.GRAY);
plugin.al.save(target);
plugin.al.updateTables();
msg("Cleared admin chat format.", ChatColor.GRAY);
return true;
}
@ -198,7 +198,7 @@ public class Command_myadmin extends FreedomCommand
@Override
public List<String> getTabCompleteOptions(CommandSender sender, Command command, String alias, String[] args)
{
if (!plugin.sl.isStaff(sender))
if (!plugin.al.isAdmin(sender))
{
return Collections.emptyList();
}
@ -225,7 +225,7 @@ public class Command_myadmin extends FreedomCommand
{
if (args[0].equals("clearip"))
{
List<String> ips = plugin.sl.getAdmin(sender).getIps();
List<String> ips = plugin.al.getAdmin(sender).getIps();
ips.remove(FUtil.getIp((Player)sender));
return ips;
}
@ -246,10 +246,10 @@ public class Command_myadmin extends FreedomCommand
{
if (args[0].equals("-o") && args[2].equals("clearip"))
{
StaffMember staffMember = plugin.sl.getEntryByName(args[1]);
if (staffMember != null)
Admin admin = plugin.al.getEntryByName(args[1]);
if (admin != null)
{
return staffMember.getIps();
return admin.getIps();
}
}
}

View File

@ -53,12 +53,12 @@ public class Command_nickclean extends FreedomCommand
return true;
}
FUtil.staffAction(sender.getName(), "Cleaning " + player.getName() + "'s nickname", false);
FUtil.adminAction(sender.getName(), "Cleaning " + player.getName() + "'s nickname", false);
cleanNickname(player);
return true;
}
FUtil.staffAction(sender.getName(), "Cleaning all nicknames", false);
FUtil.adminAction(sender.getName(), "Cleaning all nicknames", false);
for (final Player player : server.getOnlinePlayers())
{
cleanNickname(player);

View File

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

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