Added /tickets command

This commit is contained in:
Roni Lehto 2021-10-21 22:28:22 +03:00
parent e1cb309f29
commit 9e5ff4110b
3 changed files with 70 additions and 2 deletions

View File

@ -1,6 +1,7 @@
package fi.xeno.aquamarine; package fi.xeno.aquamarine;
import fi.xeno.aquamarine.command.CommandTicket; import fi.xeno.aquamarine.command.CommandTicket;
import fi.xeno.aquamarine.command.CommandTickets;
import fi.xeno.aquamarine.command.CommandXt; import fi.xeno.aquamarine.command.CommandXt;
import fi.xeno.aquamarine.command.CommandXti; import fi.xeno.aquamarine.command.CommandXti;
import fi.xeno.aquamarine.sql.XHikariDatabase; import fi.xeno.aquamarine.sql.XHikariDatabase;
@ -96,6 +97,7 @@ public class XTicketsPlugin extends JavaPlugin {
Bukkit.getPluginManager().registerEvents(ticketManager, this); Bukkit.getPluginManager().registerEvents(ticketManager, this);
registerCommand("ticket", new CommandTicket(this, ticketManager)); registerCommand("ticket", new CommandTicket(this, ticketManager));
registerCommand("tickets", new CommandTickets(this, ticketManager));
registerCommand("xt", new CommandXt(this, ticketManager)); registerCommand("xt", new CommandXt(this, ticketManager));
CommandXti ticketGuiCommand = new CommandXti(this, ticketManager); CommandXti ticketGuiCommand = new CommandXti(this, ticketManager);

View File

@ -0,0 +1,66 @@
package fi.xeno.aquamarine.command;
import fi.xeno.aquamarine.AquamarinePermission;
import fi.xeno.aquamarine.XTicketManager;
import fi.xeno.aquamarine.XTicketsPlugin;
import fi.xeno.aquamarine.util.XTicket;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabExecutor;
import org.bukkit.entity.Player;
import java.util.List;
import java.util.StringJoiner;
public class CommandTickets implements TabExecutor {
private final XTicketsPlugin plugin;
private final XTicketManager ticketManager;
public CommandTickets(XTicketsPlugin plugin, XTicketManager ticketManager) {
this.plugin = plugin;
this.ticketManager = ticketManager;
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (!sender.hasPermission(AquamarinePermission.CREATE_TICKET)) {
sender.sendMessage(plugin.lang("generic-no-permission"));
return true;
}
if (!(sender instanceof Player)) {
sender.sendMessage("§cThis command can only be executed by a player.");
return true;
}
Player player = (Player)sender;
Bukkit.getScheduler().runTaskAsynchronously(plugin, () -> {
List<XTicket> tickets = ticketManager.getStorage().getTicketsBySender(player.getUniqueId());
if (tickets.size() == 0) {
plugin.sendPrefixed(plugin.lang("generic-no-tickets"), player);
return;
}
tickets.stream()
.filter(xt -> System.currentTimeMillis() - xt.getTimestamp() <= 1000L*60*60*24*14)
.forEach(xt -> player.spigot().sendMessage(xt.renderChatPreview(false, true)));
});
return true;
}
@Override
public List<String> onTabComplete(CommandSender sender, Command cmd, String label, String[] args) {
return null;
}
}

View File

@ -158,9 +158,9 @@ public class XTicket {
String solvedString = ""; String solvedString = "";
if (this.isSolved) { if (this.isSolved) {
solvedString = String.format(plugin.lang("ticket-hover-solver"), this.solvedByName) + "\n" + solvedString = "\n" + String.format(plugin.lang("ticket-hover-solver"), this.solvedByName) + "\n" +
String.format(plugin.lang("ticket-hover-solved-at"), plugin.formatTimestamp(this.timeSolved)) + "\n" + String.format(plugin.lang("ticket-hover-solved-at"), plugin.formatTimestamp(this.timeSolved)) + "\n" +
plugin.lang("ticket-hover-comment") + "§f§o" + XText.wordWrap(this.solveComment, 40); plugin.lang("ticket-hover-comment") + " §f§o" + XText.wordWrap(this.solveComment, 40);
} }