package xyz.etztech.minecraftmanager.command; import org.apache.commons.lang.StringUtils; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import xyz.etztech.core.web.Http; import xyz.etztech.core.web.ICallback; import xyz.etztech.minecraftmanager.MCMAPI; import xyz.etztech.minecraftmanager.MCMUtil; import xyz.etztech.minecraftmanager.MinecraftManager; import xyz.etztech.minecraftmanager.objects.MCMResponse; import java.util.Arrays; import java.util.Map; public class CommandWarning implements CommandExecutor { MinecraftManager plugin; public CommandWarning(MinecraftManager plugin) { this.plugin = plugin; plugin.getCommand("warning").setExecutor(this); } private class WarningCallback implements ICallback { private Player player; WarningCallback(Player player) { this.player = player; } @Override public void invoke(String s) { MCMResponse response = new MCMResponse(s); player.spigot().sendMessage(response.getMCJSON()); } } @Override public boolean onCommand(CommandSender sender, Command command, String base, String[] args) { if (!(sender instanceof Player)) { sender.sendMessage(ChatColor.RED + "The console cannot issue warnings."); return true; } Player staff = (Player) sender; if (sender.hasPermission("minecraftmanager.warning")) { if (args.length < 3) { sender.sendMessage(ChatColor.RED + "/warning "); return true; } String uuid = MCMUtil.getUUID(args[0]); if (uuid == null) { sender.sendMessage(ChatColor.RED + "Could not issue warning, no player found."); return false; } String djangoUrl = MCMAPI.getDjangoUrl() + "plugin/warning/"; Map data = MCMAPI.setup(); data.put("player", uuid); data.put("staff", staff.getUniqueId().toString()); data.put("severity", getSeverity(args[1])); data.put("message", StringUtils.join(Arrays.copyOfRange(args, 2, args.length), " ")); Http.asyncPostCallback(plugin, djangoUrl, data, new WarningCallback(staff)); } else { sender.sendMessage(ChatColor.RED + "You do not have permission to issue a warning."); } return true; } private String getSeverity(String severity) { if (severity.equalsIgnoreCase("H") || severity.equalsIgnoreCase("HIGH")) { return "H"; } else if (severity.equalsIgnoreCase("M") || severity.equalsIgnoreCase("MEDIUM")) { return "M"; } else { return "L"; } } }