From 09c63272fdf451e318ccea23cf7ad247b64cb3de Mon Sep 17 00:00:00 2001 From: Aizistral Date: Wed, 6 Dec 2023 20:37:00 +0100 Subject: [PATCH] Do the port thing --- .../common/core/EncryptionUtil.java | 4 ++-- .../common/gui/AdaptiveWarningScreen.java | 4 +++- .../common/gui/AdvancedImageButton.java | 11 ++--------- .../common/gui/AdvancedTooltip.java | 16 ++++++++++++++++ .../common/gui/EncryptionConfigScreen.java | 4 ++-- .../common/mixins/client/MixinChatComponent.java | 2 +- .../common/mixins/client/MixinChatListener.java | 2 +- .../mixins/client/MixinToastComponent.java | 4 ++-- .../mixins/common/MixinFriendlyByteBuf.java | 2 +- src/main/resources/nochatreports.accesswidener | 14 ++++++++++---- 10 files changed, 40 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/aizistral/nochatreports/common/core/EncryptionUtil.java b/src/main/java/com/aizistral/nochatreports/common/core/EncryptionUtil.java index d770525f..1155a989 100644 --- a/src/main/java/com/aizistral/nochatreports/common/core/EncryptionUtil.java +++ b/src/main/java/com/aizistral/nochatreports/common/core/EncryptionUtil.java @@ -9,7 +9,7 @@ import net.minecraft.network.chat.Component; import net.minecraft.network.chat.ComponentContents; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.network.chat.contents.LiteralContents; +import net.minecraft.network.chat.contents.PlainTextContents.LiteralContents; import net.minecraft.network.chat.contents.TranslatableContents; public class EncryptionUtil { @@ -72,7 +72,7 @@ public static Optional tryDecrypt(String message, Encryptor encryptor } public static Component recreate(Component component) { - return Component.Serializer.fromJson(Component.Serializer.toStableJson(component)); + return Component.Serializer.fromJson(Component.Serializer.toJson(component)); } } diff --git a/src/main/java/com/aizistral/nochatreports/common/gui/AdaptiveWarningScreen.java b/src/main/java/com/aizistral/nochatreports/common/gui/AdaptiveWarningScreen.java index 95c846a3..adf5d79e 100644 --- a/src/main/java/com/aizistral/nochatreports/common/gui/AdaptiveWarningScreen.java +++ b/src/main/java/com/aizistral/nochatreports/common/gui/AdaptiveWarningScreen.java @@ -6,6 +6,7 @@ import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.Checkbox; +import net.minecraft.client.gui.components.Checkbox.OnValueChange; import net.minecraft.client.gui.components.MultiLineLabel; import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.Component; @@ -43,7 +44,8 @@ protected void init() { int j = this.font.width(this.check); if (this.check != null) { - this.stopShowing = new Checkbox(this.width / 2 - j / 2 - 8, checkY + i, j + 24, 20, this.check, false); + this.stopShowing = Checkbox.builder(this.check, this.font).pos(this.width / 2 - j / 2 - 8, checkY + i) + .build(); this.addRenderableWidget(this.stopShowing); } } diff --git a/src/main/java/com/aizistral/nochatreports/common/gui/AdvancedImageButton.java b/src/main/java/com/aizistral/nochatreports/common/gui/AdvancedImageButton.java index 4b4a1da6..1f5ba23b 100644 --- a/src/main/java/com/aizistral/nochatreports/common/gui/AdvancedImageButton.java +++ b/src/main/java/com/aizistral/nochatreports/common/gui/AdvancedImageButton.java @@ -37,21 +37,14 @@ public ResourceLocation getCurrentTexture() { return this.switchable.getCurrent().get(this.isActive(), this.isHoveredOrFocused()); } - @Override - public void updateTooltip() { - if (this.tooltip instanceof AdvancedTooltip tooltip && tooltip.hasCustomRender()) - return; - - super.updateTooltip(); - } - @Override public void renderWidget(GuiGraphics graphics, int mouseX, int mouseY, float delta) { graphics.blitSprite(this.getCurrentTexture(), this.getX(), this.getY(), this.width, this.height); if (this.isHovered) if (this.tooltip instanceof AdvancedTooltip tooltip && tooltip.hasCustomRender()) { - tooltip.doCustomRender(this.parent, graphics, mouseX, mouseY, this.createTooltipPositioner()); + tooltip.doCustomRender(this.parent, graphics, mouseX, mouseY, tooltip.createTooltipPositioner( + this.isHovered(), this.isFocused(), this.getRectangle())); } } diff --git a/src/main/java/com/aizistral/nochatreports/common/gui/AdvancedTooltip.java b/src/main/java/com/aizistral/nochatreports/common/gui/AdvancedTooltip.java index 7b5c2899..adfc32bc 100644 --- a/src/main/java/com/aizistral/nochatreports/common/gui/AdvancedTooltip.java +++ b/src/main/java/com/aizistral/nochatreports/common/gui/AdvancedTooltip.java @@ -21,10 +21,13 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.Tooltip; +import net.minecraft.client.gui.navigation.ScreenRectangle; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.gui.screens.inventory.tooltip.BelowOrAboveWidgetTooltipPositioner; import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipComponent; import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipPositioner; import net.minecraft.client.gui.screens.inventory.tooltip.DefaultTooltipPositioner; +import net.minecraft.client.gui.screens.inventory.tooltip.MenuTooltipPositioner; import net.minecraft.client.gui.screens.inventory.tooltip.TooltipRenderUtil; import net.minecraft.client.renderer.GameRenderer; import net.minecraft.client.renderer.MultiBufferSource; @@ -134,4 +137,17 @@ protected void renderTooltipInternalNoGap(Screen screen, GuiGraphics graphics, L graphics.pose().popPose(); } + @Override + public ClientTooltipPositioner createTooltipPositioner(boolean hovered, boolean focused, ScreenRectangle rectangle) { + return super.createTooltipPositioner(hovered, focused, rectangle); + } + + @Override // ideally tooltip shouldn't control it's own render like this, but for now it does + public void refreshTooltipForNextRenderPass(boolean hovered, boolean focused, ScreenRectangle screenRectangle) { + if (this.hasCustomRender()) + return; + + super.refreshTooltipForNextRenderPass(hovered, focused, screenRectangle); + } + } diff --git a/src/main/java/com/aizistral/nochatreports/common/gui/EncryptionConfigScreen.java b/src/main/java/com/aizistral/nochatreports/common/gui/EncryptionConfigScreen.java index 9653b41e..42f6f202 100644 --- a/src/main/java/com/aizistral/nochatreports/common/gui/EncryptionConfigScreen.java +++ b/src/main/java/com/aizistral/nochatreports/common/gui/EncryptionConfigScreen.java @@ -126,8 +126,8 @@ protected void init() { this.addRenderableOnly(button); int checkWidth = this.font.width(ENCRYPT_PUBLIC); - this.encryptPublicCheck = new Checkbox(this.width / 2 - checkWidth / 2 - 8, this.passField.getY() + 24, checkWidth + 24, 20, - ENCRYPT_PUBLIC, NCRConfig.getEncryption().shouldEncryptPublic()); + this.encryptPublicCheck = Checkbox.builder(ENCRYPT_PUBLIC, this.font).pos(this.width / 2 - checkWidth / 2 - 8, + this.passField.getY() + 24).selected(NCRConfig.getEncryption().shouldEncryptPublic()).build(); this.addRenderableWidget(this.encryptPublicCheck); this.addRenderableWidget(Button.builder(CommonComponents.GUI_DONE, btn -> { diff --git a/src/main/java/com/aizistral/nochatreports/common/mixins/client/MixinChatComponent.java b/src/main/java/com/aizistral/nochatreports/common/mixins/client/MixinChatComponent.java index 273ea577..81d6c561 100644 --- a/src/main/java/com/aizistral/nochatreports/common/mixins/client/MixinChatComponent.java +++ b/src/main/java/com/aizistral/nochatreports/common/mixins/client/MixinChatComponent.java @@ -59,7 +59,7 @@ private synchronized GuiMessageTag modifyGUITag(GuiMessageTag tag) { private FormattedText modifyGUIMessage(FormattedText msg) { if (NCRConfig.getCommon().enableDebugLog()) { NCRCore.LOGGER.info("Adding chat message, structure: " + - Component.Serializer.toStableJson((Component) msg)); + Component.Serializer.toJson((Component) msg)); } var decrypted = EncryptionUtil.tryDecrypt((Component) msg); diff --git a/src/main/java/com/aizistral/nochatreports/common/mixins/client/MixinChatListener.java b/src/main/java/com/aizistral/nochatreports/common/mixins/client/MixinChatListener.java index 88d9809c..e304ad83 100644 --- a/src/main/java/com/aizistral/nochatreports/common/mixins/client/MixinChatListener.java +++ b/src/main/java/com/aizistral/nochatreports/common/mixins/client/MixinChatListener.java @@ -102,7 +102,7 @@ private void onEvaluateTrustLevel(PlayerChatMessage playerChatMessage, Component // Debug never dies if (NCRConfig.getCommon().enableDebugLog()) { NCRCore.LOGGER.info("Received message: {}, from: {}, signature: {}", - Component.Serializer.toStableJson(playerChatMessage.unsignedContent()), + Component.Serializer.toJson(playerChatMessage.unsignedContent()), playerChatMessage.link().sender(), Base64.getEncoder().encodeToString(playerChatMessage.signature() != null ? playerChatMessage.signature().bytes() : new byte[0])); } diff --git a/src/main/java/com/aizistral/nochatreports/common/mixins/client/MixinToastComponent.java b/src/main/java/com/aizistral/nochatreports/common/mixins/client/MixinToastComponent.java index 1d098e07..bdde5a52 100644 --- a/src/main/java/com/aizistral/nochatreports/common/mixins/client/MixinToastComponent.java +++ b/src/main/java/com/aizistral/nochatreports/common/mixins/client/MixinToastComponent.java @@ -8,7 +8,7 @@ import com.aizistral.nochatreports.common.config.NCRConfig; import net.minecraft.client.gui.components.toasts.SystemToast; -import net.minecraft.client.gui.components.toasts.SystemToast.SystemToastIds; +import net.minecraft.client.gui.components.toasts.SystemToast.SystemToastId; import net.minecraft.client.gui.components.toasts.Toast; import net.minecraft.client.gui.components.toasts.ToastComponent; @@ -18,7 +18,7 @@ public class MixinToastComponent { @Inject(method = "addToast", at = @At("HEAD"), cancellable = true) private void onAddToast(Toast toast, CallbackInfo info) { if (NCRConfig.getClient().hideWarningToast()) - if (toast instanceof SystemToast sys && sys.getToken() == SystemToastIds.UNSECURE_SERVER_WARNING) { + if (toast instanceof SystemToast sys && sys.getToken() == SystemToastId.UNSECURE_SERVER_WARNING) { info.cancel(); } } diff --git a/src/main/java/com/aizistral/nochatreports/common/mixins/common/MixinFriendlyByteBuf.java b/src/main/java/com/aizistral/nochatreports/common/mixins/common/MixinFriendlyByteBuf.java index 97fa96d2..8204bb94 100644 --- a/src/main/java/com/aizistral/nochatreports/common/mixins/common/MixinFriendlyByteBuf.java +++ b/src/main/java/com/aizistral/nochatreports/common/mixins/common/MixinFriendlyByteBuf.java @@ -31,7 +31,7 @@ public abstract class MixinFriendlyByteBuf { private static Gson GSON; @Inject(method = "readJsonWithCodec", at = @At("HEAD"), cancellable = true) - private void onReadJsonWithCodec(Codec codec, CallbackInfoReturnable info) throws Exception { + private void onReadJsonWithCodec(Codec codec, CallbackInfoReturnable info) throws Throwable { if (codec == ServerStatus.CODEC) { info.cancel(); diff --git a/src/main/resources/nochatreports.accesswidener b/src/main/resources/nochatreports.accesswidener index 6db0ea7c..34055925 100644 --- a/src/main/resources/nochatreports.accesswidener +++ b/src/main/resources/nochatreports.accesswidener @@ -15,7 +15,13 @@ accessible field net/minecraft/client/gui/components/Tooltip cachedTooltip Ljava accessible field net/minecraft/client/gui/screens/Screen minecraft Lnet/minecraft/client/Minecraft; accessible field net/minecraft/client/gui/screens/Screen font Lnet/minecraft/client/gui/Font; accessible field net/minecraft/client/gui/components/AbstractWidget tooltip Lnet/minecraft/client/gui/components/Tooltip; -accessible field net/minecraft/client/gui/components/AbstractWidget tooltipMsDelay I -accessible method net/minecraft/client/gui/components/AbstractWidget updateTooltip ()V -extendable method net/minecraft/client/gui/components/AbstractWidget updateTooltip ()V -accessible field net/minecraft/client/gui/screens/OptionsScreen TELEMETRY Lnet/minecraft/network/chat/Component; \ No newline at end of file +#accessible field net/minecraft/client/gui/components/AbstractWidget tooltipMsDelay I +#accessible method net/minecraft/client/gui/components/AbstractWidget updateTooltip ()V +#extendable method net/minecraft/client/gui/components/AbstractWidget updateTooltip ()V +accessible field net/minecraft/client/gui/screens/OptionsScreen TELEMETRY Lnet/minecraft/network/chat/Component; + +accessible method net/minecraft/client/gui/components/AbstractWidget render (Lnet/minecraft/client/gui/GuiGraphics;IIF)V +extendable method net/minecraft/client/gui/components/AbstractWidget render (Lnet/minecraft/client/gui/GuiGraphics;IIF)V + +#accessible method net/minecraft/client/gui/components/Tooltip createTooltipPositioner (ZZLnet/minecraft/client/gui/navigation/ScreenRectangle;)Lnet/minecraft/client/gui/screens/inventory/tooltip/ClientTooltipPositioner; +#extendable method net/minecraft/client/gui/components/Tooltip createTooltipPositioner (ZZLnet/minecraft/client/gui/navigation/ScreenRectangle;)Lnet/minecraft/client/gui/screens/inventory/tooltip/ClientTooltipPositioner; \ No newline at end of file