Do a bunch of cleanup and add /pv <name> <#>
This commit is contained in:
@@ -3,6 +3,7 @@ package me.shock.playervaults;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
import me.shock.playervaults.commands.Commands;
|
import me.shock.playervaults.commands.Commands;
|
||||||
|
import me.shock.playervaults.commands.VaultViewInfo;
|
||||||
import me.shock.playervaults.util.VaultManager;
|
import me.shock.playervaults.util.VaultManager;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
@@ -25,6 +26,7 @@ import org.bukkit.inventory.Inventory;
|
|||||||
public class Listeners implements Listener {
|
public class Listeners implements Listener {
|
||||||
|
|
||||||
public Main plugin;
|
public Main plugin;
|
||||||
|
|
||||||
public Listeners(Main instance) {
|
public Listeners(Main instance) {
|
||||||
this.plugin = instance;
|
this.plugin = instance;
|
||||||
}
|
}
|
||||||
@@ -33,16 +35,15 @@ public class Listeners implements Listener {
|
|||||||
public void doSaveStuff(Player p) {
|
public void doSaveStuff(Player p) {
|
||||||
if(Commands.inVault.containsKey(p.getName())) {
|
if(Commands.inVault.containsKey(p.getName())) {
|
||||||
Inventory inv = p.getOpenInventory().getTopInventory();
|
Inventory inv = p.getOpenInventory().getTopInventory();
|
||||||
int number = Commands.inVault.get(p.getName());
|
VaultViewInfo info = Commands.inVault.get(p.getName());
|
||||||
try {
|
try {
|
||||||
vm.saveVault(inv, p, number);
|
vm.saveVault(inv, info.getHolder(), info.getNumber());
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onQuit(PlayerQuitEvent event) {
|
public void onQuit(PlayerQuitEvent event) {
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
@@ -66,7 +67,6 @@ public class Listeners implements Listener {
|
|||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onClose(InventoryCloseEvent event) {
|
public void onClose(InventoryCloseEvent event) {
|
||||||
System.out.println(Commands.inVault.size());
|
|
||||||
HumanEntity he = event.getPlayer();
|
HumanEntity he = event.getPlayer();
|
||||||
if(he instanceof Player) {
|
if(he instanceof Player) {
|
||||||
Player player = (Player) he;
|
Player player = (Player) he;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package me.shock.playervaults.commands;
|
package me.shock.playervaults.commands;
|
||||||
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
@@ -8,32 +8,36 @@ import org.bukkit.command.CommandExecutor;
|
|||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
|
||||||
public class Commands implements CommandExecutor {
|
public class Commands implements CommandExecutor {
|
||||||
|
|
||||||
public static ConcurrentHashMap<String, Integer> inVault = new ConcurrentHashMap<String, Integer>();
|
public static HashMap<String, VaultViewInfo> inVault = new HashMap<String, VaultViewInfo>();
|
||||||
private String pv = ChatColor.DARK_RED + "[" + ChatColor.WHITE + "PlayerVaults" +
|
private final String pv = ChatColor.DARK_RED + "[" + ChatColor.WHITE + "PlayerVaults" +
|
||||||
ChatColor.DARK_RED + "]" + ChatColor.WHITE + ": ";
|
ChatColor.DARK_RED + "]" + ChatColor.WHITE + ": ";
|
||||||
|
|
||||||
|
@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")) {
|
||||||
int length = args.length;
|
switch(args.length) {
|
||||||
if(length == 1) {
|
case 1:
|
||||||
if(notConsole(sender)) {
|
if(sender instanceof Player) {
|
||||||
if(OwnVault.openOwnVault(sender, args[0]))
|
if(VaultOperations.openOwnVault(sender, args[0]))
|
||||||
inVault.put(sender.getName(), Integer.parseInt(args[0]));
|
inVault.put(sender.getName(), new VaultViewInfo(sender.getName(), Integer.parseInt(args[0])));
|
||||||
}
|
}
|
||||||
} else {
|
else sender.sendMessage(pv + "Sorry but that can only be run by a player!");
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
if(sender instanceof Player) {
|
||||||
|
if(VaultOperations.openOtherVault(sender,args[0], args[1])) {
|
||||||
|
inVault.put(sender.getName(), new VaultViewInfo(args[0], Integer.parseInt(args[1])));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else sender.sendMessage(pv + "Sorry but that can only be run by a player!");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
Feedback.showHelp(sender);
|
Feedback.showHelp(sender);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean notConsole(CommandSender sender) {
|
|
||||||
if(!(sender instanceof Player)) {
|
|
||||||
sender.sendMessage(pv + "Sorry but that can only be run by a player!");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+29
-15
@@ -8,7 +8,7 @@ import org.bukkit.World;
|
|||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class OwnVault {
|
public class VaultOperations {
|
||||||
|
|
||||||
private static Main plugin;
|
private static Main plugin;
|
||||||
private static VaultManager vm = new VaultManager(plugin);
|
private static VaultManager vm = new VaultManager(plugin);
|
||||||
@@ -18,31 +18,45 @@ public class OwnVault {
|
|||||||
ChatColor.DARK_RED + "]" + ChatColor.WHITE + ": ";
|
ChatColor.DARK_RED + "]" + ChatColor.WHITE + ": ";
|
||||||
|
|
||||||
public static boolean checkPerms(CommandSender cs, int number) {
|
public static boolean checkPerms(CommandSender cs, int number) {
|
||||||
if(number <= 0) {
|
if(cs.hasPermission("playervaults.amount."+String.valueOf(number))) return true;
|
||||||
return false;
|
for(int x = number; x <= 99;x++) {
|
||||||
}
|
if(cs.hasPermission("playervaults.amount."+String.valueOf(x))) return true;
|
||||||
if(cs.hasPermission("playervaults.amount." + String.valueOf(number))) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
else if(checkPerms(cs, number-1)) {
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean openOwnVault(CommandSender sender, String arg0) {
|
public static boolean openOwnVault(CommandSender sender, String arg) {
|
||||||
if(arg0.matches("^[0-9]{1,2}$")) {
|
if(arg.matches("^[0-9]{1,2}$")) {
|
||||||
System.out.println("yay regex!");
|
|
||||||
int number = 0;
|
int number = 0;
|
||||||
try {
|
try {
|
||||||
number = Integer.parseInt(arg0);
|
number = Integer.parseInt(arg);
|
||||||
|
}
|
||||||
|
catch(NumberFormatException nfe) {
|
||||||
|
sender.sendMessage(pv+ChatColor.RED+"You need to specify a number!");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(checkPerms(sender, number)) {
|
||||||
|
vm.loadVault(sender, sender.getName(), number);
|
||||||
|
sender.sendMessage(pv + "Opening vault " + ChatColor.GREEN + number);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
feedback.noPerms(sender);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
public static boolean openOtherVault(CommandSender sender, String user, String arg) {
|
||||||
|
if(arg.matches("^[0-9]{1,2}$")) {
|
||||||
|
int number = 0;
|
||||||
|
try {
|
||||||
|
number = Integer.parseInt(arg);
|
||||||
}
|
}
|
||||||
catch(NumberFormatException nfe) {
|
catch(NumberFormatException nfe) {
|
||||||
//Yell at the player
|
//Yell at the player
|
||||||
//We should probably check perms first though
|
//We should probably check perms first though
|
||||||
}
|
}
|
||||||
if(checkPerms(sender, number)) {
|
if(sender.hasPermission("playervaults.admin")) {
|
||||||
vm.loadVault(sender, sender.getName(), number);
|
vm.loadVault(sender, user, number);
|
||||||
sender.sendMessage(pv + "Opening vault " + ChatColor.GREEN + number);
|
sender.sendMessage(pv + "Opening vault " + ChatColor.GREEN + number);
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package me.shock.playervaults.commands;
|
||||||
|
|
||||||
|
public class VaultViewInfo {
|
||||||
|
|
||||||
|
String s;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
public VaultViewInfo(String s, int i) {
|
||||||
|
this.s = s;
|
||||||
|
this.i = i;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getHolder() {
|
||||||
|
return this.s;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getNumber() {
|
||||||
|
return this.i;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -32,19 +32,17 @@ public class VaultManager {
|
|||||||
* @param player
|
* @param player
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
*/
|
*/
|
||||||
public void saveVault(Inventory inv, Player player, int number) throws IOException {
|
public void saveVault(Inventory inv, String player, int number) throws IOException {
|
||||||
if(Commands.inVault.containsKey(player.getName())) {
|
|
||||||
System.out.println("savevault");
|
System.out.println("savevault");
|
||||||
// Get the player's file and serialize the inventory.
|
// Get the player's file and serialize the inventory.
|
||||||
String ser = Serialization.toBase64(inv);
|
String ser = Serialization.toBase64(inv);
|
||||||
YamlConfiguration yaml = playerVaultFile(player.getName());
|
YamlConfiguration yaml = playerVaultFile(player);
|
||||||
System.out.println("serial: " + ser);
|
System.out.println("serial: " + ser);
|
||||||
// Prepare to save :D?
|
// Prepare to save :D?
|
||||||
yaml.createSection("vault" + number);
|
yaml.createSection("vault" + number);
|
||||||
yaml.set("vault" + number + "", ser);
|
yaml.set("vault" + number + "", ser);
|
||||||
saveFile(player.getName(), yaml);
|
saveFile(player, yaml);
|
||||||
Commands.inVault.remove(player.getName());
|
Commands.inVault.remove(player);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -53,12 +51,13 @@ public class VaultManager {
|
|||||||
*
|
*
|
||||||
* TODO: Check to see if the path exists before we get it!
|
* TODO: Check to see if the path exists before we get it!
|
||||||
*/
|
*/
|
||||||
public void loadVault(CommandSender sender, String target, int number) {
|
public void loadVault(CommandSender sender, String holder, int number) {
|
||||||
YamlConfiguration playerFile = playerVaultFile(target);
|
YamlConfiguration playerFile = playerVaultFile(holder);
|
||||||
String data = playerFile.getString("vault" + "" + number + "");
|
String data = playerFile.getString("vault" + "" + number + "");
|
||||||
Player player = (Player) sender;
|
Player player = (Player) sender;
|
||||||
if(data == null) {
|
if(data == null) {
|
||||||
Inventory inv = Bukkit.createInventory(player, 54, ChatColor.DARK_RED + "Vault");
|
System.out.println("nll");
|
||||||
|
Inventory inv = Bukkit.createInventory(player, 54, ChatColor.DARK_RED + "Vault "+String.valueOf(number));
|
||||||
player.openInventory(inv);
|
player.openInventory(inv);
|
||||||
} else {
|
} else {
|
||||||
Inventory inv = Serialization.fromBase64(data);
|
Inventory inv = Serialization.fromBase64(data);
|
||||||
|
|||||||
Reference in New Issue
Block a user