Better debug commands

This commit is contained in:
Noel Németh 2022-06-17 23:35:57 +02:00
parent 4a04d16bad
commit c3960e6a47
3 changed files with 42 additions and 14 deletions

View File

@ -10,7 +10,6 @@ import net.minestom.demo.commands.*;
import net.minestom.server.MinecraftServer;
import net.minestom.server.command.CommandManager;
import net.minestom.server.event.player.PlayerChatEvent;
import net.minestom.server.event.player.PlayerChatPreviewEvent;
import net.minestom.server.event.server.ServerListPingEvent;
import net.minestom.server.extras.lan.OpenToLAN;
import net.minestom.server.extras.lan.OpenToLANConfig;
@ -98,16 +97,6 @@ public class Main {
// on legacy versions, colors will be converted to the section format so it'll work there too
responseData.setDescription(Component.text("This is a Minestom Server", TextColor.color(0x66b3ff)));
//responseData.setPlayersHidden(true);
}).addListener(PlayerChatPreviewEvent.class, e -> {
if (e.getQuery().contains("!")) {
e.setResult(null);
} else {
e.setResult(Component.empty()
.append(Component.text("PREPEND>", TextColor.color(255,0,255)))
.append(Component.text(e.getQuery()))
.append(Component.text("<APPEND", TextColor.color(255,0,255))));
// e.setResult(Component.text(e.getQuery(), NamedTextColor.BLACK));
}
}).addListener(PlayerChatEvent.class, e -> {
final MessageSender s = e.getSender();
e.setSender(new MessageSender(

View File

@ -1,20 +1,59 @@
package net.minestom.demo.commands;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.format.TextColor;
import net.minestom.server.MinecraftServer;
import net.minestom.server.command.builder.Command;
import net.minestom.server.command.builder.arguments.ArgumentBoolean;
import net.minestom.server.command.builder.arguments.ArgumentEnum;
import net.minestom.server.command.builder.arguments.ArgumentType;
import net.minestom.server.entity.Player;
import net.minestom.server.event.player.PlayerChatPreviewEvent;
import java.util.function.Consumer;
public class ChatPreviewCommand extends Command {
private static final ArgumentBoolean on = ArgumentType.Boolean("on");
private static final ArgumentEnum<PreviewHandler> handlerArg = ArgumentType.Enum("handler", PreviewHandler.class);
private static PreviewHandler handler = PreviewHandler.NULL;
private enum PreviewHandler {
BLACK(e -> e.setResult(Component.text(e.getQuery(), NamedTextColor.BLACK))),
//TODO Better name?
ENCLOSE(e -> e.setResult(Component.empty()
.append(Component.text("PREPEND>", TextColor.color(255,0,255)))
.append(Component.text(e.getQuery()))
.append(Component.text("<APPEND", TextColor.color(255,0,255))))),
NULL(e -> e.setResult(null));
private final Consumer<PlayerChatPreviewEvent> eventConsumer;
PreviewHandler(Consumer<PlayerChatPreviewEvent> eventConsumer) {
this.eventConsumer = eventConsumer;
}
}
public ChatPreviewCommand() {
super("preview");
MinecraftServer.getGlobalEventHandler().addListener(PlayerChatPreviewEvent.class, e -> handler.eventConsumer.accept(e));
addSyntax(((sender, context) -> {
if (sender instanceof Player player) {
player.toggleChatPreview(context.get(on));
if (context.get(on)) {
player.sendMessage("Chat preview: on");
player.toggleChatPreview(true);
} else {
player.sendMessage("Chat preview: off");
player.toggleChatPreview(false);
}
}
}), on);
addSyntax(((sender, context) -> {
handler = context.getOrDefault(handlerArg, PreviewHandler.NULL);
sender.sendMessage("Preview handler set to: " + handler.name());
}), handlerArg);
}
}

View File

@ -24,9 +24,9 @@ public class CommandSignTest extends Command {
Messenger.sendSystemMessage(player,
Component.text("Signature details: preview: ")
.append(formatBoolean(context.getSignature().signedPreview()))
.append(Component.text(", argument: "))
.append(Component.text(", argument_signature: "))
.append(format(SignatureValidator.validate(validator, signature, Component.text(context.get(message)))))
.append(Component.text(", preview: "))
.append(Component.text(", preview_signature: "))
.append(format(SignatureValidator.validate(validator, signature, player.getLastPreviewedMessage()))),
ChatPosition.CHAT);
} else {