diff --git a/.github/workflows/1.20_pr.yml b/.github/workflows/1.20.2_pr.yml similarity index 99% rename from .github/workflows/1.20_pr.yml rename to .github/workflows/1.20.2_pr.yml index e3e9a4fd..ebb38584 100644 --- a/.github/workflows/1.20_pr.yml +++ b/.github/workflows/1.20.2_pr.yml @@ -7,7 +7,7 @@ on: - '**.properties' - '**/src/**' branches: - - "1.20" + - "1.20.2" types: [ opened, synchronize, reopened ] jobs: validate-gradle: diff --git a/.github/workflows/1.20_push.yml b/.github/workflows/1.20.2_push.yml similarity index 99% rename from .github/workflows/1.20_push.yml rename to .github/workflows/1.20.2_push.yml index c2feec6b..2541ddf5 100644 --- a/.github/workflows/1.20_push.yml +++ b/.github/workflows/1.20.2_push.yml @@ -7,7 +7,7 @@ on: - '**.properties' - '**/src/**' branches: - - "1.20" + - "1.20.2" workflow_dispatch: inputs: norelease: diff --git a/common/src/main/java/dev/architectury/event/events/client/ClientRawInputEvent.java b/common/src/main/java/dev/architectury/event/events/client/ClientRawInputEvent.java index b46bf54c..fb1b73a2 100644 --- a/common/src/main/java/dev/architectury/event/events/client/ClientRawInputEvent.java +++ b/common/src/main/java/dev/architectury/event/events/client/ClientRawInputEvent.java @@ -29,7 +29,7 @@ import net.minecraft.client.Minecraft; @Environment(EnvType.CLIENT) public interface ClientRawInputEvent { /** - * @see MouseScrolled#mouseScrolled(Minecraft, double) + * @see MouseScrolled#mouseScrolled(Minecraft, double, double) */ Event MOUSE_SCROLLED = EventFactory.createEventResult(); /** @@ -63,12 +63,13 @@ public interface ClientRawInputEvent { * Invoked whenever the mouse scroll wheel is used. * Equivalent to Forge's {@code InputEvent.MouseScrollEvent} event. * - * @param client The Minecraft instance performing it. - * @param amount The amount of movement. + * @param client The Minecraft instance performing it. + * @param amountX The amount of movement on the X axis. + * @param amountY The amount of movement on the Y axis. * @return A {@link EventResult} determining the outcome of the event, * the execution of the vanilla scrolling mechanism may be cancelled by the result. */ - EventResult mouseScrolled(Minecraft client, double amount); + EventResult mouseScrolled(Minecraft client, double amountX, double amountY); } interface MouseClicked { diff --git a/common/src/main/java/dev/architectury/event/events/client/ClientScreenInputEvent.java b/common/src/main/java/dev/architectury/event/events/client/ClientScreenInputEvent.java index 1a9f53d3..4eeb6c95 100644 --- a/common/src/main/java/dev/architectury/event/events/client/ClientScreenInputEvent.java +++ b/common/src/main/java/dev/architectury/event/events/client/ClientScreenInputEvent.java @@ -30,7 +30,7 @@ import net.minecraft.client.gui.screens.Screen; @Environment(EnvType.CLIENT) public interface ClientScreenInputEvent { /** - * @see MouseScrolled#mouseScrolled(Minecraft, Screen, double, double, double) + * @see MouseScrolled#mouseScrolled(Minecraft, Screen, double, double, double, double) */ Event MOUSE_SCROLLED_PRE = EventFactory.createEventResult(); Event MOUSE_SCROLLED_POST = EventFactory.createEventResult(); @@ -129,15 +129,16 @@ public interface ClientScreenInputEvent { *

This event is handled in two phases PRE and POST, which are invoked * before and after the keys have been processed by the screen, respectively. * - * @param client The Minecraft instance performing it. - * @param screen The screen this keystroke was performed in. - * @param mouseX The scaled x-coordinate of the mouse cursor. - * @param mouseY The scaled y-coordinate of the mouse cursor. - * @param amount The amount the scroll wheel is moved. + * @param client The Minecraft instance performing it. + * @param screen The screen this keystroke was performed in. + * @param mouseX The scaled x-coordinate of the mouse cursor. + * @param mouseY The scaled y-coordinate of the mouse cursor. + * @param amountX The amount the scroll wheel is moved horizontally. + * @param amountY The amount the scroll wheel is moved vertically. * @return A {@link EventResult} determining the outcome of the event, * the execution of the vanilla scrolling mechanism may be cancelled by the result. */ - EventResult mouseScrolled(Minecraft client, Screen screen, double mouseX, double mouseY, double amount); + EventResult mouseScrolled(Minecraft client, Screen screen, double mouseX, double mouseY, double amountX, double amountY); } interface MouseReleased { diff --git a/fabric/src/main/java/dev/architectury/mixin/fabric/MixinPlayerList.java b/fabric/src/main/java/dev/architectury/mixin/fabric/MixinPlayerList.java index 7c0ea7ed..359b411f 100644 --- a/fabric/src/main/java/dev/architectury/mixin/fabric/MixinPlayerList.java +++ b/fabric/src/main/java/dev/architectury/mixin/fabric/MixinPlayerList.java @@ -32,7 +32,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(PlayerList.class) public class MixinPlayerList { @Inject(method = "placeNewPlayer", at = @At("RETURN")) - private void placeNewPlayer(Connection connection, ServerPlayer serverPlayer, CallbackInfo ci) { + private void placeNewPlayer(Connection connection, ServerPlayer serverPlayer, int latency, CallbackInfo ci) { PlayerEvent.PLAYER_JOIN.invoker().join(serverPlayer); } diff --git a/fabric/src/main/java/dev/architectury/mixin/fabric/client/MixinAbstractContainerScreen.java b/fabric/src/main/java/dev/architectury/mixin/fabric/client/MixinAbstractContainerScreen.java index 2b207ebe..78034a31 100644 --- a/fabric/src/main/java/dev/architectury/mixin/fabric/client/MixinAbstractContainerScreen.java +++ b/fabric/src/main/java/dev/architectury/mixin/fabric/client/MixinAbstractContainerScreen.java @@ -35,7 +35,7 @@ public abstract class MixinAbstractContainerScreen extends Screen { super(component); } - @Inject(method = "render", + @Inject(method = "renderBackground", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screens/inventory/AbstractContainerScreen;renderBg(Lnet/minecraft/client/gui/GuiGraphics;FII)V", ordinal = 0, shift = At.Shift.AFTER)) public void renderBackground(GuiGraphics graphics, int mouseX, int mouseY, float delta, CallbackInfo ci) { diff --git a/fabric/src/main/java/dev/architectury/mixin/fabric/client/MixinClientPacketListener.java b/fabric/src/main/java/dev/architectury/mixin/fabric/client/MixinClientPacketListener.java index 074cf940..5ab93450 100644 --- a/fabric/src/main/java/dev/architectury/mixin/fabric/client/MixinClientPacketListener.java +++ b/fabric/src/main/java/dev/architectury/mixin/fabric/client/MixinClientPacketListener.java @@ -24,9 +24,12 @@ import dev.architectury.event.events.client.ClientChatEvent; import dev.architectury.event.events.client.ClientPlayerEvent; import dev.architectury.event.events.client.ClientRecipeUpdateEvent; import net.minecraft.client.Minecraft; +import net.minecraft.client.multiplayer.ClientCommonPacketListenerImpl; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.multiplayer.ClientPacketListener; +import net.minecraft.client.multiplayer.CommonListenerCookie; import net.minecraft.client.player.LocalPlayer; +import net.minecraft.network.Connection; import net.minecraft.network.protocol.game.ClientboundLoginPacket; import net.minecraft.network.protocol.game.ClientboundRespawnPacket; import net.minecraft.network.protocol.game.ClientboundUpdateRecipesPacket; @@ -40,10 +43,7 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(ClientPacketListener.class) -public class MixinClientPacketListener { - @Shadow - @Final - private Minecraft minecraft; +public abstract class MixinClientPacketListener extends ClientCommonPacketListenerImpl { @Shadow @Final private RecipeManager recipeManager; @@ -52,6 +52,10 @@ public class MixinClientPacketListener { @Unique private LocalPlayer tmpPlayer; + protected MixinClientPacketListener(Minecraft minecraft, Connection connection, CommonListenerCookie commonListenerCookie) { + super(minecraft, connection, commonListenerCookie); + } + @Inject(method = "handleLogin", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Options;broadcastOptions()V")) private void handleLogin(ClientboundLoginPacket packet, CallbackInfo ci) { ClientPlayerEvent.CLIENT_PLAYER_JOIN.invoker().join(minecraft.player); diff --git a/fabric/src/main/java/dev/architectury/mixin/fabric/client/MixinMinecraft.java b/fabric/src/main/java/dev/architectury/mixin/fabric/client/MixinMinecraft.java index e98283ec..7bbfaf71 100644 --- a/fabric/src/main/java/dev/architectury/mixin/fabric/client/MixinMinecraft.java +++ b/fabric/src/main/java/dev/architectury/mixin/fabric/client/MixinMinecraft.java @@ -57,7 +57,7 @@ public abstract class MixinMinecraft { @Unique private ThreadLocal setScreenCancelled = new ThreadLocal<>(); - @Inject(method = "clearLevel(Lnet/minecraft/client/gui/screens/Screen;)V", + @Inject(method = "disconnect(Lnet/minecraft/client/gui/screens/Screen;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/GameNarrator;clear()V")) private void handleLogin(Screen screen, CallbackInfo ci) { ClientPlayerEvent.CLIENT_PLAYER_QUIT.invoker().quit(player); diff --git a/fabric/src/main/java/dev/architectury/mixin/fabric/client/MixinMouseHandler.java b/fabric/src/main/java/dev/architectury/mixin/fabric/client/MixinMouseHandler.java index c587309e..f616e175 100644 --- a/fabric/src/main/java/dev/architectury/mixin/fabric/client/MixinMouseHandler.java +++ b/fabric/src/main/java/dev/architectury/mixin/fabric/client/MixinMouseHandler.java @@ -49,31 +49,31 @@ public class MixinMouseHandler { private double ypos; @Inject(method = "onScroll", - at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screens/Screen;mouseScrolled(DDD)Z", + at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screens/Screen;mouseScrolled(DDDD)Z", ordinal = 0), cancellable = true, locals = LocalCapture.CAPTURE_FAILHARD) - public void onMouseScrolled(long handle, double xOffset, double yOffset, CallbackInfo info, double amount, double x, double y) { + public void onMouseScrolled(long handle, double xOffset, double yOffset, CallbackInfo info, boolean discreteMouseScroll, double mouseWheelSensitivity, double amountX, double amountY, double x, double y) { if (!info.isCancelled()) { - var result = ClientScreenInputEvent.MOUSE_SCROLLED_PRE.invoker().mouseScrolled(minecraft, minecraft.screen, x, y, amount); + var result = ClientScreenInputEvent.MOUSE_SCROLLED_PRE.invoker().mouseScrolled(minecraft, minecraft.screen, x, y, amountX, amountY); if (result.isPresent()) info.cancel(); } } @Inject(method = "onScroll", - at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screens/Screen;mouseScrolled(DDD)Z", + at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screens/Screen;mouseScrolled(DDDD)Z", ordinal = 0, shift = At.Shift.AFTER), cancellable = true, locals = LocalCapture.CAPTURE_FAILHARD) - public void onMouseScrolledPost(long handle, double xOffset, double yOffset, CallbackInfo info, double amount, double x, double y) { + public void onMouseScrolledPost(long handle, double xOffset, double yOffset, CallbackInfo info, boolean discreteMouseScroll, double mouseWheelSensitivity, double amountX, double amountY, double x, double y) { if (!info.isCancelled()) { - var result = ClientScreenInputEvent.MOUSE_SCROLLED_POST.invoker().mouseScrolled(minecraft, minecraft.screen, x, y, amount); + var result = ClientScreenInputEvent.MOUSE_SCROLLED_POST.invoker().mouseScrolled(minecraft, minecraft.screen, x, y, amountX, amountY); } } @Inject(method = "onScroll", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/player/LocalPlayer;isSpectator()Z", ordinal = 0), cancellable = true, locals = LocalCapture.CAPTURE_FAILHARD) - public void onRawMouseScrolled(long handle, double xOffset, double yOffset, CallbackInfo info, double amount) { + public void onRawMouseScrolled(long handle, double xOffset, double yOffset, CallbackInfo info, boolean discreteMouseScroll, double mouseWheelSensitivity, double amountX, double doubleY) { if (!info.isCancelled()) { - var result = ClientRawInputEvent.MOUSE_SCROLLED.invoker().mouseScrolled(minecraft, amount); + var result = ClientRawInputEvent.MOUSE_SCROLLED.invoker().mouseScrolled(minecraft, amountX, doubleY); if (result.isPresent()) info.cancel(); } diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index 093d80dd..a2da6e1d 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -34,7 +34,7 @@ }, "icon": "icon.png", "depends": { - "minecraft": "~1.20-", + "minecraft": "~1.20.2-", "fabricloader": ">=0.14.0", "fabric-api": ">=0.66.0" }, diff --git a/forge/src/main/resources/META-INF/mods.toml b/forge/src/main/resources/META-INF/mods.toml index 9b701fdf..edb2e9d1 100644 --- a/forge/src/main/resources/META-INF/mods.toml +++ b/forge/src/main/resources/META-INF/mods.toml @@ -17,7 +17,7 @@ license = "LGPL-3" [[dependencies.architectury]] modId = "minecraft" mandatory = true -versionRange = "[1.20,)" +versionRange = "[1.20.2,)" ordering = "NONE" side = "BOTH" diff --git a/gradle.properties b/gradle.properties index 7cf2655a..1e5fa5ca 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,20 +1,20 @@ org.gradle.jvmargs=-Xmx6G org.gradle.daemon=false -platforms=fabric,forge +platforms=fabric -minecraft_version=1.20 -supported_version=1.20(.1) +minecraft_version=23w31a +supported_version=23w31a -artifact_type=release +artifact_type=beta archives_base_name=architectury archives_base_name_snapshot=architectury-snapshot -base_version=9.1 +base_version=10.0 maven_group=dev.architectury -fabric_loader_version=0.14.21 -fabric_api_version=0.83.0+1.20 +fabric_loader_version=0.14.22 +fabric_api_version=0.86.1+1.20.2 mod_menu_version=7.0.0 forge_version=46.0.1 diff --git a/settings.gradle b/settings.gradle index 8bfde812..0f4b94fd 100644 --- a/settings.gradle +++ b/settings.gradle @@ -13,9 +13,9 @@ if (JavaVersion.current().ordinal() + 1 < 17) { include("common") include("fabric") -include("forge") +//include("forge") include("testmod-common") include("testmod-fabric") -include("testmod-forge") +//include("testmod-forge") rootProject.name = "architectury" diff --git a/testmod-common/src/main/java/dev/architectury/test/events/DebugEvents.java b/testmod-common/src/main/java/dev/architectury/test/events/DebugEvents.java index f01b5e39..01358148 100644 --- a/testmod-common/src/main/java/dev/architectury/test/events/DebugEvents.java +++ b/testmod-common/src/main/java/dev/architectury/test/events/DebugEvents.java @@ -305,8 +305,8 @@ public class DebugEvents { // ClientTextureStitchEvent.POST.register(atlas -> { // TestMod.SINK.accept("Client texture stitched: " + atlas.location()); // }); - ClientScreenInputEvent.MOUSE_SCROLLED_PRE.register((client, screen, mouseX, mouseY, amount) -> { - TestMod.SINK.accept("Screen Mouse scrolled: %.2f distance", amount); + ClientScreenInputEvent.MOUSE_SCROLLED_PRE.register((client, screen, mouseX, mouseY, amountX, amountY) -> { + TestMod.SINK.accept("Screen Mouse scrolled: %.2f x-distance %.2f y-distance", amountX, amountY); return EventResult.pass(); }); ClientScreenInputEvent.MOUSE_CLICKED_PRE.register((client, screen, mouseX, mouseY, button) -> { @@ -333,8 +333,8 @@ public class DebugEvents { TestMod.SINK.accept("Screen Key released: " + InputConstants.getKey(keyCode, scanCode).getDisplayName().getString()); return EventResult.pass(); }); - ClientRawInputEvent.MOUSE_SCROLLED.register((client, amount) -> { - TestMod.SINK.accept("Raw Mouse scrolled: %.2f distance", amount); + ClientRawInputEvent.MOUSE_SCROLLED.register((client, amountX, amountY) -> { + TestMod.SINK.accept("Raw Mouse scrolled: %.2f x-distance %.2f y-distance", amountX, amountY); return EventResult.pass(); }); ClientRawInputEvent.MOUSE_CLICKED_PRE.register((client, button, action, mods) -> { diff --git a/testmod-common/src/main/java/dev/architectury/test/networking/SyncDataMessage.java b/testmod-common/src/main/java/dev/architectury/test/networking/SyncDataMessage.java index 2c4d4d80..d89ef41f 100644 --- a/testmod-common/src/main/java/dev/architectury/test/networking/SyncDataMessage.java +++ b/testmod-common/src/main/java/dev/architectury/test/networking/SyncDataMessage.java @@ -39,7 +39,7 @@ public class SyncDataMessage extends BaseS2CMessage { } public SyncDataMessage(FriendlyByteBuf buf) { - serverData = buf.readAnySizeNbt(); + serverData = buf.readNbt(); } @Override