Skip to content

Commit

Permalink
Make it build
Browse files Browse the repository at this point in the history
  • Loading branch information
Aizistral committed May 7, 2024
1 parent 1c4a375 commit bb069a2
Show file tree
Hide file tree
Showing 17 changed files with 85 additions and 37 deletions.
2 changes: 1 addition & 1 deletion forge/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ tasks.updateResources.dependsOn processResources
// options.failOnError(true)
//}

jar.finalizedBy('reobfJar')
//jar.finalizedBy('reobfJar')
//publish.dependsOn('reobfJar')

publishing {
Expand Down
Binary file not shown.
5 changes: 3 additions & 2 deletions forge/src/main/resources/META-INF/accesstransformer.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,13 @@ public net.minecraft.client.gui.components.Tooltip f_256766_ #cachedTooltip
public net.minecraft.client.gui.screens.Screen f_96541_ #minecraft
public net.minecraft.client.gui.screens.Screen f_96542_ #itemRenderer
public net.minecraft.client.gui.screens.Screen f_96547_ #font
public net.minecraft.client.gui.components.AbstractWidget f_256816_ #tooltip
public-f net.minecraft.client.gui.components.AbstractWidget f_256816_ #tooltip
#public net.minecraft.client.gui.components.AbstractWidget f_256936_ #tooltipMsDelay
public net.minecraft.client.gui.screens.OptionsScreen f_260594_ #TELEMETRY

public net.minecraft.client.gui.components.Tooltip <init>(Lnet/minecraft/network/chat/Component;Lnet/minecraft/network/chat/Component;)V #<init>
#public-f net.minecraft.client.gui.components.AbstractWidget m_257936_()V #updateTooltip
#public-f net.minecraft.client.gui.components.CycleButton m_257795_()V #updateTooltip

public-f net.minecraft.client.gui.components.AbstractWidget m_88315_(Lnet/minecraft/client/gui/GuiGraphics;IIF)V #render
public-f net.minecraft.client.gui.components.AbstractWidget m_88315_(Lnet/minecraft/client/gui/GuiGraphics;IIF)V #render
public net.minecraft.client.gui.components.WidgetTooltipHolder m_323619_(Lnet/minecraft/client/gui/navigation/ScreenRectangle;ZZ)Lnet/minecraft/client/gui/screens/inventory/tooltip/ClientTooltipPositioner; #createTooltipPositioner
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@
import net.neoforged.neoforge.client.event.ClientPlayerNetworkEvent;
import net.neoforged.neoforge.event.server.ServerStartedEvent;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.common.EventBusSubscriber;
import net.neoforged.fml.common.EventBusSubscriber.Bus;
import net.neoforged.fml.common.Mod;
import net.neoforged.fml.common.Mod.EventBusSubscriber;
import net.neoforged.fml.common.Mod.EventBusSubscriber.Bus;
import net.neoforged.fml.loading.FMLEnvironment;
import net.neoforged.fml.loading.FMLPaths;

Expand Down Expand Up @@ -45,7 +45,7 @@ public Path getConfigDir() {
return FMLPaths.CONFIGDIR.get();
}

@EventBusSubscriber(modid = "nochatreports", bus = Bus.FORGE)
@EventBusSubscriber(modid = "nochatreports", bus = Bus.GAME)
public static class Events {

@SubscribeEvent
Expand Down
5 changes: 3 additions & 2 deletions neoforge/src/main/resources/META-INF/accesstransformer.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,13 @@ public net.minecraft.client.gui.components.Tooltip cachedTooltip
public net.minecraft.client.gui.screens.Screen minecraft
public net.minecraft.client.gui.screens.Screen itemRenderer
public net.minecraft.client.gui.screens.Screen font
public net.minecraft.client.gui.components.AbstractWidget tooltip
public-f net.minecraft.client.gui.components.AbstractWidget tooltip
#public net.minecraft.client.gui.components.AbstractWidget tooltipMsDelay
public net.minecraft.client.gui.screens.OptionsScreen TELEMETRY

public net.minecraft.client.gui.components.Tooltip <init>(Lnet/minecraft/network/chat/Component;Lnet/minecraft/network/chat/Component;)V
#public-f net.minecraft.client.gui.components.AbstractWidget updateTooltip()V
#public-f net.minecraft.client.gui.components.CycleButton updateTooltip()V

public-f net.minecraft.client.gui.components.AbstractWidget render(Lnet/minecraft/client/gui/GuiGraphics;IIF)V
public-f net.minecraft.client.gui.components.AbstractWidget render(Lnet/minecraft/client/gui/GuiGraphics;IIF)V
public net.minecraft.client.gui.components.WidgetTooltipHolder createTooltipPositioner(Lnet/minecraft/client/gui/navigation/ScreenRectangle;ZZ)Lnet/minecraft/client/gui/screens/inventory/tooltip/ClientTooltipPositioner;
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import com.aizistral.nochatreports.common.config.NCRConfig;
import com.aizistral.nochatreports.common.encryption.Encryptor;

import net.minecraft.core.RegistryAccess;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.ComponentContents;
import net.minecraft.network.chat.MutableComponent;
Expand Down Expand Up @@ -72,7 +73,7 @@ public static Optional<String> tryDecrypt(String message, Encryptor<?> encryptor
}

public static Component recreate(Component component) {
return Component.Serializer.fromJson(Component.Serializer.toJson(component));
return Component.Serializer.fromJson(Component.Serializer.toJson(component, RegistryAccess.EMPTY), RegistryAccess.EMPTY);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import net.fabricmc.api.Environment;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.components.ImageButton;
import net.minecraft.client.gui.components.Tooltip;
import net.minecraft.client.gui.components.WidgetSprites;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipPositioner;
Expand Down Expand Up @@ -42,10 +43,19 @@ public void renderWidget(GuiGraphics graphics, int mouseX, int mouseY, float del
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, tooltip.createTooltipPositioner(
this.isHovered(), this.isFocused(), this.getRectangle()));
if (this.tooltip instanceof AdvancedWidgetTooltipHolder holder && holder.hasCustomRender()) {
holder.doCustomRender(this.parent, graphics, mouseX, mouseY, holder.createTooltipPositioner(
this.getRectangle(), this.isHovered(), this.isFocused()));
}
}

@Override
public void setTooltip(Tooltip tooltip) {
if (tooltip instanceof AdvancedTooltip) {
this.tooltip = new AdvancedWidgetTooltipHolder();
}

super.setTooltip(tooltip);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -137,17 +137,4 @@ 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
@@ -0,0 +1,36 @@
package com.aizistral.nochatreports.common.gui;

import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.gui.components.Tooltip;
import net.minecraft.client.gui.components.WidgetTooltipHolder;
import net.minecraft.client.gui.navigation.ScreenRectangle;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.gui.screens.inventory.tooltip.ClientTooltipPositioner;

public class AdvancedWidgetTooltipHolder extends WidgetTooltipHolder {

public AdvancedWidgetTooltipHolder() {
super();
}

public AdvancedWidgetTooltipHolder(Tooltip tooltip) {
this();
}

public boolean hasCustomRender() {
return this.get() instanceof AdvancedTooltip advanced && advanced.hasCustomRender();
}

public void doCustomRender(Screen screen, GuiGraphics graphics, int x, int y, ClientTooltipPositioner positioner) {
((AdvancedTooltip) this.get()).doCustomRender(screen, graphics, x, y, positioner);
}

@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 @@ -146,6 +146,7 @@ protected void init() {
this.unfocusFields();
this.onAlgorithmUpdate(value);
});
cycle.tooltip = new AdvancedWidgetTooltipHolder(cycle.tooltip.get());

this.addRenderableWidget(this.algorithmButton = cycle);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import net.minecraft.ChatFormatting;
import net.minecraft.client.GuiMessageTag;
import net.minecraft.client.gui.components.ChatComponent;
import net.minecraft.core.RegistryAccess;
import net.minecraft.network.chat.CommonComponents;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.FormattedText;
Expand Down Expand Up @@ -59,7 +60,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.toJson((Component) msg));
Component.Serializer.toJson((Component) msg, RegistryAccess.EMPTY));
}

var decrypted = EncryptionUtil.tryDecrypt((Component) msg);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import net.minecraft.client.gui.screens.ChatScreen;
import net.minecraft.client.multiplayer.chat.ChatListener;
import net.minecraft.client.multiplayer.chat.ChatTrustLevel;
import net.minecraft.core.RegistryAccess;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.MutableComponent;
import net.minecraft.network.chat.PlayerChatMessage;
Expand Down Expand Up @@ -102,7 +103,7 @@ private void onEvaluateTrustLevel(PlayerChatMessage playerChatMessage, Component
// Debug never dies
if (NCRConfig.getCommon().enableDebugLog()) {
NCRCore.LOGGER.info("Received message: {}, from: {}, signature: {}",
Component.Serializer.toJson(playerChatMessage.unsignedContent()),
Component.Serializer.toJson(playerChatMessage.unsignedContent(), RegistryAccess.EMPTY),
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 @@ -13,6 +13,7 @@
import com.aizistral.nochatreports.common.config.NCRConfig;
import com.aizistral.nochatreports.common.core.ServerDataExtension;
import com.aizistral.nochatreports.common.gui.FontHelper;
import com.google.common.collect.Lists;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.PoseStack;

Expand Down Expand Up @@ -52,10 +53,10 @@ private void onRender(GuiGraphics graphics, int i, int j, int k, int l, int m, i
int t = n - k;
int u = o - j;
if (t >= l - 35 + xOffset && t <= l - 22 + xOffset && u >= 0 + yOffset && u <= 11 + yOffset) {
this.screen.setToolTip(FontHelper.wrap(this.minecraft.font, Language.getInstance()
.getOrDefault("gui.nochatreports.verified_server"), 250).stream()
this.screen.setTooltipForNextRenderPass(Lists.transform(FontHelper.wrap(this.minecraft.font,
Language.getInstance().getOrDefault("gui.nochatreports.verified_server"), 250).stream()
.map(Component::literal).collect(Collectors.toCollection(() ->
new ArrayList<Component>())));
new ArrayList<Component>())), Component::getVisualOrderText));
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.aizistral.nochatreports.common.mixins.client;

import java.time.Duration;
import java.util.UUID;
import java.util.function.Supplier;

Expand Down Expand Up @@ -46,7 +47,7 @@ private void onConstructed(Minecraft minecraft, SocialInteractionsScreen screen,
this.reportButton = new AdvancedImageButton(0, 0, 20, 20, SwitchableSprites.of(REPORT_BUTTON_SPRITES),
button -> {}, Component.translatable("gui.socialInteractions.report"), screen);
this.reportButton.setTooltip(Tooltip.create(NCR_BUTTON_TOOLTIP));
this.reportButton.setTooltipDelay(10);
this.reportButton.setTooltipDelay(Duration.ofMillis(500L));
this.reportButton.active = false;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ private void onReadJsonWithCodec(Codec codec, CallbackInfoReturnable info) throw

JsonElement jsonElement = GsonHelper.fromJson(GSON, this.readUtf(), JsonElement.class);
DataResult dataResult = codec.parse(JsonOps.INSTANCE, jsonElement);
Object result = Util.getOrThrow(dataResult, string -> new DecoderException("Failed to decode json: " + string));
Object result = dataResult.getOrThrow(string -> new DecoderException("Failed to decode json: " + string));

if (jsonElement.getAsJsonObject().has("preventsChatReports")) {
((ServerDataExtension) result).setPreventsChatReports(jsonElement.getAsJsonObject()
Expand All @@ -57,7 +57,7 @@ private void onWriteJsonWithCodec(Codec codec, Object object, CallbackInfo info)
info.cancel();

DataResult<JsonElement> dataResult = codec.encodeStart(JsonOps.INSTANCE, object);
JsonElement element = Util.getOrThrow(dataResult, string -> new EncoderException("Failed to encode: " + string + " " + object));
JsonElement element = dataResult.getOrThrow(string -> new EncoderException("Failed to encode: " + string + " " + object));

element.getAsJsonObject().addProperty("preventsChatReports", true);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,10 @@ private void onSend(Packet<?> packet, CallbackInfo info) {

if (NCRConfig.getCommon().convertToGameMessage()) {
if (packet instanceof ClientboundPlayerChatPacket chat) {
packet = new ClientboundSystemChatPacket(chat.chatType().resolve(listener.player.level()
.registryAccess()).get().decorate(chat.unsignedContent() != null ? chat.unsignedContent()
: Component.literal(chat.body().content())), false);
packet = new ClientboundSystemChatPacket(chat.chatType().decorate(
chat.unsignedContent() != null ? chat.unsignedContent()
: Component.literal(chat.body().content())
), false);

info.cancel();
listener.send(packet);
Expand Down
8 changes: 7 additions & 1 deletion src/main/resources/nochatreports.accesswidener
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,10 @@ accessible method net/minecraft/client/gui/components/AbstractWidget render (Lne
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;
#extendable method net/minecraft/client/gui/components/Tooltip createTooltipPositioner (ZZLnet/minecraft/client/gui/navigation/ScreenRectangle;)Lnet/minecraft/client/gui/screens/inventory/tooltip/ClientTooltipPositioner;

accessible field net/minecraft/client/gui/components/AbstractWidget tooltip Lnet/minecraft/client/gui/components/WidgetTooltipHolder;
mutable field net/minecraft/client/gui/components/AbstractWidget tooltip Lnet/minecraft/client/gui/components/WidgetTooltipHolder;

accessible method net/minecraft/client/gui/components/WidgetTooltipHolder createTooltipPositioner (Lnet/minecraft/client/gui/navigation/ScreenRectangle;ZZ)Lnet/minecraft/client/gui/screens/inventory/tooltip/ClientTooltipPositioner;
extendable method net/minecraft/client/gui/components/WidgetTooltipHolder createTooltipPositioner (Lnet/minecraft/client/gui/navigation/ScreenRectangle;ZZ)Lnet/minecraft/client/gui/screens/inventory/tooltip/ClientTooltipPositioner;

0 comments on commit bb069a2

Please sign in to comment.