Skip to content

Commit

Permalink
Do the port thing
Browse files Browse the repository at this point in the history
  • Loading branch information
Aizistral committed Dec 6, 2023
1 parent 1f6b9cc commit 09c6327
Show file tree
Hide file tree
Showing 10 changed files with 40 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -72,7 +72,7 @@ public static Optional<String> 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));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()));
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -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 -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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]));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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();

Expand Down
14 changes: 10 additions & 4 deletions src/main/resources/nochatreports.accesswidener
Original file line number Diff line number Diff line change
Expand Up @@ -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;
#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;

0 comments on commit 09c6327

Please sign in to comment.