Readded Mail command and fixed GUI serialization.

This commit is contained in:
Aust1n46 2016-09-19 16:07:39 -04:00
parent f64b867d82
commit e45e17497d
3 changed files with 32 additions and 77 deletions

View File

@ -245,11 +245,6 @@ alias:
permissions: None
components:
- 'Message: &aThis is our website: www.site.net'
mail:
arguments: 0
permissions: None
components:
- 'Command: /email$'
tell:
arguments: 0
permissions: None

View File

@ -14,6 +14,7 @@ import mineverse.Aust1n46.chat.api.MineverseChatAPI;
import mineverse.Aust1n46.chat.api.MineverseChatPlayer;
import mineverse.Aust1n46.chat.channel.ChatChannelInfo;
import mineverse.Aust1n46.chat.command.MineverseCommand;
import mineverse.Aust1n46.chat.utilities.Format;
@SuppressWarnings("unused")
public class Mail extends MineverseCommand {
@ -25,105 +26,64 @@ public class Mail extends MineverseCommand {
this.plugin = MineverseChat.getInstance();
}
//@SuppressWarnings("deprecation")
@Override
public void execute(CommandSender sender, String command, String[] args) {
/*if(!(sender instanceof Player)) {
if (!(sender instanceof Player)) {
plugin.getServer().getConsoleSender().sendMessage(ChatColor.RED + "This command must be run by a player.");
return;
}
MineverseChatPlayer mcp = MineverseChatAPI.getMineverseChatPlayer((Player) sender);
if(mcp.getPlayer().hasPermission("venturechat.mail")) {
if (mcp.getPlayer().hasPermission("venturechat.mail")) {
try {
switch(args[0]) {
switch (args[0]) {
case "send": {
try {
Player p = Bukkit.getPlayer(args[1]);
if(p == null) {
OfflinePlayer op = Bukkit.getOfflinePlayer(args[1]);
if(op.hasPlayedBefore()) {
if(plugin.mail.containsKey(op.getUniqueId().toString())) {
try {
String msg = args[2];
for(int x = 3; x < args.length; x++) {
if(args[x].length() > 0) msg += " " + args[x];
}
plugin.mail.get(op.getUniqueId().toString()).add(player.getName() + ": " + msg);
player.sendMessage(ChatColor.GOLD + "Sent mail: " + ChatColor.RED + cc.FormatStringAll(msg) + ChatColor.GOLD + " to: " + ChatColor.RED + op.getName());
return;
}
catch(Exception e) {
player.sendMessage(ChatColor.RED + "Invalid arguments, /mail send [player] [message]");
return;
}
}
try {
String msg = args[2];
for(int x = 3; x < args.length; x++) {
if(args[x].length() > 0) msg += " " + args[x];
}
ArrayList<String> newlist = new ArrayList<String>();
newlist.add(player.getName() + ": " + msg);
player.sendMessage(ChatColor.GOLD + "Sent mail: " + ChatColor.RED + cc.FormatStringAll(msg) + ChatColor.GOLD + " to: " + ChatColor.RED + op.getName());
plugin.mail.put(op.getUniqueId().toString(), newlist);
return;
}
catch(Exception e) {
player.sendMessage(ChatColor.RED + "Invalid arguments, /mail send [player] [message]");
return;
}
}
if(args.length < 3) {
player.sendMessage(ChatColor.RED + "Invalid arguments, /mail send [player] [message]");
return;
}
player.sendMessage(ChatColor.RED + "Player: " + op.getName() + " has never played before.");
MineverseChatPlayer tp = MineverseChatAPI.getMineverseChatPlayer(args[1]);
if (tp == null) {
mcp.getPlayer().sendMessage(ChatColor.RED + "Player: " + args[1] + " has never played before.");
return;
}
try {
String msg = args[2];
for(int x = 3; x < args.length; x++) {
if(args[x].length() > 0) msg += " " + args[x];
}
p.setMetadata("MineverseChat.mail", new FixedMetadataValue(plugin, plugin.getMetadataString(p, "MineverseChat.mail", plugin) + player.getName() + ": " + msg + "\n"));
player.sendMessage(ChatColor.GOLD + "Sent mail: " + ChatColor.RED + cc.FormatStringAll(msg) + ChatColor.GOLD + " to: " + ChatColor.RED + p.getName());
p.sendMessage(ChatColor.RED + player.getName() + ChatColor.GOLD + " just sent you mail. /mail read");
return;
String msg = args[2];
for (int x = 3; x < args.length; x++) {
if (args[x].length() > 0)
msg += " " + args[x];
}
catch(Exception e) {
player.sendMessage(ChatColor.RED + "Invalid arguments: /mail send [player] [message]");
return;
mcp.getPlayer().sendMessage(ChatColor.GOLD + "Sent mail: " + ChatColor.RED + Format.FormatStringAll(msg) + ChatColor.GOLD + " to: " + ChatColor.RED + tp.getName());
tp.addMail(msg);
if(tp.isOnline()) {
tp.getPlayer().sendMessage(ChatColor.RED + mcp.getName() + ChatColor.GOLD + " has sent you mail. /mail read");
}
return;
}
catch (Exception e) {
mcp.getPlayer().sendMessage(ChatColor.RED + "Invalid arguments, /mail send [player] [message]");
return;
}
catch(Exception e) {
player.sendMessage(ChatColor.RED + "Invalid arguments: /mail send [player] [message]");
}
return;
}
case "read": {
for(String s : plugin.getMetadataString(player, "MineverseChat.mail", plugin).split("\n")) {
if(s.length() > 0) {
player.sendMessage(ChatColor.GOLD + cc.FormatStringAll(s));
for (String s : mcp.getMail()) {
if (s.length() > 0) {
mcp.getPlayer().sendMessage(ChatColor.GOLD + Format.FormatStringAll(s));
}
}
player.sendMessage(ChatColor.GOLD + "To clear mail, type /mail clear");
mcp.getPlayer().sendMessage(ChatColor.GOLD + "To clear mail, type /mail clear");
return;
}
case "clear": {
player.removeMetadata("MineverseChat.mail", plugin);
player.sendMessage(ChatColor.GOLD + "Cleared your mail.");
mcp.clearMail();
mcp.getPlayer().sendMessage(ChatColor.GOLD + "Cleared your mail.");
return;
}
default: {
player.sendMessage(ChatColor.RED + "Invalid arguments, /mail [send, read, sendall, clear]");
mcp.getPlayer().sendMessage(ChatColor.RED + "Invalid arguments, /mail [send, read, sendall, clear]");
return;
}
}
}
catch(Exception e) {
player.sendMessage(ChatColor.RED + "Invalid arguments, /mail [send, read, sendall, clear]");
}
catch (Exception e) {
mcp.getPlayer().sendMessage(ChatColor.RED + "Invalid arguments, /mail [send, read, sendall, clear]");
}
return;
}*/
}
}
}

View File

@ -263,7 +263,7 @@ public class CommandListener implements CommandExecutor, Listener {
@EventHandler(priority = EventPriority.LOW)
public void InventoryClick(InventoryClickEvent e) {
ItemStack item = e.getCurrentItem();
if(item == null || !e.getInventory().getTitle().contains("VentureChat") && !e.getInventory().getTitle().contains("GUI")) {
if(item == null || !e.getInventory().getTitle().contains("VentureChat")) {
return;
}
e.setCancelled(true);