Merge vanish & coreprotect-switch into main
This commit is contained in:
parent
2a0244ddd4
commit
4782438bc8
|
@ -3,105 +3,85 @@ package me.StevenLawson.TotalFreedomMod;
|
|||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class Log
|
||||
{
|
||||
private static final Logger FALLBACK_LOGGER = Logger.getLogger("Minecraft-Server");
|
||||
private static Logger serverLogger = null;
|
||||
private static Logger pluginLogger = null;
|
||||
public class Log {
|
||||
|
||||
private Log()
|
||||
{
|
||||
throw new AssertionError();
|
||||
}
|
||||
private static final Logger FALLBACK_LOGGER = Logger.getLogger("Minecraft-Server");
|
||||
private static Logger serverLogger = null;
|
||||
private static Logger pluginLogger = null;
|
||||
|
||||
// Level.INFO:
|
||||
public static void info(String message)
|
||||
{
|
||||
info(message, false);
|
||||
}
|
||||
private Log() {
|
||||
throw new AssertionError();
|
||||
}
|
||||
|
||||
public static void info(String message, Boolean raw)
|
||||
{
|
||||
log(Level.INFO, message, raw);
|
||||
}
|
||||
// Level.INFO:
|
||||
public static void info(String message) {
|
||||
info(message, false);
|
||||
}
|
||||
|
||||
public static void info(Throwable ex)
|
||||
{
|
||||
log(Level.INFO, ex);
|
||||
}
|
||||
public static void info(String message, Boolean raw) {
|
||||
log(Level.INFO, message, raw);
|
||||
}
|
||||
|
||||
// Level.WARNING:
|
||||
public static void warning(String message)
|
||||
{
|
||||
warning(message, false);
|
||||
}
|
||||
public static void info(Throwable ex) {
|
||||
log(Level.INFO, ex);
|
||||
}
|
||||
|
||||
public static void warning(String message, Boolean raw)
|
||||
{
|
||||
log(Level.WARNING, message, raw);
|
||||
}
|
||||
// Level.WARNING:
|
||||
public static void warning(String message) {
|
||||
warning(message, false);
|
||||
}
|
||||
|
||||
public static void warning(Throwable ex)
|
||||
{
|
||||
log(Level.WARNING, ex);
|
||||
}
|
||||
public static void warning(String message, Boolean raw) {
|
||||
log(Level.WARNING, message, raw);
|
||||
}
|
||||
|
||||
// Level.SEVERE:
|
||||
public static void severe(String message)
|
||||
{
|
||||
severe(message, false);
|
||||
}
|
||||
public static void warning(Throwable ex) {
|
||||
log(Level.WARNING, ex);
|
||||
}
|
||||
|
||||
public static void severe(String message, Boolean raw)
|
||||
{
|
||||
log(Level.SEVERE, message, raw);
|
||||
}
|
||||
// Level.SEVERE:
|
||||
public static void severe(String message) {
|
||||
severe(message, false);
|
||||
}
|
||||
|
||||
public static void severe(Throwable ex)
|
||||
{
|
||||
log(Level.SEVERE, ex);
|
||||
}
|
||||
public static void severe(String message, Boolean raw) {
|
||||
log(Level.SEVERE, message, raw);
|
||||
}
|
||||
|
||||
// Utility
|
||||
private static void log(Level level, String message, boolean raw)
|
||||
{
|
||||
getLogger(raw).log(level, message);
|
||||
}
|
||||
public static void severe(Throwable ex) {
|
||||
log(Level.SEVERE, ex);
|
||||
}
|
||||
|
||||
private static void log(Level level, Throwable throwable)
|
||||
{
|
||||
getLogger(false).log(level, null, throwable);
|
||||
}
|
||||
// Utility
|
||||
private static void log(Level level, String message, boolean raw) {
|
||||
getLogger(raw).log(level, message);
|
||||
}
|
||||
|
||||
public static void setServerLogger(Logger logger)
|
||||
{
|
||||
serverLogger = logger;
|
||||
}
|
||||
private static void log(Level level, Throwable throwable) {
|
||||
getLogger(false).log(level, null, throwable);
|
||||
}
|
||||
|
||||
public static void setPluginLogger(Logger logger)
|
||||
{
|
||||
pluginLogger = logger;
|
||||
}
|
||||
private static Logger getLogger(boolean raw) {
|
||||
if (raw || pluginLogger == null) {
|
||||
return (serverLogger != null ? serverLogger : FALLBACK_LOGGER);
|
||||
} else {
|
||||
return pluginLogger;
|
||||
}
|
||||
}
|
||||
|
||||
private static Logger getLogger(boolean raw)
|
||||
{
|
||||
if (raw || pluginLogger == null)
|
||||
{
|
||||
return (serverLogger != null ? serverLogger : FALLBACK_LOGGER);
|
||||
}
|
||||
else
|
||||
{
|
||||
return pluginLogger;
|
||||
}
|
||||
}
|
||||
public static Logger getPluginLogger() {
|
||||
return (pluginLogger != null ? pluginLogger : FALLBACK_LOGGER);
|
||||
}
|
||||
|
||||
public static Logger getPluginLogger()
|
||||
{
|
||||
return (pluginLogger != null ? pluginLogger : FALLBACK_LOGGER);
|
||||
}
|
||||
public static void setPluginLogger(Logger logger) {
|
||||
pluginLogger = logger;
|
||||
}
|
||||
|
||||
public static Logger getServerLogger()
|
||||
{
|
||||
return (serverLogger != null ? serverLogger : FALLBACK_LOGGER);
|
||||
}
|
||||
public static Logger getServerLogger() {
|
||||
return (serverLogger != null ? serverLogger : FALLBACK_LOGGER);
|
||||
}
|
||||
|
||||
public static void setServerLogger(Logger logger) {
|
||||
serverLogger = logger;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,13 @@
|
|||
package me.StevenLawson.TotalFreedomMod;
|
||||
|
||||
import static me.StevenLawson.TotalFreedomMod.listener.PlayerListener.DEFAULT_PORT;
|
||||
|
||||
import com.earth2me.essentials.utils.DateUtil;
|
||||
import java.lang.management.ManagementFactory;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.regex.Pattern;
|
||||
import me.StevenLawson.TotalFreedomMod.admin.AdminList;
|
||||
import me.StevenLawson.TotalFreedomMod.ban.Ban;
|
||||
import me.StevenLawson.TotalFreedomMod.ban.BanManager;
|
||||
|
@ -19,254 +26,221 @@ import org.bukkit.event.player.AsyncPlayerPreLoginEvent;
|
|||
import org.bukkit.event.player.PlayerLoginEvent;
|
||||
import org.bukkit.event.player.PlayerLoginEvent.Result;
|
||||
|
||||
import java.lang.management.ManagementFactory;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.regex.Pattern;
|
||||
public class Server {
|
||||
|
||||
import static me.StevenLawson.TotalFreedomMod.listener.PlayerListener.DEFAULT_PORT;
|
||||
public static final String COMPILE_NMS_VERSION = "v1_8_R2";
|
||||
public static final Pattern USERNAME_REGEX = Pattern.compile("^[\\w\\d_]{3,20}$");
|
||||
|
||||
public class Server
|
||||
{
|
||||
public static final String COMPILE_NMS_VERSION = "v1_8_R2";
|
||||
public static final Pattern USERNAME_REGEX = Pattern.compile("^[\\w\\d_]{3,20}$");
|
||||
public static void setOnlineMode(boolean mode) {
|
||||
final PropertyManager manager = MinecraftServer.getServer().getPropertyManager();
|
||||
manager.setProperty("online-mode", mode);
|
||||
manager.savePropertiesFile();
|
||||
}
|
||||
|
||||
public static void setOnlineMode(boolean mode)
|
||||
{
|
||||
final PropertyManager manager = MinecraftServer.getServer().getPropertyManager();
|
||||
manager.setProperty("online-mode", mode);
|
||||
manager.savePropertiesFile();
|
||||
}
|
||||
public static int purgeWhitelist() {
|
||||
String[] whitelisted = MinecraftServer.getServer().getPlayerList().getWhitelisted();
|
||||
int size = whitelisted.length;
|
||||
for (EntityPlayer player : MinecraftServer.getServer().getPlayerList().players) {
|
||||
MinecraftServer.getServer().getPlayerList().getWhitelist().remove(player.getProfile());
|
||||
}
|
||||
|
||||
public static int purgeWhitelist()
|
||||
{
|
||||
String[] whitelisted = MinecraftServer.getServer().getPlayerList().getWhitelisted();
|
||||
int size = whitelisted.length;
|
||||
for (EntityPlayer player : MinecraftServer.getServer().getPlayerList().players)
|
||||
{
|
||||
MinecraftServer.getServer().getPlayerList().getWhitelist().remove(player.getProfile());
|
||||
}
|
||||
try {
|
||||
MinecraftServer.getServer().getPlayerList().getWhitelist().save();
|
||||
} catch (Exception ex) {
|
||||
Log.warning("Could not purge the whitelist!");
|
||||
Log.warning(ex);
|
||||
}
|
||||
return size;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
MinecraftServer.getServer().getPlayerList().getWhitelist().save();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.warning("Could not purge the whitelist!");
|
||||
Log.warning(ex);
|
||||
}
|
||||
return size;
|
||||
}
|
||||
public static boolean isWhitelisted() {
|
||||
return MinecraftServer.getServer().getPlayerList().getHasWhitelist();
|
||||
}
|
||||
|
||||
public static boolean isWhitelisted()
|
||||
{
|
||||
return MinecraftServer.getServer().getPlayerList().getHasWhitelist();
|
||||
}
|
||||
public static List<?> getWhitelisted() {
|
||||
return Arrays.asList(MinecraftServer.getServer().getPlayerList().getWhitelisted());
|
||||
}
|
||||
|
||||
public static List<?> getWhitelisted()
|
||||
{
|
||||
return Arrays.asList(MinecraftServer.getServer().getPlayerList().getWhitelisted());
|
||||
}
|
||||
public static String getVersion() {
|
||||
return MinecraftServer.getServer().getVersion();
|
||||
}
|
||||
|
||||
public static String getVersion()
|
||||
{
|
||||
return MinecraftServer.getServer().getVersion();
|
||||
}
|
||||
public static void handlePlayerPreLogin(AsyncPlayerPreLoginEvent event) {
|
||||
final String ip = event.getAddress().getHostAddress().trim();
|
||||
final boolean isAdmin = AdminList.isSuperAdminSafe(null, ip);
|
||||
|
||||
public static void handlePlayerPreLogin(AsyncPlayerPreLoginEvent event)
|
||||
{
|
||||
final String ip = event.getAddress().getHostAddress().trim();
|
||||
final boolean isAdmin = AdminList.isSuperAdminSafe(null, ip);
|
||||
// Check if the player is already online
|
||||
for (Player onlinePlayer : TotalFreedomMod.server.getOnlinePlayers()) {
|
||||
if (!onlinePlayer.getName().equalsIgnoreCase(event.getName())) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Check if the player is already online
|
||||
for (Player onlinePlayer : TotalFreedomMod.server.getOnlinePlayers())
|
||||
{
|
||||
if (!onlinePlayer.getName().equalsIgnoreCase(event.getName()))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (!isAdmin) {
|
||||
event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_OTHER,
|
||||
"Your username is already logged into this server.");
|
||||
} else {
|
||||
event.allow();
|
||||
SynchronousUtil.playerKick(onlinePlayer,
|
||||
"An admin just logged in with the username you are using.");
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (!isAdmin) {
|
||||
event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_OTHER, "Your username is already logged into this server.");
|
||||
} else {
|
||||
event.allow();
|
||||
SynchronousUtil.playerKick(onlinePlayer, "An admin just logged in with the username you are using.");
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
public static void handlePlayerLogin(PlayerLoginEvent event) {
|
||||
final org.bukkit.Server server = TotalFreedomMod.server;
|
||||
final Player player = event.getPlayer();
|
||||
final String username = player.getName();
|
||||
final String ip = event.getAddress().getHostAddress().trim();
|
||||
final UUID uuid = UUIDManager.newPlayer(player, ip);
|
||||
|
||||
public static void handlePlayerLogin(PlayerLoginEvent event)
|
||||
{
|
||||
final org.bukkit.Server server = TotalFreedomMod.server;
|
||||
final Player player = event.getPlayer();
|
||||
final String username = player.getName();
|
||||
final String ip = event.getAddress().getHostAddress().trim();
|
||||
final UUID uuid = UUIDManager.newPlayer(player, ip);
|
||||
// Check username length
|
||||
if (username.length() < 3 || username.length() > TotalFreedomMod.MAX_USERNAME_LENGTH) {
|
||||
event.disallow(Result.KICK_OTHER,
|
||||
"Your username is an invalid length (must be between 3 and 20 characters long).");
|
||||
return;
|
||||
}
|
||||
|
||||
// Check username length
|
||||
if (username.length() < 3 || username.length() > TotalFreedomMod.MAX_USERNAME_LENGTH)
|
||||
{
|
||||
event.disallow(Result.KICK_OTHER, "Your username is an invalid length (must be between 3 and 20 characters long).");
|
||||
return;
|
||||
}
|
||||
// Check username characters
|
||||
if (!USERNAME_REGEX.matcher(username).find()) {
|
||||
event.disallow(Result.KICK_OTHER, "Your username contains invalid characters.");
|
||||
return;
|
||||
}
|
||||
|
||||
// Check username characters
|
||||
if (!USERNAME_REGEX.matcher(username).find())
|
||||
{
|
||||
event.disallow(Result.KICK_OTHER, "Your username contains invalid characters.");
|
||||
return;
|
||||
}
|
||||
// Check force-IP match
|
||||
if (ConfigurationEntry.FORCE_IP_ENABLED.getBoolean()) {
|
||||
final String hostname = event.getHostname().replace("FML",
|
||||
""); // Forge fix - https://github.com/TotalFreedom/TotalFreedomMod/issues/493
|
||||
final String connectAddress = ConfigurationEntry.SERVER_ADDRESS.getString();
|
||||
final int connectPort = TotalFreedomMod.server.getPort();
|
||||
|
||||
// Check force-IP match
|
||||
if (ConfigurationEntry.FORCE_IP_ENABLED.getBoolean())
|
||||
{
|
||||
final String hostname = event.getHostname().replace("FML", ""); // Forge fix - https://github.com/TotalFreedom/TotalFreedomMod/issues/493
|
||||
final String connectAddress = ConfigurationEntry.SERVER_ADDRESS.getString();
|
||||
final int connectPort = TotalFreedomMod.server.getPort();
|
||||
if (!hostname.equalsIgnoreCase(connectAddress + ":" + connectPort)
|
||||
&& !hostname.equalsIgnoreCase(connectAddress + ".:" + connectPort)) {
|
||||
final int forceIpPort = ConfigurationEntry.FORCE_IP_PORT.getInteger();
|
||||
event.disallow(PlayerLoginEvent.Result.KICK_OTHER,
|
||||
ConfigurationEntry.FORCE_IP_KICKMSG.getString()
|
||||
.replace("%address%", ConfigurationEntry.SERVER_ADDRESS.getString() + (
|
||||
forceIpPort == DEFAULT_PORT ? "" : ":" + forceIpPort)));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!hostname.equalsIgnoreCase(connectAddress + ":" + connectPort) && !hostname.equalsIgnoreCase(connectAddress + ".:" + connectPort))
|
||||
{
|
||||
final int forceIpPort = ConfigurationEntry.FORCE_IP_PORT.getInteger();
|
||||
event.disallow(PlayerLoginEvent.Result.KICK_OTHER,
|
||||
ConfigurationEntry.FORCE_IP_KICKMSG.getString()
|
||||
.replace("%address%", ConfigurationEntry.SERVER_ADDRESS.getString() + (forceIpPort == DEFAULT_PORT ? "" : ":" + forceIpPort)));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
// Check if player is admin
|
||||
// Not safe to use Utilities.isSuperAdmin(player) because player.getAddress() will return a null until after player login.
|
||||
final boolean isAdmin = AdminList.isSuperAdminSafe(uuid, ip);
|
||||
|
||||
// Check if player is admin
|
||||
// Not safe to use Utilities.isSuperAdmin(player) because player.getAddress() will return a null until after player login.
|
||||
final boolean isAdmin = AdminList.isSuperAdminSafe(uuid, ip);
|
||||
// Validation below this point
|
||||
if (isAdmin) // Player is superadmin
|
||||
{
|
||||
// Force-allow log in
|
||||
event.allow();
|
||||
|
||||
// Validation below this point
|
||||
if (isAdmin) // Player is superadmin
|
||||
{
|
||||
// Force-allow log in
|
||||
event.allow();
|
||||
int count = server.getOnlinePlayers().size();
|
||||
if (count >= server.getMaxPlayers()) {
|
||||
for (Player onlinePlayer : server.getOnlinePlayers()) {
|
||||
if (!AdminList.isSuperAdmin(onlinePlayer)) {
|
||||
onlinePlayer.kickPlayer(
|
||||
"You have been kicked to free up room for an admin.");
|
||||
count--;
|
||||
}
|
||||
|
||||
int count = server.getOnlinePlayers().size();
|
||||
if (count >= server.getMaxPlayers())
|
||||
{
|
||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||
{
|
||||
if (!AdminList.isSuperAdmin(onlinePlayer))
|
||||
{
|
||||
onlinePlayer.kickPlayer("You have been kicked to free up room for an admin.");
|
||||
count--;
|
||||
}
|
||||
if (count < server.getMaxPlayers()) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (count < server.getMaxPlayers())
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (count >= server.getMaxPlayers()) {
|
||||
event.disallow(Result.KICK_OTHER,
|
||||
"The server is full and a player could not be kicked, sorry!");
|
||||
return;
|
||||
}
|
||||
|
||||
if (count >= server.getMaxPlayers())
|
||||
{
|
||||
event.disallow(Result.KICK_OTHER, "The server is full and a player could not be kicked, sorry!");
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
// Player is not an admin
|
||||
// Server full check
|
||||
if (server.getOnlinePlayers().size() >= server.getMaxPlayers()) {
|
||||
event.disallow(Result.KICK_FULL, "Sorry, but this server is full.");
|
||||
return;
|
||||
}
|
||||
|
||||
// Player is not an admin
|
||||
// Server full check
|
||||
if (server.getOnlinePlayers().size() >= server.getMaxPlayers())
|
||||
{
|
||||
event.disallow(Result.KICK_FULL, "Sorry, but this server is full.");
|
||||
return;
|
||||
}
|
||||
// Admin-only mode
|
||||
if (ConfigurationEntry.ADMIN_ONLY_MODE.getBoolean()) {
|
||||
event.disallow(Result.KICK_OTHER, "Server is temporarily open to admins only.");
|
||||
return;
|
||||
}
|
||||
|
||||
// Admin-only mode
|
||||
if (ConfigurationEntry.ADMIN_ONLY_MODE.getBoolean())
|
||||
{
|
||||
event.disallow(Result.KICK_OTHER, "Server is temporarily open to admins only.");
|
||||
return;
|
||||
}
|
||||
// Lockdown mode
|
||||
if (TotalFreedomMod.lockdownEnabled) {
|
||||
event.disallow(Result.KICK_OTHER, "Server is currently in lockdown mode.");
|
||||
return;
|
||||
}
|
||||
|
||||
// Lockdown mode
|
||||
if (TotalFreedomMod.lockdownEnabled)
|
||||
{
|
||||
event.disallow(Result.KICK_OTHER, "Server is currently in lockdown mode.");
|
||||
return;
|
||||
}
|
||||
// Whitelist
|
||||
if (isWhitelisted()) {
|
||||
if (!getWhitelisted().contains(username.toLowerCase())) {
|
||||
event.disallow(Result.KICK_OTHER, "You are not whitelisted on this server.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Whitelist
|
||||
if (isWhitelisted())
|
||||
{
|
||||
if (!getWhitelisted().contains(username.toLowerCase()))
|
||||
{
|
||||
event.disallow(Result.KICK_OTHER, "You are not whitelisted on this server.");
|
||||
return;
|
||||
}
|
||||
}
|
||||
// UUID ban
|
||||
if (BanManager.isUuidBanned(uuid)) {
|
||||
final Ban ban = BanManager.getByUuid(uuid);
|
||||
event.disallow(Result.KICK_OTHER, ban.getKickMessage());
|
||||
return;
|
||||
}
|
||||
|
||||
// UUID ban
|
||||
if (BanManager.isUuidBanned(uuid))
|
||||
{
|
||||
final Ban ban = BanManager.getByUuid(uuid);
|
||||
event.disallow(Result.KICK_OTHER, ban.getKickMessage());
|
||||
return;
|
||||
}
|
||||
// IP ban
|
||||
if (BanManager.isIpBanned(ip)) {
|
||||
final Ban ban = BanManager.getByIp(ip);
|
||||
event.disallow(Result.KICK_OTHER, ban.getKickMessage());
|
||||
return;
|
||||
}
|
||||
|
||||
// IP ban
|
||||
if (BanManager.isIpBanned(ip))
|
||||
{
|
||||
final Ban ban = BanManager.getByIp(ip);
|
||||
event.disallow(Result.KICK_OTHER, ban.getKickMessage());
|
||||
return;
|
||||
}
|
||||
// Permbanned IPs
|
||||
for (String testIp : PermbanList.getPermbannedIps()) {
|
||||
if (Utilities.fuzzyIpMatch(testIp, ip, 4)) {
|
||||
event.disallow(Result.KICK_OTHER,
|
||||
ChatColor.RED + "Your IP address is permanently banned from this server.\n"
|
||||
+ "Release procedures are available at\n"
|
||||
+ ChatColor.GOLD + ConfigurationEntry.SERVER_PERMBAN_URL.getString());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Permbanned IPs
|
||||
for (String testIp : PermbanList.getPermbannedIps())
|
||||
{
|
||||
if (Utilities.fuzzyIpMatch(testIp, ip, 4))
|
||||
{
|
||||
event.disallow(Result.KICK_OTHER,
|
||||
ChatColor.RED + "Your IP address is permanently banned from this server.\n"
|
||||
+ "Release procedures are available at\n"
|
||||
+ ChatColor.GOLD + ConfigurationEntry.SERVER_PERMBAN_URL.getString());
|
||||
return;
|
||||
}
|
||||
}
|
||||
// Permbanned usernames
|
||||
for (String testPlayer : PermbanList.getPermbannedPlayers()) {
|
||||
if (testPlayer.equalsIgnoreCase(username)) {
|
||||
event.disallow(Result.KICK_OTHER,
|
||||
ChatColor.RED + "Your username is permanently banned from this server.\n"
|
||||
+ "Release procedures are available at\n"
|
||||
+ ChatColor.GOLD + ConfigurationEntry.SERVER_PERMBAN_URL.getString());
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Permbanned usernames
|
||||
for (String testPlayer : PermbanList.getPermbannedPlayers())
|
||||
{
|
||||
if (testPlayer.equalsIgnoreCase(username))
|
||||
{
|
||||
event.disallow(Result.KICK_OTHER,
|
||||
ChatColor.RED + "Your username is permanently banned from this server.\n"
|
||||
+ "Release procedures are available at\n"
|
||||
+ ChatColor.GOLD + ConfigurationEntry.SERVER_PERMBAN_URL.getString());
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
public static double getTPS() {
|
||||
return EssentialsBridge.getEssentialsPlugin().getTimer().getAverageTPS();
|
||||
}
|
||||
|
||||
public static double getTPS() {
|
||||
return EssentialsBridge.getEssentialsPlugin().getTimer().getAverageTPS();
|
||||
}
|
||||
public static double getMaxMem() {
|
||||
return Runtime.getRuntime().maxMemory() / 1024f / 1024f;
|
||||
}
|
||||
|
||||
public static double getMaxMem() {
|
||||
return Runtime.getRuntime().maxMemory() / 1024f / 1024f;
|
||||
}
|
||||
public static double getTotalMem() {
|
||||
return Runtime.getRuntime().totalMemory() / 1024f / 1024f;
|
||||
}
|
||||
|
||||
public static double getTotalMem() {
|
||||
return Runtime.getRuntime().totalMemory() / 1024f / 1024f;
|
||||
}
|
||||
public static double getFreeMem() {
|
||||
return Runtime.getRuntime().freeMemory() / 1024f / 1024f;
|
||||
}
|
||||
|
||||
public static double getFreeMem() {
|
||||
return Runtime.getRuntime().freeMemory() / 1024f / 1024f;
|
||||
}
|
||||
|
||||
public static String getUptime() {
|
||||
return DateUtil.formatDateDiff(ManagementFactory.getRuntimeMXBean().getStartTime());
|
||||
}
|
||||
public static String getUptime() {
|
||||
return DateUtil.formatDateDiff(ManagementFactory.getRuntimeMXBean().getStartTime());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,22 +1,34 @@
|
|||
package me.StevenLawson.TotalFreedomMod;
|
||||
|
||||
import com.google.common.base.Function;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
import java.util.logging.Logger;
|
||||
import me.StevenLawson.TotalFreedomMod.admin.AdminList;
|
||||
import me.StevenLawson.TotalFreedomMod.announcer.Announcer;
|
||||
import me.StevenLawson.TotalFreedomMod.ban.BanManager;
|
||||
import me.StevenLawson.TotalFreedomMod.ban.PermbanList;
|
||||
import me.StevenLawson.TotalFreedomMod.commands.Commands;
|
||||
import me.StevenLawson.TotalFreedomMod.discord.bridge.DiscordBridge;
|
||||
import me.StevenLawson.TotalFreedomMod.command.CommandBlocker;
|
||||
import me.StevenLawson.TotalFreedomMod.commands.Commands;
|
||||
import me.StevenLawson.TotalFreedomMod.commands.FreedomCommand;
|
||||
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
|
||||
import me.StevenLawson.TotalFreedomMod.deprecated.bridge.BukkitTelnetBridge;
|
||||
import me.StevenLawson.TotalFreedomMod.discord.bridge.DiscordBridge;
|
||||
import me.StevenLawson.TotalFreedomMod.gamerule.GameRuleHandler;
|
||||
import me.StevenLawson.TotalFreedomMod.httpd.HTTPDManager;
|
||||
import me.StevenLawson.TotalFreedomMod.listener.*;
|
||||
import me.StevenLawson.TotalFreedomMod.listener.BlockListener;
|
||||
import me.StevenLawson.TotalFreedomMod.listener.EntityListener;
|
||||
import me.StevenLawson.TotalFreedomMod.listener.PlayerListener;
|
||||
import me.StevenLawson.TotalFreedomMod.listener.ServerListener;
|
||||
import me.StevenLawson.TotalFreedomMod.listener.WeatherListener;
|
||||
import me.StevenLawson.TotalFreedomMod.listener.WorldEditListener;
|
||||
import me.StevenLawson.TotalFreedomMod.manager.UUIDManager;
|
||||
import me.StevenLawson.TotalFreedomMod.player.HeartBeat;
|
||||
import me.StevenLawson.TotalFreedomMod.player.PlayerList;
|
||||
import me.StevenLawson.TotalFreedomMod.manager.UUIDManager;
|
||||
import me.StevenLawson.TotalFreedomMod.util.Utilities;
|
||||
import me.StevenLawson.TotalFreedomMod.world.AdminWorld;
|
||||
import me.StevenLawson.TotalFreedomMod.world.FlatlandsWorld;
|
||||
|
@ -31,160 +43,173 @@ import org.bukkit.plugin.ServicePriority;
|
|||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class TotalFreedomMod extends JavaPlugin {
|
||||
public static final long HEARTBEAT_RATE = 5L; // Seconds
|
||||
public static final long SERVICE_CHECKER_RATE = 120L;
|
||||
public static final int MAX_USERNAME_LENGTH = 20;
|
||||
//
|
||||
public static final String CONFIG_FILENAME = "config.yml";
|
||||
public static final String SUPERADMIN_FILENAME = "superadmin.yml";
|
||||
public static final String PERMBAN_FILENAME = "permban.yml";
|
||||
public static final String PLAYERTAGS_FILENAME = "playerTags.yml";
|
||||
public static final String UUID_FILENAME = "uuids.db";
|
||||
public static final String PROTECTED_AREA_FILENAME = "protectedareas.dat";
|
||||
public static final String SAVED_FLAGS_FILENAME = "savedflags.dat";
|
||||
//
|
||||
@Deprecated
|
||||
public static final String YOU_ARE_NOT_OP = FreedomCommand.YOU_ARE_NOT_OP;
|
||||
//
|
||||
public static String buildNumber = "1";
|
||||
public static String buildDate = Utilities.dateToString(new Date());
|
||||
public static String buildCreator = "Unknown";
|
||||
//
|
||||
public static org.bukkit.Server server;
|
||||
public static TotalFreedomMod plugin;
|
||||
public static String pluginName;
|
||||
public static String pluginVersion;
|
||||
//
|
||||
public static boolean lockdownEnabled = false;
|
||||
public static Map<Player, Double> fuckoffEnabledFor = new HashMap<>();
|
||||
public static Logger logger;
|
||||
|
||||
private FileConfiguration customConfig; // Custom configuration implementation by Eva
|
||||
public static final long HEARTBEAT_RATE = 5L; // Seconds
|
||||
public static final long SERVICE_CHECKER_RATE = 120L;
|
||||
public static final int MAX_USERNAME_LENGTH = 20;
|
||||
//
|
||||
public static final String CONFIG_FILENAME = "config.yml";
|
||||
public static final String SUPERADMIN_FILENAME = "superadmin.yml";
|
||||
public static final String PERMBAN_FILENAME = "permban.yml";
|
||||
public static final String PLAYERTAGS_FILENAME = "playerTags.yml";
|
||||
public static final String UUID_FILENAME = "uuids.db";
|
||||
public static final String PROTECTED_AREA_FILENAME = "protectedareas.dat";
|
||||
public static final String SAVED_FLAGS_FILENAME = "savedflags.dat";
|
||||
//
|
||||
@Deprecated
|
||||
public static final String YOU_ARE_NOT_OP = FreedomCommand.YOU_ARE_NOT_OP;
|
||||
//
|
||||
public static String buildNumber = "1";
|
||||
public static String buildDate = Utilities.dateToString(new Date());
|
||||
public static String buildCreator = "Unknown";
|
||||
//
|
||||
public static org.bukkit.Server server;
|
||||
public static TotalFreedomMod plugin;
|
||||
public static String pluginName;
|
||||
public static String pluginVersion;
|
||||
//
|
||||
public static boolean lockdownEnabled = false;
|
||||
public static Map<Player, Double> fuckoffEnabledFor = new HashMap<>();
|
||||
public static Logger logger;
|
||||
|
||||
@Override
|
||||
public void onLoad() {
|
||||
TotalFreedomMod.plugin = this;
|
||||
TotalFreedomMod.logger = this.getLogger();
|
||||
TotalFreedomMod.server = plugin.getServer();
|
||||
TotalFreedomMod.pluginName = plugin.getDescription().getName();
|
||||
TotalFreedomMod.pluginVersion = plugin.getDescription().getVersion();
|
||||
private FileConfiguration customConfig; // Custom configuration implementation by Eva
|
||||
|
||||
Log.setPluginLogger(plugin.getLogger());
|
||||
Log.setServerLogger(server.getLogger());
|
||||
private static void setAppProperties() {
|
||||
try {
|
||||
//final InputStream in = plugin.getResource("appinfo.properties");
|
||||
Properties props = new Properties();
|
||||
|
||||
setAppProperties();
|
||||
}
|
||||
// in = plugin.getClass().getResourceAsStream("/appinfo.properties");
|
||||
//props.load(in);
|
||||
//in.close();
|
||||
|
||||
@Override
|
||||
public void onEnable()
|
||||
{
|
||||
getConfig().options().copyDefaults(true);
|
||||
//TotalFreedomMod.buildNumber = props.getProperty("program.buildnumber");
|
||||
//TotalFreedomMod.buildDate = props.getProperty("program.builddate");
|
||||
//TotalFreedomMod.buildCreator = props.getProperty("program.buildcreator");
|
||||
TotalFreedomMod.buildNumber = "1337";
|
||||
TotalFreedomMod.buildCreator = "You!";
|
||||
} catch (Exception ex) {
|
||||
Log.severe("Could not load App properties!");
|
||||
Log.severe(ex);
|
||||
}
|
||||
}
|
||||
|
||||
Log.info("Made by Madgeek1450 and Prozza");
|
||||
Log.info("Compiled " + buildDate + " by " + buildCreator);
|
||||
@Override
|
||||
public void onLoad() {
|
||||
TotalFreedomMod.plugin = this;
|
||||
TotalFreedomMod.logger = this.getLogger();
|
||||
TotalFreedomMod.server = plugin.getServer();
|
||||
TotalFreedomMod.pluginName = plugin.getDescription().getName();
|
||||
TotalFreedomMod.pluginVersion = plugin.getDescription().getVersion();
|
||||
|
||||
final Utilities.MethodTimer timer = new Utilities.MethodTimer();
|
||||
timer.start();
|
||||
Log.setPluginLogger(plugin.getLogger());
|
||||
Log.setServerLogger(server.getLogger());
|
||||
|
||||
if (!Server.COMPILE_NMS_VERSION.equals(Utilities.getNmsVersion()))
|
||||
{
|
||||
Log.warning(pluginName + " is compiled for " + Server.COMPILE_NMS_VERSION + " but the server is running "
|
||||
+ "version " + Utilities.getNmsVersion() + "!");
|
||||
Log.warning("This might result in unexpected behaviour!");
|
||||
}
|
||||
setAppProperties();
|
||||
}
|
||||
|
||||
Utilities.deleteCoreDumps();
|
||||
Utilities.deleteFolder(new File("./_deleteme"));
|
||||
@Override
|
||||
public void onEnable() {
|
||||
getConfig().options().copyDefaults(true);
|
||||
|
||||
// Create backups
|
||||
Utilities.createBackups(CONFIG_FILENAME, true);
|
||||
Utilities.createBackups(SUPERADMIN_FILENAME);
|
||||
Utilities.createBackups(PERMBAN_FILENAME);
|
||||
Utilities.createBackups(PLAYERTAGS_FILENAME);
|
||||
this.createCustomConfig();
|
||||
// Load services
|
||||
UUIDManager.load();
|
||||
AdminList.load();
|
||||
PermbanList.load();
|
||||
PlayerList.load();
|
||||
BanManager.load();
|
||||
Announcer.load();
|
||||
ProtectedArea.load();
|
||||
DiscordBridge.load();
|
||||
Log.info("Made by Madgeek1450 and Prozza");
|
||||
Log.info("Compiled " + buildDate + " by " + buildCreator);
|
||||
|
||||
// Start SuperAdmin service
|
||||
server.getServicesManager().register(Function.class, AdminList.SUPERADMIN_SERVICE, plugin, ServicePriority.Normal);
|
||||
final Utilities.MethodTimer timer = new Utilities.MethodTimer();
|
||||
timer.start();
|
||||
|
||||
final PluginManager pm = server.getPluginManager();
|
||||
pm.registerEvents(new EntityListener(), plugin);
|
||||
pm.registerEvents(new BlockListener(), plugin);
|
||||
pm.registerEvents(new PlayerListener(), plugin);
|
||||
pm.registerEvents(new WeatherListener(), plugin);
|
||||
pm.registerEvents(new ServerListener(), plugin);
|
||||
if (!Server.COMPILE_NMS_VERSION.equals(Utilities.getNmsVersion())) {
|
||||
Log.warning(pluginName + " is compiled for " + Server.COMPILE_NMS_VERSION
|
||||
+ " but the server is running "
|
||||
+ "version " + Utilities.getNmsVersion() + "!");
|
||||
Log.warning("This might result in unexpected behaviour!");
|
||||
}
|
||||
|
||||
// Bridge
|
||||
pm.registerEvents(new BukkitTelnetBridge(), plugin);
|
||||
pm.registerEvents(new WorldEditListener(), plugin);
|
||||
Utilities.deleteCoreDumps();
|
||||
Utilities.deleteFolder(new File("./_deleteme"));
|
||||
|
||||
try {
|
||||
FlatlandsWorld.getInstance().getWorld();
|
||||
} catch (Exception ex) {
|
||||
Log.warning("Could not load world: Flatlands");
|
||||
}
|
||||
// Create backups
|
||||
Utilities.createBackups(CONFIG_FILENAME, true);
|
||||
Utilities.createBackups(SUPERADMIN_FILENAME);
|
||||
Utilities.createBackups(PERMBAN_FILENAME);
|
||||
Utilities.createBackups(PLAYERTAGS_FILENAME);
|
||||
this.createCustomConfig();
|
||||
// Load services
|
||||
UUIDManager.load();
|
||||
AdminList.load();
|
||||
PermbanList.load();
|
||||
PlayerList.load();
|
||||
BanManager.load();
|
||||
Announcer.load();
|
||||
ProtectedArea.load();
|
||||
DiscordBridge.load();
|
||||
|
||||
try {
|
||||
AdminWorld.getInstance().getWorld();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.warning("Could not load world: AdminWorld");
|
||||
}
|
||||
// Start SuperAdmin service
|
||||
server.getServicesManager()
|
||||
.register(Function.class, AdminList.SUPERADMIN_SERVICE, plugin, ServicePriority.Normal);
|
||||
|
||||
// Initialize game rules
|
||||
GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.DO_DAYLIGHT_CYCLE, !ConfigurationEntry.DISABLE_NIGHT.getBoolean(), false);
|
||||
GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.DO_FIRE_TICK, ConfigurationEntry.ALLOW_FIRE_SPREAD.getBoolean(), false);
|
||||
GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.DO_MOB_LOOT, false, false);
|
||||
GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.DO_MOB_SPAWNING, !ConfigurationEntry.MOB_LIMITER_ENABLED.getBoolean(), false);
|
||||
GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.DO_TILE_DROPS, false, false);
|
||||
GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.MOB_GRIEFING, false, false);
|
||||
GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.NATURAL_REGENERATION, true, false);
|
||||
GameRuleHandler.commitGameRules();
|
||||
final PluginManager pm = server.getPluginManager();
|
||||
pm.registerEvents(new EntityListener(), plugin);
|
||||
pm.registerEvents(new BlockListener(), plugin);
|
||||
pm.registerEvents(new PlayerListener(), plugin);
|
||||
pm.registerEvents(new WeatherListener(), plugin);
|
||||
pm.registerEvents(new ServerListener(), plugin);
|
||||
|
||||
// Disable weather
|
||||
if (ConfigurationEntry.DISABLE_WEATHER.getBoolean())
|
||||
{
|
||||
for (World world : server.getWorlds())
|
||||
{
|
||||
world.setThundering(false);
|
||||
world.setStorm(false);
|
||||
world.setThunderDuration(0);
|
||||
world.setWeatherDuration(0);
|
||||
}
|
||||
}
|
||||
// Bridge
|
||||
pm.registerEvents(new BukkitTelnetBridge(), plugin);
|
||||
pm.registerEvents(new WorldEditListener(), plugin);
|
||||
|
||||
// Heartbeat
|
||||
new HeartBeat(plugin).runTaskTimer(plugin, HEARTBEAT_RATE * 20L, HEARTBEAT_RATE * 20L);
|
||||
try {
|
||||
FlatlandsWorld.getInstance().getWorld();
|
||||
} catch (Exception ex) {
|
||||
Log.warning("Could not load world: Flatlands");
|
||||
}
|
||||
|
||||
Commands.registerCommands(this);
|
||||
try {
|
||||
AdminWorld.getInstance().getWorld();
|
||||
} catch (Exception ex) {
|
||||
Log.warning("Could not load world: AdminWorld");
|
||||
}
|
||||
|
||||
// Start services
|
||||
HTTPDManager.start();
|
||||
// Initialize game rules
|
||||
GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.DO_DAYLIGHT_CYCLE,
|
||||
!ConfigurationEntry.DISABLE_NIGHT.getBoolean(), false);
|
||||
GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.DO_FIRE_TICK,
|
||||
ConfigurationEntry.ALLOW_FIRE_SPREAD.getBoolean(), false);
|
||||
GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.DO_MOB_LOOT, false, false);
|
||||
GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.DO_MOB_SPAWNING,
|
||||
!ConfigurationEntry.MOB_LIMITER_ENABLED.getBoolean(), false);
|
||||
GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.DO_TILE_DROPS, false, false);
|
||||
GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.MOB_GRIEFING, false, false);
|
||||
GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.NATURAL_REGENERATION, true, false);
|
||||
GameRuleHandler.commitGameRules();
|
||||
|
||||
timer.update();
|
||||
// Disable weather
|
||||
if (ConfigurationEntry.DISABLE_WEATHER.getBoolean()) {
|
||||
for (World world : server.getWorlds()) {
|
||||
world.setThundering(false);
|
||||
world.setStorm(false);
|
||||
world.setThunderDuration(0);
|
||||
world.setWeatherDuration(0);
|
||||
}
|
||||
}
|
||||
|
||||
Log.info("Version " + pluginVersion + " for " + Server.COMPILE_NMS_VERSION + " enabled in " + timer.getTotal() + "ms");
|
||||
// Heartbeat
|
||||
new HeartBeat(plugin).runTaskTimer(plugin, HEARTBEAT_RATE * 20L, HEARTBEAT_RATE * 20L);
|
||||
|
||||
// Metrics @ http://mcstats.org/plugin/TotalFreedomMod
|
||||
// No longer exist!
|
||||
Commands.registerCommands(this);
|
||||
|
||||
// Start services
|
||||
HTTPDManager.start();
|
||||
|
||||
timer.update();
|
||||
|
||||
Log.info("Version " + pluginVersion + " for " + Server.COMPILE_NMS_VERSION + " enabled in "
|
||||
+ timer.getTotal() + "ms");
|
||||
|
||||
// Metrics @ http://mcstats.org/plugin/TotalFreedomMod
|
||||
// No longer exist!
|
||||
/*try
|
||||
{
|
||||
final Metrics metrics = new Metrics(plugin);
|
||||
|
@ -195,72 +220,46 @@ public class TotalFreedomMod extends JavaPlugin {
|
|||
Log.warning("Failed to submit metrics data: " + ex.getMessage());
|
||||
}*/
|
||||
|
||||
new BukkitRunnable()
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
CommandBlocker.load();
|
||||
new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
CommandBlocker.load();
|
||||
|
||||
// Add spawnpoints later - https://github.com/TotalFreedom/TotalFreedomMod/issues/438
|
||||
ProtectedArea.autoAddSpawnpoints();
|
||||
}
|
||||
}.runTaskLater(plugin, 20L);
|
||||
}
|
||||
// Add spawnpoints later - https://github.com/TotalFreedom/TotalFreedomMod/issues/438
|
||||
ProtectedArea.autoAddSpawnpoints();
|
||||
}
|
||||
}.runTaskLater(plugin, 20L);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisable()
|
||||
{
|
||||
HTTPDManager.stop();
|
||||
BanManager.save();
|
||||
UUIDManager.close();
|
||||
DiscordBridge.stop();
|
||||
@Override
|
||||
public void onDisable() {
|
||||
HTTPDManager.stop();
|
||||
BanManager.save();
|
||||
UUIDManager.close();
|
||||
DiscordBridge.stop();
|
||||
|
||||
server.getScheduler().cancelTasks(plugin);
|
||||
server.getScheduler().cancelTasks(plugin);
|
||||
|
||||
Log.info("Plugin disabled");
|
||||
}
|
||||
Log.info("Plugin disabled");
|
||||
}
|
||||
|
||||
public FileConfiguration getCustomConfig() {
|
||||
return this.customConfig;
|
||||
}
|
||||
//CustomConfig implementation by Eva
|
||||
private void createCustomConfig() {
|
||||
File customConfigFile = new File(getDataFolder(), "playerTags.yml");
|
||||
if (!customConfigFile.exists()) {
|
||||
customConfigFile.getParentFile().mkdirs();
|
||||
saveResource("playerTags.yml", false);
|
||||
}
|
||||
public FileConfiguration getCustomConfig() {
|
||||
return this.customConfig;
|
||||
}
|
||||
|
||||
customConfig= new YamlConfiguration();
|
||||
try {
|
||||
customConfig.load(customConfigFile);
|
||||
} catch (IOException | InvalidConfigurationException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
//CustomConfig implementation by Eva
|
||||
private void createCustomConfig() {
|
||||
File customConfigFile = new File(getDataFolder(), "playerTags.yml");
|
||||
if (!customConfigFile.exists()) {
|
||||
customConfigFile.getParentFile().mkdirs();
|
||||
saveResource("playerTags.yml", false);
|
||||
}
|
||||
|
||||
private static void setAppProperties()
|
||||
{
|
||||
try
|
||||
{
|
||||
//final InputStream in = plugin.getResource("appinfo.properties");
|
||||
Properties props = new Properties();
|
||||
|
||||
// in = plugin.getClass().getResourceAsStream("/appinfo.properties");
|
||||
//props.load(in);
|
||||
//in.close();
|
||||
|
||||
//TotalFreedomMod.buildNumber = props.getProperty("program.buildnumber");
|
||||
//TotalFreedomMod.buildDate = props.getProperty("program.builddate");
|
||||
//TotalFreedomMod.buildCreator = props.getProperty("program.buildcreator");
|
||||
TotalFreedomMod.buildNumber = "1337";
|
||||
TotalFreedomMod.buildCreator = "You!";
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.severe("Could not load App properties!");
|
||||
Log.severe(ex);
|
||||
}
|
||||
}
|
||||
customConfig = new YamlConfiguration();
|
||||
try {
|
||||
customConfig.load(customConfigFile);
|
||||
} catch (IOException | InvalidConfigurationException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,168 +1,152 @@
|
|||
package me.StevenLawson.TotalFreedomMod.admin;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
|
||||
import me.StevenLawson.TotalFreedomMod.config.MainConfig;
|
||||
import me.StevenLawson.TotalFreedomMod.util.Utilities;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
|
||||
import java.util.*;
|
||||
public class Admin {
|
||||
|
||||
public class Admin
|
||||
{
|
||||
private final UUID uuid;
|
||||
private String lastLoginName;
|
||||
private String loginMessage;
|
||||
private final boolean isSeniorAdmin;
|
||||
private final boolean isTelnetAdmin;
|
||||
private final List<String> consoleAliases;
|
||||
private final List<String> ips;
|
||||
private Date lastLogin;
|
||||
private boolean isActivated;
|
||||
private final UUID uuid;
|
||||
private final boolean isSeniorAdmin;
|
||||
private final boolean isTelnetAdmin;
|
||||
private final List<String> consoleAliases;
|
||||
private final List<String> ips;
|
||||
private String lastLoginName;
|
||||
private String loginMessage;
|
||||
private Date lastLogin;
|
||||
private boolean isActivated;
|
||||
|
||||
public Admin(UUID uuid, String lastLoginName, Date lastLogin, String loginMessage, boolean isTelnetAdmin, boolean isSeniorAdmin, boolean isActivated)
|
||||
{
|
||||
this.uuid = uuid;
|
||||
this.lastLoginName = lastLoginName;
|
||||
this.ips = new ArrayList<String>();
|
||||
this.lastLogin = lastLogin;
|
||||
this.loginMessage = loginMessage;
|
||||
this.isTelnetAdmin = isTelnetAdmin;
|
||||
this.isSeniorAdmin = isSeniorAdmin;
|
||||
this.consoleAliases = new ArrayList<String>();
|
||||
this.isActivated = isActivated;
|
||||
}
|
||||
public Admin(UUID uuid, String lastLoginName, Date lastLogin, String loginMessage,
|
||||
boolean isTelnetAdmin, boolean isSeniorAdmin, boolean isActivated) {
|
||||
this.uuid = uuid;
|
||||
this.lastLoginName = lastLoginName;
|
||||
this.ips = new ArrayList<String>();
|
||||
this.lastLogin = lastLogin;
|
||||
this.loginMessage = loginMessage;
|
||||
this.isTelnetAdmin = isTelnetAdmin;
|
||||
this.isSeniorAdmin = isSeniorAdmin;
|
||||
this.consoleAliases = new ArrayList<String>();
|
||||
this.isActivated = isActivated;
|
||||
}
|
||||
|
||||
public Admin(UUID uuid, ConfigurationSection section)
|
||||
{
|
||||
this.uuid = uuid;
|
||||
this.lastLoginName = section.getString("last_login_name");
|
||||
this.ips = section.getStringList("ips");
|
||||
this.lastLogin = Utilities.stringToDate(section.getString("last_login", Utilities.dateToString(new Date(0L))));
|
||||
this.loginMessage = section.getString("custom_login_message", "");
|
||||
this.isSeniorAdmin = section.getBoolean("is_senior_admin", false);
|
||||
this.isTelnetAdmin = section.getBoolean("is_telnet_admin", false);
|
||||
this.consoleAliases = section.getStringList("console_aliases");
|
||||
this.isActivated = section.getBoolean("is_activated", true);
|
||||
public Admin(UUID uuid, ConfigurationSection section) {
|
||||
this.uuid = uuid;
|
||||
this.lastLoginName = section.getString("last_login_name");
|
||||
this.ips = section.getStringList("ips");
|
||||
this.lastLogin = Utilities.stringToDate(
|
||||
section.getString("last_login", Utilities.dateToString(new Date(0L))));
|
||||
this.loginMessage = section.getString("custom_login_message", "");
|
||||
this.isSeniorAdmin = section.getBoolean("is_senior_admin", false);
|
||||
this.isTelnetAdmin = section.getBoolean("is_telnet_admin", false);
|
||||
this.consoleAliases = section.getStringList("console_aliases");
|
||||
this.isActivated = section.getBoolean("is_activated", true);
|
||||
|
||||
for (Iterator<?> it = MainConfig.getList(ConfigurationEntry.NOADMIN_IPS).iterator(); it.hasNext();)
|
||||
{
|
||||
ips.remove((String) it.next());
|
||||
}
|
||||
}
|
||||
for (Iterator<?> it = MainConfig.getList(ConfigurationEntry.NOADMIN_IPS).iterator();
|
||||
it.hasNext(); ) {
|
||||
ips.remove((String) it.next());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
final StringBuilder output = new StringBuilder();
|
||||
final ArrayList<String> fuzziedIps = new ArrayList<>();
|
||||
@Override
|
||||
public String toString() {
|
||||
final StringBuilder output = new StringBuilder();
|
||||
final ArrayList<String> fuzziedIps = new ArrayList<>();
|
||||
|
||||
for (String ip : ips)
|
||||
{
|
||||
fuzziedIps.add(Utilities.getFuzzyIp(ip));
|
||||
}
|
||||
for (String ip : ips) {
|
||||
fuzziedIps.add(Utilities.getFuzzyIp(ip));
|
||||
}
|
||||
|
||||
output.append("UUID: ").append(uuid.toString()).append("\n");
|
||||
output.append("- Last Login Name: ").append(lastLoginName).append("\n");
|
||||
output.append("- IPs: ").append(StringUtils.join(fuzziedIps, ", ")).append("\n");
|
||||
output.append("- Last Login: ").append(Utilities.dateToString(lastLogin)).append("\n");
|
||||
output.append("- Custom Login Message: ").append(loginMessage).append("\n");
|
||||
output.append("- Is Senior Admin: ").append(isSeniorAdmin).append("\n");
|
||||
output.append("- Is Telnet Admin: ").append(isTelnetAdmin).append("\n");
|
||||
output.append("- Console Aliases: ").append(StringUtils.join(consoleAliases, ", ")).append("\n");
|
||||
output.append("- Is Activated: ").append(isActivated);
|
||||
output.append("UUID: ").append(uuid.toString()).append("\n");
|
||||
output.append("- Last Login Name: ").append(lastLoginName).append("\n");
|
||||
output.append("- IPs: ").append(StringUtils.join(fuzziedIps, ", ")).append("\n");
|
||||
output.append("- Last Login: ").append(Utilities.dateToString(lastLogin)).append("\n");
|
||||
output.append("- Custom Login Message: ").append(loginMessage).append("\n");
|
||||
output.append("- Is Senior Admin: ").append(isSeniorAdmin).append("\n");
|
||||
output.append("- Is Telnet Admin: ").append(isTelnetAdmin).append("\n");
|
||||
output.append("- Console Aliases: ").append(StringUtils.join(consoleAliases, ", "))
|
||||
.append("\n");
|
||||
output.append("- Is Activated: ").append(isActivated);
|
||||
|
||||
return output.toString();
|
||||
}
|
||||
return output.toString();
|
||||
}
|
||||
|
||||
public UUID getUniqueId()
|
||||
{
|
||||
return uuid;
|
||||
}
|
||||
public UUID getUniqueId() {
|
||||
return uuid;
|
||||
}
|
||||
|
||||
public void setLastLoginName(String lastLoginName)
|
||||
{
|
||||
this.lastLoginName = lastLoginName;
|
||||
}
|
||||
public String getLastLoginName() {
|
||||
return lastLoginName;
|
||||
}
|
||||
|
||||
public String getLastLoginName()
|
||||
{
|
||||
return lastLoginName;
|
||||
}
|
||||
public void setLastLoginName(String lastLoginName) {
|
||||
this.lastLoginName = lastLoginName;
|
||||
}
|
||||
|
||||
public List<String> getIps()
|
||||
{
|
||||
return Collections.unmodifiableList(ips);
|
||||
}
|
||||
public List<String> getIps() {
|
||||
return Collections.unmodifiableList(ips);
|
||||
}
|
||||
|
||||
public void addIp(String ip)
|
||||
{
|
||||
if (!ips.contains(ip))
|
||||
{
|
||||
ips.add(ip);
|
||||
}
|
||||
}
|
||||
public void addIp(String ip) {
|
||||
if (!ips.contains(ip)) {
|
||||
ips.add(ip);
|
||||
}
|
||||
}
|
||||
|
||||
public void addIps(List<String> ips)
|
||||
{
|
||||
for (String ip : ips)
|
||||
{
|
||||
addIp(ip);
|
||||
}
|
||||
}
|
||||
public void addIps(List<String> ips) {
|
||||
for (String ip : ips) {
|
||||
addIp(ip);
|
||||
}
|
||||
}
|
||||
|
||||
public void removeIp(String ip)
|
||||
{
|
||||
ips.remove(ip);
|
||||
}
|
||||
public void removeIp(String ip) {
|
||||
ips.remove(ip);
|
||||
}
|
||||
|
||||
public void clearIPs()
|
||||
{
|
||||
ips.clear();
|
||||
}
|
||||
public void clearIPs() {
|
||||
ips.clear();
|
||||
}
|
||||
|
||||
public void setCustomLoginMessage(String newLoginMessage)
|
||||
{
|
||||
this.loginMessage = newLoginMessage;
|
||||
}
|
||||
public Date getLastLogin() {
|
||||
return lastLogin;
|
||||
}
|
||||
|
||||
public Date getLastLogin()
|
||||
{
|
||||
return lastLogin;
|
||||
}
|
||||
public void setLastLogin(Date lastLogin) {
|
||||
this.lastLogin = lastLogin;
|
||||
}
|
||||
|
||||
public String getCustomLoginMessage()
|
||||
{
|
||||
return loginMessage;
|
||||
}
|
||||
|
||||
public boolean isSeniorAdmin()
|
||||
{
|
||||
return isSeniorAdmin;
|
||||
}
|
||||
public String getCustomLoginMessage() {
|
||||
return loginMessage;
|
||||
}
|
||||
|
||||
public boolean isTelnetAdmin()
|
||||
{
|
||||
return isTelnetAdmin;
|
||||
}
|
||||
public void setCustomLoginMessage(String newLoginMessage) {
|
||||
this.loginMessage = newLoginMessage;
|
||||
}
|
||||
|
||||
public List<String> getConsoleAliases()
|
||||
{
|
||||
return Collections.unmodifiableList(consoleAliases);
|
||||
}
|
||||
public boolean isSeniorAdmin() {
|
||||
return isSeniorAdmin;
|
||||
}
|
||||
|
||||
public void setLastLogin(Date lastLogin)
|
||||
{
|
||||
this.lastLogin = lastLogin;
|
||||
}
|
||||
public boolean isTelnetAdmin() {
|
||||
return isTelnetAdmin;
|
||||
}
|
||||
|
||||
public boolean isActivated()
|
||||
{
|
||||
return isActivated;
|
||||
}
|
||||
public List<String> getConsoleAliases() {
|
||||
return Collections.unmodifiableList(consoleAliases);
|
||||
}
|
||||
|
||||
public void setActivated(boolean isActivated)
|
||||
{
|
||||
this.isActivated = isActivated;
|
||||
}
|
||||
public boolean isActivated() {
|
||||
return isActivated;
|
||||
}
|
||||
|
||||
public void setActivated(boolean isActivated) {
|
||||
this.isActivated = isActivated;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,115 +1,95 @@
|
|||
package me.StevenLawson.TotalFreedomMod.announcer;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
|
||||
import me.StevenLawson.TotalFreedomMod.util.Utilities;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
public class Announcer {
|
||||
|
||||
public class Announcer
|
||||
{
|
||||
private static final List<String> ANNOUNCEMENTS = new ArrayList<String>();
|
||||
private static boolean enabled;
|
||||
private static long interval;
|
||||
private static String prefix;
|
||||
private static BukkitRunnable announcer;
|
||||
private static final List<String> ANNOUNCEMENTS = new ArrayList<String>();
|
||||
private static boolean enabled;
|
||||
private static long interval;
|
||||
private static String prefix;
|
||||
private static BukkitRunnable announcer;
|
||||
|
||||
private Announcer()
|
||||
{
|
||||
throw new AssertionError();
|
||||
}
|
||||
private Announcer() {
|
||||
throw new AssertionError();
|
||||
}
|
||||
|
||||
public static boolean isEnabled()
|
||||
{
|
||||
return enabled;
|
||||
}
|
||||
public static boolean isEnabled() {
|
||||
return enabled;
|
||||
}
|
||||
|
||||
public static List<String> getAnnouncements()
|
||||
{
|
||||
return Collections.unmodifiableList(ANNOUNCEMENTS);
|
||||
}
|
||||
public static List<String> getAnnouncements() {
|
||||
return Collections.unmodifiableList(ANNOUNCEMENTS);
|
||||
}
|
||||
|
||||
public static long getTickInterval()
|
||||
{
|
||||
return interval;
|
||||
}
|
||||
public static long getTickInterval() {
|
||||
return interval;
|
||||
}
|
||||
|
||||
public static String getPrefix()
|
||||
{
|
||||
return prefix;
|
||||
}
|
||||
public static String getPrefix() {
|
||||
return prefix;
|
||||
}
|
||||
|
||||
public static void load()
|
||||
{
|
||||
stop();
|
||||
public static void load() {
|
||||
stop();
|
||||
|
||||
ANNOUNCEMENTS.clear();
|
||||
ANNOUNCEMENTS.clear();
|
||||
|
||||
for (Object announcement : ConfigurationEntry.ANNOUNCER_ANNOUNCEMENTS.getList())
|
||||
{
|
||||
ANNOUNCEMENTS.add(Utilities.colorize((String) announcement));
|
||||
}
|
||||
for (Object announcement : ConfigurationEntry.ANNOUNCER_ANNOUNCEMENTS.getList()) {
|
||||
ANNOUNCEMENTS.add(Utilities.colorize((String) announcement));
|
||||
}
|
||||
|
||||
enabled = ConfigurationEntry.ANNOUNCER_ENABLED.getBoolean();
|
||||
interval = ConfigurationEntry.ANNOUNCER_INTERVAL.getInteger() * 20L;
|
||||
prefix = Utilities.colorize(ConfigurationEntry.ANNOUNCER_PREFIX.getString());
|
||||
enabled = ConfigurationEntry.ANNOUNCER_ENABLED.getBoolean();
|
||||
interval = ConfigurationEntry.ANNOUNCER_INTERVAL.getInteger() * 20L;
|
||||
prefix = Utilities.colorize(ConfigurationEntry.ANNOUNCER_PREFIX.getString());
|
||||
|
||||
if (enabled)
|
||||
{
|
||||
start();
|
||||
}
|
||||
}
|
||||
if (enabled) {
|
||||
start();
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isStarted()
|
||||
{
|
||||
return announcer != null;
|
||||
}
|
||||
public static boolean isStarted() {
|
||||
return announcer != null;
|
||||
}
|
||||
|
||||
public static void start()
|
||||
{
|
||||
if (isStarted())
|
||||
{
|
||||
return;
|
||||
}
|
||||
public static void start() {
|
||||
if (isStarted()) {
|
||||
return;
|
||||
}
|
||||
|
||||
announcer = new BukkitRunnable()
|
||||
{
|
||||
private int current = 0;
|
||||
announcer = new BukkitRunnable() {
|
||||
private int current = 0;
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
current++;
|
||||
@Override
|
||||
public void run() {
|
||||
current++;
|
||||
|
||||
if (current >= ANNOUNCEMENTS.size())
|
||||
{
|
||||
current = 0;
|
||||
}
|
||||
if (current >= ANNOUNCEMENTS.size()) {
|
||||
current = 0;
|
||||
}
|
||||
|
||||
Utilities.bcastMsg(prefix + ANNOUNCEMENTS.get(current), false);
|
||||
}
|
||||
};
|
||||
Utilities.bcastMsg(prefix + ANNOUNCEMENTS.get(current), false);
|
||||
}
|
||||
};
|
||||
|
||||
announcer.runTaskTimer(TotalFreedomMod.plugin, interval, interval);
|
||||
}
|
||||
announcer.runTaskTimer(TotalFreedomMod.plugin, interval, interval);
|
||||
}
|
||||
|
||||
public static void stop()
|
||||
{
|
||||
if (announcer == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
public static void stop() {
|
||||
if (announcer == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
announcer.cancel();
|
||||
}
|
||||
finally
|
||||
{
|
||||
announcer = null;
|
||||
}
|
||||
}
|
||||
try {
|
||||
announcer.cancel();
|
||||
} finally {
|
||||
announcer = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,206 +1,186 @@
|
|||
package me.StevenLawson.TotalFreedomMod.ban;
|
||||
|
||||
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
|
||||
import me.StevenLawson.TotalFreedomMod.util.Utilities;
|
||||
import org.bukkit.ChatColor;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.UUID;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
|
||||
import me.StevenLawson.TotalFreedomMod.util.Utilities;
|
||||
import org.bukkit.ChatColor;
|
||||
|
||||
public class Ban
|
||||
{
|
||||
public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z");
|
||||
public static final Pattern IP_BAN_REGEX;
|
||||
public static final Pattern UUID_BAN_REGEX;
|
||||
public class Ban {
|
||||
|
||||
static
|
||||
{
|
||||
// 192.168.1.254:LocalHost:Prozza:0:none
|
||||
// 127.0.*.*:TestUserName:BannedByNotch:123567:Test reason
|
||||
IP_BAN_REGEX = Pattern.compile(
|
||||
"^((?:(?:\\*|(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))\\.){3}(?:\\*|(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)))"
|
||||
+ ":([\\w\\s]+)"
|
||||
+ ":([\\w]+)"
|
||||
+ ":(\\d+)"
|
||||
+ ":([\\s\\S]+)$");
|
||||
// 245d2f30-61fb-4840-9cd3-298b3920f4a4:Cobrex:Prozza:0:Example reason
|
||||
UUID_BAN_REGEX = Pattern.compile(
|
||||
"^([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})"
|
||||
+ ":([\\w\\s]+)"
|
||||
+ ":([\\w]+)"
|
||||
+ ":(\\d+)"
|
||||
+ ":([\\s\\S]+)$");
|
||||
}
|
||||
private final BanType type;
|
||||
private final boolean complete;
|
||||
private String subject; // uuid or IP
|
||||
private String lastLoginName;
|
||||
private String by;
|
||||
private long expireUnix;
|
||||
private String reason;
|
||||
public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat(
|
||||
"yyyy-MM-dd 'at' HH:mm:ss z");
|
||||
public static final Pattern IP_BAN_REGEX;
|
||||
public static final Pattern UUID_BAN_REGEX;
|
||||
|
||||
public Ban(String ip, String lastLoginName)
|
||||
{
|
||||
this(ip, lastLoginName, null, null, null);
|
||||
}
|
||||
static {
|
||||
// 192.168.1.254:LocalHost:Prozza:0:none
|
||||
// 127.0.*.*:TestUserName:BannedByNotch:123567:Test reason
|
||||
IP_BAN_REGEX = Pattern.compile(
|
||||
"^((?:(?:\\*|(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))\\.){3}(?:\\*|(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)))"
|
||||
+ ":([\\w\\s]+)"
|
||||
+ ":([\\w]+)"
|
||||
+ ":(\\d+)"
|
||||
+ ":([\\s\\S]+)$");
|
||||
// 245d2f30-61fb-4840-9cd3-298b3920f4a4:Cobrex:Prozza:0:Example reason
|
||||
UUID_BAN_REGEX = Pattern.compile(
|
||||
"^([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})"
|
||||
+ ":([\\w\\s]+)"
|
||||
+ ":([\\w]+)"
|
||||
+ ":(\\d+)"
|
||||
+ ":([\\s\\S]+)$");
|
||||
}
|
||||
|
||||
public Ban(String ip, String lastLoginName, String sender, Date expire, String reason)
|
||||
{
|
||||
this(ip, lastLoginName, sender, expire, reason, BanType.IP);
|
||||
}
|
||||
private final BanType type;
|
||||
private final boolean complete;
|
||||
private String subject; // uuid or IP
|
||||
private String lastLoginName;
|
||||
private String by;
|
||||
private long expireUnix;
|
||||
private String reason;
|
||||
|
||||
public Ban(UUID uuid, String lastLoginName)
|
||||
{
|
||||
this(uuid, lastLoginName, null, null, null);
|
||||
}
|
||||
public Ban(String ip, String lastLoginName) {
|
||||
this(ip, lastLoginName, null, null, null);
|
||||
}
|
||||
|
||||
public Ban(UUID uuid, String lastLoginName, String sender, Date expire, String reason)
|
||||
{
|
||||
this(uuid.toString(), lastLoginName, sender, expire, reason, BanType.UUID);
|
||||
}
|
||||
public Ban(String ip, String lastLoginName, String sender, Date expire, String reason) {
|
||||
this(ip, lastLoginName, sender, expire, reason, BanType.IP);
|
||||
}
|
||||
|
||||
private Ban(String subject, String lastLoginName, String sender, Date expire, String reason, BanType type)
|
||||
{
|
||||
this.type = type;
|
||||
this.subject = subject;
|
||||
this.lastLoginName = (lastLoginName == null ? "none" : lastLoginName);
|
||||
this.by = (sender == null ? "none" : sender);
|
||||
this.expireUnix = (expire == null ? 0 : Utilities.getUnixTime(expire));
|
||||
this.reason = (reason == null ? "none" : reason);
|
||||
complete = true;
|
||||
}
|
||||
public Ban(UUID uuid, String lastLoginName) {
|
||||
this(uuid, lastLoginName, null, null, null);
|
||||
}
|
||||
|
||||
public Ban(String banString, BanType type)
|
||||
{
|
||||
this.type = type;
|
||||
public Ban(UUID uuid, String lastLoginName, String sender, Date expire, String reason) {
|
||||
this(uuid.toString(), lastLoginName, sender, expire, reason, BanType.UUID);
|
||||
}
|
||||
|
||||
final Matcher matcher = (type == BanType.IP ? IP_BAN_REGEX.matcher(banString) : UUID_BAN_REGEX.matcher(banString));
|
||||
private Ban(String subject, String lastLoginName, String sender, Date expire, String reason,
|
||||
BanType type) {
|
||||
this.type = type;
|
||||
this.subject = subject;
|
||||
this.lastLoginName = (lastLoginName == null ? "none" : lastLoginName);
|
||||
this.by = (sender == null ? "none" : sender);
|
||||
this.expireUnix = (expire == null ? 0 : Utilities.getUnixTime(expire));
|
||||
this.reason = (reason == null ? "none" : reason);
|
||||
complete = true;
|
||||
}
|
||||
|
||||
if (!matcher.find())
|
||||
{
|
||||
complete = false;
|
||||
return;
|
||||
}
|
||||
public Ban(String banString, BanType type) {
|
||||
this.type = type;
|
||||
|
||||
subject = matcher.group(1);
|
||||
lastLoginName = matcher.group(2);
|
||||
by = matcher.group(3);
|
||||
expireUnix = Long.valueOf(matcher.group(4));
|
||||
reason = Utilities.colorize(matcher.group(5));
|
||||
complete = true;
|
||||
}
|
||||
final Matcher matcher = (type == BanType.IP ? IP_BAN_REGEX.matcher(banString)
|
||||
: UUID_BAN_REGEX.matcher(banString));
|
||||
|
||||
public enum BanType
|
||||
{
|
||||
IP,
|
||||
UUID
|
||||
}
|
||||
if (!matcher.find()) {
|
||||
complete = false;
|
||||
return;
|
||||
}
|
||||
|
||||
public BanType getType()
|
||||
{
|
||||
return type;
|
||||
}
|
||||
subject = matcher.group(1);
|
||||
lastLoginName = matcher.group(2);
|
||||
by = matcher.group(3);
|
||||
expireUnix = Long.valueOf(matcher.group(4));
|
||||
reason = Utilities.colorize(matcher.group(5));
|
||||
complete = true;
|
||||
}
|
||||
|
||||
public String getSubject()
|
||||
{
|
||||
return subject;
|
||||
}
|
||||
public BanType getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public String getLastLoginName()
|
||||
{
|
||||
return lastLoginName;
|
||||
}
|
||||
public String getSubject() {
|
||||
return subject;
|
||||
}
|
||||
|
||||
public String getBannedBy()
|
||||
{
|
||||
return by;
|
||||
}
|
||||
public String getLastLoginName() {
|
||||
return lastLoginName;
|
||||
}
|
||||
|
||||
public long getExpireUnix()
|
||||
{
|
||||
return expireUnix;
|
||||
}
|
||||
public String getBannedBy() {
|
||||
return by;
|
||||
}
|
||||
|
||||
public String getReason()
|
||||
{
|
||||
return reason;
|
||||
}
|
||||
public long getExpireUnix() {
|
||||
return expireUnix;
|
||||
}
|
||||
|
||||
public boolean isExpired()
|
||||
{
|
||||
return expireUnix != 0 && expireUnix < Utilities.getUnixTime();
|
||||
}
|
||||
public String getReason() {
|
||||
return reason;
|
||||
}
|
||||
|
||||
public boolean isComplete()
|
||||
{
|
||||
return complete;
|
||||
}
|
||||
public boolean isExpired() {
|
||||
return expireUnix != 0 && expireUnix < Utilities.getUnixTime();
|
||||
}
|
||||
|
||||
public String getKickMessage()
|
||||
{
|
||||
final StringBuilder message = new StringBuilder("You");
|
||||
public boolean isComplete() {
|
||||
return complete;
|
||||
}
|
||||
|
||||
message.append(type == BanType.IP ? "r IP address is" : " are").append(" temporarily banned from this server.");
|
||||
message.append("\nAppeal at ").append(ChatColor.GOLD).append(ConfigurationEntry.SERVER_BAN_URL.getString());
|
||||
public String getKickMessage() {
|
||||
final StringBuilder message = new StringBuilder("You");
|
||||
|
||||
if (!reason.equals("none"))
|
||||
{
|
||||
message.append("\nReason: ").append(reason);
|
||||
}
|
||||
message.append(type == BanType.IP ? "r IP address is" : " are")
|
||||
.append(" temporarily banned from this server.");
|
||||
message.append("\nAppeal at ").append(ChatColor.GOLD)
|
||||
.append(ConfigurationEntry.SERVER_BAN_URL.getString());
|
||||
|
||||
if (getExpireUnix() != 0)
|
||||
{
|
||||
message.append("\nYour ban will be removed on ").append(DATE_FORMAT.format(Utilities.getUnixDate(expireUnix)));
|
||||
}
|
||||
if (!reason.equals("none")) {
|
||||
message.append("\nReason: ").append(reason);
|
||||
}
|
||||
|
||||
return message.toString();
|
||||
}
|
||||
if (getExpireUnix() != 0) {
|
||||
message.append("\nYour ban will be removed on ")
|
||||
.append(DATE_FORMAT.format(Utilities.getUnixDate(expireUnix)));
|
||||
}
|
||||
|
||||
// subject:lastLoginName:bannedBy:expireUnix:reason
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return subject + ":" + lastLoginName + ":" + by + ":" + expireUnix + ":" + Utilities.decolorize(reason);
|
||||
}
|
||||
return message.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object object)
|
||||
{
|
||||
if (object == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// subject:lastLoginName:bannedBy:expireUnix:reason
|
||||
@Override
|
||||
public String toString() {
|
||||
return subject + ":" + lastLoginName + ":" + by + ":" + expireUnix + ":"
|
||||
+ Utilities.decolorize(reason);
|
||||
}
|
||||
|
||||
if (!(object instanceof Ban))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@Override
|
||||
public boolean equals(Object object) {
|
||||
if (object == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final Ban ban = (Ban) object;
|
||||
if (!(object instanceof Ban)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (toString().equals(ban.toString()))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
final Ban ban = (Ban) object;
|
||||
|
||||
if (getType() != ban.getType())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (toString().equals(ban.toString())) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return getSubject().equals(ban.getSubject());
|
||||
}
|
||||
if (getType() != ban.getType()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode()
|
||||
{
|
||||
final int prime = 37;
|
||||
int result = 1;
|
||||
result = prime * result + getType().hashCode();
|
||||
result = prime * result + getSubject().hashCode();
|
||||
return result;
|
||||
}
|
||||
return getSubject().equals(ban.getSubject());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 37;
|
||||
int result = 1;
|
||||
result = prime * result + getType().hashCode();
|
||||
result = prime * result + getSubject().hashCode();
|
||||
return result;
|
||||
}
|
||||
|
||||
public enum BanType {
|
||||
IP,
|
||||
UUID
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
package me.StevenLawson.TotalFreedomMod.ban;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import me.StevenLawson.TotalFreedomMod.Log;
|
||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||
import me.StevenLawson.TotalFreedomMod.ban.Ban.BanType;
|
||||
|
@ -10,290 +15,235 @@ import me.StevenLawson.TotalFreedomMod.manager.UUIDManager.TFM_UuidResolver;
|
|||
import me.StevenLawson.TotalFreedomMod.util.Utilities;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.*;
|
||||
public class BanManager {
|
||||
|
||||
public class BanManager
|
||||
{
|
||||
private static final List<Ban> ipBans;
|
||||
private static final List<Ban> uuidBans;
|
||||
private static final List<UUID> unbannableUUIDs;
|
||||
private static final List<Ban> ipBans;
|
||||
private static final List<Ban> uuidBans;
|
||||
private static final List<UUID> unbannableUUIDs;
|
||||
|
||||
static
|
||||
{
|
||||
ipBans = new ArrayList<Ban>();
|
||||
uuidBans = new ArrayList<Ban>();
|
||||
unbannableUUIDs = new ArrayList<UUID>();
|
||||
}
|
||||
static {
|
||||
ipBans = new ArrayList<Ban>();
|
||||
uuidBans = new ArrayList<Ban>();
|
||||
unbannableUUIDs = new ArrayList<UUID>();
|
||||
}
|
||||
|
||||
private BanManager()
|
||||
{
|
||||
throw new AssertionError();
|
||||
}
|
||||
private BanManager() {
|
||||
throw new AssertionError();
|
||||
}
|
||||
|
||||
public static void load()
|
||||
{
|
||||
ipBans.clear();
|
||||
uuidBans.clear();
|
||||
unbannableUUIDs.clear();
|
||||
public static void load() {
|
||||
ipBans.clear();
|
||||
uuidBans.clear();
|
||||
unbannableUUIDs.clear();
|
||||
|
||||
final Configuration config = new Configuration(TotalFreedomMod.plugin, "bans.yml", true);
|
||||
config.load();
|
||||
final Configuration config = new Configuration(TotalFreedomMod.plugin, "bans.yml", true);
|
||||
config.load();
|
||||
|
||||
for (String banString : config.getStringList("ips"))
|
||||
{
|
||||
try
|
||||
{
|
||||
addIpBan(new Ban(banString, BanType.IP));
|
||||
}
|
||||
catch (RuntimeException ex)
|
||||
{
|
||||
Log.warning("Could not load IP ban: " + banString);
|
||||
}
|
||||
}
|
||||
for (String banString : config.getStringList("ips")) {
|
||||
try {
|
||||
addIpBan(new Ban(banString, BanType.IP));
|
||||
} catch (RuntimeException ex) {
|
||||
Log.warning("Could not load IP ban: " + banString);
|
||||
}
|
||||
}
|
||||
|
||||
for (String banString : config.getStringList("uuids"))
|
||||
{
|
||||
try
|
||||
{
|
||||
addUuidBan(new Ban(banString, BanType.UUID));
|
||||
}
|
||||
catch (RuntimeException ex)
|
||||
{
|
||||
Log.warning("Could not load UUID ban: " + banString);
|
||||
}
|
||||
}
|
||||
for (String banString : config.getStringList("uuids")) {
|
||||
try {
|
||||
addUuidBan(new Ban(banString, BanType.UUID));
|
||||
} catch (RuntimeException ex) {
|
||||
Log.warning("Could not load UUID ban: " + banString);
|
||||
}
|
||||
}
|
||||
|
||||
// Save the config
|
||||
save();
|
||||
Log.info("Loaded " + ipBans.size() + " IP bans and " + uuidBans.size() + " UUID bans");
|
||||
// Save the config
|
||||
save();
|
||||
Log.info("Loaded " + ipBans.size() + " IP bans and " + uuidBans.size() + " UUID bans");
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
final TFM_UuidResolver resolver = new TFM_UuidResolver((List<String>) ConfigurationEntry.UNBANNABLE_USERNAMES.getList());
|
||||
@SuppressWarnings("unchecked") final TFM_UuidResolver resolver = new TFM_UuidResolver(
|
||||
(List<String>) ConfigurationEntry.UNBANNABLE_USERNAMES.getList());
|
||||
|
||||
for (UUID uuid : resolver.call().values())
|
||||
{
|
||||
unbannableUUIDs.add(uuid);
|
||||
}
|
||||
for (UUID uuid : resolver.call().values()) {
|
||||
unbannableUUIDs.add(uuid);
|
||||
}
|
||||
|
||||
Log.info("Loaded " + unbannableUUIDs.size() + " unbannable UUIDs");
|
||||
}
|
||||
Log.info("Loaded " + unbannableUUIDs.size() + " unbannable UUIDs");
|
||||
}
|
||||
|
||||
public static void save()
|
||||
{
|
||||
final Configuration config = new Configuration(TotalFreedomMod.plugin, "bans.yml", true);
|
||||
config.load();
|
||||
public static void save() {
|
||||
final Configuration config = new Configuration(TotalFreedomMod.plugin, "bans.yml", true);
|
||||
config.load();
|
||||
|
||||
final List<String> newIpBans = new ArrayList<String>();
|
||||
final List<String> newUuidBans = new ArrayList<String>();
|
||||
final List<String> newIpBans = new ArrayList<String>();
|
||||
final List<String> newUuidBans = new ArrayList<String>();
|
||||
|
||||
for (Ban savedBan : ipBans)
|
||||
{
|
||||
if (!savedBan.isExpired())
|
||||
{
|
||||
newIpBans.add(savedBan.toString());
|
||||
}
|
||||
}
|
||||
for (Ban savedBan : ipBans) {
|
||||
if (!savedBan.isExpired()) {
|
||||
newIpBans.add(savedBan.toString());
|
||||
}
|
||||
}
|
||||
|
||||
for (Ban savedBan : uuidBans)
|
||||
{
|
||||
if (!savedBan.isExpired() && !unbannableUUIDs.contains(UUID.fromString(savedBan.getSubject())))
|
||||
{
|
||||
newUuidBans.add(savedBan.toString());
|
||||
}
|
||||
}
|
||||
for (Ban savedBan : uuidBans) {
|
||||
if (!savedBan.isExpired() && !unbannableUUIDs.contains(
|
||||
UUID.fromString(savedBan.getSubject()))) {
|
||||
newUuidBans.add(savedBan.toString());
|
||||
}
|
||||
}
|
||||
|
||||
config.set("ips", newIpBans);
|
||||
config.set("uuids", newUuidBans);
|
||||
config.set("ips", newIpBans);
|
||||
config.set("uuids", newUuidBans);
|
||||
|
||||
// Save config
|
||||
config.save();
|
||||
}
|
||||
// Save config
|
||||
config.save();
|
||||
}
|
||||
|
||||
public static List<Ban> getIpBanList()
|
||||
{
|
||||
return Collections.unmodifiableList(ipBans);
|
||||
}
|
||||
public static List<Ban> getIpBanList() {
|
||||
return Collections.unmodifiableList(ipBans);
|
||||
}
|
||||
|
||||
public static List<Ban> getUuidBanList()
|
||||
{
|
||||
return Collections.unmodifiableList(uuidBans);
|
||||
}
|
||||
public static List<Ban> getUuidBanList() {
|
||||
return Collections.unmodifiableList(uuidBans);
|
||||
}
|
||||
|
||||
public static Ban getByIp(String ip)
|
||||
{
|
||||
for (Ban ban : ipBans)
|
||||
{
|
||||
if (ban.isExpired())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
public static Ban getByIp(String ip) {
|
||||
for (Ban ban : ipBans) {
|
||||
if (ban.isExpired()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
wildcardCheck:
|
||||
if (ban.getSubject().contains("*"))
|
||||
{
|
||||
final String[] subjectParts = ban.getSubject().split("\\.");
|
||||
final String[] ipParts = ip.split("\\.");
|
||||
wildcardCheck:
|
||||
if (ban.getSubject().contains("*")) {
|
||||
final String[] subjectParts = ban.getSubject().split("\\.");
|
||||
final String[] ipParts = ip.split("\\.");
|
||||
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
if (!(subjectParts[i].equals("*") || subjectParts[i].equals(ipParts[i])))
|
||||
{
|
||||
break wildcardCheck;
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (!(subjectParts[i].equals("*") || subjectParts[i].equals(ipParts[i]))) {
|
||||
break wildcardCheck;
|
||||
}
|
||||
}
|
||||
|
||||
return ban;
|
||||
}
|
||||
return ban;
|
||||
}
|
||||
|
||||
if (ban.getSubject().equals(ip))
|
||||
{
|
||||
return ban;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
if (ban.getSubject().equals(ip)) {
|
||||
return ban;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static Ban getByUuid(UUID uuid)
|
||||
{
|
||||
for (Ban ban : uuidBans)
|
||||
{
|
||||
if (ban.getSubject().equalsIgnoreCase(uuid.toString()))
|
||||
{
|
||||
if (ban.isExpired())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
public static Ban getByUuid(UUID uuid) {
|
||||
for (Ban ban : uuidBans) {
|
||||
if (ban.getSubject().equalsIgnoreCase(uuid.toString())) {
|
||||
if (ban.isExpired()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
return ban;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
return ban;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void unbanIp(String ip)
|
||||
{
|
||||
final Ban ban = getByIp(ip);
|
||||
public static void unbanIp(String ip) {
|
||||
final Ban ban = getByIp(ip);
|
||||
|
||||
if (ban == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (ban == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
removeBan(ban);
|
||||
save();
|
||||
}
|
||||
removeBan(ban);
|
||||
save();
|
||||
}
|
||||
|
||||
public static void unbanUuid(UUID uuid)
|
||||
{
|
||||
final Ban ban = getByUuid(uuid);
|
||||
public static void unbanUuid(UUID uuid) {
|
||||
final Ban ban = getByUuid(uuid);
|
||||
|
||||
if (ban == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (ban == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
removeBan(ban);
|
||||
}
|
||||
removeBan(ban);
|
||||
}
|
||||
|
||||
public static boolean isIpBanned(String ip)
|
||||
{
|
||||
return getByIp(ip) != null;
|
||||
}
|
||||
public static boolean isIpBanned(String ip) {
|
||||
return getByIp(ip) != null;
|
||||
}
|
||||
|
||||
public static boolean isUuidBanned(UUID uuid)
|
||||
{
|
||||
return getByUuid(uuid) != null;
|
||||
}
|
||||
public static boolean isUuidBanned(UUID uuid) {
|
||||
return getByUuid(uuid) != null;
|
||||
}
|
||||
|
||||
public static void addUuidBan(Player player)
|
||||
{
|
||||
addUuidBan(new Ban(UUIDManager.getUniqueId(player), player.getName()));
|
||||
}
|
||||
public static void addUuidBan(Player player) {
|
||||
addUuidBan(new Ban(UUIDManager.getUniqueId(player), player.getName()));
|
||||
}
|
||||
|
||||
public static void addUuidBan(Ban ban)
|
||||
{
|
||||
if (!ban.isComplete())
|
||||
{
|
||||
throw new RuntimeException("Could not add UUID ban, Invalid format!");
|
||||
}
|
||||
public static void addUuidBan(Ban ban) {
|
||||
if (!ban.isComplete()) {
|
||||
throw new RuntimeException("Could not add UUID ban, Invalid format!");
|
||||
}
|
||||
|
||||
if (ban.isExpired())
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (ban.isExpired()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (uuidBans.contains(ban))
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (uuidBans.contains(ban)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (unbannableUUIDs.contains(UUID.fromString(ban.getSubject())))
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (unbannableUUIDs.contains(UUID.fromString(ban.getSubject()))) {
|
||||
return;
|
||||
}
|
||||
|
||||
uuidBans.add(ban);
|
||||
save();
|
||||
}
|
||||
uuidBans.add(ban);
|
||||
save();
|
||||
}
|
||||
|
||||
public static void addIpBan(Player player)
|
||||
{
|
||||
addIpBan(new Ban(Utilities.getIp(player), player.getName()));
|
||||
}
|
||||
public static void addIpBan(Player player) {
|
||||
addIpBan(new Ban(Utilities.getIp(player), player.getName()));
|
||||
}
|
||||
|
||||
public static void addIpBan(Ban ban)
|
||||
{
|
||||
if (!ban.isComplete())
|
||||
{
|
||||
throw new RuntimeException("Could not add IP ban, Invalid format!");
|
||||
}
|
||||
public static void addIpBan(Ban ban) {
|
||||
if (!ban.isComplete()) {
|
||||
throw new RuntimeException("Could not add IP ban, Invalid format!");
|
||||
}
|
||||
|
||||
if (ban.isExpired())
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (ban.isExpired()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (ipBans.contains(ban))
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (ipBans.contains(ban)) {
|
||||
return;
|
||||
}
|
||||
|
||||
ipBans.add(ban);
|
||||
save();
|
||||
}
|
||||
ipBans.add(ban);
|
||||
save();
|
||||
}
|
||||
|
||||
public static void removeBan(Ban ban)
|
||||
{
|
||||
final Iterator<Ban> ips = ipBans.iterator();
|
||||
while (ips.hasNext())
|
||||
{
|
||||
if (ips.next().getSubject().equalsIgnoreCase(ban.getSubject()))
|
||||
{
|
||||
ips.remove();
|
||||
}
|
||||
}
|
||||
public static void removeBan(Ban ban) {
|
||||
final Iterator<Ban> ips = ipBans.iterator();
|
||||
while (ips.hasNext()) {
|
||||
if (ips.next().getSubject().equalsIgnoreCase(ban.getSubject())) {
|
||||
ips.remove();
|
||||
}
|
||||
}
|
||||
|
||||
final Iterator<Ban> uuids = uuidBans.iterator();
|
||||
while (uuids.hasNext())
|
||||
{
|
||||
if (uuids.next().getSubject().equalsIgnoreCase(ban.getSubject()))
|
||||
{
|
||||
uuids.remove();
|
||||
}
|
||||
}
|
||||
final Iterator<Ban> uuids = uuidBans.iterator();
|
||||
while (uuids.hasNext()) {
|
||||
if (uuids.next().getSubject().equalsIgnoreCase(ban.getSubject())) {
|
||||
uuids.remove();
|
||||
}
|
||||
}
|
||||
|
||||
save();
|
||||
}
|
||||
save();
|
||||
}
|
||||
|
||||
public static void purgeIpBans()
|
||||
{
|
||||
ipBans.clear();
|
||||
save();
|
||||
}
|
||||
public static void purgeIpBans() {
|
||||
ipBans.clear();
|
||||
save();
|
||||
}
|
||||
|
||||
public static void purgeUuidBans()
|
||||
{
|
||||
uuidBans.clear();
|
||||
save();
|
||||
}
|
||||
public static void purgeUuidBans() {
|
||||
uuidBans.clear();
|
||||
save();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,63 +1,55 @@
|
|||
package me.StevenLawson.TotalFreedomMod.ban;
|
||||
|
||||
import me.StevenLawson.TotalFreedomMod.Log;
|
||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||
import me.StevenLawson.TotalFreedomMod.config.Configuration;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import me.StevenLawson.TotalFreedomMod.Log;
|
||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||
import me.StevenLawson.TotalFreedomMod.config.Configuration;
|
||||
|
||||
public class PermbanList
|
||||
{
|
||||
public class PermbanList {
|
||||
|
||||
private static final List<String> PERMBANNED_PLAYERS;
|
||||
private static final List<String> PERMBANNED_IPS;
|
||||
private static final List<String> PERMBANNED_PLAYERS;
|
||||
private static final List<String> PERMBANNED_IPS;
|
||||
|
||||
static
|
||||
{
|
||||
PERMBANNED_PLAYERS = new ArrayList<String>();
|
||||
PERMBANNED_IPS = new ArrayList<String>();
|
||||
}
|
||||
static {
|
||||
PERMBANNED_PLAYERS = new ArrayList<String>();
|
||||
PERMBANNED_IPS = new ArrayList<String>();
|
||||
}
|
||||
|
||||
private PermbanList()
|
||||
{
|
||||
throw new AssertionError();
|
||||
}
|
||||
private PermbanList() {
|
||||
throw new AssertionError();
|
||||
}
|
||||
|
||||
public static List<String> getPermbannedPlayers()
|
||||
{
|
||||
return Collections.unmodifiableList(PERMBANNED_PLAYERS);
|
||||
}
|
||||
public static List<String> getPermbannedPlayers() {
|
||||
return Collections.unmodifiableList(PERMBANNED_PLAYERS);
|
||||
}
|
||||
|
||||
public static List<String> getPermbannedIps()
|
||||
{
|
||||
return Collections.unmodifiableList(PERMBANNED_IPS);
|
||||
}
|
||||
public static List<String> getPermbannedIps() {
|
||||
return Collections.unmodifiableList(PERMBANNED_IPS);
|
||||
}
|
||||
|
||||
public static void load()
|
||||
{
|
||||
PERMBANNED_PLAYERS.clear();
|
||||
PERMBANNED_IPS.clear();
|
||||
public static void load() {
|
||||
PERMBANNED_PLAYERS.clear();
|
||||
PERMBANNED_IPS.clear();
|
||||
|
||||
final Configuration config = new Configuration(TotalFreedomMod.plugin, TotalFreedomMod.PERMBAN_FILENAME, true);
|
||||
config.load();
|
||||
final Configuration config = new Configuration(TotalFreedomMod.plugin,
|
||||
TotalFreedomMod.PERMBAN_FILENAME, true);
|
||||
config.load();
|
||||
|
||||
for (String playername : config.getKeys(false))
|
||||
{
|
||||
PERMBANNED_PLAYERS.add(playername.toLowerCase().trim());
|
||||
for (String playername : config.getKeys(false)) {
|
||||
PERMBANNED_PLAYERS.add(playername.toLowerCase().trim());
|
||||
|
||||
List<String> playerIps = config.getStringList(playername);
|
||||
for (String ip : playerIps)
|
||||
{
|
||||
ip = ip.trim();
|
||||
if (!PERMBANNED_IPS.contains(ip))
|
||||
{
|
||||
PERMBANNED_IPS.add(ip);
|
||||
}
|
||||
}
|
||||
}
|
||||
List<String> playerIps = config.getStringList(playername);
|
||||
for (String ip : playerIps) {
|
||||
ip = ip.trim();
|
||||
if (!PERMBANNED_IPS.contains(ip)) {
|
||||
PERMBANNED_IPS.add(ip);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Log.info("Loaded " + PERMBANNED_PLAYERS.size() + " permanently banned players and " + PERMBANNED_IPS.size() + " permanently banned IPs.");
|
||||
}
|
||||
Log.info("Loaded " + PERMBANNED_PLAYERS.size() + " permanently banned players and "
|
||||
+ PERMBANNED_IPS.size() + " permanently banned IPs.");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,116 +8,87 @@ import org.bukkit.Bukkit;
|
|||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
public class EssentialsBridge {
|
||||
private static Essentials essentialsPlugin = null;
|
||||
|
||||
private EssentialsBridge() {
|
||||
throw new AssertionError();
|
||||
}
|
||||
private static Essentials essentialsPlugin = null;
|
||||
|
||||
public static Essentials getEssentialsPlugin() {
|
||||
if (essentialsPlugin == null)
|
||||
{
|
||||
try
|
||||
{
|
||||
final Plugin essentials = Bukkit.getServer().getPluginManager().getPlugin("Essentials");
|
||||
if (essentials != null)
|
||||
{
|
||||
if (essentials instanceof Essentials)
|
||||
{
|
||||
essentialsPlugin = (Essentials) essentials;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.severe(ex);
|
||||
}
|
||||
}
|
||||
return essentialsPlugin;
|
||||
}
|
||||
private EssentialsBridge() {
|
||||
throw new AssertionError();
|
||||
}
|
||||
|
||||
public static User getEssentialsUser(String username)
|
||||
{
|
||||
try
|
||||
{
|
||||
final Essentials essentials = getEssentialsPlugin();
|
||||
if (essentials != null)
|
||||
{
|
||||
return essentials.getUserMap().getUser(username);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.severe(ex);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
public static Essentials getEssentialsPlugin() {
|
||||
if (essentialsPlugin == null) {
|
||||
try {
|
||||
final Plugin essentials = Bukkit.getServer().getPluginManager()
|
||||
.getPlugin("Essentials");
|
||||
if (essentials != null) {
|
||||
if (essentials instanceof Essentials) {
|
||||
essentialsPlugin = (Essentials) essentials;
|
||||
}
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
Log.severe(ex);
|
||||
}
|
||||
}
|
||||
return essentialsPlugin;
|
||||
}
|
||||
|
||||
public static void setNickname(String username, String nickname)
|
||||
{
|
||||
try
|
||||
{
|
||||
final User user = getEssentialsUser(username);
|
||||
if (user != null)
|
||||
{
|
||||
user.setNickname(nickname);
|
||||
user.setDisplayNick();
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.severe(ex);
|
||||
}
|
||||
}
|
||||
public static User getEssentialsUser(String username) {
|
||||
try {
|
||||
final Essentials essentials = getEssentialsPlugin();
|
||||
if (essentials != null) {
|
||||
return essentials.getUserMap().getUser(username);
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
Log.severe(ex);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String getNickname(String username)
|
||||
{
|
||||
try
|
||||
{
|
||||
final User user = getEssentialsUser(username);
|
||||
if (user != null)
|
||||
{
|
||||
return user.getNickname();
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.severe(ex);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
public static void setNickname(String username, String nickname) {
|
||||
try {
|
||||
final User user = getEssentialsUser(username);
|
||||
if (user != null) {
|
||||
user.setNickname(nickname);
|
||||
user.setDisplayNick();
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
Log.severe(ex);
|
||||
}
|
||||
}
|
||||
|
||||
public static long getLastActivity(String username)
|
||||
{
|
||||
try
|
||||
{
|
||||
final User user = getEssentialsUser(username);
|
||||
if (user != null)
|
||||
{
|
||||
return Utilities.<Long>getField(user, "lastActivity"); // This is weird
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.severe(ex);
|
||||
}
|
||||
return 0L;
|
||||
}
|
||||
public static String getNickname(String username) {
|
||||
try {
|
||||
final User user = getEssentialsUser(username);
|
||||
if (user != null) {
|
||||
return user.getNickname();
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
Log.severe(ex);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static boolean isEssentialsEnabled()
|
||||
{
|
||||
try
|
||||
{
|
||||
final Essentials essentials = getEssentialsPlugin();
|
||||
if (essentials != null)
|
||||
{
|
||||
return essentials.isEnabled();
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.severe(ex);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public static long getLastActivity(String username) {
|
||||
try {
|
||||
final User user = getEssentialsUser(username);
|
||||
if (user != null) {
|
||||
return Utilities.<Long>getField(user, "lastActivity"); // This is weird
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
Log.severe(ex);
|
||||
}
|
||||
return 0L;
|
||||
}
|
||||
|
||||
public static boolean isEssentialsEnabled() {
|
||||
try {
|
||||
final Essentials essentials = getEssentialsPlugin();
|
||||
if (essentials != null) {
|
||||
return essentials.isEnabled();
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
Log.severe(ex);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,104 +9,77 @@ import org.bukkit.entity.Player;
|
|||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
public class WorldEditBridge {
|
||||
private static WorldEditPlugin worldEditPlugin = null;
|
||||
|
||||
private WorldEditBridge() {
|
||||
throw new AssertionError();
|
||||
}
|
||||
private static WorldEditPlugin worldEditPlugin = null;
|
||||
|
||||
private static WorldEditPlugin getWorldEditPlugin() {
|
||||
if (worldEditPlugin == null)
|
||||
{
|
||||
try
|
||||
{
|
||||
Plugin we = Bukkit.getServer().getPluginManager().getPlugin("WorldEdit");
|
||||
if (we != null)
|
||||
{
|
||||
if (we instanceof WorldEditPlugin)
|
||||
{
|
||||
worldEditPlugin = (WorldEditPlugin) we;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.severe(ex);
|
||||
}
|
||||
}
|
||||
return worldEditPlugin;
|
||||
}
|
||||
private WorldEditBridge() {
|
||||
throw new AssertionError();
|
||||
}
|
||||
|
||||
private static LocalSession getPlayerSession(Player player)
|
||||
{
|
||||
try
|
||||
{
|
||||
final WorldEditPlugin wep = getWorldEditPlugin();
|
||||
if (wep != null)
|
||||
{
|
||||
return wep.getSession(player);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.severe(ex);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
private static WorldEditPlugin getWorldEditPlugin() {
|
||||
if (worldEditPlugin == null) {
|
||||
try {
|
||||
Plugin we = Bukkit.getServer().getPluginManager().getPlugin("WorldEdit");
|
||||
if (we != null) {
|
||||
if (we instanceof WorldEditPlugin) {
|
||||
worldEditPlugin = (WorldEditPlugin) we;
|
||||
}
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
Log.severe(ex);
|
||||
}
|
||||
}
|
||||
return worldEditPlugin;
|
||||
}
|
||||
|
||||
private static BukkitPlayer getBukkitPlayer(Player player)
|
||||
{
|
||||
try
|
||||
{
|
||||
final WorldEditPlugin wep = getWorldEditPlugin();
|
||||
if (wep != null)
|
||||
{
|
||||
return wep.wrapPlayer(player);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.severe(ex);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
private static LocalSession getPlayerSession(Player player) {
|
||||
try {
|
||||
final WorldEditPlugin wep = getWorldEditPlugin();
|
||||
if (wep != null) {
|
||||
return wep.getSession(player);
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
Log.severe(ex);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void undo(Player player, int count)
|
||||
{
|
||||
try
|
||||
{
|
||||
LocalSession session = getPlayerSession(player);
|
||||
if (session != null)
|
||||
{
|
||||
final BukkitPlayer bukkitPlayer = getBukkitPlayer(player);
|
||||
if (bukkitPlayer != null)
|
||||
{
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
session.undo(session.getBlockBag(bukkitPlayer), bukkitPlayer);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.severe(ex);
|
||||
}
|
||||
}
|
||||
private static BukkitPlayer getBukkitPlayer(Player player) {
|
||||
try {
|
||||
final WorldEditPlugin wep = getWorldEditPlugin();
|
||||
if (wep != null) {
|
||||
return wep.wrapPlayer(player);
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
Log.severe(ex);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void setLimit(Player player, int limit)
|
||||
{
|
||||
try
|
||||
{
|
||||
final LocalSession session = getPlayerSession(player);
|
||||
if (session != null)
|
||||
{
|
||||
session.setBlockChangeLimit(limit);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.severe(ex);
|
||||
}
|
||||
}
|
||||
public static void undo(Player player, int count) {
|
||||
try {
|
||||
LocalSession session = getPlayerSession(player);
|
||||
if (session != null) {
|
||||
final BukkitPlayer bukkitPlayer = getBukkitPlayer(player);
|
||||
if (bukkitPlayer != null) {
|
||||
for (int i = 0; i < count; i++) {
|
||||
session.undo(session.getBlockBag(bukkitPlayer), bukkitPlayer);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
Log.severe(ex);
|
||||
}
|
||||
}
|
||||
|
||||
public static void setLimit(Player player, int limit) {
|
||||
try {
|
||||
final LocalSession session = getPlayerSession(player);
|
||||
if (session != null) {
|
||||
session.setBlockChangeLimit(limit);
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
Log.severe(ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
package me.StevenLawson.TotalFreedomMod.command;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import me.StevenLawson.TotalFreedomMod.Log;
|
||||
import me.StevenLawson.TotalFreedomMod.admin.AdminList;
|
||||
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
|
||||
|
@ -12,311 +15,263 @@ import org.bukkit.command.CommandMap;
|
|||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
public class CommandBlocker {
|
||||
|
||||
public class CommandBlocker
|
||||
{
|
||||
private static final Map<String, CommandBlockerEntry> BLOCKED_COMMANDS;
|
||||
private static final Map<String, CommandBlockerEntry> BLOCKED_COMMANDS;
|
||||
|
||||
static
|
||||
{
|
||||
BLOCKED_COMMANDS = new HashMap<String, CommandBlockerEntry>();
|
||||
}
|
||||
static {
|
||||
BLOCKED_COMMANDS = new HashMap<String, CommandBlockerEntry>();
|
||||
}
|
||||
|
||||
private CommandBlocker()
|
||||
{
|
||||
throw new AssertionError();
|
||||
}
|
||||
private CommandBlocker() {
|
||||
throw new AssertionError();
|
||||
}
|
||||
|
||||
public static void load()
|
||||
{
|
||||
BLOCKED_COMMANDS.clear();
|
||||
public static void load() {
|
||||
BLOCKED_COMMANDS.clear();
|
||||
|
||||
final CommandMap commandMap = Utilities.getField(Bukkit.getServer().getPluginManager(), "commandMap");
|
||||
if (commandMap == null)
|
||||
{
|
||||
Log.severe("Error loading commandMap.");
|
||||
return;
|
||||
}
|
||||
final CommandMap commandMap = Utilities.getField(Bukkit.getServer().getPluginManager(),
|
||||
"commandMap");
|
||||
if (commandMap == null) {
|
||||
Log.severe("Error loading commandMap.");
|
||||
return;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
List<String> blockedCommands = (List<String>) ConfigurationEntry.BLOCKED_COMMANDS.getList();
|
||||
for (String rawEntry : blockedCommands)
|
||||
{
|
||||
final String[] parts = rawEntry.split(":");
|
||||
if (parts.length < 3 || parts.length > 4)
|
||||
{
|
||||
Log.warning("Invalid command blocker entry: " + rawEntry);
|
||||
continue;
|
||||
}
|
||||
@SuppressWarnings("unchecked")
|
||||
List<String> blockedCommands = (List<String>) ConfigurationEntry.BLOCKED_COMMANDS.getList();
|
||||
for (String rawEntry : blockedCommands) {
|
||||
final String[] parts = rawEntry.split(":");
|
||||
if (parts.length < 3 || parts.length > 4) {
|
||||
Log.warning("Invalid command blocker entry: " + rawEntry);
|
||||
continue;
|
||||
}
|
||||
|
||||
final CommandBlockerRank rank = CommandBlockerRank.fromToken(parts[0]);
|
||||
final CommandBlockerAction action = CommandBlockerAction.fromToken(parts[1]);
|
||||
String commandName = parts[2].toLowerCase().substring(1);
|
||||
final String message = (parts.length > 3 ? parts[3] : null);
|
||||
final CommandBlockerRank rank = CommandBlockerRank.fromToken(parts[0]);
|
||||
final CommandBlockerAction action = CommandBlockerAction.fromToken(parts[1]);
|
||||
String commandName = parts[2].toLowerCase().substring(1);
|
||||
final String message = (parts.length > 3 ? parts[3] : null);
|
||||
|
||||
if (rank == null || action == null || commandName == null || commandName.isEmpty())
|
||||
{
|
||||
Log.warning("Invalid command blocker entry: " + rawEntry);
|
||||
continue;
|
||||
}
|
||||
if (rank == null || action == null || commandName == null || commandName.isEmpty()) {
|
||||
Log.warning("Invalid command blocker entry: " + rawEntry);
|
||||
continue;
|
||||
}
|
||||
|
||||
final String[] commandParts = commandName.split(" ");
|
||||
String subCommand = null;
|
||||
if (commandParts.length > 1)
|
||||
{
|
||||
commandName = commandParts[0];
|
||||
subCommand = StringUtils.join(commandParts, " ", 1, commandParts.length).trim().toLowerCase();
|
||||
}
|
||||
final String[] commandParts = commandName.split(" ");
|
||||
String subCommand = null;
|
||||
if (commandParts.length > 1) {
|
||||
commandName = commandParts[0];
|
||||
subCommand = StringUtils.join(commandParts, " ", 1, commandParts.length).trim()
|
||||
.toLowerCase();
|
||||
}
|
||||
|
||||
final Command command = commandMap.getCommand(commandName);
|
||||
final Command command = commandMap.getCommand(commandName);
|
||||
|
||||
// Obtain command from alias
|
||||
if (command == null)
|
||||
{
|
||||
Log.info("Blocking unknown command: /" + commandName);
|
||||
}
|
||||
else
|
||||
{
|
||||
commandName = command.getName().toLowerCase();
|
||||
}
|
||||
// Obtain command from alias
|
||||
if (command == null) {
|
||||
Log.info("Blocking unknown command: /" + commandName);
|
||||
} else {
|
||||
commandName = command.getName().toLowerCase();
|
||||
}
|
||||
|
||||
if (BLOCKED_COMMANDS.containsKey(commandName))
|
||||
{
|
||||
Log.warning("Not blocking: /" + commandName + " - Duplicate entry exists!");
|
||||
continue;
|
||||
}
|
||||
if (BLOCKED_COMMANDS.containsKey(commandName)) {
|
||||
Log.warning("Not blocking: /" + commandName + " - Duplicate entry exists!");
|
||||
continue;
|
||||
}
|
||||
|
||||
final CommandBlockerEntry blockedCommandEntry = new CommandBlockerEntry(rank, action, commandName, subCommand, message);
|
||||
BLOCKED_COMMANDS.put(blockedCommandEntry.getCommand(), blockedCommandEntry);
|
||||
final CommandBlockerEntry blockedCommandEntry = new CommandBlockerEntry(rank, action,
|
||||
commandName, subCommand, message);
|
||||
BLOCKED_COMMANDS.put(blockedCommandEntry.getCommand(), blockedCommandEntry);
|
||||
|
||||
if (command != null)
|
||||
{
|
||||
for (String alias : command.getAliases())
|
||||
{
|
||||
BLOCKED_COMMANDS.put(alias.toLowerCase(), blockedCommandEntry);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (command != null) {
|
||||
for (String alias : command.getAliases()) {
|
||||
BLOCKED_COMMANDS.put(alias.toLowerCase(), blockedCommandEntry);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Log.info("Loaded " + BLOCKED_COMMANDS.size() + " blocked commands");
|
||||
}
|
||||
Log.info("Loaded " + BLOCKED_COMMANDS.size() + " blocked commands");
|
||||
}
|
||||
|
||||
public static boolean isCommandBlocked(String command, CommandSender sender)
|
||||
{
|
||||
return isCommandBlocked(command, sender, false);
|
||||
}
|
||||
public static boolean isCommandBlocked(String command, CommandSender sender) {
|
||||
return isCommandBlocked(command, sender, false);
|
||||
}
|
||||
|
||||
public static boolean isCommandBlocked(String command, CommandSender sender, boolean doAction)
|
||||
{
|
||||
if (command == null || command.isEmpty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
public static boolean isCommandBlocked(String command, CommandSender sender, boolean doAction) {
|
||||
if (command == null || command.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
command = command.toLowerCase().trim();
|
||||
command = command.toLowerCase().trim();
|
||||
|
||||
if (command.split(" ")[0].contains(":"))
|
||||
{
|
||||
Utilities.playerMsg(sender, "Plugin-specific commands are disabled.");
|
||||
return true;
|
||||
}
|
||||
if (command.split(" ")[0].contains(":")) {
|
||||
Utilities.playerMsg(sender, "Plugin-specific commands are disabled.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (command.startsWith("/"))
|
||||
{
|
||||
command = command.substring(1);
|
||||
}
|
||||
if (command.startsWith("/")) {
|
||||
command = command.substring(1);
|
||||
}
|
||||
|
||||
final String[] commandParts = command.split(" ");
|
||||
String subCommand = null;
|
||||
if (commandParts.length > 1)
|
||||
{
|
||||
subCommand = StringUtils.join(commandParts, " ", 1, commandParts.length).toLowerCase();
|
||||
}
|
||||
final String[] commandParts = command.split(" ");
|
||||
String subCommand = null;
|
||||
if (commandParts.length > 1) {
|
||||
subCommand = StringUtils.join(commandParts, " ", 1, commandParts.length).toLowerCase();
|
||||
}
|
||||
|
||||
final CommandBlockerEntry entry = BLOCKED_COMMANDS.get(commandParts[0]);
|
||||
final CommandBlockerEntry entry = BLOCKED_COMMANDS.get(commandParts[0]);
|
||||
|
||||
if (entry == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (entry == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (entry.getSubCommand() != null)
|
||||
{
|
||||
if (subCommand == null || !subCommand.startsWith(entry.getSubCommand()))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (entry.getSubCommand() != null) {
|
||||
if (subCommand == null || !subCommand.startsWith(entry.getSubCommand())) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (entry.getRank().hasPermission(sender))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (entry.getRank().hasPermission(sender)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (doAction)
|
||||
{
|
||||
entry.doActions(sender);
|
||||
}
|
||||
if (doAction) {
|
||||
entry.doActions(sender);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public enum CommandBlockerRank
|
||||
{
|
||||
ANYONE("a", 0),
|
||||
OP("o", 1),
|
||||
SUPER("s", 2),
|
||||
TELNET("t", 3),
|
||||
SENIOR("c", 4),
|
||||
NOBODY("n", 5);
|
||||
//
|
||||
private final String token;
|
||||
private final int level;
|
||||
public enum CommandBlockerRank {
|
||||
ANYONE("a", 0),
|
||||
OP("o", 1),
|
||||
SUPER("s", 2),
|
||||
TELNET("t", 3),
|
||||
SENIOR("c", 4),
|
||||
NOBODY("n", 5);
|
||||
//
|
||||
private final String token;
|
||||
private final int level;
|
||||
|
||||
CommandBlockerRank(String token, int level)
|
||||
{
|
||||
this.token = token;
|
||||
this.level = level;
|
||||
}
|
||||
CommandBlockerRank(String token, int level) {
|
||||
this.token = token;
|
||||
this.level = level;
|
||||
}
|
||||
|
||||
public String getToken()
|
||||
{
|
||||
return this.token;
|
||||
}
|
||||
public static CommandBlockerRank fromSender(CommandSender sender) {
|
||||
if (!(sender instanceof Player)) {
|
||||
return TELNET;
|
||||
}
|
||||
|
||||
public boolean hasPermission(CommandSender sender)
|
||||
{
|
||||
return fromSender(sender).level >= this.level;
|
||||
}
|
||||
if (AdminList.isSuperAdmin(sender)) {
|
||||
if (AdminList.isSeniorAdmin(sender)) {
|
||||
return SENIOR;
|
||||
}
|
||||
return SUPER;
|
||||
}
|
||||
|
||||
public static CommandBlockerRank fromSender(CommandSender sender)
|
||||
{
|
||||
if (!(sender instanceof Player))
|
||||
{
|
||||
return TELNET;
|
||||
}
|
||||
if (sender.isOp()) {
|
||||
return OP;
|
||||
}
|
||||
|
||||
if (AdminList.isSuperAdmin(sender))
|
||||
{
|
||||
if (AdminList.isSeniorAdmin(sender))
|
||||
{
|
||||
return SENIOR;
|
||||
}
|
||||
return SUPER;
|
||||
}
|
||||
return ANYONE;
|
||||
|
||||
if (sender.isOp())
|
||||
{
|
||||
return OP;
|
||||
}
|
||||
}
|
||||
|
||||
return ANYONE;
|
||||
public static CommandBlockerRank fromToken(String token) {
|
||||
for (CommandBlockerRank rank : CommandBlockerRank.values()) {
|
||||
if (rank.getToken().equalsIgnoreCase(token)) {
|
||||
return rank;
|
||||
}
|
||||
}
|
||||
return ANYONE;
|
||||
}
|
||||
|
||||
}
|
||||
public String getToken() {
|
||||
return this.token;
|
||||
}
|
||||
|
||||
public static CommandBlockerRank fromToken(String token)
|
||||
{
|
||||
for (CommandBlockerRank rank : CommandBlockerRank.values())
|
||||
{
|
||||
if (rank.getToken().equalsIgnoreCase(token))
|
||||
{
|
||||
return rank;
|
||||
}
|
||||
}
|
||||
return ANYONE;
|
||||
}
|
||||
}
|
||||
public boolean hasPermission(CommandSender sender) {
|
||||
return fromSender(sender).level >= this.level;
|
||||
}
|
||||
}
|
||||
|
||||
public enum CommandBlockerAction
|
||||
{
|
||||
BLOCK("b"),
|
||||
BLOCK_AND_EJECT("a"),
|
||||
BLOCK_UNKNOWN("u");
|
||||
private final String token;
|
||||
public enum CommandBlockerAction {
|
||||
BLOCK("b"),
|
||||
BLOCK_AND_EJECT("a"),
|
||||
BLOCK_UNKNOWN("u");
|
||||
private final String token;
|
||||
|
||||
CommandBlockerAction(String token)
|
||||
{
|
||||
this.token = token;
|
||||
}
|
||||
CommandBlockerAction(String token) {
|
||||
this.token = token;
|
||||
}
|
||||
|
||||
public String getToken()
|
||||
{
|
||||
return this.token;
|
||||
}
|
||||
public static CommandBlockerAction fromToken(String token) {
|
||||
for (CommandBlockerAction action : CommandBlockerAction.values()) {
|
||||
if (action.getToken().equalsIgnoreCase(token)) {
|
||||
return action;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static CommandBlockerAction fromToken(String token)
|
||||
{
|
||||
for (CommandBlockerAction action : CommandBlockerAction.values())
|
||||
{
|
||||
if (action.getToken().equalsIgnoreCase(token))
|
||||
{
|
||||
return action;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
public String getToken() {
|
||||
return this.token;
|
||||
}
|
||||
}
|
||||
|
||||
public static class CommandBlockerEntry
|
||||
{
|
||||
private final CommandBlockerRank rank;
|
||||
private final CommandBlockerAction action;
|
||||
private final String command;
|
||||
private final String subCommand;
|
||||
private final String message;
|
||||
public static class CommandBlockerEntry {
|
||||
|
||||
private CommandBlockerEntry(CommandBlockerRank rank, CommandBlockerAction action, String command, String message)
|
||||
{
|
||||
this(rank, action, command, null, message);
|
||||
}
|
||||
private final CommandBlockerRank rank;
|
||||
private final CommandBlockerAction action;
|
||||
private final String command;
|
||||
private final String subCommand;
|
||||
private final String message;
|
||||
|
||||
private CommandBlockerEntry(CommandBlockerRank rank, CommandBlockerAction action, String command, String subCommand, String message)
|
||||
{
|
||||
this.rank = rank;
|
||||
this.action = action;
|
||||
this.command = command;
|
||||
this.subCommand = (subCommand == null ? null : subCommand.toLowerCase().trim());
|
||||
this.message = (message == null || message.equals("_") ? "That command is blocked." : message);
|
||||
}
|
||||
private CommandBlockerEntry(CommandBlockerRank rank, CommandBlockerAction action,
|
||||
String command, String message) {
|
||||
this(rank, action, command, null, message);
|
||||
}
|
||||
|
||||
public CommandBlockerAction getAction()
|
||||
{
|
||||
return this.action;
|
||||
}
|
||||
private CommandBlockerEntry(CommandBlockerRank rank, CommandBlockerAction action,
|
||||
String command, String subCommand, String message) {
|
||||
this.rank = rank;
|
||||
this.action = action;
|
||||
this.command = command;
|
||||
this.subCommand = (subCommand == null ? null : subCommand.toLowerCase().trim());
|
||||
this.message = (message == null || message.equals("_") ? "That command is blocked."
|
||||
: message);
|
||||
}
|
||||
|
||||
public String getCommand()
|
||||
{
|
||||
return this.command;
|
||||
}
|
||||
public CommandBlockerAction getAction() {
|
||||
return this.action;
|
||||
}
|
||||
|
||||
public String getSubCommand()
|
||||
{
|
||||
return this.subCommand;
|
||||
}
|
||||
public String getCommand() {
|
||||
return this.command;
|
||||
}
|
||||
|
||||
public String getMessage()
|
||||
{
|
||||
return this.message;
|
||||
}
|
||||
public String getSubCommand() {
|
||||
return this.subCommand;
|
||||
}
|
||||
|
||||
public CommandBlockerRank getRank()
|
||||
{
|
||||
return this.rank;
|
||||
}
|
||||
public String getMessage() {
|
||||
return this.message;
|
||||
}
|
||||
|
||||
private void doActions(CommandSender sender)
|
||||
{
|
||||
if (action == CommandBlockerAction.BLOCK_AND_EJECT && sender instanceof Player)
|
||||
{
|
||||
Utilities.autoEject((Player) sender, "You used a prohibited command: " + command);
|
||||
Utilities.bcastMsg(sender.getName() + " was automatically kicked for using harmful commands.", ChatColor.RED);
|
||||
return;
|
||||
}
|
||||
public CommandBlockerRank getRank() {
|
||||
return this.rank;
|
||||
}
|
||||
|
||||
Utilities.playerMsg(sender, Utilities.colorize(message));
|
||||
}
|
||||
}
|
||||
private void doActions(CommandSender sender) {
|
||||
if (action == CommandBlockerAction.BLOCK_AND_EJECT && sender instanceof Player) {
|
||||
Utilities.autoEject((Player) sender, "You used a prohibited command: " + command);
|
||||
Utilities.bcastMsg(
|
||||
sender.getName() + " was automatically kicked for using harmful commands.",
|
||||
ChatColor.RED);
|
||||
return;
|
||||
}
|
||||
|
||||
Utilities.playerMsg(sender, Utilities.colorize(message));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
public enum AdminLevel {
|
||||
ALL("All Player Commands"), OP("OP Commands"), SUPER("SuperAdmin Commands"), SENIOR("Senior Admin Commands");
|
||||
//
|
||||
private final String friendlyName;
|
||||
ALL("All Player Commands"), OP("OP Commands"), SUPER("SuperAdmin Commands"), SENIOR(
|
||||
"Senior Admin Commands");
|
||||
//
|
||||
private final String friendlyName;
|
||||
|
||||
AdminLevel(String friendlyName) {
|
||||
this.friendlyName = friendlyName;
|
||||
}
|
||||
AdminLevel(String friendlyName) {
|
||||
this.friendlyName = friendlyName;
|
||||
}
|
||||
|
||||
public String getFriendlyName()
|
||||
{
|
||||
return friendlyName;
|
||||
}
|
||||
public String getFriendlyName() {
|
||||
return friendlyName;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,9 +2,9 @@ package me.StevenLawson.TotalFreedomMod.commands;
|
|||
|
||||
// This is only here because of Command_tfm
|
||||
|
||||
public @interface CommandParameters
|
||||
{
|
||||
String description();
|
||||
public @interface CommandParameters {
|
||||
|
||||
String usage();
|
||||
String description();
|
||||
|
||||
String usage();
|
||||
}
|
||||
|
|
|
@ -4,11 +4,11 @@ import java.lang.annotation.Retention;
|
|||
import java.lang.annotation.RetentionPolicy;
|
||||
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface CommandPermissions
|
||||
{
|
||||
AdminLevel level();
|
||||
public @interface CommandPermissions {
|
||||
|
||||
SourceType source();
|
||||
AdminLevel level();
|
||||
|
||||
boolean blockHostConsole() default false;
|
||||
SourceType source();
|
||||
|
||||
boolean blockHostConsole() default false;
|
||||
}
|
||||
|
|
|
@ -9,31 +9,29 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH, blockHostConsole = true)
|
||||
public class Command_adminmode extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("off")) {
|
||||
ConfigurationEntry.ADMIN_ONLY_MODE.setBoolean(false);
|
||||
Utilities.adminAction(sender.getName(), "Deactivating adminmode.", true);
|
||||
return true;
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("on"))
|
||||
{
|
||||
ConfigurationEntry.ADMIN_ONLY_MODE.setBoolean(true);
|
||||
Utilities.adminAction(sender.getName(), "Activating adminmode.", true);
|
||||
for (Player player : server.getOnlinePlayers())
|
||||
{
|
||||
if (!AdminList.isSuperAdmin(player))
|
||||
{
|
||||
player.kickPlayer("Server is now in adminmode.");
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
if (args[0].equalsIgnoreCase("off")) {
|
||||
ConfigurationEntry.ADMIN_ONLY_MODE.setBoolean(false);
|
||||
Utilities.adminAction(sender.getName(), "Deactivating adminmode.", true);
|
||||
return true;
|
||||
} else if (args[0].equalsIgnoreCase("on")) {
|
||||
ConfigurationEntry.ADMIN_ONLY_MODE.setBoolean(true);
|
||||
Utilities.adminAction(sender.getName(), "Activating adminmode.", true);
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
if (!AdminList.isSuperAdmin(player)) {
|
||||
player.kickPlayer("Server is now in adminmode.");
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,213 +10,165 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
||||
public class Command_adminworld extends FreedomCommand {
|
||||
private enum CommandMode {
|
||||
TELEPORT, GUEST, TIME, WEATHER
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
CommandMode commandMode = null;
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
CommandMode commandMode = null;
|
||||
|
||||
if (args.length == 0) {
|
||||
commandMode = CommandMode.TELEPORT;
|
||||
} else if (args.length >= 2) {
|
||||
if ("guest".equalsIgnoreCase(args[0]))
|
||||
{
|
||||
commandMode = CommandMode.GUEST;
|
||||
}
|
||||
else if ("time".equalsIgnoreCase(args[0]))
|
||||
{
|
||||
commandMode = CommandMode.TIME;
|
||||
}
|
||||
else if ("weather".equalsIgnoreCase(args[0]))
|
||||
{
|
||||
commandMode = CommandMode.WEATHER;
|
||||
}
|
||||
}
|
||||
if (args.length == 0) {
|
||||
commandMode = CommandMode.TELEPORT;
|
||||
} else if (args.length >= 2) {
|
||||
if ("guest".equalsIgnoreCase(args[0])) {
|
||||
commandMode = CommandMode.GUEST;
|
||||
} else if ("time".equalsIgnoreCase(args[0])) {
|
||||
commandMode = CommandMode.TIME;
|
||||
} else if ("weather".equalsIgnoreCase(args[0])) {
|
||||
commandMode = CommandMode.WEATHER;
|
||||
}
|
||||
}
|
||||
|
||||
if (commandMode == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (commandMode == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
switch (commandMode)
|
||||
{
|
||||
case TELEPORT:
|
||||
{
|
||||
if (!(sender instanceof Player) || sender_p == null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
try {
|
||||
switch (commandMode) {
|
||||
case TELEPORT: {
|
||||
if (!(sender instanceof Player) || sender_p == null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
World adminWorld = null;
|
||||
try
|
||||
{
|
||||
adminWorld = AdminWorld.getInstance().getWorld();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
}
|
||||
World adminWorld = null;
|
||||
try {
|
||||
adminWorld = AdminWorld.getInstance().getWorld();
|
||||
} catch (Exception ex) {
|
||||
}
|
||||
|
||||
if (adminWorld == null || sender_p.getWorld() == adminWorld)
|
||||
{
|
||||
playerMsg(sender, "Going to the main world.");
|
||||
sender_p.teleport(server.getWorlds().get(0).getSpawnLocation());
|
||||
}
|
||||
else
|
||||
{
|
||||
if (AdminWorld.getInstance().canAccessWorld(sender_p))
|
||||
{
|
||||
playerMsg(sender, "Going to the AdminWorld.");
|
||||
AdminWorld.getInstance().sendToWorld(sender_p);
|
||||
}
|
||||
else
|
||||
{
|
||||
playerMsg(sender, "You don't have permission to access the AdminWorld.");
|
||||
}
|
||||
}
|
||||
if (adminWorld == null || sender_p.getWorld() == adminWorld) {
|
||||
playerMsg(sender, "Going to the main world.");
|
||||
sender_p.teleport(server.getWorlds().get(0).getSpawnLocation());
|
||||
} else {
|
||||
if (AdminWorld.getInstance().canAccessWorld(sender_p)) {
|
||||
playerMsg(sender, "Going to the AdminWorld.");
|
||||
AdminWorld.getInstance().sendToWorld(sender_p);
|
||||
} else {
|
||||
playerMsg(sender,
|
||||
"You don't have permission to access the AdminWorld.");
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case GUEST:
|
||||
{
|
||||
if (args.length == 2)
|
||||
{
|
||||
if ("list".equalsIgnoreCase(args[1]))
|
||||
{
|
||||
playerMsg(sender, "AdminWorld guest list: " + AdminWorld.getInstance().guestListToString());
|
||||
}
|
||||
else if ("purge".equalsIgnoreCase(args[1]))
|
||||
{
|
||||
assertCommandPerms(sender, sender_p);
|
||||
AdminWorld.getInstance().purgeGuestList();
|
||||
Utilities.adminAction(sender.getName(), "AdminWorld guest list purged.", false);
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (args.length == 3)
|
||||
{
|
||||
assertCommandPerms(sender, sender_p);
|
||||
break;
|
||||
}
|
||||
case GUEST: {
|
||||
if (args.length == 2) {
|
||||
if ("list".equalsIgnoreCase(args[1])) {
|
||||
playerMsg(sender, "AdminWorld guest list: " + AdminWorld.getInstance()
|
||||
.guestListToString());
|
||||
} else if ("purge".equalsIgnoreCase(args[1])) {
|
||||
assertCommandPerms(sender, sender_p);
|
||||
AdminWorld.getInstance().purgeGuestList();
|
||||
Utilities.adminAction(sender.getName(), "AdminWorld guest list purged.",
|
||||
false);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else if (args.length == 3) {
|
||||
assertCommandPerms(sender, sender_p);
|
||||
|
||||
if ("add".equalsIgnoreCase(args[1]))
|
||||
{
|
||||
final Player player = getPlayer(args[2]);
|
||||
if ("add".equalsIgnoreCase(args[1])) {
|
||||
final Player player = getPlayer(args[2]);
|
||||
|
||||
if (player == null)
|
||||
{
|
||||
sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
if (player == null) {
|
||||
sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (AdminWorld.getInstance().addGuest(player, sender_p))
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "AdminWorld guest added: " + player.getName(), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
playerMsg(sender, "Could not add player to guest list.");
|
||||
}
|
||||
}
|
||||
else if ("remove".equals(args[1]))
|
||||
{
|
||||
final Player player = AdminWorld.getInstance().removeGuest(args[2]);
|
||||
if (player != null)
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "AdminWorld guest removed: " + player.getName(), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
playerMsg(sender, "Can't find guest entry for: " + args[2]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (AdminWorld.getInstance().addGuest(player, sender_p)) {
|
||||
Utilities.adminAction(sender.getName(),
|
||||
"AdminWorld guest added: " + player.getName(), false);
|
||||
} else {
|
||||
playerMsg(sender, "Could not add player to guest list.");
|
||||
}
|
||||
} else if ("remove".equals(args[1])) {
|
||||
final Player player = AdminWorld.getInstance().removeGuest(args[2]);
|
||||
if (player != null) {
|
||||
Utilities.adminAction(sender.getName(),
|
||||
"AdminWorld guest removed: " + player.getName(), false);
|
||||
} else {
|
||||
playerMsg(sender, "Can't find guest entry for: " + args[2]);
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case TIME:
|
||||
{
|
||||
assertCommandPerms(sender, sender_p);
|
||||
break;
|
||||
}
|
||||
case TIME: {
|
||||
assertCommandPerms(sender, sender_p);
|
||||
|
||||
if (args.length == 2)
|
||||
{
|
||||
AdminWorld.TimeOfDay timeOfDay = AdminWorld.TimeOfDay.getByAlias(args[1]);
|
||||
if (timeOfDay != null)
|
||||
{
|
||||
AdminWorld.getInstance().setTimeOfDay(timeOfDay);
|
||||
playerMsg(sender, "AdminWorld time set to: " + timeOfDay.name());
|
||||
}
|
||||
else
|
||||
{
|
||||
playerMsg(sender, "Invalid time of day. Can be: sunrise, noon, sunset, midnight");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (args.length == 2) {
|
||||
AdminWorld.TimeOfDay timeOfDay = AdminWorld.TimeOfDay.getByAlias(args[1]);
|
||||
if (timeOfDay != null) {
|
||||
AdminWorld.getInstance().setTimeOfDay(timeOfDay);
|
||||
playerMsg(sender, "AdminWorld time set to: " + timeOfDay.name());
|
||||
} else {
|
||||
playerMsg(sender,
|
||||
"Invalid time of day. Can be: sunrise, noon, sunset, midnight");
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case WEATHER:
|
||||
{
|
||||
assertCommandPerms(sender, sender_p);
|
||||
break;
|
||||
}
|
||||
case WEATHER: {
|
||||
assertCommandPerms(sender, sender_p);
|
||||
|
||||
if (args.length == 2)
|
||||
{
|
||||
AdminWorld.WeatherMode weatherMode = AdminWorld.WeatherMode.getByAlias(args[1]);
|
||||
if (weatherMode != null)
|
||||
{
|
||||
AdminWorld.getInstance().setWeatherMode(weatherMode);
|
||||
playerMsg(sender, "AdminWorld weather set to: " + weatherMode.name());
|
||||
}
|
||||
else
|
||||
{
|
||||
playerMsg(sender, "Invalid weather mode. Can be: off, rain, storm");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (args.length == 2) {
|
||||
AdminWorld.WeatherMode weatherMode = AdminWorld.WeatherMode.getByAlias(
|
||||
args[1]);
|
||||
if (weatherMode != null) {
|
||||
AdminWorld.getInstance().setWeatherMode(weatherMode);
|
||||
playerMsg(sender, "AdminWorld weather set to: " + weatherMode.name());
|
||||
} else {
|
||||
playerMsg(sender, "Invalid weather mode. Can be: off, rain, storm");
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (PermissionDeniedException ex)
|
||||
{
|
||||
sender.sendMessage(ex.getMessage());
|
||||
}
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} catch (PermissionDeniedException ex) {
|
||||
sender.sendMessage(ex.getMessage());
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void assertCommandPerms(CommandSender sender, org.bukkit.entity.Player sender_p) throws PermissionDeniedException {
|
||||
if (!(sender instanceof Player) || sender_p == null || !AdminList.isSuperAdmin(sender)) {
|
||||
throw new PermissionDeniedException(FreedomCommand.MSG_NO_PERMS);
|
||||
}
|
||||
}
|
||||
private void assertCommandPerms(CommandSender sender, org.bukkit.entity.Player sender_p)
|
||||
throws PermissionDeniedException {
|
||||
if (!(sender instanceof Player) || sender_p == null || !AdminList.isSuperAdmin(sender)) {
|
||||
throw new PermissionDeniedException(FreedomCommand.MSG_NO_PERMS);
|
||||
}
|
||||
}
|
||||
|
||||
private class PermissionDeniedException extends Exception
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
private enum CommandMode {
|
||||
TELEPORT, GUEST, TIME, WEATHER
|
||||
}
|
||||
|
||||
private PermissionDeniedException(String string)
|
||||
{
|
||||
super(string);
|
||||
}
|
||||
}
|
||||
private class PermissionDeniedException extends Exception {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private PermissionDeniedException(String string) {
|
||||
super(string);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,49 +9,50 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_blockcmd extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("purge")) {
|
||||
Utilities.adminAction(sender.getName(), "Unblocking commands for all players", true);
|
||||
int counter = 0;
|
||||
for (Player player : server.getOnlinePlayers())
|
||||
{
|
||||
PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
if (playerdata.allCommandsBlocked())
|
||||
{
|
||||
counter += 1;
|
||||
playerdata.setCommandsBlocked(false);
|
||||
}
|
||||
}
|
||||
playerMsg(sender, "Unblocked commands for " + counter + " players.");
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final Player player = getPlayer(args[0]);
|
||||
if (args[0].equalsIgnoreCase("purge")) {
|
||||
Utilities.adminAction(sender.getName(), "Unblocking commands for all players", true);
|
||||
int counter = 0;
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
if (playerdata.allCommandsBlocked()) {
|
||||
counter += 1;
|
||||
playerdata.setCommandsBlocked(false);
|
||||
}
|
||||
}
|
||||
playerMsg(sender, "Unblocked commands for " + counter + " players.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (player == null)
|
||||
{
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
final Player player = getPlayer(args[0]);
|
||||
|
||||
if (AdminList.isSuperAdmin(player))
|
||||
{
|
||||
playerMsg(sender, player.getName() + " is a Superadmin, and cannot have their commands blocked.");
|
||||
return true;
|
||||
}
|
||||
if (player == null) {
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
|
||||
PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
if (AdminList.isSuperAdmin(player)) {
|
||||
playerMsg(sender,
|
||||
player.getName() + " is a Superadmin, and cannot have their commands blocked.");
|
||||
return true;
|
||||
}
|
||||
|
||||
playerdata.setCommandsBlocked(!playerdata.allCommandsBlocked());
|
||||
PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
|
||||
Utilities.adminAction(sender.getName(), (playerdata.allCommandsBlocked() ? "B" : "Unb") + "locking all commands for " + player.getName(), true);
|
||||
playerMsg(sender, (playerdata.allCommandsBlocked() ? "B" : "Unb") + "locked all commands.");
|
||||
playerdata.setCommandsBlocked(!playerdata.allCommandsBlocked());
|
||||
|
||||
return true;
|
||||
}
|
||||
Utilities.adminAction(sender.getName(),
|
||||
(playerdata.allCommandsBlocked() ? "B" : "Unb") + "locking all commands for "
|
||||
+ player.getName(), true);
|
||||
playerMsg(sender, (playerdata.allCommandsBlocked() ? "B" : "Unb") + "locked all commands.");
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,106 +11,91 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_cage extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ("off".equals(args[0]) && sender instanceof Player) {
|
||||
Utilities.adminAction(sender.getName(), "Uncaging " + sender.getName(), true);
|
||||
PlayerData playerdata = PlayerData.getPlayerData(sender_p);
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
playerdata.setCaged(false);
|
||||
playerdata.regenerateHistory();
|
||||
playerdata.clearHistory();
|
||||
if ("off".equals(args[0]) && sender instanceof Player) {
|
||||
Utilities.adminAction(sender.getName(), "Uncaging " + sender.getName(), true);
|
||||
PlayerData playerdata = PlayerData.getPlayerData(sender_p);
|
||||
|
||||
return true;
|
||||
}
|
||||
else if ("purge".equals(args[0]))
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "Uncaging all players", true);
|
||||
playerdata.setCaged(false);
|
||||
playerdata.regenerateHistory();
|
||||
playerdata.clearHistory();
|
||||
|
||||
for (Player player : server.getOnlinePlayers())
|
||||
{
|
||||
PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
playerdata.setCaged(false);
|
||||
playerdata.regenerateHistory();
|
||||
playerdata.clearHistory();
|
||||
}
|
||||
return true;
|
||||
} else if ("purge".equals(args[0])) {
|
||||
Utilities.adminAction(sender.getName(), "Uncaging all players", true);
|
||||
|
||||
return true;
|
||||
}
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
playerdata.setCaged(false);
|
||||
playerdata.regenerateHistory();
|
||||
playerdata.clearHistory();
|
||||
}
|
||||
|
||||
final Player player = getPlayer(args[0]);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (player == null)
|
||||
{
|
||||
sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
final Player player = getPlayer(args[0]);
|
||||
|
||||
PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
if (player == null) {
|
||||
sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
|
||||
Material outerMaterial = Material.GLASS;
|
||||
Material innerMaterial = Material.AIR;
|
||||
PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
|
||||
if (args.length >= 2)
|
||||
{
|
||||
if ("off".equals(args[1]))
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "Uncaging " + player.getName(), true);
|
||||
Material outerMaterial = Material.GLASS;
|
||||
Material innerMaterial = Material.AIR;
|
||||
|
||||
playerdata.setCaged(false);
|
||||
playerdata.regenerateHistory();
|
||||
playerdata.clearHistory();
|
||||
if (args.length >= 2) {
|
||||
if ("off".equals(args[1])) {
|
||||
Utilities.adminAction(sender.getName(), "Uncaging " + player.getName(), true);
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ("darth".equalsIgnoreCase(args[1]))
|
||||
{
|
||||
outerMaterial = Material.SKULL;
|
||||
}
|
||||
else if (Material.matchMaterial(args[1]) != null)
|
||||
{
|
||||
outerMaterial = Material.matchMaterial(args[1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
playerdata.setCaged(false);
|
||||
playerdata.regenerateHistory();
|
||||
playerdata.clearHistory();
|
||||
|
||||
if (args.length >= 3)
|
||||
{
|
||||
if (args[2].equalsIgnoreCase("water"))
|
||||
{
|
||||
innerMaterial = Material.STATIONARY_WATER;
|
||||
}
|
||||
else if (args[2].equalsIgnoreCase("lava"))
|
||||
{
|
||||
innerMaterial = Material.STATIONARY_LAVA;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
if ("darth".equalsIgnoreCase(args[1])) {
|
||||
outerMaterial = Material.SKULL;
|
||||
} else if (Material.matchMaterial(args[1]) != null) {
|
||||
outerMaterial = Material.matchMaterial(args[1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Location targetPos = player.getLocation().clone().add(0, 1, 0);
|
||||
playerdata.setCaged(true, targetPos, outerMaterial, innerMaterial);
|
||||
playerdata.regenerateHistory();
|
||||
playerdata.clearHistory();
|
||||
Utilities.buildHistory(targetPos, 2, playerdata);
|
||||
Utilities.generateHollowCube(targetPos, 2, outerMaterial);
|
||||
Utilities.generateCube(targetPos, 1, innerMaterial);
|
||||
if (args.length >= 3) {
|
||||
if (args[2].equalsIgnoreCase("water")) {
|
||||
innerMaterial = Material.STATIONARY_WATER;
|
||||
} else if (args[2].equalsIgnoreCase("lava")) {
|
||||
innerMaterial = Material.STATIONARY_LAVA;
|
||||
}
|
||||
}
|
||||
|
||||
player.setGameMode(GameMode.SURVIVAL);
|
||||
Location targetPos = player.getLocation().clone().add(0, 1, 0);
|
||||
playerdata.setCaged(true, targetPos, outerMaterial, innerMaterial);
|
||||
playerdata.regenerateHistory();
|
||||
playerdata.clearHistory();
|
||||
Utilities.buildHistory(targetPos, 2, playerdata);
|
||||
Utilities.generateHollowCube(targetPos, 2, outerMaterial);
|
||||
Utilities.generateCube(targetPos, 1, innerMaterial);
|
||||
|
||||
if (outerMaterial != Material.SKULL)
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "Caging " + player.getName(), true);
|
||||
}
|
||||
else
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "Caging " + player.getName() + " in PURE_DARTH", true);
|
||||
}
|
||||
player.setGameMode(GameMode.SURVIVAL);
|
||||
|
||||
return true;
|
||||
}
|
||||
if (outerMaterial != Material.SKULL) {
|
||||
Utilities.adminAction(sender.getName(), "Caging " + player.getName(), true);
|
||||
} else {
|
||||
Utilities.adminAction(sender.getName(), "Caging " + player.getName() + " in PURE_DARTH",
|
||||
true);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.util.Random;
|
||||
import me.StevenLawson.TotalFreedomMod.util.Utilities;
|
||||
import org.bukkit.Achievement;
|
||||
import org.bukkit.ChatColor;
|
||||
|
@ -10,40 +11,41 @@ import org.bukkit.entity.Player;
|
|||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_cake extends FreedomCommand {
|
||||
public static final String CAKE_LYRICS = "But there's no sense crying over every mistake. You just keep on trying till you run out of cake.";
|
||||
private final Random random = new Random();
|
||||
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
final StringBuilder output = new StringBuilder();
|
||||
public static final String CAKE_LYRICS = "But there's no sense crying over every mistake. You just keep on trying till you run out of cake.";
|
||||
private final Random random = new Random();
|
||||
|
||||
final String[] words = CAKE_LYRICS.split(" ");
|
||||
for (final String word : words) {
|
||||
output.append(ChatColor.COLOR_CHAR).append(Integer.toHexString(1 + random.nextInt(14))).append(word).append(" ");
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
final StringBuilder output = new StringBuilder();
|
||||
|
||||
final ItemStack heldItem = new ItemStack(Material.CAKE);
|
||||
final ItemMeta heldItemMeta = heldItem.getItemMeta();
|
||||
heldItemMeta.setDisplayName((new StringBuilder()).append(ChatColor.WHITE).append("The ").append(ChatColor.DARK_GRAY).append("Lie").toString());
|
||||
heldItem.setItemMeta(heldItemMeta);
|
||||
final String[] words = CAKE_LYRICS.split(" ");
|
||||
for (final String word : words) {
|
||||
output.append(ChatColor.COLOR_CHAR).append(Integer.toHexString(1 + random.nextInt(14)))
|
||||
.append(word).append(" ");
|
||||
}
|
||||
|
||||
for (final Player player : server.getOnlinePlayers())
|
||||
{
|
||||
final int firstEmpty = player.getInventory().firstEmpty();
|
||||
if (firstEmpty >= 0)
|
||||
{
|
||||
player.getInventory().setItem(firstEmpty, heldItem);
|
||||
}
|
||||
final ItemStack heldItem = new ItemStack(Material.CAKE);
|
||||
final ItemMeta heldItemMeta = heldItem.getItemMeta();
|
||||
heldItemMeta.setDisplayName(
|
||||
(new StringBuilder()).append(ChatColor.WHITE).append("The ").append(ChatColor.DARK_GRAY)
|
||||
.append("Lie").toString());
|
||||
heldItem.setItemMeta(heldItemMeta);
|
||||
|
||||
player.awardAchievement(Achievement.BAKE_CAKE);
|
||||
}
|
||||
for (final Player player : server.getOnlinePlayers()) {
|
||||
final int firstEmpty = player.getInventory().firstEmpty();
|
||||
if (firstEmpty >= 0) {
|
||||
player.getInventory().setItem(firstEmpty, heldItem);
|
||||
}
|
||||
|
||||
Utilities.bcastMsg(output.toString());
|
||||
player.awardAchievement(Achievement.BAKE_CAKE);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
Utilities.bcastMsg(output.toString());
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,69 +8,58 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
|
||||
public class Command_cartsit extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Player targetPlayer = sender_p;
|
||||
|
||||
if (args.length == 1) {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Player targetPlayer = sender_p;
|
||||
|
||||
targetPlayer = getPlayer(args[0]);
|
||||
if (args.length == 1) {
|
||||
|
||||
if (targetPlayer == null) {
|
||||
sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
targetPlayer = getPlayer(args[0]);
|
||||
|
||||
if (senderIsConsole)
|
||||
{
|
||||
if (targetPlayer == null)
|
||||
{
|
||||
sender.sendMessage("When used from the console, you must define a target player: /cartsit <player>");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (targetPlayer != sender_p && !AdminList.isSuperAdmin(sender))
|
||||
{
|
||||
sender.sendMessage("Only superadmins can select another player as a /cartsit target.");
|
||||
return true;
|
||||
}
|
||||
if (targetPlayer == null) {
|
||||
sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (targetPlayer.isInsideVehicle())
|
||||
{
|
||||
targetPlayer.getVehicle().eject();
|
||||
}
|
||||
else
|
||||
{
|
||||
Minecart nearest_cart = null;
|
||||
for (Minecart cart : targetPlayer.getWorld().getEntitiesByClass(Minecart.class))
|
||||
{
|
||||
if (cart.isEmpty())
|
||||
{
|
||||
if (nearest_cart == null)
|
||||
{
|
||||
nearest_cart = cart;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (cart.getLocation().distanceSquared(targetPlayer.getLocation()) < nearest_cart.getLocation().distanceSquared(targetPlayer.getLocation()))
|
||||
{
|
||||
nearest_cart = cart;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (senderIsConsole) {
|
||||
if (targetPlayer == null) {
|
||||
sender.sendMessage(
|
||||
"When used from the console, you must define a target player: /cartsit <player>");
|
||||
return true;
|
||||
}
|
||||
} else if (targetPlayer != sender_p && !AdminList.isSuperAdmin(sender)) {
|
||||
sender.sendMessage("Only superadmins can select another player as a /cartsit target.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (nearest_cart != null)
|
||||
{
|
||||
nearest_cart.setPassenger(targetPlayer);
|
||||
}
|
||||
else
|
||||
{
|
||||
sender.sendMessage("There are no empty minecarts in the target world.");
|
||||
}
|
||||
}
|
||||
if (targetPlayer.isInsideVehicle()) {
|
||||
targetPlayer.getVehicle().eject();
|
||||
} else {
|
||||
Minecart nearest_cart = null;
|
||||
for (Minecart cart : targetPlayer.getWorld().getEntitiesByClass(Minecart.class)) {
|
||||
if (cart.isEmpty()) {
|
||||
if (nearest_cart == null) {
|
||||
nearest_cart = cart;
|
||||
} else {
|
||||
if (cart.getLocation().distanceSquared(targetPlayer.getLocation())
|
||||
< nearest_cart.getLocation()
|
||||
.distanceSquared(targetPlayer.getLocation())) {
|
||||
nearest_cart = cart;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
if (nearest_cart != null) {
|
||||
nearest_cart.setPassenger(targetPlayer);
|
||||
} else {
|
||||
sender.sendMessage("There are no empty minecarts in the target world.");
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import me.StevenLawson.TotalFreedomMod.Log;
|
||||
import me.StevenLawson.TotalFreedomMod.command.CommandBlocker;
|
||||
import me.StevenLawson.TotalFreedomMod.util.DeprecationUtil;
|
||||
|
@ -13,197 +16,159 @@ import org.bukkit.command.Command;
|
|||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
|
||||
public class Command_cbtool extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ("targetblock".equalsIgnoreCase(args[0]) && sender instanceof Player) {
|
||||
Block targetBlock = DeprecationUtil.getTargetBlock(sender_p, null, 100);
|
||||
playerMsg(sender, "Your target block: " + targetBlock.getLocation().toString());
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
final StringBuffer generatedCommand = new StringBuffer();
|
||||
if ("targetblock".equalsIgnoreCase(args[0]) && sender instanceof Player) {
|
||||
Block targetBlock = DeprecationUtil.getTargetBlock(sender_p, null, 100);
|
||||
playerMsg(sender, "Your target block: " + targetBlock.getLocation().toString());
|
||||
return true;
|
||||
}
|
||||
|
||||
final Matcher matcher = Pattern.compile("\\[(.+?)\\]").matcher(StringUtils.join(args, " ").trim());
|
||||
while (matcher.find())
|
||||
{
|
||||
matcher.appendReplacement(generatedCommand, processSubCommand(matcher.group(1)));
|
||||
}
|
||||
matcher.appendTail(generatedCommand);
|
||||
try {
|
||||
final StringBuffer generatedCommand = new StringBuffer();
|
||||
|
||||
if (CommandBlocker.isCommandBlocked(generatedCommand.toString(), sender, false))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
final Matcher matcher = Pattern.compile("\\[(.+?)\\]")
|
||||
.matcher(StringUtils.join(args, " ").trim());
|
||||
while (matcher.find()) {
|
||||
matcher.appendReplacement(generatedCommand, processSubCommand(matcher.group(1)));
|
||||
}
|
||||
matcher.appendTail(generatedCommand);
|
||||
|
||||
server.dispatchCommand(sender, generatedCommand.toString());
|
||||
}
|
||||
catch (SubCommandFailureException ex)
|
||||
{
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.severe(ex);
|
||||
}
|
||||
if (CommandBlocker.isCommandBlocked(generatedCommand.toString(), sender, false)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
server.dispatchCommand(sender, generatedCommand.toString());
|
||||
} catch (SubCommandFailureException ex) {
|
||||
} catch (Exception ex) {
|
||||
Log.severe(ex);
|
||||
}
|
||||
|
||||
private String processSubCommand(final String subcommand) throws SubCommandFailureException
|
||||
{
|
||||
final String[] args = StringUtils.split(subcommand, " ");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args.length == 1)
|
||||
{
|
||||
throw new SubCommandFailureException("Invalid subcommand name.");
|
||||
}
|
||||
private String processSubCommand(final String subcommand) throws SubCommandFailureException {
|
||||
final String[] args = StringUtils.split(subcommand, " ");
|
||||
|
||||
return SubCommand.getByName(args[0]).getExecutable().execute(ArrayUtils.remove(args, 0));
|
||||
}
|
||||
if (args.length == 1) {
|
||||
throw new SubCommandFailureException("Invalid subcommand name.");
|
||||
}
|
||||
|
||||
private enum SubCommand
|
||||
{
|
||||
PLAYER_DETECT("playerdetect", new SubCommandExecutable()
|
||||
{
|
||||
@Override
|
||||
public String execute(String[] args) throws SubCommandFailureException
|
||||
{
|
||||
if (args.length != 5)
|
||||
{
|
||||
throw new SubCommandFailureException("Invalid # of arguments.");
|
||||
}
|
||||
return SubCommand.getByName(args[0]).getExecutable().execute(ArrayUtils.remove(args, 0));
|
||||
}
|
||||
|
||||
double x, y, z;
|
||||
try
|
||||
{
|
||||
x = Double.parseDouble(args[0].trim());
|
||||
y = Double.parseDouble(args[1].trim());
|
||||
z = Double.parseDouble(args[2].trim());
|
||||
}
|
||||
catch (NumberFormatException ex)
|
||||
{
|
||||
throw new SubCommandFailureException("Invalid coordinates.");
|
||||
}
|
||||
private enum SubCommand {
|
||||
PLAYER_DETECT("playerdetect", new SubCommandExecutable() {
|
||||
@Override
|
||||
public String execute(String[] args) throws SubCommandFailureException {
|
||||
if (args.length != 5) {
|
||||
throw new SubCommandFailureException("Invalid # of arguments.");
|
||||
}
|
||||
|
||||
World world = null;
|
||||
final String needleWorldName = args[3].trim();
|
||||
final List<World> worlds = Bukkit.getWorlds();
|
||||
for (final World testWorld : worlds)
|
||||
{
|
||||
if (testWorld.getName().trim().equalsIgnoreCase(needleWorldName))
|
||||
{
|
||||
world = testWorld;
|
||||
break;
|
||||
}
|
||||
}
|
||||
double x, y, z;
|
||||
try {
|
||||
x = Double.parseDouble(args[0].trim());
|
||||
y = Double.parseDouble(args[1].trim());
|
||||
z = Double.parseDouble(args[2].trim());
|
||||
} catch (NumberFormatException ex) {
|
||||
throw new SubCommandFailureException("Invalid coordinates.");
|
||||
}
|
||||
|
||||
if (world == null)
|
||||
{
|
||||
throw new SubCommandFailureException("Invalid world name.");
|
||||
}
|
||||
World world = null;
|
||||
final String needleWorldName = args[3].trim();
|
||||
final List<World> worlds = Bukkit.getWorlds();
|
||||
for (final World testWorld : worlds) {
|
||||
if (testWorld.getName().trim().equalsIgnoreCase(needleWorldName)) {
|
||||
world = testWorld;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
final Location testLocation = new Location(world, x, y, z);
|
||||
if (world == null) {
|
||||
throw new SubCommandFailureException("Invalid world name.");
|
||||
}
|
||||
|
||||
double radius;
|
||||
try
|
||||
{
|
||||
radius = Double.parseDouble(args[4].trim());
|
||||
}
|
||||
catch (NumberFormatException ex)
|
||||
{
|
||||
throw new SubCommandFailureException("Invalid radius.");
|
||||
}
|
||||
final Location testLocation = new Location(world, x, y, z);
|
||||
|
||||
final double radiusSq = radius * radius;
|
||||
double radius;
|
||||
try {
|
||||
radius = Double.parseDouble(args[4].trim());
|
||||
} catch (NumberFormatException ex) {
|
||||
throw new SubCommandFailureException("Invalid radius.");
|
||||
}
|
||||
|
||||
final List<Player> worldPlayers = testLocation.getWorld().getPlayers();
|
||||
for (final Player testPlayer : worldPlayers)
|
||||
{
|
||||
if (testPlayer.getLocation().distanceSquared(testLocation) < radiusSq)
|
||||
{
|
||||
return testPlayer.getName();
|
||||
}
|
||||
}
|
||||
final double radiusSq = radius * radius;
|
||||
|
||||
throw new SubCommandFailureException("No player found in range.");
|
||||
}
|
||||
}),
|
||||
PLAYER_DETECT_BOOLEAN("playerdetectboolean", new SubCommandExecutable()
|
||||
{
|
||||
@Override
|
||||
public String execute(String[] args) throws SubCommandFailureException
|
||||
{
|
||||
try
|
||||
{
|
||||
PLAYER_DETECT.getExecutable().execute(args);
|
||||
}
|
||||
catch (SubCommandFailureException ex)
|
||||
{
|
||||
return "0";
|
||||
}
|
||||
final List<Player> worldPlayers = testLocation.getWorld().getPlayers();
|
||||
for (final Player testPlayer : worldPlayers) {
|
||||
if (testPlayer.getLocation().distanceSquared(testLocation) < radiusSq) {
|
||||
return testPlayer.getName();
|
||||
}
|
||||
}
|
||||
|
||||
return "1";
|
||||
}
|
||||
});
|
||||
//
|
||||
private final String name;
|
||||
private final SubCommandExecutable executable;
|
||||
throw new SubCommandFailureException("No player found in range.");
|
||||
}
|
||||
}),
|
||||
PLAYER_DETECT_BOOLEAN("playerdetectboolean", new SubCommandExecutable() {
|
||||
@Override
|
||||
public String execute(String[] args) throws SubCommandFailureException {
|
||||
try {
|
||||
PLAYER_DETECT.getExecutable().execute(args);
|
||||
} catch (SubCommandFailureException ex) {
|
||||
return "0";
|
||||
}
|
||||
|
||||
SubCommand(String subCommandName, SubCommandExecutable subCommandImpl)
|
||||
{
|
||||
this.name = subCommandName;
|
||||
this.executable = subCommandImpl;
|
||||
}
|
||||
return "1";
|
||||
}
|
||||
});
|
||||
//
|
||||
private final String name;
|
||||
private final SubCommandExecutable executable;
|
||||
|
||||
public SubCommandExecutable getExecutable()
|
||||
{
|
||||
return executable;
|
||||
}
|
||||
SubCommand(String subCommandName, SubCommandExecutable subCommandImpl) {
|
||||
this.name = subCommandName;
|
||||
this.executable = subCommandImpl;
|
||||
}
|
||||
|
||||
public String getName()
|
||||
{
|
||||
return name;
|
||||
}
|
||||
public static SubCommand getByName(String needle) throws SubCommandFailureException {
|
||||
needle = needle.trim();
|
||||
for (SubCommand subCommand : values()) {
|
||||
if (subCommand.getName().equalsIgnoreCase(needle)) {
|
||||
return subCommand;
|
||||
}
|
||||
}
|
||||
throw new SubCommandFailureException("Invalid subcommand name.");
|
||||
}
|
||||
|
||||
public static SubCommand getByName(String needle) throws SubCommandFailureException
|
||||
{
|
||||
needle = needle.trim();
|
||||
for (SubCommand subCommand : values())
|
||||
{
|
||||
if (subCommand.getName().equalsIgnoreCase(needle))
|
||||
{
|
||||
return subCommand;
|
||||
}
|
||||
}
|
||||
throw new SubCommandFailureException("Invalid subcommand name.");
|
||||
}
|
||||
}
|
||||
public SubCommandExecutable getExecutable() {
|
||||
return executable;
|
||||
}
|
||||
|
||||
private interface SubCommandExecutable
|
||||
{
|
||||
String execute(String[] args) throws SubCommandFailureException;
|
||||
}
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
}
|
||||
|
||||
private static class SubCommandFailureException extends Exception
|
||||
{
|
||||
public SubCommandFailureException()
|
||||
{
|
||||
}
|
||||
private interface SubCommandExecutable {
|
||||
|
||||
public SubCommandFailureException(String message)
|
||||
{
|
||||
super(message);
|
||||
}
|
||||
}
|
||||
String execute(String[] args) throws SubCommandFailureException;
|
||||
}
|
||||
|
||||
private static class SubCommandFailureException extends Exception {
|
||||
|
||||
public SubCommandFailureException() {
|
||||
}
|
||||
|
||||
public SubCommandFailureException(String message) {
|
||||
super(message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,46 +1,43 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.PluginDescriptionFile;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.PluginDescriptionFile;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
|
||||
public class Command_cmdlist extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
List<String> commands = new ArrayList<String>();
|
||||
|
||||
for (Plugin targetPlugin : server.getPluginManager().getPlugins()) {
|
||||
try {
|
||||
PluginDescriptionFile desc = targetPlugin.getDescription();
|
||||
Map<String, Map<String, Object>> map = desc.getCommands();
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
List<String> commands = new ArrayList<String>();
|
||||
|
||||
if (map != null)
|
||||
{
|
||||
for (Entry<String, Map<String, Object>> entry : map.entrySet())
|
||||
{
|
||||
String command_name = entry.getKey();
|
||||
commands.add(command_name);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Throwable ex)
|
||||
{
|
||||
}
|
||||
}
|
||||
for (Plugin targetPlugin : server.getPluginManager().getPlugins()) {
|
||||
try {
|
||||
PluginDescriptionFile desc = targetPlugin.getDescription();
|
||||
Map<String, Map<String, Object>> map = desc.getCommands();
|
||||
|
||||
Collections.sort(commands);
|
||||
if (map != null) {
|
||||
for (Entry<String, Map<String, Object>> entry : map.entrySet()) {
|
||||
String command_name = entry.getKey();
|
||||
commands.add(command_name);
|
||||
}
|
||||
}
|
||||
} catch (Throwable ex) {
|
||||
}
|
||||
}
|
||||
|
||||
sender.sendMessage(StringUtils.join(commands, ","));
|
||||
Collections.sort(commands);
|
||||
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage(StringUtils.join(commands, ","));
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,13 +6,15 @@ import org.bukkit.command.CommandSender;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_IN_GAME)
|
||||
public class Command_cmdspy extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
|
||||
PlayerData playerdata = PlayerData.getPlayerData(sender_p);
|
||||
playerdata.setCommandSpy(!playerdata.cmdspyEnabled());
|
||||
playerMsg(sender, "CommandSpy " + (playerdata.cmdspyEnabled() ? "enabled." : "disabled."));
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
|
||||
return true;
|
||||
}
|
||||
PlayerData playerdata = PlayerData.getPlayerData(sender_p);
|
||||
playerdata.setCommandSpy(!playerdata.cmdspyEnabled());
|
||||
playerMsg(sender, "CommandSpy " + (playerdata.cmdspyEnabled() ? "enabled." : "disabled."));
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import me.StevenLawson.TotalFreedomMod.bridge.EssentialsBridge;
|
||||
import me.StevenLawson.TotalFreedomMod.util.Utilities;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
@ -7,47 +9,47 @@ import org.bukkit.ChatColor;
|
|||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.OP, source = SourceType.ONLY_IN_GAME)
|
||||
public class Command_colorme extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ("list".equalsIgnoreCase(args[0])) {
|
||||
playerMsg(sender, "Colors: " + StringUtils.join(Utilities.CHAT_COLOR_NAMES.keySet(), ", "));
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final String needle = args[0].trim().toLowerCase();
|
||||
ChatColor color = null;
|
||||
final Iterator<Map.Entry<String, ChatColor>> it = Utilities.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 ("list".equalsIgnoreCase(args[0])) {
|
||||
playerMsg(sender,
|
||||
"Colors: " + StringUtils.join(Utilities.CHAT_COLOR_NAMES.keySet(), ", "));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (color == null)
|
||||
{
|
||||
playerMsg(sender, "Invalid color: " + needle + " - Use \"/colorme list\" to list colors.");
|
||||
return true;
|
||||
}
|
||||
final String needle = args[0].trim().toLowerCase();
|
||||
ChatColor color = null;
|
||||
final Iterator<Map.Entry<String, ChatColor>> it = Utilities.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;
|
||||
}
|
||||
}
|
||||
|
||||
final String newNick = color + ChatColor.stripColor(sender_p.getDisplayName()).trim() + ChatColor.WHITE;
|
||||
if (color == null) {
|
||||
playerMsg(sender,
|
||||
"Invalid color: " + needle + " - Use \"/colorme list\" to list colors.");
|
||||
return true;
|
||||
}
|
||||
|
||||
EssentialsBridge.setNickname(sender.getName(), newNick);
|
||||
final String newNick =
|
||||
color + ChatColor.stripColor(sender_p.getDisplayName()).trim() + ChatColor.WHITE;
|
||||
|
||||
playerMsg(sender, "Your nickname is now: " + newNick);
|
||||
EssentialsBridge.setNickname(sender.getName(), newNick);
|
||||
|
||||
return true;
|
||||
}
|
||||
playerMsg(sender, "Your nickname is now: " + newNick);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,59 +9,55 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
||||
public class Command_creative extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (senderIsConsole) {
|
||||
if (args.length == 0) {
|
||||
sender.sendMessage("When used from the console, you must define a target user to change gamemode on.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Player player;
|
||||
if (args.length == 0)
|
||||
{
|
||||
player = sender_p;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (args[0].equalsIgnoreCase("-a"))
|
||||
{
|
||||
if (!AdminList.isSuperAdmin(sender))
|
||||
{
|
||||
sender.sendMessage(FreedomCommand.MSG_NO_PERMS);
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (senderIsConsole) {
|
||||
if (args.length == 0) {
|
||||
sender.sendMessage(
|
||||
"When used from the console, you must define a target user to change gamemode on.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
for (Player targetPlayer : server.getOnlinePlayers())
|
||||
{
|
||||
targetPlayer.setGameMode(GameMode.CREATIVE);
|
||||
}
|
||||
Player player;
|
||||
if (args.length == 0) {
|
||||
player = sender_p;
|
||||
} else {
|
||||
if (args[0].equalsIgnoreCase("-a")) {
|
||||
if (!AdminList.isSuperAdmin(sender)) {
|
||||
sender.sendMessage(FreedomCommand.MSG_NO_PERMS);
|
||||
return true;
|
||||
}
|
||||
|
||||
Utilities.adminAction(sender.getName(), "Changing everyone's gamemode to creative", false);
|
||||
return true;
|
||||
}
|
||||
for (Player targetPlayer : server.getOnlinePlayers()) {
|
||||
targetPlayer.setGameMode(GameMode.CREATIVE);
|
||||
}
|
||||
|
||||
if (!(senderIsConsole || AdminList.isSuperAdmin(sender)))
|
||||
{
|
||||
playerMsg(sender, "Only superadmins can change other user's gamemode.");
|
||||
return true;
|
||||
}
|
||||
Utilities.adminAction(sender.getName(), "Changing everyone's gamemode to creative",
|
||||
false);
|
||||
return true;
|
||||
}
|
||||
|
||||
player = getPlayer(args[0]);
|
||||
if (!(senderIsConsole || AdminList.isSuperAdmin(sender))) {
|
||||
playerMsg(sender, "Only superadmins can change other user's gamemode.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (player == null)
|
||||
{
|
||||
sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
player = getPlayer(args[0]);
|
||||
|
||||
}
|
||||
if (player == null) {
|
||||
sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
|
||||
playerMsg(sender, "Setting " + player.getName() + " to game mode 'Creative'.");
|
||||
playerMsg(player, sender.getName() + " set your game mode to 'Creative'.");
|
||||
player.setGameMode(GameMode.CREATIVE);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
playerMsg(sender, "Setting " + player.getName() + " to game mode 'Creative'.");
|
||||
playerMsg(player, sender.getName() + " set your game mode to 'Creative'.");
|
||||
player.setGameMode(GameMode.CREATIVE);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,11 +7,14 @@ import org.bukkit.command.CommandSender;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_CONSOLE)
|
||||
public class Command_csay extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length > 0) {
|
||||
Utilities.bcastMsg(String.format("§7[CONSOLE] §f<§c%s§f> %s", sender.getName(), StringUtils.join(args, " ")));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length > 0) {
|
||||
Utilities.bcastMsg(String.format("§7[CONSOLE] §f<§c%s§f> %s", sender.getName(),
|
||||
StringUtils.join(args, " ")));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.util.Random;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.command.Command;
|
||||
|
@ -7,39 +8,39 @@ import org.bukkit.command.CommandSender;
|
|||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.BOTH, blockHostConsole = true)
|
||||
public class Command_deafen extends FreedomCommand {
|
||||
private static final Random random = new Random();
|
||||
public static final double STEPS = 10.0;
|
||||
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
for (final Player player : server.getOnlinePlayers()) {
|
||||
for (double percent = 0.0; percent <= 1.0; percent += (1.0 / STEPS)) {
|
||||
final float pitch = (float) (percent * 2.0);
|
||||
public static final double STEPS = 10.0;
|
||||
private static final Random random = new Random();
|
||||
|
||||
new BukkitRunnable() {
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
player.playSound(randomOffset(player.getLocation(), 5.0), Sound.values()[random.nextInt(Sound.values().length)], 100.0f, pitch);
|
||||
}
|
||||
}.runTaskLater(plugin, Math.round(20.0 * percent * 2.0));
|
||||
}
|
||||
}
|
||||
private static Location randomOffset(Location a, double magnitude) {
|
||||
return a.clone()
|
||||
.add(randomDoubleRange(-1.0, 1.0) * magnitude, randomDoubleRange(-1.0, 1.0) * magnitude,
|
||||
randomDoubleRange(-1.0, 1.0) * magnitude);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
private static Double randomDoubleRange(double min, double max) {
|
||||
return min + (random.nextDouble() * ((max - min) + 1.0));
|
||||
}
|
||||
|
||||
private static Location randomOffset(Location a, double magnitude)
|
||||
{
|
||||
return a.clone().add(randomDoubleRange(-1.0, 1.0) * magnitude, randomDoubleRange(-1.0, 1.0) * magnitude, randomDoubleRange(-1.0, 1.0) * magnitude);
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
for (final Player player : server.getOnlinePlayers()) {
|
||||
for (double percent = 0.0; percent <= 1.0; percent += (1.0 / STEPS)) {
|
||||
final float pitch = (float) (percent * 2.0);
|
||||
|
||||
private static Double randomDoubleRange(double min, double max)
|
||||
{
|
||||
return min + (random.nextDouble() * ((max - min) + 1.0));
|
||||
}
|
||||
new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
player.playSound(randomOffset(player.getLocation(), 5.0),
|
||||
Sound.values()[random.nextInt(Sound.values().length)], 100.0f, pitch);
|
||||
}
|
||||
}.runTaskLater(plugin, Math.round(20.0 * percent * 2.0));
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,106 +1,82 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE)
|
||||
public class Command_debug extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 3) {
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
String className = args[0];
|
||||
String fieldName = args[1];
|
||||
String newValue = StringUtils.join(ArrayUtils.subarray(args, 2, args.length), " ");
|
||||
public static void setStaticValue(final String className, final String fieldName,
|
||||
final String newValueString) throws Exception {
|
||||
Class<?> forName = Class.forName(className);
|
||||
if (forName != null) {
|
||||
final Field field = forName.getDeclaredField(fieldName);
|
||||
if (field != null) {
|
||||
Object newValue;
|
||||
|
||||
if (className.equalsIgnoreCase("_"))
|
||||
{
|
||||
className = "me.StevenLawson.TotalFreedomMod.TotalFreedomMod";
|
||||
}
|
||||
Class<?> type = field.getType();
|
||||
if (type.isPrimitive()) {
|
||||
if (type.getName().equals("int")) {
|
||||
newValue = Integer.parseInt(newValueString);
|
||||
} else if (type.getName().equals("double")) {
|
||||
newValue = Double.parseDouble(newValueString);
|
||||
} else if (type.getName().equals("boolean")) {
|
||||
newValue = Boolean.parseBoolean(newValueString);
|
||||
} else {
|
||||
throw new Exception("Unknown primitive field type.");
|
||||
}
|
||||
} else {
|
||||
if (type.isAssignableFrom(Integer.class)) {
|
||||
newValue = new Integer(newValueString);
|
||||
} else if (type.isAssignableFrom(Double.class)) {
|
||||
newValue = new Double(newValueString);
|
||||
} else if (type.isAssignableFrom(Boolean.class)) {
|
||||
newValue = Boolean.valueOf(newValueString);
|
||||
} else if (type.isAssignableFrom(String.class)) {
|
||||
newValue = newValueString;
|
||||
} else {
|
||||
throw new Exception("Unknown complex field type.");
|
||||
}
|
||||
}
|
||||
|
||||
setStaticValue(className, fieldName, newValue);
|
||||
field.setAccessible(true);
|
||||
|
||||
sender.sendMessage("Debug: OK");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
sender.sendMessage(ex.getMessage());
|
||||
}
|
||||
final Object oldValue = field.get(Class.forName(className));
|
||||
if (oldValue != null) {
|
||||
field.set(oldValue, newValue);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
field.setAccessible(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void setStaticValue(final String className, final String fieldName, final String newValueString) throws Exception
|
||||
{
|
||||
Class<?> forName = Class.forName(className);
|
||||
if (forName != null)
|
||||
{
|
||||
final Field field = forName.getDeclaredField(fieldName);
|
||||
if (field != null)
|
||||
{
|
||||
Object newValue;
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 3) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Class<?> type = field.getType();
|
||||
if (type.isPrimitive())
|
||||
{
|
||||
if (type.getName().equals("int"))
|
||||
{
|
||||
newValue = Integer.parseInt(newValueString);
|
||||
}
|
||||
else if (type.getName().equals("double"))
|
||||
{
|
||||
newValue = Double.parseDouble(newValueString);
|
||||
}
|
||||
else if (type.getName().equals("boolean"))
|
||||
{
|
||||
newValue = Boolean.parseBoolean(newValueString);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception("Unknown primitive field type.");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (type.isAssignableFrom(Integer.class))
|
||||
{
|
||||
newValue = new Integer(newValueString);
|
||||
}
|
||||
else if (type.isAssignableFrom(Double.class))
|
||||
{
|
||||
newValue = new Double(newValueString);
|
||||
}
|
||||
else if (type.isAssignableFrom(Boolean.class))
|
||||
{
|
||||
newValue = Boolean.valueOf(newValueString);
|
||||
}
|
||||
else if (type.isAssignableFrom(String.class))
|
||||
{
|
||||
newValue = newValueString;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception("Unknown complex field type.");
|
||||
}
|
||||
}
|
||||
try {
|
||||
String className = args[0];
|
||||
String fieldName = args[1];
|
||||
String newValue = StringUtils.join(ArrayUtils.subarray(args, 2, args.length), " ");
|
||||
|
||||
field.setAccessible(true);
|
||||
if (className.equalsIgnoreCase("_")) {
|
||||
className = "me.StevenLawson.TotalFreedomMod.TotalFreedomMod";
|
||||
}
|
||||
|
||||
final Object oldValue = field.get(Class.forName(className));
|
||||
if (oldValue != null)
|
||||
{
|
||||
field.set(oldValue, newValue);
|
||||
}
|
||||
setStaticValue(className, fieldName, newValue);
|
||||
|
||||
field.setAccessible(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
sender.sendMessage("Debug: OK");
|
||||
} catch (Exception ex) {
|
||||
sender.sendMessage(ex.getMessage());
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,14 +8,16 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_denick extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Utilities.adminAction(sender.getName(), "Removing all nicknames", false);
|
||||
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
EssentialsBridge.setNickname(player.getName(), null);
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Utilities.adminAction(sender.getName(), "Removing all nicknames", false);
|
||||
|
||||
return true;
|
||||
}
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
EssentialsBridge.setNickname(player.getName(), null);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,31 +9,31 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_deop extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
OfflinePlayer player = null;
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (Player onlinePlayer : server.getOnlinePlayers()) {
|
||||
if (args[0].equalsIgnoreCase(onlinePlayer.getName()))
|
||||
{
|
||||
player = onlinePlayer;
|
||||
}
|
||||
}
|
||||
OfflinePlayer player = null;
|
||||
|
||||
// if the player is not online
|
||||
if (player == null)
|
||||
{
|
||||
player = DeprecationUtil.getOfflinePlayer(server, args[0]);
|
||||
}
|
||||
for (Player onlinePlayer : server.getOnlinePlayers()) {
|
||||
if (args[0].equalsIgnoreCase(onlinePlayer.getName())) {
|
||||
player = onlinePlayer;
|
||||
}
|
||||
}
|
||||
|
||||
Utilities.adminAction(sender.getName(), "De-opping " + player.getName(), false);
|
||||
// if the player is not online
|
||||
if (player == null) {
|
||||
player = DeprecationUtil.getOfflinePlayer(server, args[0]);
|
||||
}
|
||||
|
||||
player.setOp(false);
|
||||
Utilities.adminAction(sender.getName(), "De-opping " + player.getName(), false);
|
||||
|
||||
return true;
|
||||
}
|
||||
player.setOp(false);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,15 +7,17 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_deopall extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Utilities.adminAction(sender.getName(), "De-opping all players on the server", true);
|
||||
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
player.setOp(false);
|
||||
player.sendMessage(FreedomCommand.YOU_ARE_NOT_OP);
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Utilities.adminAction(sender.getName(), "De-opping all players on the server", true);
|
||||
|
||||
return true;
|
||||
}
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
player.setOp(false);
|
||||
player.sendMessage(FreedomCommand.YOU_ARE_NOT_OP);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import me.StevenLawson.TotalFreedomMod.util.DeprecationUtil;
|
||||
import me.StevenLawson.TotalFreedomMod.util.Utilities;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
@ -12,93 +14,78 @@ import org.bukkit.command.CommandSender;
|
|||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.OP, source = SourceType.ONLY_IN_GAME)
|
||||
public class Command_dispfill extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 2) {
|
||||
int radius;
|
||||
|
||||
try {
|
||||
radius = Math.max(5, Math.min(25, Integer.parseInt(args[0])));
|
||||
} catch (NumberFormatException ex)
|
||||
{
|
||||
sender.sendMessage("Invalid radius.");
|
||||
return true;
|
||||
}
|
||||
private static void setDispenserContents(final Block targetBlock, final ItemStack[] items) {
|
||||
if (targetBlock.getType() == Material.DISPENSER) {
|
||||
final Inventory dispenserInv = ((Dispenser) targetBlock.getState()).getInventory();
|
||||
dispenserInv.clear();
|
||||
dispenserInv.addItem(items);
|
||||
}
|
||||
}
|
||||
|
||||
final List<ItemStack> items = new ArrayList<ItemStack>();
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 2) {
|
||||
int radius;
|
||||
|
||||
final String[] itemsRaw = StringUtils.split(args[1], ",");
|
||||
for (final String searchItem : itemsRaw)
|
||||
{
|
||||
Material material = Material.matchMaterial(searchItem);
|
||||
if (material == null)
|
||||
{
|
||||
try
|
||||
{
|
||||
material = DeprecationUtil.getMaterial(Integer.parseInt(searchItem));
|
||||
}
|
||||
catch (NumberFormatException ex)
|
||||
{
|
||||
}
|
||||
}
|
||||
try {
|
||||
radius = Math.max(5, Math.min(25, Integer.parseInt(args[0])));
|
||||
} catch (NumberFormatException ex) {
|
||||
sender.sendMessage("Invalid radius.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (material != null)
|
||||
{
|
||||
items.add(new ItemStack(material, 64));
|
||||
}
|
||||
else
|
||||
{
|
||||
sender.sendMessage("Skipping invalid item: " + searchItem);
|
||||
}
|
||||
}
|
||||
final List<ItemStack> items = new ArrayList<ItemStack>();
|
||||
|
||||
final ItemStack[] itemsArray = items.toArray(new ItemStack[items.size()]);
|
||||
final String[] itemsRaw = StringUtils.split(args[1], ",");
|
||||
for (final String searchItem : itemsRaw) {
|
||||
Material material = Material.matchMaterial(searchItem);
|
||||
if (material == null) {
|
||||
try {
|
||||
material = DeprecationUtil.getMaterial(Integer.parseInt(searchItem));
|
||||
} catch (NumberFormatException ex) {
|
||||
}
|
||||
}
|
||||
|
||||
int affected = 0;
|
||||
final Location centerLocation = sender_p.getLocation();
|
||||
final Block centerBlock = centerLocation.getBlock();
|
||||
for (int xOffset = -radius; xOffset <= radius; xOffset++)
|
||||
{
|
||||
for (int yOffset = -radius; yOffset <= radius; yOffset++)
|
||||
{
|
||||
for (int zOffset = -radius; zOffset <= radius; zOffset++)
|
||||
{
|
||||
final Block targetBlock = centerBlock.getRelative(xOffset, yOffset, zOffset);
|
||||
if (targetBlock.getLocation().distanceSquared(centerLocation) < (radius * radius))
|
||||
{
|
||||
if (targetBlock.getType().equals(Material.DISPENSER))
|
||||
{
|
||||
sender.sendMessage("Filling dispenser @ " + Utilities.formatLocation(targetBlock.getLocation()));
|
||||
setDispenserContents(targetBlock, itemsArray);
|
||||
affected++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (material != null) {
|
||||
items.add(new ItemStack(material, 64));
|
||||
} else {
|
||||
sender.sendMessage("Skipping invalid item: " + searchItem);
|
||||
}
|
||||
}
|
||||
|
||||
sender.sendMessage("Done. " + affected + " dispenser(s) filled.");
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
final ItemStack[] itemsArray = items.toArray(new ItemStack[items.size()]);
|
||||
|
||||
return true;
|
||||
}
|
||||
int affected = 0;
|
||||
final Location centerLocation = sender_p.getLocation();
|
||||
final Block centerBlock = centerLocation.getBlock();
|
||||
for (int xOffset = -radius; xOffset <= radius; xOffset++) {
|
||||
for (int yOffset = -radius; yOffset <= radius; yOffset++) {
|
||||
for (int zOffset = -radius; zOffset <= radius; zOffset++) {
|
||||
final Block targetBlock = centerBlock.getRelative(xOffset, yOffset,
|
||||
zOffset);
|
||||
if (targetBlock.getLocation().distanceSquared(centerLocation) < (radius
|
||||
* radius)) {
|
||||
if (targetBlock.getType().equals(Material.DISPENSER)) {
|
||||
sender.sendMessage(
|
||||
"Filling dispenser @ " + Utilities.formatLocation(
|
||||
targetBlock.getLocation()));
|
||||
setDispenserContents(targetBlock, itemsArray);
|
||||
affected++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void setDispenserContents(final Block targetBlock, final ItemStack[] items)
|
||||
{
|
||||
if (targetBlock.getType() == Material.DISPENSER)
|
||||
{
|
||||
final Inventory dispenserInv = ((Dispenser) targetBlock.getState()).getInventory();
|
||||
dispenserInv.clear();
|
||||
dispenserInv.addItem(items);
|
||||
}
|
||||
}
|
||||
sender.sendMessage("Done. " + affected + " dispenser(s) filled.");
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,114 +8,90 @@ import org.bukkit.inventory.ItemStack;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.OP, source = SourceType.ONLY_IN_GAME)
|
||||
public class Command_enchant extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
ItemStack itemInHand = sender_p.getItemInHand();
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (itemInHand == null) {
|
||||
playerMsg(sender, "You are holding an invalid item.");
|
||||
return true;
|
||||
}
|
||||
ItemStack itemInHand = sender_p.getItemInHand();
|
||||
|
||||
if (args[0].equalsIgnoreCase("list"))
|
||||
{
|
||||
boolean has_enchantments = false;
|
||||
if (itemInHand == null) {
|
||||
playerMsg(sender, "You are holding an invalid item.");
|
||||
return true;
|
||||
}
|
||||
|
||||
StringBuilder possible_ench = new StringBuilder("Possible enchantments for held item: ");
|
||||
for (Enchantment ench : Enchantment.values())
|
||||
{
|
||||
if (ench.canEnchantItem(itemInHand))
|
||||
{
|
||||
has_enchantments = true;
|
||||
possible_ench.append(ench.getName()).append(", ");
|
||||
}
|
||||
}
|
||||
if (args[0].equalsIgnoreCase("list")) {
|
||||
boolean has_enchantments = false;
|
||||
|
||||
if (has_enchantments)
|
||||
{
|
||||
playerMsg(sender, possible_ench.toString());
|
||||
}
|
||||
else
|
||||
{
|
||||
playerMsg(sender, "The held item has no enchantments.");
|
||||
}
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("addall"))
|
||||
{
|
||||
for (Enchantment ench : Enchantment.values())
|
||||
{
|
||||
try
|
||||
{
|
||||
if (ench.canEnchantItem(itemInHand))
|
||||
{
|
||||
itemInHand.addEnchantment(ench, ench.getMaxLevel());
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.info("Error using " + ench.getName() + " on " + itemInHand.getType().name() + " held by " + sender_p.getName() + ".");
|
||||
}
|
||||
}
|
||||
StringBuilder possible_ench = new StringBuilder(
|
||||
"Possible enchantments for held item: ");
|
||||
for (Enchantment ench : Enchantment.values()) {
|
||||
if (ench.canEnchantItem(itemInHand)) {
|
||||
has_enchantments = true;
|
||||
possible_ench.append(ench.getName()).append(", ");
|
||||
}
|
||||
}
|
||||
|
||||
playerMsg(sender, "Added all possible enchantments for this item.");
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("reset"))
|
||||
{
|
||||
for (Enchantment ench : itemInHand.getEnchantments().keySet())
|
||||
{
|
||||
itemInHand.removeEnchantment(ench);
|
||||
}
|
||||
if (has_enchantments) {
|
||||
playerMsg(sender, possible_ench.toString());
|
||||
} else {
|
||||
playerMsg(sender, "The held item has no enchantments.");
|
||||
}
|
||||
} else if (args[0].equalsIgnoreCase("addall")) {
|
||||
for (Enchantment ench : Enchantment.values()) {
|
||||
try {
|
||||
if (ench.canEnchantItem(itemInHand)) {
|
||||
itemInHand.addEnchantment(ench, ench.getMaxLevel());
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
Log.info("Error using " + ench.getName() + " on " + itemInHand.getType().name()
|
||||
+ " held by " + sender_p.getName() + ".");
|
||||
}
|
||||
}
|
||||
|
||||
playerMsg(sender, "Removed all enchantments.");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (args.length < 2)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
playerMsg(sender, "Added all possible enchantments for this item.");
|
||||
} else if (args[0].equalsIgnoreCase("reset")) {
|
||||
for (Enchantment ench : itemInHand.getEnchantments().keySet()) {
|
||||
itemInHand.removeEnchantment(ench);
|
||||
}
|
||||
|
||||
Enchantment ench = null;
|
||||
playerMsg(sender, "Removed all enchantments.");
|
||||
} else {
|
||||
if (args.length < 2) {
|
||||
return false;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
ench = Enchantment.getByName(args[1]);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
}
|
||||
Enchantment ench = null;
|
||||
|
||||
if (ench == null)
|
||||
{
|
||||
playerMsg(sender, args[1] + " is an invalid enchantment for the held item. Type \"/enchant list\" for valid enchantments for this item.");
|
||||
return true;
|
||||
}
|
||||
try {
|
||||
ench = Enchantment.getByName(args[1]);
|
||||
} catch (Exception ex) {
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("add"))
|
||||
{
|
||||
if (ench.canEnchantItem(itemInHand))
|
||||
{
|
||||
itemInHand.addEnchantment(ench, ench.getMaxLevel());
|
||||
if (ench == null) {
|
||||
playerMsg(sender, args[1]
|
||||
+ " is an invalid enchantment for the held item. Type \"/enchant list\" for valid enchantments for this item.");
|
||||
return true;
|
||||
}
|
||||
|
||||
playerMsg(sender, "Added enchantment: " + ench.getName());
|
||||
}
|
||||
else
|
||||
{
|
||||
playerMsg(sender, "Can't use this enchantment on held item.");
|
||||
}
|
||||
}
|
||||
else if (args[0].equals("remove"))
|
||||
{
|
||||
itemInHand.removeEnchantment(ench);
|
||||
if (args[0].equalsIgnoreCase("add")) {
|
||||
if (ench.canEnchantItem(itemInHand)) {
|
||||
itemInHand.addEnchantment(ench, ench.getMaxLevel());
|
||||
|
||||
playerMsg(sender, "Removed enchantment: " + ench.getName());
|
||||
}
|
||||
}
|
||||
playerMsg(sender, "Added enchantment: " + ench.getName());
|
||||
} else {
|
||||
playerMsg(sender, "Can't use this enchantment on held item.");
|
||||
}
|
||||
} else if (args[0].equals("remove")) {
|
||||
itemInHand.removeEnchantment(ench);
|
||||
|
||||
return true;
|
||||
}
|
||||
playerMsg(sender, "Removed enchantment: " + ench.getName());
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,9 +6,11 @@ import org.bukkit.command.CommandSender;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.ONLY_IN_GAME)
|
||||
public class Command_ender extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Utilities.gotoWorld(sender_p, server.getWorlds().get(0).getName() + "_the_end");
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Utilities.gotoWorld(sender_p, server.getWorlds().get(0).getName() + "_the_end");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import me.StevenLawson.TotalFreedomMod.util.Utilities;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.bukkit.Location;
|
||||
|
@ -8,77 +10,63 @@ import org.bukkit.command.CommandSender;
|
|||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_IN_GAME)
|
||||
public class Command_expel extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
double radius = 20.0;
|
||||
double strength = 5.0;
|
||||
|
||||
if (args.length >= 1) {
|
||||
try {
|
||||
radius = Math.max(1.0, Math.min(100.0, Double.parseDouble(args[0])));
|
||||
}
|
||||
catch (NumberFormatException ex)
|
||||
{
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
double radius = 20.0;
|
||||
double strength = 5.0;
|
||||
|
||||
if (args.length >= 2)
|
||||
{
|
||||
try
|
||||
{
|
||||
strength = Math.max(0.0, Math.min(50.0, Double.parseDouble(args[1])));
|
||||
}
|
||||
catch (NumberFormatException ex)
|
||||
{
|
||||
}
|
||||
}
|
||||
if (args.length >= 1) {
|
||||
try {
|
||||
radius = Math.max(1.0, Math.min(100.0, Double.parseDouble(args[0])));
|
||||
} catch (NumberFormatException ex) {
|
||||
}
|
||||
}
|
||||
|
||||
List<String> pushedPlayers = new ArrayList<String>();
|
||||
if (args.length >= 2) {
|
||||
try {
|
||||
strength = Math.max(0.0, Math.min(50.0, Double.parseDouble(args[1])));
|
||||
} catch (NumberFormatException ex) {
|
||||
}
|
||||
}
|
||||
|
||||
final Vector senderPos = sender_p.getLocation().toVector();
|
||||
final List<Player> players = sender_p.getWorld().getPlayers();
|
||||
for (final Player player : players)
|
||||
{
|
||||
if (player.equals(sender_p))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
List<String> pushedPlayers = new ArrayList<String>();
|
||||
|
||||
final Location targetPos = player.getLocation();
|
||||
final Vector targetPosVec = targetPos.toVector();
|
||||
final Vector senderPos = sender_p.getLocation().toVector();
|
||||
final List<Player> players = sender_p.getWorld().getPlayers();
|
||||
for (final Player player : players) {
|
||||
if (player.equals(sender_p)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
boolean inRange = false;
|
||||
try
|
||||
{
|
||||
inRange = targetPosVec.distanceSquared(senderPos) < (radius * radius);
|
||||
}
|
||||
catch (IllegalArgumentException ex)
|
||||
{
|
||||
}
|
||||
final Location targetPos = player.getLocation();
|
||||
final Vector targetPosVec = targetPos.toVector();
|
||||
|
||||
if (inRange)
|
||||
{
|
||||
player.getWorld().createExplosion(targetPos, 0.0f, false);
|
||||
Utilities.setFlying(player, false);
|
||||
player.setVelocity(targetPosVec.subtract(senderPos).normalize().multiply(strength));
|
||||
pushedPlayers.add(player.getName());
|
||||
}
|
||||
}
|
||||
boolean inRange = false;
|
||||
try {
|
||||
inRange = targetPosVec.distanceSquared(senderPos) < (radius * radius);
|
||||
} catch (IllegalArgumentException ex) {
|
||||
}
|
||||
|
||||
if (pushedPlayers.isEmpty())
|
||||
{
|
||||
playerMsg(sender, "No players pushed.");
|
||||
}
|
||||
else
|
||||
{
|
||||
playerMsg(sender, "Pushed " + pushedPlayers.size() + " players: " + StringUtils.join(pushedPlayers, ", "));
|
||||
}
|
||||
if (inRange) {
|
||||
player.getWorld().createExplosion(targetPos, 0.0f, false);
|
||||
Utilities.setFlying(player, false);
|
||||
player.setVelocity(targetPosVec.subtract(senderPos).normalize().multiply(strength));
|
||||
pushedPlayers.add(player.getName());
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
if (pushedPlayers.isEmpty()) {
|
||||
playerMsg(sender, "No players pushed.");
|
||||
} else {
|
||||
playerMsg(sender,
|
||||
"Pushed " + pushedPlayers.size() + " players: " + StringUtils.join(pushedPlayers,
|
||||
", "));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.util.List;
|
||||
import me.StevenLawson.TotalFreedomMod.player.PlayerList;
|
||||
import me.StevenLawson.TotalFreedomMod.player.PlayerRank;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
@ -7,37 +8,36 @@ import org.bukkit.command.Command;
|
|||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_findip extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final Player player = getPlayer(args[0]);
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player == null) {
|
||||
final Player player = getPlayer(args[0]);
|
||||
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
if (player == null) {
|
||||
|
||||
PlayerRank rank = PlayerRank.fromSender(sender);
|
||||
PlayerRank targetRank = PlayerRank.fromSender(player);
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
|
||||
List<String> ipsToShow = PlayerList.getEntry(player).getIps();
|
||||
PlayerRank rank = PlayerRank.fromSender(sender);
|
||||
PlayerRank targetRank = PlayerRank.fromSender(player);
|
||||
|
||||
if(rank.getOrdinal() < PlayerRank.SENIOR.getOrdinal() || targetRank.getOrdinal() >= rank.getOrdinal()) {
|
||||
ipsToShow = PlayerList.getEntry(player).getFuzziedIps();
|
||||
}
|
||||
List<String> ipsToShow = PlayerList.getEntry(player).getIps();
|
||||
|
||||
if (rank.getOrdinal() < PlayerRank.SENIOR.getOrdinal()
|
||||
|| targetRank.getOrdinal() >= rank.getOrdinal()) {
|
||||
ipsToShow = PlayerList.getEntry(player).getFuzziedIps();
|
||||
}
|
||||
|
||||
playerMsg(sender, "Player IPs: " + StringUtils.join(ipsToShow, ", "));
|
||||
playerMsg(sender, "Player IPs: " + StringUtils.join(ipsToShow, ", "));
|
||||
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,13 +7,15 @@ import org.bukkit.command.CommandSender;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.ONLY_IN_GAME)
|
||||
public class Command_flatlands extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (ConfigurationEntry.FLATLANDS_GENERATE.getBoolean()) {
|
||||
FlatlandsWorld.getInstance().sendToWorld(sender_p);
|
||||
} else {
|
||||
playerMsg(sender, "Flatlands is currently disabled.");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (ConfigurationEntry.FLATLANDS_GENERATE.getBoolean()) {
|
||||
FlatlandsWorld.getInstance().sendToWorld(sender_p);
|
||||
} else {
|
||||
playerMsg(sender, "Flatlands is currently disabled.");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,68 +11,64 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_fr extends FreedomCommand {
|
||||
private static boolean allFrozen = false;
|
||||
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 0) {
|
||||
allFrozen = !allFrozen;
|
||||
private static boolean allFrozen = false;
|
||||
|
||||
if (allFrozen) {
|
||||
Utilities.adminAction(sender.getName(), "Freezing all players", false);
|
||||
public static void setAllFrozen(boolean freeze) {
|
||||
allFrozen = freeze;
|
||||
for (PlayerData data : PlayerData.PLAYER_DATA.values()) {
|
||||
data.setFrozen(freeze);
|
||||
}
|
||||
}
|
||||
|
||||
setAllFrozen(true);
|
||||
playerMsg(sender, "Players are now frozen.");
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 0) {
|
||||
allFrozen = !allFrozen;
|
||||
|
||||
for (Player player : Bukkit.getOnlinePlayers())
|
||||
{
|
||||
if (!AdminList.isSuperAdmin(player))
|
||||
{
|
||||
playerMsg(player, "You have been frozen due to rulebreakers, you will be unfrozen soon.", ChatColor.RED);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "Unfreezing all players", false);
|
||||
setAllFrozen(false);
|
||||
playerMsg(sender, "Players are now free to move.");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (args[0].equalsIgnoreCase("purge"))
|
||||
{
|
||||
setAllFrozen(false);
|
||||
Utilities.adminAction(sender.getName(), "Unfreezing all players", false);
|
||||
}
|
||||
else
|
||||
{
|
||||
final Player player = getPlayer(args[0]);
|
||||
if (allFrozen) {
|
||||
Utilities.adminAction(sender.getName(), "Freezing all players", false);
|
||||
|
||||
if (player == null)
|
||||
{
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
setAllFrozen(true);
|
||||
playerMsg(sender, "Players are now frozen.");
|
||||
|
||||
final PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
playerdata.setFrozen(!playerdata.isFrozen());
|
||||
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||
if (!AdminList.isSuperAdmin(player)) {
|
||||
playerMsg(player,
|
||||
"You have been frozen due to rulebreakers, you will be unfrozen soon.",
|
||||
ChatColor.RED);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Utilities.adminAction(sender.getName(), "Unfreezing all players", false);
|
||||
setAllFrozen(false);
|
||||
playerMsg(sender, "Players are now free to move.");
|
||||
}
|
||||
} else {
|
||||
if (args[0].equalsIgnoreCase("purge")) {
|
||||
setAllFrozen(false);
|
||||
Utilities.adminAction(sender.getName(), "Unfreezing all players", false);
|
||||
} else {
|
||||
final Player player = getPlayer(args[0]);
|
||||
|
||||
playerMsg(sender, player.getName() + " has been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
|
||||
playerMsg(player, "You have been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".", ChatColor.AQUA);
|
||||
}
|
||||
}
|
||||
if (player == null) {
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
final PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
playerdata.setFrozen(!playerdata.isFrozen());
|
||||
|
||||
public static void setAllFrozen(boolean freeze)
|
||||
{
|
||||
allFrozen = freeze;
|
||||
for (PlayerData data : PlayerData.PLAYER_DATA.values())
|
||||
{
|
||||
data.setFrozen(freeze);
|
||||
}
|
||||
}
|
||||
playerMsg(sender,
|
||||
player.getName() + " has been " + (playerdata.isFrozen() ? "frozen"
|
||||
: "unfrozen") + ".");
|
||||
playerMsg(player,
|
||||
"You have been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".",
|
||||
ChatColor.AQUA);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,40 +6,37 @@ import org.bukkit.command.CommandSender;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_IN_GAME)
|
||||
public class Command_fuckoff extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
boolean fuckoff_enabled = false;
|
||||
double fuckoff_range = 25.0;
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("on"))
|
||||
{
|
||||
fuckoff_enabled = true;
|
||||
boolean fuckoff_enabled = false;
|
||||
double fuckoff_range = 25.0;
|
||||
|
||||
if (args.length >= 2)
|
||||
{
|
||||
try
|
||||
{
|
||||
fuckoff_range = Math.max(5.0, Math.min(100.0, Double.parseDouble(args[1])));
|
||||
}
|
||||
catch (NumberFormatException ex)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
if (args[0].equalsIgnoreCase("on")) {
|
||||
fuckoff_enabled = true;
|
||||
|
||||
TotalFreedomMod.fuckoffEnabledFor.remove(sender_p);
|
||||
if (args.length >= 2) {
|
||||
try {
|
||||
fuckoff_range = Math.max(5.0, Math.min(100.0, Double.parseDouble(args[1])));
|
||||
} catch (NumberFormatException ex) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (fuckoff_enabled)
|
||||
{
|
||||
TotalFreedomMod.fuckoffEnabledFor.put(sender_p, new Double(fuckoff_range));
|
||||
}
|
||||
TotalFreedomMod.fuckoffEnabledFor.remove(sender_p);
|
||||
|
||||
playerMsg(sender, "Fuckoff " + (fuckoff_enabled ? ("enabled. Range: " + fuckoff_range + ".") : "disabled."));
|
||||
if (fuckoff_enabled) {
|
||||
TotalFreedomMod.fuckoffEnabledFor.put(sender_p, new Double(fuckoff_range));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
playerMsg(sender, "Fuckoff " + (fuckoff_enabled ? ("enabled. Range: " + fuckoff_range + ".")
|
||||
: "disabled."));
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,196 +1,183 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.util.Iterator;
|
||||
import me.StevenLawson.TotalFreedomMod.ban.BanManager;
|
||||
import me.StevenLawson.TotalFreedomMod.player.PlayerData;
|
||||
import me.StevenLawson.TotalFreedomMod.manager.UUIDManager;
|
||||
import me.StevenLawson.TotalFreedomMod.player.PlayerData;
|
||||
import me.StevenLawson.TotalFreedomMod.util.Utilities;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.Iterator;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_gadmin extends FreedomCommand {
|
||||
private enum GadminMode {
|
||||
LIST("list"),
|
||||
KICK("kick"),
|
||||
NAMEBAN("nameban"),
|
||||
IPBAN("ipban"),
|
||||
BAN("ban"),
|
||||
OP("op"),
|
||||
DEOP("deop"),
|
||||
CI("ci"),
|
||||
FR("fr"),
|
||||
SMITE("smite");
|
||||
private final String modeName;
|
||||
|
||||
GadminMode(String command)
|
||||
{
|
||||
this.modeName = command;
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public String getModeName()
|
||||
{
|
||||
return modeName;
|
||||
}
|
||||
final GadminMode mode = GadminMode.findMode(args[0].toLowerCase());
|
||||
if (mode == null) {
|
||||
playerMsg(sender, "Invalid mode: " + args[0], ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
|
||||
public static GadminMode findMode(String needle)
|
||||
{
|
||||
for (final GadminMode mode : GadminMode.values())
|
||||
{
|
||||
if (needle.equalsIgnoreCase(mode.getModeName()))
|
||||
{
|
||||
return mode;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
final Iterator<? extends Player> it = server.getOnlinePlayers().iterator();
|
||||
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 0) {
|
||||
return false;
|
||||
}
|
||||
if (mode == GadminMode.LIST) {
|
||||
playerMsg(sender, "[ Real Name ] : [ Display Name ] - Hash:");
|
||||
while (it.hasNext()) {
|
||||
final Player player = it.next();
|
||||
final String hash = UUIDManager.getUniqueId(player).toString().substring(0, 4);
|
||||
sender.sendMessage(ChatColor.GRAY + String.format("[ %s ] : [ %s ] - %s",
|
||||
player.getName(),
|
||||
ChatColor.stripColor(player.getDisplayName()),
|
||||
hash));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
final GadminMode mode = GadminMode.findMode(args[0].toLowerCase());
|
||||
if (mode == null) {
|
||||
playerMsg(sender, "Invalid mode: " + args[0], ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
if (args.length < 2) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final Iterator<? extends Player> it = server.getOnlinePlayers().iterator();
|
||||
Player target = null;
|
||||
while (it.hasNext() && target == null) {
|
||||
final Player player = it.next();
|
||||
final String hash = UUIDManager.getUniqueId(player).toString().substring(0, 4);
|
||||
|
||||
if (mode == GadminMode.LIST)
|
||||
{
|
||||
playerMsg(sender, "[ Real Name ] : [ Display Name ] - Hash:");
|
||||
while (it.hasNext())
|
||||
{
|
||||
final Player player = it.next();
|
||||
final String hash = UUIDManager.getUniqueId(player).toString().substring(0, 4);
|
||||
sender.sendMessage(ChatColor.GRAY + String.format("[ %s ] : [ %s ] - %s",
|
||||
player.getName(),
|
||||
ChatColor.stripColor(player.getDisplayName()),
|
||||
hash));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (hash.equalsIgnoreCase(args[1])) {
|
||||
target = player;
|
||||
}
|
||||
}
|
||||
|
||||
if (args.length < 2)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (target == null) {
|
||||
playerMsg(sender, "Invalid player hash: " + args[1], ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
|
||||
Player target = null;
|
||||
while (it.hasNext() && target == null)
|
||||
{
|
||||
final Player player = it.next();
|
||||
final String hash = UUIDManager.getUniqueId(player).toString().substring(0, 4);
|
||||
switch (mode) {
|
||||
case KICK: {
|
||||
Utilities.adminAction(sender.getName(),
|
||||
String.format("Kicking: %s.", target.getName()), false);
|
||||
target.kickPlayer("Kicked by Administrator");
|
||||
|
||||
if (hash.equalsIgnoreCase(args[1]))
|
||||
{
|
||||
target = player;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case NAMEBAN: {
|
||||
BanManager.addUuidBan(target);
|
||||
|
||||
if (target == null)
|
||||
{
|
||||
playerMsg(sender, "Invalid player hash: " + args[1], ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
Utilities.adminAction(sender.getName(),
|
||||
String.format("Banning Name: %s.", target.getName()), true);
|
||||
target.kickPlayer("Username banned by Administrator.");
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case KICK:
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), String.format("Kicking: %s.", target.getName()), false);
|
||||
target.kickPlayer("Kicked by Administrator");
|
||||
break;
|
||||
}
|
||||
case IPBAN: {
|
||||
String ip = target.getAddress().getAddress().getHostAddress();
|
||||
String[] ip_parts = ip.split("\\.");
|
||||
if (ip_parts.length == 4) {
|
||||
ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
|
||||
}
|
||||
Utilities.adminAction(sender.getName(), String.format("Banning IP: %s.", ip), true);
|
||||
BanManager.addIpBan(target);
|
||||
|
||||
break;
|
||||
}
|
||||
case NAMEBAN:
|
||||
{
|
||||
BanManager.addUuidBan(target);
|
||||
target.kickPlayer("IP address banned by Administrator.");
|
||||
|
||||
Utilities.adminAction(sender.getName(), String.format("Banning Name: %s.", target.getName()), true);
|
||||
target.kickPlayer("Username banned by Administrator.");
|
||||
break;
|
||||
}
|
||||
case BAN: {
|
||||
String ip = target.getAddress().getAddress().getHostAddress();
|
||||
String[] ip_parts = ip.split("\\.");
|
||||
if (ip_parts.length == 4) {
|
||||
ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
|
||||
}
|
||||
Utilities.adminAction(sender.getName(),
|
||||
String.format("Banning Name: %s, IP: %s.", target.getName(), ip), true);
|
||||
|
||||
break;
|
||||
}
|
||||
case IPBAN:
|
||||
{
|
||||
String ip = target.getAddress().getAddress().getHostAddress();
|
||||
String[] ip_parts = ip.split("\\.");
|
||||
if (ip_parts.length == 4)
|
||||
{
|
||||
ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
|
||||
}
|
||||
Utilities.adminAction(sender.getName(), String.format("Banning IP: %s.", ip), true);
|
||||
BanManager.addIpBan(target);
|
||||
BanManager.addUuidBan(target);
|
||||
BanManager.addIpBan(target);
|
||||
|
||||
target.kickPlayer("IP address banned by Administrator.");
|
||||
target.kickPlayer("IP and username banned by Administrator.");
|
||||
|
||||
break;
|
||||
}
|
||||
case BAN:
|
||||
{
|
||||
String ip = target.getAddress().getAddress().getHostAddress();
|
||||
String[] ip_parts = ip.split("\\.");
|
||||
if (ip_parts.length == 4)
|
||||
{
|
||||
ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
|
||||
}
|
||||
Utilities.adminAction(sender.getName(), String.format("Banning Name: %s, IP: %s.", target.getName(), ip), true);
|
||||
break;
|
||||
}
|
||||
case OP: {
|
||||
Utilities.adminAction(sender.getName(),
|
||||
String.format("Opping %s.", target.getName()), false);
|
||||
target.setOp(false);
|
||||
target.sendMessage(FreedomCommand.YOU_ARE_OP);
|
||||
|
||||
BanManager.addUuidBan(target);
|
||||
BanManager.addIpBan(target);
|
||||
break;
|
||||
}
|
||||
case DEOP: {
|
||||
Utilities.adminAction(sender.getName(),
|
||||
String.format("Deopping %s.", target.getName()), false);
|
||||
target.setOp(false);
|
||||
target.sendMessage(FreedomCommand.YOU_ARE_NOT_OP);
|
||||
|
||||
target.kickPlayer("IP and username banned by Administrator.");
|
||||
break;
|
||||
}
|
||||
case CI: {
|
||||
target.getInventory().clear();
|
||||
|
||||
break;
|
||||
}
|
||||
case OP:
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), String.format("Opping %s.", target.getName()), false);
|
||||
target.setOp(false);
|
||||
target.sendMessage(FreedomCommand.YOU_ARE_OP);
|
||||
break;
|
||||
}
|
||||
case FR: {
|
||||
PlayerData playerdata = PlayerData.getPlayerData(target);
|
||||
playerdata.setFrozen(!playerdata.isFrozen());
|
||||
|
||||
break;
|
||||
}
|
||||
case DEOP:
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), String.format("Deopping %s.", target.getName()), false);
|
||||
target.setOp(false);
|
||||
target.sendMessage(FreedomCommand.YOU_ARE_NOT_OP);
|
||||
playerMsg(sender,
|
||||
target.getName() + " has been " + (playerdata.isFrozen() ? "frozen"
|
||||
: "unfrozen") + ".");
|
||||
target.sendMessage(
|
||||
ChatColor.AQUA + "You have been " + (playerdata.isFrozen() ? "frozen"
|
||||
: "unfrozen") + ".");
|
||||
|
||||
break;
|
||||
}
|
||||
case CI:
|
||||
{
|
||||
target.getInventory().clear();
|
||||
break;
|
||||
}
|
||||
case SMITE: {
|
||||
Command_smite.smite(target);
|
||||
|
||||
break;
|
||||
}
|
||||
case FR:
|
||||
{
|
||||
PlayerData playerdata = PlayerData.getPlayerData(target);
|
||||
playerdata.setFrozen(!playerdata.isFrozen());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
playerMsg(sender, target.getName() + " has been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
|
||||
target.sendMessage(ChatColor.AQUA + "You have been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
|
||||
return true;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case SMITE:
|
||||
{
|
||||
Command_smite.smite(target);
|
||||
private enum GadminMode {
|
||||
LIST("list"),
|
||||
KICK("kick"),
|
||||
NAMEBAN("nameban"),
|
||||
IPBAN("ipban"),
|
||||
BAN("ban"),
|
||||
OP("op"),
|
||||
DEOP("deop"),
|
||||
CI("ci"),
|
||||
FR("fr"),
|
||||
SMITE("smite");
|
||||
private final String modeName;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
GadminMode(String command) {
|
||||
this.modeName = command;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
public static GadminMode findMode(String needle) {
|
||||
for (final GadminMode mode : GadminMode.values()) {
|
||||
if (needle.equalsIgnoreCase(mode.getModeName())) {
|
||||
return mode;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getModeName() {
|
||||
return modeName;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,121 +1,107 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import me.StevenLawson.TotalFreedomMod.admin.AdminList;
|
||||
import me.StevenLawson.TotalFreedomMod.ban.Ban;
|
||||
import me.StevenLawson.TotalFreedomMod.ban.BanManager;
|
||||
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
|
||||
import me.StevenLawson.TotalFreedomMod.manager.UUIDManager;
|
||||
import me.StevenLawson.TotalFreedomMod.player.Player;
|
||||
import me.StevenLawson.TotalFreedomMod.player.PlayerList;
|
||||
import me.StevenLawson.TotalFreedomMod.manager.UUIDManager;
|
||||
import me.StevenLawson.TotalFreedomMod.util.Utilities;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_glist extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (args.length == 1) {
|
||||
if (args[0].equalsIgnoreCase("purge")) {
|
||||
if (AdminList.isSeniorAdmin(sender))
|
||||
{
|
||||
PlayerList.purgeAll();
|
||||
playerMsg(sender, "Purged playerbase");
|
||||
}
|
||||
else
|
||||
{
|
||||
playerMsg(sender, "Only Senior Admins may purge the userlist.");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (args.length == 2)
|
||||
{
|
||||
String username;
|
||||
final List<String> ips = new ArrayList<String>();
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final org.bukkit.entity.Player player = getPlayer(args[1]);
|
||||
if (args.length == 1) {
|
||||
if (args[0].equalsIgnoreCase("purge")) {
|
||||
if (AdminList.isSeniorAdmin(sender)) {
|
||||
PlayerList.purgeAll();
|
||||
playerMsg(sender, "Purged playerbase");
|
||||
} else {
|
||||
playerMsg(sender, "Only Senior Admins may purge the userlist.");
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else if (args.length == 2) {
|
||||
String username;
|
||||
final List<String> ips = new ArrayList<String>();
|
||||
|
||||
if (player == null)
|
||||
{
|
||||
final me.StevenLawson.TotalFreedomMod.player.Player entry = PlayerList.getEntry(UUIDManager.getUniqueId(args[1]));
|
||||
final org.bukkit.entity.Player player = getPlayer(args[1]);
|
||||
|
||||
if (entry == null) {
|
||||
playerMsg(sender, "Can't find that user. If target is not logged in, make sure that you spelled the name exactly.");
|
||||
return true;
|
||||
}
|
||||
if (player == null) {
|
||||
final me.StevenLawson.TotalFreedomMod.player.Player entry = PlayerList.getEntry(
|
||||
UUIDManager.getUniqueId(args[1]));
|
||||
|
||||
username = entry.getLastLoginName();
|
||||
for (String ip : entry.getIps()) {
|
||||
ips.add(Utilities.getFuzzyIp(ip));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
username = player.getName();
|
||||
final Player entry = PlayerList.getEntry(UUIDManager.getUniqueId(player));
|
||||
if (entry == null) {
|
||||
playerMsg(sender,
|
||||
"Can't find that user. If target is not logged in, make sure that you spelled the name exactly.");
|
||||
return true;
|
||||
}
|
||||
|
||||
for (String ip : entry.getIps()) {
|
||||
ips.add(Utilities.getFuzzyIp(ip));
|
||||
}
|
||||
username = entry.getLastLoginName();
|
||||
for (String ip : entry.getIps()) {
|
||||
ips.add(Utilities.getFuzzyIp(ip));
|
||||
}
|
||||
} else {
|
||||
username = player.getName();
|
||||
final Player entry = PlayerList.getEntry(UUIDManager.getUniqueId(player));
|
||||
|
||||
}
|
||||
for (String ip : entry.getIps()) {
|
||||
ips.add(Utilities.getFuzzyIp(ip));
|
||||
}
|
||||
|
||||
String mode = args[0].toLowerCase();
|
||||
if (mode.equalsIgnoreCase("ban"))
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "Banning " + username + " and IPs: " + StringUtils.join(ips, ", "), true);
|
||||
}
|
||||
|
||||
final org.bukkit.entity.Player target = getPlayer(username, true);
|
||||
if (target != null)
|
||||
{
|
||||
BanManager.addUuidBan(new Ban(UUIDManager.getUniqueId(target), target.getName()));
|
||||
target.kickPlayer("You have been banned by " + sender.getName() + "\n If you think you have been banned wrongly, appeal here: " + ConfigurationEntry.SERVER_BAN_URL.getString());
|
||||
}
|
||||
else
|
||||
{
|
||||
BanManager.addUuidBan(new Ban(UUIDManager.getUniqueId(username), username));
|
||||
}
|
||||
String mode = args[0].toLowerCase();
|
||||
if (mode.equalsIgnoreCase("ban")) {
|
||||
Utilities.adminAction(sender.getName(),
|
||||
"Banning " + username + " and IPs: " + StringUtils.join(ips, ", "), true);
|
||||
|
||||
for (String ip : ips)
|
||||
{
|
||||
BanManager.addIpBan(new Ban(ip, username));
|
||||
BanManager.addIpBan(new Ban(Utilities.getFuzzyIp(ip), username));
|
||||
}
|
||||
}
|
||||
else if (mode.equalsIgnoreCase("unban"))
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "Unbanning " + username + " and IPs: " + StringUtils.join(ips, ", "), true);
|
||||
BanManager.unbanUuid(UUIDManager.getUniqueId(username));
|
||||
for (String ip : ips)
|
||||
{
|
||||
final org.bukkit.entity.Player target = getPlayer(username, true);
|
||||
if (target != null) {
|
||||
BanManager.addUuidBan(
|
||||
new Ban(UUIDManager.getUniqueId(target), target.getName()));
|
||||
target.kickPlayer("You have been banned by " + sender.getName()
|
||||
+ "\n If you think you have been banned wrongly, appeal here: "
|
||||
+ ConfigurationEntry.SERVER_BAN_URL.getString());
|
||||
} else {
|
||||
BanManager.addUuidBan(new Ban(UUIDManager.getUniqueId(username), username));
|
||||
}
|
||||
|
||||
BanManager.unbanIp(ip);
|
||||
BanManager.unbanIp(Utilities.getFuzzyIp(ip));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
for (String ip : ips) {
|
||||
BanManager.addIpBan(new Ban(ip, username));
|
||||
BanManager.addIpBan(new Ban(Utilities.getFuzzyIp(ip), username));
|
||||
}
|
||||
} else if (mode.equalsIgnoreCase("unban")) {
|
||||
Utilities.adminAction(sender.getName(),
|
||||
"Unbanning " + username + " and IPs: " + StringUtils.join(ips, ", "), true);
|
||||
BanManager.unbanUuid(UUIDManager.getUniqueId(username));
|
||||
for (String ip : ips) {
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
BanManager.unbanIp(ip);
|
||||
BanManager.unbanIp(Utilities.getFuzzyIp(ip));
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,85 +16,86 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_gtfo extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final Player player = getPlayer(args[0]);
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player == null) {
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
final Player player = getPlayer(args[0]);
|
||||
|
||||
String reason = null;
|
||||
if (args.length >= 2)
|
||||
{
|
||||
reason = StringUtils.join(ArrayUtils.subarray(args, 1, args.length), " ");
|
||||
}
|
||||
if (player == null) {
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
|
||||
Utilities.bcastMsg(player.getName() + " has been a VERY naughty, naughty boy.", ChatColor.RED);
|
||||
String reason = null;
|
||||
if (args.length >= 2) {
|
||||
reason = StringUtils.join(ArrayUtils.subarray(args, 1, args.length), " ");
|
||||
}
|
||||
|
||||
// Undo WorldEdits:
|
||||
try
|
||||
{
|
||||
WorldEditBridge.undo(player, 15);
|
||||
}
|
||||
catch (NoClassDefFoundError ex)
|
||||
{
|
||||
}
|
||||
Utilities.bcastMsg(player.getName() + " has been a VERY naughty, naughty boy.",
|
||||
ChatColor.RED);
|
||||
|
||||
// rollback
|
||||
// RollbackManager.rollback(player.getName());
|
||||
// TODO: Use coreprotect API calls
|
||||
// Undo WorldEdits:
|
||||
try {
|
||||
WorldEditBridge.undo(player, 15);
|
||||
} catch (NoClassDefFoundError ex) {
|
||||
}
|
||||
|
||||
// deop
|
||||
player.setOp(false);
|
||||
// rollback
|
||||
// RollbackManager.rollback(player.getName());
|
||||
// TODO: Use coreprotect API calls
|
||||
|
||||
// set gamemode to survival:
|
||||
player.setGameMode(GameMode.SURVIVAL);
|
||||
// deop
|
||||
player.setOp(false);
|
||||
|
||||
// clear inventory:
|
||||
player.getInventory().clear();
|
||||
// set gamemode to survival:
|
||||
player.setGameMode(GameMode.SURVIVAL);
|
||||
|
||||
// strike with lightning effect:
|
||||
final Location targetPos = player.getLocation();
|
||||
for (int x = -1; x <= 1; x++)
|
||||
{
|
||||
for (int z = -1; z <= 1; z++)
|
||||
{
|
||||
final Location strike_pos = new Location(targetPos.getWorld(), targetPos.getBlockX() + x, targetPos.getBlockY(), targetPos.getBlockZ() + z);
|
||||
targetPos.getWorld().strikeLightning(strike_pos);
|
||||
}
|
||||
}
|
||||
// clear inventory:
|
||||
player.getInventory().clear();
|
||||
|
||||
// ban IP address:
|
||||
String ip = Utilities.getFuzzyIp(player.getAddress().getAddress().getHostAddress());
|
||||
// strike with lightning effect:
|
||||
final Location targetPos = player.getLocation();
|
||||
for (int x = -1; x <= 1; x++) {
|
||||
for (int z = -1; z <= 1; z++) {
|
||||
final Location strike_pos = new Location(targetPos.getWorld(),
|
||||
targetPos.getBlockX() + x, targetPos.getBlockY(), targetPos.getBlockZ() + z);
|
||||
targetPos.getWorld().strikeLightning(strike_pos);
|
||||
}
|
||||
}
|
||||
|
||||
final StringBuilder bcast = new StringBuilder()
|
||||
.append(ChatColor.RED)
|
||||
.append("Banning: ")
|
||||
.append(player.getName())
|
||||
.append(", IP: ")
|
||||
.append(ip);
|
||||
// ban IP address:
|
||||
String ip = Utilities.getFuzzyIp(player.getAddress().getAddress().getHostAddress());
|
||||
|
||||
if (reason != null)
|
||||
{
|
||||
bcast.append(" - Reason: ").append(ChatColor.YELLOW).append(reason);
|
||||
}
|
||||
final StringBuilder bcast = new StringBuilder()
|
||||
.append(ChatColor.RED)
|
||||
.append("Banning: ")
|
||||
.append(player.getName())
|
||||
.append(", IP: ")
|
||||
.append(ip);
|
||||
|
||||
Utilities.bcastMsg(bcast.toString());
|
||||
if (reason != null) {
|
||||
bcast.append(" - Reason: ").append(ChatColor.YELLOW).append(reason);
|
||||
}
|
||||
|
||||
BanManager.addIpBan(new Ban(ip, player.getName(), sender.getName(), null, reason));
|
||||
Utilities.bcastMsg(bcast.toString());
|
||||
|
||||
// ban username:
|
||||
BanManager.addUuidBan(new Ban(UUIDManager.getUniqueId(player), player.getName(), sender.getName(), null, reason));
|
||||
BanManager.addIpBan(new Ban(ip, player.getName(), sender.getName(), null, reason));
|
||||
|
||||
// kick Player:
|
||||
player.kickPlayer(ChatColor.RED + "GTFO" + (reason != null ? ("\nReason: " + ChatColor.YELLOW + reason) : ""));
|
||||
// ban username:
|
||||
BanManager.addUuidBan(
|
||||
new Ban(UUIDManager.getUniqueId(player), player.getName(), sender.getName(), null,
|
||||
reason));
|
||||
|
||||
return true;
|
||||
}
|
||||
// kick Player:
|
||||
player.kickPlayer(
|
||||
ChatColor.RED + "GTFO" + (reason != null ? ("\nReason: " + ChatColor.YELLOW + reason)
|
||||
: ""));
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,88 +9,76 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_halt extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("all")) {
|
||||
Utilities.adminAction(sender.getName(), "Halting all non-superadmins.", true);
|
||||
int counter = 0;
|
||||
for (Player player : server.getOnlinePlayers())
|
||||
{
|
||||
if (!AdminList.isSuperAdmin(player))
|
||||
{
|
||||
PlayerData.getPlayerData(player).setHalted(true);
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
playerMsg(sender, "Halted " + counter + " players.");
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("purge"))
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "Unhalting all players.", true);
|
||||
int counter = 0;
|
||||
for (Player player : server.getOnlinePlayers())
|
||||
{
|
||||
PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
if (PlayerData.getPlayerData(player).isHalted())
|
||||
{
|
||||
playerdata.setHalted(false);
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
playerMsg(sender, "Unhalted " + counter + " players.");
|
||||
return true;
|
||||
}
|
||||
if (args[0].equalsIgnoreCase("all")) {
|
||||
Utilities.adminAction(sender.getName(), "Halting all non-superadmins.", true);
|
||||
int counter = 0;
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
if (!AdminList.isSuperAdmin(player)) {
|
||||
PlayerData.getPlayerData(player).setHalted(true);
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
playerMsg(sender, "Halted " + counter + " players.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("list"))
|
||||
{
|
||||
PlayerData info;
|
||||
int count = 0;
|
||||
for (Player hp : server.getOnlinePlayers())
|
||||
{
|
||||
info = PlayerData.getPlayerData(hp);
|
||||
if (info.isHalted())
|
||||
{
|
||||
if (count == 0)
|
||||
{
|
||||
playerMsg(sender, "Halted players:");
|
||||
}
|
||||
playerMsg(sender, "- " + hp.getName());
|
||||
count++;
|
||||
}
|
||||
}
|
||||
if (count == 0)
|
||||
{
|
||||
playerMsg(sender, "There are currently no halted players.");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (args[0].equalsIgnoreCase("purge")) {
|
||||
Utilities.adminAction(sender.getName(), "Unhalting all players.", true);
|
||||
int counter = 0;
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
if (PlayerData.getPlayerData(player).isHalted()) {
|
||||
playerdata.setHalted(false);
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
playerMsg(sender, "Unhalted " + counter + " players.");
|
||||
return true;
|
||||
}
|
||||
|
||||
final Player player = getPlayer(args[0]);
|
||||
if (args[0].equalsIgnoreCase("list")) {
|
||||
PlayerData info;
|
||||
int count = 0;
|
||||
for (Player hp : server.getOnlinePlayers()) {
|
||||
info = PlayerData.getPlayerData(hp);
|
||||
if (info.isHalted()) {
|
||||
if (count == 0) {
|
||||
playerMsg(sender, "Halted players:");
|
||||
}
|
||||
playerMsg(sender, "- " + hp.getName());
|
||||
count++;
|
||||
}
|
||||
}
|
||||
if (count == 0) {
|
||||
playerMsg(sender, "There are currently no halted players.");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
if (player == null)
|
||||
{
|
||||
sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
final Player player = getPlayer(args[0]);
|
||||
|
||||
PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
if (!playerdata.isHalted())
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "Halting " + player.getName(), true);
|
||||
playerdata.setHalted(true);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "Unhalting " + player.getName(), true);
|
||||
playerdata.setHalted(false);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (player == null) {
|
||||
sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
|
||||
PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
if (!playerdata.isHalted()) {
|
||||
Utilities.adminAction(sender.getName(), "Halting " + player.getName(), true);
|
||||
playerdata.setHalted(true);
|
||||
return true;
|
||||
} else {
|
||||
Utilities.adminAction(sender.getName(), "Unhalting " + player.getName(), true);
|
||||
playerdata.setHalted(false);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import me.StevenLawson.TotalFreedomMod.Log;
|
||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||
import org.apache.commons.lang.math.DoubleRange;
|
||||
|
@ -9,89 +11,82 @@ import org.bukkit.command.CommandSender;
|
|||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
import org.bukkit.scheduler.BukkitTask;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_health extends FreedomCommand {
|
||||
private static final int BYTES_PER_MB = 1024 * 1024;
|
||||
private static final DoubleRange TPS_RANGE = new DoubleRange(20.0 - 0.1, 20.0 + 0.1);
|
||||
|
||||
@Override
|
||||
public boolean run(final CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Runtime runtime = Runtime.getRuntime();
|
||||
long usedMem = runtime.totalMemory() - runtime.freeMemory();
|
||||
private static final int BYTES_PER_MB = 1024 * 1024;
|
||||
private static final DoubleRange TPS_RANGE = new DoubleRange(20.0 - 0.1, 20.0 + 0.1);
|
||||
|
||||
playerMsg(sender, "Reserved Memory: " + (double) runtime.totalMemory() / (double) BYTES_PER_MB + "mb");
|
||||
playerMsg(sender, "Used Memory: " + new DecimalFormat("#").format((double) usedMem / (double) BYTES_PER_MB) + "mb (" + new DecimalFormat("#").format(((double) usedMem / (double) runtime.totalMemory()) * 100.0) + "%)");
|
||||
playerMsg(sender, "Max Memory: " + (double) runtime.maxMemory() / (double) BYTES_PER_MB + "mb");
|
||||
playerMsg(sender, "Calculating ticks per second, please wait...");
|
||||
@Override
|
||||
public boolean run(final CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Runtime runtime = Runtime.getRuntime();
|
||||
long usedMem = runtime.totalMemory() - runtime.freeMemory();
|
||||
|
||||
new BukkitRunnable()
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
try
|
||||
{
|
||||
TFM_TickMeter tickMeter = new TFM_TickMeter(plugin);
|
||||
tickMeter.startTicking();
|
||||
Thread.sleep(2500);
|
||||
final double ticksPerSecond = tickMeter.stopTicking();
|
||||
playerMsg(sender,
|
||||
"Reserved Memory: " + (double) runtime.totalMemory() / (double) BYTES_PER_MB + "mb");
|
||||
playerMsg(sender, "Used Memory: " + new DecimalFormat("#").format(
|
||||
(double) usedMem / (double) BYTES_PER_MB) + "mb (" + new DecimalFormat("#").format(
|
||||
((double) usedMem / (double) runtime.totalMemory()) * 100.0) + "%)");
|
||||
playerMsg(sender,
|
||||
"Max Memory: " + (double) runtime.maxMemory() / (double) BYTES_PER_MB + "mb");
|
||||
playerMsg(sender, "Calculating ticks per second, please wait...");
|
||||
|
||||
new BukkitRunnable()
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
playerMsg(sender, "Ticks per second: " + (TPS_RANGE.containsDouble(ticksPerSecond) ? ChatColor.GREEN : ChatColor.RED) + ticksPerSecond);
|
||||
}
|
||||
}.runTask(plugin);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.severe(ex);
|
||||
}
|
||||
}
|
||||
}.runTaskAsynchronously(plugin);
|
||||
new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
TFM_TickMeter tickMeter = new TFM_TickMeter(plugin);
|
||||
tickMeter.startTicking();
|
||||
Thread.sleep(2500);
|
||||
final double ticksPerSecond = tickMeter.stopTicking();
|
||||
|
||||
return true;
|
||||
}
|
||||
new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
playerMsg(sender,
|
||||
"Ticks per second: " + (TPS_RANGE.containsDouble(ticksPerSecond)
|
||||
? ChatColor.GREEN : ChatColor.RED) + ticksPerSecond);
|
||||
}
|
||||
}.runTask(plugin);
|
||||
} catch (Exception ex) {
|
||||
Log.severe(ex);
|
||||
}
|
||||
}
|
||||
}.runTaskAsynchronously(plugin);
|
||||
|
||||
private class TFM_TickMeter
|
||||
{
|
||||
private final AtomicInteger ticks = new AtomicInteger();
|
||||
private final TotalFreedomMod plugin;
|
||||
private long startTime;
|
||||
private BukkitTask task;
|
||||
return true;
|
||||
}
|
||||
|
||||
public TFM_TickMeter(TotalFreedomMod plugin)
|
||||
{
|
||||
this.plugin = plugin;
|
||||
}
|
||||
private class TFM_TickMeter {
|
||||
|
||||
public void startTicking()
|
||||
{
|
||||
startTime = System.currentTimeMillis();
|
||||
ticks.set(0);
|
||||
private final AtomicInteger ticks = new AtomicInteger();
|
||||
private final TotalFreedomMod plugin;
|
||||
private long startTime;
|
||||
private BukkitTask task;
|
||||
|
||||
task = new BukkitRunnable()
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
ticks.incrementAndGet();
|
||||
}
|
||||
}.runTaskTimer(plugin, 0L, 1L);
|
||||
}
|
||||
public TFM_TickMeter(TotalFreedomMod plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
public double stopTicking()
|
||||
{
|
||||
task.cancel();
|
||||
long elapsed = System.currentTimeMillis() - startTime;
|
||||
int tickCount = ticks.get();
|
||||
public void startTicking() {
|
||||
startTime = System.currentTimeMillis();
|
||||
ticks.set(0);
|
||||
|
||||
return (double) tickCount / ((double) elapsed / 1000.0);
|
||||
}
|
||||
}
|
||||
task = new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
ticks.incrementAndGet();
|
||||
}
|
||||
}.runTaskTimer(plugin, 0L, 1L);
|
||||
}
|
||||
|
||||
public double stopTicking() {
|
||||
task.cancel();
|
||||
long elapsed = System.currentTimeMillis() - startTime;
|
||||
int tickCount = ticks.get();
|
||||
|
||||
return (double) tickCount / ((double) elapsed / 1000.0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import me.StevenLawson.TotalFreedomMod.admin.AdminList;
|
||||
import me.StevenLawson.TotalFreedomMod.util.Utilities;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
@ -8,55 +10,47 @@ import org.bukkit.command.CommandSender;
|
|||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_invis extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
boolean smite = false;
|
||||
if (args.length >= 1) {
|
||||
if (args[0].equalsIgnoreCase("smite")) {
|
||||
Utilities.adminAction(sender.getName(), "Smiting all invisible players", true);
|
||||
smite = true;
|
||||
} else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
List<String> players = new ArrayList<String>();
|
||||
int smites = 0;
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
boolean smite = false;
|
||||
if (args.length >= 1) {
|
||||
if (args[0].equalsIgnoreCase("smite")) {
|
||||
Utilities.adminAction(sender.getName(), "Smiting all invisible players", true);
|
||||
smite = true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
for (Player player : server.getOnlinePlayers())
|
||||
{
|
||||
if (player.hasPotionEffect(PotionEffectType.INVISIBILITY))
|
||||
{
|
||||
players.add(player.getName());
|
||||
if (smite && !AdminList.isSuperAdmin(player))
|
||||
{
|
||||
player.setHealth(0.0);
|
||||
smites++;
|
||||
}
|
||||
}
|
||||
}
|
||||
List<String> players = new ArrayList<String>();
|
||||
int smites = 0;
|
||||
|
||||
if (players.isEmpty())
|
||||
{
|
||||
playerMsg(sender, "There are no invisible players");
|
||||
return true;
|
||||
}
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
if (player.hasPotionEffect(PotionEffectType.INVISIBILITY)) {
|
||||
players.add(player.getName());
|
||||
if (smite && !AdminList.isSuperAdmin(player)) {
|
||||
player.setHealth(0.0);
|
||||
smites++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (smite)
|
||||
{
|
||||
playerMsg(sender, "Smitten " + smites + " players");
|
||||
}
|
||||
else
|
||||
{
|
||||
playerMsg(sender, "Invisble players (" + players.size() + "): " + StringUtils.join(players, ", "));
|
||||
}
|
||||
if (players.isEmpty()) {
|
||||
playerMsg(sender, "There are no invisible players");
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
if (smite) {
|
||||
playerMsg(sender, "Smitten " + smites + " players");
|
||||
} else {
|
||||
playerMsg(sender,
|
||||
"Invisble players (" + players.size() + "): " + StringUtils.join(players, ", "));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,80 +8,72 @@ import org.bukkit.command.CommandSender;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_jumppads extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 0 || args.length > 2) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (args.length == 1) {
|
||||
if (args[0].equalsIgnoreCase("info")) {
|
||||
playerMsg(sender, "Jumppads: " + (JumpPads.getMode().isOn() ? "Enabled" : "Disabled"), ChatColor.BLUE);
|
||||
playerMsg(sender, "Sideways: " + (JumpPads.getMode() == JumpPads.JumpPadMode.NORMAL_AND_SIDEWAYS ? "Enabled" : "Disabled"), ChatColor.BLUE);
|
||||
playerMsg(sender, "Strength: " + (JumpPads.getStrength() * 10 - 1), ChatColor.BLUE);
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 0 || args.length > 2) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ("off".equals(args[0]))
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "Disabling Jumppads", false);
|
||||
JumpPads.setMode(JumpPads.JumpPadMode.OFF);
|
||||
}
|
||||
else
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "Enabling Jumppads", false);
|
||||
JumpPads.setMode(JumpPads.JumpPadMode.MADGEEK);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (JumpPads.getMode() == JumpPads.JumpPadMode.OFF)
|
||||
{
|
||||
playerMsg(sender, "Jumppads are currently disabled, please enable them before changing jumppads settings.");
|
||||
return true;
|
||||
}
|
||||
if (args.length == 1) {
|
||||
if (args[0].equalsIgnoreCase("info")) {
|
||||
playerMsg(sender,
|
||||
"Jumppads: " + (JumpPads.getMode().isOn() ? "Enabled" : "Disabled"),
|
||||
ChatColor.BLUE);
|
||||
playerMsg(sender,
|
||||
"Sideways: " + (JumpPads.getMode() == JumpPads.JumpPadMode.NORMAL_AND_SIDEWAYS
|
||||
? "Enabled" : "Disabled"), ChatColor.BLUE);
|
||||
playerMsg(sender, "Strength: " + (JumpPads.getStrength() * 10 - 1), ChatColor.BLUE);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("sideways"))
|
||||
{
|
||||
if ("off".equals(args[1]))
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "Setting Jumppads mode to: Madgeek", false);
|
||||
JumpPads.setMode(JumpPads.JumpPadMode.MADGEEK);
|
||||
}
|
||||
else
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "Setting Jumppads mode to: Normal and Sideways", false);
|
||||
JumpPads.setMode(JumpPads.JumpPadMode.NORMAL_AND_SIDEWAYS);
|
||||
}
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("strength"))
|
||||
{
|
||||
final float strength;
|
||||
try
|
||||
{
|
||||
strength = Float.parseFloat(args[1]);
|
||||
}
|
||||
catch (NumberFormatException ex)
|
||||
{
|
||||
playerMsg(sender, "Invalid Strength");
|
||||
return true;
|
||||
}
|
||||
if ("off".equals(args[0])) {
|
||||
Utilities.adminAction(sender.getName(), "Disabling Jumppads", false);
|
||||
JumpPads.setMode(JumpPads.JumpPadMode.OFF);
|
||||
} else {
|
||||
Utilities.adminAction(sender.getName(), "Enabling Jumppads", false);
|
||||
JumpPads.setMode(JumpPads.JumpPadMode.MADGEEK);
|
||||
}
|
||||
} else {
|
||||
if (JumpPads.getMode() == JumpPads.JumpPadMode.OFF) {
|
||||
playerMsg(sender,
|
||||
"Jumppads are currently disabled, please enable them before changing jumppads settings.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (strength > 10 || strength < 1)
|
||||
{
|
||||
playerMsg(sender, "Invalid Strength: The strength may be 1 through 10.");
|
||||
return true;
|
||||
}
|
||||
if (args[0].equalsIgnoreCase("sideways")) {
|
||||
if ("off".equals(args[1])) {
|
||||
Utilities.adminAction(sender.getName(), "Setting Jumppads mode to: Madgeek",
|
||||
false);
|
||||
JumpPads.setMode(JumpPads.JumpPadMode.MADGEEK);
|
||||
} else {
|
||||
Utilities.adminAction(sender.getName(),
|
||||
"Setting Jumppads mode to: Normal and Sideways", false);
|
||||
JumpPads.setMode(JumpPads.JumpPadMode.NORMAL_AND_SIDEWAYS);
|
||||
}
|
||||
} else if (args[0].equalsIgnoreCase("strength")) {
|
||||
final float strength;
|
||||
try {
|
||||
strength = Float.parseFloat(args[1]);
|
||||
} catch (NumberFormatException ex) {
|
||||
playerMsg(sender, "Invalid Strength");
|
||||
return true;
|
||||
}
|
||||
|
||||
Utilities.adminAction(sender.getName(), "Setting Jumppads strength to: " + strength, false);
|
||||
JumpPads.setStrength((strength / 10) + 0.1F);
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (strength > 10 || strength < 1) {
|
||||
playerMsg(sender, "Invalid Strength: The strength may be 1 through 10.");
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
Utilities.adminAction(sender.getName(), "Setting Jumppads strength to: " + strength,
|
||||
false);
|
||||
JumpPads.setStrength((strength / 10) + 0.1F);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,16 +9,18 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.BOTH, blockHostConsole = true)
|
||||
public class Command_kicknoob extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Utilities.adminAction(sender.getName(), "Disconnecting all non-superadmins.", true);
|
||||
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
if (!AdminList.isSuperAdmin(player)) {
|
||||
player.kickPlayer(ChatColor.RED + "Disconnected by admin.");
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Utilities.adminAction(sender.getName(), "Disconnecting all non-superadmins.", true);
|
||||
|
||||
return true;
|
||||
}
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
if (!AdminList.isSuperAdmin(player)) {
|
||||
player.kickPlayer(ChatColor.RED + "Disconnected by admin.");
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
|
@ -10,74 +13,65 @@ import org.bukkit.command.Command;
|
|||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.OP, source = SourceType.ONLY_IN_GAME)
|
||||
public class Command_landmine extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (!ConfigurationEntry.LANDMINES_ENABLED.getBoolean()) {
|
||||
playerMsg(sender, "The landmine is currently disabled.", ChatColor.GREEN);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean()) {
|
||||
playerMsg(sender, "Explosions are currently disabled.", ChatColor.GREEN);
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (!ConfigurationEntry.LANDMINES_ENABLED.getBoolean()) {
|
||||
playerMsg(sender, "The landmine is currently disabled.", ChatColor.GREEN);
|
||||
return true;
|
||||
}
|
||||
|
||||
double radius = 2.0;
|
||||
if (!ConfigurationEntry.ALLOW_EXPLOSIONS.getBoolean()) {
|
||||
playerMsg(sender, "Explosions are currently disabled.", ChatColor.GREEN);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args.length >= 1)
|
||||
{
|
||||
if ("list".equalsIgnoreCase(args[0]))
|
||||
{
|
||||
final Iterator<TFM_LandmineData> landmines = TFM_LandmineData.landmines.iterator();
|
||||
while (landmines.hasNext())
|
||||
{
|
||||
playerMsg(sender, landmines.next().toString());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
double radius = 2.0;
|
||||
|
||||
try
|
||||
{
|
||||
radius = Math.max(2.0, Math.min(6.0, Double.parseDouble(args[0])));
|
||||
}
|
||||
catch (NumberFormatException ex)
|
||||
{
|
||||
}
|
||||
}
|
||||
if (args.length >= 1) {
|
||||
if ("list".equalsIgnoreCase(args[0])) {
|
||||
final Iterator<TFM_LandmineData> landmines = TFM_LandmineData.landmines.iterator();
|
||||
while (landmines.hasNext()) {
|
||||
playerMsg(sender, landmines.next().toString());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
final Block landmine = sender_p.getLocation().getBlock().getRelative(BlockFace.DOWN);
|
||||
landmine.setType(Material.TNT);
|
||||
TFM_LandmineData.landmines.add(new TFM_LandmineData(landmine.getLocation(), sender_p, radius));
|
||||
try {
|
||||
radius = Math.max(2.0, Math.min(6.0, Double.parseDouble(args[0])));
|
||||
} catch (NumberFormatException ex) {
|
||||
}
|
||||
}
|
||||
|
||||
playerMsg(sender, "Landmine planted - Radius = " + radius + " blocks.", ChatColor.GREEN);
|
||||
final Block landmine = sender_p.getLocation().getBlock().getRelative(BlockFace.DOWN);
|
||||
landmine.setType(Material.TNT);
|
||||
TFM_LandmineData.landmines.add(
|
||||
new TFM_LandmineData(landmine.getLocation(), sender_p, radius));
|
||||
|
||||
return true;
|
||||
}
|
||||
playerMsg(sender, "Landmine planted - Radius = " + radius + " blocks.", ChatColor.GREEN);
|
||||
|
||||
public static class TFM_LandmineData
|
||||
{
|
||||
public static final List<TFM_LandmineData> landmines = new ArrayList<TFM_LandmineData>();
|
||||
public final Location location;
|
||||
public final Player player;
|
||||
public final double radius;
|
||||
return true;
|
||||
}
|
||||
|
||||
public TFM_LandmineData(Location location, Player player, double radius)
|
||||
{
|
||||
this.location = location;
|
||||
this.player = player;
|
||||
this.radius = radius;
|
||||
}
|
||||
public static class TFM_LandmineData {
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return this.location.toString() + ", " + this.radius + ", " + this.player.getName();
|
||||
}
|
||||
}
|
||||
public static final List<TFM_LandmineData> landmines = new ArrayList<TFM_LandmineData>();
|
||||
public final Location location;
|
||||
public final Player player;
|
||||
public final double radius;
|
||||
|
||||
public TFM_LandmineData(Location location, Player player, double radius) {
|
||||
this.location = location;
|
||||
this.player = player;
|
||||
this.radius = radius;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return this.location.toString() + ", " + this.radius + ", " + this.player.getName();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,31 +8,31 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_lastcmd extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final Player player = getPlayer(args[0]);
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player == null) {
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
final Player player = getPlayer(args[0]);
|
||||
|
||||
final PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
if (player == null) {
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (playerdata != null)
|
||||
{
|
||||
String lastCommand = playerdata.getLastCommand();
|
||||
if (lastCommand.isEmpty())
|
||||
{
|
||||
lastCommand = "(none)";
|
||||
}
|
||||
playerMsg(sender, player.getName() + " - Last Command: " + lastCommand, ChatColor.GRAY);
|
||||
}
|
||||
final PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
|
||||
return true;
|
||||
}
|
||||
if (playerdata != null) {
|
||||
String lastCommand = playerdata.getLastCommand();
|
||||
if (lastCommand.isEmpty()) {
|
||||
lastCommand = "(none)";
|
||||
}
|
||||
playerMsg(sender, player.getName() + " - Last Command: " + lastCommand, ChatColor.GRAY);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,83 +15,84 @@ import org.bukkit.entity.Player;
|
|||
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
|
||||
public class Command_list extends FreedomCommand {
|
||||
|
||||
private enum ListFilter {
|
||||
ALL,
|
||||
ADMINS,
|
||||
IMPOSTORS
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length > 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length > 1) {
|
||||
return false;
|
||||
}
|
||||
if (Utilities.isFromHostConsole(sender.getName())) {
|
||||
final List<String> names = new ArrayList<String>();
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
if (VanishManager.isVanished(player)) {
|
||||
continue;
|
||||
}
|
||||
names.add(player.getName());
|
||||
}
|
||||
playerMsg(sender,
|
||||
"There are " + names.size() + "/" + VanishManager.getFakeOnlinePlayers()
|
||||
+ " players online:\n" + StringUtils.join(names, ", "), ChatColor.WHITE);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (Utilities.isFromHostConsole(sender.getName())) {
|
||||
final List<String> names = new ArrayList<String>();
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
if (VanishManager.isVanished(player)) {
|
||||
continue;
|
||||
}
|
||||
names.add(player.getName());
|
||||
}
|
||||
playerMsg(sender,
|
||||
"There are " + names.size() + "/" + VanishManager.getFakeOnlinePlayers()
|
||||
+ " players online:\n" + StringUtils.join(names, ", "), ChatColor.WHITE);
|
||||
return true;
|
||||
}
|
||||
final ListFilter listFilter;
|
||||
if (args.length == 1) {
|
||||
if ("-a".equals(args[0])) {
|
||||
listFilter = ListFilter.ADMINS;
|
||||
} else if ("-i".equals(args[0])) {
|
||||
listFilter = ListFilter.IMPOSTORS;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
listFilter = ListFilter.ALL;
|
||||
}
|
||||
|
||||
final ListFilter listFilter;
|
||||
if (args.length == 1) {
|
||||
if ("-a".equals(args[0])) {
|
||||
listFilter = ListFilter.ADMINS;
|
||||
} else if ("-i".equals(args[0])) {
|
||||
listFilter = ListFilter.IMPOSTORS;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
listFilter = ListFilter.ALL;
|
||||
}
|
||||
final StringBuilder onlineStats = new StringBuilder();
|
||||
final StringBuilder onlineUsers = new StringBuilder();
|
||||
|
||||
final StringBuilder onlineStats = new StringBuilder();
|
||||
final StringBuilder onlineUsers = new StringBuilder();
|
||||
onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED)
|
||||
.append(VanishManager.getFakeOnlinePlayers());
|
||||
onlineStats.append(ChatColor.BLUE).append(" out of a maximum ").append(ChatColor.RED)
|
||||
.append(server.getMaxPlayers());
|
||||
onlineStats.append(ChatColor.BLUE).append(" players online.");
|
||||
|
||||
onlineStats.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED)
|
||||
.append(VanishManager.getFakeOnlinePlayers());
|
||||
onlineStats.append(ChatColor.BLUE).append(" out of a maximum ").append(ChatColor.RED)
|
||||
.append(server.getMaxPlayers());
|
||||
onlineStats.append(ChatColor.BLUE).append(" players online.");
|
||||
final List<String> names = new ArrayList<String>();
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
if (VanishManager.isVanished(player)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
final List<String> names = new ArrayList<String>();
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
if (VanishManager.isVanished(player))
|
||||
continue;
|
||||
if (listFilter == ListFilter.ADMINS && !AdminList.isSuperAdmin(player)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (listFilter == ListFilter.ADMINS && !AdminList.isSuperAdmin(player)) {
|
||||
continue;
|
||||
}
|
||||
if (listFilter == ListFilter.IMPOSTORS && !AdminList.isAdminImpostor(player)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (listFilter == ListFilter.IMPOSTORS && !AdminList.isAdminImpostor(player)) {
|
||||
continue;
|
||||
}
|
||||
names.add(PlayerRank.fromSender(player).getPrefix() + player.getName());
|
||||
}
|
||||
|
||||
names.add(PlayerRank.fromSender(player).getPrefix() + player.getName());
|
||||
}
|
||||
onlineUsers.append("Connected ");
|
||||
onlineUsers.append(listFilter == ListFilter.ADMINS ? "admins: " : "players: ");
|
||||
onlineUsers.append(StringUtils.join(names, ChatColor.WHITE + ", "));
|
||||
|
||||
onlineUsers.append("Connected ");
|
||||
onlineUsers.append(listFilter == ListFilter.ADMINS ? "admins: " : "players: ");
|
||||
onlineUsers.append(StringUtils.join(names, ChatColor.WHITE + ", "));
|
||||
if (senderIsConsole) {
|
||||
sender.sendMessage(ChatColor.stripColor(onlineStats.toString()));
|
||||
sender.sendMessage(ChatColor.stripColor(onlineUsers.toString()));
|
||||
} else {
|
||||
sender.sendMessage(onlineStats.toString());
|
||||
sender.sendMessage(onlineUsers.toString());
|
||||
}
|
||||
|
||||
if (senderIsConsole) {
|
||||
sender.sendMessage(ChatColor.stripColor(onlineStats.toString()));
|
||||
sender.sendMessage(ChatColor.stripColor(onlineUsers.toString()));
|
||||
} else {
|
||||
sender.sendMessage(onlineStats.toString());
|
||||
sender.sendMessage(onlineUsers.toString());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
private enum ListFilter {
|
||||
ALL,
|
||||
ADMINS,
|
||||
IMPOSTORS
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,10 +5,13 @@ import org.bukkit.command.CommandSender;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.ONLY_IN_GAME)
|
||||
public class Command_localspawn extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
sender_p.teleport(sender_p.getWorld().getSpawnLocation());
|
||||
playerMsg(sender, "Teleported to spawnpoint for world \"" + sender_p.getWorld().getName() + "\".");
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
sender_p.teleport(sender_p.getWorld().getSpawnLocation());
|
||||
playerMsg(sender,
|
||||
"Teleported to spawnpoint for world \"" + sender_p.getWorld().getName() + "\".");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,110 +10,87 @@ import org.bukkit.scheduler.BukkitTask;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, blockHostConsole = true)
|
||||
public class Command_lockup extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 1) {
|
||||
if (args[0].equalsIgnoreCase("all")) {
|
||||
Utilities.adminAction(sender.getName(), "Locking up all players", true);
|
||||
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
startLockup(player);
|
||||
}
|
||||
playerMsg(sender, "Locked up all players.");
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("purge"))
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "Unlocking all players", true);
|
||||
for (Player player : server.getOnlinePlayers())
|
||||
{
|
||||
cancelLockup(player);
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 1) {
|
||||
if (args[0].equalsIgnoreCase("all")) {
|
||||
Utilities.adminAction(sender.getName(), "Locking up all players", true);
|
||||
|
||||
playerMsg(sender, "Unlocked all players.");
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (args.length == 2)
|
||||
{
|
||||
if (args[1].equalsIgnoreCase("on"))
|
||||
{
|
||||
final Player player = getPlayer(args[0]);
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
startLockup(player);
|
||||
}
|
||||
playerMsg(sender, "Locked up all players.");
|
||||
} else if (args[0].equalsIgnoreCase("purge")) {
|
||||
Utilities.adminAction(sender.getName(), "Unlocking all players", true);
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
cancelLockup(player);
|
||||
}
|
||||
|
||||
if (player == null)
|
||||
{
|
||||
sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
playerMsg(sender, "Unlocked all players.");
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else if (args.length == 2) {
|
||||
if (args[1].equalsIgnoreCase("on")) {
|
||||
final Player player = getPlayer(args[0]);
|
||||
|
||||
Utilities.adminAction(sender.getName(), "Locking up " + player.getName(), true);
|
||||
startLockup(player);
|
||||
playerMsg(sender, "Locked up " + player.getName() + ".");
|
||||
}
|
||||
else if ("off".equals(args[1]))
|
||||
{
|
||||
final Player player = getPlayer(args[0]);
|
||||
if (player == null) {
|
||||
sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (player == null)
|
||||
{
|
||||
sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
Utilities.adminAction(sender.getName(), "Locking up " + player.getName(), true);
|
||||
startLockup(player);
|
||||
playerMsg(sender, "Locked up " + player.getName() + ".");
|
||||
} else if ("off".equals(args[1])) {
|
||||
final Player player = getPlayer(args[0]);
|
||||
|
||||
Utilities.adminAction(sender.getName(), "Unlocking " + player.getName(), true);
|
||||
cancelLockup(player);
|
||||
playerMsg(sender, "Unlocked " + player.getName() + ".");
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (player == null) {
|
||||
sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
Utilities.adminAction(sender.getName(), "Unlocking " + player.getName(), true);
|
||||
cancelLockup(player);
|
||||
playerMsg(sender, "Unlocked " + player.getName() + ".");
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
private void cancelLockup(PlayerData playerdata)
|
||||
{
|
||||
BukkitTask lockupScheduleID = playerdata.getLockupScheduleID();
|
||||
if (lockupScheduleID != null)
|
||||
{
|
||||
lockupScheduleID.cancel();
|
||||
playerdata.setLockupScheduleID(null);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void cancelLockup(final Player player)
|
||||
{
|
||||
cancelLockup(PlayerData.getPlayerData(player));
|
||||
}
|
||||
private void cancelLockup(PlayerData playerdata) {
|
||||
BukkitTask lockupScheduleID = playerdata.getLockupScheduleID();
|
||||
if (lockupScheduleID != null) {
|
||||
lockupScheduleID.cancel();
|
||||
playerdata.setLockupScheduleID(null);
|
||||
}
|
||||
}
|
||||
|
||||
private void startLockup(final Player player)
|
||||
{
|
||||
final PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
private void cancelLockup(final Player player) {
|
||||
cancelLockup(PlayerData.getPlayerData(player));
|
||||
}
|
||||
|
||||
cancelLockup(playerdata);
|
||||
private void startLockup(final Player player) {
|
||||
final PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
|
||||
playerdata.setLockupScheduleID(new BukkitRunnable()
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
if (player.isOnline())
|
||||
{
|
||||
player.openInventory(player.getInventory());
|
||||
}
|
||||
else
|
||||
{
|
||||
cancelLockup(playerdata);
|
||||
}
|
||||
}
|
||||
}.runTaskTimer(plugin, 0L, 5L));
|
||||
}
|
||||
cancelLockup(playerdata);
|
||||
|
||||
playerdata.setLockupScheduleID(new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (player.isOnline()) {
|
||||
player.openInventory(player.getInventory());
|
||||
} else {
|
||||
cancelLockup(playerdata);
|
||||
}
|
||||
}
|
||||
}.runTaskTimer(plugin, 0L, 5L));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,14 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import me.StevenLawson.TotalFreedomMod.Log;
|
||||
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
|
||||
import me.StevenLawson.TotalFreedomMod.admin.Admin;
|
||||
|
@ -11,144 +20,128 @@ import org.bukkit.command.CommandSender;
|
|||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.util.*;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_IN_GAME)
|
||||
public class Command_logs extends FreedomCommand {
|
||||
public static void deactivateSuperadmin(Admin superadmin) {
|
||||
for (String ip : superadmin.getIps()) {
|
||||
updateLogsRegistration(null, superadmin.getLastLoginName(), ip, LogsRegistrationMode.DELETE);
|
||||
}
|
||||
}
|
||||
|
||||
public static void updateLogsRegistration(final CommandSender sender, final Player target, final LogsRegistrationMode mode)
|
||||
{
|
||||
updateLogsRegistration(sender, target.getName(), target.getAddress().getAddress().getHostAddress().trim(), mode);
|
||||
}
|
||||
public static void deactivateSuperadmin(Admin superadmin) {
|
||||
for (String ip : superadmin.getIps()) {
|
||||
updateLogsRegistration(null, superadmin.getLastLoginName(), ip,
|
||||
LogsRegistrationMode.DELETE);
|
||||
}
|
||||
}
|
||||
|
||||
public static void updateLogsRegistration(final CommandSender sender, final String targetName, final String targetIP, final LogsRegistrationMode mode)
|
||||
{
|
||||
final String logsRegisterURL = ConfigurationEntry.LOGS_URL.getString();
|
||||
final String logsRegisterPassword = ConfigurationEntry.LOGS_SECRET.getString();
|
||||
public static void updateLogsRegistration(final CommandSender sender, final Player target,
|
||||
final LogsRegistrationMode mode) {
|
||||
updateLogsRegistration(sender, target.getName(),
|
||||
target.getAddress().getAddress().getHostAddress().trim(), mode);
|
||||
}
|
||||
|
||||
if (logsRegisterURL == null || logsRegisterPassword == null || logsRegisterURL.isEmpty() || logsRegisterPassword.isEmpty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
public static void updateLogsRegistration(final CommandSender sender, final String targetName,
|
||||
final String targetIP, final LogsRegistrationMode mode) {
|
||||
final String logsRegisterURL = ConfigurationEntry.LOGS_URL.getString();
|
||||
final String logsRegisterPassword = ConfigurationEntry.LOGS_SECRET.getString();
|
||||
|
||||
new BukkitRunnable()
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (sender != null)
|
||||
{
|
||||
sender.sendMessage(ChatColor.YELLOW + "Connecting...");
|
||||
}
|
||||
if (logsRegisterURL == null || logsRegisterPassword == null || logsRegisterURL.isEmpty()
|
||||
|| logsRegisterPassword.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
URL url = new URLBuilder(logsRegisterURL)
|
||||
.addQueryParameter("mode", mode.toString())
|
||||
.addQueryParameter("password", logsRegisterPassword)
|
||||
.addQueryParameter("name", targetName)
|
||||
.addQueryParameter("ip", targetIP)
|
||||
.getURL();
|
||||
new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
if (sender != null) {
|
||||
sender.sendMessage(ChatColor.YELLOW + "Connecting...");
|
||||
}
|
||||
|
||||
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
||||
connection.setConnectTimeout(1000 * 5);
|
||||
connection.setReadTimeout(1000 * 5);
|
||||
connection.setUseCaches(false);
|
||||
connection.setRequestMethod("HEAD");
|
||||
URL url = new URLBuilder(logsRegisterURL)
|
||||
.addQueryParameter("mode", mode.toString())
|
||||
.addQueryParameter("password", logsRegisterPassword)
|
||||
.addQueryParameter("name", targetName)
|
||||
.addQueryParameter("ip", targetIP)
|
||||
.getURL();
|
||||
|
||||
final int responseCode = connection.getResponseCode();
|
||||
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
||||
connection.setConnectTimeout(1000 * 5);
|
||||
connection.setReadTimeout(1000 * 5);
|
||||
connection.setUseCaches(false);
|
||||
connection.setRequestMethod("HEAD");
|
||||
|
||||
if (sender != null)
|
||||
{
|
||||
new BukkitRunnable()
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
if (responseCode == 200)
|
||||
{
|
||||
sender.sendMessage(ChatColor.GREEN + "Registration " + mode + "d.");
|
||||
}
|
||||
else
|
||||
{
|
||||
sender.sendMessage(ChatColor.RED + "Error contacting logs registration server.");
|
||||
}
|
||||
}
|
||||
}.runTask(TotalFreedomMod.plugin);
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
Log.severe(ex);
|
||||
}
|
||||
}
|
||||
}.runTaskAsynchronously(TotalFreedomMod.plugin);
|
||||
}
|
||||
final int responseCode = connection.getResponseCode();
|
||||
|
||||
@Override
|
||||
public boolean run(final CommandSender sender, final org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
LogsRegistrationMode mode = LogsRegistrationMode.UPDATE;
|
||||
if (sender != null) {
|
||||
new BukkitRunnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (responseCode == 200) {
|
||||
sender.sendMessage(
|
||||
ChatColor.GREEN + "Registration " + mode + "d.");
|
||||
} else {
|
||||
sender.sendMessage(ChatColor.RED
|
||||
+ "Error contacting logs registration server.");
|
||||
}
|
||||
}
|
||||
}.runTask(TotalFreedomMod.plugin);
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
Log.severe(ex);
|
||||
}
|
||||
}
|
||||
}.runTaskAsynchronously(TotalFreedomMod.plugin);
|
||||
}
|
||||
|
||||
if (args.length == 1) {
|
||||
mode = ("off".equals(args[0]) ? LogsRegistrationMode.DELETE : LogsRegistrationMode.UPDATE);
|
||||
}
|
||||
@Override
|
||||
public boolean run(final CommandSender sender, final org.bukkit.entity.Player sender_p,
|
||||
Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
LogsRegistrationMode mode = LogsRegistrationMode.UPDATE;
|
||||
|
||||
updateLogsRegistration(sender, sender_p, mode);
|
||||
if (args.length == 1) {
|
||||
mode = ("off".equals(args[0]) ? LogsRegistrationMode.DELETE
|
||||
: LogsRegistrationMode.UPDATE);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
updateLogsRegistration(sender, sender_p, mode);
|
||||
|
||||
public enum LogsRegistrationMode
|
||||
{
|
||||
UPDATE("update"), DELETE("delete");
|
||||
private final String mode;
|
||||
return true;
|
||||
}
|
||||
|
||||
LogsRegistrationMode(String mode)
|
||||
{
|
||||
this.mode = mode;
|
||||
}
|
||||
public enum LogsRegistrationMode {
|
||||
UPDATE("update"), DELETE("delete");
|
||||
private final String mode;
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return mode;
|
||||
}
|
||||
}
|
||||
LogsRegistrationMode(String mode) {
|
||||
this.mode = mode;
|
||||
}
|
||||
|
||||
private static class URLBuilder
|
||||
{
|
||||
private final String requestPath;
|
||||
private final Map<String, String> queryStringMap = new HashMap<String, String>();
|
||||
@Override
|
||||
public String toString() {
|
||||
return mode;
|
||||
}
|
||||
}
|
||||
|
||||
public URLBuilder(String requestPath)
|
||||
{
|
||||
this.requestPath = requestPath;
|
||||
}
|
||||
private static class URLBuilder {
|
||||
|
||||
public URLBuilder addQueryParameter(String key, String value)
|
||||
{
|
||||
queryStringMap.put(key, value);
|
||||
return this;
|
||||
}
|
||||
private final String requestPath;
|
||||
private final Map<String, String> queryStringMap = new HashMap<String, String>();
|
||||
|
||||
public URL getURL() throws MalformedURLException
|
||||
{
|
||||
List<String> pairs = new ArrayList<String>();
|
||||
Iterator<Entry<String, String>> it = queryStringMap.entrySet().iterator();
|
||||
while (it.hasNext())
|
||||
{
|
||||
Entry<String, String> pair = it.next();
|
||||
pairs.add(pair.getKey() + "=" + pair.getValue());
|
||||
}
|
||||
public URLBuilder(String requestPath) {
|
||||
this.requestPath = requestPath;
|
||||
}
|
||||
|
||||
return new URL(requestPath + "?" + StringUtils.join(pairs, "&"));
|
||||
}
|
||||
}
|
||||
public URLBuilder addQueryParameter(String key, String value) {
|
||||
queryStringMap.put(key, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public URL getURL() throws MalformedURLException {
|
||||
List<String> pairs = new ArrayList<String>();
|
||||
Iterator<Entry<String, String>> it = queryStringMap.entrySet().iterator();
|
||||
while (it.hasNext()) {
|
||||
Entry<String, String> pair = it.next();
|
||||
pairs.add(pair.getKey() + "=" + pair.getValue());
|
||||
}
|
||||
|
||||
return new URL(requestPath + "?" + StringUtils.join(pairs, "&"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,70 +7,67 @@ import org.bukkit.command.CommandSender;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_CONSOLE)
|
||||
public class Command_moblimiter extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("on")) {
|
||||
ConfigurationEntry.MOB_LIMITER_ENABLED.setBoolean(true);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("off"))
|
||||
{
|
||||
ConfigurationEntry.MOB_LIMITER_ENABLED.setBoolean(false);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("dragon"))
|
||||
{
|
||||
ConfigurationEntry.MOB_LIMITER_DISABLE_DRAGON.setBoolean(!ConfigurationEntry.MOB_LIMITER_DISABLE_DRAGON.getBoolean());
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("giant"))
|
||||
{
|
||||
ConfigurationEntry.MOB_LIMITER_DISABLE_GIANT.setBoolean(!ConfigurationEntry.MOB_LIMITER_DISABLE_GIANT.getBoolean());
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("slime"))
|
||||
{
|
||||
ConfigurationEntry.MOB_LIMITER_DISABLE_SLIME.setBoolean(!ConfigurationEntry.MOB_LIMITER_DISABLE_SLIME.getBoolean());
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("ghast"))
|
||||
{
|
||||
ConfigurationEntry.MOB_LIMITER_DISABLE_GHAST.setBoolean(!ConfigurationEntry.MOB_LIMITER_DISABLE_GHAST.getBoolean());
|
||||
}
|
||||
else
|
||||
{
|
||||
if (args.length < 2)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("setmax"))
|
||||
{
|
||||
try
|
||||
{
|
||||
ConfigurationEntry.MOB_LIMITER_MAX.setInteger(Math.max(0, Math.min(2000, Integer.parseInt(args[1]))));
|
||||
}
|
||||
catch (NumberFormatException nfex)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
if (args[0].equalsIgnoreCase("on")) {
|
||||
ConfigurationEntry.MOB_LIMITER_ENABLED.setBoolean(true);
|
||||
} else if (args[0].equalsIgnoreCase("off")) {
|
||||
ConfigurationEntry.MOB_LIMITER_ENABLED.setBoolean(false);
|
||||
} else if (args[0].equalsIgnoreCase("dragon")) {
|
||||
ConfigurationEntry.MOB_LIMITER_DISABLE_DRAGON.setBoolean(
|
||||
!ConfigurationEntry.MOB_LIMITER_DISABLE_DRAGON.getBoolean());
|
||||
} else if (args[0].equalsIgnoreCase("giant")) {
|
||||
ConfigurationEntry.MOB_LIMITER_DISABLE_GIANT.setBoolean(
|
||||
!ConfigurationEntry.MOB_LIMITER_DISABLE_GIANT.getBoolean());
|
||||
} else if (args[0].equalsIgnoreCase("slime")) {
|
||||
ConfigurationEntry.MOB_LIMITER_DISABLE_SLIME.setBoolean(
|
||||
!ConfigurationEntry.MOB_LIMITER_DISABLE_SLIME.getBoolean());
|
||||
} else if (args[0].equalsIgnoreCase("ghast")) {
|
||||
ConfigurationEntry.MOB_LIMITER_DISABLE_GHAST.setBoolean(
|
||||
!ConfigurationEntry.MOB_LIMITER_DISABLE_GHAST.getBoolean());
|
||||
} else {
|
||||
if (args.length < 2) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (ConfigurationEntry.MOB_LIMITER_ENABLED.getBoolean())
|
||||
{
|
||||
sender.sendMessage("Moblimiter enabled. Maximum mobcount set to: " + ConfigurationEntry.MOB_LIMITER_MAX.getInteger() + ".");
|
||||
if (args[0].equalsIgnoreCase("setmax")) {
|
||||
try {
|
||||
ConfigurationEntry.MOB_LIMITER_MAX.setInteger(
|
||||
Math.max(0, Math.min(2000, Integer.parseInt(args[1]))));
|
||||
} catch (NumberFormatException nfex) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
playerMsg(sender, "Dragon: " + (ConfigurationEntry.MOB_LIMITER_DISABLE_DRAGON.getBoolean() ? "disabled" : "enabled") + ".");
|
||||
playerMsg(sender, "Giant: " + (ConfigurationEntry.MOB_LIMITER_DISABLE_GIANT.getBoolean() ? "disabled" : "enabled") + ".");
|
||||
playerMsg(sender, "Slime: " + (ConfigurationEntry.MOB_LIMITER_DISABLE_SLIME.getBoolean() ? "disabled" : "enabled") + ".");
|
||||
playerMsg(sender, "Ghast: " + (ConfigurationEntry.MOB_LIMITER_DISABLE_GHAST.getBoolean() ? "disabled" : "enabled") + ".");
|
||||
}
|
||||
else
|
||||
{
|
||||
playerMsg(sender, "Moblimiter is disabled. No mob restrictions are in effect.");
|
||||
}
|
||||
if (ConfigurationEntry.MOB_LIMITER_ENABLED.getBoolean()) {
|
||||
sender.sendMessage("Moblimiter enabled. Maximum mobcount set to: "
|
||||
+ ConfigurationEntry.MOB_LIMITER_MAX.getInteger() + ".");
|
||||
|
||||
GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.DO_MOB_SPAWNING, !ConfigurationEntry.MOB_LIMITER_ENABLED.getBoolean());
|
||||
playerMsg(sender,
|
||||
"Dragon: " + (ConfigurationEntry.MOB_LIMITER_DISABLE_DRAGON.getBoolean()
|
||||
? "disabled" : "enabled") + ".");
|
||||
playerMsg(sender,
|
||||
"Giant: " + (ConfigurationEntry.MOB_LIMITER_DISABLE_GIANT.getBoolean() ? "disabled"
|
||||
: "enabled") + ".");
|
||||
playerMsg(sender,
|
||||
"Slime: " + (ConfigurationEntry.MOB_LIMITER_DISABLE_SLIME.getBoolean() ? "disabled"
|
||||
: "enabled") + ".");
|
||||
playerMsg(sender,
|
||||
"Ghast: " + (ConfigurationEntry.MOB_LIMITER_DISABLE_GHAST.getBoolean() ? "disabled"
|
||||
: "enabled") + ".");
|
||||
} else {
|
||||
playerMsg(sender, "Moblimiter is disabled. No mob restrictions are in effect.");
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
GameRuleHandler.setGameRule(GameRuleHandler.TFM_GameRule.DO_MOB_SPAWNING,
|
||||
!ConfigurationEntry.MOB_LIMITER_ENABLED.getBoolean());
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,32 +4,36 @@ import org.bukkit.Bukkit;
|
|||
import org.bukkit.World;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.*;
|
||||
import org.bukkit.entity.Ambient;
|
||||
import org.bukkit.entity.Creature;
|
||||
import org.bukkit.entity.EnderDragon;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Ghast;
|
||||
import org.bukkit.entity.Slime;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_mp extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
playerMsg(sender, "Purging all mobs...");
|
||||
playerMsg(sender, purgeMobs() + " mobs removed.");
|
||||
return true;
|
||||
}
|
||||
|
||||
public static int purgeMobs()
|
||||
{
|
||||
int removed = 0;
|
||||
for (World world : Bukkit.getWorlds())
|
||||
{
|
||||
for (Entity ent : world.getLivingEntities())
|
||||
{
|
||||
if (ent instanceof Creature || ent instanceof Ghast || ent instanceof Slime || ent instanceof EnderDragon || ent instanceof Ambient)
|
||||
{
|
||||
ent.remove();
|
||||
removed++;
|
||||
}
|
||||
}
|
||||
}
|
||||
public static int purgeMobs() {
|
||||
int removed = 0;
|
||||
for (World world : Bukkit.getWorlds()) {
|
||||
for (Entity ent : world.getLivingEntities()) {
|
||||
if (ent instanceof Creature || ent instanceof Ghast || ent instanceof Slime
|
||||
|| ent instanceof EnderDragon || ent instanceof Ambient) {
|
||||
ent.remove();
|
||||
removed++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return removed;
|
||||
}
|
||||
return removed;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
playerMsg(sender, "Purging all mobs...");
|
||||
playerMsg(sender, purgeMobs() + " mobs removed.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,35 +10,36 @@ import org.bukkit.inventory.ItemStack;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.OP, source = SourceType.ONLY_IN_GAME)
|
||||
public class Command_mp44 extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (!ConfigurationEntry.MP44_ENABLED.getBoolean()) {
|
||||
playerMsg(sender, "The mp44 is currently disabled.", ChatColor.GREEN);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args.length == 0) {
|
||||
return false;
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (!ConfigurationEntry.MP44_ENABLED.getBoolean()) {
|
||||
playerMsg(sender, "The mp44 is currently disabled.", ChatColor.GREEN);
|
||||
return true;
|
||||
}
|
||||
|
||||
PlayerData playerdata = PlayerData.getPlayerData(sender_p);
|
||||
if (args.length == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("draw"))
|
||||
{
|
||||
playerdata.armMP44();
|
||||
PlayerData playerdata = PlayerData.getPlayerData(sender_p);
|
||||
|
||||
playerMsg(sender, "mp44 is ARMED! Left click with gunpowder to start firing, left click again to quit.", ChatColor.GREEN);
|
||||
playerMsg(sender, "Type /mp44 sling to disable. -by Madgeek1450", ChatColor.GREEN);
|
||||
if (args[0].equalsIgnoreCase("draw")) {
|
||||
playerdata.armMP44();
|
||||
|
||||
sender_p.setItemInHand(new ItemStack(Material.SULPHUR, 1));
|
||||
}
|
||||
else
|
||||
{
|
||||
playerdata.disarmMP44();
|
||||
playerMsg(sender,
|
||||
"mp44 is ARMED! Left click with gunpowder to start firing, left click again to quit.",
|
||||
ChatColor.GREEN);
|
||||
playerMsg(sender, "Type /mp44 sling to disable. -by Madgeek1450", ChatColor.GREEN);
|
||||
|
||||
sender.sendMessage(ChatColor.GREEN + "mp44 Disarmed.");
|
||||
}
|
||||
sender_p.setItemInHand(new ItemStack(Material.SULPHUR, 1));
|
||||
} else {
|
||||
playerdata.disarmMP44();
|
||||
|
||||
return true;
|
||||
}
|
||||
sender.sendMessage(ChatColor.GREEN + "mp44 Disarmed.");
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,9 +6,11 @@ import org.bukkit.command.CommandSender;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.ONLY_IN_GAME)
|
||||
public class Command_nether extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Utilities.gotoWorld(sender_p, server.getWorlds().get(0).getName() + "_nether");
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Utilities.gotoWorld(sender_p, server.getWorlds().get(0).getName() + "_nether");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import me.StevenLawson.TotalFreedomMod.command.CommandBlocker;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
|
@ -8,109 +12,92 @@ import org.bukkit.command.Command;
|
|||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
||||
public class Command_nf extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
boolean nickMatched = false;
|
||||
|
||||
final List<String> outputCommand = new ArrayList<String>();
|
||||
private static Player getPlayerByDisplayName(String needle) {
|
||||
needle = needle.toLowerCase().trim();
|
||||
|
||||
if (args.length >= 1) {
|
||||
final String[] argsList = args;
|
||||
for (String arg : argsList) {
|
||||
Player player = null;
|
||||
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||
if (player.getDisplayName().toLowerCase().trim().contains(needle)) {
|
||||
return player;
|
||||
}
|
||||
}
|
||||
|
||||
Matcher matcher = Pattern.compile("^!(.+)$").matcher(arg);
|
||||
if (matcher.find())
|
||||
{
|
||||
String displayName = matcher.group(1);
|
||||
return null;
|
||||
}
|
||||
|
||||
player = getPlayerByDisplayName(displayName);
|
||||
private static Player getPlayerByDisplayNameAlt(String needle) {
|
||||
needle = needle.toLowerCase().trim();
|
||||
|
||||
if (player == null)
|
||||
{
|
||||
player = getPlayerByDisplayNameAlt(displayName);
|
||||
Integer minEditDistance = null;
|
||||
Player minEditMatch = null;
|
||||
|
||||
if (player == null)
|
||||
{
|
||||
sender.sendMessage(ChatColor.GRAY + "Can't find player by nickname: " + displayName);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||
String haystack = player.getDisplayName().toLowerCase().trim();
|
||||
int editDistance = StringUtils.getLevenshteinDistance(needle, haystack.toLowerCase());
|
||||
if (minEditDistance == null || minEditDistance.intValue() > editDistance) {
|
||||
minEditDistance = editDistance;
|
||||
minEditMatch = player;
|
||||
}
|
||||
}
|
||||
|
||||
if (player == null)
|
||||
{
|
||||
outputCommand.add(arg);
|
||||
}
|
||||
else
|
||||
{
|
||||
nickMatched = true;
|
||||
outputCommand.add(player.getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
return minEditMatch;
|
||||
}
|
||||
|
||||
if (!nickMatched)
|
||||
{
|
||||
sender.sendMessage("No nicknames replaced in command.");
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
boolean nickMatched = false;
|
||||
|
||||
String newCommand = StringUtils.join(outputCommand, " ");
|
||||
final List<String> outputCommand = new ArrayList<String>();
|
||||
|
||||
if (CommandBlocker.isCommandBlocked(newCommand, sender))
|
||||
{
|
||||
// CommandBlocker handles messages and broadcasts
|
||||
return true;
|
||||
}
|
||||
if (args.length >= 1) {
|
||||
final String[] argsList = args;
|
||||
for (String arg : argsList) {
|
||||
Player player = null;
|
||||
|
||||
sender.sendMessage("Sending command: \"" + newCommand + "\".");
|
||||
server.dispatchCommand(sender, newCommand);
|
||||
Matcher matcher = Pattern.compile("^!(.+)$").matcher(arg);
|
||||
if (matcher.find()) {
|
||||
String displayName = matcher.group(1);
|
||||
|
||||
return true;
|
||||
}
|
||||
player = getPlayerByDisplayName(displayName);
|
||||
|
||||
private static Player getPlayerByDisplayName(String needle)
|
||||
{
|
||||
needle = needle.toLowerCase().trim();
|
||||
if (player == null) {
|
||||
player = getPlayerByDisplayNameAlt(displayName);
|
||||
|
||||
for (Player player : Bukkit.getOnlinePlayers())
|
||||
{
|
||||
if (player.getDisplayName().toLowerCase().trim().contains(needle))
|
||||
{
|
||||
return player;
|
||||
}
|
||||
}
|
||||
if (player == null) {
|
||||
sender.sendMessage(
|
||||
ChatColor.GRAY + "Can't find player by nickname: " + displayName);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
if (player == null) {
|
||||
outputCommand.add(arg);
|
||||
} else {
|
||||
nickMatched = true;
|
||||
outputCommand.add(player.getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static Player getPlayerByDisplayNameAlt(String needle)
|
||||
{
|
||||
needle = needle.toLowerCase().trim();
|
||||
if (!nickMatched) {
|
||||
sender.sendMessage("No nicknames replaced in command.");
|
||||
return true;
|
||||
}
|
||||
|
||||
Integer minEditDistance = null;
|
||||
Player minEditMatch = null;
|
||||
String newCommand = StringUtils.join(outputCommand, " ");
|
||||
|
||||
for (Player player : Bukkit.getOnlinePlayers())
|
||||
{
|
||||
String haystack = player.getDisplayName().toLowerCase().trim();
|
||||
int editDistance = StringUtils.getLevenshteinDistance(needle, haystack.toLowerCase());
|
||||
if (minEditDistance == null || minEditDistance.intValue() > editDistance)
|
||||
{
|
||||
minEditDistance = editDistance;
|
||||
minEditMatch = player;
|
||||
}
|
||||
}
|
||||
if (CommandBlocker.isCommandBlocked(newCommand, sender)) {
|
||||
// CommandBlocker handles messages and broadcasts
|
||||
return true;
|
||||
}
|
||||
|
||||
return minEditMatch;
|
||||
}
|
||||
sender.sendMessage("Sending command: \"" + newCommand + "\".");
|
||||
server.dispatchCommand(sender, newCommand);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import me.StevenLawson.TotalFreedomMod.bridge.EssentialsBridge;
|
||||
import me.StevenLawson.TotalFreedomMod.util.Utilities;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
@ -8,36 +10,37 @@ import org.bukkit.command.Command;
|
|||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_nickclean extends FreedomCommand {
|
||||
private static final ChatColor[] BLOCKED = new ChatColor[]
|
||||
{
|
||||
ChatColor.MAGIC,
|
||||
ChatColor.STRIKETHROUGH,
|
||||
};
|
||||
private static final Pattern REGEX = Pattern.compile("\\u00A7[" + StringUtils.join(BLOCKED, "") + "]");
|
||||
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Utilities.adminAction(sender.getName(), "Cleaning all nicknames.", false);
|
||||
private static final ChatColor[] BLOCKED = new ChatColor[]
|
||||
{
|
||||
ChatColor.MAGIC,
|
||||
ChatColor.STRIKETHROUGH,
|
||||
};
|
||||
private static final Pattern REGEX = Pattern.compile(
|
||||
"\\u00A7[" + StringUtils.join(BLOCKED, "") + "]");
|
||||
|
||||
for (final Player player : server.getOnlinePlayers()) {
|
||||
final String playerName = player.getName();
|
||||
final String nickName = EssentialsBridge.getNickname(playerName);
|
||||
if (nickName != null && !nickName.isEmpty() && !nickName.equalsIgnoreCase(playerName)) {
|
||||
final Matcher matcher = REGEX.matcher(nickName);
|
||||
if (matcher.find())
|
||||
{
|
||||
final String newNickName = matcher.replaceAll("");
|
||||
playerMsg(sender, ChatColor.RESET + playerName + ": \"" + nickName + ChatColor.RESET + "\" -> \"" + newNickName + ChatColor.RESET + "\".");
|
||||
EssentialsBridge.setNickname(playerName, newNickName);
|
||||
}
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Utilities.adminAction(sender.getName(), "Cleaning all nicknames.", false);
|
||||
|
||||
return true;
|
||||
}
|
||||
for (final Player player : server.getOnlinePlayers()) {
|
||||
final String playerName = player.getName();
|
||||
final String nickName = EssentialsBridge.getNickname(playerName);
|
||||
if (nickName != null && !nickName.isEmpty() && !nickName.equalsIgnoreCase(playerName)) {
|
||||
final Matcher matcher = REGEX.matcher(nickName);
|
||||
if (matcher.find()) {
|
||||
final String newNickName = matcher.replaceAll("");
|
||||
playerMsg(sender,
|
||||
ChatColor.RESET + playerName + ": \"" + nickName + ChatColor.RESET
|
||||
+ "\" -> \"" + newNickName + ChatColor.RESET + "\".");
|
||||
EssentialsBridge.setNickname(playerName, newNickName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,58 +10,54 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.OP, source = SourceType.ONLY_IN_GAME)
|
||||
public class Command_nicknyan extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ("off".equals(args[0])) {
|
||||
EssentialsBridge.setNickname(sender.getName(), null);
|
||||
playerMsg(sender, "Nickname cleared.");
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final String nickPlain = ChatColor.stripColor(Utilities.colorize(args[0].trim()));
|
||||
if ("off".equals(args[0])) {
|
||||
EssentialsBridge.setNickname(sender.getName(), null);
|
||||
playerMsg(sender, "Nickname cleared.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!nickPlain.matches("^[a-zA-Z_0-9\u00a7]+$"))
|
||||
{
|
||||
playerMsg(sender, "That nickname contains invalid characters.");
|
||||
return true;
|
||||
}
|
||||
else if (nickPlain.length() < 4 || nickPlain.length() > 30)
|
||||
{
|
||||
playerMsg(sender, "Your nickname must be between 4 and 30 characters long.");
|
||||
return true;
|
||||
}
|
||||
final String nickPlain = ChatColor.stripColor(Utilities.colorize(args[0].trim()));
|
||||
|
||||
for (Player player : Bukkit.getOnlinePlayers())
|
||||
{
|
||||
if (player == sender_p)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (player.getName().equalsIgnoreCase(nickPlain) || ChatColor.stripColor(player.getDisplayName()).trim().equalsIgnoreCase(nickPlain))
|
||||
{
|
||||
playerMsg(sender, "That nickname is already in use.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (!nickPlain.matches("^[a-zA-Z_0-9\u00a7]+$")) {
|
||||
playerMsg(sender, "That nickname contains invalid characters.");
|
||||
return true;
|
||||
} else if (nickPlain.length() < 4 || nickPlain.length() > 30) {
|
||||
playerMsg(sender, "Your nickname must be between 4 and 30 characters long.");
|
||||
return true;
|
||||
}
|
||||
|
||||
final StringBuilder newNick = new StringBuilder();
|
||||
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||
if (player == sender_p) {
|
||||
continue;
|
||||
}
|
||||
if (player.getName().equalsIgnoreCase(nickPlain) || ChatColor.stripColor(
|
||||
player.getDisplayName()).trim().equalsIgnoreCase(nickPlain)) {
|
||||
playerMsg(sender, "That nickname is already in use.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
final char[] chars = nickPlain.toCharArray();
|
||||
for (char c : chars)
|
||||
{
|
||||
newNick.append(Utilities.randomChatColor()).append(c);
|
||||
}
|
||||
final StringBuilder newNick = new StringBuilder();
|
||||
|
||||
newNick.append(ChatColor.WHITE);
|
||||
final char[] chars = nickPlain.toCharArray();
|
||||
for (char c : chars) {
|
||||
newNick.append(Utilities.randomChatColor()).append(c);
|
||||
}
|
||||
|
||||
EssentialsBridge.setNickname(sender.getName(), newNick.toString());
|
||||
newNick.append(ChatColor.WHITE);
|
||||
|
||||
playerMsg(sender, "Your nickname is now: " + newNick.toString());
|
||||
EssentialsBridge.setNickname(sender.getName(), newNick.toString());
|
||||
|
||||
return true;
|
||||
}
|
||||
playerMsg(sender, "Your nickname is now: " + newNick);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,23 +8,24 @@ import org.bukkit.command.CommandSender;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_o extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 0) {
|
||||
if (senderIsConsole) {
|
||||
playerMsg(sender, "Only in-game players can toggle AdminChat.");
|
||||
return true;
|
||||
}
|
||||
|
||||
PlayerData userinfo = PlayerData.getPlayerData(sender_p);
|
||||
userinfo.setAdminChat(!userinfo.inAdminChat());
|
||||
playerMsg(sender, "Toggled Admin Chat " + (userinfo.inAdminChat() ? "on" : "off") + ".");
|
||||
}
|
||||
else
|
||||
{
|
||||
Utilities.adminChatMessage(sender, StringUtils.join(args, " "), senderIsConsole);
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 0) {
|
||||
if (senderIsConsole) {
|
||||
playerMsg(sender, "Only in-game players can toggle AdminChat.");
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
PlayerData userinfo = PlayerData.getPlayerData(sender_p);
|
||||
userinfo.setAdminChat(!userinfo.inAdminChat());
|
||||
playerMsg(sender,
|
||||
"Toggled Admin Chat " + (userinfo.inAdminChat() ? "on" : "off") + ".");
|
||||
} else {
|
||||
Utilities.adminChatMessage(sender, StringUtils.join(args, " "), senderIsConsole);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import com.earth2me.essentials.User;
|
||||
import me.StevenLawson.TotalFreedomMod.bridge.EssentialsBridge;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
|
@ -11,43 +10,47 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_IN_GAME)
|
||||
public class Command_offlinetp extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if(args.length < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
OfflinePlayer target = null;
|
||||
String searchString = args[0];
|
||||
@Override
|
||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel,
|
||||
String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (OfflinePlayer offlinePlayer : Bukkit.getOfflinePlayers()) {
|
||||
if(offlinePlayer.getName().equalsIgnoreCase(searchString)) {
|
||||
target = offlinePlayer;
|
||||
break;
|
||||
} else if (offlinePlayer.getName().startsWith(searchString.toLowerCase())) {
|
||||
target = offlinePlayer;
|
||||
break;
|
||||
}
|
||||
}
|
||||
OfflinePlayer target = null;
|
||||
String searchString = args[0];
|
||||
|
||||
if(target == null) {
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
for (OfflinePlayer offlinePlayer : Bukkit.getOfflinePlayers()) {
|
||||
if (offlinePlayer.getName().equalsIgnoreCase(searchString)) {
|
||||
target = offlinePlayer;
|
||||
break;
|
||||
} else if (offlinePlayer.getName().startsWith(searchString.toLowerCase())) {
|
||||
target = offlinePlayer;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(target.isOnline()) {
|
||||
playerMsg(sender, "That player is already online. Use /tp.");
|
||||
return true;
|
||||
}
|
||||
if (target == null) {
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
|
||||
playerMsg(sender, String.format("Teleporting to %s's last known location...", target.getName()));
|
||||
try {
|
||||
Location location = EssentialsBridge.getEssentialsUser(target.getName()).getLastLocation();
|
||||
sender_p.teleport(location);
|
||||
} catch (Exception e) {
|
||||
playerMsg(sender, "Oops");
|
||||
}
|
||||
if (target.isOnline()) {
|
||||
playerMsg(sender, "That player is already online. Use /tp.");
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
playerMsg(sender,
|
||||
String.format("Teleporting to %s's last known location...", target.getName()));
|
||||
try {
|
||||
Location location = EssentialsBridge.getEssentialsUser(target.getName())
|
||||
.getLastLocation();
|
||||
sender_p.teleport(location);
|
||||
} catch (Exception e) {
|
||||
playerMsg(sender, "Oops");
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,55 +11,52 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
|
||||
public class Command_onlinemode extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 1) {
|
||||
playerMsg(sender, "Server is currently running with 'online-mode=" + (server.getOnlineMode() ? "true" : "false") + "'.", ChatColor.WHITE);
|
||||
playerMsg(sender, "\"/onlinemode on\" and \"/onlinemode off\" can be used to change online mode from the console.", ChatColor.WHITE);
|
||||
} else {
|
||||
boolean online_mode;
|
||||
|
||||
if (sender instanceof Player && !AdminList.isSeniorAdmin(sender, true))
|
||||
{
|
||||
playerMsg(sender, FreedomCommand.MSG_NO_PERMS);
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 1) {
|
||||
playerMsg(sender,
|
||||
"Server is currently running with 'online-mode=" + (server.getOnlineMode() ? "true"
|
||||
: "false") + "'.", ChatColor.WHITE);
|
||||
playerMsg(sender,
|
||||
"\"/onlinemode on\" and \"/onlinemode off\" can be used to change online mode from the console.",
|
||||
ChatColor.WHITE);
|
||||
} else {
|
||||
boolean online_mode;
|
||||
|
||||
if (args[0].equalsIgnoreCase("on"))
|
||||
{
|
||||
online_mode = true;
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("off"))
|
||||
{
|
||||
online_mode = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (sender instanceof Player && !AdminList.isSeniorAdmin(sender, true)) {
|
||||
playerMsg(sender, FreedomCommand.MSG_NO_PERMS);
|
||||
return true;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
Server.setOnlineMode(online_mode);
|
||||
if (args[0].equalsIgnoreCase("on")) {
|
||||
online_mode = true;
|
||||
} else if (args[0].equalsIgnoreCase("off")) {
|
||||
online_mode = false;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (online_mode)
|
||||
{
|
||||
for (Player player : server.getOnlinePlayers())
|
||||
{
|
||||
player.kickPlayer("Server is activating \"online-mode=true\". Please reconnect.");
|
||||
}
|
||||
}
|
||||
try {
|
||||
Server.setOnlineMode(online_mode);
|
||||
|
||||
Utilities.adminAction(sender.getName(), "Turning player validation " + (online_mode ? "on" : "off") + ".", true);
|
||||
if (online_mode) {
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
player.kickPlayer(
|
||||
"Server is activating \"online-mode=true\". Please reconnect.");
|
||||
}
|
||||
}
|
||||
|
||||
server.reload();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.severe(ex);
|
||||
}
|
||||
}
|
||||
Utilities.adminAction(sender.getName(),
|
||||
"Turning player validation " + (online_mode ? "on" : "off") + ".", true);
|
||||
|
||||
return true;
|
||||
}
|
||||
server.reload();
|
||||
} catch (Exception ex) {
|
||||
Log.severe(ex);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,44 +11,41 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
||||
public class Command_op extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("all") || args[0].equalsIgnoreCase("everyone")) {
|
||||
playerMsg(sender, "Correct usage: /opall");
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
OfflinePlayer player = null;
|
||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||
{
|
||||
if (args[0].equalsIgnoreCase(onlinePlayer.getName()))
|
||||
{
|
||||
player = onlinePlayer;
|
||||
}
|
||||
}
|
||||
if (args[0].equalsIgnoreCase("all") || args[0].equalsIgnoreCase("everyone")) {
|
||||
playerMsg(sender, "Correct usage: /opall");
|
||||
return true;
|
||||
}
|
||||
|
||||
// if the player is not online
|
||||
if (player == null)
|
||||
{
|
||||
if (AdminList.isSuperAdmin(sender) || senderIsConsole)
|
||||
{
|
||||
player = DeprecationUtil.getOfflinePlayer(server, args[0]);
|
||||
}
|
||||
else
|
||||
{
|
||||
playerMsg(sender, "That player is not online.");
|
||||
playerMsg(sender, "You don't have permissions to OP offline players.", ChatColor.YELLOW);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
OfflinePlayer player = null;
|
||||
for (Player onlinePlayer : server.getOnlinePlayers()) {
|
||||
if (args[0].equalsIgnoreCase(onlinePlayer.getName())) {
|
||||
player = onlinePlayer;
|
||||
}
|
||||
}
|
||||
|
||||
Utilities.adminAction(sender.getName(), "Opping " + player.getName(), false);
|
||||
player.setOp(true);
|
||||
// if the player is not online
|
||||
if (player == null) {
|
||||
if (AdminList.isSuperAdmin(sender) || senderIsConsole) {
|
||||
player = DeprecationUtil.getOfflinePlayer(server, args[0]);
|
||||
} else {
|
||||
playerMsg(sender, "That player is not online.");
|
||||
playerMsg(sender, "You don't have permissions to OP offline players.",
|
||||
ChatColor.YELLOW);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
Utilities.adminAction(sender.getName(), "Opping " + player.getName(), false);
|
||||
player.setOp(true);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,35 +8,33 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_opall extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Utilities.adminAction(sender.getName(), "Opping all players on the server", false);
|
||||
|
||||
boolean doSetGamemode = false;
|
||||
GameMode targetGamemode = GameMode.CREATIVE;
|
||||
if (args.length != 0) {
|
||||
if (args[0].equals("-c")) {
|
||||
doSetGamemode = true;
|
||||
targetGamemode = GameMode.CREATIVE;
|
||||
}
|
||||
else if (args[0].equals("-s"))
|
||||
{
|
||||
doSetGamemode = true;
|
||||
targetGamemode = GameMode.SURVIVAL;
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Utilities.adminAction(sender.getName(), "Opping all players on the server", false);
|
||||
|
||||
for (Player player : server.getOnlinePlayers())
|
||||
{
|
||||
player.setOp(true);
|
||||
player.sendMessage(FreedomCommand.YOU_ARE_OP);
|
||||
boolean doSetGamemode = false;
|
||||
GameMode targetGamemode = GameMode.CREATIVE;
|
||||
if (args.length != 0) {
|
||||
if (args[0].equals("-c")) {
|
||||
doSetGamemode = true;
|
||||
targetGamemode = GameMode.CREATIVE;
|
||||
} else if (args[0].equals("-s")) {
|
||||
doSetGamemode = true;
|
||||
targetGamemode = GameMode.SURVIVAL;
|
||||
}
|
||||
}
|
||||
|
||||
if (doSetGamemode)
|
||||
{
|
||||
player.setGameMode(targetGamemode);
|
||||
}
|
||||
}
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
player.setOp(true);
|
||||
player.sendMessage(FreedomCommand.YOU_ARE_OP);
|
||||
|
||||
return true;
|
||||
}
|
||||
if (doSetGamemode) {
|
||||
player.setGameMode(targetGamemode);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,12 +6,14 @@ import org.bukkit.command.CommandSender;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_IN_GAME)
|
||||
public class Command_opme extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Utilities.adminAction(sender.getName(), "Opping " + sender.getName(), false);
|
||||
sender.setOp(true);
|
||||
sender.sendMessage(FreedomCommand.YOU_ARE_OP);
|
||||
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Utilities.adminAction(sender.getName(), "Opping " + sender.getName(), false);
|
||||
sender.setOp(true);
|
||||
sender.sendMessage(FreedomCommand.YOU_ARE_OP);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,52 +9,48 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
||||
public class Command_ops extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (args[0].equals("count")) {
|
||||
int totalOps = server.getOperators().size();
|
||||
int onlineOps = 0;
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (Player player : server.getOnlinePlayers())
|
||||
{
|
||||
if (player.isOp())
|
||||
{
|
||||
onlineOps++;
|
||||
}
|
||||
}
|
||||
if (args[0].equals("count")) {
|
||||
int totalOps = server.getOperators().size();
|
||||
int onlineOps = 0;
|
||||
|
||||
playerMsg(sender, "Online OPs: " + onlineOps);
|
||||
playerMsg(sender, "Offline OPs: " + (totalOps - onlineOps));
|
||||
playerMsg(sender, "Total OPs: " + totalOps);
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
if (player.isOp()) {
|
||||
onlineOps++;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
playerMsg(sender, "Online OPs: " + onlineOps);
|
||||
playerMsg(sender, "Offline OPs: " + (totalOps - onlineOps));
|
||||
playerMsg(sender, "Total OPs: " + totalOps);
|
||||
|
||||
if (args[0].equals("purge"))
|
||||
{
|
||||
if (!AdminList.isSuperAdmin(sender))
|
||||
{
|
||||
playerMsg(sender, FreedomCommand.MSG_NO_PERMS);
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
Utilities.adminAction(sender.getName(), "Purging all operators", true);
|
||||
if (args[0].equals("purge")) {
|
||||
if (!AdminList.isSuperAdmin(sender)) {
|
||||
playerMsg(sender, FreedomCommand.MSG_NO_PERMS);
|
||||
return true;
|
||||
}
|
||||
|
||||
for (OfflinePlayer player : server.getOperators())
|
||||
{
|
||||
player.setOp(false);
|
||||
if (player.isOnline())
|
||||
{
|
||||
playerMsg(player.getPlayer(), FreedomCommand.YOU_ARE_NOT_OP);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
Utilities.adminAction(sender.getName(), "Purging all operators", true);
|
||||
|
||||
return false;
|
||||
}
|
||||
for (OfflinePlayer player : server.getOperators()) {
|
||||
player.setOp(false);
|
||||
if (player.isOnline()) {
|
||||
playerMsg(player.getPlayer(), FreedomCommand.YOU_ARE_NOT_OP);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,49 +11,46 @@ import org.bukkit.util.Vector;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_orbit extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Player player = getPlayer(args[0]);
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player == null) {
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
Player player = getPlayer(args[0]);
|
||||
|
||||
PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
if (player == null) {
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
|
||||
double strength = 10.0;
|
||||
PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
|
||||
if (args.length >= 2)
|
||||
{
|
||||
if (args[1].equals("stop"))
|
||||
{
|
||||
playerMsg(sender, "Stopped orbiting " + player.getName());
|
||||
playerdata.stopOrbiting();
|
||||
return true;
|
||||
}
|
||||
double strength = 10.0;
|
||||
|
||||
try
|
||||
{
|
||||
strength = Math.max(1.0, Math.min(150.0, Double.parseDouble(args[1])));
|
||||
}
|
||||
catch (NumberFormatException ex)
|
||||
{
|
||||
playerMsg(sender, ex.getMessage(), ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (args.length >= 2) {
|
||||
if (args[1].equals("stop")) {
|
||||
playerMsg(sender, "Stopped orbiting " + player.getName());
|
||||
playerdata.stopOrbiting();
|
||||
return true;
|
||||
}
|
||||
|
||||
player.setGameMode(GameMode.SURVIVAL);
|
||||
playerdata.startOrbiting(strength);
|
||||
try {
|
||||
strength = Math.max(1.0, Math.min(150.0, Double.parseDouble(args[1])));
|
||||
} catch (NumberFormatException ex) {
|
||||
playerMsg(sender, ex.getMessage(), ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
player.setVelocity(new Vector(0, strength, 0));
|
||||
Utilities.adminAction(sender.getName(), "Orbiting " + player.getName(), false);
|
||||
player.setGameMode(GameMode.SURVIVAL);
|
||||
playerdata.startOrbiting(strength);
|
||||
|
||||
return true;
|
||||
}
|
||||
player.setVelocity(new Vector(0, strength, 0));
|
||||
Utilities.adminAction(sender.getName(), "Orbiting " + player.getName(), false);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import com.sk89q.util.StringUtil;
|
||||
import java.util.List;
|
||||
import me.StevenLawson.TotalFreedomMod.admin.AdminList;
|
||||
import me.StevenLawson.TotalFreedomMod.config.ConfigurationEntry;
|
||||
import me.StevenLawson.TotalFreedomMod.config.MainConfig;
|
||||
|
@ -10,60 +11,53 @@ import org.bukkit.ChatColor;
|
|||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.ONLY_IN_GAME)
|
||||
public class Command_overlord extends FreedomCommand {
|
||||
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (!ConfigurationEntry.OVERLORD_IPS.getList().contains(Utilities.getIp(sender_p))) {
|
||||
try {
|
||||
List<?> ips = (List) MainConfig.getDefaults().get(ConfigurationEntry.OVERLORD_IPS.getConfigName());
|
||||
if (!ips.contains(Utilities.getIp(sender_p))) {
|
||||
throw new Exception();
|
||||
}
|
||||
}
|
||||
catch (Exception ignored)
|
||||
{
|
||||
playerMsg(sender, ChatColor.WHITE + "Unknown command. Type \"help\" for help.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (!ConfigurationEntry.OVERLORD_IPS.getList().contains(Utilities.getIp(sender_p))) {
|
||||
try {
|
||||
List<?> ips = (List) MainConfig.getDefaults()
|
||||
.get(ConfigurationEntry.OVERLORD_IPS.getConfigName());
|
||||
if (!ips.contains(Utilities.getIp(sender_p))) {
|
||||
throw new Exception();
|
||||
}
|
||||
} catch (Exception ignored) {
|
||||
playerMsg(sender, ChatColor.WHITE + "Unknown command. Type \"help\" for help.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (args.length == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (args.length == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (args[0].equals("addme"))
|
||||
{
|
||||
AdminList.addSuperadmin(sender_p);
|
||||
playerMsg(sender, "ok");
|
||||
return true;
|
||||
}
|
||||
if (args[0].equals("addme")) {
|
||||
AdminList.addSuperadmin(sender_p);
|
||||
playerMsg(sender, "ok");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args[0].equals("removeme"))
|
||||
{
|
||||
AdminList.removeSuperadmin(sender_p);
|
||||
playerMsg(sender, "ok");
|
||||
return true;
|
||||
}
|
||||
if (args[0].equals("removeme")) {
|
||||
AdminList.removeSuperadmin(sender_p);
|
||||
playerMsg(sender, "ok");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args[0].equals("do"))
|
||||
{
|
||||
if (args.length <= 1)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (args[0].equals("do")) {
|
||||
if (args.length <= 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final String command = StringUtil.joinString(args, " ", 1);
|
||||
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command);
|
||||
playerMsg(sender, "ok");
|
||||
return true;
|
||||
}
|
||||
final String command = StringUtil.joinString(args, " ", 1);
|
||||
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command);
|
||||
playerMsg(sender, "ok");
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -8,54 +8,45 @@ import org.bukkit.command.CommandSender;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH, blockHostConsole = true)
|
||||
public class Command_permban extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("list")) {
|
||||
dumplist(sender);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("reload"))
|
||||
{
|
||||
if (!senderIsConsole)
|
||||
{
|
||||
sender.sendMessage(FreedomCommand.MSG_NO_PERMS);
|
||||
return true;
|
||||
}
|
||||
playerMsg(sender, "Reloading permban list...", ChatColor.RED);
|
||||
PermbanList.load();
|
||||
dumplist(sender);
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
if (args[0].equalsIgnoreCase("list")) {
|
||||
dumplist(sender);
|
||||
} else if (args[0].equalsIgnoreCase("reload")) {
|
||||
if (!senderIsConsole) {
|
||||
sender.sendMessage(FreedomCommand.MSG_NO_PERMS);
|
||||
return true;
|
||||
}
|
||||
playerMsg(sender, "Reloading permban list...", ChatColor.RED);
|
||||
PermbanList.load();
|
||||
dumplist(sender);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
private void dumplist(CommandSender sender)
|
||||
{
|
||||
if (PermbanList.getPermbannedPlayers().isEmpty())
|
||||
{
|
||||
playerMsg(sender, "No permanently banned player names.");
|
||||
}
|
||||
else
|
||||
{
|
||||
playerMsg(sender, PermbanList.getPermbannedPlayers().size() + " permanently banned players:");
|
||||
playerMsg(sender, StringUtils.join(PermbanList.getPermbannedPlayers(), ", "));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
if (PermbanList.getPermbannedIps().isEmpty())
|
||||
{
|
||||
playerMsg(sender, "No permanently banned IPs.");
|
||||
}
|
||||
else
|
||||
{
|
||||
playerMsg(sender, PermbanList.getPermbannedIps().size() + " permanently banned IPs:");
|
||||
playerMsg(sender, StringUtils.join(PermbanList.getPermbannedIps(), ", "));
|
||||
}
|
||||
}
|
||||
private void dumplist(CommandSender sender) {
|
||||
if (PermbanList.getPermbannedPlayers().isEmpty()) {
|
||||
playerMsg(sender, "No permanently banned player names.");
|
||||
} else {
|
||||
playerMsg(sender,
|
||||
PermbanList.getPermbannedPlayers().size() + " permanently banned players:");
|
||||
playerMsg(sender, StringUtils.join(PermbanList.getPermbannedPlayers(), ", "));
|
||||
}
|
||||
|
||||
if (PermbanList.getPermbannedIps().isEmpty()) {
|
||||
playerMsg(sender, "No permanently banned IPs.");
|
||||
} else {
|
||||
playerMsg(sender, PermbanList.getPermbannedIps().size() + " permanently banned IPs:");
|
||||
playerMsg(sender, StringUtils.join(PermbanList.getPermbannedIps(), ", "));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,136 +9,121 @@ import org.bukkit.plugin.PluginManager;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.BOTH)
|
||||
public class Command_plugincontrol extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 0 || args.length > 2) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final PluginManager pm = server.getPluginManager();
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 0 || args.length > 2) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (args.length == 1) {
|
||||
if (args[0].equalsIgnoreCase("list"))
|
||||
{
|
||||
for (Plugin serverPlugin : pm.getPlugins())
|
||||
{
|
||||
final String version = serverPlugin.getDescription().getVersion();
|
||||
playerMsg(sender, ChatColor.GRAY + "- " + (serverPlugin.isEnabled() ? ChatColor.GREEN : ChatColor.RED) + serverPlugin.getName()
|
||||
+ ChatColor.GOLD + (version != null && !version.isEmpty() ? " v" + version : "") + " by "
|
||||
+ StringUtils.join(serverPlugin.getDescription().getAuthors(), ", "));
|
||||
}
|
||||
final PluginManager pm = server.getPluginManager();
|
||||
|
||||
return true;
|
||||
}
|
||||
if (args.length == 1) {
|
||||
if (args[0].equalsIgnoreCase("list")) {
|
||||
for (Plugin serverPlugin : pm.getPlugins()) {
|
||||
final String version = serverPlugin.getDescription().getVersion();
|
||||
playerMsg(sender,
|
||||
ChatColor.GRAY + "- " + (serverPlugin.isEnabled() ? ChatColor.GREEN
|
||||
: ChatColor.RED) + serverPlugin.getName()
|
||||
+ ChatColor.GOLD + (version != null && !version.isEmpty() ? " v"
|
||||
+ version : "") + " by "
|
||||
+ StringUtils.join(serverPlugin.getDescription().getAuthors(), ", "));
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
if ("enable".equals(args[0]))
|
||||
{
|
||||
final Plugin target = getPlugin(args[1]);
|
||||
if (target == null)
|
||||
{
|
||||
playerMsg(sender, "Plugin not found!");
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
if (target.isEnabled())
|
||||
{
|
||||
playerMsg(sender, "Plugin is already enabled.");
|
||||
return true;
|
||||
}
|
||||
if ("enable".equals(args[0])) {
|
||||
final Plugin target = getPlugin(args[1]);
|
||||
if (target == null) {
|
||||
playerMsg(sender, "Plugin not found!");
|
||||
return true;
|
||||
}
|
||||
|
||||
pm.enablePlugin(target);
|
||||
if (target.isEnabled()) {
|
||||
playerMsg(sender, "Plugin is already enabled.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!pm.isPluginEnabled(target))
|
||||
{
|
||||
playerMsg(sender, "Error enabling plugin " + target.getName());
|
||||
return true;
|
||||
}
|
||||
pm.enablePlugin(target);
|
||||
|
||||
playerMsg(sender, target.getName() + " is now enabled.");
|
||||
return true;
|
||||
}
|
||||
if (!pm.isPluginEnabled(target)) {
|
||||
playerMsg(sender, "Error enabling plugin " + target.getName());
|
||||
return true;
|
||||
}
|
||||
|
||||
if ("disable".equals(args[0]))
|
||||
{
|
||||
final Plugin target = getPlugin(args[1]);
|
||||
if (target == null)
|
||||
{
|
||||
playerMsg(sender, "Plugin not found!");
|
||||
return true;
|
||||
}
|
||||
playerMsg(sender, target.getName() + " is now enabled.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!target.isEnabled())
|
||||
{
|
||||
playerMsg(sender, "Plugin is already disabled.");
|
||||
return true;
|
||||
}
|
||||
if ("disable".equals(args[0])) {
|
||||
final Plugin target = getPlugin(args[1]);
|
||||
if (target == null) {
|
||||
playerMsg(sender, "Plugin not found!");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (target.getName().equals(plugin.getName()))
|
||||
{
|
||||
playerMsg(sender, "You cannot disable " + plugin.getName());
|
||||
return true;
|
||||
}
|
||||
if (!target.isEnabled()) {
|
||||
playerMsg(sender, "Plugin is already disabled.");
|
||||
return true;
|
||||
}
|
||||
|
||||
pm.disablePlugin(target);
|
||||
if (target.getName().equals(plugin.getName())) {
|
||||
playerMsg(sender, "You cannot disable " + plugin.getName());
|
||||
return true;
|
||||
}
|
||||
|
||||
if (pm.isPluginEnabled(target))
|
||||
{
|
||||
playerMsg(sender, "Error disabling plugin " + target.getName());
|
||||
return true;
|
||||
}
|
||||
pm.disablePlugin(target);
|
||||
|
||||
playerMsg(sender, target.getName() + " is now disabled.");
|
||||
return true;
|
||||
}
|
||||
if (pm.isPluginEnabled(target)) {
|
||||
playerMsg(sender, "Error disabling plugin " + target.getName());
|
||||
return true;
|
||||
}
|
||||
|
||||
if ("reload".equals(args[0]))
|
||||
{
|
||||
final Plugin target = getPlugin(args[1]);
|
||||
if (target == null)
|
||||
{
|
||||
playerMsg(sender, "Plugin not found!");
|
||||
return true;
|
||||
}
|
||||
playerMsg(sender, target.getName() + " is now disabled.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (target.getName().equals(plugin.getName()))
|
||||
{
|
||||
playerMsg(sender, "Use /tfm reload to reload instead.");
|
||||
return true;
|
||||
}
|
||||
if ("reload".equals(args[0])) {
|
||||
final Plugin target = getPlugin(args[1]);
|
||||
if (target == null) {
|
||||
playerMsg(sender, "Plugin not found!");
|
||||
return true;
|
||||
}
|
||||
|
||||
pm.disablePlugin(target);
|
||||
pm.enablePlugin(target);
|
||||
playerMsg(sender, target.getName() + " reloaded.");
|
||||
return true;
|
||||
}
|
||||
if (target.getName().equals(plugin.getName())) {
|
||||
playerMsg(sender, "Use /tfm reload to reload instead.");
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
pm.disablePlugin(target);
|
||||
pm.enablePlugin(target);
|
||||
playerMsg(sender, target.getName() + " reloaded.");
|
||||
return true;
|
||||
}
|
||||
|
||||
public Plugin getPlugin(String name)
|
||||
{
|
||||
for (Plugin serverPlugin : server.getPluginManager().getPlugins())
|
||||
{
|
||||
if (serverPlugin.getName().equalsIgnoreCase(name))
|
||||
{
|
||||
return serverPlugin;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
if (name.length() >= 3)
|
||||
{
|
||||
for (Plugin serverPlugin : server.getPluginManager().getPlugins())
|
||||
{
|
||||
if (serverPlugin.getName().toLowerCase().contains(name.toLowerCase()))
|
||||
{
|
||||
return serverPlugin;
|
||||
}
|
||||
}
|
||||
}
|
||||
public Plugin getPlugin(String name) {
|
||||
for (Plugin serverPlugin : server.getPluginManager().getPlugins()) {
|
||||
if (serverPlugin.getName().equalsIgnoreCase(name)) {
|
||||
return serverPlugin;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
if (name.length() >= 3) {
|
||||
for (Plugin serverPlugin : server.getPluginManager().getPlugins()) {
|
||||
if (serverPlugin.getName().toLowerCase().contains(name.toLowerCase())) {
|
||||
return serverPlugin;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import me.StevenLawson.TotalFreedomMod.admin.AdminList;
|
||||
import me.StevenLawson.TotalFreedomMod.util.Utilities;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
@ -10,162 +12,134 @@ import org.bukkit.entity.Player;
|
|||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
||||
public class Command_potion extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 1 || args.length == 2) {
|
||||
if (args[0].equalsIgnoreCase("list")) {
|
||||
List<String> potionEffectTypeNames = new ArrayList<String>();
|
||||
for (PotionEffectType potion_effect_type : PotionEffectType.values()) {
|
||||
if (potion_effect_type != null) {
|
||||
potionEffectTypeNames.add(potion_effect_type.getName());
|
||||
}
|
||||
}
|
||||
playerMsg(sender, "Potion effect types: " + StringUtils.join(potionEffectTypeNames, ", "), ChatColor.AQUA);
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("clearall"))
|
||||
{
|
||||
if (!(AdminList.isSuperAdmin(sender) || senderIsConsole))
|
||||
{
|
||||
playerMsg(sender, FreedomCommand.MSG_NO_PERMS);
|
||||
return true;
|
||||
}
|
||||
Utilities.adminAction(sender.getName(), "Cleared all potion effects from all players", true);
|
||||
for (Player target : server.getOnlinePlayers())
|
||||
{
|
||||
for (PotionEffect potion_effect : target.getActivePotionEffects())
|
||||
{
|
||||
target.removePotionEffect(potion_effect.getType());
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("clear"))
|
||||
{
|
||||
Player target = sender_p;
|
||||
|
||||
if (args.length == 2)
|
||||
{
|
||||
target = getPlayer(args[1]);
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 1 || args.length == 2) {
|
||||
if (args[0].equalsIgnoreCase("list")) {
|
||||
List<String> potionEffectTypeNames = new ArrayList<String>();
|
||||
for (PotionEffectType potion_effect_type : PotionEffectType.values()) {
|
||||
if (potion_effect_type != null) {
|
||||
potionEffectTypeNames.add(potion_effect_type.getName());
|
||||
}
|
||||
}
|
||||
playerMsg(sender,
|
||||
"Potion effect types: " + StringUtils.join(potionEffectTypeNames, ", "),
|
||||
ChatColor.AQUA);
|
||||
} else if (args[0].equalsIgnoreCase("clearall")) {
|
||||
if (!(AdminList.isSuperAdmin(sender) || senderIsConsole)) {
|
||||
playerMsg(sender, FreedomCommand.MSG_NO_PERMS);
|
||||
return true;
|
||||
}
|
||||
Utilities.adminAction(sender.getName(),
|
||||
"Cleared all potion effects from all players", true);
|
||||
for (Player target : server.getOnlinePlayers()) {
|
||||
for (PotionEffect potion_effect : target.getActivePotionEffects()) {
|
||||
target.removePotionEffect(potion_effect.getType());
|
||||
}
|
||||
}
|
||||
} else if (args[0].equalsIgnoreCase("clear")) {
|
||||
Player target = sender_p;
|
||||
|
||||
if (target == null)
|
||||
{
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (args.length == 2) {
|
||||
target = getPlayer(args[1]);
|
||||
|
||||
if (!target.equals(sender_p))
|
||||
{
|
||||
if (!AdminList.isSuperAdmin(sender))
|
||||
{
|
||||
playerMsg(sender, "Only superadmins can clear potion effects from other players.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (senderIsConsole)
|
||||
{
|
||||
playerMsg(sender, "You must specify a target player when using this command from the console.");
|
||||
return true;
|
||||
}
|
||||
if (target == null) {
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
for (PotionEffect potion_effect : target.getActivePotionEffects())
|
||||
{
|
||||
target.removePotionEffect(potion_effect.getType());
|
||||
}
|
||||
if (!target.equals(sender_p)) {
|
||||
if (!AdminList.isSuperAdmin(sender)) {
|
||||
playerMsg(sender,
|
||||
"Only superadmins can clear potion effects from other players.");
|
||||
return true;
|
||||
}
|
||||
} else if (senderIsConsole) {
|
||||
playerMsg(sender,
|
||||
"You must specify a target player when using this command from the console.");
|
||||
return true;
|
||||
}
|
||||
|
||||
playerMsg(sender, "Cleared all active potion effects " + (!target.equals(sender_p) ? "from player " + target.getName() + "." : "from yourself."), ChatColor.AQUA);
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (args.length == 4 || args.length == 5)
|
||||
{
|
||||
if (args[0].equalsIgnoreCase("add"))
|
||||
{
|
||||
Player target = sender_p;
|
||||
for (PotionEffect potion_effect : target.getActivePotionEffects()) {
|
||||
target.removePotionEffect(potion_effect.getType());
|
||||
}
|
||||
|
||||
if (args.length == 5)
|
||||
{
|
||||
playerMsg(sender, "Cleared all active potion effects " + (!target.equals(sender_p) ?
|
||||
"from player " + target.getName() + "." : "from yourself."), ChatColor.AQUA);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else if (args.length == 4 || args.length == 5) {
|
||||
if (args[0].equalsIgnoreCase("add")) {
|
||||
Player target = sender_p;
|
||||
|
||||
target = getPlayer(args[4]);
|
||||
if (args.length == 5) {
|
||||
|
||||
if (target == null)
|
||||
{
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
target = getPlayer(args[4]);
|
||||
|
||||
if (!target.equals(sender_p))
|
||||
{
|
||||
if (!AdminList.isSuperAdmin(sender))
|
||||
{
|
||||
sender.sendMessage("Only superadmins can apply potion effects to other players.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (senderIsConsole)
|
||||
{
|
||||
sender.sendMessage("You must specify a target player when using this command from the console.");
|
||||
return true;
|
||||
}
|
||||
if (target == null) {
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
PotionEffectType potion_effect_type = PotionEffectType.getByName(args[1]);
|
||||
if (potion_effect_type == null)
|
||||
{
|
||||
sender.sendMessage(ChatColor.AQUA + "Invalid potion effect type.");
|
||||
return true;
|
||||
}
|
||||
if (!target.equals(sender_p)) {
|
||||
if (!AdminList.isSuperAdmin(sender)) {
|
||||
sender.sendMessage(
|
||||
"Only superadmins can apply potion effects to other players.");
|
||||
return true;
|
||||
}
|
||||
} else if (senderIsConsole) {
|
||||
sender.sendMessage(
|
||||
"You must specify a target player when using this command from the console.");
|
||||
return true;
|
||||
}
|
||||
|
||||
int duration;
|
||||
try
|
||||
{
|
||||
duration = Integer.parseInt(args[2]);
|
||||
duration = Math.min(duration, 100000);
|
||||
}
|
||||
catch (NumberFormatException ex)
|
||||
{
|
||||
playerMsg(sender, "Invalid potion duration.", ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
PotionEffectType potion_effect_type = PotionEffectType.getByName(args[1]);
|
||||
if (potion_effect_type == null) {
|
||||
sender.sendMessage(ChatColor.AQUA + "Invalid potion effect type.");
|
||||
return true;
|
||||
}
|
||||
|
||||
int amplifier;
|
||||
try
|
||||
{
|
||||
amplifier = Integer.parseInt(args[3]);
|
||||
amplifier = Math.min(amplifier, 100000);
|
||||
}
|
||||
catch (NumberFormatException ex)
|
||||
{
|
||||
playerMsg(sender, "Invalid potion amplifier.", ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
int duration;
|
||||
try {
|
||||
duration = Integer.parseInt(args[2]);
|
||||
duration = Math.min(duration, 100000);
|
||||
} catch (NumberFormatException ex) {
|
||||
playerMsg(sender, "Invalid potion duration.", ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
|
||||
PotionEffect new_effect = potion_effect_type.createEffect(duration, amplifier);
|
||||
target.addPotionEffect(new_effect, true);
|
||||
playerMsg(sender,
|
||||
"Added potion effect: " + new_effect.getType().getName()
|
||||
+ ", Duration: " + new_effect.getDuration()
|
||||
+ ", Amplifier: " + new_effect.getAmplifier()
|
||||
+ (!target.equals(sender_p) ? " to player " + target.getName() + "." : " to yourself."), ChatColor.AQUA);
|
||||
int amplifier;
|
||||
try {
|
||||
amplifier = Integer.parseInt(args[3]);
|
||||
amplifier = Math.min(amplifier, 100000);
|
||||
} catch (NumberFormatException ex) {
|
||||
playerMsg(sender, "Invalid potion amplifier.", ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
PotionEffect new_effect = potion_effect_type.createEffect(duration, amplifier);
|
||||
target.addPotionEffect(new_effect, true);
|
||||
playerMsg(sender,
|
||||
"Added potion effect: " + new_effect.getType().getName()
|
||||
+ ", Duration: " + new_effect.getDuration()
|
||||
+ ", Amplifier: " + new_effect.getAmplifier()
|
||||
+ (!target.equals(sender_p) ? " to player " + target.getName() + "."
|
||||
: " to yourself."), ChatColor.AQUA);
|
||||
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,60 +1,54 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.net.URL;
|
||||
import javax.net.ssl.HttpsURLConnection;
|
||||
import me.StevenLawson.TotalFreedomMod.Log;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import javax.net.ssl.HttpsURLConnection;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_premium extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final Player player = getPlayer(args[0]);
|
||||
final String name;
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player != null)
|
||||
{
|
||||
name = player.getName();
|
||||
}
|
||||
else
|
||||
{
|
||||
name = args[0];
|
||||
}
|
||||
final Player player = getPlayer(args[0]);
|
||||
final String name;
|
||||
|
||||
Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> {
|
||||
try
|
||||
{
|
||||
final URL getUrl = new URL("https://api.mojang.com/users/profiles/minecraft/" + name);
|
||||
final HttpsURLConnection urlConnection = (HttpsURLConnection) getUrl.openConnection();
|
||||
final String message = (urlConnection.getResponseCode() == 200 ? ChatColor.DARK_GREEN + "Yes" : ChatColor.RED + "No");
|
||||
urlConnection.disconnect();
|
||||
if (player != null) {
|
||||
name = player.getName();
|
||||
} else {
|
||||
name = args[0];
|
||||
}
|
||||
|
||||
Bukkit.getScheduler().runTask(plugin, () -> {
|
||||
playerMsg(sender, "Player " + name + " is premium: " + message);
|
||||
});
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.severe(ex);
|
||||
Bukkit.getScheduler().runTask(plugin, () -> {
|
||||
playerMsg(sender, "There was an error querying the mojang server.", ChatColor.RED);
|
||||
});
|
||||
}
|
||||
});
|
||||
Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> {
|
||||
try {
|
||||
final URL getUrl = new URL(
|
||||
"https://api.mojang.com/users/profiles/minecraft/" + name);
|
||||
final HttpsURLConnection urlConnection = (HttpsURLConnection) getUrl.openConnection();
|
||||
final String message = (urlConnection.getResponseCode() == 200 ?
|
||||
ChatColor.DARK_GREEN + "Yes" : ChatColor.RED + "No");
|
||||
urlConnection.disconnect();
|
||||
|
||||
return true;
|
||||
}
|
||||
Bukkit.getScheduler().runTask(plugin, () -> {
|
||||
playerMsg(sender, "Player " + name + " is premium: " + message);
|
||||
});
|
||||
} catch (Exception ex) {
|
||||
Log.severe(ex);
|
||||
Bukkit.getScheduler().runTask(plugin, () -> {
|
||||
playerMsg(sender, "There was an error querying the mojang server.",
|
||||
ChatColor.RED);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,87 +9,72 @@ import org.bukkit.command.CommandSender;
|
|||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_protectarea extends FreedomCommand {
|
||||
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (!ConfigurationEntry.PROTECTAREA_ENABLED.getBoolean()) {
|
||||
playerMsg(sender, "Protected areas are currently disabled in the TotalFreedomMod configuration.");
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (!ConfigurationEntry.PROTECTAREA_ENABLED.getBoolean()) {
|
||||
playerMsg(sender,
|
||||
"Protected areas are currently disabled in the TotalFreedomMod configuration.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args.length == 1) {
|
||||
if (args[0].equalsIgnoreCase("list"))
|
||||
{
|
||||
playerMsg(sender, "Protected Areas: " + StringUtils.join(ProtectedArea.getProtectedAreaLabels(), ", "));
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("clear"))
|
||||
{
|
||||
ProtectedArea.clearProtectedAreas();
|
||||
if (args.length == 1) {
|
||||
if (args[0].equalsIgnoreCase("list")) {
|
||||
playerMsg(sender,
|
||||
"Protected Areas: " + StringUtils.join(ProtectedArea.getProtectedAreaLabels(),
|
||||
", "));
|
||||
} else if (args[0].equalsIgnoreCase("clear")) {
|
||||
ProtectedArea.clearProtectedAreas();
|
||||
|
||||
playerMsg(sender, "Protected Areas Cleared.");
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
playerMsg(sender, "Protected Areas Cleared.");
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else if (args.length == 2)
|
||||
{
|
||||
if ("remove".equals(args[0]))
|
||||
{
|
||||
ProtectedArea.removeProtectedArea(args[1]);
|
||||
return true;
|
||||
} else if (args.length == 2) {
|
||||
if ("remove".equals(args[0])) {
|
||||
ProtectedArea.removeProtectedArea(args[1]);
|
||||
|
||||
playerMsg(sender, "Area removed. Protected Areas: " + StringUtils.join(ProtectedArea.getProtectedAreaLabels(), ", "));
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
playerMsg(sender, "Area removed. Protected Areas: " + StringUtils.join(
|
||||
ProtectedArea.getProtectedAreaLabels(), ", "));
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else if (args.length == 3)
|
||||
{
|
||||
if (args[0].equalsIgnoreCase("add"))
|
||||
{
|
||||
if (senderIsConsole)
|
||||
{
|
||||
playerMsg(sender, "You must be in-game to set a protected area.");
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
} else if (args.length == 3) {
|
||||
if (args[0].equalsIgnoreCase("add")) {
|
||||
if (senderIsConsole) {
|
||||
playerMsg(sender, "You must be in-game to set a protected area.");
|
||||
return true;
|
||||
}
|
||||
|
||||
Double radius;
|
||||
try
|
||||
{
|
||||
radius = Double.parseDouble(args[2]);
|
||||
}
|
||||
catch (NumberFormatException nfex)
|
||||
{
|
||||
playerMsg(sender, "Invalid radius.");
|
||||
return true;
|
||||
}
|
||||
Double radius;
|
||||
try {
|
||||
radius = Double.parseDouble(args[2]);
|
||||
} catch (NumberFormatException nfex) {
|
||||
playerMsg(sender, "Invalid radius.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (radius > ProtectedArea.MAX_RADIUS || radius < 0.0D)
|
||||
{
|
||||
playerMsg(sender, "Invalid radius. Radius must be a positive value less than " + ProtectedArea.MAX_RADIUS + ".");
|
||||
return true;
|
||||
}
|
||||
if (radius > ProtectedArea.MAX_RADIUS || radius < 0.0D) {
|
||||
playerMsg(sender, "Invalid radius. Radius must be a positive value less than "
|
||||
+ ProtectedArea.MAX_RADIUS + ".");
|
||||
return true;
|
||||
}
|
||||
|
||||
ProtectedArea.addProtectedArea(args[1], sender_p.getLocation(), radius);
|
||||
ProtectedArea.addProtectedArea(args[1], sender_p.getLocation(), radius);
|
||||
|
||||
playerMsg(sender, "Area added. Protected Areas: " + StringUtils.join(ProtectedArea.getProtectedAreaLabels(), ", "));
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
playerMsg(sender, "Area added. Protected Areas: " + StringUtils.join(
|
||||
ProtectedArea.getProtectedAreaLabels(), ", "));
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,67 +9,62 @@ import org.bukkit.potion.PotionEffect;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_purgeall extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Utilities.adminAction(sender.getName(), "Purging all player data", true);
|
||||
|
||||
// Purge entities
|
||||
Utilities.TFM_EntityWiper.wipeEntities(true, true);
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Utilities.adminAction(sender.getName(), "Purging all player data", true);
|
||||
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
// Purge entities
|
||||
Utilities.TFM_EntityWiper.wipeEntities(true, true);
|
||||
|
||||
// Unmute all players
|
||||
if (playerdata.isMuted())
|
||||
{
|
||||
playerdata.setMuted(false);
|
||||
}
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
|
||||
// Unblock all commands
|
||||
if (playerdata.allCommandsBlocked())
|
||||
{
|
||||
playerdata.setCommandsBlocked(false);
|
||||
}
|
||||
// Unmute all players
|
||||
if (playerdata.isMuted()) {
|
||||
playerdata.setMuted(false);
|
||||
}
|
||||
|
||||
// Unhalt all players
|
||||
if (playerdata.isHalted())
|
||||
{
|
||||
playerdata.setHalted(false);
|
||||
}
|
||||
// Unblock all commands
|
||||
if (playerdata.allCommandsBlocked()) {
|
||||
playerdata.setCommandsBlocked(false);
|
||||
}
|
||||
|
||||
// Stop orbiting
|
||||
if (playerdata.isOrbiting())
|
||||
{
|
||||
playerdata.stopOrbiting();
|
||||
}
|
||||
// Unhalt all players
|
||||
if (playerdata.isHalted()) {
|
||||
playerdata.setHalted(false);
|
||||
}
|
||||
|
||||
// Unfreeze
|
||||
if (playerdata.isFrozen())
|
||||
{
|
||||
playerdata.setFrozen(false);
|
||||
}
|
||||
// Stop orbiting
|
||||
if (playerdata.isOrbiting()) {
|
||||
playerdata.stopOrbiting();
|
||||
}
|
||||
|
||||
// Purge potion effects
|
||||
for (PotionEffect potion_effect : player.getActivePotionEffects())
|
||||
{
|
||||
player.removePotionEffect(potion_effect.getType());
|
||||
}
|
||||
// Unfreeze
|
||||
if (playerdata.isFrozen()) {
|
||||
playerdata.setFrozen(false);
|
||||
}
|
||||
|
||||
// Uncage
|
||||
if (playerdata.isCaged())
|
||||
{
|
||||
playerdata.setCaged(false);
|
||||
playerdata.regenerateHistory();
|
||||
playerdata.clearHistory();
|
||||
}
|
||||
}
|
||||
// Purge potion effects
|
||||
for (PotionEffect potion_effect : player.getActivePotionEffects()) {
|
||||
player.removePotionEffect(potion_effect.getType());
|
||||
}
|
||||
|
||||
// Unfreeze all players
|
||||
Command_fr.setAllFrozen(false);
|
||||
// Uncage
|
||||
if (playerdata.isCaged()) {
|
||||
playerdata.setCaged(false);
|
||||
playerdata.regenerateHistory();
|
||||
playerdata.clearHistory();
|
||||
}
|
||||
}
|
||||
|
||||
// Remove all mobs
|
||||
Command_mp.purgeMobs();
|
||||
// Unfreeze all players
|
||||
Command_fr.setAllFrozen(false);
|
||||
|
||||
return true;
|
||||
}
|
||||
// Remove all mobs
|
||||
Command_mp.purgeMobs();
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,55 +1,51 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import me.StevenLawson.TotalFreedomMod.util.Utilities;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_qdeop extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
boolean silent = false;
|
||||
if (args.length == 2) {
|
||||
silent = args[1].equalsIgnoreCase("-s");
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final String targetName = args[0].toLowerCase();
|
||||
boolean silent = false;
|
||||
if (args.length == 2) {
|
||||
silent = args[1].equalsIgnoreCase("-s");
|
||||
}
|
||||
|
||||
final List<String> matchedPlayerNames = new ArrayList<String>();
|
||||
for (final Player player : server.getOnlinePlayers())
|
||||
{
|
||||
if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName().toLowerCase().contains(targetName))
|
||||
{
|
||||
if (player.isOp())
|
||||
{
|
||||
matchedPlayerNames.add(player.getName());
|
||||
player.setOp(false);
|
||||
player.sendMessage(FreedomCommand.YOU_ARE_NOT_OP);
|
||||
}
|
||||
}
|
||||
}
|
||||
final String targetName = args[0].toLowerCase();
|
||||
|
||||
if (!matchedPlayerNames.isEmpty())
|
||||
{
|
||||
if (!silent)
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "De-opping " + StringUtils.join(matchedPlayerNames, ", "), false);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
playerMsg(sender, "No targets matched.");
|
||||
}
|
||||
final List<String> matchedPlayerNames = new ArrayList<String>();
|
||||
for (final Player player : server.getOnlinePlayers()) {
|
||||
if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName()
|
||||
.toLowerCase().contains(targetName)) {
|
||||
if (player.isOp()) {
|
||||
matchedPlayerNames.add(player.getName());
|
||||
player.setOp(false);
|
||||
player.sendMessage(FreedomCommand.YOU_ARE_NOT_OP);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
if (!matchedPlayerNames.isEmpty()) {
|
||||
if (!silent) {
|
||||
Utilities.adminAction(sender.getName(),
|
||||
"De-opping " + StringUtils.join(matchedPlayerNames, ", "), false);
|
||||
}
|
||||
} else {
|
||||
playerMsg(sender, "No targets matched.");
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,55 +1,51 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import me.StevenLawson.TotalFreedomMod.util.Utilities;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
||||
public class Command_qop extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
boolean silent = false;
|
||||
if (args.length == 2) {
|
||||
silent = args[1].equalsIgnoreCase("-s");
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final String targetName = args[0].toLowerCase();
|
||||
boolean silent = false;
|
||||
if (args.length == 2) {
|
||||
silent = args[1].equalsIgnoreCase("-s");
|
||||
}
|
||||
|
||||
final List<String> matchedPlayerNames = new ArrayList<String>();
|
||||
for (final Player player : server.getOnlinePlayers())
|
||||
{
|
||||
if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName().toLowerCase().contains(targetName))
|
||||
{
|
||||
if (!player.isOp())
|
||||
{
|
||||
matchedPlayerNames.add(player.getName());
|
||||
player.setOp(true);
|
||||
player.sendMessage(FreedomCommand.YOU_ARE_OP);
|
||||
}
|
||||
}
|
||||
}
|
||||
final String targetName = args[0].toLowerCase();
|
||||
|
||||
if (!matchedPlayerNames.isEmpty())
|
||||
{
|
||||
if (!silent)
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "Opping " + StringUtils.join(matchedPlayerNames, ", "), false);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
playerMsg(sender, "No targets matched.");
|
||||
}
|
||||
final List<String> matchedPlayerNames = new ArrayList<String>();
|
||||
for (final Player player : server.getOnlinePlayers()) {
|
||||
if (player.getName().toLowerCase().contains(targetName) || player.getDisplayName()
|
||||
.toLowerCase().contains(targetName)) {
|
||||
if (!player.isOp()) {
|
||||
matchedPlayerNames.add(player.getName());
|
||||
player.setOp(true);
|
||||
player.sendMessage(FreedomCommand.YOU_ARE_OP);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
if (!matchedPlayerNames.isEmpty()) {
|
||||
if (!silent) {
|
||||
Utilities.adminAction(sender.getName(),
|
||||
"Opping " + StringUtils.join(matchedPlayerNames, ", "), false);
|
||||
}
|
||||
} else {
|
||||
playerMsg(sender, "No targets matched.");
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,105 +1,93 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.ONLY_IN_GAME)
|
||||
public class Command_radar extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Location sender_pos = sender_p.getLocation();
|
||||
|
||||
List<TFM_RadarData> radar_data = new ArrayList<TFM_RadarData>();
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Location sender_pos = sender_p.getLocation();
|
||||
|
||||
for (Player player : sender_pos.getWorld().getPlayers()) {
|
||||
if (!player.equals(sender_p)) {
|
||||
try
|
||||
{
|
||||
radar_data.add(new TFM_RadarData(player, sender_pos.distance(player.getLocation()), player.getLocation()));
|
||||
}
|
||||
catch (IllegalArgumentException ex)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
List<TFM_RadarData> radar_data = new ArrayList<TFM_RadarData>();
|
||||
|
||||
if (radar_data.isEmpty())
|
||||
{
|
||||
playerMsg(sender, "You are the only player in this world. (" + ChatColor.GREEN + "Forever alone..." + ChatColor.YELLOW + ")", ChatColor.YELLOW); //lol
|
||||
return true;
|
||||
}
|
||||
for (Player player : sender_pos.getWorld().getPlayers()) {
|
||||
if (!player.equals(sender_p)) {
|
||||
try {
|
||||
radar_data.add(
|
||||
new TFM_RadarData(player, sender_pos.distance(player.getLocation()),
|
||||
player.getLocation()));
|
||||
} catch (IllegalArgumentException ex) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Collections.sort(radar_data, new TFM_RadarData());
|
||||
if (radar_data.isEmpty()) {
|
||||
playerMsg(sender,
|
||||
"You are the only player in this world. (" + ChatColor.GREEN + "Forever alone..."
|
||||
+ ChatColor.YELLOW + ")", ChatColor.YELLOW); //lol
|
||||
return true;
|
||||
}
|
||||
|
||||
playerMsg(sender, "People nearby in " + sender_pos.getWorld().getName() + ":", ChatColor.YELLOW);
|
||||
Collections.sort(radar_data, new TFM_RadarData());
|
||||
|
||||
int countmax = 5;
|
||||
if (args.length == 1)
|
||||
{
|
||||
try
|
||||
{
|
||||
countmax = Math.max(1, Math.min(64, Integer.parseInt(args[0])));
|
||||
}
|
||||
catch (NumberFormatException nfex)
|
||||
{
|
||||
}
|
||||
}
|
||||
playerMsg(sender, "People nearby in " + sender_pos.getWorld().getName() + ":",
|
||||
ChatColor.YELLOW);
|
||||
|
||||
for (TFM_RadarData i : radar_data)
|
||||
{
|
||||
playerMsg(sender, String.format("%s - %d",
|
||||
i.player.getName(),
|
||||
Math.round(i.distance)), ChatColor.YELLOW);
|
||||
int countmax = 5;
|
||||
if (args.length == 1) {
|
||||
try {
|
||||
countmax = Math.max(1, Math.min(64, Integer.parseInt(args[0])));
|
||||
} catch (NumberFormatException nfex) {
|
||||
}
|
||||
}
|
||||
|
||||
if (--countmax <= 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (TFM_RadarData i : radar_data) {
|
||||
playerMsg(sender, String.format("%s - %d",
|
||||
i.player.getName(),
|
||||
Math.round(i.distance)), ChatColor.YELLOW);
|
||||
|
||||
return true;
|
||||
}
|
||||
if (--countmax <= 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private class TFM_RadarData implements Comparator<TFM_RadarData>
|
||||
{
|
||||
public Player player;
|
||||
public double distance;
|
||||
public Location location;
|
||||
return true;
|
||||
}
|
||||
|
||||
public TFM_RadarData(Player player, double distance, Location location)
|
||||
{
|
||||
this.player = player;
|
||||
this.distance = distance;
|
||||
this.location = location;
|
||||
}
|
||||
private class TFM_RadarData implements Comparator<TFM_RadarData> {
|
||||
|
||||
public TFM_RadarData()
|
||||
{
|
||||
}
|
||||
public Player player;
|
||||
public double distance;
|
||||
public Location location;
|
||||
|
||||
@Override
|
||||
public int compare(TFM_RadarData t1, TFM_RadarData t2)
|
||||
{
|
||||
if (t1.distance > t2.distance)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
else if (t1.distance < t2.distance)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
public TFM_RadarData(Player player, double distance, Location location) {
|
||||
this.player = player;
|
||||
this.distance = distance;
|
||||
this.location = location;
|
||||
}
|
||||
|
||||
public TFM_RadarData() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compare(TFM_RadarData t1, TFM_RadarData t2) {
|
||||
if (t1.distance > t2.distance) {
|
||||
return 1;
|
||||
} else if (t1.distance < t2.distance) {
|
||||
return -1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,36 +8,40 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
|
||||
public class Command_rank extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (senderIsConsole && args.length < 1) {
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
playerMsg(sender, player.getName() + " is " + PlayerRank.fromSender(player).getLoginMessage());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args.length > 1)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (senderIsConsole && args.length < 1) {
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
playerMsg(sender,
|
||||
player.getName() + " is " + PlayerRank.fromSender(player).getLoginMessage());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args.length == 0)
|
||||
{
|
||||
playerMsg(sender, sender.getName() + " is " + PlayerRank.fromSender(sender).getLoginMessage(), ChatColor.AQUA);
|
||||
return true;
|
||||
}
|
||||
if (args.length > 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final Player player = getPlayer(args[0]);
|
||||
if (args.length == 0) {
|
||||
playerMsg(sender,
|
||||
sender.getName() + " is " + PlayerRank.fromSender(sender).getLoginMessage(),
|
||||
ChatColor.AQUA);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (player == null)
|
||||
{
|
||||
sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
final Player player = getPlayer(args[0]);
|
||||
|
||||
playerMsg(sender, player.getName() + " is " + PlayerRank.fromSender(player).getLoginMessage(), ChatColor.AQUA);
|
||||
if (player == null) {
|
||||
sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
playerMsg(sender,
|
||||
player.getName() + " is " + PlayerRank.fromSender(player).getLoginMessage(),
|
||||
ChatColor.AQUA);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,12 +7,14 @@ import org.bukkit.command.CommandSender;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.ONLY_CONSOLE, blockHostConsole = true)
|
||||
public class Command_rawsay extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length > 0) {
|
||||
Utilities.bcastMsg(Utilities.colorize(StringUtils.join(args, " ")));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length > 0) {
|
||||
Utilities.bcastMsg(Utilities.colorize(StringUtils.join(args, " ")));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,11 +6,14 @@ import org.bukkit.command.CommandSender;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_rd extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Utilities.adminAction(sender.getName(), "Removing all server entities.", true);
|
||||
playerMsg(sender, (Utilities.TFM_EntityWiper.wipeEntities(true, true)) + " entities removed.");
|
||||
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Utilities.adminAction(sender.getName(), "Removing all server entities.", true);
|
||||
playerMsg(sender,
|
||||
(Utilities.TFM_EntityWiper.wipeEntities(true, true)) + " entities removed.");
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,39 +11,38 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.OP, source = SourceType.ONLY_IN_GAME, blockHostConsole = true)
|
||||
public class Command_report extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 2) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Player player = getPlayer(args[0]);
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 2) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player == null) {
|
||||
playerMsg(sender, PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
Player player = getPlayer(args[0]);
|
||||
|
||||
if (sender instanceof Player)
|
||||
{
|
||||
if (player.equals(sender_p))
|
||||
{
|
||||
playerMsg(sender, ChatColor.RED + "Please, don't try to report yourself.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (player == null) {
|
||||
playerMsg(sender, PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (AdminList.isSuperAdmin(player))
|
||||
{
|
||||
playerMsg(sender, ChatColor.RED + "You can not report an admin.");
|
||||
return true;
|
||||
}
|
||||
if (sender instanceof Player) {
|
||||
if (player.equals(sender_p)) {
|
||||
playerMsg(sender, ChatColor.RED + "Please, don't try to report yourself.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
String report = StringUtils.join(ArrayUtils.subarray(args, 1, args.length), " ");
|
||||
Utilities.reportAction(sender_p, player, report);
|
||||
if (AdminList.isSuperAdmin(player)) {
|
||||
playerMsg(sender, ChatColor.RED + "You can not report an admin.");
|
||||
return true;
|
||||
}
|
||||
|
||||
playerMsg(sender, ChatColor.GREEN + "Thank you, your report has been successfully logged.");
|
||||
String report = StringUtils.join(ArrayUtils.subarray(args, 1, args.length), " ");
|
||||
Utilities.reportAction(sender_p, player, report);
|
||||
|
||||
return true;
|
||||
}
|
||||
playerMsg(sender, ChatColor.GREEN + "Thank you, your report has been successfully logged.");
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
import me.StevenLawson.TotalFreedomMod.util.Utilities;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
|
@ -8,51 +10,53 @@ import org.bukkit.command.Command;
|
|||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.SENIOR, source = SourceType.BOTH)
|
||||
public class Command_resetplayer extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if(args.length < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
OfflinePlayer target = null;
|
||||
String searchString = args[0];
|
||||
@Override
|
||||
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel,
|
||||
String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (OfflinePlayer offlinePlayer : Bukkit.getOfflinePlayers()) {
|
||||
if(offlinePlayer.getName().equalsIgnoreCase(searchString)) {
|
||||
target = offlinePlayer;
|
||||
break;
|
||||
} else if (offlinePlayer.getName().startsWith(searchString.toLowerCase())) {
|
||||
target = offlinePlayer;
|
||||
break;
|
||||
}
|
||||
}
|
||||
OfflinePlayer target = null;
|
||||
String searchString = args[0];
|
||||
|
||||
if(target == null) {
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
for (OfflinePlayer offlinePlayer : Bukkit.getOfflinePlayers()) {
|
||||
if (offlinePlayer.getName().equalsIgnoreCase(searchString)) {
|
||||
target = offlinePlayer;
|
||||
break;
|
||||
} else if (offlinePlayer.getName().startsWith(searchString.toLowerCase())) {
|
||||
target = offlinePlayer;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(target.isOnline()) {
|
||||
target.getPlayer().kickPlayer(ChatColor.RED + "YOU ARE BEING RESET.");
|
||||
}
|
||||
if (target == null) {
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
|
||||
Utilities.adminAction(sender.getName(), String.format("Resetting %s's player data", target.getName()), true);
|
||||
playerMsg(sender, String.format("Resetting %s's player data (excluding TFM)...", target.getName()));
|
||||
try {
|
||||
String uuid = target.getUniqueId().toString();
|
||||
Files.deleteIfExists(Paths.get(".", "world", "playerdata", uuid + ".dat"));
|
||||
Files.deleteIfExists(Paths.get(".", "plugins", "Essentials", "userdata", uuid + ".yml"));
|
||||
playerMsg(sender, "Done.");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
playerMsg(sender, "Oops");
|
||||
}
|
||||
if (target.isOnline()) {
|
||||
target.getPlayer().kickPlayer(ChatColor.RED + "YOU ARE BEING RESET.");
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
Utilities.adminAction(sender.getName(),
|
||||
String.format("Resetting %s's player data", target.getName()), true);
|
||||
playerMsg(sender,
|
||||
String.format("Resetting %s's player data (excluding TFM)...", target.getName()));
|
||||
try {
|
||||
String uuid = target.getUniqueId().toString();
|
||||
Files.deleteIfExists(Paths.get(".", "world", "playerdata", uuid + ".dat"));
|
||||
Files.deleteIfExists(
|
||||
Paths.get(".", "plugins", "Essentials", "userdata", uuid + ".yml"));
|
||||
playerMsg(sender, "Done.");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
playerMsg(sender, "Oops");
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import me.StevenLawson.TotalFreedomMod.util.DeprecationUtil;
|
||||
import me.StevenLawson.TotalFreedomMod.util.Utilities;
|
||||
import me.StevenLawson.TotalFreedomMod.world.AdminWorld;
|
||||
|
@ -11,113 +13,94 @@ import org.bukkit.command.Command;
|
|||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH, blockHostConsole = false)
|
||||
public class Command_ro extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 1 || args.length > 3) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final List<Material> materials = new ArrayList<Material>();
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 1 || args.length > 3) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (String materialName : StringUtils.split(args[0], ",")) {
|
||||
Material fromMaterial = Material.matchMaterial(materialName);
|
||||
if (fromMaterial == null)
|
||||
{
|
||||
try
|
||||
{
|
||||
fromMaterial = DeprecationUtil.getMaterial(Integer.parseInt(materialName));
|
||||
}
|
||||
catch (NumberFormatException ex)
|
||||
{
|
||||
}
|
||||
}
|
||||
final List<Material> materials = new ArrayList<Material>();
|
||||
|
||||
if (fromMaterial == null)
|
||||
{
|
||||
playerMsg(sender, "Invalid block: " + materialName, ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
for (String materialName : StringUtils.split(args[0], ",")) {
|
||||
Material fromMaterial = Material.matchMaterial(materialName);
|
||||
if (fromMaterial == null) {
|
||||
try {
|
||||
fromMaterial = DeprecationUtil.getMaterial(Integer.parseInt(materialName));
|
||||
} catch (NumberFormatException ex) {
|
||||
}
|
||||
}
|
||||
|
||||
materials.add(fromMaterial);
|
||||
}
|
||||
if (fromMaterial == null) {
|
||||
playerMsg(sender, "Invalid block: " + materialName, ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
|
||||
int radius = 20;
|
||||
if (args.length >= 2)
|
||||
{
|
||||
try
|
||||
{
|
||||
radius = Math.max(1, Math.min(50, Integer.parseInt(args[1])));
|
||||
}
|
||||
catch (NumberFormatException ex)
|
||||
{
|
||||
playerMsg(sender, "Invalid radius: " + args[1], ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
materials.add(fromMaterial);
|
||||
}
|
||||
|
||||
final Player targetPlayer;
|
||||
if (args.length == 3)
|
||||
{
|
||||
targetPlayer = getPlayer(args[2]);
|
||||
if (targetPlayer == null)
|
||||
{
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
targetPlayer = null;
|
||||
}
|
||||
int radius = 20;
|
||||
if (args.length >= 2) {
|
||||
try {
|
||||
radius = Math.max(1, Math.min(50, Integer.parseInt(args[1])));
|
||||
} catch (NumberFormatException ex) {
|
||||
playerMsg(sender, "Invalid radius: " + args[1], ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
final String names = StringUtils.join(materials, ", ");
|
||||
final Player targetPlayer;
|
||||
if (args.length == 3) {
|
||||
targetPlayer = getPlayer(args[2]);
|
||||
if (targetPlayer == null) {
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
targetPlayer = null;
|
||||
}
|
||||
|
||||
World adminWorld = null;
|
||||
try
|
||||
{
|
||||
adminWorld = AdminWorld.getInstance().getWorld();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
}
|
||||
final String names = StringUtils.join(materials, ", ");
|
||||
|
||||
int affected = 0;
|
||||
if (targetPlayer == null)
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "Removing all " + names + " within " + radius + " blocks of all players... Brace for lag!", false);
|
||||
World adminWorld = null;
|
||||
try {
|
||||
adminWorld = AdminWorld.getInstance().getWorld();
|
||||
} catch (Exception ex) {
|
||||
}
|
||||
|
||||
for (final Player player : server.getOnlinePlayers())
|
||||
{
|
||||
if (player.getWorld() == adminWorld)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
int affected = 0;
|
||||
if (targetPlayer == null) {
|
||||
Utilities.adminAction(sender.getName(), "Removing all " + names + " within " + radius
|
||||
+ " blocks of all players... Brace for lag!", false);
|
||||
|
||||
for (final Material material : materials)
|
||||
{
|
||||
affected += Utilities.replaceBlocks(player.getLocation(), material, Material.AIR, radius);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (targetPlayer.getWorld() != adminWorld)
|
||||
{
|
||||
for (Material material : materials)
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "Removing all " + names + " within " + radius + " blocks of " + targetPlayer.getName(), false);
|
||||
affected += Utilities.replaceBlocks(targetPlayer.getLocation(), material, Material.AIR, radius);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (final Player player : server.getOnlinePlayers()) {
|
||||
if (player.getWorld() == adminWorld) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Utilities.adminAction(sender.getName(), "Remove complete! " + affected + " blocks removed.", false);
|
||||
for (final Material material : materials) {
|
||||
affected += Utilities.replaceBlocks(player.getLocation(), material,
|
||||
Material.AIR, radius);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (targetPlayer.getWorld() != adminWorld) {
|
||||
for (Material material : materials) {
|
||||
Utilities.adminAction(sender.getName(),
|
||||
"Removing all " + names + " within " + radius + " blocks of "
|
||||
+ targetPlayer.getName(), false);
|
||||
affected += Utilities.replaceBlocks(targetPlayer.getLocation(), material,
|
||||
Material.AIR, radius);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
Utilities.adminAction(sender.getName(), "Remove complete! " + affected + " blocks removed.",
|
||||
false);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,265 +16,236 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
||||
public class Command_saconfig extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
final SAConfigMode mode;
|
||||
try {
|
||||
mode = SAConfigMode.findMode(args, sender, senderIsConsole);
|
||||
} catch (final PermissionsException ex) {
|
||||
playerMsg(sender, ex.getMessage());
|
||||
return true;
|
||||
}
|
||||
catch (final FormatException ex)
|
||||
{
|
||||
playerMsg(sender, ex.getMessage());
|
||||
return false;
|
||||
}
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case LIST:
|
||||
{
|
||||
playerMsg(sender, "Superadmins: " + StringUtils.join(AdminList.getSuperNames(), ", "), ChatColor.GOLD);
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
final SAConfigMode mode;
|
||||
try {
|
||||
mode = SAConfigMode.findMode(args, sender, senderIsConsole);
|
||||
} catch (final PermissionsException ex) {
|
||||
playerMsg(sender, ex.getMessage());
|
||||
return true;
|
||||
} catch (final FormatException ex) {
|
||||
playerMsg(sender, ex.getMessage());
|
||||
return false;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case CLEAN:
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "Cleaning superadmin list", true);
|
||||
AdminList.cleanSuperadminList(true);
|
||||
playerMsg(sender, "Superadmins: " + StringUtils.join(AdminList.getSuperNames(), ", "), ChatColor.YELLOW);
|
||||
switch (mode) {
|
||||
case LIST: {
|
||||
playerMsg(sender,
|
||||
"Superadmins: " + StringUtils.join(AdminList.getSuperNames(), ", "),
|
||||
ChatColor.GOLD);
|
||||
|
||||
break;
|
||||
}
|
||||
case CLEARME:
|
||||
{
|
||||
final Admin admin = AdminList.getEntry(sender_p);
|
||||
break;
|
||||
}
|
||||
case CLEAN: {
|
||||
Utilities.adminAction(sender.getName(), "Cleaning superadmin list", true);
|
||||
AdminList.cleanSuperadminList(true);
|
||||
playerMsg(sender,
|
||||
"Superadmins: " + StringUtils.join(AdminList.getSuperNames(), ", "),
|
||||
ChatColor.YELLOW);
|
||||
|
||||
if (admin == null)
|
||||
{
|
||||
playerMsg(sender, "Could not find your admin entry! Please notify a developer.", ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case CLEARME: {
|
||||
final Admin admin = AdminList.getEntry(sender_p);
|
||||
|
||||
final String ip = Utilities.getIp(sender_p);
|
||||
if (admin == null) {
|
||||
playerMsg(sender, "Could not find your admin entry! Please notify a developer.",
|
||||
ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args.length == 1)
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "Cleaning my supered IPs", true);
|
||||
final String ip = Utilities.getIp(sender_p);
|
||||
|
||||
int counter = admin.getIps().size() - 1;
|
||||
admin.clearIPs();
|
||||
admin.addIp(ip);
|
||||
if (args.length == 1) {
|
||||
Utilities.adminAction(sender.getName(), "Cleaning my supered IPs", true);
|
||||
|
||||
AdminList.saveAll();
|
||||
int counter = admin.getIps().size() - 1;
|
||||
admin.clearIPs();
|
||||
admin.addIp(ip);
|
||||
|
||||
playerMsg(sender, counter + " IPs removed.");
|
||||
playerMsg(sender, admin.getIps().get(0) + " is now your only IP address");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!admin.getIps().contains(args[1]))
|
||||
{
|
||||
playerMsg(sender, "That IP is not registered to you.");
|
||||
}
|
||||
else if (ip.equals(args[1]))
|
||||
{
|
||||
playerMsg(sender, "You cannot remove your current IP.");
|
||||
}
|
||||
else
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "Removing a supered IP", true);
|
||||
AdminList.saveAll();
|
||||
|
||||
admin.removeIp(args[1]);
|
||||
playerMsg(sender, counter + " IPs removed.");
|
||||
playerMsg(sender, admin.getIps().get(0) + " is now your only IP address");
|
||||
} else {
|
||||
if (!admin.getIps().contains(args[1])) {
|
||||
playerMsg(sender, "That IP is not registered to you.");
|
||||
} else if (ip.equals(args[1])) {
|
||||
playerMsg(sender, "You cannot remove your current IP.");
|
||||
} else {
|
||||
Utilities.adminAction(sender.getName(), "Removing a supered IP", true);
|
||||
|
||||
AdminList.saveAll();
|
||||
admin.removeIp(args[1]);
|
||||
|
||||
playerMsg(sender, "Removed IP " + args[1]);
|
||||
playerMsg(sender, "Current IPs: " + StringUtils.join(admin.getIps(), ", "));
|
||||
}
|
||||
}
|
||||
AdminList.saveAll();
|
||||
|
||||
break;
|
||||
}
|
||||
case INFO:
|
||||
{
|
||||
Admin superadmin = AdminList.getEntry(args[1].toLowerCase());
|
||||
playerMsg(sender, "Removed IP " + args[1]);
|
||||
playerMsg(sender, "Current IPs: " + StringUtils.join(admin.getIps(), ", "));
|
||||
}
|
||||
}
|
||||
|
||||
if (superadmin == null)
|
||||
{
|
||||
final Player player = getPlayer(args[1]);
|
||||
if (player != null)
|
||||
{
|
||||
superadmin = AdminList.getEntry(player.getName().toLowerCase());
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case INFO: {
|
||||
Admin superadmin = AdminList.getEntry(args[1].toLowerCase());
|
||||
|
||||
if (superadmin == null)
|
||||
{
|
||||
playerMsg(sender, "Superadmin not found: " + args[1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
playerMsg(sender, superadmin.toString());
|
||||
}
|
||||
if (superadmin == null) {
|
||||
final Player player = getPlayer(args[1]);
|
||||
if (player != null) {
|
||||
superadmin = AdminList.getEntry(player.getName().toLowerCase());
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case ADD:
|
||||
{
|
||||
OfflinePlayer player = getPlayer(args[1], true); // Exact case-insensitive match.
|
||||
if (superadmin == null) {
|
||||
playerMsg(sender, "Superadmin not found: " + args[1]);
|
||||
} else {
|
||||
playerMsg(sender, superadmin.toString());
|
||||
}
|
||||
|
||||
if (player == null)
|
||||
{
|
||||
final Admin superadmin = AdminList.getEntry(args[1]);
|
||||
break;
|
||||
}
|
||||
case ADD: {
|
||||
OfflinePlayer player = getPlayer(args[1], true); // Exact case-insensitive match.
|
||||
|
||||
if (superadmin == null)
|
||||
{
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
if (player == null) {
|
||||
final Admin superadmin = AdminList.getEntry(args[1]);
|
||||
|
||||
player = DeprecationUtil.getOfflinePlayer(server, superadmin.getLastLoginName());
|
||||
}
|
||||
if (superadmin == null) {
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
|
||||
Utilities.adminAction(sender.getName(), "Adding " + player.getName() + " to the superadmin list", true);
|
||||
AdminList.addSuperadmin(player);
|
||||
player = DeprecationUtil.getOfflinePlayer(server,
|
||||
superadmin.getLastLoginName());
|
||||
}
|
||||
|
||||
if (player.isOnline())
|
||||
{
|
||||
final PlayerData playerdata = PlayerData.getPlayerData(player.getPlayer());
|
||||
Utilities.adminAction(sender.getName(),
|
||||
"Adding " + player.getName() + " to the superadmin list", true);
|
||||
AdminList.addSuperadmin(player);
|
||||
|
||||
if (playerdata.isFrozen())
|
||||
{
|
||||
playerdata.setFrozen(false);
|
||||
playerMsg(player.getPlayer(), "You have been unfrozen.");
|
||||
}
|
||||
}
|
||||
if (player.isOnline()) {
|
||||
final PlayerData playerdata = PlayerData.getPlayerData(player.getPlayer());
|
||||
|
||||
break;
|
||||
}
|
||||
case REMOVE:
|
||||
{
|
||||
String targetName = args[1];
|
||||
if (playerdata.isFrozen()) {
|
||||
playerdata.setFrozen(false);
|
||||
playerMsg(player.getPlayer(), "You have been unfrozen.");
|
||||
}
|
||||
}
|
||||
|
||||
final Player player = getPlayer(targetName, true); // Exact case-insensitive match.
|
||||
break;
|
||||
}
|
||||
case REMOVE: {
|
||||
String targetName = args[1];
|
||||
|
||||
if (player != null)
|
||||
{
|
||||
targetName = player.getName();
|
||||
}
|
||||
final Player player = getPlayer(targetName, true); // Exact case-insensitive match.
|
||||
|
||||
if (!AdminList.getLowercaseSuperNames().contains(targetName.toLowerCase()))
|
||||
{
|
||||
playerMsg(sender, "Superadmin not found: " + targetName);
|
||||
return true;
|
||||
}
|
||||
if (player != null) {
|
||||
targetName = player.getName();
|
||||
}
|
||||
|
||||
Utilities.adminAction(sender.getName(), "Removing " + targetName + " from the superadmin list", true);
|
||||
AdminList.removeSuperadmin(DeprecationUtil.getOfflinePlayer(server, targetName));
|
||||
if (!AdminList.getLowercaseSuperNames().contains(targetName.toLowerCase())) {
|
||||
playerMsg(sender, "Superadmin not found: " + targetName);
|
||||
return true;
|
||||
}
|
||||
|
||||
// Twitterbot
|
||||
if (ConfigurationEntry.TWITTERBOT_ENABLED.getBoolean())
|
||||
{
|
||||
TwitterHandler.delTwitterVerbose(targetName, sender);
|
||||
}
|
||||
Utilities.adminAction(sender.getName(),
|
||||
"Removing " + targetName + " from the superadmin list", true);
|
||||
AdminList.removeSuperadmin(DeprecationUtil.getOfflinePlayer(server, targetName));
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
// Twitterbot
|
||||
if (ConfigurationEntry.TWITTERBOT_ENABLED.getBoolean()) {
|
||||
TwitterHandler.delTwitterVerbose(targetName, sender);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private enum SAConfigMode {
|
||||
LIST("list", AdminLevel.OP, SourceType.BOTH, 1, 1),
|
||||
CLEAN("clean", AdminLevel.SENIOR, SourceType.BOTH, 1, 1),
|
||||
CLEARME("clearme", AdminLevel.SUPER, SourceType.ONLY_IN_GAME, 1, 2),
|
||||
INFO("info", AdminLevel.SUPER, SourceType.BOTH, 2, 2),
|
||||
ADD("add", AdminLevel.SUPER, SourceType.BOTH, 2, 2),
|
||||
REMOVE("remove", AdminLevel.SENIOR, SourceType.BOTH, 2, 2);
|
||||
private final String modeName;
|
||||
private final AdminLevel adminLevel;
|
||||
private final SourceType sourceType;
|
||||
private final int minArgs;
|
||||
private final int maxArgs;
|
||||
return true;
|
||||
}
|
||||
|
||||
SAConfigMode(String modeName, AdminLevel adminLevel, SourceType sourceType, int minArgs, int maxArgs) {
|
||||
this.modeName = modeName;
|
||||
this.adminLevel = adminLevel;
|
||||
this.sourceType = sourceType;
|
||||
this.minArgs = minArgs;
|
||||
this.maxArgs = maxArgs;
|
||||
}
|
||||
private enum SAConfigMode {
|
||||
LIST("list", AdminLevel.OP, SourceType.BOTH, 1, 1),
|
||||
CLEAN("clean", AdminLevel.SENIOR, SourceType.BOTH, 1, 1),
|
||||
CLEARME("clearme", AdminLevel.SUPER, SourceType.ONLY_IN_GAME, 1, 2),
|
||||
INFO("info", AdminLevel.SUPER, SourceType.BOTH, 2, 2),
|
||||
ADD("add", AdminLevel.SUPER, SourceType.BOTH, 2, 2),
|
||||
REMOVE("remove", AdminLevel.SENIOR, SourceType.BOTH, 2, 2);
|
||||
private final String modeName;
|
||||
private final AdminLevel adminLevel;
|
||||
private final SourceType sourceType;
|
||||
private final int minArgs;
|
||||
private final int maxArgs;
|
||||
|
||||
private static SAConfigMode findMode(final String[] args, final CommandSender sender, final boolean senderIsConsole) throws PermissionsException, FormatException
|
||||
{
|
||||
if (args.length == 0)
|
||||
{
|
||||
throw new FormatException("Invalid number of arguments.");
|
||||
}
|
||||
SAConfigMode(String modeName, AdminLevel adminLevel, SourceType sourceType, int minArgs,
|
||||
int maxArgs) {
|
||||
this.modeName = modeName;
|
||||
this.adminLevel = adminLevel;
|
||||
this.sourceType = sourceType;
|
||||
this.minArgs = minArgs;
|
||||
this.maxArgs = maxArgs;
|
||||
}
|
||||
|
||||
boolean isSuperAdmin = AdminList.isSuperAdmin(sender);
|
||||
boolean isSeniorAdmin = isSuperAdmin && AdminList.isSeniorAdmin(sender, false);
|
||||
private static SAConfigMode findMode(final String[] args, final CommandSender sender,
|
||||
final boolean senderIsConsole) throws PermissionsException, FormatException {
|
||||
if (args.length == 0) {
|
||||
throw new FormatException("Invalid number of arguments.");
|
||||
}
|
||||
|
||||
for (final SAConfigMode mode : values())
|
||||
{
|
||||
if (mode.modeName.equalsIgnoreCase(args[0]))
|
||||
{
|
||||
if (mode.adminLevel == AdminLevel.SUPER) {
|
||||
if (!isSuperAdmin) {
|
||||
throw new PermissionsException(FreedomCommand.MSG_NO_PERMS);
|
||||
}
|
||||
} else if (mode.adminLevel == AdminLevel.SENIOR) {
|
||||
if (!isSeniorAdmin) {
|
||||
throw new PermissionsException(FreedomCommand.MSG_NO_PERMS);
|
||||
}
|
||||
}
|
||||
boolean isSuperAdmin = AdminList.isSuperAdmin(sender);
|
||||
boolean isSeniorAdmin = isSuperAdmin && AdminList.isSeniorAdmin(sender, false);
|
||||
|
||||
if (mode.sourceType == SourceType.ONLY_IN_GAME)
|
||||
{
|
||||
if (senderIsConsole)
|
||||
{
|
||||
throw new PermissionsException("This command may only be used in-game.");
|
||||
}
|
||||
}
|
||||
else if (mode.sourceType == SourceType.ONLY_CONSOLE)
|
||||
{
|
||||
if (!senderIsConsole)
|
||||
{
|
||||
throw new PermissionsException("This command may only be used from the console.");
|
||||
}
|
||||
}
|
||||
for (final SAConfigMode mode : values()) {
|
||||
if (mode.modeName.equalsIgnoreCase(args[0])) {
|
||||
if (mode.adminLevel == AdminLevel.SUPER) {
|
||||
if (!isSuperAdmin) {
|
||||
throw new PermissionsException(FreedomCommand.MSG_NO_PERMS);
|
||||
}
|
||||
} else if (mode.adminLevel == AdminLevel.SENIOR) {
|
||||
if (!isSeniorAdmin) {
|
||||
throw new PermissionsException(FreedomCommand.MSG_NO_PERMS);
|
||||
}
|
||||
}
|
||||
|
||||
if (args.length >= mode.minArgs && args.length <= mode.maxArgs)
|
||||
{
|
||||
return mode;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new FormatException("Invalid number of arguments for mode: " + mode.modeName);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (mode.sourceType == SourceType.ONLY_IN_GAME) {
|
||||
if (senderIsConsole) {
|
||||
throw new PermissionsException(
|
||||
"This command may only be used in-game.");
|
||||
}
|
||||
} else if (mode.sourceType == SourceType.ONLY_CONSOLE) {
|
||||
if (!senderIsConsole) {
|
||||
throw new PermissionsException(
|
||||
"This command may only be used from the console.");
|
||||
}
|
||||
}
|
||||
|
||||
throw new FormatException("Invalid mode.");
|
||||
}
|
||||
}
|
||||
if (args.length >= mode.minArgs && args.length <= mode.maxArgs) {
|
||||
return mode;
|
||||
} else {
|
||||
throw new FormatException(
|
||||
"Invalid number of arguments for mode: " + mode.modeName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static class PermissionsException extends Exception
|
||||
{
|
||||
public PermissionsException(final String message)
|
||||
{
|
||||
super(message);
|
||||
}
|
||||
}
|
||||
throw new FormatException("Invalid mode.");
|
||||
}
|
||||
}
|
||||
|
||||
private static class FormatException extends Exception
|
||||
{
|
||||
public FormatException(final String message)
|
||||
{
|
||||
super(message);
|
||||
}
|
||||
}
|
||||
private static class PermissionsException extends Exception {
|
||||
|
||||
public PermissionsException(final String message) {
|
||||
super(message);
|
||||
}
|
||||
}
|
||||
|
||||
private static class FormatException extends Exception {
|
||||
|
||||
public FormatException(final String message) {
|
||||
super(message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,32 +9,33 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_say extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
String message = StringUtils.join(args, " ");
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (senderIsConsole && Utilities.isFromHostConsole(sender.getName())) {
|
||||
if (message.equalsIgnoreCase("WARNING: Server is restarting, you will be kicked"))
|
||||
{
|
||||
Utilities.bcastMsg("Server is going offline.", ChatColor.GRAY);
|
||||
String message = StringUtils.join(args, " ");
|
||||
|
||||
for (Player player : server.getOnlinePlayers())
|
||||
{
|
||||
player.kickPlayer("Server is going offline, come back in about 20 seconds.");
|
||||
}
|
||||
if (senderIsConsole && Utilities.isFromHostConsole(sender.getName())) {
|
||||
if (message.equalsIgnoreCase("WARNING: Server is restarting, you will be kicked")) {
|
||||
Utilities.bcastMsg("Server is going offline.", ChatColor.GRAY);
|
||||
|
||||
server.shutdown();
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
player.kickPlayer("Server is going offline, come back in about 20 seconds.");
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
server.shutdown();
|
||||
|
||||
Utilities.bcastMsg(String.format("[Server:%s] %s", sender.getName(), message), ChatColor.LIGHT_PURPLE);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
Utilities.bcastMsg(String.format("[Server:%s] %s", sender.getName(), message),
|
||||
ChatColor.LIGHT_PURPLE);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,12 +8,15 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_setl extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Utilities.adminAction(sender.getName(), "Setting everyone's Worldedit block modification limit to 2500.", true);
|
||||
for (final Player player : server.getOnlinePlayers()) {
|
||||
WorldEditBridge.setLimit(player, 2500);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Utilities.adminAction(sender.getName(),
|
||||
"Setting everyone's Worldedit block modification limit to 2500.", true);
|
||||
for (final Player player : server.getOnlinePlayers()) {
|
||||
WorldEditBridge.setLimit(player, 2500);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,36 +6,34 @@ import org.bukkit.command.CommandSender;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.OP, source = SourceType.ONLY_IN_GAME)
|
||||
public class Command_setlevel extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
int new_level;
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
new_level = Integer.parseInt(args[0]);
|
||||
int new_level;
|
||||
|
||||
if (new_level < 0)
|
||||
{
|
||||
new_level = 0;
|
||||
}
|
||||
else if (new_level > 50)
|
||||
{
|
||||
new_level = 50;
|
||||
}
|
||||
}
|
||||
catch (NumberFormatException ex)
|
||||
{
|
||||
playerMsg(sender, "Invalid level.", ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
try {
|
||||
new_level = Integer.parseInt(args[0]);
|
||||
|
||||
sender_p.setLevel(new_level);
|
||||
if (new_level < 0) {
|
||||
new_level = 0;
|
||||
} else if (new_level > 50) {
|
||||
new_level = 50;
|
||||
}
|
||||
} catch (NumberFormatException ex) {
|
||||
playerMsg(sender, "Invalid level.", ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
|
||||
playerMsg(sender, "You have been set to level " + Integer.toString(new_level), ChatColor.AQUA);
|
||||
sender_p.setLevel(new_level);
|
||||
|
||||
return true;
|
||||
}
|
||||
playerMsg(sender, "You have been set to level " + new_level,
|
||||
ChatColor.AQUA);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.util.List;
|
||||
import me.StevenLawson.TotalFreedomMod.util.DeprecationUtil;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
|
@ -8,65 +9,59 @@ import org.bukkit.block.Block;
|
|||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
|
||||
public class Command_setlever extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 5) {
|
||||
return false;
|
||||
}
|
||||
|
||||
double x, y, z;
|
||||
try {
|
||||
x = Double.parseDouble(args[0]);
|
||||
y = Double.parseDouble(args[1]);
|
||||
z = Double.parseDouble(args[2]);
|
||||
}
|
||||
catch (NumberFormatException ex)
|
||||
{
|
||||
playerMsg(sender, "Invalid coordinates.");
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 5) {
|
||||
return false;
|
||||
}
|
||||
|
||||
World world = null;
|
||||
final String needleWorldName = args[3].trim();
|
||||
final List<World> worlds = server.getWorlds();
|
||||
for (final World testWorld : worlds)
|
||||
{
|
||||
if (testWorld.getName().trim().equalsIgnoreCase(needleWorldName))
|
||||
{
|
||||
world = testWorld;
|
||||
break;
|
||||
}
|
||||
}
|
||||
double x, y, z;
|
||||
try {
|
||||
x = Double.parseDouble(args[0]);
|
||||
y = Double.parseDouble(args[1]);
|
||||
z = Double.parseDouble(args[2]);
|
||||
} catch (NumberFormatException ex) {
|
||||
playerMsg(sender, "Invalid coordinates.");
|
||||
return true;
|
||||
}
|
||||
|
||||
if (world == null)
|
||||
{
|
||||
playerMsg(sender, "Invalid world name.");
|
||||
return true;
|
||||
}
|
||||
World world = null;
|
||||
final String needleWorldName = args[3].trim();
|
||||
final List<World> worlds = server.getWorlds();
|
||||
for (final World testWorld : worlds) {
|
||||
if (testWorld.getName().trim().equalsIgnoreCase(needleWorldName)) {
|
||||
world = testWorld;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
final Location leverLocation = new Location(world, x, y, z);
|
||||
if (world == null) {
|
||||
playerMsg(sender, "Invalid world name.");
|
||||
return true;
|
||||
}
|
||||
|
||||
final boolean leverOn = (args[4].trim().equalsIgnoreCase("on") || args[4].trim().equalsIgnoreCase("1"));
|
||||
final Location leverLocation = new Location(world, x, y, z);
|
||||
|
||||
final Block targetBlock = leverLocation.getBlock();
|
||||
final boolean leverOn = (args[4].trim().equalsIgnoreCase("on") || args[4].trim()
|
||||
.equalsIgnoreCase("1"));
|
||||
|
||||
if (targetBlock.getType() == Material.LEVER)
|
||||
{
|
||||
org.bukkit.material.Lever lever = DeprecationUtil.makeLeverWithData(DeprecationUtil.getData_Block(targetBlock));
|
||||
lever.setPowered(leverOn);
|
||||
DeprecationUtil.setData_Block(targetBlock, DeprecationUtil.getData_MaterialData(lever));
|
||||
targetBlock.getState().update();
|
||||
}
|
||||
else
|
||||
{
|
||||
playerMsg(sender, "Target block " + targetBlock + " is not a lever.");
|
||||
return true;
|
||||
}
|
||||
final Block targetBlock = leverLocation.getBlock();
|
||||
|
||||
return true;
|
||||
}
|
||||
if (targetBlock.getType() == Material.LEVER) {
|
||||
org.bukkit.material.Lever lever = DeprecationUtil.makeLeverWithData(
|
||||
DeprecationUtil.getData_Block(targetBlock));
|
||||
lever.setPowered(leverOn);
|
||||
DeprecationUtil.setData_Block(targetBlock, DeprecationUtil.getData_MaterialData(lever));
|
||||
targetBlock.getState().update();
|
||||
} else {
|
||||
playerMsg(sender, "Target block " + targetBlock + " is not a lever.");
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,17 +9,22 @@ import org.bukkit.command.CommandSender;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_IN_GAME)
|
||||
public class Command_setspawnworld extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Location pos = sender_p.getLocation();
|
||||
sender_p.getWorld().setSpawnLocation(pos.getBlockX(), pos.getBlockY(), pos.getBlockZ());
|
||||
|
||||
playerMsg(sender, "Spawn location for this world set to: " + Utilities.formatLocation(sender_p.getWorld().getSpawnLocation()));
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Location pos = sender_p.getLocation();
|
||||
sender_p.getWorld().setSpawnLocation(pos.getBlockX(), pos.getBlockY(), pos.getBlockZ());
|
||||
|
||||
if (ConfigurationEntry.PROTECTAREA_ENABLED.getBoolean() && ConfigurationEntry.PROTECTAREA_SPAWNPOINTS.getBoolean()) {
|
||||
ProtectedArea.addProtectedArea("spawn_" + sender_p.getWorld().getName(), pos, ConfigurationEntry.PROTECTAREA_RADIUS.getDouble());
|
||||
}
|
||||
playerMsg(sender, "Spawn location for this world set to: " + Utilities.formatLocation(
|
||||
sender_p.getWorld().getSpawnLocation()));
|
||||
|
||||
return true;
|
||||
}
|
||||
if (ConfigurationEntry.PROTECTAREA_ENABLED.getBoolean()
|
||||
&& ConfigurationEntry.PROTECTAREA_SPAWNPOINTS.getBoolean()) {
|
||||
ProtectedArea.addProtectedArea("spawn_" + sender_p.getWorld().getName(), pos,
|
||||
ConfigurationEntry.PROTECTAREA_RADIUS.getDouble());
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,50 +11,50 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_smite extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final Player player = getPlayer(args[0]);
|
||||
public static void smite(final Player player) {
|
||||
Utilities.bcastMsg(player.getName() + " has been a naughty, naughty boy.", ChatColor.RED);
|
||||
|
||||
if (player == null) {
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
//Deop
|
||||
player.setOp(false);
|
||||
|
||||
smite(player);
|
||||
//Set gamemode to survival:
|
||||
player.setGameMode(GameMode.SURVIVAL);
|
||||
|
||||
return true;
|
||||
}
|
||||
//Clear inventory:
|
||||
player.getInventory().clear();
|
||||
|
||||
public static void smite(final Player player)
|
||||
{
|
||||
Utilities.bcastMsg(player.getName() + " has been a naughty, naughty boy.", ChatColor.RED);
|
||||
//Strike with lightning effect:
|
||||
final Location targetPos = player.getLocation();
|
||||
final World world = player.getWorld();
|
||||
for (int x = -1; x <= 1; x++) {
|
||||
for (int z = -1; z <= 1; z++) {
|
||||
final Location strike_pos = new Location(world, targetPos.getBlockX() + x,
|
||||
targetPos.getBlockY(), targetPos.getBlockZ() + z);
|
||||
world.strikeLightning(strike_pos);
|
||||
}
|
||||
}
|
||||
|
||||
//Deop
|
||||
player.setOp(false);
|
||||
//Kill:
|
||||
player.setHealth(0.0);
|
||||
}
|
||||
|
||||
//Set gamemode to survival:
|
||||
player.setGameMode(GameMode.SURVIVAL);
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
//Clear inventory:
|
||||
player.getInventory().clear();
|
||||
final Player player = getPlayer(args[0]);
|
||||
|
||||
//Strike with lightning effect:
|
||||
final Location targetPos = player.getLocation();
|
||||
final World world = player.getWorld();
|
||||
for (int x = -1; x <= 1; x++)
|
||||
{
|
||||
for (int z = -1; z <= 1; z++)
|
||||
{
|
||||
final Location strike_pos = new Location(world, targetPos.getBlockX() + x, targetPos.getBlockY(), targetPos.getBlockZ() + z);
|
||||
world.strikeLightning(strike_pos);
|
||||
}
|
||||
}
|
||||
if (player == null) {
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
|
||||
//Kill:
|
||||
player.setHealth(0.0);
|
||||
}
|
||||
smite(player);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,49 +8,46 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_spectator extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (senderIsConsole) {
|
||||
if (args.length == 0) {
|
||||
sender.sendMessage("When used from the console, you must define a target user to change gamemode on.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Player player;
|
||||
if (args.length == 0)
|
||||
{
|
||||
player = sender_p;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (args[0].equalsIgnoreCase("-a"))
|
||||
{
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (senderIsConsole) {
|
||||
if (args.length == 0) {
|
||||
sender.sendMessage(
|
||||
"When used from the console, you must define a target user to change gamemode on.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
for (Player targetPlayer : server.getOnlinePlayers())
|
||||
{
|
||||
targetPlayer.setGameMode(GameMode.SPECTATOR);
|
||||
}
|
||||
Player player;
|
||||
if (args.length == 0) {
|
||||
player = sender_p;
|
||||
} else {
|
||||
if (args[0].equalsIgnoreCase("-a")) {
|
||||
|
||||
Utilities.adminAction(sender.getName(), "Changing everyone's gamemode to spectator", false);
|
||||
return true;
|
||||
}
|
||||
for (Player targetPlayer : server.getOnlinePlayers()) {
|
||||
targetPlayer.setGameMode(GameMode.SPECTATOR);
|
||||
}
|
||||
|
||||
Utilities.adminAction(sender.getName(), "Changing everyone's gamemode to spectator",
|
||||
false);
|
||||
return true;
|
||||
}
|
||||
|
||||
player = getPlayer(args[0]);
|
||||
player = getPlayer(args[0]);
|
||||
|
||||
if (player == null)
|
||||
{
|
||||
sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
if (player == null) {
|
||||
sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
playerMsg(sender, "Setting " + player.getName() + " to game mode 'Spectator'.");
|
||||
playerMsg(player, sender.getName() + " set your game mode to 'Spectator'.");
|
||||
player.setGameMode(GameMode.SPECTATOR);
|
||||
playerMsg(sender, "Setting " + player.getName() + " to game mode 'Spectator'.");
|
||||
playerMsg(player, sender.getName() + " set your game mode to 'Spectator'.");
|
||||
player.setGameMode(GameMode.SPECTATOR);
|
||||
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,37 +1,42 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
|
||||
public class Command_status extends FreedomCommand {
|
||||
public static final Map<String, String> SERVICE_MAP = new HashMap<String, String>();
|
||||
|
||||
static {
|
||||
SERVICE_MAP.put("minecraft.net", "Minecraft.net");
|
||||
SERVICE_MAP.put("login.minecraft.net", "Minecraft Logins");
|
||||
SERVICE_MAP.put("session.minecraft.net", "Minecraft Multiplayer Sessions");
|
||||
SERVICE_MAP.put("account.mojang.com", "Mojang Accounts Website");
|
||||
SERVICE_MAP.put("auth.mojang.com", "Mojang Accounts Login");
|
||||
SERVICE_MAP.put("skins.minecraft.net", "Minecraft Skins");
|
||||
}
|
||||
public static final Map<String, String> SERVICE_MAP = new HashMap<String, String>();
|
||||
|
||||
@Override
|
||||
public boolean run(final CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
playerMsg(sender, "For information about TotalFreedomMod, try /tfm", ChatColor.GREEN); // Temporary
|
||||
static {
|
||||
SERVICE_MAP.put("minecraft.net", "Minecraft.net");
|
||||
SERVICE_MAP.put("login.minecraft.net", "Minecraft Logins");
|
||||
SERVICE_MAP.put("session.minecraft.net", "Minecraft Multiplayer Sessions");
|
||||
SERVICE_MAP.put("account.mojang.com", "Mojang Accounts Website");
|
||||
SERVICE_MAP.put("auth.mojang.com", "Mojang Accounts Login");
|
||||
SERVICE_MAP.put("skins.minecraft.net", "Minecraft Skins");
|
||||
}
|
||||
|
||||
playerMsg(sender, "Server is currently running with 'online-mode=" + (server.getOnlineMode() ? "true" : "false") + "'.", ChatColor.YELLOW);
|
||||
playerMsg(sender, "Loaded worlds:", ChatColor.BLUE);
|
||||
int i = 0;
|
||||
for (World world : server.getWorlds()) {
|
||||
playerMsg(sender, String.format("World %d: %s - %d players.", i++, world.getName(), world.getPlayers().size()), ChatColor.BLUE);
|
||||
}
|
||||
@Override
|
||||
public boolean run(final CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
playerMsg(sender, "For information about TotalFreedomMod, try /tfm",
|
||||
ChatColor.GREEN); // Temporary
|
||||
|
||||
return true;
|
||||
}
|
||||
playerMsg(sender,
|
||||
"Server is currently running with 'online-mode=" + (server.getOnlineMode() ? "true"
|
||||
: "false") + "'.", ChatColor.YELLOW);
|
||||
playerMsg(sender, "Loaded worlds:", ChatColor.BLUE);
|
||||
int i = 0;
|
||||
for (World world : server.getWorlds()) {
|
||||
playerMsg(sender, String.format("World %d: %s - %d players.", i++, world.getName(),
|
||||
world.getPlayers().size()), ChatColor.BLUE);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,102 +9,83 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_stfu extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 0 || args.length > 2) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("list")) {
|
||||
playerMsg(sender, "Muted players:");
|
||||
PlayerData info;
|
||||
int count = 0;
|
||||
for (Player mp : server.getOnlinePlayers())
|
||||
{
|
||||
info = PlayerData.getPlayerData(mp);
|
||||
if (info.isMuted())
|
||||
{
|
||||
playerMsg(sender, "- " + mp.getName());
|
||||
count++;
|
||||
}
|
||||
}
|
||||
if (count == 0)
|
||||
{
|
||||
playerMsg(sender, "- none");
|
||||
}
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("purge"))
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "Unmuting all players.", true);
|
||||
PlayerData info;
|
||||
int count = 0;
|
||||
for (Player mp : server.getOnlinePlayers())
|
||||
{
|
||||
info = PlayerData.getPlayerData(mp);
|
||||
if (info.isMuted())
|
||||
{
|
||||
info.setMuted(false);
|
||||
count++;
|
||||
}
|
||||
}
|
||||
playerMsg(sender, "Unmuted " + count + " players.");
|
||||
}
|
||||
else if (args[0].equalsIgnoreCase("all"))
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "Muting all non-Superadmins", true);
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 0 || args.length > 2) {
|
||||
return false;
|
||||
}
|
||||
|
||||
PlayerData playerdata;
|
||||
int counter = 0;
|
||||
for (Player player : server.getOnlinePlayers())
|
||||
{
|
||||
if (!AdminList.isSuperAdmin(player))
|
||||
{
|
||||
playerdata = PlayerData.getPlayerData(player);
|
||||
playerdata.setMuted(true);
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
if (args[0].equalsIgnoreCase("list")) {
|
||||
playerMsg(sender, "Muted players:");
|
||||
PlayerData info;
|
||||
int count = 0;
|
||||
for (Player mp : server.getOnlinePlayers()) {
|
||||
info = PlayerData.getPlayerData(mp);
|
||||
if (info.isMuted()) {
|
||||
playerMsg(sender, "- " + mp.getName());
|
||||
count++;
|
||||
}
|
||||
}
|
||||
if (count == 0) {
|
||||
playerMsg(sender, "- none");
|
||||
}
|
||||
} else if (args[0].equalsIgnoreCase("purge")) {
|
||||
Utilities.adminAction(sender.getName(), "Unmuting all players.", true);
|
||||
PlayerData info;
|
||||
int count = 0;
|
||||
for (Player mp : server.getOnlinePlayers()) {
|
||||
info = PlayerData.getPlayerData(mp);
|
||||
if (info.isMuted()) {
|
||||
info.setMuted(false);
|
||||
count++;
|
||||
}
|
||||
}
|
||||
playerMsg(sender, "Unmuted " + count + " players.");
|
||||
} else if (args[0].equalsIgnoreCase("all")) {
|
||||
Utilities.adminAction(sender.getName(), "Muting all non-Superadmins", true);
|
||||
|
||||
playerMsg(sender, "Muted " + counter + " players.");
|
||||
}
|
||||
else
|
||||
{
|
||||
final Player player = getPlayer(args[0]);
|
||||
PlayerData playerdata;
|
||||
int counter = 0;
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
if (!AdminList.isSuperAdmin(player)) {
|
||||
playerdata = PlayerData.getPlayerData(player);
|
||||
playerdata.setMuted(true);
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
|
||||
if (player == null)
|
||||
{
|
||||
sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
playerMsg(sender, "Muted " + counter + " players.");
|
||||
} else {
|
||||
final Player player = getPlayer(args[0]);
|
||||
|
||||
PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
if (playerdata.isMuted())
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "Unmuting " + player.getName(), true);
|
||||
playerdata.setMuted(false);
|
||||
playerMsg(sender, "Unmuted " + player.getName());
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!AdminList.isSuperAdmin(player))
|
||||
{
|
||||
Utilities.adminAction(sender.getName(), "Muting " + player.getName(), true);
|
||||
playerdata.setMuted(true);
|
||||
if (player == null) {
|
||||
sender.sendMessage(FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args.length == 2 && args[1].equalsIgnoreCase("-s"))
|
||||
{
|
||||
Command_smite.smite(player);
|
||||
}
|
||||
PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
if (playerdata.isMuted()) {
|
||||
Utilities.adminAction(sender.getName(), "Unmuting " + player.getName(), true);
|
||||
playerdata.setMuted(false);
|
||||
playerMsg(sender, "Unmuted " + player.getName());
|
||||
} else {
|
||||
if (!AdminList.isSuperAdmin(player)) {
|
||||
Utilities.adminAction(sender.getName(), "Muting " + player.getName(), true);
|
||||
playerdata.setMuted(true);
|
||||
|
||||
playerMsg(sender, "Muted " + player.getName());
|
||||
}
|
||||
else
|
||||
{
|
||||
playerMsg(sender, player.getName() + " is a superadmin, and can't be muted.");
|
||||
}
|
||||
}
|
||||
}
|
||||
if (args.length == 2 && args[1].equalsIgnoreCase("-s")) {
|
||||
Command_smite.smite(player);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
playerMsg(sender, "Muted " + player.getName());
|
||||
} else {
|
||||
playerMsg(sender, player.getName() + " is a superadmin, and can't be muted.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,16 +8,18 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_stop extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Utilities.bcastMsg("Server is going offline!", ChatColor.LIGHT_PURPLE);
|
||||
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
player.kickPlayer("Server is going offline, come back in about 20 seconds.");
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
Utilities.bcastMsg("Server is going offline!", ChatColor.LIGHT_PURPLE);
|
||||
|
||||
server.shutdown();
|
||||
for (Player player : server.getOnlinePlayers()) {
|
||||
player.kickPlayer("Server is going offline, come back in about 20 seconds.");
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
server.shutdown();
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,61 +9,55 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
||||
public class Command_survival extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (senderIsConsole) {
|
||||
if (args.length == 0) {
|
||||
playerMsg(sender, "When used from the console, you must define a target user to change gamemode on.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Player player;
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (senderIsConsole) {
|
||||
if (args.length == 0) {
|
||||
playerMsg(sender,
|
||||
"When used from the console, you must define a target user to change gamemode on.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (args.length == 0)
|
||||
{
|
||||
player = sender_p;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (args[0].equalsIgnoreCase("-a"))
|
||||
{
|
||||
if (!AdminList.isSuperAdmin(sender) || senderIsConsole)
|
||||
{
|
||||
sender.sendMessage(FreedomCommand.MSG_NO_PERMS);
|
||||
return true;
|
||||
}
|
||||
Player player;
|
||||
|
||||
for (Player targetPlayer : server.getOnlinePlayers())
|
||||
{
|
||||
targetPlayer.setGameMode(GameMode.SURVIVAL);
|
||||
}
|
||||
if (args.length == 0) {
|
||||
player = sender_p;
|
||||
} else {
|
||||
if (args[0].equalsIgnoreCase("-a")) {
|
||||
if (!AdminList.isSuperAdmin(sender) || senderIsConsole) {
|
||||
sender.sendMessage(FreedomCommand.MSG_NO_PERMS);
|
||||
return true;
|
||||
}
|
||||
|
||||
Utilities.adminAction(sender.getName(), "Changing everyone's gamemode to survival", false);
|
||||
return true;
|
||||
}
|
||||
for (Player targetPlayer : server.getOnlinePlayers()) {
|
||||
targetPlayer.setGameMode(GameMode.SURVIVAL);
|
||||
}
|
||||
|
||||
if (senderIsConsole || AdminList.isSuperAdmin(sender))
|
||||
{
|
||||
player = getPlayer(args[0]);
|
||||
Utilities.adminAction(sender.getName(), "Changing everyone's gamemode to survival",
|
||||
false);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (player == null)
|
||||
{
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
playerMsg(sender, "Only superadmins can change other user's gamemode.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (senderIsConsole || AdminList.isSuperAdmin(sender)) {
|
||||
player = getPlayer(args[0]);
|
||||
|
||||
playerMsg(sender, "Setting " + player.getName() + " to game mode 'Survival'.");
|
||||
player.sendMessage(sender.getName() + " set your game mode to 'Survival'.");
|
||||
player.setGameMode(GameMode.SURVIVAL);
|
||||
if (player == null) {
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
playerMsg(sender, "Only superadmins can change other user's gamemode.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
playerMsg(sender, "Setting " + player.getName() + " to game mode 'Survival'.");
|
||||
player.sendMessage(sender.getName() + " set your game mode to 'Survival'.");
|
||||
player.setGameMode(GameMode.SURVIVAL);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import me.StevenLawson.TotalFreedomMod.admin.AdminList;
|
||||
import me.StevenLawson.TotalFreedomMod.config.TagConfiguration;
|
||||
import me.StevenLawson.TotalFreedomMod.player.PlayerData;
|
||||
|
@ -10,206 +12,185 @@ import org.bukkit.command.Command;
|
|||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
|
||||
public class Command_tag extends FreedomCommand {
|
||||
public static final List<String> FORBIDDEN_WORDS = Arrays.asList("admin", "owner", "moderator", "developer", "console");
|
||||
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 1) {
|
||||
if ("list".equalsIgnoreCase(args[0])) {
|
||||
playerMsg(sender, "Tags for all online players:");
|
||||
public static final List<String> FORBIDDEN_WORDS = Arrays.asList("admin", "owner", "moderator",
|
||||
"developer", "console");
|
||||
|
||||
for (final Player player : server.getOnlinePlayers()) {
|
||||
final PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
if (playerdata.getTag() != null)
|
||||
{
|
||||
playerMsg(sender, player.getName() + ": " + playerdata.getTag());
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length == 1) {
|
||||
if ("list".equalsIgnoreCase(args[0])) {
|
||||
playerMsg(sender, "Tags for all online players:");
|
||||
|
||||
return true;
|
||||
}
|
||||
else if ("clearall".equalsIgnoreCase(args[0]))
|
||||
{
|
||||
if (!AdminList.isSuperAdmin(sender))
|
||||
{
|
||||
playerMsg(sender, FreedomCommand.MSG_NO_PERMS);
|
||||
return true;
|
||||
}
|
||||
for (final Player player : server.getOnlinePlayers()) {
|
||||
final PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
if (playerdata.getTag() != null) {
|
||||
playerMsg(sender, player.getName() + ": " + playerdata.getTag());
|
||||
}
|
||||
}
|
||||
|
||||
Utilities.adminAction(sender.getName(), "Removing all tags", false);
|
||||
return true;
|
||||
} else if ("clearall".equalsIgnoreCase(args[0])) {
|
||||
if (!AdminList.isSuperAdmin(sender)) {
|
||||
playerMsg(sender, FreedomCommand.MSG_NO_PERMS);
|
||||
return true;
|
||||
}
|
||||
|
||||
int count = 0;
|
||||
for (final Player player : server.getOnlinePlayers())
|
||||
{
|
||||
final PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
if (playerdata.getTag() != null)
|
||||
{
|
||||
count++;
|
||||
if(TagConfiguration.getTag(playerdata.getUniqueId().toString()) != null){
|
||||
String playerTag = TagConfiguration.getTag(playerdata.getUniqueId().toString());
|
||||
if(!"".equalsIgnoreCase(playerTag)){
|
||||
TagConfiguration.saveTag(sender_p.getUniqueId().toString(), "");
|
||||
}
|
||||
}
|
||||
playerdata.setTag(null);
|
||||
}
|
||||
}
|
||||
Utilities.adminAction(sender.getName(), "Removing all tags", false);
|
||||
|
||||
playerMsg(sender, count + " tag(s) removed.");
|
||||
int count = 0;
|
||||
for (final Player player : server.getOnlinePlayers()) {
|
||||
final PlayerData playerdata = PlayerData.getPlayerData(player);
|
||||
if (playerdata.getTag() != null) {
|
||||
count++;
|
||||
if (TagConfiguration.getTag(playerdata.getUniqueId().toString()) != null) {
|
||||
String playerTag = TagConfiguration.getTag(
|
||||
playerdata.getUniqueId().toString());
|
||||
if (!"".equalsIgnoreCase(playerTag)) {
|
||||
TagConfiguration.saveTag(sender_p.getUniqueId().toString(), "");
|
||||
}
|
||||
}
|
||||
playerdata.setTag(null);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else if ("off".equalsIgnoreCase(args[0]))
|
||||
{
|
||||
if (senderIsConsole)
|
||||
{
|
||||
playerMsg(sender, "\"/tag off\" can't be used from the console. Use \"/tag clear <player>\" or \"/tag clearall\" instead.");
|
||||
}
|
||||
else
|
||||
{
|
||||
PlayerData.getPlayerData(sender_p).setTag(null);
|
||||
if(TagConfiguration.getTag(sender_p.getUniqueId().toString()) != null){
|
||||
String playerTag = TagConfiguration.getTag(sender_p.getUniqueId().toString());
|
||||
if(!"".equalsIgnoreCase(playerTag)){
|
||||
TagConfiguration.saveTag(sender_p.getUniqueId().toString(), "");
|
||||
}
|
||||
}
|
||||
playerMsg(sender, "Your tag has been removed.");
|
||||
}
|
||||
playerMsg(sender, count + " tag(s) removed.");
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (args.length >= 2)
|
||||
{
|
||||
if ("clear".equalsIgnoreCase(args[0]))
|
||||
{
|
||||
if (!AdminList.isSuperAdmin(sender))
|
||||
{
|
||||
playerMsg(sender, FreedomCommand.MSG_NO_PERMS);
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
} else if ("off".equalsIgnoreCase(args[0])) {
|
||||
if (senderIsConsole) {
|
||||
playerMsg(sender,
|
||||
"\"/tag off\" can't be used from the console. Use \"/tag clear <player>\" or \"/tag clearall\" instead.");
|
||||
} else {
|
||||
PlayerData.getPlayerData(sender_p).setTag(null);
|
||||
if (TagConfiguration.getTag(sender_p.getUniqueId().toString()) != null) {
|
||||
String playerTag = TagConfiguration.getTag(
|
||||
sender_p.getUniqueId().toString());
|
||||
if (!"".equalsIgnoreCase(playerTag)) {
|
||||
TagConfiguration.saveTag(sender_p.getUniqueId().toString(), "");
|
||||
}
|
||||
}
|
||||
playerMsg(sender, "Your tag has been removed.");
|
||||
}
|
||||
|
||||
final Player player = getPlayer(args[1]);
|
||||
if (player == null)
|
||||
{
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
PlayerData.getPlayerData(player).setTag(null);
|
||||
if(TagConfiguration.getTag(player.getUniqueId().toString()) != null){
|
||||
String playerTag = TagConfiguration.getTag(player.getUniqueId().toString());
|
||||
if(!"".equalsIgnoreCase(playerTag)){
|
||||
TagConfiguration.saveTag(player.getUniqueId().toString(), "");
|
||||
}
|
||||
}
|
||||
playerMsg(sender, "Removed " + player.getName() + "'s tag.");
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else if (args.length >= 2) {
|
||||
if ("clear".equalsIgnoreCase(args[0])) {
|
||||
if (!AdminList.isSuperAdmin(sender)) {
|
||||
playerMsg(sender, FreedomCommand.MSG_NO_PERMS);
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else if ("set".equalsIgnoreCase(args[0]))
|
||||
{
|
||||
final String inputTag = StringUtils.join(args, " ", 1, args.length);
|
||||
final String outputTag = Utilities.colorize(StringUtils.replaceEachRepeatedly(StringUtils.strip(inputTag),
|
||||
new String[]
|
||||
{
|
||||
"" + ChatColor.COLOR_CHAR, "&k"
|
||||
},
|
||||
new String[]
|
||||
{
|
||||
"", ""
|
||||
})) + ChatColor.RESET;
|
||||
final Player player = getPlayer(args[1]);
|
||||
if (player == null) {
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
PlayerData.getPlayerData(player).setTag(null);
|
||||
if (TagConfiguration.getTag(player.getUniqueId().toString()) != null) {
|
||||
String playerTag = TagConfiguration.getTag(player.getUniqueId().toString());
|
||||
if (!"".equalsIgnoreCase(playerTag)) {
|
||||
TagConfiguration.saveTag(player.getUniqueId().toString(), "");
|
||||
}
|
||||
}
|
||||
playerMsg(sender, "Removed " + player.getName() + "'s tag.");
|
||||
|
||||
if (!AdminList.isSuperAdmin(sender))
|
||||
{
|
||||
final String rawTag = ChatColor.stripColor(outputTag).toLowerCase();
|
||||
return true;
|
||||
} else if ("set".equalsIgnoreCase(args[0])) {
|
||||
final String inputTag = StringUtils.join(args, " ", 1, args.length);
|
||||
final String outputTag = Utilities.colorize(
|
||||
StringUtils.replaceEachRepeatedly(StringUtils.strip(inputTag),
|
||||
new String[]
|
||||
{
|
||||
"" + ChatColor.COLOR_CHAR, "&k"
|
||||
},
|
||||
new String[]
|
||||
{
|
||||
"", ""
|
||||
})) + ChatColor.RESET;
|
||||
|
||||
if (rawTag.length() > 20)
|
||||
{
|
||||
playerMsg(sender, "That tag is too long (Max is 20 characters).");
|
||||
return true;
|
||||
}
|
||||
if (!AdminList.isSuperAdmin(sender)) {
|
||||
final String rawTag = ChatColor.stripColor(outputTag).toLowerCase();
|
||||
|
||||
for (String word : FORBIDDEN_WORDS)
|
||||
{
|
||||
if (rawTag.contains(word))
|
||||
{
|
||||
{
|
||||
if(word.equals("developer") && Utilities.DEVELOPERS.contains(sender_p.getName())) {
|
||||
PlayerData.getPlayerData(sender_p).setTag(outputTag);
|
||||
playerMsg(sender, "Tag set to '" + outputTag + ChatColor.GRAY + "'.");
|
||||
} else
|
||||
playerMsg(sender, "That tag contains a forbidden word.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (rawTag.length() > 20) {
|
||||
playerMsg(sender, "That tag is too long (Max is 20 characters).");
|
||||
return true;
|
||||
}
|
||||
|
||||
PlayerData.getPlayerData(sender_p).setTag(outputTag);
|
||||
playerMsg(sender, "Tag set to '" + outputTag + ChatColor.GRAY + "'.");
|
||||
for (String word : FORBIDDEN_WORDS) {
|
||||
if (rawTag.contains(word)) {
|
||||
{
|
||||
if (word.equals("developer") && Utilities.DEVELOPERS.contains(
|
||||
sender_p.getName())) {
|
||||
PlayerData.getPlayerData(sender_p).setTag(outputTag);
|
||||
playerMsg(sender,
|
||||
"Tag set to '" + outputTag + ChatColor.GRAY + "'.");
|
||||
} else {
|
||||
playerMsg(sender, "That tag contains a forbidden word.");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else if ("-s".equalsIgnoreCase(args[0]) && "set".equalsIgnoreCase(args[1]))
|
||||
{
|
||||
final String inputTag = StringUtils.join(args, " ", 2, args.length);
|
||||
final String outputTag = Utilities.colorize(StringUtils.replaceEachRepeatedly(StringUtils.strip(inputTag),
|
||||
new String[]
|
||||
{
|
||||
"" + ChatColor.COLOR_CHAR, "&k"
|
||||
},
|
||||
new String[]
|
||||
{
|
||||
"", ""
|
||||
})) + ChatColor.RESET;
|
||||
PlayerData.getPlayerData(sender_p).setTag(outputTag);
|
||||
playerMsg(sender, "Tag set to '" + outputTag + ChatColor.GRAY + "'.");
|
||||
|
||||
if (!AdminList.isSuperAdmin(sender))
|
||||
{
|
||||
final String rawTag = ChatColor.stripColor(outputTag).toLowerCase();
|
||||
return true;
|
||||
} else if ("-s".equalsIgnoreCase(args[0]) && "set".equalsIgnoreCase(args[1])) {
|
||||
final String inputTag = StringUtils.join(args, " ", 2, args.length);
|
||||
final String outputTag = Utilities.colorize(
|
||||
StringUtils.replaceEachRepeatedly(StringUtils.strip(inputTag),
|
||||
new String[]
|
||||
{
|
||||
"" + ChatColor.COLOR_CHAR, "&k"
|
||||
},
|
||||
new String[]
|
||||
{
|
||||
"", ""
|
||||
})) + ChatColor.RESET;
|
||||
|
||||
if (rawTag.length() > 20)
|
||||
{
|
||||
playerMsg(sender, "That tag is too long (Max is 20 characters).");
|
||||
return true;
|
||||
}
|
||||
if (!AdminList.isSuperAdmin(sender)) {
|
||||
final String rawTag = ChatColor.stripColor(outputTag).toLowerCase();
|
||||
|
||||
for (String word : FORBIDDEN_WORDS)
|
||||
{
|
||||
if (rawTag.contains(word))
|
||||
{
|
||||
if(word.equals("developer") && Utilities.DEVELOPERS.contains(sender_p.getName())) {
|
||||
PlayerData.getPlayerData(sender_p).setTag(outputTag);
|
||||
TagConfiguration.saveTag(sender_p.getUniqueId().toString(), outputTag);
|
||||
playerMsg(sender, "Tag set to '" + outputTag + ChatColor.GRAY + "'. (saved)");
|
||||
} else
|
||||
playerMsg(sender, "That tag contains a forbidden word.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (rawTag.length() > 20) {
|
||||
playerMsg(sender, "That tag is too long (Max is 20 characters).");
|
||||
return true;
|
||||
}
|
||||
|
||||
PlayerData.getPlayerData(sender_p).setTag(outputTag);
|
||||
TagConfiguration.saveTag(sender_p.getUniqueId().toString(), outputTag);
|
||||
playerMsg(sender, "Tag set to '" + outputTag + ChatColor.GRAY + "'. (saved)");
|
||||
return true;
|
||||
} else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
for (String word : FORBIDDEN_WORDS) {
|
||||
if (rawTag.contains(word)) {
|
||||
if (word.equals("developer") && Utilities.DEVELOPERS.contains(
|
||||
sender_p.getName())) {
|
||||
PlayerData.getPlayerData(sender_p).setTag(outputTag);
|
||||
TagConfiguration.saveTag(sender_p.getUniqueId().toString(),
|
||||
outputTag);
|
||||
playerMsg(sender,
|
||||
"Tag set to '" + outputTag + ChatColor.GRAY + "'. (saved)");
|
||||
} else {
|
||||
playerMsg(sender, "That tag contains a forbidden word.");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
PlayerData.getPlayerData(sender_p).setTag(outputTag);
|
||||
TagConfiguration.saveTag(sender_p.getUniqueId().toString(), outputTag);
|
||||
playerMsg(sender, "Tag set to '" + outputTag + ChatColor.GRAY + "'. (saved)");
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,23 +9,26 @@ import org.bukkit.command.CommandSender;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.OP, source = SourceType.ONLY_IN_GAME)
|
||||
public class Command_tagnyan extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final StringBuilder tag = new StringBuilder();
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
for (char c : ChatColor.stripColor(Utilities.colorize(StringUtils.join(args, " "))).toCharArray()) {
|
||||
tag.append(Utilities.randomChatColor()).append(c);
|
||||
}
|
||||
final StringBuilder tag = new StringBuilder();
|
||||
|
||||
final PlayerData data = PlayerData.getPlayerData(sender_p);
|
||||
data.setTag(tag.toString());
|
||||
for (char c : ChatColor.stripColor(Utilities.colorize(StringUtils.join(args, " ")))
|
||||
.toCharArray()) {
|
||||
tag.append(Utilities.randomChatColor()).append(c);
|
||||
}
|
||||
|
||||
playerMsg(sender, "Set tag to " + tag);
|
||||
final PlayerData data = PlayerData.getPlayerData(sender_p);
|
||||
data.setTag(tag.toString());
|
||||
|
||||
return true;
|
||||
}
|
||||
playerMsg(sender, "Set tag to " + tag);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,38 +12,45 @@ import org.bukkit.entity.Player;
|
|||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_tban extends FreedomCommand {
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final Player player = getPlayer(args[0]);
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length != 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player == null) {
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
final Player player = getPlayer(args[0]);
|
||||
|
||||
// strike with lightning effect:
|
||||
final Location targetPos = player.getLocation();
|
||||
for (int x = -1; x <= 1; x++)
|
||||
{
|
||||
for (int z = -1; z <= 1; z++)
|
||||
{
|
||||
final Location strike_pos = new Location(targetPos.getWorld(), targetPos.getBlockX() + x, targetPos.getBlockY(), targetPos.getBlockZ() + z);
|
||||
targetPos.getWorld().strikeLightning(strike_pos);
|
||||
}
|
||||
}
|
||||
if (player == null) {
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND, ChatColor.RED);
|
||||
return true;
|
||||
}
|
||||
|
||||
Utilities.adminAction(sender.getName(), "Tempbanning: " + player.getName() + " for 5 minutes.", true);
|
||||
BanManager.addUuidBan(
|
||||
new Ban(UUIDManager.getUniqueId(player), player.getName(), sender.getName(), Utilities.parseDateOffset("5m"), ChatColor.RED + "You have been temporarily banned for 5 minutes."));
|
||||
BanManager.addIpBan(
|
||||
new Ban(Utilities.getIp(player), player.getName(), sender.getName(), Utilities.parseDateOffset("5m"), ChatColor.RED + "You have been temporarily banned for 5 minutes."));
|
||||
// strike with lightning effect:
|
||||
final Location targetPos = player.getLocation();
|
||||
for (int x = -1; x <= 1; x++) {
|
||||
for (int z = -1; z <= 1; z++) {
|
||||
final Location strike_pos = new Location(targetPos.getWorld(),
|
||||
targetPos.getBlockX() + x, targetPos.getBlockY(), targetPos.getBlockZ() + z);
|
||||
targetPos.getWorld().strikeLightning(strike_pos);
|
||||
}
|
||||
}
|
||||
|
||||
player.kickPlayer(ChatColor.RED + "You have been temporarily banned for five minutes. Please read totalfreedom.me for more info.");
|
||||
Utilities.adminAction(sender.getName(),
|
||||
"Tempbanning: " + player.getName() + " for 5 minutes.", true);
|
||||
BanManager.addUuidBan(
|
||||
new Ban(UUIDManager.getUniqueId(player), player.getName(), sender.getName(),
|
||||
Utilities.parseDateOffset("5m"),
|
||||
ChatColor.RED + "You have been temporarily banned for 5 minutes."));
|
||||
BanManager.addIpBan(
|
||||
new Ban(Utilities.getIp(player), player.getName(), sender.getName(),
|
||||
Utilities.parseDateOffset("5m"),
|
||||
ChatColor.RED + "You have been temporarily banned for 5 minutes."));
|
||||
|
||||
return true;
|
||||
}
|
||||
player.kickPlayer(ChatColor.RED
|
||||
+ "You have been temporarily banned for five minutes. Please read totalfreedom.me for more info.");
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package me.StevenLawson.TotalFreedomMod.commands;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import me.StevenLawson.TotalFreedomMod.ban.Ban;
|
||||
import me.StevenLawson.TotalFreedomMod.ban.BanManager;
|
||||
import me.StevenLawson.TotalFreedomMod.manager.UUIDManager;
|
||||
|
@ -11,64 +13,64 @@ import org.bukkit.command.Command;
|
|||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
|
||||
public class Command_tempban extends FreedomCommand {
|
||||
private static final SimpleDateFormat date_format = new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z");
|
||||
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 1) {
|
||||
return false;
|
||||
}
|
||||
private static final SimpleDateFormat date_format = new SimpleDateFormat(
|
||||
"yyyy-MM-dd 'at' HH:mm:ss z");
|
||||
|
||||
final Player player = getPlayer(args[0]);
|
||||
@Override
|
||||
public boolean run(CommandSender sender, org.bukkit.entity.Player sender_p, Command cmd,
|
||||
String commandLabel, String[] args, boolean senderIsConsole) {
|
||||
if (args.length < 1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (player == null) {
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
final Player player = getPlayer(args[0]);
|
||||
|
||||
final StringBuilder message = new StringBuilder("Temporarily banned " + player.getName());
|
||||
if (player == null) {
|
||||
playerMsg(sender, FreedomCommand.PLAYER_NOT_FOUND);
|
||||
return true;
|
||||
}
|
||||
|
||||
Date expires = Utilities.parseDateOffset("30m");
|
||||
if (args.length >= 2)
|
||||
{
|
||||
Date parsed_offset = Utilities.parseDateOffset(args[1]);
|
||||
if (parsed_offset != null)
|
||||
{
|
||||
expires = parsed_offset;
|
||||
}
|
||||
}
|
||||
message.append(" until ").append(date_format.format(expires));
|
||||
final StringBuilder message = new StringBuilder("Temporarily banned " + player.getName());
|
||||
|
||||
String reason = "Banned by " + sender.getName();
|
||||
if (args.length >= 3)
|
||||
{
|
||||
reason = StringUtils.join(ArrayUtils.subarray(args, 2, args.length), " ") + " (" + sender.getName() + ")";
|
||||
message.append(", Reason: \"").append(reason).append("\"");
|
||||
}
|
||||
Date expires = Utilities.parseDateOffset("30m");
|
||||
if (args.length >= 2) {
|
||||
Date parsed_offset = Utilities.parseDateOffset(args[1]);
|
||||
if (parsed_offset != null) {
|
||||
expires = parsed_offset;
|
||||
}
|
||||
}
|
||||
message.append(" until ").append(date_format.format(expires));
|
||||
|
||||
// strike with lightning effect:
|
||||
final Location targetPos = player.getLocation();
|
||||
for (int x = -1; x <= 1; x++)
|
||||
{
|
||||
for (int z = -1; z <= 1; z++)
|
||||
{
|
||||
final Location strike_pos = new Location(targetPos.getWorld(), targetPos.getBlockX() + x, targetPos.getBlockY(), targetPos.getBlockZ() + z);
|
||||
targetPos.getWorld().strikeLightning(strike_pos);
|
||||
}
|
||||
}
|
||||
String reason = "Banned by " + sender.getName();
|
||||
if (args.length >= 3) {
|
||||
reason = StringUtils.join(ArrayUtils.subarray(args, 2, args.length), " ") + " ("
|
||||
+ sender.getName() + ")";
|
||||
message.append(", Reason: \"").append(reason).append("\"");
|
||||
}
|
||||
|
||||
Utilities.adminAction(sender.getName(), message.toString(), true);
|
||||
// strike with lightning effect:
|
||||
final Location targetPos = player.getLocation();
|
||||
for (int x = -1; x <= 1; x++) {
|
||||
for (int z = -1; z <= 1; z++) {
|
||||
final Location strike_pos = new Location(targetPos.getWorld(),
|
||||
targetPos.getBlockX() + x, targetPos.getBlockY(), targetPos.getBlockZ() + z);
|
||||
targetPos.getWorld().strikeLightning(strike_pos);
|
||||
}
|
||||
}
|
||||
|
||||
BanManager.addIpBan(new Ban(Utilities.getIp(player), player.getName(), sender.getName(), expires, reason));
|
||||
BanManager.addUuidBan(new Ban(UUIDManager.getUniqueId(player), player.getName(), sender.getName(), expires, reason));
|
||||
Utilities.adminAction(sender.getName(), message.toString(), true);
|
||||
|
||||
player.kickPlayer(sender.getName() + " - " + message);
|
||||
BanManager.addIpBan(
|
||||
new Ban(Utilities.getIp(player), player.getName(), sender.getName(), expires, reason));
|
||||
BanManager.addUuidBan(
|
||||
new Ban(UUIDManager.getUniqueId(player), player.getName(), sender.getName(), expires,
|
||||
reason));
|
||||
|
||||
return true;
|
||||
}
|
||||
player.kickPlayer(sender.getName() + " - " + message);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue