Add /pvdel

This commit is contained in:
gomeow
2013-03-07 07:38:16 -08:00
parent 2fdebb47c5
commit fe949b9661
5 changed files with 59 additions and 21 deletions
+1
View File
@@ -31,6 +31,7 @@ public class Main extends JavaPlugin {
PluginManager pm = getServer().getPluginManager(); PluginManager pm = getServer().getPluginManager();
pm.registerEvents(new Listeners(this), this); pm.registerEvents(new Listeners(this), this);
getCommand("pv").setExecutor(new Commands()); getCommand("pv").setExecutor(new Commands());
getCommand("pvdel").setExecutor(new Commands());
loadConfig(); loadConfig();
loadLang(); loadLang();
startMetrics(); startMetrics();
@@ -18,25 +18,34 @@ public class Commands implements CommandExecutor {
@Override @Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if(cmd.getName().equalsIgnoreCase("pv")) { if(cmd.getName().equalsIgnoreCase("pv")) {
switch(args.length) { if(sender instanceof Player) {
case 1: switch(args.length) {
if(sender instanceof Player) { case 1:
if(VaultOperations.openOwnVault(sender, args[0])) if(VaultOperations.openOwnVault(sender, args[0]))
inVault.put(sender.getName(), new VaultViewInfo(sender.getName(), Integer.parseInt(args[0]))); inVault.put(sender.getName(), new VaultViewInfo(sender.getName(), Integer.parseInt(args[0])));
} break;
else sender.sendMessage(pv + "Sorry but that can only be run by a player!"); case 2:
break;
case 2:
if(sender instanceof Player) {
if(VaultOperations.openOtherVault(sender,args[0], args[1])) { if(VaultOperations.openOtherVault(sender,args[0], args[1])) {
inVault.put(sender.getName(), new VaultViewInfo(args[0], Integer.parseInt(args[1]))); inVault.put(sender.getName(), new VaultViewInfo(args[0], Integer.parseInt(args[1])));
} }
break;
default:
Feedback.showHelp(sender, Feedback.Type.OPEN);
} }
else sender.sendMessage(pv + "Sorry but that can only be run by a player!");
break;
default:
Feedback.showHelp(sender);
} }
else sender.sendMessage(pv + "Sorry but that can only be run by a player!");
}
else if(cmd.getName().equalsIgnoreCase("pvdel")) {
if(sender instanceof Player) {
switch(args.length) {
case 1:
VaultOperations.deleteOwnVault(sender, args[0]);
break;
default:
Feedback.showHelp(sender, Feedback.Type.DELETE);
}
}
else sender.sendMessage(pv + "Sorry but that can only be run by a player!");
} }
return true; return true;
} }
@@ -3,8 +3,14 @@ package me.shock.playervaults.commands;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
public class Feedback { public class Feedback {
public enum Type {
OPEN,
DELETE,
WORKBENCH, //For later versions
FURNACE;
}
static String pv = ChatColor.DARK_RED + "[" + ChatColor.WHITE + "PlayerVaults" + static String pv = ChatColor.DARK_RED + "[" + ChatColor.WHITE + "PlayerVaults" +
ChatColor.DARK_RED + "]" + ChatColor.WHITE + ": "; ChatColor.DARK_RED + "]" + ChatColor.WHITE + ": ";
@@ -14,9 +20,15 @@ public class Feedback {
} }
public static void showHelp(CommandSender sender) { public static void showHelp(CommandSender sender, Type t) {
sender.sendMessage(pv + "/vault <number>"); if(t == Type.OPEN) {
sender.sendMessage(pv + "/vault delete <number>"); sender.sendMessage(pv + "/pv <number>");
sender.sendMessage(pv + "/pv <player> <number>");
}
else if(t == Type.DELETE) {
sender.sendMessage(pv + "/pvdel <number>");
sender.sendMessage(pv + "/pvdel <player> <number>");
}
} }
public static void badWorld(CommandSender sender) { public static void badWorld(CommandSender sender) {
@@ -1,5 +1,7 @@
package me.shock.playervaults.commands; package me.shock.playervaults.commands;
import java.io.IOException;
import me.shock.playervaults.Main; import me.shock.playervaults.Main;
import me.shock.playervaults.util.VaultManager; import me.shock.playervaults.util.VaultManager;
@@ -52,8 +54,7 @@ public class VaultOperations {
number = Integer.parseInt(arg); number = Integer.parseInt(arg);
} }
catch(NumberFormatException nfe) { catch(NumberFormatException nfe) {
//Yell at the player sender.sendMessage(pv+ChatColor.RED+"You need to specify a number!");
//We should probably check perms first though
} }
if(sender.hasPermission("playervaults.admin")) { if(sender.hasPermission("playervaults.admin")) {
vm.loadVault(sender, user, number); vm.loadVault(sender, user, number);
@@ -65,6 +66,22 @@ public class VaultOperations {
} }
return false; return false;
} }
public static void deleteOwnVault(CommandSender sender, String arg) {
if(arg.matches("^[0-9]{1,2}$")) {
int number = 0;
try {
number = Integer.parseInt(arg);
}
catch(NumberFormatException nfe) {
sender.sendMessage(pv+ChatColor.RED+"You need to specify a number!");
}
try {
vm.deleteVault(sender, sender.getName(), number);
} catch (IOException e) {
sender.sendMessage(pv+"There was an error deleting the vault!");
}
}
}
@SuppressWarnings("unused") @SuppressWarnings("unused")
private static boolean allowedWorld(Player player) { private static boolean allowedWorld(Player player) {
@@ -4,18 +4,17 @@ import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.DataInputStream; import java.io.DataInputStream;
import java.io.DataOutputStream; import java.io.DataOutputStream;
import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder;
import net.minecraft.server.v1_4_R1.NBTBase; import net.minecraft.server.v1_4_R1.NBTBase;
import net.minecraft.server.v1_4_R1.NBTTagCompound; import net.minecraft.server.v1_4_R1.NBTTagCompound;
import net.minecraft.server.v1_4_R1.NBTTagList; import net.minecraft.server.v1_4_R1.NBTTagList;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.craftbukkit.v1_4_R1.inventory.CraftInventoryCustom; import org.bukkit.craftbukkit.v1_4_R1.inventory.CraftInventoryCustom;
import org.bukkit.craftbukkit.v1_4_R1.inventory.CraftItemStack; import org.bukkit.craftbukkit.v1_4_R1.inventory.CraftItemStack;
import org.bukkit.inventory.Inventory; import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder;
public class Serialization { public class Serialization {