From 9c9290cc06e5d7ca38fe0d414cbc49338249e1b3 Mon Sep 17 00:00:00 2001 From: rfresh2 <89827146+rfresh2@users.noreply.github.com> Date: Tue, 17 Dec 2024 14:32:47 -0800 Subject: [PATCH 1/4] update replay max discord upload size --- src/main/java/com/zenith/discord/DiscordEventListener.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/zenith/discord/DiscordEventListener.java b/src/main/java/com/zenith/discord/DiscordEventListener.java index 789fef0c..8cf68032 100644 --- a/src/main/java/com/zenith/discord/DiscordEventListener.java +++ b/src/main/java/com/zenith/discord/DiscordEventListener.java @@ -795,9 +795,9 @@ public void handleReplayStoppedEvent(final ReplayStoppedEvent event) { var replayFile = event.replayFile(); if (replayFile != null && CONFIG.client.extra.replayMod.sendRecordingsToDiscord) { try (InputStream in = new BufferedInputStream(new FileInputStream(replayFile))) { - // 25MB discord file attachment size limit + // 10mb discord file attachment size limit long replaySizeMb = replayFile.length() / (1024 * 1024); - if (replaySizeMb > 24) { + if (replaySizeMb > 10) { if (CONFIG.client.extra.replayMod.fileIOUploadIfTooLarge) { DISCORD_LOG.info("Uploading large replay to file.io with size: {}", replayFile.length()); var notiEmbed = Embed.builder() From 63d68647b70bdf565fd67a67316efb061db40468 Mon Sep 17 00:00:00 2001 From: rfresh2 <89827146+rfresh2@users.noreply.github.com> Date: Wed, 18 Dec 2024 01:21:03 -0800 Subject: [PATCH 2/4] right click interactions --- .../com/zenith/cache/data/PlayerCache.java | 8 +++ .../com/zenith/command/impl/ClickCommand.java | 57 ++++++++++++------- .../feature/world/InteractionResult.java | 26 +++++++++ .../PlayerInteractionManager.java | 56 ++++++++++++++++-- .../world/raycast/BlockRaycastResult.java | 2 +- .../zenith/module/impl/PlayerSimulation.java | 27 +++++++-- 6 files changed, 143 insertions(+), 33 deletions(-) create mode 100644 src/main/java/com/zenith/feature/world/InteractionResult.java rename src/main/java/com/zenith/feature/{pathing => world}/PlayerInteractionManager.java (89%) diff --git a/src/main/java/com/zenith/cache/data/PlayerCache.java b/src/main/java/com/zenith/cache/data/PlayerCache.java index 736b2e67..b487d577 100644 --- a/src/main/java/com/zenith/cache/data/PlayerCache.java +++ b/src/main/java/com/zenith/cache/data/PlayerCache.java @@ -23,6 +23,7 @@ import org.geysermc.mcprotocollib.protocol.data.game.entity.EquipmentSlot; import org.geysermc.mcprotocollib.protocol.data.game.entity.metadata.GlobalPos; import org.geysermc.mcprotocollib.protocol.data.game.entity.player.GameMode; +import org.geysermc.mcprotocollib.protocol.data.game.entity.player.Hand; import org.geysermc.mcprotocollib.protocol.data.game.inventory.ContainerActionType; import org.geysermc.mcprotocollib.protocol.data.game.inventory.ContainerType; import org.geysermc.mcprotocollib.protocol.data.game.inventory.CreativeGrabAction; @@ -197,6 +198,13 @@ public ItemStack getEquipment(final EquipmentSlot slot) { }; } + public ItemStack getEquipment(Hand hand) { + return switch (hand) { + case Hand.MAIN_HAND -> getEquipment(MAIN_HAND); + case Hand.OFF_HAND -> getEquipment(OFF_HAND); + }; + } + // prefer calling getEquipment with a slot type instead of this, creates gc spam public Map getEquipment() { final Map equipment = new EnumMap<>(EquipmentSlot.class); diff --git a/src/main/java/com/zenith/command/impl/ClickCommand.java b/src/main/java/com/zenith/command/impl/ClickCommand.java index 14aef2bd..34967d3b 100644 --- a/src/main/java/com/zenith/command/impl/ClickCommand.java +++ b/src/main/java/com/zenith/command/impl/ClickCommand.java @@ -20,13 +20,14 @@ public CommandUsage commandUsage() { "click", CommandCategory.MODULE, """ - Clicks the block in front of you + Simulates a click to the block or entity in front of you """, asList( - "hold", - "stop", - "left" -// "right" // todo: implement right click + "left", + "left hold", + "right", + "right hold", + "stop" ) ); } @@ -34,19 +35,6 @@ public CommandUsage commandUsage() { @Override public LiteralArgumentBuilder register() { return command("click") - .then(literal("hold").executes(c -> { - if (!Proxy.getInstance().isConnected()) { - c.getSource().getEmbed() - .title("Not Connected") - .errorColor(); - return OK; - } - MODULE.get(PlayerSimulation.class).holdLeftClickOverride = true; - c.getSource().getEmbed() - .title("Click Hold On") - .primaryColor(); - return OK; - })) .then(literal("stop").executes(c -> { if (!Proxy.getInstance().isConnected()) { c.getSource().getEmbed() @@ -55,6 +43,7 @@ public LiteralArgumentBuilder register() { return OK; } MODULE.get(PlayerSimulation.class).holdLeftClickOverride = false; + MODULE.get(PlayerSimulation.class).holdRightClickOverride = false; c.getSource().getEmbed() .title("Click Hold Off") .primaryColor(); @@ -74,7 +63,21 @@ public LiteralArgumentBuilder register() { .title("Left Clicked") .primaryColor(); return 1; - })) + }) + .then(literal("hold").executes(c -> { + if (!Proxy.getInstance().isConnected()) { + c.getSource().getEmbed() + .title("Not Connected") + .errorColor(); + return OK; + } + MODULE.get(PlayerSimulation.class).holdLeftClickOverride = true; + MODULE.get(PlayerSimulation.class).holdRightClickOverride = false; + c.getSource().getEmbed() + .title("Left Click Hold") + .primaryColor(); + return OK; + }))) .then(literal("right").executes(c -> { if (!Proxy.getInstance().isConnected()) { c.getSource().getEmbed() @@ -89,6 +92,20 @@ public LiteralArgumentBuilder register() { .title("Right Clicked") .primaryColor(); return 1; - })); + }) + .then(literal("hold").executes(c -> { + if (!Proxy.getInstance().isConnected()) { + c.getSource().getEmbed() + .title("Not Connected") + .errorColor(); + return OK; + } + MODULE.get(PlayerSimulation.class).holdLeftClickOverride = false; + MODULE.get(PlayerSimulation.class).holdRightClickOverride = true; + c.getSource().getEmbed() + .title("Right Click Hold") + .primaryColor(); + return OK; + }))); } } diff --git a/src/main/java/com/zenith/feature/world/InteractionResult.java b/src/main/java/com/zenith/feature/world/InteractionResult.java new file mode 100644 index 00000000..c69c0fe3 --- /dev/null +++ b/src/main/java/com/zenith/feature/world/InteractionResult.java @@ -0,0 +1,26 @@ +package com.zenith.feature.world; + +public enum InteractionResult { + SUCCESS, + SUCCESS_NO_ITEM_USED, + CONSUME, + CONSUME_PARTIAL, + PASS, + FAIL; + + public boolean consumesAction() { + return this == SUCCESS || this == CONSUME || this == CONSUME_PARTIAL || this == SUCCESS_NO_ITEM_USED; + } + + public boolean shouldSwing() { + return this == SUCCESS || this == SUCCESS_NO_ITEM_USED; + } + + public boolean indicateItemUse() { + return this == SUCCESS || this == CONSUME; + } + + public static InteractionResult sidedSuccess(boolean isClientSide) { + return isClientSide ? SUCCESS : CONSUME; + } +} diff --git a/src/main/java/com/zenith/feature/pathing/PlayerInteractionManager.java b/src/main/java/com/zenith/feature/world/PlayerInteractionManager.java similarity index 89% rename from src/main/java/com/zenith/feature/pathing/PlayerInteractionManager.java rename to src/main/java/com/zenith/feature/world/PlayerInteractionManager.java index 3ab270a8..79a93768 100644 --- a/src/main/java/com/zenith/feature/pathing/PlayerInteractionManager.java +++ b/src/main/java/com/zenith/feature/world/PlayerInteractionManager.java @@ -1,8 +1,8 @@ -package com.zenith.feature.pathing; +package com.zenith.feature.world; import com.zenith.Proxy; import com.zenith.cache.data.inventory.Container; -import com.zenith.feature.world.World; +import com.zenith.feature.world.raycast.BlockRaycastResult; import com.zenith.feature.world.raycast.EntityRaycastResult; import com.zenith.mc.block.Block; import com.zenith.mc.block.BlockRegistry; @@ -27,10 +27,7 @@ import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponentType; import org.geysermc.mcprotocollib.protocol.data.game.item.component.DataComponents; import org.geysermc.mcprotocollib.protocol.data.game.item.component.ItemEnchantments; -import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.player.ServerboundInteractPacket; -import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.player.ServerboundPlayerActionPacket; -import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.player.ServerboundSetCarriedItemPacket; -import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.player.ServerboundSwingPacket; +import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.player.*; import org.jetbrains.annotations.Nullable; import java.util.Objects; @@ -298,6 +295,53 @@ private void destroyBlock(int x, int y, int z) { .setBlock(x & 15, y & 15, z & 15, BlockRegistry.AIR.id()); } + public InteractionResult interact(Hand hand, EntityRaycastResult ray) { + Proxy.getInstance().getClient().send(new ServerboundInteractPacket( + ray.entity().getEntityId(), + InteractAction.INTERACT, + 0, 0, 0, + hand, + player.isSneaking() + )); + return InteractionResult.PASS; + } + + public InteractionResult interactAt(Hand hand, EntityRaycastResult ray) { + Proxy.getInstance().getClient().send(new ServerboundInteractPacket( + ray.entity().getEntityId(), + InteractAction.INTERACT_AT, + 0, 0, 0, + hand, + player.isSneaking() + )); + return InteractionResult.PASS; + } + + public InteractionResult useItemOn(Hand hand, BlockRaycastResult ray) { + Proxy.getInstance().getClient().send(new ServerboundUseItemOnPacket( + ray.x(), ray.y(), ray.z(), + ray.direction(), + hand, + // todo: cursor raytrace + 0, 0, 0, + false, + CACHE.getPlayerCache().getSeqId().incrementAndGet() + )); + // todo: check if we are placing a block + // if so, add the block to the world so we don't have a brief desync + return InteractionResult.PASS; + } + + public InteractionResult useItem(Hand hand) { + Proxy.getInstance().getClient().send(new ServerboundUseItemPacket( + hand, + CACHE.getPlayerCache().getSeqId().incrementAndGet(), + player.getYaw(), + player.getPitch() + )); + return InteractionResult.PASS; + } + public void ensureHasSentCarriedItem() { int heldItemSlot = CACHE.getPlayerCache().getHeldItemSlot(); if (carriedIndex != heldItemSlot) { diff --git a/src/main/java/com/zenith/feature/world/raycast/BlockRaycastResult.java b/src/main/java/com/zenith/feature/world/raycast/BlockRaycastResult.java index f1a560a2..c2a3bbee 100644 --- a/src/main/java/com/zenith/feature/world/raycast/BlockRaycastResult.java +++ b/src/main/java/com/zenith/feature/world/raycast/BlockRaycastResult.java @@ -4,7 +4,7 @@ import com.zenith.mc.block.BlockRegistry; import org.geysermc.mcprotocollib.protocol.data.game.entity.object.Direction; -public record BlockRaycastResult(boolean hit, double x, double y, double z, Direction direction, Block block) { +public record BlockRaycastResult(boolean hit, int x, int y, int z, Direction direction, Block block) { public static BlockRaycastResult miss() { return new BlockRaycastResult(false, 0, 0, 0, Direction.UP, BlockRegistry.AIR); } diff --git a/src/main/java/com/zenith/module/impl/PlayerSimulation.java b/src/main/java/com/zenith/module/impl/PlayerSimulation.java index 581ec111..41d98591 100644 --- a/src/main/java/com/zenith/module/impl/PlayerSimulation.java +++ b/src/main/java/com/zenith/module/impl/PlayerSimulation.java @@ -1,11 +1,7 @@ package com.zenith.module.impl; import com.zenith.event.module.ClientBotTick; -import com.zenith.feature.pathing.PlayerInteractionManager; -import com.zenith.feature.world.Input; -import com.zenith.feature.world.MovementInputRequest; -import com.zenith.feature.world.Pathing; -import com.zenith.feature.world.World; +import com.zenith.feature.world.*; import com.zenith.feature.world.raycast.RaycastHelper; import com.zenith.mc.block.*; import com.zenith.mc.dimension.DimensionRegistry; @@ -47,7 +43,7 @@ public class PlayerSimulation extends Module { private float lastPitch; @Getter private boolean onGround; private boolean lastOnGround; - private boolean isSneaking; + @Getter private boolean isSneaking; private boolean wasSneaking; private boolean isSprinting; private boolean lastSprinting; @@ -81,6 +77,8 @@ public class PlayerSimulation extends Module { private boolean verticalCollision = false; private final PlayerInteractionManager interactions = new PlayerInteractionManager(this); public boolean holdLeftClickOverride = false; + public boolean holdRightClickOverride = false; + private final Timer rightClickOverrideTimer = Timer.createTickTimer(); @Override public void subscribeEvents() { @@ -103,6 +101,7 @@ public boolean enabledSetting() { public synchronized void handleClientTickStarting(final ClientBotTick.Starting event) { syncFromCache(false); this.holdLeftClickOverride = false; + this.holdRightClickOverride = false; } public synchronized void handleClientTickStopped(final ClientBotTick.Stopped event) { @@ -113,6 +112,7 @@ public synchronized void handleClientTickStopped(final ClientBotTick.Stopped eve sendClientPacketAsync(new ServerboundPlayerCommandPacket(CACHE.getPlayerCache().getEntityId(), PlayerState.STOP_SPRINTING)); } this.holdLeftClickOverride = false; + this.holdRightClickOverride = false; } public void doRotate(float yaw, float pitch) { @@ -217,6 +217,21 @@ private void interactionTick() { interactions.attackEntity(raycast.entity()); } } + } else if (movementInput.isRightClick() || (holdRightClickOverride && rightClickOverrideTimer.tick(10))) { + var raycast = RaycastHelper.playerBlockOrEntityRaycast(4.5); + if (raycast.hit() && raycast.isBlock()) { + interactions.ensureHasSentCarriedItem(); + interactions.useItemOn(Hand.MAIN_HAND, raycast.block()); + sendClientPacketAsync(new ServerboundSwingPacket(Hand.MAIN_HAND)); + } else if (raycast.hit() && raycast.isEntity()) { + interactions.ensureHasSentCarriedItem(); + interactions.interactAt(Hand.MAIN_HAND, raycast.entity()); + sendClientPacketAsync(new ServerboundSwingPacket(Hand.MAIN_HAND)); + } else if (!raycast.hit()) { + interactions.ensureHasSentCarriedItem(); + interactions.useItem(Hand.MAIN_HAND); + sendClientPacketAsync(new ServerboundSwingPacket(Hand.MAIN_HAND)); + } } interactions.stopDestroyBlock(); wasLeftClicking = false; From 2d50b39b14f718098af6e31dd93326ada61b5e55 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Dec 2024 23:56:20 +0000 Subject: [PATCH 3/4] Bump the dependencies group with 11 updates Bumps the dependencies group with 11 updates: | Package | From | To | | --- | --- | --- | | [io.netty:netty-codec-haproxy](https://github.com/netty/netty) | `4.1.115.Final` | `4.1.116.Final` | | [io.netty:netty-codec-dns](https://github.com/netty/netty) | `4.1.115.Final` | `4.1.116.Final` | | [io.netty:netty-codec-http2](https://github.com/netty/netty) | `4.1.115.Final` | `4.1.116.Final` | | [io.netty:netty-codec-http](https://github.com/netty/netty) | `4.1.115.Final` | `4.1.116.Final` | | [io.netty:netty-codec-socks](https://github.com/netty/netty) | `4.1.115.Final` | `4.1.116.Final` | | [io.netty:netty-handler-proxy](https://github.com/netty/netty) | `4.1.115.Final` | `4.1.116.Final` | | [io.netty:netty-handler](https://github.com/netty/netty) | `4.1.115.Final` | `4.1.116.Final` | | [io.netty:netty-resolver-dns](https://github.com/netty/netty) | `4.1.115.Final` | `4.1.116.Final` | | [io.netty:netty-transport-classes-epoll](https://github.com/netty/netty) | `4.1.115.Final` | `4.1.116.Final` | | [org.redisson:redisson](https://github.com/redisson/redisson) | `3.40.2` | `3.41.0` | | [ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) | `1.5.12` | `1.5.15` | Updates `io.netty:netty-codec-haproxy` from 4.1.115.Final to 4.1.116.Final - [Commits](https://github.com/netty/netty/compare/netty-4.1.115.Final...netty-4.1.116.Final) Updates `io.netty:netty-codec-dns` from 4.1.115.Final to 4.1.116.Final - [Commits](https://github.com/netty/netty/compare/netty-4.1.115.Final...netty-4.1.116.Final) Updates `io.netty:netty-codec-http2` from 4.1.115.Final to 4.1.116.Final - [Commits](https://github.com/netty/netty/compare/netty-4.1.115.Final...netty-4.1.116.Final) Updates `io.netty:netty-codec-http` from 4.1.115.Final to 4.1.116.Final - [Commits](https://github.com/netty/netty/compare/netty-4.1.115.Final...netty-4.1.116.Final) Updates `io.netty:netty-codec-socks` from 4.1.115.Final to 4.1.116.Final - [Commits](https://github.com/netty/netty/compare/netty-4.1.115.Final...netty-4.1.116.Final) Updates `io.netty:netty-handler-proxy` from 4.1.115.Final to 4.1.116.Final - [Commits](https://github.com/netty/netty/compare/netty-4.1.115.Final...netty-4.1.116.Final) Updates `io.netty:netty-handler` from 4.1.115.Final to 4.1.116.Final - [Commits](https://github.com/netty/netty/compare/netty-4.1.115.Final...netty-4.1.116.Final) Updates `io.netty:netty-resolver-dns` from 4.1.115.Final to 4.1.116.Final - [Commits](https://github.com/netty/netty/compare/netty-4.1.115.Final...netty-4.1.116.Final) Updates `io.netty:netty-transport-classes-epoll` from 4.1.115.Final to 4.1.116.Final - [Commits](https://github.com/netty/netty/compare/netty-4.1.115.Final...netty-4.1.116.Final) Updates `io.netty:netty-codec-dns` from 4.1.115.Final to 4.1.116.Final - [Commits](https://github.com/netty/netty/compare/netty-4.1.115.Final...netty-4.1.116.Final) Updates `io.netty:netty-codec-http2` from 4.1.115.Final to 4.1.116.Final - [Commits](https://github.com/netty/netty/compare/netty-4.1.115.Final...netty-4.1.116.Final) Updates `io.netty:netty-codec-http` from 4.1.115.Final to 4.1.116.Final - [Commits](https://github.com/netty/netty/compare/netty-4.1.115.Final...netty-4.1.116.Final) Updates `io.netty:netty-codec-socks` from 4.1.115.Final to 4.1.116.Final - [Commits](https://github.com/netty/netty/compare/netty-4.1.115.Final...netty-4.1.116.Final) Updates `io.netty:netty-handler-proxy` from 4.1.115.Final to 4.1.116.Final - [Commits](https://github.com/netty/netty/compare/netty-4.1.115.Final...netty-4.1.116.Final) Updates `io.netty:netty-handler` from 4.1.115.Final to 4.1.116.Final - [Commits](https://github.com/netty/netty/compare/netty-4.1.115.Final...netty-4.1.116.Final) Updates `io.netty:netty-resolver-dns` from 4.1.115.Final to 4.1.116.Final - [Commits](https://github.com/netty/netty/compare/netty-4.1.115.Final...netty-4.1.116.Final) Updates `io.netty:netty-transport-classes-epoll` from 4.1.115.Final to 4.1.116.Final - [Commits](https://github.com/netty/netty/compare/netty-4.1.115.Final...netty-4.1.116.Final) Updates `org.redisson:redisson` from 3.40.2 to 3.41.0 - [Release notes](https://github.com/redisson/redisson/releases) - [Changelog](https://github.com/redisson/redisson/blob/master/CHANGELOG.md) - [Commits](https://github.com/redisson/redisson/compare/redisson-3.40.2...redisson-3.41.0) Updates `ch.qos.logback:logback-classic` from 1.5.12 to 1.5.15 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.12...v_1.5.15) --- updated-dependencies: - dependency-name: io.netty:netty-codec-haproxy dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.netty:netty-codec-dns dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.netty:netty-codec-http2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.netty:netty-codec-http dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.netty:netty-codec-socks dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.netty:netty-handler-proxy dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.netty:netty-handler dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.netty:netty-resolver-dns dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.netty:netty-transport-classes-epoll dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.netty:netty-codec-dns dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.netty:netty-codec-http2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.netty:netty-codec-http dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.netty:netty-codec-socks dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.netty:netty-handler-proxy dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.netty:netty-handler dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.netty:netty-resolver-dns dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: io.netty:netty-transport-classes-epoll dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: org.redisson:redisson dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies - dependency-name: ch.qos.logback:logback-classic dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies ... Signed-off-by: dependabot[bot] --- build.gradle.kts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index a41e816b..f97fda44 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -56,7 +56,7 @@ dependencies { implementation("com.github.rfresh2:MCProtocolLib:1.21.0.23") { exclude(group = "io.netty") } - val nettyVersion = "4.1.115.Final" + val nettyVersion = "4.1.116.Final" implementation("io.netty:netty-codec-haproxy:$nettyVersion") implementation("io.netty:netty-codec-dns:$nettyVersion") implementation("io.netty:netty-codec-http2:$nettyVersion") @@ -71,7 +71,7 @@ dependencies { implementation("io.netty:netty-resolver-dns-native-macos:$nettyVersion:osx-aarch_64") implementation("org.cloudburstmc.math:api:2.0") implementation("org.cloudburstmc.math:immutable:2.0") - implementation("org.redisson:redisson:3.40.2") { + implementation("org.redisson:redisson:3.41.0") { exclude(group = "io.netty") } implementation("com.github.rfresh2:SimpleEventBus:1.2") @@ -96,7 +96,7 @@ dependencies { // which adds about 10mb to the binary size for zero benefit because we do not use jfr implementation("org.jdbi:jdbi3-postgres:3.45.4") implementation("com.google.guava:guava:33.4.0-jre") - implementation("ch.qos.logback:logback-classic:1.5.12") + implementation("ch.qos.logback:logback-classic:1.5.15") implementation("org.slf4j:slf4j-api:2.0.16") implementation("org.slf4j:jul-to-slf4j:2.0.16") implementation("com.mojang:brigadier:1.3.10") From ceb8520cc6973df78375afec53f79c41d75e0bbf Mon Sep 17 00:00:00 2001 From: rfresh2 <89827146+rfresh2@users.noreply.github.com> Date: Sat, 28 Dec 2024 15:26:09 -0800 Subject: [PATCH 4/4] update mcpl --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index f97fda44..b552b417 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -53,7 +53,7 @@ dependencies { implementation("com.github.rfresh2.discord4j:discord4j-core:3.4.4.11") { exclude(group = "io.netty") } - implementation("com.github.rfresh2:MCProtocolLib:1.21.0.23") { + implementation("com.github.rfresh2:MCProtocolLib:1.21.0.24") { exclude(group = "io.netty") } val nettyVersion = "4.1.116.Final"