From ed82272f5cfe241b9bf3170e5f4f54aba0294e11 Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Wed, 21 Nov 2012 22:42:05 -0500 Subject: [PATCH 1/6] A few of Darth's recent dev branch changes. -Made it so only superadmins can use qop and qdeop -Reformat of mute/stfu, now blocks essentials based communication commands as well as /say when someone is muted. -Blocked socialspy. --- .../Commands/Command_qdeop.java | 3 +- .../TotalFreedomMod/Commands/Command_qop.java | 3 +- .../Commands/Command_stfu.java | 63 ++++++++++--------- .../Listener/TFM_PlayerListener.java | 39 +++++++++++- src/superadmin.yml | 2 +- 5 files changed, 75 insertions(+), 35 deletions(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_qdeop.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_qdeop.java index 82bd69a3..be6c71d6 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_qdeop.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_qdeop.java @@ -1,5 +1,6 @@ package me.StevenLawson.TotalFreedomMod.Commands; +import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.command.Command; @@ -16,7 +17,7 @@ public class Command_qdeop extends TFM_Command return false; } - if (!(senderIsConsole || sender.isOp())) + if (!(senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))) { sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_qop.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_qop.java index 81d4e70a..f9272a0f 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_qop.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_qop.java @@ -1,5 +1,6 @@ package me.StevenLawson.TotalFreedomMod.Commands; +import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.command.Command; @@ -16,7 +17,7 @@ public class Command_qop extends TFM_Command return false; } - if (!(senderIsConsole || sender.isOp())) + if (!(senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))) { sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_stfu.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_stfu.java index 58125e37..fedaf056 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_stfu.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_stfu.java @@ -9,7 +9,6 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; //This command was coded initially by JeromSar - public class Command_stfu extends TFM_Command { @Override @@ -44,10 +43,8 @@ public class Command_stfu extends TFM_Command { TFM_Util.playerMsg(sender, "- none"); } - return true; } - - if (args[0].equalsIgnoreCase("purge")) + else if (args[0].equalsIgnoreCase("purge")) { TFM_Util.adminAction(sender.getName(), "Unmuting all players.", true); TFM_UserInfo info; @@ -62,10 +59,8 @@ public class Command_stfu extends TFM_Command } } TFM_Util.playerMsg(sender, "Unmuted " + count + " players."); - return true; } - - if (args[0].equalsIgnoreCase("all")) + else if (args[0].equalsIgnoreCase("all")) { TFM_Util.adminAction(sender.getName(), "Muting all non-Superadmins", true); @@ -82,32 +77,40 @@ public class Command_stfu extends TFM_Command } TFM_Util.playerMsg(sender, "Muted " + counter + " players."); - return true; - } - - Player p; - try - { - p = getPlayer(args[0]); - } - catch (CantFindPlayerException ex) - { - sender.sendMessage(ex.getMessage()); - return true; - } - - TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p); - if (playerdata.isMuted()) - { - TFM_Util.adminAction(sender.getName(), "Unmuting " + p.getName(), true); - playerdata.setMuted(false); - TFM_Util.playerMsg(sender, "Unmuted " + p.getName()); } else { - TFM_Util.adminAction(sender.getName(), "Muting " + p.getName(), true); - playerdata.setMuted(true); - TFM_Util.playerMsg(sender, "Muted " + p.getName()); + Player p; + try + { + p = getPlayer(args[0]); + } + catch (CantFindPlayerException ex) + { + sender.sendMessage(ex.getMessage()); + return true; + } + + TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p); + if (playerdata.isMuted()) + { + TFM_Util.adminAction(sender.getName(), "Unmuting " + p.getName(), true); + playerdata.setMuted(false); + TFM_Util.playerMsg(sender, "Unmuted " + p.getName()); + } + else + { + if (!TFM_SuperadminList.isUserSuperadmin(p)) + { + TFM_Util.adminAction(sender.getName(), "Muting " + p.getName(), true); + playerdata.setMuted(true); + TFM_Util.playerMsg(sender, "Muted " + p.getName()); + } + else + { + TFM_Util.playerMsg(sender, p.getName() + " is a superadmin, and can't be muted."); + } + } } return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java index ed22a20b..cbf690c6 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java @@ -1,7 +1,9 @@ package me.StevenLawson.TotalFreedomMod.Listener; import java.text.SimpleDateFormat; +import java.util.Arrays; import java.util.Iterator; +import java.util.List; import java.util.Map.Entry; import java.util.regex.Pattern; import me.StevenLawson.TotalFreedomMod.*; @@ -9,7 +11,12 @@ import net.minecraft.server.BanEntry; import net.minecraft.server.BanList; import net.minecraft.server.MinecraftServer; import net.minecraft.server.ServerConfigurationManagerAbstract; -import org.bukkit.*; +import org.apache.commons.lang.StringUtils; +import org.bukkit.ChatColor; +import org.bukkit.GameMode; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Server; import org.bukkit.block.Block; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; @@ -26,6 +33,7 @@ import org.bukkit.util.Vector; public class TFM_PlayerListener implements Listener { private static final SimpleDateFormat date_format = new SimpleDateFormat("yyyy-MM-dd \'at\' HH:mm:ss z"); + private static final List BLOCKED_MUTED_CMDS = Arrays.asList(StringUtils.split("say,me,msg,m,tell,r,reply", ",")); @EventHandler(priority = EventPriority.HIGH) public void onPlayerInteract(PlayerInteractEvent event) @@ -99,7 +107,7 @@ public class TFM_PlayerListener implements Listener } case BLAZE_ROD: { - if (TotalFreedomMod.allowExplosions && (player.getName().equals("Madgeek1450") || player.getName().equals("markbyron"))) + if (TotalFreedomMod.allowExplosions && TFM_SuperadminList.isSeniorAdmin(player)) { Block target_block = null; @@ -449,6 +457,13 @@ public class TFM_PlayerListener implements Listener block_command = true; } } + else if (Pattern.compile("^/e?socialspy").matcher(command).find()) + { + if (!TFM_SuperadminList.isUserSuperadmin(p)) + { + block_command = true; + } + } else if (Pattern.compile("^/pardon").matcher(command).find()) { block_command = true; @@ -465,6 +480,26 @@ public class TFM_PlayerListener implements Listener event.setCancelled(true); return; } + + if (playerdata.isMuted()) + { + if (!TFM_SuperadminList.isUserSuperadmin(p)) + { + for (String test_command : BLOCKED_MUTED_CMDS) + { + if (Pattern.compile("^/" + test_command.toLowerCase() + " ").matcher(command.toLowerCase()).find()) + { + p.sendMessage(ChatColor.RED + "That command is blocked while you are muted."); + event.setCancelled(true); + return; + } + } + } + else + { + playerdata.setMuted(false); + } + } } @EventHandler(priority = EventPriority.NORMAL) diff --git a/src/superadmin.yml b/src/superadmin.yml index ed47ee80..4be36852 100644 --- a/src/superadmin.yml +++ b/src/superadmin.yml @@ -19,7 +19,7 @@ superadmins: is_senior_admin: true console_aliases: - madgeek - is_activated: false + is_activated: true markbyron: ips: - 74.125.224.72 From 502b05526527e23957d1a997f1977e686553a09b Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Thu, 22 Nov 2012 21:32:55 -0500 Subject: [PATCH 2/6] Added standard method for matching partial and *'d IPs (fuzzy ip matching). --- .../Listener/TFM_PlayerListener.java | 32 +------- .../TotalFreedomMod/TFM_SuperadminList.java | 76 ++++++++++--------- .../TotalFreedomMod/TFM_Util.java | 55 ++++++++++++-- 3 files changed, 90 insertions(+), 73 deletions(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java index cbf690c6..02da3da7 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java @@ -680,33 +680,7 @@ public class TFM_PlayerListener implements Listener break; } - String[] test_ip_parts = test_ip.split("\\."); - String[] player_ip_parts = player_ip.split("\\."); - - boolean is_match = false; - - for (int i = 0; i < test_ip_parts.length && i < player_ip_parts.length; i++) - { - if (test_ip_parts[i].equals("*") && i >= 2) - { - is_match = true; - } - else if (test_ip_parts[i].equals(player_ip_parts[i])) - { - is_match = true; - } - else - { - is_match = false; - } - - if (!is_match) - { - break; - } - } - - if (is_match) + if (TFM_Util.fuzzyIpMatch(test_ip, player_ip, 4)) { ban_entry = (BanEntry) banByIP.getEntries().get(test_ip); is_ip_banned = true; @@ -741,9 +715,7 @@ public class TFM_PlayerListener implements Listener for (String test_ip : TotalFreedomMod.permbanned_ips) { - //TODO: Add support for wildcards in permbanned_ips list. - //TODO: Create generic wildcard IP matching method since we do this several times already in this project. - if (test_ip.equalsIgnoreCase(player_ip)) + if (TFM_Util.fuzzyIpMatch(test_ip, player_ip, 4)) { event.disallow(PlayerLoginEvent.Result.KICK_BANNED, ChatColor.RED + "Your IP address is permanently banned from this server."); return; diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_SuperadminList.java b/src/me/StevenLawson/TotalFreedomMod/TFM_SuperadminList.java index 84ffc8cf..5e9fc6c6 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_SuperadminList.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_SuperadminList.java @@ -264,23 +264,13 @@ public class TFM_SuperadminList } else { - String[] user_octets = user_ip.split("\\."); - if (user_octets.length != 4) - { - return false; - } - String match_ip = null; for (String test_ip : getSuperadminIPs()) { - String[] test_octets = test_ip.split("\\."); - if (test_octets.length == 4) + if (TFM_Util.fuzzyIpMatch(user_ip, test_ip, 3)) { - if (user_octets[0].equals(test_octets[0]) && user_octets[1].equals(test_octets[1]) && user_octets[2].equals(test_octets[2])) - { - match_ip = test_ip; - break; - } + match_ip = test_ip; + break; } } @@ -327,27 +317,34 @@ public class TFM_SuperadminList public static void addSuperadmin(String admin_name, List ips) { - admin_name = admin_name.toLowerCase(); - - if (superadminList.containsKey(admin_name)) + try { - TFM_Superadmin superadmin = superadminList.get(admin_name); - superadmin.setActivated(true); - superadmin.getIps().addAll(ips); - superadmin.setLastLogin(new Date()); + admin_name = admin_name.toLowerCase(); + + if (superadminList.containsKey(admin_name)) + { + TFM_Superadmin superadmin = superadminList.get(admin_name); + superadmin.setActivated(true); + superadmin.getIps().addAll(ips); + superadmin.setLastLogin(new Date()); + } + else + { + Date last_login = new Date(); + String custom_login_message = ""; + boolean is_senior_admin = false; + List console_aliases = new ArrayList(); + + TFM_Superadmin superadmin = new TFM_Superadmin(admin_name, ips, last_login, custom_login_message, is_senior_admin, console_aliases, true); + superadminList.put(admin_name.toLowerCase(), superadmin); + } + + saveSuperadminList(); } - else + catch (Exception ex) { - Date last_login = new Date(); - String custom_login_message = ""; - boolean is_senior_admin = false; - List console_aliases = new ArrayList(); - - TFM_Superadmin superadmin = new TFM_Superadmin(admin_name, ips, last_login, custom_login_message, is_senior_admin, console_aliases, true); - superadminList.put(admin_name.toLowerCase(), superadmin); + TFM_Log.severe(ex); } - - saveSuperadminList(); } public static void addSuperadmin(Player p) @@ -365,13 +362,20 @@ public class TFM_SuperadminList public static void removeSuperadmin(String admin_name) { - admin_name = admin_name.toLowerCase(); - - if (superadminList.containsKey(admin_name)) + try { - TFM_Superadmin superadmin = superadminList.get(admin_name); - superadmin.setActivated(false); - saveSuperadminList(); + admin_name = admin_name.toLowerCase(); + + if (superadminList.containsKey(admin_name)) + { + TFM_Superadmin superadmin = superadminList.get(admin_name); + superadmin.setActivated(false); + saveSuperadminList(); + } + } + catch (Exception ex) + { + TFM_Log.severe(ex); } } diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java index 62d74a95..6e0286a0 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java @@ -888,7 +888,6 @@ public class TFM_Util } } } - public static String DATE_STORAGE_FORMAT = "EEE, d MMM yyyy HH:mm:ss Z"; public static String dateToString(Date date) @@ -913,13 +912,55 @@ public class TFM_Util return restricted_senders.contains(sender_name.toLowerCase()); } - public static List removeDuplicates(List list) + public static List removeDuplicates(List old_list) { - HashSet hash = new HashSet(); - hash.addAll(list); - list.clear(); - list.addAll(hash); - return list; + List new_list = new ArrayList(); + for (String entry : old_list) + { + if (!new_list.contains(entry)) + { + new_list.add(entry); + } + } + return new_list; + } + + public static boolean fuzzyIpMatch(String a, String b, int required_octets) + { + boolean is_match = true; + + String[] a_parts = StringUtils.split(a, '.'); + String[] b_parts = StringUtils.split(b, '.'); + + if (a_parts.length != 4 || b_parts.length != 4) + { + return false; + } + + if (required_octets > 4) + { + required_octets = 4; + } + else if (required_octets < 1) + { + required_octets = 1; + } + + for (int i = 0; i < required_octets && i < 4; i++) + { + if (a_parts[i].equals("*") || b_parts[i].equals("*")) + { + continue; + } + + if (!a_parts[i].equals(b_parts[i])) + { + is_match = false; + break; + } + } + + return is_match; } // I wrote all this before i discovered getTargetBlock >.> - might come in handy some day... // public static final double LOOKAT_VIEW_HEIGHT = 1.65; From 13af6cb6a3bf03d6b9920e0f8d459058952a2c51 Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Thu, 22 Nov 2012 22:48:28 -0500 Subject: [PATCH 3/6] Implemented support for annotation based command permission setting. Example usages in adminmode, cage, and fuckoff. This feature can be "ignored" for commands that want to check perms for themselves. This means that we can gradually implement this, and not all commands have to be on the new system. --- .../TotalFreedomMod/Commands/ADMIN_LEVEL.java | 6 + .../Commands/CommandPermissions.java | 16 +++ .../Commands/Command_adminmode.java | 8 +- .../Commands/Command_cage.java | 112 ++++++++---------- .../Commands/Command_fuckoff.java | 21 +--- .../Commands/SOURCE_TYPE_ALLOWED.java | 6 + .../TotalFreedomMod/Commands/TFM_Command.java | 80 ++++++++++++- .../TotalFreedomMod/TotalFreedomMod.java | 9 +- 8 files changed, 166 insertions(+), 92 deletions(-) create mode 100644 src/me/StevenLawson/TotalFreedomMod/Commands/ADMIN_LEVEL.java create mode 100644 src/me/StevenLawson/TotalFreedomMod/Commands/CommandPermissions.java create mode 100644 src/me/StevenLawson/TotalFreedomMod/Commands/SOURCE_TYPE_ALLOWED.java diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/ADMIN_LEVEL.java b/src/me/StevenLawson/TotalFreedomMod/Commands/ADMIN_LEVEL.java new file mode 100644 index 00000000..c8b5d318 --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/ADMIN_LEVEL.java @@ -0,0 +1,6 @@ +package me.StevenLawson.TotalFreedomMod.Commands; + +public enum ADMIN_LEVEL +{ + ALL, OP, SUPER, SENIOR +} diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/CommandPermissions.java b/src/me/StevenLawson/TotalFreedomMod/Commands/CommandPermissions.java new file mode 100644 index 00000000..9206e353 --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/CommandPermissions.java @@ -0,0 +1,16 @@ +package me.StevenLawson.TotalFreedomMod.Commands; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface CommandPermissions +{ + ADMIN_LEVEL level(); + + SOURCE_TYPE_ALLOWED source(); + + boolean block_web_console() default false; + + boolean ignore_permissions() default true; +} diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_adminmode.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_adminmode.java index 6eefdf1f..30b6377e 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_adminmode.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_adminmode.java @@ -3,22 +3,16 @@ package me.StevenLawson.TotalFreedomMod.Commands; import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; -import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, block_web_console = true, ignore_permissions = false) public class Command_adminmode extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (!senderIsConsole || TFM_Util.isFromClanforge(sender.getName())) - { - sender.sendMessage(ChatColor.GRAY + "This command may only be used from the Telnet or BukkitHttpd console."); - return true; - } - if (args[0].equalsIgnoreCase("off")) { TotalFreedomMod.adminOnlyMode = false; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cage.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cage.java index 3bf3cf20..d4cc4d6f 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cage.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cage.java @@ -1,9 +1,7 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_UserInfo; import me.StevenLawson.TotalFreedomMod.TFM_Util; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Location; @@ -12,82 +10,76 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_cage extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)) + if (args.length == 0) { - if (args.length == 0) - { - return false; - } + return false; + } - Player p; - try + Player p; + try + { + p = getPlayer(args[0]); + } + catch (CantFindPlayerException ex) + { + sender.sendMessage(ex.getMessage()); + return true; + } + + TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p); + + Material cage_material_outer = Material.GLASS; + Material cage_material_inner = Material.AIR; + if (args.length >= 2) + { + if (TFM_Util.isStopCommand(args[1])) { - p = getPlayer(args[0]); - } - catch (CantFindPlayerException ex) - { - sender.sendMessage(ex.getMessage()); + playerdata.setCaged(false); + playerdata.regenerateHistory(); + playerdata.clearHistory(); + sender.sendMessage(ChatColor.GREEN + p.getName() + " uncaged."); return true; } - - TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p); - - Material cage_material_outer = Material.GLASS; - Material cage_material_inner = Material.AIR; - if (args.length >= 2) + else { - if (TFM_Util.isStopCommand(args[1])) + cage_material_outer = Material.matchMaterial(args[1]); + if (cage_material_outer == null) { - playerdata.setCaged(false); - playerdata.regenerateHistory(); - playerdata.clearHistory(); - sender.sendMessage(ChatColor.GREEN + p.getName() + " uncaged."); - return true; - } - else - { - cage_material_outer = Material.matchMaterial(args[1]); - if (cage_material_outer == null) - { - cage_material_outer = Material.GLASS; - } + cage_material_outer = Material.GLASS; } } - - if (args.length >= 3) - { - if (args[2].equalsIgnoreCase("water")) - { - cage_material_inner = Material.STATIONARY_WATER; - } - else if (args[2].equalsIgnoreCase("lava")) - { - cage_material_inner = Material.STATIONARY_LAVA; - } - } - - Location target_pos = p.getLocation().add(0, 1, 0); - playerdata.setCaged(true, target_pos, cage_material_outer, cage_material_inner); - playerdata.regenerateHistory(); - playerdata.clearHistory(); - TFM_Util.buildHistory(target_pos, 2, playerdata); - TFM_Util.generateCube(target_pos, 2, playerdata.getCageMaterial(TFM_UserInfo.CageLayer.OUTER)); - TFM_Util.generateCube(target_pos, 1, playerdata.getCageMaterial(TFM_UserInfo.CageLayer.INNER)); - - p.setGameMode(GameMode.SURVIVAL); - - TFM_Util.bcastMsg(sender.getName() + " caged " + p.getName() + "!", ChatColor.YELLOW); } - else + + if (args.length >= 3) { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + if (args[2].equalsIgnoreCase("water")) + { + cage_material_inner = Material.STATIONARY_WATER; + } + else if (args[2].equalsIgnoreCase("lava")) + { + cage_material_inner = Material.STATIONARY_LAVA; + } } + Location target_pos = p.getLocation().add(0, 1, 0); + playerdata.setCaged(true, target_pos, cage_material_outer, cage_material_inner); + playerdata.regenerateHistory(); + playerdata.clearHistory(); + TFM_Util.buildHistory(target_pos, 2, playerdata); + TFM_Util.generateCube(target_pos, 2, playerdata.getCageMaterial(TFM_UserInfo.CageLayer.OUTER)); + TFM_Util.generateCube(target_pos, 1, playerdata.getCageMaterial(TFM_UserInfo.CageLayer.INNER)); + + p.setGameMode(GameMode.SURVIVAL); + + TFM_Util.bcastMsg(sender.getName() + " caged " + p.getName() + "!", ChatColor.YELLOW); + return true; } } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_fuckoff.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_fuckoff.java index 90ef2e4b..1b6bdfe6 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_fuckoff.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_fuckoff.java @@ -1,35 +1,16 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; -import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.ONLY_IN_GAME, ignore_permissions = false) public class Command_fuckoff extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (senderIsConsole) - { - sender.sendMessage(TotalFreedomMod.NOT_FROM_CONSOLE); - return true; - } - - if (!TFM_SuperadminList.isUserSuperadmin(sender)) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - - if (!TFM_SuperadminList.isSeniorAdmin(sender_p)) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - if (args.length < 1) { return false; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/SOURCE_TYPE_ALLOWED.java b/src/me/StevenLawson/TotalFreedomMod/Commands/SOURCE_TYPE_ALLOWED.java new file mode 100644 index 00000000..376c22c9 --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/SOURCE_TYPE_ALLOWED.java @@ -0,0 +1,6 @@ +package me.StevenLawson.TotalFreedomMod.Commands; + +public enum SOURCE_TYPE_ALLOWED +{ + ONLY_IN_GAME, ONLY_CONSOLE, BOTH +} diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/TFM_Command.java b/src/me/StevenLawson/TotalFreedomMod/Commands/TFM_Command.java index b493e3e6..e5ead5f3 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/TFM_Command.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/TFM_Command.java @@ -2,6 +2,8 @@ package me.StevenLawson.TotalFreedomMod.Commands; import java.util.List; import me.StevenLawson.TotalFreedomMod.TFM_Log; +import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; +import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.ChatColor; import org.bukkit.Server; @@ -13,24 +15,94 @@ public class TFM_Command { protected TotalFreedomMod plugin; protected Server server; - + public TFM_Command() { } - + public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { TFM_Log.severe("Command Error: Command not implemented: " + cmd.getName()); sender.sendMessage(ChatColor.RED + "Command Error: Command not implemented: " + cmd.getName()); return false; } - + public void setPlugin(TotalFreedomMod plugin) { this.plugin = plugin; this.server = plugin.getServer(); } - + + public boolean senderHasPermission(Class cmd_class, CommandSender sender) + { + CommandPermissions permissions = cmd_class.getAnnotation(CommandPermissions.class); + if (permissions != null) + { + if (permissions.ignore_permissions()) + { + return true; + } + else + { + boolean is_super = TFM_SuperadminList.isUserSuperadmin(sender); + boolean is_senior = false; + if (is_super) + { + is_senior = TFM_SuperadminList.isSeniorAdmin(sender); + } + + ADMIN_LEVEL level = permissions.level(); + SOURCE_TYPE_ALLOWED source = permissions.source(); + boolean block_web_console = permissions.block_web_console(); + + //TFM_Log.info("Level: " + level + ", Source: " + source + ", BWC: " + block_web_console); + + Player sender_p = null; + if (sender instanceof Player) + { + sender_p = (Player) sender; + } + + if (sender_p == null) + { + if (source == SOURCE_TYPE_ALLOWED.ONLY_IN_GAME) + { + return false; + } + else if (level == ADMIN_LEVEL.SENIOR && !is_senior) + { + return false; + } + else if (block_web_console && TFM_Util.isFromClanforge(sender.getName())) + { + return false; + } + } + else + { + if (source == SOURCE_TYPE_ALLOWED.ONLY_CONSOLE) + { + return false; + } + else if (level == ADMIN_LEVEL.SENIOR && !is_senior) + { + return false; + } + else if (level == ADMIN_LEVEL.SUPER && !is_super) + { + return false; + } + else if (level == ADMIN_LEVEL.OP && !sender_p.isOp()) + { + return false; + } + } + return true; + } + } + return true; + } + public Player getPlayer(String partialname) throws CantFindPlayerException { List matches = server.matchPlayer(partialname); diff --git a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java index 71ad4c7c..a51a6a0e 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java +++ b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java @@ -149,7 +149,14 @@ public class TotalFreedomMod extends JavaPlugin try { - return dispatcher.run(sender, sender_p, cmd, commandLabel, args, senderIsConsole); + if (dispatcher.senderHasPermission(dispatcher.getClass(), sender)) + { + return dispatcher.run(sender, sender_p, cmd, commandLabel, args, senderIsConsole); + } + else + { + sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + } } catch (Throwable ex) { From 9c05e8e2fbf4d51d91833aaef084e987f25c8706 Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Fri, 23 Nov 2012 20:22:52 -0500 Subject: [PATCH 4/6] Finished implementation of CommandPermissions and conversion of all commands. --- .../Commands/Command_cake.java | 33 ++-- .../Commands/Command_cartsit.java | 1 + .../Commands/Command_clearall.java | 26 +-- .../Commands/Command_cmdlist.java | 5 +- .../Commands/Command_creative.java | 8 +- .../Commands/Command_csay.java | 22 +-- .../Commands/Command_deop.java | 13 +- .../Commands/Command_deopall.java | 17 +- .../Commands/Command_doom.java | 8 +- .../Commands/Command_enchant.java | 22 +-- .../Commands/Command_ender.java | 1 + .../Commands/Command_expel.java | 96 +++++------ .../Commands/Command_explosives.java | 43 ++--- .../Commands/Command_fireplace.java | 27 ++- .../Commands/Command_firespread.java | 27 ++- .../Commands/Command_flatlands.java | 1 + .../Commands/Command_fluidspread.java | 27 ++- .../TotalFreedomMod/Commands/Command_fr.java | 91 +++++----- .../Commands/Command_gadmin.java | 155 ++++++++---------- .../Commands/Command_gcmd.java | 80 ++++----- .../Commands/Command_glist.java | 143 ++++++++-------- .../Commands/Command_gtfo.java | 115 ++++++------- .../Commands/Command_halt.java | 10 +- .../Commands/Command_kicknoob.java | 12 +- .../Commands/Command_landmine.java | 15 +- .../Commands/Command_lavadmg.java | 27 ++- .../Commands/Command_lavaplace.java | 27 ++- .../Commands/Command_list.java | 1 + .../Commands/Command_lockup.java | 9 +- .../Commands/Command_moblimiter.java | 9 +- .../TotalFreedomMod/Commands/Command_mp.java | 29 ++-- .../Commands/Command_mp44.java | 46 +++--- .../Commands/Command_nether.java | 1 + .../Commands/Command_nonuke.java | 10 +- .../Commands/Command_onlinemode.java | 8 +- .../TotalFreedomMod/Commands/Command_op.java | 11 +- .../Commands/Command_opall.java | 49 +++--- .../Commands/Command_opme.java | 21 +-- .../TotalFreedomMod/Commands/Command_ops.java | 7 +- .../Commands/Command_orbit.java | 80 ++++----- .../Commands/Command_permban.java | 24 +-- .../Commands/Command_potion.java | 8 +- .../Commands/Command_prelog.java | 27 ++- .../Commands/Command_protectarea.java | 16 +- .../Commands/Command_qdeop.java | 8 +- .../TotalFreedomMod/Commands/Command_qop.java | 8 +- .../Commands/Command_radar.java | 8 +- .../Commands/Command_rank.java | 1 + .../Commands/Command_rawsay.java | 18 +- .../TotalFreedomMod/Commands/Command_rd.java | 9 +- .../Commands/Command_saconfig.java | 1 + .../TotalFreedomMod/Commands/Command_say.java | 22 +-- .../Commands/Command_setlevel.java | 22 +-- .../Commands/Command_setspawnworld.java | 18 +- .../Commands/Command_smite.java | 10 +- .../Commands/Command_status.java | 1 + .../Commands/Command_stfu.java | 9 +- .../Commands/Command_stop.java | 20 +-- .../Commands/Command_survival.java | 8 +- .../Commands/Command_tempban.java | 9 +- .../Commands/Command_terminal.java | 8 +- .../Commands/Command_tfbanlist.java | 1 + .../Commands/Command_tfipbanlist.java | 1 + .../Commands/Command_tossmob.java | 106 ++++++------ .../Commands/Command_uall.java | 22 +-- .../Commands/Command_waterplace.java | 29 ++-- .../Commands/Command_whitelist.java | 7 +- .../Commands/Command_wildcard.java | 33 ++-- .../Commands/Command_wipeflatlands.java | 9 +- .../Commands/Command_ziptool.java | 118 +++++++------ .../TotalFreedomMod/TFM_Util.java | 1 + .../TotalFreedomMod/TotalFreedomMod.java | 5 +- 72 files changed, 737 insertions(+), 1183 deletions(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cake.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cake.java index d8949522..024a483a 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cake.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cake.java @@ -1,7 +1,6 @@ package me.StevenLawson.TotalFreedomMod.Commands; import java.util.Random; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.Material; @@ -10,35 +9,29 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_cake extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)) + StringBuilder output = new StringBuilder(); + Random randomGenerator = new Random(); + + for (String word : TotalFreedomMod.CAKE_LYRICS.split(" ")) { - StringBuilder output = new StringBuilder(); - Random randomGenerator = new Random(); - - for (String word : TotalFreedomMod.CAKE_LYRICS.split(" ")) - { - String color_code = Integer.toHexString(1 + randomGenerator.nextInt(14)); - output.append("§").append(color_code).append(word).append(" "); - } - - for (Player p : server.getOnlinePlayers()) - { - ItemStack heldItem = new ItemStack(Material.CAKE, 1); - p.getInventory().setItem(p.getInventory().firstEmpty(), heldItem); - } - - TFM_Util.bcastMsg(output.toString()); + String color_code = Integer.toHexString(1 + randomGenerator.nextInt(14)); + output.append("§").append(color_code).append(word).append(" "); } - else + + for (Player p : server.getOnlinePlayers()) { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + ItemStack heldItem = new ItemStack(Material.CAKE, 1); + p.getInventory().setItem(p.getInventory().firstEmpty(), heldItem); } + TFM_Util.bcastMsg(output.toString()); + return true; } } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cartsit.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cartsit.java index e1ac4f23..0b05da32 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cartsit.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cartsit.java @@ -6,6 +6,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Minecart; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.ALL, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = true) public class Command_cartsit extends TFM_Command { @Override diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_clearall.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_clearall.java index 3a38471e..b9f36770 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_clearall.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_clearall.java @@ -1,36 +1,18 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -//This command was coded initially by JeromSar - +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_clearall extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (!(TFM_SuperadminList.isUserSuperadmin(sender) || senderIsConsole)) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - } - - CommandSender cSender; - if (senderIsConsole) - { - cSender = server.getConsoleSender(); - } - else - { - cSender = sender; - } - - server.dispatchCommand(cSender, "rd"); // remove entities - server.dispatchCommand(cSender, "denick"); // remove nicks - server.dispatchCommand(cSender, "uall"); // undisguise all + server.dispatchCommand(sender, "rd"); + server.dispatchCommand(sender, "denick"); + server.dispatchCommand(sender, "uall"); return true; } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cmdlist.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cmdlist.java index 8bac97b2..1a90456d 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cmdlist.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cmdlist.java @@ -5,13 +5,14 @@ import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Map.Entry; -import me.StevenLawson.TotalFreedomMod.TFM_Util; +import org.apache.commons.lang.StringUtils; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginDescriptionFile; +@CommandPermissions(level = ADMIN_LEVEL.ALL, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = true) public class Command_cmdlist extends TFM_Command { @Override @@ -42,7 +43,7 @@ public class Command_cmdlist extends TFM_Command Collections.sort(commands); - sender.sendMessage(TFM_Util.implodeStringList(",", commands)); + sender.sendMessage(StringUtils.join(commands, ",")); return true; } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_creative.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_creative.java index 7770e37c..c4a716a5 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_creative.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_creative.java @@ -1,12 +1,12 @@ package me.StevenLawson.TotalFreedomMod.Commands; import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.GameMode; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_creative extends TFM_Command { @Override @@ -21,12 +21,6 @@ public class Command_creative extends TFM_Command } } - if (!sender.isOp()) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - Player p; if (args.length == 0) { diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_csay.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_csay.java index ce978777..b7772fe8 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_csay.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_csay.java @@ -1,35 +1,21 @@ package me.StevenLawson.TotalFreedomMod.Commands; import me.StevenLawson.TotalFreedomMod.TFM_Util; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; +import org.apache.commons.lang.StringUtils; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, ignore_permissions = false) public class Command_csay extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (senderIsConsole) + if (args.length > 0) { - String sender_name = sender.getName(); - - sender_name = sender_name.split("-")[0]; - - StringBuilder outmessage_bldr = new StringBuilder(); - for (int i = 0; i < args.length; i++) - { - outmessage_bldr.append(args[i]).append(" "); - } - - TFM_Util.bcastMsg(String.format("§7[CONSOLE]§f<§c%s§f> %s", sender_name, outmessage_bldr.toString().trim())); + TFM_Util.bcastMsg(String.format("§7[CONSOLE]§f<§c%s§f> %s", sender.getName(), StringUtils.join(args, " "))); } - else - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - } - return true; } } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_deop.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_deop.java index 74c49abe..b854e048 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_deop.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_deop.java @@ -1,26 +1,17 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.OfflinePlayer; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -//This command was coded initially by JeromSar - +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_deop extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (!(TFM_SuperadminList.isUserSuperadmin(sender) || senderIsConsole)) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - if (args.length != 1) { return false; @@ -43,7 +34,7 @@ public class Command_deop extends TFM_Command } TFM_Util.adminAction(sender.getName(), "De-opping " + p.getName(), false); - + p.setOp(false); return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_deopall.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_deopall.java index 1341273b..4cb49692 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_deopall.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_deopall.java @@ -1,30 +1,23 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_deopall extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (TFM_SuperadminList.isUserSuperadmin(sender) || senderIsConsole) - { - TFM_Util.adminAction(sender.getName(), "De-opping all players on the server", true); + TFM_Util.adminAction(sender.getName(), "De-opping all players on the server", true); - for (Player p : server.getOnlinePlayers()) - { - p.setOp(false); - p.sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP); - } - } - else + for (Player p : server.getOnlinePlayers()) { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + p.setOp(false); + p.sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP); } return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_doom.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_doom.java index 7c80c694..01aa5be7 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_doom.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_doom.java @@ -2,24 +2,18 @@ package me.StevenLawson.TotalFreedomMod.Commands; import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, ignore_permissions = false) public class Command_doom extends TFM_Command { @Override public boolean run(final CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (!(senderIsConsole && TFM_SuperadminList.isSeniorAdmin(sender))) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - if (args.length != 1) { return false; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_enchant.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_enchant.java index 8e82d606..61c04d11 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_enchant.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_enchant.java @@ -1,29 +1,17 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.ONLY_IN_GAME, ignore_permissions = false) public class Command_enchant extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (senderIsConsole) - { - sender.sendMessage(TotalFreedomMod.NOT_FROM_CONSOLE); - return true; - } - - if (!sender.isOp()) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - if (args.length < 1) { return false; @@ -78,7 +66,7 @@ public class Command_enchant extends TFM_Command { itemInHand.removeEnchantment(ench); } - + sender.sendMessage("Removed all enchantments."); } else @@ -109,18 +97,18 @@ public class Command_enchant extends TFM_Command if (ench.canEnchantItem(itemInHand)) { itemInHand.addEnchantment(ench, ench.getMaxLevel()); - + sender.sendMessage("Added enchantment: " + ench.getName()); } else { sender.sendMessage("Can't use this enchantment on held item."); - } + } } else if (args[0].equalsIgnoreCase("remove")) { itemInHand.removeEnchantment(ench); - + sender.sendMessage("Removed enchantment: " + ench.getName()); } } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_ender.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_ender.java index b4b869e1..c2ef84e1 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_ender.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_ender.java @@ -5,6 +5,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.ALL, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = true) public class Command_ender extends TFM_Command { @Override diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_expel.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_expel.java index 3759bab4..e8beba98 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_expel.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_expel.java @@ -1,77 +1,65 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.Location; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.util.Vector; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.ONLY_IN_GAME, ignore_permissions = false) public class Command_expel extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (senderIsConsole) + double radius = 50.0; + double strength = 100.0; + + if (args.length >= 1) { - sender.sendMessage(TotalFreedomMod.NOT_FROM_CONSOLE); - } - else if (TFM_SuperadminList.isUserSuperadmin(sender)) - { - double radius = 50.0; - double strength = 100.0; - - if (args.length >= 1) + try { - try - { - radius = Math.max(1.0, Math.min(200.0, Double.parseDouble(args[0]))); - } - catch (NumberFormatException nfex) - { - } + radius = Math.max(1.0, Math.min(200.0, Double.parseDouble(args[0]))); } - - if (args.length >= 2) + catch (NumberFormatException nfex) { - try - { - strength = Math.max(0.0, Math.min(200.0, Double.parseDouble(args[1]))); - } - catch (NumberFormatException nfex) - { - } - } - - Location sender_pos = sender_p.getLocation(); - for (Player p : sender_pos.getWorld().getPlayers()) - { - if (!p.equals(sender_p)) - { - Location target_pos = p.getLocation(); - - boolean in_range = false; - try - { - in_range = target_pos.distanceSquared(sender_pos) < (radius * radius); - } - catch (IllegalArgumentException ex) - { - } - - if (in_range) - { - sender.sendMessage("Pushing " + p.getName()); - Vector expel_direction = target_pos.subtract(sender_pos).toVector().normalize(); - p.setVelocity(expel_direction.multiply(strength)); - } - } } } - else + + if (args.length >= 2) { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + try + { + strength = Math.max(0.0, Math.min(200.0, Double.parseDouble(args[1]))); + } + catch (NumberFormatException nfex) + { + } + } + + Location sender_pos = sender_p.getLocation(); + for (Player p : sender_pos.getWorld().getPlayers()) + { + if (!p.equals(sender_p)) + { + Location target_pos = p.getLocation(); + + boolean in_range = false; + try + { + in_range = target_pos.distanceSquared(sender_pos) < (radius * radius); + } + catch (IllegalArgumentException ex) + { + } + + if (in_range) + { + sender.sendMessage("Pushing " + p.getName()); + Vector expel_direction = target_pos.subtract(sender_pos).toVector().normalize(); + p.setVelocity(expel_direction.multiply(strength)); + } + } } return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_explosives.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_explosives.java index 8b58341c..78ca75cc 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_explosives.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_explosives.java @@ -1,48 +1,41 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_explosives extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)) + if (args.length == 0) { - if (args.length == 0) - { - return false; - } + return false; + } - if (args.length == 2) + if (args.length == 2) + { + try { - try - { - TotalFreedomMod.explosiveRadius = Math.max(1.0, Math.min(30.0, Double.parseDouble(args[1]))); - } - catch (NumberFormatException nfex) - { - } + TotalFreedomMod.explosiveRadius = Math.max(1.0, Math.min(30.0, Double.parseDouble(args[1]))); } + catch (NumberFormatException nfex) + { + } + } - if (args[0].equalsIgnoreCase("on")) - { - TotalFreedomMod.allowExplosions = true; - sender.sendMessage("Explosives are now enabled, radius set to " + TotalFreedomMod.explosiveRadius + " blocks."); - } - else - { - TotalFreedomMod.allowExplosions = false; - sender.sendMessage("Explosives are now disabled."); - } + if (args[0].equalsIgnoreCase("on")) + { + TotalFreedomMod.allowExplosions = true; + sender.sendMessage("Explosives are now enabled, radius set to " + TotalFreedomMod.explosiveRadius + " blocks."); } else { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + TotalFreedomMod.allowExplosions = false; + sender.sendMessage("Explosives are now disabled."); } return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_fireplace.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_fireplace.java index 95c384be..72af02e6 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_fireplace.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_fireplace.java @@ -1,37 +1,30 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_fireplace extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)) + if (args.length != 1) { - if (args.length != 1) - { - return false; - } + return false; + } - if (args[0].equalsIgnoreCase("on")) - { - TotalFreedomMod.allowFirePlace = true; - sender.sendMessage("Fire placement is now enabled."); - } - else - { - TotalFreedomMod.allowFirePlace = false; - sender.sendMessage("Fire placement is now disabled."); - } + if (args[0].equalsIgnoreCase("on")) + { + TotalFreedomMod.allowFirePlace = true; + sender.sendMessage("Fire placement is now enabled."); } else { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + TotalFreedomMod.allowFirePlace = false; + sender.sendMessage("Fire placement is now disabled."); } return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_firespread.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_firespread.java index 011efc5d..ed148790 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_firespread.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_firespread.java @@ -1,37 +1,30 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_firespread extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)) + if (args.length != 1) { - if (args.length != 1) - { - return false; - } + return false; + } - if (args[0].equalsIgnoreCase("on")) - { - TotalFreedomMod.allowFireSpread = true; - sender.sendMessage("Fire spread is now enabled."); - } - else - { - TotalFreedomMod.allowFireSpread = false; - sender.sendMessage("Fire spread is now disabled."); - } + if (args[0].equalsIgnoreCase("on")) + { + TotalFreedomMod.allowFireSpread = true; + sender.sendMessage("Fire spread is now enabled."); } else { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + TotalFreedomMod.allowFireSpread = false; + sender.sendMessage("Fire spread is now disabled."); } return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_flatlands.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_flatlands.java index a9935457..338519cf 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_flatlands.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_flatlands.java @@ -7,6 +7,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.ALL, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = true) public class Command_flatlands extends TFM_Command { @Override diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_fluidspread.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_fluidspread.java index 3ba7e0d7..b26e5725 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_fluidspread.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_fluidspread.java @@ -1,37 +1,30 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_fluidspread extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)) + if (args.length != 1) { - if (args.length != 1) - { - return false; - } + return false; + } - if (args[0].equalsIgnoreCase("on")) - { - TotalFreedomMod.allowFliudSpread = true; - sender.sendMessage("Lava and water spread is now enabled."); - } - else - { - TotalFreedomMod.allowFliudSpread = false; - sender.sendMessage("Lava and water spread is now disabled."); - } + if (args[0].equalsIgnoreCase("on")) + { + TotalFreedomMod.allowFliudSpread = true; + sender.sendMessage("Lava and water spread is now enabled."); } else { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + TotalFreedomMod.allowFliudSpread = false; + sender.sendMessage("Lava and water spread is now disabled."); } return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_fr.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_fr.java index 89b16948..52e5a8bc 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_fr.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_fr.java @@ -1,6 +1,5 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_UserInfo; import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; @@ -9,68 +8,62 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_fr extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)) + if (args.length == 0) { - if (args.length == 0) - { - TotalFreedomMod.allPlayersFrozen = !TotalFreedomMod.allPlayersFrozen; + TotalFreedomMod.allPlayersFrozen = !TotalFreedomMod.allPlayersFrozen; - if (TotalFreedomMod.allPlayersFrozen) - { - TotalFreedomMod.allPlayersFrozen = true; - sender.sendMessage("Players are now frozen."); - TFM_Util.adminAction(sender.getName(), "Freezing all players", false); - } - else - { - TotalFreedomMod.allPlayersFrozen = false; - sender.sendMessage("Players are now free to move."); - TFM_Util.adminAction(sender.getName(), "Unfreezing all players", false); - } + if (TotalFreedomMod.allPlayersFrozen) + { + TotalFreedomMod.allPlayersFrozen = true; + sender.sendMessage("Players are now frozen."); + TFM_Util.adminAction(sender.getName(), "Freezing all players", false); } else { - if (args[0].toLowerCase().equals("purge")) - { - TotalFreedomMod.allPlayersFrozen = false; - - for (Player p : server.getOnlinePlayers()) - { - TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p); - playerdata.setFrozen(false); - } - - TFM_Util.adminAction(sender.getName(), "Lifting all global and player freezes", false); - } - else - { - Player p; - try - { - p = getPlayer(args[0]); - } - catch (CantFindPlayerException ex) - { - sender.sendMessage(ex.getMessage()); - return true; - } - - TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p); - playerdata.setFrozen(!playerdata.isFrozen()); - - sender.sendMessage(ChatColor.AQUA + p.getName() + " has been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + "."); - p.sendMessage(ChatColor.AQUA + "You have been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + "."); - } + TotalFreedomMod.allPlayersFrozen = false; + sender.sendMessage("Players are now free to move."); + TFM_Util.adminAction(sender.getName(), "Unfreezing all players", false); } } else { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + if (args[0].toLowerCase().equals("purge")) + { + TotalFreedomMod.allPlayersFrozen = false; + + for (Player p : server.getOnlinePlayers()) + { + TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p); + playerdata.setFrozen(false); + } + + TFM_Util.adminAction(sender.getName(), "Lifting all global and player freezes", false); + } + else + { + Player p; + try + { + p = getPlayer(args[0]); + } + catch (CantFindPlayerException ex) + { + sender.sendMessage(ex.getMessage()); + return true; + } + + TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p); + playerdata.setFrozen(!playerdata.isFrozen()); + + sender.sendMessage(ChatColor.AQUA + p.getName() + " has been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + "."); + p.sendMessage(ChatColor.AQUA + "You have been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + "."); + } } return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gadmin.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gadmin.java index d94c57b9..499d680f 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gadmin.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gadmin.java @@ -1,6 +1,5 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_UserInfo; import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; @@ -9,6 +8,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_gadmin extends TFM_Command { @Override @@ -21,101 +21,90 @@ public class Command_gadmin extends TFM_Command String mode = args[0].toLowerCase(); - if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)) + if (mode.equals("list")) { + sender.sendMessage(ChatColor.GRAY + "[ Real Name ] : [ Display Name ] - Hash:"); + } + + for (Player p : server.getOnlinePlayers()) + { + String hash = p.getUniqueId().toString().substring(0, 4); if (mode.equals("list")) { - sender.sendMessage(ChatColor.GRAY + "[ Real Name ] : [ Display Name ] - Hash:"); + sender.sendMessage(ChatColor.GRAY + String.format("[ %s ] : [ %s ] - %s", + p.getName(), + ChatColor.stripColor(p.getDisplayName()), + hash)); } - - for (Player p : server.getOnlinePlayers()) + else if (hash.equalsIgnoreCase(args[1])) { - String hash = p.getUniqueId().toString().substring(0, 4); - if (mode.equals("list")) + if (mode.equals("kick")) { - sender.sendMessage(ChatColor.GRAY + String.format("[ %s ] : [ %s ] - %s", - p.getName(), - ChatColor.stripColor(p.getDisplayName()), - hash)); + p.kickPlayer("Kicked by Administrator"); } - else if (hash.equalsIgnoreCase(args[1])) + else if (mode.equals("nameban")) { - if (mode.equals("kick")) - { - p.kickPlayer("Kicked by Administrator"); - } - else if (mode.equals("nameban")) - { - //server.getOfflinePlayer(p.getName()).setBanned(true); - TFM_Util.banUsername(p.getName(), null, null, null); - TFM_Util.bcastMsg(String.format("Banning Name: %s.", p.getName()), ChatColor.RED); - p.kickPlayer("Username banned by Administrator."); - } - else if (mode.equals("ipban")) - { - String user_ip = p.getAddress().getAddress().getHostAddress(); - String[] ip_parts = user_ip.split("\\."); - if (ip_parts.length == 4) - { - user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]); - } - TFM_Util.bcastMsg(String.format("Banning IP: %s.", p.getName(), user_ip), ChatColor.RED); - //server.banIP(user_ip); - TFM_Util.banIP(user_ip, null, null, null); - p.kickPlayer("IP address banned by Administrator."); - } - else if (mode.equals("ban")) - { - String user_ip = p.getAddress().getAddress().getHostAddress(); - String[] ip_parts = user_ip.split("\\."); - if (ip_parts.length == 4) - { - user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]); - } - TFM_Util.bcastMsg(String.format("Banning Name: %s, IP: %s.", p.getName(), user_ip), ChatColor.RED); - //server.banIP(user_ip); - //server.getOfflinePlayer(p.getName()).setBanned(true); - TFM_Util.banIP(user_ip, null, null, null); - TFM_Util.banUsername(p.getName(), null, null, null); - p.kickPlayer("IP and username banned by Administrator."); - } - else if (mode.equals("op")) - { - TFM_Util.bcastMsg(String.format("(%s: Opping %s)", sender.getName(), p.getName()), ChatColor.GRAY); - p.setOp(false); - p.sendMessage(TotalFreedomMod.YOU_ARE_OP); - } - else if (mode.equals("deop")) - { - TFM_Util.bcastMsg(String.format("(%s: De-opping %s)", sender.getName(), p.getName()), ChatColor.GRAY); - p.setOp(false); - p.sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP); - } - else if (mode.equals("ci")) - { - p.getInventory().clear(); - } - else if (mode.equals("fr")) - { - TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p); - playerdata.setFrozen(!playerdata.isFrozen()); - - sender.sendMessage(ChatColor.AQUA + p.getName() + " has been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + "."); - p.sendMessage(ChatColor.AQUA + "You have been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + "."); - } - - return true; + TFM_Util.banUsername(p.getName(), null, null, null); + TFM_Util.bcastMsg(String.format("Banning Name: %s.", p.getName()), ChatColor.RED); + p.kickPlayer("Username banned by Administrator."); } - } + else if (mode.equals("ipban")) + { + String user_ip = p.getAddress().getAddress().getHostAddress(); + String[] ip_parts = user_ip.split("\\."); + if (ip_parts.length == 4) + { + user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]); + } + TFM_Util.bcastMsg(String.format("Banning IP: %s.", p.getName(), user_ip), ChatColor.RED); + TFM_Util.banIP(user_ip, null, null, null); + p.kickPlayer("IP address banned by Administrator."); + } + else if (mode.equals("ban")) + { + String user_ip = p.getAddress().getAddress().getHostAddress(); + String[] ip_parts = user_ip.split("\\."); + if (ip_parts.length == 4) + { + user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]); + } + TFM_Util.bcastMsg(String.format("Banning Name: %s, IP: %s.", p.getName(), user_ip), ChatColor.RED); + TFM_Util.banIP(user_ip, null, null, null); + TFM_Util.banUsername(p.getName(), null, null, null); + p.kickPlayer("IP and username banned by Administrator."); + } + else if (mode.equals("op")) + { + TFM_Util.bcastMsg(String.format("(%s: Opping %s)", sender.getName(), p.getName()), ChatColor.GRAY); + p.setOp(false); + p.sendMessage(TotalFreedomMod.YOU_ARE_OP); + } + else if (mode.equals("deop")) + { + TFM_Util.bcastMsg(String.format("(%s: De-opping %s)", sender.getName(), p.getName()), ChatColor.GRAY); + p.setOp(false); + p.sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP); + } + else if (mode.equals("ci")) + { + p.getInventory().clear(); + } + else if (mode.equals("fr")) + { + TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p); + playerdata.setFrozen(!playerdata.isFrozen()); - if (!mode.equals("list")) - { - sender.sendMessage(ChatColor.RED + "Invalid hash."); + sender.sendMessage(ChatColor.AQUA + p.getName() + " has been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + "."); + p.sendMessage(ChatColor.AQUA + "You have been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + "."); + } + + return true; } } - else + + if (!mode.equals("list")) { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + sender.sendMessage(ChatColor.RED + "Invalid hash."); } return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gcmd.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gcmd.java index b073d3dd..833e538f 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gcmd.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gcmd.java @@ -1,71 +1,63 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_gcmd extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)) + if (args.length < 2) { - if (args.length < 2) - { - return false; - } + return false; + } - Player p; - try - { - p = getPlayer(args[0]); - } - catch (CantFindPlayerException ex) - { - sender.sendMessage(ex.getMessage()); - return true; - } + Player p; + try + { + p = getPlayer(args[0]); + } + catch (CantFindPlayerException ex) + { + sender.sendMessage(ex.getMessage()); + return true; + } - String outcommand = ""; - try + String outcommand = ""; + try + { + StringBuilder outcommand_bldr = new StringBuilder(); + for (int i = 1; i < args.length; i++) { - StringBuilder outcommand_bldr = new StringBuilder(); - for (int i = 1; i < args.length; i++) - { - outcommand_bldr.append(args[i]).append(" "); - } - outcommand = outcommand_bldr.toString().trim(); - } - catch (Throwable ex) - { - sender.sendMessage(ChatColor.GRAY + "Error building command: " + ex.getMessage()); - return true; + outcommand_bldr.append(args[i]).append(" "); } + outcommand = outcommand_bldr.toString().trim(); + } + catch (Throwable ex) + { + sender.sendMessage(ChatColor.GRAY + "Error building command: " + ex.getMessage()); + return true; + } - try + try + { + sender.sendMessage(ChatColor.GRAY + "Sending command as " + p.getName() + ": " + outcommand); + if (server.dispatchCommand(p, outcommand)) { - sender.sendMessage(ChatColor.GRAY + "Sending command as " + p.getName() + ": " + outcommand); - if (server.dispatchCommand(p, outcommand)) - { - sender.sendMessage(ChatColor.GRAY + "Command sent."); - } - else - { - sender.sendMessage(ChatColor.GRAY + "Unknown error sending command."); - } + sender.sendMessage(ChatColor.GRAY + "Command sent."); } - catch (Throwable ex) + else { - sender.sendMessage(ChatColor.GRAY + "Error sending command: " + ex.getMessage()); + sender.sendMessage(ChatColor.GRAY + "Unknown error sending command."); } } - else + catch (Throwable ex) { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + sender.sendMessage(ChatColor.GRAY + "Error sending command: " + ex.getMessage()); } return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_glist.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_glist.java index ec1db969..dc3b45bd 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_glist.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_glist.java @@ -2,15 +2,15 @@ package me.StevenLawson.TotalFreedomMod.Commands; import java.util.ArrayList; import java.util.List; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_UserList; import me.StevenLawson.TotalFreedomMod.TFM_UserList.TFM_UserListEntry; import me.StevenLawson.TotalFreedomMod.TFM_Util; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; +import org.apache.commons.lang.StringUtils; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_glist extends TFM_Command { @Override @@ -21,97 +21,90 @@ public class Command_glist extends TFM_Command return false; } - if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)) + if (args.length == 1) { - if (args.length == 1) + if (args[0].equalsIgnoreCase("purge")) { - if (args[0].equalsIgnoreCase("purge")) - { - //Purge does not clear the banlist! This is not for clearing bans! This is for clearing the yaml file that stores the player/IP database! - TFM_UserList.getInstance(plugin).purge(); - return true; - } - else - { - return false; - } + //Purge does not clear the banlist! This is not for clearing bans! This is for clearing the yaml file that stores the player/IP database! + TFM_UserList.getInstance(plugin).purge(); + return true; } - else if (args.length != 2) + else { return false; } + } + else if (args.length != 2) + { + return false; + } - String username; - List ip_addresses = new ArrayList(); + String username; + List ip_addresses = new ArrayList(); - try + try + { + Player p = getPlayer(args[1]); + + username = p.getName(); + ip_addresses.add(p.getAddress().getAddress().getHostAddress()); + } + catch (CantFindPlayerException ex) + { + TFM_UserListEntry entry = TFM_UserList.getInstance(plugin).getEntry(args[1]); + + if (entry == null) { - Player p = getPlayer(args[1]); - - username = p.getName(); - ip_addresses.add(p.getAddress().getAddress().getHostAddress()); - } - catch (CantFindPlayerException ex) - { - TFM_UserListEntry entry = TFM_UserList.getInstance(plugin).getEntry(args[1]); - - if (entry == null) - { - sender.sendMessage("Can't find that user. If target is not logged in, make sure that you spelled the name exactly."); - return true; - } - - username = entry.getUsername(); - ip_addresses = entry.getIpAddresses(); + sender.sendMessage("Can't find that user. If target is not logged in, make sure that you spelled the name exactly."); + return true; } - String mode = args[0].toLowerCase(); - if (mode.equalsIgnoreCase("ban")) + username = entry.getUsername(); + ip_addresses = entry.getIpAddresses(); + } + + String mode = args[0].toLowerCase(); + if (mode.equalsIgnoreCase("ban")) + { + TFM_Util.adminAction(sender.getName(), "Banning " + username + " and IPs: " + StringUtils.join(ip_addresses, ","), true); + + Player p = server.getPlayerExact(username); + if (p != null) { - TFM_Util.adminAction(sender.getName(), "Banning " + username + " and IPs: " + TFM_Util.implodeStringList(",", ip_addresses), true); - - Player p = server.getPlayerExact(username); - if (p != null) - { - //p.setBanned(true); - TFM_Util.banUsername(p.getName(), null, null, null); - p.kickPlayer("IP and username banned by Administrator."); - } - else - { - //server.getOfflinePlayer(username).setBanned(true); - TFM_Util.banUsername(username, null, null, null); - } - - for (String ip_address : ip_addresses) - { - //server.banIP(ip_address); - TFM_Util.banIP(ip_address, null, null, null); - String[] ip_address_parts = ip_address.split("\\."); - //server.banIP(ip_address_parts[0] + "." + ip_address_parts[1] + ".*.*"); - TFM_Util.banIP(ip_address_parts[0] + "." + ip_address_parts[1] + ".*.*", null, null, null); - } + //p.setBanned(true); + TFM_Util.banUsername(p.getName(), null, null, null); + p.kickPlayer("IP and username banned by Administrator."); } - else if (mode.equalsIgnoreCase("unban")) + else { - TFM_Util.adminAction(sender.getName(), "Unbanning " + username + " and IPs: " + TFM_Util.implodeStringList(",", ip_addresses), true); + //server.getOfflinePlayer(username).setBanned(true); + TFM_Util.banUsername(username, null, null, null); + } - //server.getOfflinePlayer(username).setBanned(false); - TFM_Util.unbanUsername(username); - - for (String ip_address : ip_addresses) - { - //server.unbanIP(ip_address); - TFM_Util.unbanIP(ip_address); - String[] ip_address_parts = ip_address.split("\\."); - //server.unbanIP(ip_address_parts[0] + "." + ip_address_parts[1] + ".*.*"); - TFM_Util.unbanIP(ip_address_parts[0] + "." + ip_address_parts[1] + ".*.*"); - } + for (String ip_address : ip_addresses) + { + //server.banIP(ip_address); + TFM_Util.banIP(ip_address, null, null, null); + String[] ip_address_parts = ip_address.split("\\."); + //server.banIP(ip_address_parts[0] + "." + ip_address_parts[1] + ".*.*"); + TFM_Util.banIP(ip_address_parts[0] + "." + ip_address_parts[1] + ".*.*", null, null, null); } } - else + else if (mode.equalsIgnoreCase("unban")) { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + TFM_Util.adminAction(sender.getName(), "Unbanning " + username + " and IPs: " + StringUtils.join(ip_addresses, ","), true); + + //server.getOfflinePlayer(username).setBanned(false); + TFM_Util.unbanUsername(username); + + for (String ip_address : ip_addresses) + { + //server.unbanIP(ip_address); + TFM_Util.unbanIP(ip_address); + String[] ip_address_parts = ip_address.split("\\."); + //server.unbanIP(ip_address_parts[0] + "." + ip_address_parts[1] + ".*.*"); + TFM_Util.unbanIP(ip_address_parts[0] + "." + ip_address_parts[1] + ".*.*"); + } } return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gtfo.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gtfo.java index 95e4e6eb..bdf9785e 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gtfo.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_gtfo.java @@ -1,8 +1,6 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Location; @@ -10,6 +8,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_gtfo extends TFM_Command { @Override @@ -20,74 +19,66 @@ public class Command_gtfo extends TFM_Command return false; } - if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)) + Player p; + try { - Player p; - try - { - p = getPlayer(args[0]); - } - catch (CantFindPlayerException ex) - { - sender.sendMessage(ex.getMessage()); - return true; - } + p = getPlayer(args[0]); + } + catch (CantFindPlayerException ex) + { + sender.sendMessage(ex.getMessage()); + return true; + } - TFM_Util.bcastMsg(p.getName() + " has been a VERY naughty, naughty boy.", ChatColor.RED); + TFM_Util.bcastMsg(p.getName() + " has been a VERY naughty, naughty boy.", ChatColor.RED); - //Undo WorldEdits: - if (senderIsConsole) - { - } - else - { - server.dispatchCommand(sender, String.format("/undo %d %s", 15, p.getName())); - } - - // deop - p.setOp(false); - - // set gamemode to survival: - p.setGameMode(GameMode.SURVIVAL); - - // clear inventory: - p.getInventory().clear(); - - // strike with lightning effect: - final Location target_pos = p.getLocation(); - for (int x = -1; x <= 1; x++) - { - for (int z = -1; z <= 1; z++) - { - final Location strike_pos = new Location(target_pos.getWorld(), target_pos.getBlockX() + x, target_pos.getBlockY(), target_pos.getBlockZ() + z); - target_pos.getWorld().strikeLightning(strike_pos); - } - } - - // ban IP address: - String user_ip = p.getAddress().getAddress().getHostAddress(); - String[] ip_parts = user_ip.split("\\."); - if (ip_parts.length == 4) - { - user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]); - } - TFM_Util.bcastMsg(String.format("Banning: %s, IP: %s.", p.getName(), user_ip), ChatColor.RED); - //server.banIP(user_ip); - TFM_Util.banIP(user_ip, null, null, null); - - // ban username: - // server.getOfflinePlayer(p.getName()).setBanned(true); - TFM_Util.banUsername(p.getName(), null, null, null); - - // kick Player: - p.kickPlayer("GTFO"); + //Undo WorldEdits: + if (senderIsConsole) + { } else { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + server.dispatchCommand(sender, String.format("/undo %d %s", 15, p.getName())); } - return true; + // deop + p.setOp(false); + // set gamemode to survival: + p.setGameMode(GameMode.SURVIVAL); + + // clear inventory: + p.getInventory().clear(); + + // strike with lightning effect: + final Location target_pos = p.getLocation(); + for (int x = -1; x <= 1; x++) + { + for (int z = -1; z <= 1; z++) + { + final Location strike_pos = new Location(target_pos.getWorld(), target_pos.getBlockX() + x, target_pos.getBlockY(), target_pos.getBlockZ() + z); + target_pos.getWorld().strikeLightning(strike_pos); + } + } + + // ban IP address: + String user_ip = p.getAddress().getAddress().getHostAddress(); + String[] ip_parts = user_ip.split("\\."); + if (ip_parts.length == 4) + { + user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]); + } + TFM_Util.bcastMsg(String.format("Banning: %s, IP: %s.", p.getName(), user_ip), ChatColor.RED); + //server.banIP(user_ip); + TFM_Util.banIP(user_ip, null, null, null); + + // ban username: + // server.getOfflinePlayer(p.getName()).setBanned(true); + TFM_Util.banUsername(p.getName(), null, null, null); + + // kick Player: + p.kickPlayer("GTFO"); + + return true; } } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_halt.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_halt.java index c420fe8d..c1917407 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_halt.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_halt.java @@ -3,23 +3,17 @@ package me.StevenLawson.TotalFreedomMod.Commands; import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_UserInfo; import me.StevenLawson.TotalFreedomMod.TFM_Util; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.GameMode; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_halt extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (!(TFM_SuperadminList.isUserSuperadmin(sender) || senderIsConsole)) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - if (args.length != 1) { return false; @@ -107,7 +101,7 @@ public class Command_halt extends TFM_Command } } - private void setHalted(Player p, boolean is_halted) + private static void setHalted(Player p, boolean is_halted) { TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p); diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_kicknoob.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_kicknoob.java index 5ebcb389..95e06bba 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_kicknoob.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_kicknoob.java @@ -2,24 +2,18 @@ package me.StevenLawson.TotalFreedomMod.Commands; import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; -import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.BOTH, block_web_console = true, ignore_permissions = false) public class Command_kicknoob extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (!senderIsConsole || TFM_Util.isFromClanforge(sender.getName())) - { - sender.sendMessage(ChatColor.GRAY + "This command may only be used from the Telnet or BukkitHttpd console."); - return true; - } - TFM_Util.adminAction(sender.getName(), "Disconnecting all non-superadmins.", true); - + for (Player p : server.getOnlinePlayers()) { if (!TFM_SuperadminList.isUserSuperadmin(p)) @@ -27,7 +21,7 @@ public class Command_kicknoob extends TFM_Command p.kickPlayer("Disconnected by admin."); } } - + return true; } } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_landmine.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_landmine.java index 414e5281..d3a3c597 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_landmine.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_landmine.java @@ -10,16 +10,13 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.ONLY_IN_GAME, ignore_permissions = false) public class Command_landmine extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (senderIsConsole) - { - sender.sendMessage(TotalFreedomMod.NOT_FROM_CONSOLE); - } - else if (!TotalFreedomMod.landminesEnabled) + if (!TotalFreedomMod.landminesEnabled) { sender.sendMessage(ChatColor.GREEN + "The landmine is currently disabled."); } @@ -40,17 +37,13 @@ public class Command_landmine extends TFM_Command { } } - + 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)); - + sender.sendMessage(ChatColor.GREEN + "Landmine planted. Radius: " + radius + " blocks."); } - else - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - } return true; } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_lavadmg.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_lavadmg.java index d2bbd918..45719b55 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_lavadmg.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_lavadmg.java @@ -1,37 +1,30 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_lavadmg extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)) + if (args.length != 1) { - if (args.length != 1) - { - return false; - } + return false; + } - if (args[0].equalsIgnoreCase("on")) - { - TotalFreedomMod.allowLavaDamage = true; - sender.sendMessage("Lava damage is now enabled."); - } - else - { - TotalFreedomMod.allowLavaDamage = false; - sender.sendMessage("Lava damage is now disabled."); - } + if (args[0].equalsIgnoreCase("on")) + { + TotalFreedomMod.allowLavaDamage = true; + sender.sendMessage("Lava damage is now enabled."); } else { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + TotalFreedomMod.allowLavaDamage = false; + sender.sendMessage("Lava damage is now disabled."); } return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_lavaplace.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_lavaplace.java index 9d5b7425..59c07ccf 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_lavaplace.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_lavaplace.java @@ -1,37 +1,30 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_lavaplace extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)) + if (args.length != 1) { - if (args.length != 1) - { - return false; - } + return false; + } - if (args[0].equalsIgnoreCase("on")) - { - TotalFreedomMod.allowLavaPlace = true; - sender.sendMessage("Lava placement is now enabled."); - } - else - { - TotalFreedomMod.allowLavaPlace = false; - sender.sendMessage("Lava placement is now disabled."); - } + if (args[0].equalsIgnoreCase("on")) + { + TotalFreedomMod.allowLavaPlace = true; + sender.sendMessage("Lava placement is now enabled."); } else { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + TotalFreedomMod.allowLavaPlace = false; + sender.sendMessage("Lava placement is now disabled."); } return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_list.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_list.java index 671d6470..0677f6c8 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_list.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_list.java @@ -10,6 +10,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.ALL, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = true) public class Command_list extends TFM_Command { @Override diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_lockup.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_lockup.java index 0bf2b829..71b435e7 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_lockup.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_lockup.java @@ -1,27 +1,20 @@ package me.StevenLawson.TotalFreedomMod.Commands; import java.util.Random; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_UserInfo; import me.StevenLawson.TotalFreedomMod.TFM_Util; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.Location; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitScheduler; +@CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, block_web_console = true, ignore_permissions = false) public class Command_lockup extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (!(senderIsConsole && TFM_SuperadminList.isSeniorAdmin(sender))) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - if (args.length == 1) { if (args[0].equalsIgnoreCase("all")) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_moblimiter.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_moblimiter.java index 45e6d22f..67386b92 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_moblimiter.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_moblimiter.java @@ -1,23 +1,16 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; -import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, ignore_permissions = false) public class Command_moblimiter extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (!senderIsConsole || TFM_Util.isFromClanforge(sender.getName())) - { - sender.sendMessage(ChatColor.GRAY + "This command may only be used from the Telnet or BukkitHttpd console."); - return true; - } - if (args.length < 1) { return false; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_mp.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_mp.java index 4240a643..302c4822 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_mp.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_mp.java @@ -1,40 +1,33 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.ChatColor; import org.bukkit.World; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.*; +@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_mp extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (senderIsConsole || sender.isOp()) - { - sender.sendMessage(ChatColor.GRAY + "Purging all mobs..."); + sender.sendMessage(ChatColor.GRAY + "Purging all mobs..."); - int removed = 0; - for (World world : server.getWorlds()) + int removed = 0; + for (World world : server.getWorlds()) + { + for (Entity ent : world.getLivingEntities()) { - for (Entity ent : world.getLivingEntities()) + if (ent instanceof Creature || ent instanceof Ghast || ent instanceof Slime || ent instanceof EnderDragon || ent instanceof Ambient) { - if (ent instanceof Creature || ent instanceof Ghast || ent instanceof Slime || ent instanceof EnderDragon || ent instanceof Ambient) - { - ent.remove(); - removed++; - } + ent.remove(); + removed++; } } + } - sender.sendMessage(ChatColor.GRAY + String.valueOf(removed) + " mobs removed."); - } - else - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - } + sender.sendMessage(ChatColor.GRAY + String.valueOf(removed) + " mobs removed."); return true; } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_mp44.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_mp44.java index ac548ade..29738c6f 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_mp44.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_mp44.java @@ -9,47 +9,39 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.ONLY_IN_GAME, ignore_permissions = false) public class Command_mp44 extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (senderIsConsole) - { - sender.sendMessage(TotalFreedomMod.NOT_FROM_CONSOLE); - } - else if (!TotalFreedomMod.mp44Enabled) + if (!TotalFreedomMod.mp44Enabled) { sender.sendMessage(ChatColor.GREEN + "The mp44 is currently disabled."); + return true; } - else if (sender.isOp()) + + if (args.length == 0) { - if (args.length == 0) - { - return false; - } + return false; + } - TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(sender_p); + TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(sender_p); - if (args[0].equalsIgnoreCase("draw")) - { - playerdata.armMP44(); - - sender.sendMessage(ChatColor.GREEN + "mp44 is ARMED! Left click with gunpowder to start firing, left click again to quit."); - sender.sendMessage(ChatColor.GREEN + "Type /mp44 sling to disable. -by Madgeek1450"); - - sender_p.setItemInHand(new ItemStack(Material.SULPHUR, 1)); - } - else - { - playerdata.disarmMP44(); - - sender.sendMessage(ChatColor.GREEN + "mp44 Disarmed."); - } + if (args[0].equalsIgnoreCase("draw")) + { + playerdata.armMP44(); + + sender.sendMessage(ChatColor.GREEN + "mp44 is ARMED! Left click with gunpowder to start firing, left click again to quit."); + sender.sendMessage(ChatColor.GREEN + "Type /mp44 sling to disable. -by Madgeek1450"); + + sender_p.setItemInHand(new ItemStack(Material.SULPHUR, 1)); } else { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + playerdata.disarmMP44(); + + sender.sendMessage(ChatColor.GREEN + "mp44 Disarmed."); } return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_nether.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_nether.java index 037be2a0..e4d3d5a9 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_nether.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_nether.java @@ -5,6 +5,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.ALL, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = true) public class Command_nether extends TFM_Command { @Override diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_nonuke.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_nonuke.java index ff096a22..cf2cd481 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_nonuke.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_nonuke.java @@ -1,23 +1,17 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, block_web_console = true, ignore_permissions = false) public class Command_nonuke extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (!senderIsConsole || TFM_Util.isFromClanforge(sender.getName())) - { - sender.sendMessage(ChatColor.GRAY + "This command may only be used from the Telnet or BukkitHttpd console."); - return true; - } - if (args.length < 1) { return false; @@ -57,7 +51,7 @@ public class Command_nonuke extends TFM_Command TotalFreedomMod.nukeMonitor = false; sender.sendMessage("Nuke monitor is disabled."); } - + return true; } } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_onlinemode.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_onlinemode.java index 932cae78..639ba39f 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_onlinemode.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_onlinemode.java @@ -2,24 +2,18 @@ package me.StevenLawson.TotalFreedomMod.Commands; import me.StevenLawson.TotalFreedomMod.TFM_Log; import me.StevenLawson.TotalFreedomMod.TFM_Util; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import net.minecraft.server.MinecraftServer; import net.minecraft.server.PropertyManager; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, block_web_console = true, ignore_permissions = false) public class Command_onlinemode extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (!senderIsConsole) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - if (args.length < 1) { sender.sendMessage("Server is currently running with 'online-mode=" + (server.getOnlineMode() ? "true" : "false") + "'."); diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_op.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_op.java index 722bcc85..50a57f26 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_op.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_op.java @@ -2,26 +2,18 @@ package me.StevenLawson.TotalFreedomMod.Commands; import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.ChatColor; import org.bukkit.OfflinePlayer; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -//This command was coded initially by JeromSar - +@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_op extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (!sender.isOp()) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - if (args.length != 1) { return false; @@ -54,7 +46,6 @@ public class Command_op extends TFM_Command TFM_Util.playerMsg(sender, "That player is not online."); TFM_Util.playerMsg(sender, "You don't have permissions to OP offline players.", ChatColor.YELLOW); return true; - } } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_opall.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_opall.java index 4ffd23b9..5aadbf32 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_opall.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_opall.java @@ -1,6 +1,5 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.GameMode; @@ -8,45 +7,39 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_opall extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (TFM_SuperadminList.isUserSuperadmin(sender) || senderIsConsole) + TFM_Util.adminAction(sender.getName(), "Opping all players on the server", false); + + boolean doSetGamemode = false; + GameMode targetGamemode = GameMode.CREATIVE; + if (args.length != 0) { - TFM_Util.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")) { - if (args[0].equals("-c")) - { - doSetGamemode = true; - targetGamemode = GameMode.CREATIVE; - } - else if (args[0].equals("-s")) - { - doSetGamemode = true; - targetGamemode = GameMode.SURVIVAL; - } + doSetGamemode = true; + targetGamemode = GameMode.CREATIVE; } - - for (Player p : server.getOnlinePlayers()) + else if (args[0].equals("-s")) { - p.setOp(true); - p.sendMessage(TotalFreedomMod.YOU_ARE_OP); - - if (doSetGamemode) - { - p.setGameMode(targetGamemode); - } + doSetGamemode = true; + targetGamemode = GameMode.SURVIVAL; } } - else + + for (Player p : server.getOnlinePlayers()) { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + p.setOp(true); + p.sendMessage(TotalFreedomMod.YOU_ARE_OP); + + if (doSetGamemode) + { + p.setGameMode(targetGamemode); + } } return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_opme.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_opme.java index b8d231fb..d50b0e52 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_opme.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_opme.java @@ -1,32 +1,21 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.ONLY_IN_GAME, ignore_permissions = false) public class Command_opme extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (senderIsConsole) - { - sender.sendMessage(TotalFreedomMod.NOT_FROM_CONSOLE); - } - else if (TFM_SuperadminList.isUserSuperadmin(sender)) - { - TFM_Util.adminAction(sender.getName(), "Opping " + sender.getName(), false); - sender.setOp(true); - sender.sendMessage(TotalFreedomMod.YOU_ARE_OP); - } - else - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - } - + TFM_Util.adminAction(sender.getName(), "Opping " + sender.getName(), false); + sender.setOp(true); + sender.sendMessage(TotalFreedomMod.YOU_ARE_OP); + return true; } } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_ops.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_ops.java index 73044e07..66fcdfdc 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_ops.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_ops.java @@ -8,17 +8,12 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_ops extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (!(senderIsConsole || sender.isOp())) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - if (args.length < 1 || args.length > 1) { return false; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_orbit.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_orbit.java index f7139193..40ef23af 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_orbit.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_orbit.java @@ -1,9 +1,7 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_UserInfo; import me.StevenLawson.TotalFreedomMod.TFM_Util; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.command.Command; @@ -11,63 +9,57 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.util.Vector; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_orbit extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)) + if (args.length == 0) { - if (args.length == 0) - { - return false; - } + return false; + } - Player p; - try + Player p; + try + { + p = getPlayer(args[0]); + } + catch (CantFindPlayerException ex) + { + sender.sendMessage(ex.getMessage()); + return true; + } + + TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p); + + double strength = 10.0; + + if (args.length >= 2) + { + if (TFM_Util.isStopCommand(args[1])) { - p = getPlayer(args[0]); - } - catch (CantFindPlayerException ex) - { - sender.sendMessage(ex.getMessage()); + sender.sendMessage(ChatColor.GRAY + "Stopped orbiting " + p.getName()); + playerdata.stopOrbiting(); return true; } - TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p); - - double strength = 10.0; - - if (args.length >= 2) + try + { + strength = Math.max(1.0, Math.min(150.0, Double.parseDouble(args[1]))); + } + catch (NumberFormatException nfex) { - if (TFM_Util.isStopCommand(args[1])) - { - sender.sendMessage(ChatColor.GRAY + "Stopped orbiting " + p.getName()); - playerdata.stopOrbiting(); - return true; - } - - try - { - strength = Math.max(1.0, Math.min(150.0, Double.parseDouble(args[1]))); - } - catch (NumberFormatException nfex) - { - } } - - p.setGameMode(GameMode.SURVIVAL); - playerdata.startOrbiting(strength); - - p.setVelocity(new Vector(0, strength, 0)); - - sender.sendMessage(ChatColor.GRAY + "Orbiting " + p.getName()); - } - else - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); } + p.setGameMode(GameMode.SURVIVAL); + playerdata.startOrbiting(strength); + + p.setVelocity(new Vector(0, strength, 0)); + + sender.sendMessage(ChatColor.GRAY + "Orbiting " + p.getName()); + return true; } } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_permban.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_permban.java index 5039397b..4fa56b33 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_permban.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_permban.java @@ -7,17 +7,12 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, block_web_console = true, ignore_permissions = false) public class Command_permban extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (!sender.isOp()) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - if (args.length != 1) { return false; @@ -26,24 +21,19 @@ public class Command_permban extends TFM_Command if (args[0].equalsIgnoreCase("list")) { dumplist(sender); - return true; } - - if (!senderIsConsole) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - - if (args[0].equalsIgnoreCase("reload")) + else if (args[0].equalsIgnoreCase("reload")) { TFM_Util.playerMsg(sender, "Reloading permban list...", ChatColor.RED); plugin.loadPermbanConfig(); dumplist(sender); - return true; + } + else + { + return false; } - return false; + return true; } private void dumplist(CommandSender sender) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_potion.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_potion.java index 6d19d0da..85a8f0af 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_potion.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_potion.java @@ -3,7 +3,6 @@ package me.StevenLawson.TotalFreedomMod.Commands; import java.util.ArrayList; import java.util.List; import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.apache.commons.lang.StringUtils; import org.bukkit.ChatColor; import org.bukkit.command.Command; @@ -12,17 +11,12 @@ import org.bukkit.entity.Player; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; +@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_potion extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (!sender.isOp()) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - if (args.length == 1 || args.length == 2) { if (args[0].equalsIgnoreCase("list")) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_prelog.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_prelog.java index 6f581c5d..048dfae9 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_prelog.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_prelog.java @@ -1,37 +1,30 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, block_web_console = true, ignore_permissions = false) public class Command_prelog extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)) + if (args.length != 1) { - if (args.length != 1) - { - return false; - } + return false; + } - if (args[0].equalsIgnoreCase("on")) - { - TotalFreedomMod.preprocessLogEnabled = true; - sender.sendMessage("Command preprocess logging is now enabled. This will be spammy in the log."); - } - else - { - TotalFreedomMod.preprocessLogEnabled = false; - sender.sendMessage("Command preprocess logging is now disabled."); - } + if (args[0].equalsIgnoreCase("on")) + { + TotalFreedomMod.preprocessLogEnabled = true; + sender.sendMessage("Command preprocess logging is now enabled. This will be spammy in the log."); } else { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + TotalFreedomMod.preprocessLogEnabled = false; + sender.sendMessage("Command preprocess logging is now disabled."); } return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_protectarea.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_protectarea.java index 558dc91c..7474f114 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_protectarea.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_protectarea.java @@ -1,24 +1,18 @@ package me.StevenLawson.TotalFreedomMod.Commands; import me.StevenLawson.TotalFreedomMod.TFM_ProtectedArea; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.apache.commons.lang.StringUtils; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_protectarea extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (!TFM_SuperadminList.isUserSuperadmin(sender)) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - if (!TotalFreedomMod.protectedAreasEnabled) { sender.sendMessage("Protected areas are currently disabled in the TotalFreedomMod configuration."); @@ -34,7 +28,7 @@ public class Command_protectarea extends TFM_Command else if (args[0].equalsIgnoreCase("clear")) { TFM_ProtectedArea.clearProtectedAreas(); - + sender.sendMessage("Protected Areas Cleared."); } else @@ -97,7 +91,9 @@ public class Command_protectarea extends TFM_Command return true; } - - return false; + else + { + return false; + } } } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_qdeop.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_qdeop.java index be6c71d6..f794caf4 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_qdeop.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_qdeop.java @@ -1,12 +1,12 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_qdeop extends TFM_Command { @Override @@ -17,12 +17,6 @@ public class Command_qdeop extends TFM_Command return false; } - if (!(senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - boolean silent = false; if (args.length == 2) { diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_qop.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_qop.java index f9272a0f..7dc01ca5 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_qop.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_qop.java @@ -1,12 +1,12 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_qop extends TFM_Command { @Override @@ -17,12 +17,6 @@ public class Command_qop extends TFM_Command return false; } - if (!(senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - boolean silent = false; if (args.length == 2) { diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_radar.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_radar.java index 68d267e9..829fec04 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_radar.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_radar.java @@ -4,24 +4,18 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import me.StevenLawson.TotalFreedomMod.TFM_RadarData; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.ALL, source = SOURCE_TYPE_ALLOWED.ONLY_IN_GAME, ignore_permissions = false) public class Command_radar extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (senderIsConsole) - { - sender.sendMessage(TotalFreedomMod.NOT_FROM_CONSOLE); - return true; - } - Location sender_pos = sender_p.getLocation(); List radar_data = new ArrayList(); diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rank.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rank.java index b7603c1c..7f4711df 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rank.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rank.java @@ -6,6 +6,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.ALL, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = true) public class Command_rank extends TFM_Command { @Override diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rawsay.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rawsay.java index c506219a..13c143fd 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rawsay.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rawsay.java @@ -1,30 +1,22 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import java.util.Arrays; import me.StevenLawson.TotalFreedomMod.TFM_Util; -import org.bukkit.ChatColor; +import org.apache.commons.lang.StringUtils; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, block_web_console = true, ignore_permissions = false) public class Command_rawsay extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (!senderIsConsole || TFM_Util.isFromClanforge(sender.getName())) + if (args.length > 0) { - sender.sendMessage(ChatColor.GRAY + "This command may only be used from the Telnet or BukkitHttpd console."); - return true; + TFM_Util.bcastMsg(StringUtils.join(args, " ")); } - - if (args.length == 0) - { - return false; - } - - TFM_Util.bcastMsg(TFM_Util.implodeStringList(" ", Arrays.asList(args))); - + return true; } } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rd.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rd.java index 7f510601..4516992b 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rd.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_rd.java @@ -1,24 +1,17 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_rd extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (!(senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - //This terminology is wrong, this doesn't remove *all* entities, by far. - Madgeek TFM_Util.adminAction(sender.getName(), "Removing all server entities.", false); sender.sendMessage(ChatColor.GRAY + String.valueOf(TFM_Util.wipeEntities(true, true)) + " enties removed."); diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java index 6c42b5f6..d9fc0898 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java @@ -10,6 +10,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_saconfig extends TFM_Command { @Override diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_say.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_say.java index 1ab62b55..5ba41305 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_say.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_say.java @@ -1,14 +1,13 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import java.util.Arrays; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; +import org.apache.commons.lang.StringUtils; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_say extends TFM_Command { @Override @@ -18,12 +17,12 @@ public class Command_say extends TFM_Command { return false; } - - String message = TFM_Util.implodeStringList(" ", Arrays.asList(args)); - if (senderIsConsole && sender.getName().equals("Rcon")) + String message = StringUtils.join(args, " "); + + if (senderIsConsole && TFM_Util.isFromClanforge(sender.getName())) { - if (message.equals("WARNING: Server is restarting, you will be kicked")) + if (message.equalsIgnoreCase("WARNING: Server is restarting, you will be kicked")) { TFM_Util.bcastMsg("Server is going offline.", ChatColor.GRAY); @@ -38,14 +37,7 @@ public class Command_say extends TFM_Command } } - if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)) - { - TFM_Util.bcastMsg(String.format("[Server:%s] %s", sender.getName(), message), ChatColor.LIGHT_PURPLE); - } - else - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - } + TFM_Util.bcastMsg(String.format("[Server:%s] %s", sender.getName(), message), ChatColor.LIGHT_PURPLE); return true; } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setlevel.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setlevel.java index 31818314..7c38c507 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setlevel.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setlevel.java @@ -1,39 +1,27 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.ONLY_IN_GAME, ignore_permissions = false) public class Command_setlevel extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (senderIsConsole) - { - sender.sendMessage(TotalFreedomMod.NOT_FROM_CONSOLE); - return true; - } - - if (!sender.isOp()) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - if (args.length != 1) { return false; } - + int new_level; try { new_level = Integer.parseInt(args[0]); - + if (new_level < 0) { new_level = 0; @@ -50,9 +38,9 @@ public class Command_setlevel extends TFM_Command } sender_p.setLevel(new_level); - + sender.sendMessage(ChatColor.AQUA + "You have been set to level " + Integer.toString(new_level)); - + return true; } } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setspawnworld.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setspawnworld.java index 2a022514..a4436b20 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setspawnworld.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_setspawnworld.java @@ -1,7 +1,6 @@ package me.StevenLawson.TotalFreedomMod.Commands; import me.StevenLawson.TotalFreedomMod.TFM_ProtectedArea; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.ChatColor; @@ -10,33 +9,22 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.ONLY_IN_GAME, ignore_permissions = false) public class Command_setspawnworld extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (senderIsConsole) - { - sender.sendMessage(TotalFreedomMod.NOT_FROM_CONSOLE); - return true; - } - - if (!TFM_SuperadminList.isUserSuperadmin(sender)) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - Location pos = sender_p.getLocation(); sender_p.getWorld().setSpawnLocation(pos.getBlockX(), pos.getBlockY(), pos.getBlockZ()); - + sender.sendMessage(ChatColor.GRAY + "Spawn location for this world set to: " + TFM_Util.formatLocation(sender_p.getWorld().getSpawnLocation())); if (TotalFreedomMod.protectedAreasEnabled && TotalFreedomMod.autoProtectSpawnpoints) { TFM_ProtectedArea.addProtectedArea("spawn_" + sender_p.getWorld().getName(), pos, TotalFreedomMod.autoProtectRadius); } - + return true; } } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_smite.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_smite.java index 728db0f9..1099387f 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_smite.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_smite.java @@ -1,8 +1,6 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukkit.Location; @@ -11,7 +9,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -// readded by JeromSar +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_smite extends TFM_Command { @Override @@ -22,12 +20,6 @@ public class Command_smite extends TFM_Command return false; } - if (!TFM_SuperadminList.isUserSuperadmin(sender)) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - Player p; try { diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_status.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_status.java index 5b8fb43e..3a7ee7d0 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_status.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_status.java @@ -7,6 +7,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.ALL, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = true) public class Command_status extends TFM_Command { @Override diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_stfu.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_stfu.java index fedaf056..8d8862a1 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_stfu.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_stfu.java @@ -3,12 +3,11 @@ package me.StevenLawson.TotalFreedomMod.Commands; import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_UserInfo; import me.StevenLawson.TotalFreedomMod.TFM_Util; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -//This command was coded initially by JeromSar +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_stfu extends TFM_Command { @Override @@ -19,12 +18,6 @@ public class Command_stfu extends TFM_Command return false; } - if (!(senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - if (args[0].equalsIgnoreCase("list")) { TFM_Util.playerMsg(sender, "Muted players:"); diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_stop.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_stop.java index fa9bdc60..10163dd2 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_stop.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_stop.java @@ -1,34 +1,26 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_stop extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)) - { - TFM_Util.bcastMsg("Server is going offline.", ChatColor.GRAY); + TFM_Util.bcastMsg("Server is going offline.", ChatColor.GRAY); - for (Player p : server.getOnlinePlayers()) - { - p.kickPlayer("Server is going offline, come back in a few minutes."); - } - - server.shutdown(); - } - else + for (Player p : server.getOnlinePlayers()) { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + p.kickPlayer("Server is going offline, come back in a few minutes."); } + server.shutdown(); + return true; } } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_survival.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_survival.java index 42f64bc6..6b3a03f4 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_survival.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_survival.java @@ -1,12 +1,12 @@ package me.StevenLawson.TotalFreedomMod.Commands; import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.GameMode; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_survival extends TFM_Command { @Override @@ -21,12 +21,6 @@ public class Command_survival extends TFM_Command } } - if (!sender.isOp()) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - Player p; if (args.length == 0) { diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tempban.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tempban.java index f67e3da9..e7662f4e 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tempban.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tempban.java @@ -2,15 +2,14 @@ package me.StevenLawson.TotalFreedomMod.Commands; import java.text.SimpleDateFormat; import java.util.Date; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.StringUtils; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_tempban extends TFM_Command { private static final SimpleDateFormat date_format = new SimpleDateFormat("yyyy-MM-dd \'at\' HH:mm:ss z"); @@ -23,12 +22,6 @@ public class Command_tempban extends TFM_Command return false; } - if (!(senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - Player p; try { diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_terminal.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_terminal.java index f4fc622e..5ac1dbb0 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_terminal.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_terminal.java @@ -1,23 +1,17 @@ package me.StevenLawson.TotalFreedomMod.Commands; import me.StevenLawson.TotalFreedomMod.TFM_RunSystemCommand; -import me.StevenLawson.TotalFreedomMod.TFM_Util; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, block_web_console = true, ignore_permissions = false) public class Command_terminal extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (!senderIsConsole || TFM_Util.isFromClanforge(sender.getName())) - { - sender.sendMessage(ChatColor.GRAY + "This command may only be used from the Telnet or BukkitHttpd console."); - return true; - } - String command; try { diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tfbanlist.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tfbanlist.java index ff7be72b..2d659c77 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tfbanlist.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tfbanlist.java @@ -10,6 +10,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_tfbanlist extends TFM_Command { @Override diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tfipbanlist.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tfipbanlist.java index fc93b647..27990d85 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tfipbanlist.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tfipbanlist.java @@ -12,6 +12,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_tfipbanlist extends TFM_Command { @Override diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tossmob.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tossmob.java index c3db8fd7..538f4466 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tossmob.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_tossmob.java @@ -12,6 +12,7 @@ import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.ONLY_IN_GAME, ignore_permissions = false) public class Command_tossmob extends TFM_Command { @Override @@ -23,74 +24,63 @@ public class Command_tossmob extends TFM_Command return true; } - if (senderIsConsole) + TFM_UserInfo playerData = TFM_UserInfo.getPlayerData(sender_p); + + EntityType creature = EntityType.PIG; + if (args.length >= 1) { - sender.sendMessage(TotalFreedomMod.NOT_FROM_CONSOLE); + if (TFM_Util.isStopCommand(args[0])) + { + playerData.disableMobThrower(); + sender.sendMessage(ChatColor.GREEN + "MobThrower is disabled."); + return true; + } + + if (args[0].equalsIgnoreCase("list")) + { + sender.sendMessage(ChatColor.GREEN + "Supported mobs: " + StringUtils.join(TFM_Util.mobtypes.keySet(), ", ")); + return true; + } + + try + { + creature = TFM_Util.getEntityType(args[0]); + } + catch (Exception ex) + { + sender.sendMessage(ChatColor.RED + args[0] + " is not a supported mob type. Using a pig instead."); + sender.sendMessage(ChatColor.RED + "By the way, you can type /tossmob list to see all possible mobs."); + creature = EntityType.PIG; + } } - else if (sender.isOp()) + + double speed = 1.0; + if (args.length >= 2) { - TFM_UserInfo playerData = TFM_UserInfo.getPlayerData(sender_p); - - EntityType creature = EntityType.PIG; - if (args.length >= 1) + try { - if (TFM_Util.isStopCommand(args[0])) - { - playerData.disableMobThrower(); - sender.sendMessage(ChatColor.GREEN + "MobThrower is disabled."); - return true; - } - - if (args[0].equalsIgnoreCase("list")) - { - sender.sendMessage(ChatColor.GREEN + "Supported mobs: " + StringUtils.join(TFM_Util.mobtypes.keySet(), ", ")); - return true; - } - - try - { - creature = TFM_Util.getEntityType(args[0]); - } - catch (Exception ex) - { - sender.sendMessage(ChatColor.RED + args[0] + " is not a supported mob type. Using a pig instead."); - sender.sendMessage(ChatColor.RED + "By the way, you can type /tossmob list to see all possible mobs."); - creature = EntityType.PIG; - } + speed = Double.parseDouble(args[1]); } - - double speed = 1.0; - if (args.length >= 2) + catch (NumberFormatException nfex) { - try - { - speed = Double.parseDouble(args[1]); - } - catch (NumberFormatException nfex) - { - } } - - if (speed < 1.0) - { - speed = 1.0; - } - else if (speed > 5.0) - { - speed = 5.0; - } - - playerData.enableMobThrower(creature, speed); - sender.sendMessage(ChatColor.GREEN + "MobThrower is enabled. Creature: " + creature + " - Speed: " + speed + "."); - sender.sendMessage(ChatColor.GREEN + "Left click while holding a stick to throw mobs!"); - sender.sendMessage(ChatColor.GREEN + "Type '/tossmob off' to disable. -By Madgeek1450"); - - sender_p.setItemInHand(new ItemStack(Material.STICK, 1)); } - else + + if (speed < 1.0) { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + speed = 1.0; } + else if (speed > 5.0) + { + speed = 5.0; + } + + playerData.enableMobThrower(creature, speed); + sender.sendMessage(ChatColor.GREEN + "MobThrower is enabled. Creature: " + creature + " - Speed: " + speed + "."); + sender.sendMessage(ChatColor.GREEN + "Left click while holding a stick to throw mobs!"); + sender.sendMessage(ChatColor.GREEN + "Type '/tossmob off' to disable. -By Madgeek1450"); + + sender_p.setItemInHand(new ItemStack(Material.STICK, 1)); return true; } diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_uall.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_uall.java index ae41c4f9..c0489eda 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_uall.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_uall.java @@ -1,37 +1,29 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; -import org.bukkit.ChatColor; +import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -//This command was coded initially by JeromSar - +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_uall extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (!(TFM_SuperadminList.isUserSuperadmin(sender) || senderIsConsole)) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - TFM_Util.adminAction(sender.getName(), "Undisguising all players", true); - try + + if (senderIsConsole) { - for (Player p : server.getOnlinePlayers()) + for (Player p : Bukkit.getOnlinePlayers()) { server.dispatchCommand(p, "u"); } } - catch (Throwable e) + else { - sender.sendMessage(ChatColor.GRAY + "Error sending command: " + e.getMessage()); + server.dispatchCommand(sender, "u *"); } return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_waterplace.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_waterplace.java index 0287f44b..e24445b9 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_waterplace.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_waterplace.java @@ -6,32 +6,27 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_waterplace extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)) - { - if (args.length != 1) - { - return false; - } - if (args[0].equalsIgnoreCase("on")) - { - TotalFreedomMod.allowWaterPlace = true; - sender.sendMessage("Water placement is now enabled."); - } - else - { - TotalFreedomMod.allowWaterPlace = false; - sender.sendMessage("Water placement is now disabled."); - } + if (args.length != 1) + { + return false; + } + + if (args[0].equalsIgnoreCase("on")) + { + TotalFreedomMod.allowWaterPlace = true; + sender.sendMessage("Water placement is now enabled."); } else { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + TotalFreedomMod.allowWaterPlace = false; + sender.sendMessage("Water placement is now disabled."); } return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_whitelist.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_whitelist.java index 3caf587b..341d0e75 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_whitelist.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_whitelist.java @@ -11,6 +11,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_whitelist extends TFM_Command { @Override @@ -21,12 +22,6 @@ public class Command_whitelist extends TFM_Command return false; } - if (!sender.isOp()) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - // list if (args[0].equalsIgnoreCase("list")) { diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_wildcard.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_wildcard.java index a8cf476f..e2789130 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_wildcard.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_wildcard.java @@ -1,38 +1,29 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import java.util.Arrays; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; -import me.StevenLawson.TotalFreedomMod.TFM_Util; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; +import org.apache.commons.lang.StringUtils; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false) public class Command_wildcard extends TFM_Command { @Override public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)) + if (args[0].equals("wildcard")) { - if (args[0].equals("wildcard")) - { - sender.sendMessage("What the hell are you trying to do, you stupid idiot..."); - return true; - } - - String base_command = TFM_Util.implodeStringList(" ", Arrays.asList(args)); - - for (Player p : server.getOnlinePlayers()) - { - String out_command = base_command.replaceAll("\\x3f", p.getName()); - sender.sendMessage("Running Command: " + out_command); - server.dispatchCommand(sender, out_command); - } + sender.sendMessage("What the hell are you trying to do, you stupid idiot..."); + return true; } - else + + String base_command = StringUtils.join(args, " "); + + for (Player p : server.getOnlinePlayers()) { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); + String out_command = base_command.replaceAll("\\x3f", p.getName()); + sender.sendMessage("Running Command: " + out_command); + server.dispatchCommand(sender, out_command); } return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_wipeflatlands.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_wipeflatlands.java index fb2f8666..0acfe4a8 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_wipeflatlands.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_wipeflatlands.java @@ -1,24 +1,17 @@ package me.StevenLawson.TotalFreedomMod.Commands; -import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; -import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, block_web_console = true, ignore_permissions = false) public class Command_wipeflatlands extends TFM_Command { @Override public boolean run(final CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (!(senderIsConsole && TFM_SuperadminList.isSeniorAdmin(sender))) - { - sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); - return true; - } - TFM_Util.setSavedFlag("do_wipe_flatlands", true); TFM_Util.bcastMsg("Server is going offline for flatlands wipe.", ChatColor.GRAY); diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_ziptool.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_ziptool.java index af2a6a2b..574050a4 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_ziptool.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_ziptool.java @@ -4,80 +4,74 @@ import java.io.File; import java.io.IOException; import me.StevenLawson.TotalFreedomMod.TFM_Log; import me.StevenLawson.TotalFreedomMod.TFM_Util; -import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +@CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, block_web_console = true, ignore_permissions = false) public class Command_ziptool extends TFM_Command { - @Override - public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) - { - if (!senderIsConsole || TFM_Util.isFromClanforge(sender.getName())) - { - sender.sendMessage(ChatColor.GRAY + "This command may only be used from the Telnet or BukkitHttpd console."); - return true; - } - - if (args.length <= 1) - { - return false; - } - - if (args[0].equalsIgnoreCase("zip")) - { - File directory = new File("./" + args[1]); - - if (!directory.isDirectory()) - { - sender.sendMessage(directory.getPath() + " is not a directory."); - return true; - } - - File output = new File(directory.getParent() + "/" + directory.getName() + ".zip"); - - sender.sendMessage("Zipping '" + directory.getPath() + "' to '" + output.getPath() + "'."); - - try - { - TFM_Util.zip(directory, output, true, sender); - } - catch (IOException ex) - { - TFM_Log.severe(ex); - } - + @Override + public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) + { + if (args.length <= 1) + { + return false; + } + + if (args[0].equalsIgnoreCase("zip")) + { + File directory = new File("./" + args[1]); + + if (!directory.isDirectory()) + { + sender.sendMessage(directory.getPath() + " is not a directory."); + return true; + } + + File output = new File(directory.getParent() + "/" + directory.getName() + ".zip"); + + sender.sendMessage("Zipping '" + directory.getPath() + "' to '" + output.getPath() + "'."); + + try + { + TFM_Util.zip(directory, output, true, sender); + } + catch (IOException ex) + { + TFM_Log.severe(ex); + } + sender.sendMessage("Zip finished."); - } - else if (args[0].equalsIgnoreCase("unzip")) - { + } + else if (args[0].equalsIgnoreCase("unzip")) + { File output = new File(args[1]); - + if (!output.exists() || !output.isFile()) { sender.sendMessage(output.getPath() + " is not a file."); return true; } - - sender.sendMessage("Unzipping '" + output.getPath() + "'."); - - try - { - TFM_Util.unzip(output, output.getParentFile()); - } - catch (IOException ex) - { - TFM_Log.severe(ex); - } - - sender.sendMessage("Unzip finished."); - } - else - { - return false; - } - return true; - } + sender.sendMessage("Unzipping '" + output.getPath() + "'."); + + try + { + TFM_Util.unzip(output, output.getParentFile()); + } + catch (IOException ex) + { + TFM_Log.severe(ex); + } + + sender.sendMessage("Unzip finished."); + } + else + { + return false; + } + + return true; + } } diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java index 6e0286a0..02cfd66c 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java @@ -86,6 +86,7 @@ public class TFM_Util TFM_Util.bcastMsg(adminName + " - " + action, (isRed ? ChatColor.RED : ChatColor.AQUA)); } + @Deprecated public static String implodeStringList(String glue, List pieces) { return StringUtils.join(pieces, glue); diff --git a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java index a51a6a0e..1d4b936e 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java +++ b/src/me/StevenLawson/TotalFreedomMod/TotalFreedomMod.java @@ -8,6 +8,7 @@ import me.StevenLawson.TotalFreedomMod.Listener.TFM_BlockListener; import me.StevenLawson.TotalFreedomMod.Listener.TFM_EntityListener; import me.StevenLawson.TotalFreedomMod.Listener.TFM_PlayerListener; import me.StevenLawson.TotalFreedomMod.Listener.TFM_WeatherListener; +import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.exception.ExceptionUtils; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -122,7 +123,7 @@ public class TotalFreedomMod extends JavaPlugin sender_p.getName(), ChatColor.stripColor(sender_p.getDisplayName()), commandLabel, - TFM_Util.implodeStringList(" ", Arrays.asList(args))), true); + StringUtils.join(args, " ")), true); } else { @@ -130,7 +131,7 @@ public class TotalFreedomMod extends JavaPlugin TFM_Log.info(String.format("[CONSOLE_COMMAND] %s: /%s %s", sender.getName(), commandLabel, - TFM_Util.implodeStringList(" ", Arrays.asList(args))), true); + StringUtils.join(args, " ")), true); } TFM_Command dispatcher; From 794e6286cef36629e4126c37320d9e1836a0b3c7 Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Fri, 23 Nov 2012 22:21:02 -0500 Subject: [PATCH 5/6] Fixed clanforge trigger. --- src/me/StevenLawson/TotalFreedomMod/TFM_Util.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java index 02cfd66c..a4f15ef6 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java @@ -26,7 +26,7 @@ public class TFM_Util private static final Map eject_tracker = new HashMap(); public static final Map mobtypes = new HashMap(); public static final List stop_commands = Arrays.asList("stop", "off", "end", "halt", "die"); - public static final List restricted_senders = Arrays.asList("rcon, remotebukkit"); + public static final List restricted_senders = Arrays.asList("rcon", "remotebukkit"); static { From f5891ae23b276a13452667edd8e96a7b4fb56664 Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Sat, 24 Nov 2012 14:57:18 -0500 Subject: [PATCH 6/6] Added /dispfill. --- .../Commands/Command_dispfill.java | 107 ++++++++++++++++++ src/plugin.yml | 3 + 2 files changed, 110 insertions(+) create mode 100644 src/me/StevenLawson/TotalFreedomMod/Commands/Command_dispfill.java diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_dispfill.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_dispfill.java new file mode 100644 index 00000000..7b588b93 --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_dispfill.java @@ -0,0 +1,107 @@ +package me.StevenLawson.TotalFreedomMod.Commands; + +import java.util.ArrayList; +import java.util.List; +import me.StevenLawson.TotalFreedomMod.TFM_Util; +import org.apache.commons.lang.StringUtils; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.Dispenser; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; + +@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.ONLY_IN_GAME, ignore_permissions = false) +public class Command_dispfill extends TFM_Command +{ + @Override + public boolean run(CommandSender sender, 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; + } + + String[] items_raw = StringUtils.split(args[1], ","); + List items = new ArrayList(); + for (String search_item : items_raw) + { + ItemStack is = null; + + is = new ItemStack(Material.matchMaterial(search_item), 64); + + if (is == null) + { + try + { + is = new ItemStack(Integer.parseInt(search_item), 64); + } + catch (NumberFormatException ex) + { + } + } + + if (is != null) + { + items.add(is); + } + else + { + sender.sendMessage("Skipping invalid item: " + search_item); + } + } + ItemStack[] items_array = items.toArray(new ItemStack[items.size()]); + + int affected = 0; + Location center_location = sender_p.getLocation(); + Block center_block = center_location.getBlock(); + for (int x_offset = -radius; x_offset <= radius; x_offset++) + { + for (int y_offset = -radius; y_offset <= radius; y_offset++) + { + for (int z_offset = -radius; z_offset <= radius; z_offset++) + { + Block target_block = center_block.getRelative(x_offset, y_offset, z_offset); + if (target_block.getLocation().distanceSquared(center_location) < (radius * radius)) + { + if (target_block.getType().equals(Material.DISPENSER)) + { + sender.sendMessage("Filling dispenser @ " + TFM_Util.formatLocation(target_block.getLocation())); + setDispenserContents(target_block, items_array); + affected++; + } + } + } + } + } + + sender.sendMessage("Done. " + affected + " dispenser(s) filled."); + } + else + { + return false; + } + + return true; + } + + private static void setDispenserContents(Block target_block, ItemStack[] items) + { + Dispenser dispenser = (Dispenser) target_block.getState(); + Inventory disp_inv = dispenser.getInventory(); + disp_inv.clear(); + disp_inv.addItem(items); + } +} diff --git a/src/plugin.yml b/src/plugin.yml index 01f3eae2..bdd5ab5c 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -34,6 +34,9 @@ commands: deopall: description: Superadmin command - Deop everyone on the server. usage: / + dispfill: + description: Fill nearby dispensers with a set of items of your choice. + usage: / doom: description: Owner command - For the bad Superadmins. usage: /