mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-08 19:34:09 +01:00
66779f5c86
== AT == public net.minecraft.network.chat.HoverEvent$ItemStackInfo item public net.minecraft.network.chat.HoverEvent$ItemStackInfo count public net.minecraft.network.chat.HoverEvent$ItemStackInfo components public net.minecraft.network.chat.contents.TranslatableContents filterAllowedArguments(Ljava/lang/Object;)Lcom/mojang/serialization/DataResult; Co-authored-by: zml <zml@stellardrift.ca> Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
29 lines
2.2 KiB
Diff
29 lines
2.2 KiB
Diff
--- a/net/minecraft/commands/arguments/MessageArgument.java
|
|
+++ b/net/minecraft/commands/arguments/MessageArgument.java
|
|
@@ -54,17 +54,21 @@
|
|
private static void resolveSignedMessage(Consumer<PlayerChatMessage> callback, CommandSourceStack source, PlayerChatMessage message) {
|
|
MinecraftServer minecraftServer = source.getServer();
|
|
CompletableFuture<FilteredText> completableFuture = filterPlainText(source, message);
|
|
- Component component = minecraftServer.getChatDecorator().decorate(source.getPlayer(), message.decoratedContent());
|
|
- source.getChatMessageChainer().append(completableFuture, filtered -> {
|
|
- PlayerChatMessage playerChatMessage2 = message.withUnsignedContent(component).filter(filtered.mask());
|
|
+ // Paper start - support asynchronous chat decoration
|
|
+ CompletableFuture<Component> componentFuture = minecraftServer.getChatDecorator().decorate(source.getPlayer(), source, message.decoratedContent());
|
|
+ source.getChatMessageChainer().append(CompletableFuture.allOf(completableFuture, componentFuture), filtered -> {
|
|
+ PlayerChatMessage playerChatMessage2 = message.withUnsignedContent(componentFuture.join()).filter(completableFuture.join().mask());
|
|
+ // Paper end - support asynchronous chat decoration
|
|
callback.accept(playerChatMessage2);
|
|
});
|
|
}
|
|
|
|
private static void resolveDisguisedMessage(Consumer<PlayerChatMessage> callback, CommandSourceStack source, PlayerChatMessage message) {
|
|
ChatDecorator chatDecorator = source.getServer().getChatDecorator();
|
|
- Component component = chatDecorator.decorate(source.getPlayer(), message.decoratedContent());
|
|
- callback.accept(message.withUnsignedContent(component));
|
|
+ // Paper start - support asynchronous chat decoration
|
|
+ CompletableFuture<Component> componentFuture = chatDecorator.decorate(source.getPlayer(), source, message.decoratedContent());
|
|
+ source.getChatMessageChainer().append(componentFuture, (result) -> callback.accept(message.withUnsignedContent(result)));
|
|
+ // Paper end - support asynchronous chat decoration
|
|
}
|
|
|
|
private static CompletableFuture<FilteredText> filterPlainText(CommandSourceStack source, PlayerChatMessage message) {
|