兼容1.20.5

This commit is contained in:
Xujiayao 2024-04-20 20:33:29 +08:00
parent 16126267b8
commit 7ea8839700
11 changed files with 69 additions and 21 deletions

View file

@ -15,6 +15,7 @@ preprocess {
def mc1201 = createNode("1.20.1", 1_20_01, "mojang")
def mc1202 = createNode("1.20.2", 1_20_02, "mojang")
def mc1204 = createNode("1.20.4", 1_20_04, "mojang")
def mc1205 = createNode("1.20.5", 1_20_05, "mojang")
mc1152.link(mc1165, file("versions/mapping-1.15.2-1.16.5.txt"))
mc1165.link(mc1171, null)
@ -26,4 +27,5 @@ preprocess {
mc1194.link(mc1201, null)
mc1201.link(mc1202, file("versions/mapping-1.20.1-1.20.2.txt"))
mc1202.link(mc1204, null)
mc1204.link(mc1205, null)
}

View file

@ -9,6 +9,6 @@ archives_base_name=Discord-MC-Chat
# Wrapper Properties
# check these on https://fabricmc.net/develop
minecraft_version=1.20.4
minecraft_version=1.20.5-rc2
loader_version=0.15.10
fabric_version=0.97.0+1.20.4
fabric_version=0.97.3+1.20.5

View file

@ -34,7 +34,8 @@ def versions = Arrays.asList(
"1.19.4",
"1.20.1",
"1.20.2",
"1.20.4"
"1.20.4",
"1.20.5"
)
for (String version : versions) {
include(":$version")

View file

@ -23,6 +23,9 @@ import net.fabricmc.loader.api.FabricLoader;
import net.fellbaum.jemoji.EmojiManager;
import net.minecraft.ChatFormatting;
import net.minecraft.commands.CommandSourceStack;
//#if MC >= 12005
import net.minecraft.core.RegistryAccess;
//#endif
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.MutableComponent;
//#if MC < 11900
@ -90,11 +93,11 @@ public class DiscordEventListener extends ListenerAdapter {
.replace("%command%", e.getCommandString())));
if (CONFIG.generic.broadcastSlashCommandExecution) {
MutableComponent commandNoticeText = Component.Serializer.fromJson(Translations.translateMessage("message.formattedOtherMessage")
MutableComponent commandNoticeText = Utils.fromJson(Translations.translateMessage("message.formattedOtherMessage")
.replace("%server%", (CONFIG.multiServer.enable ? CONFIG.multiServer.name : "Discord"))
.replace("%message%", ""));
Objects.requireNonNull(commandNoticeText).append(Component.Serializer.fromJson(Translations.translateMessage("message.formattedCommandNotice")
Objects.requireNonNull(commandNoticeText).append(Utils.fromJson(Translations.translateMessage("message.formattedCommandNotice")
.replace("%name%", (CONFIG.generic.useServerNickname ? e.getMember().getEffectiveName() : e.getMember().getUser().getName()).replace("\\", "\\\\").replace("\"", "\\\""))
.replace("%roleName%", roleName)
.replace("%roleColor%", String.format("#%06X", (0xFFFFFF & e.getMember().getColorRaw())))
@ -104,7 +107,11 @@ public class DiscordEventListener extends ListenerAdapter {
player -> player.displayClientMessage(commandNoticeText, false));
if (CONFIG.multiServer.enable) {
MULTI_SERVER.sendMessage(false, false, true, null, Component.Serializer.toJson(commandNoticeText));
//#if MC >= 12005
MULTI_SERVER.sendMessage(false, false, true, null, Component.Serializer.toJson(commandNoticeText, RegistryAccess.EMPTY));
//#else
//$$ MULTI_SERVER.sendMessage(false, false, true, null, Component.Serializer.toJson(commandNoticeText));
//#endif
}
}
@ -541,7 +548,7 @@ public class DiscordEventListener extends ListenerAdapter {
if (CONFIG.generic.broadcastChatMessages) {
if (e.getMessage().getReferencedMessage() != null) {
String s = Translations.translateMessage("message.formattedResponseMessage");
MutableComponent referenceFinalText = Component.Serializer.fromJson(s
MutableComponent referenceFinalText = Utils.fromJson(s
.replace("%message%", (CONFIG.generic.formatChatMessages ? finalReferencedMessage : EmojiManager.replaceAllEmojis(referencedMessageTemp, emoji -> emoji.getDiscordAliases().get(0)).replace("\"", "\\\""))
.replace("\n", "\n" + textAfterPlaceholder[0] + "}," + s.substring(1, s.indexOf("%message%"))))
.replace("%server%", "Discord")
@ -554,7 +561,7 @@ public class DiscordEventListener extends ListenerAdapter {
}
String s = Translations.translateMessage("message.formattedChatMessage");
MutableComponent finalText = Component.Serializer.fromJson(s
MutableComponent finalText = Utils.fromJson(s
.replace("%message%", (CONFIG.generic.formatChatMessages ? finalMessage : EmojiManager.replaceAllEmojis(messageTemp, emoji -> emoji.getDiscordAliases().get(0)).replace("\"", "\\\""))
.replace("\n", "\n" + textAfterPlaceholder[1] + "}," + s.substring(1, s.indexOf("%message%"))))
.replace("%server%", "Discord")

View file

@ -159,7 +159,7 @@ public class MinecraftEventListener {
}
if (CONFIG.generic.formatChatMessages) {
return Optional.ofNullable(Component.Serializer.fromJson("[{\"text\":\"" + contentToMinecraft + "\"}]"));
return Optional.ofNullable(Utils.fromJson("[{\"text\":\"" + contentToMinecraft + "\"}]"));
} else {
return Optional.empty();
}

View file

@ -8,7 +8,12 @@ import net.minecraft.network.chat.LastSeenMessages;
//#endif
//#if MC >= 11900
import net.minecraft.network.chat.PlayerChatMessage;
import net.minecraft.network.protocol.game.ServerboundChatCommandPacket;
//#endif
//#if MC >= 11900 && MC <= 12004
//$$ import net.minecraft.network.protocol.game.ServerboundChatCommandPacket;
//#endif
//#if MC >= 12005
import net.minecraft.network.protocol.game.ServerboundChatCommandSignedPacket;
//#endif
//#if MC <= 11802
//$$ import net.minecraft.network.chat.TranslatableComponent;
@ -96,11 +101,21 @@ public class MixinServerGamePacketListenerImpl {
//$$ }
//#endif
//#if MC >= 11903
@Inject(method = "performChatCommand(Lnet/minecraft/network/protocol/game/ServerboundChatCommandPacket;Lnet/minecraft/network/chat/LastSeenMessages;)V", at = @At("HEAD"))
private void performChatCommand(ServerboundChatCommandPacket serverboundChatCommandPacket, LastSeenMessages lastSeenMessages, CallbackInfo ci) {
MinecraftEvents.PLAYER_COMMAND.invoker().command(player, "/" + serverboundChatCommandPacket.command());
//#if MC >= 12005
@Inject(method = "performUnsignedChatCommand(Ljava/lang/String;)V", at = @At("HEAD"))
private void performUnsignedChatCommand(String string, CallbackInfo ci) {
MinecraftEvents.PLAYER_COMMAND.invoker().command(player, "/" + string);
}
@Inject(method = "performSignedChatCommand(Lnet/minecraft/network/protocol/game/ServerboundChatCommandSignedPacket;Lnet/minecraft/network/chat/LastSeenMessages;)V", at = @At("HEAD"))
private void performSignedChatCommand(ServerboundChatCommandSignedPacket serverboundChatCommandSignedPacket, LastSeenMessages lastSeenMessages, CallbackInfo ci) {
MinecraftEvents.PLAYER_COMMAND.invoker().command(player, "/" + serverboundChatCommandSignedPacket.command());
}
//#elseif MC >= 11903
//$$ @Inject(method = "performChatCommand(Lnet/minecraft/network/protocol/game/ServerboundChatCommandPacket;Lnet/minecraft/network/chat/LastSeenMessages;)V", at = @At("HEAD"))
//$$ private void performChatCommand(ServerboundChatCommandPacket serverboundChatCommandPacket, LastSeenMessages lastSeenMessages, CallbackInfo ci) {
//$$ MinecraftEvents.PLAYER_COMMAND.invoker().command(player, "/" + serverboundChatCommandPacket.command());
//$$ }
//#elseif MC > 11900
//$$ @Inject(method = "performChatCommand(Lnet/minecraft/network/protocol/game/ServerboundChatCommandPacket;)V", at = @At("HEAD"))
//$$ private void performChatCommand(ServerboundChatCommandPacket serverboundChatCommandPacket, CallbackInfo ci) {

View file

@ -83,7 +83,7 @@ public class ReadThread extends Thread {
.replace("%name%", json.get("playerName").getAsString())
.replace("%message%", json.get("message").getAsString()));
MutableComponent text = Component.Serializer.fromJson(Translations.translateMessage("message.formattedChatMessage")
MutableComponent text = Utils.fromJson(Translations.translateMessage("message.formattedChatMessage")
.replace("%server%", json.get("serverName").getAsString())
.replace("%name%", json.get("playerName").getAsString())
.replace("%roleColor%", "white")
@ -95,13 +95,13 @@ public class ReadThread extends Thread {
if (json.get("isText").getAsBoolean()) {
LOGGER.info(Translations.translateMessage("message.unformattedOtherMessage")
.replace("%server%", json.get("serverName").getAsString())
.replace("%message%", Objects.requireNonNull(Component.Serializer.fromJson(json.get("message").getAsString())).getString()));
.replace("%message%", Objects.requireNonNull(Utils.fromJson(json.get("message").getAsString())).getString()));
MutableComponent text = Component.Serializer.fromJson(Translations.translateMessage("message.formattedOtherMessage")
MutableComponent text = Utils.fromJson(Translations.translateMessage("message.formattedOtherMessage")
.replace("%server%", json.get("serverName").getAsString())
.replace("%message%", ""));
Objects.requireNonNull(text).append(Component.Serializer.fromJson(json.get("message").getAsString()));
Objects.requireNonNull(text).append(Utils.fromJson(json.get("message").getAsString()));
SERVER.getPlayerList().getPlayers().forEach(
player -> player.displayClientMessage(text, false));
@ -110,7 +110,7 @@ public class ReadThread extends Thread {
.replace("%server%", json.get("serverName").getAsString())
.replace("%message%", json.get("message").getAsString()));
MutableComponent text = Component.Serializer.fromJson(Translations.translateMessage("message.formattedOtherMessage")
MutableComponent text = Utils.fromJson(Translations.translateMessage("message.formattedOtherMessage")
.replace("%server%", json.get("serverName").getAsString())
.replace("%message%", MarkdownParser.parseMarkdown(json.get("message").getAsString())));

View file

@ -15,6 +15,11 @@ import net.dv8tion.jda.api.interactions.commands.OptionType;
import net.dv8tion.jda.api.interactions.commands.build.Commands;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.DetectedVersion;
//#if MC >= 12005
import net.minecraft.core.RegistryAccess;
//#endif
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.MutableComponent;
//#if MC > 12002
import net.minecraft.server.ServerTickRateManager;
//#endif
@ -604,4 +609,12 @@ public class Utils {
return new Tuple<>(tps, mspt);
}
public static MutableComponent fromJson(String json) {
//#if MC >= 12005
return Component.Serializer.fromJson(json, RegistryAccess.EMPTY);
//#else
//$$ return Component.Serializer.fromJson(json);
//#endif
}
}

View file

@ -4,7 +4,7 @@ minecraft_version=1.20.4
loader_version=0.15.10
# Fabric Mod Metadata
minecraft_dependency=~1.20.3
minecraft_dependency=1.20.3,1.10.4
# Dependencies
fabric_version=0.97.0+1.20.4

View file

@ -0,0 +1,10 @@
# Fabric Properties
# check these on https://fabricmc.net/develop
minecraft_version=1.20.5-rc2
loader_version=0.15.10
# Fabric Mod Metadata
minecraft_dependency=1.20.5
# Dependencies
fabric_version=0.97.3+1.20.5

View file

@ -1 +1 @@
1.20.4
1.20.5