From 886761f03ec69b468ec835b1961806bdce12b67d Mon Sep 17 00:00:00 2001 From: OffsetMonkey538 <71213040+OffsetMonkey538@users.noreply.github.com> Date: Thu, 25 Jan 2024 13:52:34 +0200 Subject: [PATCH] Update to 1.20.4 (#4) * Update gradle * Update loom * Use 1.20.4 to build * Update to 1.20.4 --- build.gradle | 2 +- gradle.properties | 8 ++-- gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 0 .../cn/revaria/chatplus/mixin/MixinChat.java | 40 +++++++------------ 5 files changed, 21 insertions(+), 31 deletions(-) mode change 100644 => 100755 gradlew diff --git a/build.gradle b/build.gradle index 6885929..aa64e2e 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'fabric-loom' version '1.3-SNAPSHOT' + id 'fabric-loom' version '1.5-SNAPSHOT' id 'maven-publish' } diff --git a/gradle.properties b/gradle.properties index b3285f1..0354f27 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,9 +4,9 @@ org.gradle.parallel=true # Fabric Properties # check these on https://fabricmc.net/develop -minecraft_version=1.20.1 -yarn_mappings=1.20.1+build.9 -loader_version=0.14.21 +minecraft_version=1.20.4 +yarn_mappings=1.20.4+build.3 +loader_version=0.15.6 # Mod Properties mod_version=0.20.2 @@ -14,4 +14,4 @@ maven_group=cn.revaria.chatplus archives_base_name=chat-plus # Dependencies -fabric_version=0.85.0+1.20.1 \ No newline at end of file +fabric_version=0.95.1+1.20.4 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 62f495d..1af9e09 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew old mode 100644 new mode 100755 diff --git a/src/main/java/cn/revaria/chatplus/mixin/MixinChat.java b/src/main/java/cn/revaria/chatplus/mixin/MixinChat.java index 2c7bc5a..735531c 100644 --- a/src/main/java/cn/revaria/chatplus/mixin/MixinChat.java +++ b/src/main/java/cn/revaria/chatplus/mixin/MixinChat.java @@ -2,6 +2,7 @@ package cn.revaria.chatplus.mixin; import net.minecraft.SharedConstants; import net.minecraft.item.ItemStack; +import net.minecraft.network.ClientConnection; import net.minecraft.network.message.LastSeenMessageList; import net.minecraft.network.message.MessageChain; import net.minecraft.network.message.MessageType; @@ -9,25 +10,22 @@ import net.minecraft.network.message.SignedMessage; import net.minecraft.network.message.MessageChainTaskQueue; import net.minecraft.server.MinecraftServer; import net.minecraft.network.packet.c2s.play.ChatMessageC2SPacket; -import net.minecraft.server.PlayerManager; import net.minecraft.server.filter.FilteredMessage; +import net.minecraft.server.network.ConnectedClientData; +import net.minecraft.server.network.ServerCommonNetworkHandler; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.server.network.ServerPlayNetworkHandler; import net.minecraft.text.MutableText; import net.minecraft.text.Text; -import net.minecraft.text.TextContent; -import org.slf4j.Logger; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.Redirect; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; -import java.time.Instant; import java.util.ArrayDeque; import java.util.Deque; import java.util.Optional; @@ -36,25 +34,19 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; @Mixin(ServerPlayNetworkHandler.class) -public abstract class MixinChat { - @Shadow @Final - static Logger LOGGER; - - @Final - @Shadow - private MinecraftServer server; - - @Shadow - public abstract void disconnect(Text reason); +public abstract class MixinChat extends ServerCommonNetworkHandler { + public MixinChat(MinecraftServer server, ClientConnection connection, ConnectedClientData clientData) { + super(server, connection, clientData); + } @Final @Shadow private MessageChainTaskQueue messageChainTaskQueue; @Shadow - private ServerPlayerEntity player; + public ServerPlayerEntity player; - @Shadow protected abstract Optional validateMessage(String message, Instant timestamp, LastSeenMessageList.Acknowledgment acknowledgment); + @Shadow protected abstract Optional validateMessage(LastSeenMessageList.Acknowledgment acknowledgment); @Shadow protected abstract SignedMessage getSignedMessage(ChatMessageC2SPacket packet, LastSeenMessageList lastSeenMessages) throws MessageChain.MessageChainException; @@ -71,7 +63,7 @@ public abstract class MixinChat { if (hasIllegalCharacter(packet.chatMessage())) { disconnect(Text.translatable("multiplayer.disconnect.illegal_characters")); } else { - Optional optional = this.validateMessage(packet.chatMessage(), packet.timestamp(), packet.acknowledgment()); + Optional optional = this.validateMessage(packet.acknowledgment()); if (optional.isPresent()) { if (!packet.chatMessage().startsWith("/")){ @@ -90,7 +82,7 @@ public abstract class MixinChat { } } - MutableText changedText = MutableText.of(TextContent.EMPTY); + MutableText changedText = Text.empty(); for (String message : messages) { changedText.append(Text.of(message)); if (!itemDeque.isEmpty()) { @@ -131,12 +123,10 @@ public abstract class MixinChat { } CompletableFuture completableFuture = filterText(signedMessage.getSignedContent()); - CompletableFuture completableFuture2 = this.server.getMessageDecorator().decorate(this.player, signedMessage.getContent()); - messageChainTaskQueue.append((executor) -> { - return CompletableFuture.allOf(completableFuture, completableFuture2).thenAcceptAsync((void_) -> { - SignedMessage signedMessage2 = signedMessage.withUnsignedContent((Text) completableFuture2.join()).withFilterMask(((FilteredMessage) completableFuture.join()).mask()); - handleDecoratedMessage(signedMessage2); - }, executor); + Text decoratedMessage = this.server.getMessageDecorator().decorate(this.player, signedMessage.getContent()); + messageChainTaskQueue.append(completableFuture, filteredMessage -> { + SignedMessage message = signedMessage.withUnsignedContent(decoratedMessage).withFilterMask(filteredMessage.mask()); + this.handleDecoratedMessage(message); }); }); }