From 3be33bb522f468b812bb59b7f2edc8d1ca352661 Mon Sep 17 00:00:00 2001 From: nea Date: Wed, 3 May 2023 00:52:37 +0200 Subject: Modernize and 1.19.4ify --- .../mixins/MixinClientPlayNetworkHandler.java | 17 +++++++++ .../mixins/MixinMessageHandler.java | 34 ++++++++++++++++++ .../notenoughupdates/mixins/MixinMinecraft.java | 26 ++++++++++++++ .../mixins/MixinWorldRenderer.java | 26 ++++++++++++++ .../events/WorldRenderLastEvent.kt | 2 +- .../mixins/MixinClientBrandRetriever.kt | 18 ---------- .../mixins/MixinClientPlayNetworkHandler.kt | 17 --------- .../notenoughupdates/mixins/MixinMessageHandler.kt | 33 ----------------- .../nea/notenoughupdates/mixins/MixinMinecraft.kt | 20 ----------- .../notenoughupdates/mixins/MixinWorldRenderer.kt | 41 ---------------------- .../notenoughupdates/rei/SBItemEntryDefinition.kt | 4 +-- .../kotlin/moe/nea/notenoughupdates/util/SBData.kt | 15 +------- .../moe/nea/notenoughupdates/util/render/block.kt | 4 +-- src/main/resources/fabric.mod.json | 4 +-- src/main/resources/notenoughupdates.mixins.json | 3 +- 15 files changed, 111 insertions(+), 153 deletions(-) create mode 100644 src/main/java/moe/nea/notenoughupdates/mixins/MixinClientPlayNetworkHandler.java create mode 100644 src/main/java/moe/nea/notenoughupdates/mixins/MixinMessageHandler.java create mode 100644 src/main/java/moe/nea/notenoughupdates/mixins/MixinMinecraft.java create mode 100644 src/main/java/moe/nea/notenoughupdates/mixins/MixinWorldRenderer.java delete mode 100644 src/main/kotlin/moe/nea/notenoughupdates/mixins/MixinClientBrandRetriever.kt delete mode 100644 src/main/kotlin/moe/nea/notenoughupdates/mixins/MixinClientPlayNetworkHandler.kt delete mode 100644 src/main/kotlin/moe/nea/notenoughupdates/mixins/MixinMessageHandler.kt delete mode 100644 src/main/kotlin/moe/nea/notenoughupdates/mixins/MixinMinecraft.kt delete mode 100644 src/main/kotlin/moe/nea/notenoughupdates/mixins/MixinWorldRenderer.kt (limited to 'src/main') diff --git a/src/main/java/moe/nea/notenoughupdates/mixins/MixinClientPlayNetworkHandler.java b/src/main/java/moe/nea/notenoughupdates/mixins/MixinClientPlayNetworkHandler.java new file mode 100644 index 0000000..34334b6 --- /dev/null +++ b/src/main/java/moe/nea/notenoughupdates/mixins/MixinClientPlayNetworkHandler.java @@ -0,0 +1,17 @@ +package moe.nea.notenoughupdates.mixins; + +import moe.nea.notenoughupdates.events.WorldReadyEvent; +import net.minecraft.client.network.ClientPlayNetworkHandler; +import net.minecraft.network.packet.s2c.play.PlayerSpawnPositionS2CPacket; +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; + +@Mixin(ClientPlayNetworkHandler.class) +public class MixinClientPlayNetworkHandler { + @Inject(method = "onPlayerSpawnPosition", at = @At("RETURN")) + public void onOnPlayerSpawnPosition(PlayerSpawnPositionS2CPacket packet, CallbackInfo ci) { + WorldReadyEvent.Companion.publish(new WorldReadyEvent()); + } +} diff --git a/src/main/java/moe/nea/notenoughupdates/mixins/MixinMessageHandler.java b/src/main/java/moe/nea/notenoughupdates/mixins/MixinMessageHandler.java new file mode 100644 index 0000000..5d3e70f --- /dev/null +++ b/src/main/java/moe/nea/notenoughupdates/mixins/MixinMessageHandler.java @@ -0,0 +1,34 @@ +package moe.nea.notenoughupdates.mixins; + +import com.mojang.authlib.GameProfile; +import moe.nea.notenoughupdates.events.ServerChatLineReceivedEvent; +import net.minecraft.client.network.message.MessageHandler; +import net.minecraft.network.message.MessageType; +import net.minecraft.network.message.SignedMessage; +import net.minecraft.text.Text; +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; + +@Mixin(MessageHandler.class) +public class MixinMessageHandler { + @Inject(method = "onChatMessage", cancellable = true, at = @At("HEAD")) + public void onOnChatMessage(SignedMessage message, GameProfile sender, MessageType.Parameters params, CallbackInfo ci) { + var decoratedText = params.applyChatDecoration(message.unsignedContent() != null ? message.unsignedContent() : message.getContent()); + var event = new ServerChatLineReceivedEvent(decoratedText); + if (ServerChatLineReceivedEvent.Companion.publish(event).getCancelled()) { + ci.cancel(); + } + } + + @Inject(method = "onGameMessage", at = @At("HEAD"), cancellable = true) + public void onOnGameMessage(Text message, boolean overlay, CallbackInfo ci) { + if (!overlay) { + var event = new ServerChatLineReceivedEvent(message); + if (ServerChatLineReceivedEvent.Companion.publish(event).getCancelled()) { + ci.cancel(); + } + } + } +} diff --git a/src/main/java/moe/nea/notenoughupdates/mixins/MixinMinecraft.java b/src/main/java/moe/nea/notenoughupdates/mixins/MixinMinecraft.java new file mode 100644 index 0000000..17f49e1 --- /dev/null +++ b/src/main/java/moe/nea/notenoughupdates/mixins/MixinMinecraft.java @@ -0,0 +1,26 @@ +package moe.nea.notenoughupdates.mixins; + +import moe.nea.notenoughupdates.events.ScreenOpenEvent; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.screen.Screen; +import org.jetbrains.annotations.Nullable; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(MinecraftClient.class) +public abstract class MixinMinecraft { + @Shadow + @Nullable + public Screen currentScreen; + + @Inject(method = "setScreen", at = @At("HEAD"), cancellable = true) + public void onScreenChange(Screen screen, CallbackInfo ci) { + var event = new ScreenOpenEvent(currentScreen, screen); + if (ScreenOpenEvent.Companion.publish(event).getCancelled()) { + ci.cancel(); + } + } +} diff --git a/src/main/java/moe/nea/notenoughupdates/mixins/MixinWorldRenderer.java b/src/main/java/moe/nea/notenoughupdates/mixins/MixinWorldRenderer.java new file mode 100644 index 0000000..c3d70fe --- /dev/null +++ b/src/main/java/moe/nea/notenoughupdates/mixins/MixinWorldRenderer.java @@ -0,0 +1,26 @@ +package moe.nea.notenoughupdates.mixins; + +import moe.nea.notenoughupdates.events.WorldRenderLastEvent; +import net.minecraft.client.render.Camera; +import net.minecraft.client.render.GameRenderer; +import net.minecraft.client.render.LightmapTextureManager; +import net.minecraft.client.render.WorldRenderer; +import net.minecraft.client.util.math.MatrixStack; +import org.joml.Matrix4f; +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; + +@Mixin(WorldRenderer.class) +public class MixinWorldRenderer { + @Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/WorldRenderer;renderChunkDebugInfo(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;Lnet/minecraft/client/render/Camera;)V", shift = At.Shift.AFTER)) + public void onWorldRenderLast(MatrixStack matrices, float tickDelta, long limitTime, boolean renderBlockOutline, Camera camera, GameRenderer gameRenderer, LightmapTextureManager lightmapTextureManager, Matrix4f positionMatrix, CallbackInfo ci) { + var event = new WorldRenderLastEvent( + matrices, tickDelta, renderBlockOutline, + camera, gameRenderer, lightmapTextureManager, + positionMatrix + ); + WorldRenderLastEvent.Companion.publish(event); + } +} diff --git a/src/main/kotlin/moe/nea/notenoughupdates/events/WorldRenderLastEvent.kt b/src/main/kotlin/moe/nea/notenoughupdates/events/WorldRenderLastEvent.kt index c230c9c..60b7e06 100644 --- a/src/main/kotlin/moe/nea/notenoughupdates/events/WorldRenderLastEvent.kt +++ b/src/main/kotlin/moe/nea/notenoughupdates/events/WorldRenderLastEvent.kt @@ -1,10 +1,10 @@ package moe.nea.notenoughupdates.events +import org.joml.Matrix4f import net.minecraft.client.render.Camera import net.minecraft.client.render.GameRenderer import net.minecraft.client.render.LightmapTextureManager import net.minecraft.client.util.math.MatrixStack -import net.minecraft.util.math.Matrix4f /** * This event is called after all world rendering is done, but before any GUI rendering (including hand) has been done. diff --git a/src/main/kotlin/moe/nea/notenoughupdates/mixins/MixinClientBrandRetriever.kt b/src/main/kotlin/moe/nea/notenoughupdates/mixins/MixinClientBrandRetriever.kt deleted file mode 100644 index f5ccf23..0000000 --- a/src/main/kotlin/moe/nea/notenoughupdates/mixins/MixinClientBrandRetriever.kt +++ /dev/null @@ -1,18 +0,0 @@ -package moe.nea.notenoughupdates.mixins - -import org.spongepowered.asm.mixin.Mixin -import org.spongepowered.asm.mixin.Overwrite -import net.minecraft.client.ClientBrandRetriever - -@Mixin(ClientBrandRetriever::class) -class MixinClientBrandRetriever { - -private companion object { - @JvmStatic - @Overwrite - fun getClientModName(): String { - return "penis" - } - } - -} diff --git a/src/main/kotlin/moe/nea/notenoughupdates/mixins/MixinClientPlayNetworkHandler.kt b/src/main/kotlin/moe/nea/notenoughupdates/mixins/MixinClientPlayNetworkHandler.kt deleted file mode 100644 index b94ff65..0000000 --- a/src/main/kotlin/moe/nea/notenoughupdates/mixins/MixinClientPlayNetworkHandler.kt +++ /dev/null @@ -1,17 +0,0 @@ -package moe.nea.notenoughupdates.mixins - -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 net.minecraft.client.network.ClientPlayNetworkHandler -import net.minecraft.network.packet.s2c.play.PlayerSpawnPositionS2CPacket -import moe.nea.notenoughupdates.events.WorldReadyEvent - -@Mixin(ClientPlayNetworkHandler::class) -class MixinClientPlayNetworkHandler { - @Inject(method = ["onPlayerSpawnPosition"], at = [At("RETURN")]) - fun onOnPlayerSpawnPosition(packet: PlayerSpawnPositionS2CPacket, ci: CallbackInfo) { - WorldReadyEvent.publish(WorldReadyEvent()) - } -} diff --git a/src/main/kotlin/moe/nea/notenoughupdates/mixins/MixinMessageHandler.kt b/src/main/kotlin/moe/nea/notenoughupdates/mixins/MixinMessageHandler.kt deleted file mode 100644 index b6151b9..0000000 --- a/src/main/kotlin/moe/nea/notenoughupdates/mixins/MixinMessageHandler.kt +++ /dev/null @@ -1,33 +0,0 @@ -package moe.nea.notenoughupdates.mixins - -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 net.minecraft.client.network.message.MessageHandler -import net.minecraft.network.message.MessageType -import net.minecraft.network.message.SignedMessage -import net.minecraft.text.Text -import moe.nea.notenoughupdates.events.ServerChatLineReceivedEvent - -@Mixin(MessageHandler::class) -class MixinMessageHandler { - @Inject(method = ["onChatMessage"], at = [At("HEAD")], cancellable = true) - fun onOnChatMessage(message: SignedMessage, params: MessageType.Parameters, ci: CallbackInfo) { - val decoratedText = params.applyChatDecoration(message.unsignedContent.orElse(message.content)) - val event = ServerChatLineReceivedEvent(decoratedText) - if (ServerChatLineReceivedEvent.publish(event).cancelled) { - ci.cancel() - } - } - - @Inject(method = ["onGameMessage"], at = [At("HEAD")], cancellable = true) - fun onOnGameMessage(message: Text, overlay: Boolean, ci: CallbackInfo) { - if (!overlay) { - val event = ServerChatLineReceivedEvent(message) - if (ServerChatLineReceivedEvent.publish(event).cancelled) { - ci.cancel() - } - } - } -} diff --git a/src/main/kotlin/moe/nea/notenoughupdates/mixins/MixinMinecraft.kt b/src/main/kotlin/moe/nea/notenoughupdates/mixins/MixinMinecraft.kt deleted file mode 100644 index 3bc1a5f..0000000 --- a/src/main/kotlin/moe/nea/notenoughupdates/mixins/MixinMinecraft.kt +++ /dev/null @@ -1,20 +0,0 @@ -package moe.nea.notenoughupdates.mixins - -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 net.minecraft.client.MinecraftClient -import net.minecraft.client.gui.screen.Screen -import moe.nea.notenoughupdates.events.ScreenOpenEvent - -@Suppress("CAST_NEVER_SUCCEEDS") -@Mixin(MinecraftClient::class) -class MixinMinecraft { - @Inject(method = ["setScreen"], at = [At("HEAD")], cancellable = true) - fun onScreenChange(screen: Screen?, ci: CallbackInfo) { - val event = ScreenOpenEvent((this as MinecraftClient).currentScreen, screen) - if (ScreenOpenEvent.publish(event).cancelled) - ci.cancel() - } -} diff --git a/src/main/kotlin/moe/nea/notenoughupdates/mixins/MixinWorldRenderer.kt b/src/main/kotlin/moe/nea/notenoughupdates/mixins/MixinWorldRenderer.kt deleted file mode 100644 index ac9ea15..0000000 --- a/src/main/kotlin/moe/nea/notenoughupdates/mixins/MixinWorldRenderer.kt +++ /dev/null @@ -1,41 +0,0 @@ -package moe.nea.notenoughupdates.mixins - -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 net.minecraft.client.render.Camera -import net.minecraft.client.render.GameRenderer -import net.minecraft.client.render.LightmapTextureManager -import net.minecraft.client.render.WorldRenderer -import net.minecraft.client.util.math.MatrixStack -import net.minecraft.util.math.Matrix4f -import moe.nea.notenoughupdates.events.WorldRenderLastEvent - -@Mixin(WorldRenderer::class) -class MixinWorldRenderer { - - @Inject( - method = ["render"], - at = [At("INVOKE", target = "renderChunkDebugInfo", shift = At.Shift.AFTER)], - ) - fun onWorldRenderLast( - matrices: MatrixStack, - tickDelta: Float, - arg2: Long, - renderBlockOutline: Boolean, - camera: Camera, - gameRenderer: GameRenderer, - lightmapTextureManager: LightmapTextureManager, - positionMatrix: Matrix4f, - ci: CallbackInfo - ) { - val event = WorldRenderLastEvent( - matrices, tickDelta, renderBlockOutline, - camera, gameRenderer, lightmapTextureManager, - positionMatrix - ) - WorldRenderLastEvent.publish(event) - } - -} diff --git a/src/main/kotlin/moe/nea/notenoughupdates/rei/SBItemEntryDefinition.kt b/src/main/kotlin/moe/nea/notenoughupdates/rei/SBItemEntryDefinition.kt index c851758..6e88b42 100644 --- a/src/main/kotlin/moe/nea/notenoughupdates/rei/SBItemEntryDefinition.kt +++ b/src/main/kotlin/moe/nea/notenoughupdates/rei/SBItemEntryDefinition.kt @@ -16,10 +16,10 @@ import moe.nea.notenoughupdates.repo.ItemCache.asItemStack import moe.nea.notenoughupdates.repo.ItemCache.getIdentifier import net.minecraft.client.util.math.MatrixStack import net.minecraft.item.ItemStack -import net.minecraft.tag.TagKey import net.minecraft.text.Text import net.minecraft.util.Identifier import java.util.stream.Stream +import net.minecraft.registry.tag.TagKey object SBItemEntryDefinition : EntryDefinition { override fun equals(o1: NEUItem?, o2: NEUItem?, context: ComparisonContext?): Boolean { @@ -61,7 +61,7 @@ object SBItemEntryDefinition : EntryDefinition { return null } - override fun getTagsFor(entry: EntryStack?, value: NEUItem?): Stream> { + override fun getTagsFor(entry: EntryStack?, value: NEUItem?): Stream>? { return Stream.empty() } diff --git a/src/main/kotlin/moe/nea/notenoughupdates/util/SBData.kt b/src/main/kotlin/moe/nea/notenoughupdates/util/SBData.kt index 5aad7fc..6d4af7e 100644 --- a/src/main/kotlin/moe/nea/notenoughupdates/util/SBData.kt +++ b/src/main/kotlin/moe/nea/notenoughupdates/util/SBData.kt @@ -1,14 +1,11 @@ package moe.nea.notenoughupdates.util -import java.time.Instant import kotlinx.serialization.SerializationException import kotlinx.serialization.decodeFromString import kotlin.time.Duration import kotlin.time.Duration.Companion.seconds import kotlin.time.ExperimentalTime import kotlin.time.TimeSource -import net.minecraft.network.message.ArgumentSignatureDataMap -import net.minecraft.network.packet.c2s.play.CommandExecutionC2SPacket import moe.nea.notenoughupdates.NotEnoughUpdates import moe.nea.notenoughupdates.events.ServerChatLineReceivedEvent import moe.nea.notenoughupdates.events.SkyblockServerUpdateEvent @@ -62,17 +59,7 @@ object SBData { fun sendLocraw() { lastLocrawSent = TimeSource.Monotonic.markNow() val nh = MC.player?.networkHandler ?: return - val ack = nh.consumeAcknowledgment() - nh.sendPacket( - CommandExecutionC2SPacket( - "locraw", - Instant.now(), - 0L, - ArgumentSignatureDataMap.EMPTY, - false, - ack - ) - ) +nh.sendChatCommand("locraw") } diff --git a/src/main/kotlin/moe/nea/notenoughupdates/util/render/block.kt b/src/main/kotlin/moe/nea/notenoughupdates/util/render/block.kt index 9b5432a..9a02996 100644 --- a/src/main/kotlin/moe/nea/notenoughupdates/util/render/block.kt +++ b/src/main/kotlin/moe/nea/notenoughupdates/util/render/block.kt @@ -22,7 +22,7 @@ class RenderBlockContext(val tesselator: Tessellator, val camPos: Vec3d) { matrixStack.push() matrixStack.translate(blockPos.x - camPos.x, blockPos.y - camPos.y, blockPos.z - camPos.z) RenderSystem.applyModelViewMatrix() - RenderSystem.setShader(GameRenderer::getPositionColorShader) + RenderSystem.setShader(GameRenderer::getPositionColorProgram) buildCube(buffer) tesselator.draw() matrixStack.pop() @@ -73,7 +73,6 @@ class RenderBlockContext(val tesselator: Tessellator, val camPos: Vec3d) { fun renderBlocks(camera: Camera, block: RenderBlockContext. () -> Unit) { RenderSystem.disableDepthTest() - RenderSystem.disableTexture() RenderSystem.enableBlend() RenderSystem.defaultBlendFunc() @@ -82,7 +81,6 @@ class RenderBlockContext(val tesselator: Tessellator, val camPos: Vec3d) { VertexBuffer.unbind() RenderSystem.enableDepthTest() - RenderSystem.enableTexture() RenderSystem.disableBlend() } } diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 66c18a3..64d7bb2 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -41,7 +41,7 @@ ], "depends": { "fabric": "*", - "fabric-language-kotlin": ">=1.8.2+kotlin.1.7.10", - "minecraft": ">=1.18.2" + "fabric-language-kotlin": ">=${fabric_kotlin_version}", + "minecraft": ">=${minecraft_version}" } } diff --git a/src/main/resources/notenoughupdates.mixins.json b/src/main/resources/notenoughupdates.mixins.json index 7c1ec6b..52d30a7 100644 --- a/src/main/resources/notenoughupdates.mixins.json +++ b/src/main/resources/notenoughupdates.mixins.json @@ -6,8 +6,7 @@ "MixinClientPlayNetworkHandler", "MixinMessageHandler", "MixinMinecraft", - "MixinWorldRenderer", - "MixinClientBrandRetriever" + "MixinWorldRenderer" ], "mixins": [ ], -- cgit