package com.zerohighdef.geoffrey.Commands; import com.google.gson.JsonElement; import com.zerohighdef.geoffrey.GeoffreyMC; import com.zerohighdef.geoffrey.Models.GeoffreyLocation; import com.zerohighdef.geoffrey.Objects.GeoffreyAPICallback; import com.zerohighdef.geoffrey.Objects.GeoffreyCommand; import com.zerohighdef.geoffrey.Objects.GeoffreyCommandError; import com.zerohighdef.geoffrey.Objects.GeoffreyUtil; 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; import java.text.ParseException; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; public class DeleteResourceCommand extends GeoffreyCommand { public DeleteResourceCommand(GeoffreyMC plugin) { super(plugin); } @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { if ((sender instanceof Player)) { Map params = new HashMap(); List parsedArgs; try { parsedArgs = GeoffreyUtil.parseArgs(args); } catch (ParseException e) { sender.sendMessage(ChatColor.RED + e.getMessage()); return false; } if (parsedArgs.size() > 1) { String name = StringUtils.join(parsedArgs.subList(1, parsedArgs.size()), " "); params.put("farm_name", name); } else if (parsedArgs.size() < 1) { sender.sendMessage(ChatColor.RED + "Too few parameters given."); return false; } Player player = ((Player) sender).getPlayer(); String resource = parsedArgs.get(0); params.put("mc_uuid", player.getUniqueId().toString().replace("-", "")); params.put("resource", resource); RunCommand("delete_resource", params, Method.POST , new CommandCallback(sender, resource)); } else { sender.sendMessage(ChatColor.RED + "Console can not add items!"); } return true; } private class CommandCallback extends GeoffreyAPICallback { private String resourceName; CommandCallback(CommandSender sender, String resourceName) { super(sender); this.resourceName = resourceName; errors.put("LocationLookUpError", "You do not have a farm by that name, goober."); errors.put("EntryNameNotUniqueError", "You have more than one location. Please specify a name, dingus."); errors.put("ResourceNotFoundError", "Your farm does not produce " + resourceName + ". Try again buddy boi!"); } @Override public void invoke(String s) { try { JsonElement json = parseJSON(s); GeoffreyLocation geoffreyLocation = new GeoffreyLocation(json.getAsJsonObject()); String msg = ChatColor.GREEN + resourceName + " has been deleted from " + geoffreyLocation.getLocationName() + "."; commandSender.sendMessage(msg); } catch (GeoffreyCommandError e) { return; } } } }