mirror of
https://github.com/CPTProgrammer/ChatPlus.git
synced 2025-05-13 07:18:14 +08:00
Update to 1.20.4 (#4)
* Update gradle * Update loom * Use 1.20.4 to build * Update to 1.20.4
This commit is contained in:
parent
7b88d13069
commit
886761f03e
@ -1,5 +1,5 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id 'fabric-loom' version '1.3-SNAPSHOT'
|
id 'fabric-loom' version '1.5-SNAPSHOT'
|
||||||
id 'maven-publish'
|
id 'maven-publish'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,9 +4,9 @@ org.gradle.parallel=true
|
|||||||
|
|
||||||
# Fabric Properties
|
# Fabric Properties
|
||||||
# check these on https://fabricmc.net/develop
|
# check these on https://fabricmc.net/develop
|
||||||
minecraft_version=1.20.1
|
minecraft_version=1.20.4
|
||||||
yarn_mappings=1.20.1+build.9
|
yarn_mappings=1.20.4+build.3
|
||||||
loader_version=0.14.21
|
loader_version=0.15.6
|
||||||
|
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version=0.20.2
|
mod_version=0.20.2
|
||||||
@ -14,4 +14,4 @@ maven_group=cn.revaria.chatplus
|
|||||||
archives_base_name=chat-plus
|
archives_base_name=chat-plus
|
||||||
|
|
||||||
# Dependencies
|
# Dependencies
|
||||||
fabric_version=0.85.0+1.20.1
|
fabric_version=0.95.1+1.20.4
|
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@ -1,6 +1,6 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
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
|
networkTimeout=10000
|
||||||
validateDistributionUrl=true
|
validateDistributionUrl=true
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
@ -2,6 +2,7 @@ package cn.revaria.chatplus.mixin;
|
|||||||
|
|
||||||
import net.minecraft.SharedConstants;
|
import net.minecraft.SharedConstants;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.network.ClientConnection;
|
||||||
import net.minecraft.network.message.LastSeenMessageList;
|
import net.minecraft.network.message.LastSeenMessageList;
|
||||||
import net.minecraft.network.message.MessageChain;
|
import net.minecraft.network.message.MessageChain;
|
||||||
import net.minecraft.network.message.MessageType;
|
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.network.message.MessageChainTaskQueue;
|
||||||
import net.minecraft.server.MinecraftServer;
|
import net.minecraft.server.MinecraftServer;
|
||||||
import net.minecraft.network.packet.c2s.play.ChatMessageC2SPacket;
|
import net.minecraft.network.packet.c2s.play.ChatMessageC2SPacket;
|
||||||
import net.minecraft.server.PlayerManager;
|
|
||||||
import net.minecraft.server.filter.FilteredMessage;
|
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.ServerPlayerEntity;
|
||||||
import net.minecraft.server.network.ServerPlayNetworkHandler;
|
import net.minecraft.server.network.ServerPlayNetworkHandler;
|
||||||
import net.minecraft.text.MutableText;
|
import net.minecraft.text.MutableText;
|
||||||
import net.minecraft.text.Text;
|
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.Final;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.Shadow;
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
import org.spongepowered.asm.mixin.injection.Inject;
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
|
||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.time.Instant;
|
|
||||||
import java.util.ArrayDeque;
|
import java.util.ArrayDeque;
|
||||||
import java.util.Deque;
|
import java.util.Deque;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
@ -36,25 +34,19 @@ import java.util.regex.Matcher;
|
|||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
@Mixin(ServerPlayNetworkHandler.class)
|
@Mixin(ServerPlayNetworkHandler.class)
|
||||||
public abstract class MixinChat {
|
public abstract class MixinChat extends ServerCommonNetworkHandler {
|
||||||
@Shadow @Final
|
public MixinChat(MinecraftServer server, ClientConnection connection, ConnectedClientData clientData) {
|
||||||
static Logger LOGGER;
|
super(server, connection, clientData);
|
||||||
|
}
|
||||||
@Final
|
|
||||||
@Shadow
|
|
||||||
private MinecraftServer server;
|
|
||||||
|
|
||||||
@Shadow
|
|
||||||
public abstract void disconnect(Text reason);
|
|
||||||
|
|
||||||
@Final
|
@Final
|
||||||
@Shadow
|
@Shadow
|
||||||
private MessageChainTaskQueue messageChainTaskQueue;
|
private MessageChainTaskQueue messageChainTaskQueue;
|
||||||
|
|
||||||
@Shadow
|
@Shadow
|
||||||
private ServerPlayerEntity player;
|
public ServerPlayerEntity player;
|
||||||
|
|
||||||
@Shadow protected abstract Optional<LastSeenMessageList> validateMessage(String message, Instant timestamp, LastSeenMessageList.Acknowledgment acknowledgment);
|
@Shadow protected abstract Optional<LastSeenMessageList> validateMessage(LastSeenMessageList.Acknowledgment acknowledgment);
|
||||||
|
|
||||||
@Shadow protected abstract SignedMessage getSignedMessage(ChatMessageC2SPacket packet, LastSeenMessageList lastSeenMessages) throws MessageChain.MessageChainException;
|
@Shadow protected abstract SignedMessage getSignedMessage(ChatMessageC2SPacket packet, LastSeenMessageList lastSeenMessages) throws MessageChain.MessageChainException;
|
||||||
|
|
||||||
@ -71,7 +63,7 @@ public abstract class MixinChat {
|
|||||||
if (hasIllegalCharacter(packet.chatMessage())) {
|
if (hasIllegalCharacter(packet.chatMessage())) {
|
||||||
disconnect(Text.translatable("multiplayer.disconnect.illegal_characters"));
|
disconnect(Text.translatable("multiplayer.disconnect.illegal_characters"));
|
||||||
} else {
|
} else {
|
||||||
Optional<LastSeenMessageList> optional = this.validateMessage(packet.chatMessage(), packet.timestamp(), packet.acknowledgment());
|
Optional<LastSeenMessageList> optional = this.validateMessage(packet.acknowledgment());
|
||||||
if (optional.isPresent()) {
|
if (optional.isPresent()) {
|
||||||
if (!packet.chatMessage().startsWith("/")){
|
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) {
|
for (String message : messages) {
|
||||||
changedText.append(Text.of(message));
|
changedText.append(Text.of(message));
|
||||||
if (!itemDeque.isEmpty()) {
|
if (!itemDeque.isEmpty()) {
|
||||||
@ -131,12 +123,10 @@ public abstract class MixinChat {
|
|||||||
}
|
}
|
||||||
|
|
||||||
CompletableFuture<FilteredMessage> completableFuture = filterText(signedMessage.getSignedContent());
|
CompletableFuture<FilteredMessage> completableFuture = filterText(signedMessage.getSignedContent());
|
||||||
CompletableFuture<Text> completableFuture2 = this.server.getMessageDecorator().decorate(this.player, signedMessage.getContent());
|
Text decoratedMessage = this.server.getMessageDecorator().decorate(this.player, signedMessage.getContent());
|
||||||
messageChainTaskQueue.append((executor) -> {
|
messageChainTaskQueue.append(completableFuture, filteredMessage -> {
|
||||||
return CompletableFuture.allOf(completableFuture, completableFuture2).thenAcceptAsync((void_) -> {
|
SignedMessage message = signedMessage.withUnsignedContent(decoratedMessage).withFilterMask(filteredMessage.mask());
|
||||||
SignedMessage signedMessage2 = signedMessage.withUnsignedContent((Text) completableFuture2.join()).withFilterMask(((FilteredMessage) completableFuture.join()).mask());
|
this.handleDecoratedMessage(message);
|
||||||
handleDecoratedMessage(signedMessage2);
|
|
||||||
}, executor);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user