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 82bd69a..be6c71d 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 81d4e70..f9272a0 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 58125e3..fedaf05 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 ed22a20..cbf690c 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 ed47ee8..4be3685 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 cbf690c..02da3da 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 84ffc8c..5e9fc6c 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 62d74a9..6e0286a 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 0000000..c8b5d31 --- /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 0000000..9206e35 --- /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 6eefdf1..30b6377 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 3bf3cf2..d4cc4d6 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 90ef2e4..1b6bdfe 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 0000000..376c22c --- /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 b493e3e..e5ead5f 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 71ad4c7..a51a6a0 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 d894952..024a483 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 e1ac4f2..0b05da3 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 3a38471..b9f3677 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 8bac97b..1a90456 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 7770e37..c4a716a 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 ce97877..b7772fe 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 74c49ab..b854e04 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 1341273..4cb4969 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 7c80c69..01aa5be 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 8e82d60..61c04d1 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 b4b869e..c2ef84e 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 3759bab..e8beba9 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 8b58341..78ca75c 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 95c384b..72af02e 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 011efc5..ed14879 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 a993545..338519c 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 3ba7e0d..b26e572 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 89b1694..52e5a8b 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 d94c57b..499d680 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 b073d3d..833e538 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 ec1db96..dc3b45b 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 95e4e6e..bdf9785 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 c420fe8..c191740 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 5ebcb38..95e06bb 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 414e528..d3a3c59 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 d2bbd91..45719b5 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 9d5b742..59c07cc 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 671d647..0677f6c 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 0bf2b82..71b435e 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 45e6d22..67386b9 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 4240a64..302c482 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 ac548ad..29738c6 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 037be2a..e4d3d5a 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 ff096a2..cf2cd48 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 932cae7..639ba39 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 722bcc8..50a57f2 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 4ffd23b..5aadbf3 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 b8d231f..d50b0e5 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 73044e0..66fcdfd 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 f713919..40ef23a 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 5039397..4fa56b3 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 6d19d0d..85a8f0a 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 6f581c5..048dfae 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 558dc91..7474f11 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 be6c71d..f794caf 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 f9272a0..7dc01ca 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 68d267e..829fec0 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 b7603c1..7f4711d 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 c506219..13c143f 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 7f51060..4516992 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 6c42b5f..d9fc089 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 1ab62b5..5ba4130 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 3181831..7c38c50 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 2a02251..a4436b2 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 728db0f..1099387 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 5b8fb43..3a7ee7d 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 fedaf05..8d8862a 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 fa9bdc6..10163dd 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 42f64bc..6b3a03f 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 f67e3da..e7662f4 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 f4fc622..5ac1dbb 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 ff7be72..2d659c7 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 fc93b64..27990d8 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 c3db8fd..538f446 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 ae41c4f..c0489ed 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 0287f44..e24445b 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 3caf587..341d0e7 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 a8cf476..e278913 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 fb2f866..0acfe4a 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 af2a6a2..574050a 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 6e0286a..02cfd66 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 a51a6a0..1d4b936 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 02cfd66..a4f15ef 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 0000000..7b588b9 --- /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 01f3eae..bdd5ab5 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: /