From 7f6043a230b83cff57126625cd8b19063c85a599 Mon Sep 17 00:00:00 2001 From: anhgelus Date: Fri, 23 Aug 2024 13:41:22 +0000 Subject: feat(config): packet sending config to client --- .../anhgelus/molehunt/client/MolehuntClient.java | 35 ++++++++++++++++------ .../anhgelus/molehunt/client/mixin/NoSkin.java | 4 +-- 2 files changed, 28 insertions(+), 11 deletions(-) (limited to 'src/client/java') diff --git a/src/client/java/world/anhgelus/molehunt/client/MolehuntClient.java b/src/client/java/world/anhgelus/molehunt/client/MolehuntClient.java index e6de219..5f6b735 100644 --- a/src/client/java/world/anhgelus/molehunt/client/MolehuntClient.java +++ b/src/client/java/world/anhgelus/molehunt/client/MolehuntClient.java @@ -1,20 +1,37 @@ package world.anhgelus.molehunt.client; -import com.mojang.authlib.GameProfile; import net.fabricmc.api.ClientModInitializer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.UUID; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import world.anhgelus.molehunt.config.ConfigPayload; public class MolehuntClient implements ClientModInitializer { - public static final String MOD_ID = "molehunt"; - public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID); - - public final static GameProfile ANONYMOUS_PROFILE = new GameProfile(UUID.fromString("015f3266-4e0a-412e-9b80-1ca76af79453"), "Molehunt"); + private static boolean SHOW_SKINS = false; + private static boolean SHOW_NAMETAGS = false; + private static boolean SHOW_TAB = false; @Override public void onInitializeClient() { + ClientPlayNetworking.registerGlobalReceiver(ConfigPayload.ID, (payload, context) -> { + try (final var client = context.client()) { + client.execute(() -> { + SHOW_SKINS = payload.showSkins(); + SHOW_NAMETAGS = payload.showNametag(); + SHOW_TAB = payload.showNametag(); + }); + } + }); + } + + public static boolean showSkins() { + return SHOW_SKINS; + } + + public static boolean showNameTags() { + return SHOW_NAMETAGS; + } + + public static boolean showTab() { + return SHOW_TAB; } } diff --git a/src/client/java/world/anhgelus/molehunt/client/mixin/NoSkin.java b/src/client/java/world/anhgelus/molehunt/client/mixin/NoSkin.java index edbfd15..425ded7 100644 --- a/src/client/java/world/anhgelus/molehunt/client/mixin/NoSkin.java +++ b/src/client/java/world/anhgelus/molehunt/client/mixin/NoSkin.java @@ -7,14 +7,14 @@ 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.CallbackInfoReturnable; -import world.anhgelus.molehunt.client.MolehuntClient; +import world.anhgelus.molehunt.Molehunt; @Mixin(AbstractClientPlayerEntity.class) public class NoSkin { @Inject(at = @At("HEAD"), method = "getSkinTextures", cancellable = true) public void getSkin(CallbackInfoReturnable cir) { cir.setReturnValue(new SkinTextures( - Identifier.of(MolehuntClient.MOD_ID, "textures/skin.png"), + Identifier.of(Molehunt.MOD_ID, "textures/skin.png"), null, null, null, -- cgit v1.2.3 From 7fd5caf38a9b3ef71d94d9085ee92b47c3c449e3 Mon Sep 17 00:00:00 2001 From: anhgelus Date: Fri, 23 Aug 2024 13:42:56 +0000 Subject: feat(config): disable mixins according to config's packet --- .../world/anhgelus/molehunt/client/mixin/NoNametags.java | 3 ++- .../anhgelus/molehunt/client/mixin/NoPlayerListHud.java | 2 ++ .../java/world/anhgelus/molehunt/client/mixin/NoSkin.java | 12 +++++++----- 3 files changed, 11 insertions(+), 6 deletions(-) (limited to 'src/client/java') diff --git a/src/client/java/world/anhgelus/molehunt/client/mixin/NoNametags.java b/src/client/java/world/anhgelus/molehunt/client/mixin/NoNametags.java index 7996c49..3482abb 100644 --- a/src/client/java/world/anhgelus/molehunt/client/mixin/NoNametags.java +++ b/src/client/java/world/anhgelus/molehunt/client/mixin/NoNametags.java @@ -9,12 +9,13 @@ 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 world.anhgelus.molehunt.client.MolehuntClient; @Mixin(EntityRenderer.class) public class NoNametags { @Inject(at = @At("HEAD"), method = "render", cancellable = true) private void renderLabelOrNot(T entity, float yaw, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) { - if (!(entity instanceof PlayerEntity)) return; + if (!(entity instanceof PlayerEntity) || MolehuntClient.showNameTags()) return; ci.cancel(); } } \ No newline at end of file diff --git a/src/client/java/world/anhgelus/molehunt/client/mixin/NoPlayerListHud.java b/src/client/java/world/anhgelus/molehunt/client/mixin/NoPlayerListHud.java index 8ef33fd..00308ea 100644 --- a/src/client/java/world/anhgelus/molehunt/client/mixin/NoPlayerListHud.java +++ b/src/client/java/world/anhgelus/molehunt/client/mixin/NoPlayerListHud.java @@ -5,11 +5,13 @@ 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 world.anhgelus.molehunt.client.MolehuntClient; @Mixin(PlayerListHud.class) public class NoPlayerListHud { @Inject(at = @At("HEAD"), method = "render", cancellable = true) public void render(CallbackInfo ci) { + if (MolehuntClient.showTab()) return; ci.cancel(); } } diff --git a/src/client/java/world/anhgelus/molehunt/client/mixin/NoSkin.java b/src/client/java/world/anhgelus/molehunt/client/mixin/NoSkin.java index 425ded7..775d789 100644 --- a/src/client/java/world/anhgelus/molehunt/client/mixin/NoSkin.java +++ b/src/client/java/world/anhgelus/molehunt/client/mixin/NoSkin.java @@ -8,17 +8,19 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import world.anhgelus.molehunt.Molehunt; +import world.anhgelus.molehunt.client.MolehuntClient; @Mixin(AbstractClientPlayerEntity.class) public class NoSkin { @Inject(at = @At("HEAD"), method = "getSkinTextures", cancellable = true) public void getSkin(CallbackInfoReturnable cir) { + if (MolehuntClient.showSkins()) return; cir.setReturnValue(new SkinTextures( - Identifier.of(Molehunt.MOD_ID, "textures/skin.png"), - null, - null, - null, - SkinTextures.Model.WIDE, true) + Identifier.of(Molehunt.MOD_ID, "textures/skin.png"), + null, + null, + null, + SkinTextures.Model.WIDE, true) ); } } -- cgit v1.2.3 From a39de9ad78f0e3b4b03453dc3f5da0b649f69288 Mon Sep 17 00:00:00 2001 From: anhgelus Date: Fri, 23 Aug 2024 13:49:13 +0000 Subject: feat(config): config for nametag, skins and tab --- src/client/java/world/anhgelus/molehunt/client/MolehuntClient.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/client/java') diff --git a/src/client/java/world/anhgelus/molehunt/client/MolehuntClient.java b/src/client/java/world/anhgelus/molehunt/client/MolehuntClient.java index 5f6b735..7770a1b 100644 --- a/src/client/java/world/anhgelus/molehunt/client/MolehuntClient.java +++ b/src/client/java/world/anhgelus/molehunt/client/MolehuntClient.java @@ -16,8 +16,8 @@ public class MolehuntClient implements ClientModInitializer { try (final var client = context.client()) { client.execute(() -> { SHOW_SKINS = payload.showSkins(); - SHOW_NAMETAGS = payload.showNametag(); - SHOW_TAB = payload.showNametag(); + SHOW_NAMETAGS = payload.showNametags(); + SHOW_TAB = payload.showTab(); }); } }); -- cgit v1.2.3 From 2e87ea59da4e7a3a56f24641c22aeac50cc5b607 Mon Sep 17 00:00:00 2001 From: anhgelus Date: Fri, 23 Aug 2024 14:22:41 +0000 Subject: fix(networking): crash while joining server --- .../java/world/anhgelus/molehunt/client/MolehuntClient.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'src/client/java') diff --git a/src/client/java/world/anhgelus/molehunt/client/MolehuntClient.java b/src/client/java/world/anhgelus/molehunt/client/MolehuntClient.java index 7770a1b..1f92573 100644 --- a/src/client/java/world/anhgelus/molehunt/client/MolehuntClient.java +++ b/src/client/java/world/anhgelus/molehunt/client/MolehuntClient.java @@ -13,13 +13,11 @@ public class MolehuntClient implements ClientModInitializer { @Override public void onInitializeClient() { ClientPlayNetworking.registerGlobalReceiver(ConfigPayload.ID, (payload, context) -> { - try (final var client = context.client()) { - client.execute(() -> { - SHOW_SKINS = payload.showSkins(); - SHOW_NAMETAGS = payload.showNametags(); - SHOW_TAB = payload.showTab(); - }); - } + context.client().execute(() -> { + SHOW_SKINS = payload.showSkins(); + SHOW_NAMETAGS = payload.showNametags(); + SHOW_TAB = payload.showTab(); + }); }); } -- cgit v1.2.3