package com.nyancraft.reportrts.command.sub; import com.nyancraft.reportrts.RTSFunctions; import com.nyancraft.reportrts.RTSPermissions; import com.nyancraft.reportrts.ReportRTS; import com.nyancraft.reportrts.data.NotificationType; import com.nyancraft.reportrts.data.User; import com.nyancraft.reportrts.event.TicketReopenEvent; import com.nyancraft.reportrts.persistence.DataProvider; import com.nyancraft.reportrts.util.BungeeCord; import com.nyancraft.reportrts.util.Message; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import java.io.IOException; public class ReopenTicket { private static ReportRTS plugin = ReportRTS.getPlugin(); private static DataProvider data = plugin.getDataProvider(); /** * Initial handling of the Reopen sub-command. * @param sender player that sent the command * @param args arguments * @return true if command handled correctly */ public static boolean handleCommand(CommandSender sender, String[] args) { if(args.length < 2 || !RTSFunctions.isNumber(args[1])) { sender.sendMessage(Message.errorTicketNaN(args[1])); return true; } if(!RTSPermissions.canReopenTicket(sender)) return true; int ticketId = Integer.parseInt(args[1]); User user = sender instanceof Player ? data.getUser(((Player) sender).getUniqueId(), 0, true) : data.getConsole(); if(data.setTicketStatus(ticketId, user.getUuid(), sender.getName(), 0, false, System.currentTimeMillis() / 1000) < 1) { sender.sendMessage(Message.errorTicketNotClosed(args[0])); return true; } if(RTSFunctions.syncTicket(ticketId)) { try { BungeeCord.globalNotify(Message.ticketReopen(sender.getName(), args[1]), ticketId, NotificationType.NEW); } catch(IOException e) { e.printStackTrace(); } RTSFunctions.messageStaff(Message.ticketReopen(sender.getName(), args[1]), true); // Let other plugins know the ticket was reopened. plugin.getServer().getPluginManager().callEvent(new TicketReopenEvent(plugin.tickets.get(ticketId), sender)); return true; } else { sender.sendMessage(Message.error("Unable to reopen request #" + args[1])); return true; } } }