From 7337d13cd0ccb2e6ace61fa7a1646e3a35f41b37 Mon Sep 17 00:00:00 2001 From: Xujiayao Date: Mon, 21 Mar 2022 21:07:43 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E5=86=99=E5=AE=8C=E6=88=90=E8=87=B3?= =?UTF-8?q?=E7=8E=A9=E5=AE=B6=E5=8A=A0=E5=85=A5=E7=A6=BB=E5=BC=80=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/top/xujiayao/mcdiscordchat/Main.java | 2 -- .../minecraft/mixins/ExampleMixin.java | 22 ------------- .../minecraft/mixins/MixinPlayerManager.java | 31 +++++++++++++++++++ src/main/resources/fabric.mod.json | 3 ++ src/main/resources/mcdiscordchat.mixins.json | 4 +-- 5 files changed, 36 insertions(+), 26 deletions(-) delete mode 100644 src/main/java/top/xujiayao/mcdiscordchat/minecraft/mixins/ExampleMixin.java create mode 100644 src/main/java/top/xujiayao/mcdiscordchat/minecraft/mixins/MixinPlayerManager.java diff --git a/src/main/java/top/xujiayao/mcdiscordchat/Main.java b/src/main/java/top/xujiayao/mcdiscordchat/Main.java index e278edef..dc4c80cf 100644 --- a/src/main/java/top/xujiayao/mcdiscordchat/Main.java +++ b/src/main/java/top/xujiayao/mcdiscordchat/Main.java @@ -76,7 +76,5 @@ public class Main implements DedicatedServerModInitializer { JDA.shutdown(); }); - - //MinecraftEventListener.init(); } } diff --git a/src/main/java/top/xujiayao/mcdiscordchat/minecraft/mixins/ExampleMixin.java b/src/main/java/top/xujiayao/mcdiscordchat/minecraft/mixins/ExampleMixin.java deleted file mode 100644 index 16a3b511..00000000 --- a/src/main/java/top/xujiayao/mcdiscordchat/minecraft/mixins/ExampleMixin.java +++ /dev/null @@ -1,22 +0,0 @@ -package top.xujiayao.mcdiscordchat.minecraft.mixins; - -import net.minecraft.client.gui.screen.TitleScreen; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import static top.xujiayao.mcdiscordchat.Main.LOGGER; - -/** - * @author Xujiayao - */ -@Mixin({TitleScreen.class}) -public class ExampleMixin { - - @Inject(at = @At("HEAD"), method = "init()V") - private void init(CallbackInfo info) { - LOGGER.info("This line is printed by an example mod mixin!"); - } -} - diff --git a/src/main/java/top/xujiayao/mcdiscordchat/minecraft/mixins/MixinPlayerManager.java b/src/main/java/top/xujiayao/mcdiscordchat/minecraft/mixins/MixinPlayerManager.java new file mode 100644 index 00000000..aa92c445 --- /dev/null +++ b/src/main/java/top/xujiayao/mcdiscordchat/minecraft/mixins/MixinPlayerManager.java @@ -0,0 +1,31 @@ +package top.xujiayao.mcdiscordchat.minecraft.mixins; + +import net.dv8tion.jda.api.utils.MarkdownSanitizer; +import net.minecraft.network.ClientConnection; +import net.minecraft.server.PlayerManager; +import net.minecraft.server.network.ServerPlayerEntity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import static top.xujiayao.mcdiscordchat.Main.CHANNEL; +import static top.xujiayao.mcdiscordchat.Main.TEXTS; + +/** + * @author Xujiayao + */ +@Mixin(PlayerManager.class) +public class MixinPlayerManager { + + @Inject(method = "onPlayerConnect", at = @At("RETURN")) + private void onPlayerConnect(ClientConnection connection, ServerPlayerEntity player, CallbackInfo ci) { + CHANNEL.sendMessage(TEXTS.joinServer().replace("%playerName%", MarkdownSanitizer.escape(player.getEntityName()))).queue(); + } + + @Inject(method = "remove", at = @At("RETURN")) + private void remove(ServerPlayerEntity player, CallbackInfo ci) { + CHANNEL.sendMessage(TEXTS.leftServer().replace("%playerName%", MarkdownSanitizer.escape(player.getEntityName()))).queue(); + } +} + diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 0b247d1b..082848b3 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -20,6 +20,9 @@ "top.xujiayao.mcdiscordchat.Main" ] }, + "mixins": [ + "mcdiscordchat.mixins.json" + ], "depends": { "fabricloader": ">=0.13.3", "fabric": "*", diff --git a/src/main/resources/mcdiscordchat.mixins.json b/src/main/resources/mcdiscordchat.mixins.json index b4ec4e4c..ef8101de 100644 --- a/src/main/resources/mcdiscordchat.mixins.json +++ b/src/main/resources/mcdiscordchat.mixins.json @@ -1,9 +1,9 @@ { "required": true, - "package": "top.xujiayao.mcdiscordchat.mixins", + "package": "top.xujiayao.mcdiscordchat.minecraft.mixins", "compatibilityLevel": "JAVA_17", "mixins": [ - "ExampleMixin" + "MixinPlayerManager" ], "injectors": { "defaultRequire": 1