Don't ask for player

This commit is contained in:
Teriuihi 2022-02-20 19:03:11 +01:00
parent 56010fb9ad
commit 8d6efe0265

View File

@ -31,54 +31,38 @@ public class Report {
LiteralCommandNode<CommandSource> command = LiteralArgumentBuilder LiteralCommandNode<CommandSource> command = LiteralArgumentBuilder
.<CommandSource>literal("report") .<CommandSource>literal("report")
.requires(ctx -> ctx.hasPermission("command.chat.report")) .requires(ctx -> ctx.hasPermission("command.chat.report"))
.then(RequiredArgumentBuilder.<CommandSource, String>argument("username", StringArgumentType.string()) .then(RequiredArgumentBuilder
.suggests((context, builder) -> { .<CommandSource, String>argument("report", StringArgumentType.greedyString())
Collection<String> possibleValues = new ArrayList<>(); .executes(context -> {
for (Player player : proxyServer.getAllPlayers()) { if (!(context.getSource() instanceof Player player)) {
possibleValues.add(player.getGameProfile().getName()); context.getSource().sendMessage(miniMessage.deserialize(Config.NO_CONSOLE));
return 1;
} }
if(possibleValues.isEmpty()) return Suggestions.empty(); Optional<ServerConnection> optionalServerConnection = player.getCurrentServer();
String remaining = builder.getRemaining().toLowerCase(); if (optionalServerConnection.isEmpty()) {
for (String str : possibleValues) { return 1;
if (str.toLowerCase().startsWith(remaining)) {
builder.suggest(StringArgumentType.escapeIfRequired(str));
}
} }
return builder.buildFuture(); ServerConnection serverConnection = optionalServerConnection.get();
String serverName = serverConnection.getServer().getServerInfo().getName();
EmbedBuilder embedBuilder = new EmbedBuilder();
embedBuilder.setAuthor(player.getUsername(),
"https://crafatar.com/avatars/" + player.getUniqueId() + "?overlay");
embedBuilder.setTitle("Player Report");
embedBuilder.setColor(Color.BLUE);
embedBuilder.addField("Incident",
context.getArgument("report", String.class),
false);
embedBuilder.addField("Server",
serverName.substring(0, 1).toUpperCase() + serverName.substring(1),
false);
Long id = Config.serverChannelId.get(serverName.toLowerCase());
if (id <= 0)
id = Config.serverChannelId.get("general");
DiscordLink.getPlugin().getBot().sendEmbedToDiscord(id, embedBuilder, -1);
return 1;
}) })
.then(RequiredArgumentBuilder
.<CommandSource, String>argument("report", StringArgumentType.greedyString())
.executes(context -> {
if (!(context.getSource() instanceof Player player)) {
context.getSource().sendMessage(miniMessage.deserialize(Config.NO_CONSOLE));
return 1;
}
Optional<ServerConnection> optionalServerConnection = player.getCurrentServer();
if (optionalServerConnection.isEmpty()) {
return 1;
}
ServerConnection serverConnection = optionalServerConnection.get();
String serverName = serverConnection.getServer().getServerInfo().getName();
EmbedBuilder embedBuilder = new EmbedBuilder();
embedBuilder.setAuthor(player.getUsername(),
"https://crafatar.com/avatars/" + player.getUniqueId() + "?overlay");
embedBuilder.setTitle("Player Report");
embedBuilder.setColor(Color.BLUE);
embedBuilder.addField("Incident",
context.getArgument("report", String.class),
false);
embedBuilder.addField("Server",
serverName.substring(0, 1).toUpperCase() + serverName.substring(1),
false);
Long id = Config.serverChannelId.get(serverName.toLowerCase());
if (id <= 0)
id = Config.serverChannelId.get("general");
DiscordLink.getPlugin().getBot().sendEmbedToDiscord(id, embedBuilder, -1);
return 1;
})
)
) )
.executes(context -> 0) .executes(context -> 0)
.build(); .build();