From eb38139900580ad76187aa48eee589f3f94acf28 Mon Sep 17 00:00:00 2001 From: ItsNature Date: Tue, 23 Dec 2025 04:08:30 +0100 Subject: [PATCH 1/4] Update version to 1.2.2-SNAPSHOT --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index b4c14159..21135ed5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ group=com.lunarclient -version=1.2.1 +version=1.2.2-SNAPSHOT description=The API for interacting with Lunar Client players. org.gradle.parallel=true From b93617e3fa19bc15a4b98f0efe4a9554a5d898f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Bu=C4=8Dari=C4=87?= Date: Thu, 19 Feb 2026 19:20:21 +0100 Subject: [PATCH 2/4] Feature - Packet Enrichment Improvements (#248) * Add `ApolloPlayerUseItemBucketEvent` API * Add additional Packet Enrichment config options for each packet * Add docs for new packet enrichment options * Update apollo-protos version * Don't publish this branch anymore --- .../world/ApolloPlayerUseItemBucketEvent.java | 73 +++++++++ .../world/ApolloPlayerUseItemEvent.java | 2 +- .../PacketEnrichmentModule.java | 122 ++++++++++++++- .../raytrace/BlockHitResult.java | 64 ++++++++ .../packetenrichment/raytrace/Direction.java | 38 +++++ .../raytrace/EntityHitResult.java | 56 +++++++ .../packetenrichment/raytrace/MissResult.java | 33 ++++ .../raytrace/RayTraceResult.java | 33 ++++ .../PacketEnrichmentImpl.java | 142 +++++++++++------- .../apollo/network/NetworkTypes.java | 74 +++++++++ docs/developers/events.mdx | 16 ++ .../lightweight/protobuf/getting-started.mdx | 6 +- docs/developers/modules/packetenrichment.mdx | 69 +++++++++ gradle/libs.versions.toml | 2 +- 14 files changed, 668 insertions(+), 62 deletions(-) create mode 100644 api/src/main/java/com/lunarclient/apollo/event/packetenrichment/world/ApolloPlayerUseItemBucketEvent.java create mode 100644 api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/BlockHitResult.java create mode 100644 api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/Direction.java create mode 100644 api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/EntityHitResult.java create mode 100644 api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/MissResult.java create mode 100644 api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/RayTraceResult.java diff --git a/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/world/ApolloPlayerUseItemBucketEvent.java b/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/world/ApolloPlayerUseItemBucketEvent.java new file mode 100644 index 00000000..a27c1395 --- /dev/null +++ b/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/world/ApolloPlayerUseItemBucketEvent.java @@ -0,0 +1,73 @@ +/* + * This file is part of Apollo, licensed under the MIT License. + * + * Copyright (c) 2023 Moonsworth + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package com.lunarclient.apollo.event.packetenrichment.world; + +import com.lunarclient.apollo.event.Event; +import com.lunarclient.apollo.module.packetenrichment.PlayerInfo; +import com.lunarclient.apollo.module.packetenrichment.raytrace.RayTraceResult; +import com.lunarclient.apollo.player.ApolloPlayer; +import lombok.Value; + +/** + * Represents an event that is fired when a player uses a bucket (1.7 and 1.8). + * + * @since 1.2.2 + */ +@Value +public class ApolloPlayerUseItemBucketEvent implements Event { + + /** + * The player that sent the packet. + * + * @return the player + * @since 1.2.2 + */ + ApolloPlayer player; + + /** + * The {@code long} representing the unix timestamp + * when the packet was created. + * + * @return the unix timestamp + * @since 1.2.2 + */ + long instantiationTimeMs; + + /** + * The player's {@link PlayerInfo} information. + * + * @return the player info + * @since 1.2.2 + */ + PlayerInfo playerInfo; + + /** + * The result of the client's {@link RayTraceResult} for this bucket interaction. + * + * @return the ray trace result + * @since 1.2.2 + */ + RayTraceResult rayTraceResult; + +} diff --git a/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/world/ApolloPlayerUseItemEvent.java b/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/world/ApolloPlayerUseItemEvent.java index d878e223..beb9e6ed 100644 --- a/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/world/ApolloPlayerUseItemEvent.java +++ b/api/src/main/java/com/lunarclient/apollo/event/packetenrichment/world/ApolloPlayerUseItemEvent.java @@ -29,7 +29,7 @@ import lombok.Value; /** - * Represents an event that is when a player uses an item (1.16.1+). + * Represents an event that is fired when a player uses an item (1.16.1+). * * @since 1.0.7 */ diff --git a/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/PacketEnrichmentModule.java b/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/PacketEnrichmentModule.java index de359ec6..bf519e07 100644 --- a/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/PacketEnrichmentModule.java +++ b/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/PacketEnrichmentModule.java @@ -25,6 +25,9 @@ import com.lunarclient.apollo.module.ApolloModule; import com.lunarclient.apollo.module.ModuleDefinition; +import com.lunarclient.apollo.option.Option; +import com.lunarclient.apollo.option.SimpleOption; +import io.leangen.geantyref.TypeToken; import org.jetbrains.annotations.ApiStatus; /** @@ -36,8 +39,125 @@ @ModuleDefinition(id = "packet_enrichment", name = "PacketEnrichment") public abstract class PacketEnrichmentModule extends ApolloModule { + /** + * Controls whether the client sends an additional player attack packet to the server. + * + * @since 1.2.2 + */ + public static final SimpleOption PLAYER_ATTACK_PACKET = Option.builder() + .comment("Set to 'true' to have the client send an additional player attack packet to the server, otherwise 'false'.") + .node("player-attack", "send-packet").type(TypeToken.get(Boolean.class)) + .defaultValue(false).notifyClient().build(); + + /** + * Controls whether Apollo fires {@link com.lunarclient.apollo.event.packetenrichment.melee.ApolloPlayerAttackEvent} + * when the packet is received. + * + * @since 1.2.2 + */ + public static final SimpleOption PLAYER_ATTACK_EVENT = Option.builder() + .comment("If 'true', Apollo fires the player attack event on the main thread. Disable this and handle the packet yourself if you require asynchronous or off-thread processing.") + .node("player-attack", "fire-apollo-event").type(TypeToken.get(Boolean.class)) + .defaultValue(false).build(); + + /** + * Controls whether the client sends an additional player chat open packet to the server. + * + * @since 1.2.2 + */ + public static final SimpleOption PLAYER_CHAT_OPEN_PACKET = Option.builder() + .comment("Set to 'true' to have the client send an additional player chat open packet to the server, otherwise 'false'.") + .node("player-chat-open", "send-packet").type(TypeToken.get(Boolean.class)) + .defaultValue(false).notifyClient().build(); + + /** + * Controls whether Apollo fires {@link com.lunarclient.apollo.event.packetenrichment.chat.ApolloPlayerChatOpenEvent} + * when the packet is received. + * + * @since 1.2.2 + */ + public static final SimpleOption PLAYER_CHAT_OPEN_EVENT = Option.builder() + .comment("If 'true', Apollo fires the player chat open event on the main thread. Disable this and handle the packet yourself if you require asynchronous or off-thread processing.") + .node("player-chat-open", "fire-apollo-event").type(TypeToken.get(Boolean.class)) + .defaultValue(false).build(); + + /** + * Controls whether the client sends an additional player chat close packet to the server. + * + * @since 1.2.2 + */ + public static final SimpleOption PLAYER_CHAT_CLOSE_PACKET = Option.builder() + .comment("Set to 'true' to have the client send an additional player chat close packet to the server, otherwise 'false'.") + .node("player-chat-close", "send-packet").type(TypeToken.get(Boolean.class)) + .defaultValue(false).notifyClient().build(); + + /** + * Controls whether Apollo fires {@link com.lunarclient.apollo.event.packetenrichment.chat.ApolloPlayerChatCloseEvent} + * when the packet is received. + * + * @since 1.2.2 + */ + public static final SimpleOption PLAYER_CHAT_CLOSE_EVENT = Option.builder() + .comment("If 'true', Apollo fires the player chat close event on the main thread. Disable this and handle the packet yourself if you require asynchronous or off-thread processing.") + .node("player-chat-close", "fire-apollo-event").type(TypeToken.get(Boolean.class)) + .defaultValue(false).build(); + + /** + * Controls whether the client sends an additional player use item packet to the server. + * + * @since 1.2.2 + */ + public static final SimpleOption PLAYER_USE_ITEM_PACKET = Option.builder() + .comment("Set to 'true' to have the client send an additional player use item packet to the server, otherwise 'false'.") + .node("player-use-item", "send-packet").type(TypeToken.get(Boolean.class)) + .defaultValue(false).notifyClient().build(); + + /** + * Controls whether Apollo fires {@link com.lunarclient.apollo.event.packetenrichment.world.ApolloPlayerUseItemEvent} + * when the packet is received. + * + * @since 1.2.2 + */ + public static final SimpleOption PLAYER_USE_ITEM_EVENT = Option.builder() + .comment("If 'true', Apollo fires the player use item event on the main thread. Disable this and handle the packet yourself if you require asynchronous or off-thread processing.") + .node("player-use-item", "fire-apollo-event").type(TypeToken.get(Boolean.class)) + .defaultValue(false).build(); + + /** + * Controls whether the client sends an additional player use item bucket packet to the server. + * + * @since 1.2.2 + */ + public static final SimpleOption PLAYER_USE_ITEM_BUCKET_PACKET = Option.builder() + .comment("Set to 'true' to have the client send an additional player use item bucket packet to the server, otherwise 'false'.") + .node("player-use-item-bucket", "send-packet").type(TypeToken.get(Boolean.class)) + .defaultValue(false).notifyClient().build(); + + /** + * Controls whether Apollo fires {@link com.lunarclient.apollo.event.packetenrichment.world.ApolloPlayerUseItemBucketEvent} + * when the packet is received. + * + * @since 1.2.2 + */ + public static final SimpleOption PLAYER_USE_ITEM_BUCKET_EVENT = Option.builder() + .comment("If 'true', Apollo fires the player use item bucket event on the main thread. Disable this and handle the packet yourself if you require asynchronous or off-thread processing.") + .node("player-use-item-bucket", "fire-apollo-event").type(TypeToken.get(Boolean.class)) + .defaultValue(false).build(); + protected PacketEnrichmentModule() { - this.registerOptions(ApolloModule.ENABLE_OPTION_OFF); + this.registerOptions( + ApolloModule.ENABLE_OPTION_OFF, + PacketEnrichmentModule.PLAYER_ATTACK_PACKET, + PacketEnrichmentModule.PLAYER_ATTACK_EVENT, + PacketEnrichmentModule.PLAYER_CHAT_OPEN_PACKET, + PacketEnrichmentModule.PLAYER_CHAT_OPEN_EVENT, + PacketEnrichmentModule.PLAYER_CHAT_CLOSE_PACKET, + PacketEnrichmentModule.PLAYER_CHAT_CLOSE_EVENT, + PacketEnrichmentModule.PLAYER_USE_ITEM_PACKET, + PacketEnrichmentModule.PLAYER_USE_ITEM_EVENT, + PacketEnrichmentModule.PLAYER_USE_ITEM_BUCKET_PACKET, + PacketEnrichmentModule.PLAYER_USE_ITEM_BUCKET_EVENT + ); } } diff --git a/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/BlockHitResult.java b/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/BlockHitResult.java new file mode 100644 index 00000000..6bd312c8 --- /dev/null +++ b/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/BlockHitResult.java @@ -0,0 +1,64 @@ +/* + * This file is part of Apollo, licensed under the MIT License. + * + * Copyright (c) 2023 Moonsworth + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package com.lunarclient.apollo.module.packetenrichment.raytrace; + +import com.lunarclient.apollo.common.location.ApolloBlockLocation; +import com.lunarclient.apollo.common.location.ApolloLocation; +import lombok.Builder; +import lombok.Getter; + +/** + * Represents the block hit ray trace result. + * + * @since 1.2.2 + */ +@Getter +@Builder +public class BlockHitResult extends RayTraceResult { + + /** + * The exact hit {@link ApolloLocation} of the ray on the block. + * + * @return the hit location + * @since 1.2.2 + */ + ApolloLocation hitLocation; + + /** + * The {@link ApolloBlockLocation} of the block that was hit. + * + * @return the block location + * @since 1.2.2 + */ + ApolloBlockLocation blockLocation; + + /** + * The {@link Direction} from which the block was hit. + * + * @return the direction + * @since 1.2.2 + */ + Direction direction; + +} diff --git a/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/Direction.java b/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/Direction.java new file mode 100644 index 00000000..9b729b15 --- /dev/null +++ b/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/Direction.java @@ -0,0 +1,38 @@ +/* + * This file is part of Apollo, licensed under the MIT License. + * + * Copyright (c) 2023 Moonsworth + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package com.lunarclient.apollo.module.packetenrichment.raytrace; + +/** + * Represents a direction in which a block was hit. + * + * @since 1.2.2 + */ +public enum Direction { + DOWN, + UP, + NORTH, + SOUTH, + WEST, + EAST +} diff --git a/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/EntityHitResult.java b/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/EntityHitResult.java new file mode 100644 index 00000000..030436b8 --- /dev/null +++ b/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/EntityHitResult.java @@ -0,0 +1,56 @@ +/* + * This file is part of Apollo, licensed under the MIT License. + * + * Copyright (c) 2023 Moonsworth + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package com.lunarclient.apollo.module.packetenrichment.raytrace; + +import com.lunarclient.apollo.common.ApolloEntity; +import com.lunarclient.apollo.common.location.ApolloLocation; +import lombok.Builder; +import lombok.Getter; + +/** + * Represents the entity hit ray trace result. + * + * @since 1.2.2 + */ +@Getter +@Builder +public class EntityHitResult extends RayTraceResult { + + /** + * The exact hit {@link ApolloLocation} of the ray on the entity. + * + * @return the hit location + * @since 1.2.2 + */ + ApolloLocation hitLocation; + + /** + * The {@link ApolloEntity} that was hit. + * + * @return the entity ID + * @since 1.2.2 + */ + ApolloEntity entityId; + +} diff --git a/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/MissResult.java b/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/MissResult.java new file mode 100644 index 00000000..5c7f91bc --- /dev/null +++ b/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/MissResult.java @@ -0,0 +1,33 @@ +/* + * This file is part of Apollo, licensed under the MIT License. + * + * Copyright (c) 2023 Moonsworth + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package com.lunarclient.apollo.module.packetenrichment.raytrace; + +/** + * Represents the missed ray trace result. + * + * @since 1.2.2 + */ +public class MissResult extends RayTraceResult { + +} diff --git a/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/RayTraceResult.java b/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/RayTraceResult.java new file mode 100644 index 00000000..46eb2667 --- /dev/null +++ b/api/src/main/java/com/lunarclient/apollo/module/packetenrichment/raytrace/RayTraceResult.java @@ -0,0 +1,33 @@ +/* + * This file is part of Apollo, licensed under the MIT License. + * + * Copyright (c) 2023 Moonsworth + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package com.lunarclient.apollo.module.packetenrichment.raytrace; + +/** + * The abstract base class for ray trace results. + * + * @since 1.2.2 + */ +public abstract class RayTraceResult { + +} diff --git a/common/src/main/java/com/lunarclient/apollo/module/packetenrichment/PacketEnrichmentImpl.java b/common/src/main/java/com/lunarclient/apollo/module/packetenrichment/PacketEnrichmentImpl.java index de9d0247..1bfa2f92 100644 --- a/common/src/main/java/com/lunarclient/apollo/module/packetenrichment/PacketEnrichmentImpl.java +++ b/common/src/main/java/com/lunarclient/apollo/module/packetenrichment/PacketEnrichmentImpl.java @@ -28,11 +28,14 @@ import com.lunarclient.apollo.event.packetenrichment.chat.ApolloPlayerChatCloseEvent; import com.lunarclient.apollo.event.packetenrichment.chat.ApolloPlayerChatOpenEvent; import com.lunarclient.apollo.event.packetenrichment.melee.ApolloPlayerAttackEvent; +import com.lunarclient.apollo.event.packetenrichment.world.ApolloPlayerUseItemBucketEvent; import com.lunarclient.apollo.event.packetenrichment.world.ApolloPlayerUseItemEvent; import com.lunarclient.apollo.network.NetworkTypes; +import com.lunarclient.apollo.option.Options; import com.lunarclient.apollo.packetenrichment.v1.PlayerAttackMessage; import com.lunarclient.apollo.packetenrichment.v1.PlayerChatCloseMessage; import com.lunarclient.apollo.packetenrichment.v1.PlayerChatOpenMessage; +import com.lunarclient.apollo.packetenrichment.v1.PlayerUseItemBucketMessage; import com.lunarclient.apollo.packetenrichment.v1.PlayerUseItemMessage; /** @@ -53,62 +56,89 @@ public PacketEnrichmentImpl() { } private void onReceivePacket(ApolloReceivePacketEvent event) { - event.unpack(PlayerAttackMessage.class).ifPresent(packet -> { - ApolloPlayerAttackEvent playerAttackEvent = new ApolloPlayerAttackEvent( - event.getPlayer(), - NetworkTypes.fromProtobuf(packet.getPacketInfo().getInstantiationTime()), - NetworkTypes.fromProtobuf(packet.getTargetInfo()), - NetworkTypes.fromProtobuf(packet.getAttackerInfo()), - packet.getDistance() - ); - - EventBus.EventResult result = EventBus.getBus().post(playerAttackEvent); - - for (Throwable throwable : result.getThrowing()) { - throwable.printStackTrace(); - } - }); - - event.unpack(PlayerChatOpenMessage.class).ifPresent(packet -> { - ApolloPlayerChatOpenEvent playerChatOpenEvent = new ApolloPlayerChatOpenEvent( - event.getPlayer(), - NetworkTypes.fromProtobuf(packet.getPacketInfo().getInstantiationTime()), - NetworkTypes.fromProtobuf(packet.getPlayerInfo())); - - EventBus.EventResult result = EventBus.getBus().post(playerChatOpenEvent); - - for (Throwable throwable : result.getThrowing()) { - throwable.printStackTrace(); - } - }); - - event.unpack(PlayerChatCloseMessage.class).ifPresent(packet -> { - ApolloPlayerChatCloseEvent playerChatCloseEvent = new ApolloPlayerChatCloseEvent( - event.getPlayer(), - NetworkTypes.fromProtobuf(packet.getPacketInfo().getInstantiationTime()), - NetworkTypes.fromProtobuf(packet.getPlayerInfo())); - - EventBus.EventResult result = EventBus.getBus().post(playerChatCloseEvent); - - for (Throwable throwable : result.getThrowing()) { - throwable.printStackTrace(); - } - }); - - event.unpack(PlayerUseItemMessage.class).ifPresent(packet -> { - ApolloPlayerUseItemEvent playerUseItemEvent = new ApolloPlayerUseItemEvent( - event.getPlayer(), - NetworkTypes.fromProtobuf(packet.getPacketInfo().getInstantiationTime()), - NetworkTypes.fromProtobuf(packet.getPlayerInfo()), - packet.getMainHand() - ); - - EventBus.EventResult result = EventBus.getBus().post(playerUseItemEvent); - - for (Throwable throwable : result.getThrowing()) { - throwable.printStackTrace(); - } - }); + Options options = this.getOptions(); + + if (options.get(PacketEnrichmentModule.PLAYER_CHAT_OPEN_EVENT)) { + event.unpack(PlayerAttackMessage.class).ifPresent(packet -> { + ApolloPlayerAttackEvent playerAttackEvent = new ApolloPlayerAttackEvent( + event.getPlayer(), + NetworkTypes.fromProtobuf(packet.getPacketInfo().getInstantiationTime()), + NetworkTypes.fromProtobuf(packet.getTargetInfo()), + NetworkTypes.fromProtobuf(packet.getAttackerInfo()), + packet.getDistance() + ); + + EventBus.EventResult result = EventBus.getBus().post(playerAttackEvent); + + for (Throwable throwable : result.getThrowing()) { + throwable.printStackTrace(); + } + }); + } + + if (options.get(PacketEnrichmentModule.PLAYER_CHAT_OPEN_EVENT)) { + event.unpack(PlayerChatOpenMessage.class).ifPresent(packet -> { + ApolloPlayerChatOpenEvent playerChatOpenEvent = new ApolloPlayerChatOpenEvent( + event.getPlayer(), + NetworkTypes.fromProtobuf(packet.getPacketInfo().getInstantiationTime()), + NetworkTypes.fromProtobuf(packet.getPlayerInfo())); + + EventBus.EventResult result = EventBus.getBus().post(playerChatOpenEvent); + + for (Throwable throwable : result.getThrowing()) { + throwable.printStackTrace(); + } + }); + } + + if (options.get(PacketEnrichmentModule.PLAYER_CHAT_CLOSE_EVENT)) { + event.unpack(PlayerChatCloseMessage.class).ifPresent(packet -> { + ApolloPlayerChatCloseEvent playerChatCloseEvent = new ApolloPlayerChatCloseEvent( + event.getPlayer(), + NetworkTypes.fromProtobuf(packet.getPacketInfo().getInstantiationTime()), + NetworkTypes.fromProtobuf(packet.getPlayerInfo())); + + EventBus.EventResult result = EventBus.getBus().post(playerChatCloseEvent); + + for (Throwable throwable : result.getThrowing()) { + throwable.printStackTrace(); + } + }); + } + + if (options.get(PacketEnrichmentModule.PLAYER_USE_ITEM_EVENT)) { + event.unpack(PlayerUseItemMessage.class).ifPresent(packet -> { + ApolloPlayerUseItemEvent playerUseItemEvent = new ApolloPlayerUseItemEvent( + event.getPlayer(), + NetworkTypes.fromProtobuf(packet.getPacketInfo().getInstantiationTime()), + NetworkTypes.fromProtobuf(packet.getPlayerInfo()), + packet.getMainHand() + ); + + EventBus.EventResult result = EventBus.getBus().post(playerUseItemEvent); + + for (Throwable throwable : result.getThrowing()) { + throwable.printStackTrace(); + } + }); + } + + if (options.get(PacketEnrichmentModule.PLAYER_USE_ITEM_BUCKET_EVENT)) { + event.unpack(PlayerUseItemBucketMessage.class).ifPresent(packet -> { + ApolloPlayerUseItemBucketEvent playerUseItemBucketEvent = new ApolloPlayerUseItemBucketEvent( + event.getPlayer(), + NetworkTypes.fromProtobuf(packet.getPacketInfo().getInstantiationTime()), + NetworkTypes.fromProtobuf(packet.getPlayerInfo()), + NetworkTypes.fromProtobuf(packet.getRayTraceResult()) + ); + + EventBus.EventResult result = EventBus.getBus().post(playerUseItemBucketEvent); + + for (Throwable throwable : result.getThrowing()) { + throwable.printStackTrace(); + } + }); + } } } diff --git a/common/src/main/java/com/lunarclient/apollo/network/NetworkTypes.java b/common/src/main/java/com/lunarclient/apollo/network/NetworkTypes.java index 4987d74e..304c0e04 100644 --- a/common/src/main/java/com/lunarclient/apollo/network/NetworkTypes.java +++ b/common/src/main/java/com/lunarclient/apollo/network/NetworkTypes.java @@ -37,6 +37,14 @@ import com.lunarclient.apollo.common.v1.EntityId; import com.lunarclient.apollo.common.v1.Uuid; import com.lunarclient.apollo.module.packetenrichment.PlayerInfo; +import com.lunarclient.apollo.module.packetenrichment.raytrace.BlockHitResult; +import com.lunarclient.apollo.module.packetenrichment.raytrace.Direction; +import com.lunarclient.apollo.module.packetenrichment.raytrace.EntityHitResult; +import com.lunarclient.apollo.module.packetenrichment.raytrace.MissResult; +import com.lunarclient.apollo.module.packetenrichment.raytrace.RayTraceResult; +import com.lunarclient.apollo.packetenrichment.v1.BlockHit; +import com.lunarclient.apollo.packetenrichment.v1.EntityHit; +import com.lunarclient.apollo.packetenrichment.v1.Miss; import java.awt.Color; import java.time.Duration; import java.util.UUID; @@ -226,6 +234,72 @@ public static PlayerInfo fromProtobuf(com.lunarclient.apollo.packetenrichment.v1 .build(); } + /** + * Converts a {@link RayTraceResult} object to a + * {@link com.lunarclient.apollo.packetenrichment.v1.RayTraceResult} proto message. + * + * @param object the ray trace result + * @return the proto ray trace result message + * @since 1.2.2 + */ + public static com.lunarclient.apollo.packetenrichment.v1.RayTraceResult toProtobuf(RayTraceResult object) { + com.lunarclient.apollo.packetenrichment.v1.RayTraceResult.Builder builder = com.lunarclient.apollo.packetenrichment.v1.RayTraceResult.newBuilder(); + + if (object instanceof BlockHitResult) { + BlockHitResult result = (BlockHitResult) object; + + BlockHit blockHit = BlockHit.newBuilder() + .setHitLocation(NetworkTypes.toProtobuf(result.getHitLocation())) + .setBlockLocation(NetworkTypes.toProtobuf(result.getBlockLocation())) + .setDirection(com.lunarclient.apollo.packetenrichment.v1.Direction.forNumber(result.getDirection().ordinal() + 1)) + .build(); + + builder.setBlock(blockHit); + } else if (object instanceof EntityHitResult) { + EntityHitResult result = (EntityHitResult) object; + + EntityHit entityHit = EntityHit.newBuilder() + .setHitLocation(NetworkTypes.toProtobuf(result.getHitLocation())) + .setEntityId(NetworkTypes.toProtobuf(result.getEntityId())) + .build(); + + builder.setEntity(entityHit); + } else { + builder.setMiss(Miss.getDefaultInstance()); + } + + return builder.build(); + } + + /** + * Converts a {@link com.lunarclient.apollo.packetenrichment.v1.RayTraceResult} + * proto message to a {@link RayTraceResult} object. + * + * @param message the ray trace result message + * @return the apollo ray trace result object + * @since 1.2.2 + */ + public static RayTraceResult fromProtobuf(com.lunarclient.apollo.packetenrichment.v1.RayTraceResult message) { + if (message.hasBlock()) { + BlockHit blockHitMessage = message.getBlock(); + + return BlockHitResult.builder() + .hitLocation(NetworkTypes.fromProtobuf(blockHitMessage.getHitLocation())) + .blockLocation(NetworkTypes.fromProtobuf(blockHitMessage.getBlockLocation())) + .direction(Direction.values()[blockHitMessage.getDirectionValue() - 1]) + .build(); + } else if (message.hasEntity()) { + EntityHit entityHitMessage = message.getEntity(); + + return EntityHitResult.builder() + .hitLocation(NetworkTypes.fromProtobuf(entityHitMessage.getHitLocation())) + .entityId(NetworkTypes.fromProtobuf(entityHitMessage.getEntityId())) + .build(); + } + + return new MissResult(); + } + /** * Converts an {@link ApolloLocation} object to an * {@link com.lunarclient.apollo.common.v1.Location} proto message. diff --git a/docs/developers/events.mdx b/docs/developers/events.mdx index f6af36f8..abeb8307 100644 --- a/docs/developers/events.mdx +++ b/docs/developers/events.mdx @@ -252,6 +252,22 @@ _Called when the player uses an item (1.16.1+)._ +
+ApolloPlayerUseItemBucketEvent + +### ApolloPlayerUseItemBucketEvent + +_Called when the player uses a bucket (1.7 and 1.8)._ + +| Field | Description | +| ------------------------------- | --------------------------------------------------- | +| `ApolloPlayer player` | The Apollo player that sent the packet. | +| `long instantiationTimeMs` | The unix timestamp when the packet was created. | +| `PlayerInfo playerInfo` | The player's general information. | +| `RayTraceResult rayTraceResult` | The client ray trace result for the interaction. | + +
+ ## Integration ### Sample Code (Method 1) diff --git a/docs/developers/lightweight/protobuf/getting-started.mdx b/docs/developers/lightweight/protobuf/getting-started.mdx index 2304efe1..467c0db9 100644 --- a/docs/developers/lightweight/protobuf/getting-started.mdx +++ b/docs/developers/lightweight/protobuf/getting-started.mdx @@ -26,7 +26,7 @@ Available fields for each message, including their types, are available on the B com.lunarclient apollo-protos - 0.0.5 + 0.0.6 ``` @@ -41,7 +41,7 @@ Available fields for each message, including their types, are available on the B } dependencies { - api 'com.lunarclient:apollo-protos:0.0.5' + api 'com.lunarclient:apollo-protos:0.0.6' } ``` @@ -55,7 +55,7 @@ Available fields for each message, including their types, are available on the B } dependencies { - api("com.lunarclient:apollo-protos:0.0.5") + api("com.lunarclient:apollo-protos:0.0.6") } ``` diff --git a/docs/developers/modules/packetenrichment.mdx b/docs/developers/modules/packetenrichment.mdx index ffa50b7c..5edf9a5a 100644 --- a/docs/developers/modules/packetenrichment.mdx +++ b/docs/developers/modules/packetenrichment.mdx @@ -7,6 +7,8 @@ import { Tab, Tabs } from 'nextra-theme-docs' The packet enrichment module provides servers with additional information about already existing packets and/or adds additional packets to provide servers with extra information about a player. +We have an open-source reference [plugin](https://github.com/LunarClient/apollo-bucket-desync-fix) that leverages the `PLAYER_USE_ITEM_BUCKET_PACKET` to eliminate water and lava bucket desync on 1.7 and 1.8. + This module is disabled by default, if you wish to use this module you will need to enable it in `config.yml`. @@ -27,6 +29,7 @@ The following events are related to the packet enrichment module, you can find m * `ApolloPlayerChatOpenEvent` * `ApolloPlayerAttackEvent` * `ApolloPlayerUseItemEvent` +* `ApolloPlayerUseItemBucketEvent` @@ -38,3 +41,69 @@ Visit [Apollo Serverbound packets](/apollo/developers/lightweight/protobuf/serve +## Available options + +- __`PLAYER_ATTACK_PACKET`__ + - Controls whether the client sends an additional player attack packet to the server. + - Values + - Type: `Boolean` + - Default: `false` + +- __`PLAYER_ATTACK_EVENT`__ + - Controls whether Apollo fires `ApolloPlayerAttackEvent` when the packet is received. + - Disable this and handle the packet yourself if you require asynchronous or off-thread processing. + - Values + - Type: `Boolean` + - Default: `false` + +- __`PLAYER_CHAT_OPEN_PACKET`__ + - Controls whether the client sends an additional player chat open packet to the server. + - Values + - Type: `Boolean` + - Default: `false` + +- __`PLAYER_CHAT_OPEN_EVENT`__ + - Controls whether Apollo fires `ApolloPlayerChatOpenEvent` when the packet is received. + - Disable this and handle the packet yourself if you require asynchronous or off-thread processing. + - Values + - Type: `Boolean` + - Default: `false` + +- __`PLAYER_CHAT_CLOSE_PACKET`__ + - Controls whether the client sends an additional player chat close packet to the server. + - Values + - Type: `Boolean` + - Default: `false` + +- __`PLAYER_CHAT_CLOSE_EVENT`__ + - Controls whether Apollo fires `ApolloPlayerChatCloseEvent` when the packet is received. + - Disable this and handle the packet yourself if you require asynchronous or off-thread processing. + - Values + - Type: `Boolean` + - Default: `false` + +- __`PLAYER_USE_ITEM_PACKET`__ + - Controls whether the client sends an additional player use item packet to the server. + - Values + - Type: `Boolean` + - Default: `false` + +- __`PLAYER_USE_ITEM_EVENT`__ + - Controls whether Apollo fires `ApolloPlayerUseItemEvent` when the packet is received. + - Disable this and handle the packet yourself if you require asynchronous or off-thread processing. + - Values + - Type: `Boolean` + - Default: `false` + +- __`PLAYER_USE_ITEM_BUCKET_PACKET`__ + - Controls whether the client sends an additional player use item bucket packet to the server. + - Values + - Type: `Boolean` + - Default: `false` + +- __`PLAYER_USE_ITEM_BUCKET_EVENT`__ + - Controls whether Apollo fires `ApolloPlayerUseItemBucketEvent` when the packet is received. + - Disable this and handle the packet yourself if you require asynchronous or off-thread processing. + - Values + - Type: `Boolean` + - Default: `false` diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4cf9b10b..1a56e558 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -11,7 +11,7 @@ geantyref = "1.3.11" idea = "1.1.7" jetbrains = "24.0.1" lombok = "1.18.38" -protobuf = "0.0.5" +protobuf = "0.0.6" gson = "2.10.1" shadow = "8.1.1" spotless = "6.13.0" From af0d6550006cfc3bb3db59d5273bdddc61036324 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Bu=C4=8Dari=C4=87?= Date: Thu, 19 Feb 2026 22:29:19 +0100 Subject: [PATCH 3/4] Sync LunarClient Mods & Options (#249) * Sync LunarClient Mods & Options * Update version tags to 1.2.2 --------- Co-authored-by: LunarClient Bot --- .../com/lunarclient/apollo/mods/Mods.java | 8 + .../lunarclient/apollo/mods/impl/ModChat.java | 12 + .../apollo/mods/impl/ModChunkBorders.java | 82 +++ .../apollo/mods/impl/ModColorSaturation.java | 11 + .../apollo/mods/impl/ModCoordinates.java | 11 + .../apollo/mods/impl/ModCrosshair.java | 11 + .../apollo/mods/impl/ModDamageTint.java | 12 + .../apollo/mods/impl/ModDirectionHud.java | 55 +- .../apollo/mods/impl/ModF3Display.java | 144 ++++ .../lunarclient/apollo/mods/impl/ModFov.java | 60 +- .../lunarclient/apollo/mods/impl/ModFps.java | 11 + .../apollo/mods/impl/ModHitbox.java | 487 ++++++++++++- .../apollo/mods/impl/ModItemCounter.java | 81 +++ .../apollo/mods/impl/ModMarkers.java | 305 +++++++++ .../apollo/mods/impl/ModMinimap.java | 67 ++ .../apollo/mods/impl/ModNickHider.java | 22 + .../apollo/mods/impl/ModOverlayMod.java | 639 ++++++++++++++++++ .../apollo/mods/impl/ModParticleChanger.java | 68 ++ .../apollo/mods/impl/ModReachDisplay.java | 44 ++ .../apollo/mods/impl/ModScoreboard.java | 11 + .../mods/impl/ModScrollableTooltips.java | 12 + .../apollo/mods/impl/ModShields.java | 143 ++++ .../apollo/mods/impl/ModSkyblock.java | 334 +++++++++ .../apollo/mods/impl/ModStopwatch.java | 17 +- .../apollo/mods/impl/ModTeamView.java | 47 ++ .../apollo/mods/impl/ModWaila.java | 22 + .../apollo/mods/impl/ModWaypoints.java | 12 + .../apollo/mods/impl/ModWeatherChanger.java | 58 ++ .../lunarclient/apollo/mods/impl/ModZoom.java | 12 + docs/developers/mods/_meta.json | 4 + docs/developers/mods/chat.mdx | 7 + docs/developers/mods/chunkborders.mdx | 50 ++ docs/developers/mods/colorsaturation.mdx | 6 + docs/developers/mods/coordinates.mdx | 6 + docs/developers/mods/crosshair.mdx | 74 -- docs/developers/mods/damagetint.mdx | 8 + docs/developers/mods/directionhud.mdx | 27 +- docs/developers/mods/f3display.mdx | 77 +++ docs/developers/mods/fov.mdx | 33 +- docs/developers/mods/fps.mdx | 6 + docs/developers/mods/hitbox.mdx | 267 +++++++- docs/developers/mods/inventorymod.mdx | 4 +- docs/developers/mods/itemcounter.mdx | 47 ++ docs/developers/mods/markers.mdx | 170 +++++ docs/developers/mods/minimap.mdx | 37 + docs/developers/mods/momentum.mdx | 4 +- docs/developers/mods/nickhider.mdx | 12 + docs/developers/mods/overlaymod.mdx | 368 ++++++++++ docs/developers/mods/particlechanger.mdx | 39 ++ docs/developers/mods/reachdisplay.mdx | 24 + docs/developers/mods/scoreboard.mdx | 6 + docs/developers/mods/scrollabletooltips.mdx | 7 + docs/developers/mods/shields.mdx | 75 ++ docs/developers/mods/skyblock.mdx | 184 +++++ docs/developers/mods/stopwatch.mdx | 103 +-- docs/developers/mods/teamview.mdx | 26 + docs/developers/mods/waila.mdx | 12 + docs/developers/mods/waypoints.mdx | 7 + docs/developers/mods/weatherchanger.mdx | 36 + docs/developers/mods/zoom.mdx | 8 + 60 files changed, 4282 insertions(+), 250 deletions(-) create mode 100644 api/src/main/java/com/lunarclient/apollo/mods/impl/ModF3Display.java create mode 100644 api/src/main/java/com/lunarclient/apollo/mods/impl/ModMarkers.java create mode 100644 api/src/main/java/com/lunarclient/apollo/mods/impl/ModOverlayMod.java create mode 100644 api/src/main/java/com/lunarclient/apollo/mods/impl/ModShields.java create mode 100644 docs/developers/mods/f3display.mdx create mode 100644 docs/developers/mods/markers.mdx create mode 100644 docs/developers/mods/overlaymod.mdx create mode 100644 docs/developers/mods/shields.mdx diff --git a/api/src/main/java/com/lunarclient/apollo/mods/Mods.java b/api/src/main/java/com/lunarclient/apollo/mods/Mods.java index ab9ed46f..81cd35a3 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/Mods.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/Mods.java @@ -43,6 +43,7 @@ import com.lunarclient.apollo.mods.impl.ModDamageTint; import com.lunarclient.apollo.mods.impl.ModDayCounter; import com.lunarclient.apollo.mods.impl.ModDirectionHud; +import com.lunarclient.apollo.mods.impl.ModF3Display; import com.lunarclient.apollo.mods.impl.ModFog; import com.lunarclient.apollo.mods.impl.ModFov; import com.lunarclient.apollo.mods.impl.ModFps; @@ -61,6 +62,7 @@ import com.lunarclient.apollo.mods.impl.ModKeystrokes; import com.lunarclient.apollo.mods.impl.ModKillSounds; import com.lunarclient.apollo.mods.impl.ModLighting; +import com.lunarclient.apollo.mods.impl.ModMarkers; import com.lunarclient.apollo.mods.impl.ModMemory; import com.lunarclient.apollo.mods.impl.ModMenuBlur; import com.lunarclient.apollo.mods.impl.ModMinimap; @@ -72,6 +74,7 @@ import com.lunarclient.apollo.mods.impl.ModNeu; import com.lunarclient.apollo.mods.impl.ModNickHider; import com.lunarclient.apollo.mods.impl.ModOneSevenVisuals; +import com.lunarclient.apollo.mods.impl.ModOverlayMod; import com.lunarclient.apollo.mods.impl.ModPackDisplay; import com.lunarclient.apollo.mods.impl.ModPackOrganizer; import com.lunarclient.apollo.mods.impl.ModParticleChanger; @@ -90,6 +93,7 @@ import com.lunarclient.apollo.mods.impl.ModScreenshot; import com.lunarclient.apollo.mods.impl.ModScrollableTooltips; import com.lunarclient.apollo.mods.impl.ModServerAddress; +import com.lunarclient.apollo.mods.impl.ModShields; import com.lunarclient.apollo.mods.impl.ModShinyPots; import com.lunarclient.apollo.mods.impl.ModShulkerPreview; import com.lunarclient.apollo.mods.impl.ModSkyblock; @@ -190,6 +194,7 @@ public final class Mods { ModBossbar.class, ModFreelook.class, ModPvpInfo.class, + ModMarkers.class, ModSnaplook.class, ModTeamView.class, ModPackDisplay.class, @@ -208,10 +213,13 @@ public final class Mods { ModMobSize.class, ModSkyblock.class, ModHorseStats.class, + ModOverlayMod.class, ModRewind.class, ModAudioSubtitles.class, + ModShields.class, ModKillSounds.class, ModInventoryMod.class, + ModF3Display.class, ModRadio.class ); diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModChat.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModChat.java index 14462bcd..e794e4f1 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModChat.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModChat.java @@ -218,6 +218,18 @@ public final class ModChat { .notifyClient() .build(); + /** + * Allows you to simply right click a chat message to copy it, no keybind. + * + * @since 1.2.2 + */ + public static final SimpleOption COPY_CHAT_RIGHT_CLICK = SimpleOption.builder() + .comment("Allows you to simply right click a chat message to copy it, no keybind") + .node("chat", "copy-chat-right-click").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + /** * Displays a preview of an image when hovering over it.If a single message has more than one image, press CTRL to cycle through them. * diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModChunkBorders.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModChunkBorders.java index fe6bf637..6251c1a2 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModChunkBorders.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModChunkBorders.java @@ -23,6 +23,7 @@ */ package com.lunarclient.apollo.mods.impl; +import com.lunarclient.apollo.option.NumberOption; import com.lunarclient.apollo.option.SimpleOption; import io.leangen.geantyref.TypeToken; import java.awt.Color; @@ -45,6 +46,41 @@ public final class ModChunkBorders { .notifyClient() .build(); + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption GRID = SimpleOption.builder() + .node("chunk-borders", "grid").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption GRID_SIZE = NumberOption.number() + .node("chunk-borders", "grid-size").type(TypeToken.get(Float.class)) + .min(1.0F).max(5.0F) + .defaultValue(1.0F) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption GRID_LINE_THICKNESS = NumberOption.number() + .node("chunk-borders", "grid-line-thickness").type(TypeToken.get(Float.class)) + .min(1.0F).max(5.0F) + .defaultValue(1.0F) + .notifyClient() + .build(); + /** * No documentation available. * @@ -56,6 +92,29 @@ public final class ModChunkBorders { .notifyClient() .build(); + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption INNER_CORNERS = SimpleOption.builder() + .node("chunk-borders", "inner-corners").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption INNER_CORNER_THICKNESS = NumberOption.number() + .node("chunk-borders", "inner-corner-thickness").type(TypeToken.get(Float.class)) + .min(1.0F).max(5.0F) + .defaultValue(1.0F) + .notifyClient() + .build(); + /** * No documentation available. * @@ -67,6 +126,29 @@ public final class ModChunkBorders { .notifyClient() .build(); + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption OUTER_CORNERS = SimpleOption.builder() + .node("chunk-borders", "outer-corners").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption OUTER_CORNER_THICKNESS = NumberOption.number() + .node("chunk-borders", "outer-corner-thickness").type(TypeToken.get(Float.class)) + .min(1.0F).max(5.0F) + .defaultValue(1.0F) + .notifyClient() + .build(); + /** * No documentation available. * diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModColorSaturation.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModColorSaturation.java index 780d6c7d..5ba26222 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModColorSaturation.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModColorSaturation.java @@ -93,6 +93,17 @@ public final class ModColorSaturation { .notifyClient() .build(); + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption GRAYSCALE = SimpleOption.builder() + .node("color-saturation", "grayscale").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + private ModColorSaturation() { } diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCoordinates.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCoordinates.java index 452c3ace..54309696 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCoordinates.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCoordinates.java @@ -115,6 +115,17 @@ public final class ModCoordinates { .notifyClient() .build(); + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption DECIMAL_COORDINATES = SimpleOption.builder() + .node("coordinates", "decimal-coordinates").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + /** * No documentation available. * diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCrosshair.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCrosshair.java index 5492235d..80686714 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCrosshair.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModCrosshair.java @@ -51,6 +51,7 @@ public final class ModCrosshair { * * @since 1.0.0 */ + @Deprecated public static final NumberOption CROSSHAIR_THICKNESS = NumberOption.number() .node("crosshair", "crosshair-thickness").type(TypeToken.get(Integer.class)) .min(1).max(5) @@ -63,6 +64,7 @@ public final class ModCrosshair { * * @since 1.0.0 */ + @Deprecated public static final NumberOption CROSSHAIR_SIZE = NumberOption.number() .node("crosshair", "crosshair-size").type(TypeToken.get(Integer.class)) .min(0).max(8) @@ -75,6 +77,7 @@ public final class ModCrosshair { * * @since 1.0.0 */ + @Deprecated public static final NumberOption CROSSHAIR_GAP = NumberOption.number() .node("crosshair", "crosshair-gap").type(TypeToken.get(Integer.class)) .min(0).max(8) @@ -87,6 +90,7 @@ public final class ModCrosshair { * * @since 1.0.0 */ + @Deprecated public static final SimpleOption CROSSHAIR_DOT = SimpleOption.builder() .node("crosshair", "crosshair-dot").type(TypeToken.get(Boolean.class)) .defaultValue(true) @@ -98,6 +102,7 @@ public final class ModCrosshair { * * @since 1.0.0 */ + @Deprecated public static final SimpleOption CROSSHAIR_OUTLINE = SimpleOption.builder() .node("crosshair", "crosshair-outline").type(TypeToken.get(Boolean.class)) .defaultValue(false) @@ -109,6 +114,7 @@ public final class ModCrosshair { * * @since 1.0.0 */ + @Deprecated public static final NumberOption OUTLINE_THICKNESS = NumberOption.number() .node("crosshair", "outline-thickness").type(TypeToken.get(Float.class)) .min(0.0F).max(1.0F) @@ -121,6 +127,7 @@ public final class ModCrosshair { * * @since 1.0.0 */ + @Deprecated public static final SimpleOption OUTLINE_COLOR = SimpleOption.builder() .node("crosshair", "outline-color").type(TypeToken.get(Color.class)) .defaultValue(new Color(0, 0, 0, 136)) @@ -132,6 +139,7 @@ public final class ModCrosshair { * * @since 1.0.0 */ + @Deprecated public static final SimpleOption CUSTOM_SCALE = SimpleOption.builder() .node("crosshair", "custom-scale").type(TypeToken.get(Boolean.class)) .defaultValue(false) @@ -143,6 +151,7 @@ public final class ModCrosshair { * * @since 1.0.0 */ + @Deprecated public static final SimpleOption COLOR = SimpleOption.builder() .node("crosshair", "color").type(TypeToken.get(Color.class)) .defaultValue(new Color(255, 255, 255)) @@ -154,6 +163,7 @@ public final class ModCrosshair { * * @since 1.0.0 */ + @Deprecated public static final SimpleOption FRIENDLY_COLOR = SimpleOption.builder() .node("crosshair", "friendly-color").type(TypeToken.get(Color.class)) .defaultValue(new Color(51, 255, 51)) @@ -165,6 +175,7 @@ public final class ModCrosshair { * * @since 1.0.0 */ + @Deprecated public static final SimpleOption ENEMY_COLOR = SimpleOption.builder() .node("crosshair", "enemy-color").type(TypeToken.get(Color.class)) .defaultValue(new Color(255, 51, 51)) diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModDamageTint.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModDamageTint.java index 079052b1..0f98ebfd 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModDamageTint.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModDamageTint.java @@ -95,6 +95,18 @@ public final class ModDamageTint { .notifyClient() .build(); + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption HEARTBEAT_AUDIO_VOLUME = NumberOption.number() + .node("damage-tint", "heartbeat-audio-volume").type(TypeToken.get(Float.class)) + .min(0.0F).max(1.0F) + .defaultValue(1.0F) + .notifyClient() + .build(); + private ModDamageTint() { } diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModDirectionHud.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModDirectionHud.java index 2f41ea37..5b7aa7c0 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModDirectionHud.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModDirectionHud.java @@ -128,6 +128,18 @@ public final class ModDirectionHud { .notifyClient() .build(); + /** + * Choose whether to show the Direction HUD when TAB is open. + * + * @since 1.1.9 + */ + public static final SimpleOption SHOW_WITH_TAB = SimpleOption.builder() + .comment("Choose whether to show the Direction HUD when TAB is open.") + .node("direction-hud", "show-with-tab").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + /** * No documentation available. * @@ -153,23 +165,34 @@ public final class ModDirectionHud { /** * No documentation available. * - * @since 1.0.0 + * @since 1.2.2 */ - public static final SimpleOption USE_LEGACY_STYLE = SimpleOption.builder() - .node("direction-hud", "use-legacy-style").type(TypeToken.get(Boolean.class)) - .defaultValue(false) + public static final SimpleOption SHOW_WAYPOINTS = SimpleOption.builder() + .node("direction-hud", "show-waypoints").type(TypeToken.get(Boolean.class)) + .defaultValue(true) .notifyClient() .build(); /** - * Choose whether to show the Direction HUD when TAB is open. + * No documentation available. * - * @since 1.1.9 + * @since 1.2.2 */ - public static final SimpleOption SHOW_WITH_TAB = SimpleOption.builder() - .comment("Choose whether to show the Direction HUD when TAB is open.") - .node("direction-hud", "show-with-tab").type(TypeToken.get(Boolean.class)) - .defaultValue(false) + public static final SimpleOption SHOW_TEAMMATES = SimpleOption.builder() + .node("direction-hud", "show-teammates").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * Show markers from the Markers Mod. + * + * @since 1.2.2 + */ + public static final SimpleOption SHOW_EXTERNAL_MARKERS = SimpleOption.builder() + .comment("Show markers from the Markers Mod.") + .node("direction-hud", "show-external-markers").type(TypeToken.get(Boolean.class)) + .defaultValue(true) .notifyClient() .build(); @@ -217,6 +240,18 @@ public final class ModDirectionHud { .notifyClient() .build(); + /** + * No documentation available. + * + * @since 1.0.0 + */ + @Deprecated + public static final SimpleOption USE_LEGACY_STYLE = SimpleOption.builder() + .node("direction-hud", "use-legacy-style").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + private ModDirectionHud() { } diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModF3Display.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModF3Display.java new file mode 100644 index 00000000..49534a68 --- /dev/null +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModF3Display.java @@ -0,0 +1,144 @@ +/* + * This file is part of Apollo, licensed under the MIT License. + * + * Copyright (c) 2023 Moonsworth + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package com.lunarclient.apollo.mods.impl; + +import com.lunarclient.apollo.option.NumberOption; +import com.lunarclient.apollo.option.SimpleOption; +import io.leangen.geantyref.TypeToken; +import java.awt.Color; + +/** + * Allows you to move and customize the F3 Debug Screen. + * + * @since 1.2.2 + */ +public final class ModF3Display { + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption ENABLED = SimpleOption.builder() + .node("f3-display", "enabled").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption ENTER_ANIMATION_DURATION = NumberOption.number() + .node("f3-display", "enter-animation-duration").type(TypeToken.get(Double.class)) + .min(0.0D).max(1.0D) + .defaultValue(0.25D) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption EXIT_ANIMATION_DURATION = NumberOption.number() + .node("f3-display", "exit-animation-duration").type(TypeToken.get(Double.class)) + .min(0.0D).max(1.0D) + .defaultValue(0.05D) + .notifyClient() + .build(); + + /** + * Hides the hud previews in the edit hud layout menu if you don't have F3 toggled. + * + * @since 1.2.2 + */ + public static final SimpleOption ONLY_MOVERS_IN_F3 = SimpleOption.builder() + .comment("Hides the hud previews in the edit hud layout menu if you don't have F3 toggled.") + .node("f3-display", "only-movers-in-f3").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * Adds a shadow to text. + * + * @since 1.2.2 + */ + public static final SimpleOption TEXT_SHADOW = SimpleOption.builder() + .comment("Adds a shadow to text") + .node("f3-display", "text-shadow").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption BACKGROUND = SimpleOption.builder() + .node("f3-display", "background").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption BACKGROUND_COLOR = SimpleOption.builder() + .node("f3-display", "background-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(0, 0, 0, 85)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption LABEL_COLOR = SimpleOption.builder() + .node("f3-display", "label-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(255, 255, 255)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption VALUE_COLOR = SimpleOption.builder() + .node("f3-display", "value-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(255, 255, 255)) + .notifyClient() + .build(); + + private ModF3Display() { + } + +} diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModFov.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModFov.java index 91fc9473..8229b8ab 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModFov.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModFov.java @@ -46,12 +46,12 @@ public final class ModFov { .build(); /** - * Determines if your FOV changes as you move. + * Turning this on will prevent your FOV from ever being changed by movement, flying, effects, bow, etc. * * @since 1.0.0 */ public static final SimpleOption STATIC_FOV = SimpleOption.builder() - .comment("Determines if your FOV changes as you move.") + .comment("Turning this on will prevent your FOV from ever being changed by movement, flying, effects, bow, etc.") .node("fov", "static-f-o-v").type(TypeToken.get(Boolean.class)) .defaultValue(false) .notifyClient() @@ -69,6 +69,29 @@ public final class ModFov { .notifyClient() .build(); + /** + * Smooth transition for the custom dynamic fov values. This does not affect the vanilla FOVs, only custom FOV values. + * + * @since 1.2.2 + */ + public static final SimpleOption SMOOTH_FOV = SimpleOption.builder() + .comment("Smooth transition for the custom dynamic fov values. This does not affect the vanilla FOVs, only custom FOV values.") + .node("fov", "smooth-fov").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption DYNAMIC_BOW = SimpleOption.builder() + .node("fov", "dynamic-bow").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + /** * No documentation available. * @@ -105,6 +128,17 @@ public final class ModFov { .notifyClient() .build(); + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption DYNAMIC_EFFECTS = SimpleOption.builder() + .node("fov", "dynamic-effects").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + /** * No documentation available. * @@ -177,6 +211,17 @@ public final class ModFov { .notifyClient() .build(); + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption DYNAMIC_SPRINT = SimpleOption.builder() + .node("fov", "dynamic-sprint").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + /** * No documentation available. * @@ -225,6 +270,17 @@ public final class ModFov { .notifyClient() .build(); + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption DYNAMIC_FLYING = SimpleOption.builder() + .node("fov", "dynamic-flying").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + /** * No documentation available. * diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModFps.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModFps.java index f6be0d84..43f37e41 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModFps.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModFps.java @@ -58,6 +58,17 @@ public final class ModFps { .notifyClient() .build(); + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption REVERSE_ORDER = SimpleOption.builder() + .node("fps", "reverse-order").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + /** * Adds a shadow to text. * diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHitbox.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHitbox.java index e6f3b035..8e1330f2 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHitbox.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModHitbox.java @@ -46,6 +46,41 @@ public final class ModHitbox { .notifyClient() .build(); + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption MAX_DISTANCE_TOGGLE = SimpleOption.builder() + .node("hitbox", "max-distance-toggle").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * Maximum distance away from the entity to show hitboxes at. + * + * @since 1.2.2 + */ + public static final NumberOption MAX_DISTANCE = NumberOption.number() + .comment("Maximum distance away from the entity to show hitboxes at") + .node("hitbox", "max-distance").type(TypeToken.get(Integer.class)) + .min(1).max(128) + .defaultValue(64) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.0.0 + */ + public static final SimpleOption HITBOX_PLAYER_SHOW = SimpleOption.builder() + .node("hitbox", "hitbox-player-show").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + /** * No documentation available. * @@ -85,8 +120,8 @@ public final class ModHitbox { * * @since 1.0.0 */ - public static final SimpleOption HITBOX_PLAYER_SHOW = SimpleOption.builder() - .node("hitbox", "hitbox-player-show").type(TypeToken.get(Boolean.class)) + public static final SimpleOption HITBOX_ITEM_SHOW = SimpleOption.builder() + .node("hitbox", "hitbox-item-show").type(TypeToken.get(Boolean.class)) .defaultValue(true) .notifyClient() .build(); @@ -130,8 +165,8 @@ public final class ModHitbox { * * @since 1.0.0 */ - public static final SimpleOption HITBOX_ITEM_SHOW = SimpleOption.builder() - .node("hitbox", "hitbox-item-show").type(TypeToken.get(Boolean.class)) + public static final SimpleOption HITBOX_EXP_ORB_SHOW = SimpleOption.builder() + .node("hitbox", "hitbox-exp-orb-show").type(TypeToken.get(Boolean.class)) .defaultValue(true) .notifyClient() .build(); @@ -141,8 +176,8 @@ public final class ModHitbox { * * @since 1.0.0 */ - public static final NumberOption HITBOX_PROJECTILE_LINE_WIDTH = NumberOption.number() - .node("hitbox", "hitbox-projectile-line-width").type(TypeToken.get(Float.class)) + public static final NumberOption HITBOX_EXP_ORB_LINE_WIDTH = NumberOption.number() + .node("hitbox", "hitbox-exp-orb-line-width").type(TypeToken.get(Float.class)) .min(1.0F).max(5.0F) .defaultValue(1.0F) .notifyClient() @@ -153,8 +188,8 @@ public final class ModHitbox { * * @since 1.0.0 */ - public static final SimpleOption HITBOX_PROJECTILE_LINE_COLOR = SimpleOption.builder() - .node("hitbox", "hitbox-projectile-line-color").type(TypeToken.get(Color.class)) + public static final SimpleOption HITBOX_EXP_ORB_LINE_COLOR = SimpleOption.builder() + .node("hitbox", "hitbox-exp-orb-line-color").type(TypeToken.get(Color.class)) .defaultValue(new Color(255, 255, 255)) .notifyClient() .build(); @@ -164,8 +199,278 @@ public final class ModHitbox { * * @since 1.0.0 */ - public static final SimpleOption HITBOX_PROJECTILE_LOOK_VECTOR = SimpleOption.builder() - .node("hitbox", "hitbox-projectile-look-vector").type(TypeToken.get(Boolean.class)) + public static final SimpleOption HITBOX_EXP_ORB_LOOK_VECTOR = SimpleOption.builder() + .node("hitbox", "hitbox-exp-orb-look-vector").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HITBOX_ITEM_FRAME_SHOW = SimpleOption.builder() + .node("hitbox", "hitbox-item-frame-show").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption HITBOX_ITEM_FRAME_LINE_WIDTH = NumberOption.number() + .node("hitbox", "hitbox-item-frame-line-width").type(TypeToken.get(Float.class)) + .min(1.0F).max(5.0F) + .defaultValue(1.0F) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HITBOX_ITEM_FRAME_LINE_COLOR = SimpleOption.builder() + .node("hitbox", "hitbox-item-frame-line-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(255, 255, 255)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HITBOX_ITEM_FRAME_LOOK_VECTOR = SimpleOption.builder() + .node("hitbox", "hitbox-item-frame-look-vector").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HITBOX_FIREWORK_SHOW = SimpleOption.builder() + .node("hitbox", "hitbox-firework-show").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption HITBOX_FIREWORK_LINE_WIDTH = NumberOption.number() + .node("hitbox", "hitbox-firework-line-width").type(TypeToken.get(Float.class)) + .min(1.0F).max(5.0F) + .defaultValue(1.0F) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HITBOX_FIREWORK_LINE_COLOR = SimpleOption.builder() + .node("hitbox", "hitbox-firework-line-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(255, 255, 255)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HITBOX_FIREWORK_LOOK_VECTOR = SimpleOption.builder() + .node("hitbox", "hitbox-firework-look-vector").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HITBOX_WITHER_SKULL_SHOW = SimpleOption.builder() + .node("hitbox", "hitbox-wither-skull-show").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption HITBOX_WITHER_SKULL_LINE_WIDTH = NumberOption.number() + .node("hitbox", "hitbox-wither-skull-line-width").type(TypeToken.get(Float.class)) + .min(1.0F).max(5.0F) + .defaultValue(1.0F) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HITBOX_WITHER_SKULL_LINE_COLOR = SimpleOption.builder() + .node("hitbox", "hitbox-wither-skull-line-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(255, 255, 255)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HITBOX_WITHER_SKULL_LOOK_VECTOR = SimpleOption.builder() + .node("hitbox", "hitbox-wither-skull-look-vector").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HITBOX_SNOWBALL_SHOW = SimpleOption.builder() + .node("hitbox", "hitbox-snowball-show").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption HITBOX_SNOWBALL_LINE_WIDTH = NumberOption.number() + .node("hitbox", "hitbox-snowball-line-width").type(TypeToken.get(Float.class)) + .min(1.0F).max(5.0F) + .defaultValue(1.0F) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HITBOX_SNOWBALL_LINE_COLOR = SimpleOption.builder() + .node("hitbox", "hitbox-snowball-line-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(255, 255, 255)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HITBOX_SNOWBALL_LOOK_VECTOR = SimpleOption.builder() + .node("hitbox", "hitbox-snowball-look-vector").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HITBOX_FIREBALL_SHOW = SimpleOption.builder() + .node("hitbox", "hitbox-fireball-show").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption HITBOX_FIREBALL_LINE_WIDTH = NumberOption.number() + .node("hitbox", "hitbox-fireball-line-width").type(TypeToken.get(Float.class)) + .min(1.0F).max(5.0F) + .defaultValue(1.0F) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HITBOX_FIREBALL_LINE_COLOR = SimpleOption.builder() + .node("hitbox", "hitbox-fireball-line-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(255, 255, 255)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HITBOX_FIREBALL_LOOK_VECTOR = SimpleOption.builder() + .node("hitbox", "hitbox-fireball-look-vector").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HITBOX_ARROW_SHOW = SimpleOption.builder() + .node("hitbox", "hitbox-arrow-show").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption HITBOX_ARROW_LINE_WIDTH = NumberOption.number() + .node("hitbox", "hitbox-arrow-line-width").type(TypeToken.get(Float.class)) + .min(1.0F).max(5.0F) + .defaultValue(1.0F) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HITBOX_ARROW_LINE_COLOR = SimpleOption.builder() + .node("hitbox", "hitbox-arrow-line-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(255, 255, 255)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HITBOX_ARROW_LOOK_VECTOR = SimpleOption.builder() + .node("hitbox", "hitbox-arrow-look-vector").type(TypeToken.get(Boolean.class)) .defaultValue(false) .notifyClient() .build(); @@ -186,8 +491,8 @@ public final class ModHitbox { * * @since 1.0.0 */ - public static final NumberOption HITBOX_MOB_LINE_WIDTH = NumberOption.number() - .node("hitbox", "hitbox-mob-line-width").type(TypeToken.get(Float.class)) + public static final NumberOption HITBOX_PROJECTILE_LINE_WIDTH = NumberOption.number() + .node("hitbox", "hitbox-projectile-line-width").type(TypeToken.get(Float.class)) .min(1.0F).max(5.0F) .defaultValue(1.0F) .notifyClient() @@ -198,8 +503,8 @@ public final class ModHitbox { * * @since 1.0.0 */ - public static final SimpleOption HITBOX_MOB_LINE_COLOR = SimpleOption.builder() - .node("hitbox", "hitbox-mob-line-color").type(TypeToken.get(Color.class)) + public static final SimpleOption HITBOX_PROJECTILE_LINE_COLOR = SimpleOption.builder() + .node("hitbox", "hitbox-projectile-line-color").type(TypeToken.get(Color.class)) .defaultValue(new Color(255, 255, 255)) .notifyClient() .build(); @@ -209,8 +514,8 @@ public final class ModHitbox { * * @since 1.0.0 */ - public static final SimpleOption HITBOX_MOB_LOOK_VECTOR = SimpleOption.builder() - .node("hitbox", "hitbox-mob-look-vector").type(TypeToken.get(Boolean.class)) + public static final SimpleOption HITBOX_PROJECTILE_LOOK_VECTOR = SimpleOption.builder() + .node("hitbox", "hitbox-projectile-look-vector").type(TypeToken.get(Boolean.class)) .defaultValue(false) .notifyClient() .build(); @@ -218,21 +523,146 @@ public final class ModHitbox { /** * No documentation available. * - * @since 1.0.0 + * @since 1.2.2 */ - public static final SimpleOption HITBOX_MOB_SHOW = SimpleOption.builder() - .node("hitbox", "hitbox-mob-show").type(TypeToken.get(Boolean.class)) + public static final SimpleOption HITBOX_MONSTER_SHOW = SimpleOption.builder() + .node("hitbox", "hitbox-monster-show").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption HITBOX_MONSTER_LINE_WIDTH = NumberOption.number() + .node("hitbox", "hitbox-monster-line-width").type(TypeToken.get(Float.class)) + .min(1.0F).max(5.0F) + .defaultValue(1.0F) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HITBOX_MONSTER_LINE_COLOR = SimpleOption.builder() + .node("hitbox", "hitbox-monster-line-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(255, 255, 255)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HITBOX_MONSTER_LOOK_VECTOR = SimpleOption.builder() + .node("hitbox", "hitbox-monster-look-vector").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HITBOX_PASSIVE_SHOW = SimpleOption.builder() + .node("hitbox", "hitbox-passive-show").type(TypeToken.get(Boolean.class)) .defaultValue(true) .notifyClient() .build(); + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption HITBOX_PASSIVE_LINE_WIDTH = NumberOption.number() + .node("hitbox", "hitbox-passive-line-width").type(TypeToken.get(Float.class)) + .min(1.0F).max(5.0F) + .defaultValue(1.0F) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HITBOX_PASSIVE_LINE_COLOR = SimpleOption.builder() + .node("hitbox", "hitbox-passive-line-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(255, 255, 255)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HITBOX_PASSIVE_LOOK_VECTOR = SimpleOption.builder() + .node("hitbox", "hitbox-passive-look-vector").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HITBOX_OTHER_SHOW = SimpleOption.builder() + .node("hitbox", "hitbox-other-show").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption HITBOX_OTHER_LINE_WIDTH = NumberOption.number() + .node("hitbox", "hitbox-other-line-width").type(TypeToken.get(Float.class)) + .min(1.0F).max(5.0F) + .defaultValue(1.0F) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HITBOX_OTHER_LINE_COLOR = SimpleOption.builder() + .node("hitbox", "hitbox-other-line-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(255, 255, 255)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HITBOX_OTHER_LOOK_VECTOR = SimpleOption.builder() + .node("hitbox", "hitbox-other-look-vector").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + /** * No documentation available. * * @since 1.0.0 */ - public static final NumberOption HITBOX_EXP_ORB_LINE_WIDTH = NumberOption.number() - .node("hitbox", "hitbox-exp-orb-line-width").type(TypeToken.get(Float.class)) + @Deprecated + public static final NumberOption HITBOX_MOB_LINE_WIDTH = NumberOption.number() + .node("hitbox", "hitbox-mob-line-width").type(TypeToken.get(Float.class)) .min(1.0F).max(5.0F) .defaultValue(1.0F) .notifyClient() @@ -243,8 +673,9 @@ public final class ModHitbox { * * @since 1.0.0 */ - public static final SimpleOption HITBOX_EXP_ORB_LINE_COLOR = SimpleOption.builder() - .node("hitbox", "hitbox-exp-orb-line-color").type(TypeToken.get(Color.class)) + @Deprecated + public static final SimpleOption HITBOX_MOB_LINE_COLOR = SimpleOption.builder() + .node("hitbox", "hitbox-mob-line-color").type(TypeToken.get(Color.class)) .defaultValue(new Color(255, 255, 255)) .notifyClient() .build(); @@ -254,8 +685,9 @@ public final class ModHitbox { * * @since 1.0.0 */ - public static final SimpleOption HITBOX_EXP_ORB_LOOK_VECTOR = SimpleOption.builder() - .node("hitbox", "hitbox-exp-orb-look-vector").type(TypeToken.get(Boolean.class)) + @Deprecated + public static final SimpleOption HITBOX_MOB_LOOK_VECTOR = SimpleOption.builder() + .node("hitbox", "hitbox-mob-look-vector").type(TypeToken.get(Boolean.class)) .defaultValue(false) .notifyClient() .build(); @@ -265,8 +697,9 @@ public final class ModHitbox { * * @since 1.0.0 */ - public static final SimpleOption HITBOX_EXP_ORB_SHOW = SimpleOption.builder() - .node("hitbox", "hitbox-exp-orb-show").type(TypeToken.get(Boolean.class)) + @Deprecated + public static final SimpleOption HITBOX_MOB_SHOW = SimpleOption.builder() + .node("hitbox", "hitbox-mob-show").type(TypeToken.get(Boolean.class)) .defaultValue(true) .notifyClient() .build(); diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModItemCounter.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModItemCounter.java index 7d145ac2..f4d5ae02 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModItemCounter.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModItemCounter.java @@ -26,6 +26,7 @@ import com.lunarclient.apollo.option.NumberOption; import com.lunarclient.apollo.option.SimpleOption; import io.leangen.geantyref.TypeToken; +import java.awt.Color; /** * Displays how many of the items you have selected are currently in your inventory, on the HUD. @@ -52,11 +53,91 @@ public final class ModItemCounter { */ public static final NumberOption SCALE = NumberOption.number() .node("item-counter", "scale").type(TypeToken.get(Float.class)) + .min(0.25F).max(5.0F) + .defaultValue(1.0F) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption CHILD_SCALE = NumberOption.number() + .node("item-counter", "child-scale").type(TypeToken.get(Float.class)) .min(0.5F).max(1.5F) .defaultValue(1.0F) .notifyClient() .build(); + /** + * Grouped mode takes the existing item counters and groups them together into a single box. + * + * @since 1.2.2 + */ + public static final SimpleOption ITEM_COUNTER_GROUPED = SimpleOption.builder() + .comment("Grouped mode takes the existing item counters and groups them together into a single box") + .node("item-counter", "item-counter-grouped").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption BACKGROUND = SimpleOption.builder() + .node("item-counter", "background").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption BORDER = SimpleOption.builder() + .node("item-counter", "border").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption BACKGROUND_COLOR = SimpleOption.builder() + .node("item-counter", "background-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(0, 0, 0, 111)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption BORDER_COLOR = SimpleOption.builder() + .node("item-counter", "border-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(0, 0, 0, 111)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption BORDER_THICKNESS = NumberOption.number() + .node("item-counter", "border-thickness").type(TypeToken.get(Float.class)) + .min(0.5F).max(3.0F) + .defaultValue(0.5F) + .notifyClient() + .build(); + private ModItemCounter() { } diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMarkers.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMarkers.java new file mode 100644 index 00000000..15ce1a0f --- /dev/null +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMarkers.java @@ -0,0 +1,305 @@ +/* + * This file is part of Apollo, licensed under the MIT License. + * + * Copyright (c) 2023 Moonsworth + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package com.lunarclient.apollo.mods.impl; + +import com.lunarclient.apollo.option.NumberOption; +import com.lunarclient.apollo.option.SimpleOption; +import io.leangen.geantyref.TypeToken; +import java.awt.Color; + +/** + * Allows you and your team to mark things in the world, like in various FPS games. + * + * @since 1.2.2 + */ +public final class ModMarkers { + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption ENABLED = SimpleOption.builder() + .node("markers", "enabled").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption DING_VOLUME_SELF = NumberOption.number() + .node("markers", "ding-volume-self").type(TypeToken.get(Float.class)) + .min(0.0F).max(1.0F) + .defaultValue(0.5F) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption DING_VOLUME_OTHERS = NumberOption.number() + .node("markers", "ding-volume-others").type(TypeToken.get(Float.class)) + .min(0.0F).max(1.0F) + .defaultValue(0.5F) + .notifyClient() + .build(); + + /** + * Hit the middle mouse button while hovering over your marker to delete it. + * + * @since 1.2.2 + */ + public static final SimpleOption MIDDLE_CLICK_REMOVE = SimpleOption.builder() + .comment("Hit the middle mouse button while hovering over your marker to delete it.") + .node("markers", "middle-click-remove").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption CHAT_NOTIFY = SimpleOption.builder() + .node("markers", "chat-notify").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption LUNAR_NOTIFY = SimpleOption.builder() + .node("markers", "lunar-notify").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * Try to detect your current team, and see and broadcast markers from and to members of your team. + * + * @since 1.2.2 + */ + public static final SimpleOption TEAM_MEMBERS = SimpleOption.builder() + .comment("Try to detect your current team, and see and broadcast markers from and to members of your team.") + .node("markers", "team-members").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * Classic team detection which uses Minecraft's scoreboard teams. + * + * @since 1.2.2 + */ + public static final SimpleOption SCOREBOARD_TEAMS = SimpleOption.builder() + .comment("Classic team detection which uses Minecraft's scoreboard teams.") + .node("markers", "scoreboard-teams").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * On supported servers, use our Apollo plugin for team detection. + * + * @since 1.2.2 + */ + public static final SimpleOption APOLLO_TEAMS = SimpleOption.builder() + .comment("On supported servers, use our Apollo plugin for team detection.") + .node("markers", "apollo-teams").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption COLOR_TEAMS = SimpleOption.builder() + .node("markers", "color-teams").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * See and broadcast markers from and to members of your Hypixel party. + * + * @since 1.2.2 + */ + public static final SimpleOption HYPIXEL_PARTY = SimpleOption.builder() + .comment("See and broadcast markers from and to members of your Hypixel party.") + .node("markers", "hypixel-party").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * See and broadcast markers from and to people on your Lunar friends list. + * + * @since 1.2.2 + */ + public static final SimpleOption LUNAR_FRIENDS = SimpleOption.builder() + .comment("See and broadcast markers from and to people on your Lunar friends list.") + .node("markers", "lunar-friends").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption SCALE = NumberOption.number() + .node("markers", "scale").type(TypeToken.get(Float.class)) + .min(0.5F).max(2.0F) + .defaultValue(1.0F) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption VISIBLE_DURATION = NumberOption.number() + .node("markers", "visible-duration").type(TypeToken.get(Integer.class)) + .min(5).max(120) + .defaultValue(20) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption ANIMATE_MARKER = SimpleOption.builder() + .node("markers", "animate-marker").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption COMPACT_MODE = SimpleOption.builder() + .node("markers", "compact-mode").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * Adds a shadow to text. + * + * @since 1.2.2 + */ + public static final SimpleOption TEXT_SHADOW = SimpleOption.builder() + .comment("Adds a shadow to text") + .node("markers", "text-shadow").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption BACKGROUND = SimpleOption.builder() + .node("markers", "background").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption BACKGROUND_COLOR = SimpleOption.builder() + .node("markers", "background-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(0, 0, 0, 64)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption MARKER_COLOR = SimpleOption.builder() + .node("markers", "marker-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(174, 225, 252, 190)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption DANGER_MARKER_COLOR = SimpleOption.builder() + .node("markers", "danger-marker-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(255, 66, 0, 190)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption INFO_MARKER_COLOR = SimpleOption.builder() + .node("markers", "info-marker-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(52, 158, 235)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption INTEREST_MARKER_COLOR = SimpleOption.builder() + .node("markers", "interest-marker-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(255, 170, 0)) + .notifyClient() + .build(); + + private ModMarkers() { + } + +} diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMinimap.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMinimap.java index 37d33b09..051ba554 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMinimap.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModMinimap.java @@ -105,6 +105,18 @@ public final class ModMinimap { .notifyClient() .build(); + /** + * With this enabled, the info text is scaled down to the width of the minimap. + * + * @since 1.2.2 + */ + public static final SimpleOption FIT_TEXT_TO_WIDTH = SimpleOption.builder() + .comment("With this enabled, the info text is scaled down to the width of the minimap") + .node("minimap", "fit-text-to-width").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + /** * No documentation available. * @@ -241,6 +253,61 @@ public final class ModMinimap { .notifyClient() .build(); + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption SHOW_BIOME = SimpleOption.builder() + .node("minimap", "show-biome").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption PRESET_BIOME_COLOR = SimpleOption.builder() + .node("minimap", "preset-biome-color").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption SHOW_CLOCK = SimpleOption.builder() + .node("minimap", "show-clock").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption SHOW_AM_PM = SimpleOption.builder() + .node("minimap", "show-am-pm").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption MILITARY_TIME = SimpleOption.builder() + .node("minimap", "military-time").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + /** * No documentation available. * diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModNickHider.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModNickHider.java index 1d7c3417..fed02a3c 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModNickHider.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModNickHider.java @@ -77,6 +77,28 @@ public final class ModNickHider { .notifyClient() .build(); + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption CUSTOM_SUFFIX = SimpleOption.builder() + .node("nick-hider", "custom-suffix").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HIDE_LOBBY_ID = SimpleOption.builder() + .node("nick-hider", "hide-lobby-i-d").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + /** * No documentation available. * diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModOverlayMod.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModOverlayMod.java new file mode 100644 index 00000000..67f2be6a --- /dev/null +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModOverlayMod.java @@ -0,0 +1,639 @@ +/* + * This file is part of Apollo, licensed under the MIT License. + * + * Copyright (c) 2023 Moonsworth + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package com.lunarclient.apollo.mods.impl; + +import com.lunarclient.apollo.option.NumberOption; +import com.lunarclient.apollo.option.SimpleOption; +import io.leangen.geantyref.TypeToken; +import java.awt.Color; + +/** + * Configure various texture overlays, tweaks, and modifiers. + * + * @since 1.2.2 + */ +public final class ModOverlayMod { + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption ENABLED = SimpleOption.builder() + .node("overlay-mod", "enabled").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * When View Bobbing is enabled, only bob your hand (requires View Bobbing to be enabled). + * + * @since 1.2.2 + */ + public static final SimpleOption MINIMAL_VIEW_BOBBING = SimpleOption.builder() + .comment("When View Bobbing is enabled, only bob your hand (requires View Bobbing to be enabled).") + .node("overlay-mod", "minimal-view-bobbing").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption FIRE_HEIGHT = NumberOption.number() + .node("overlay-mod", "fire-height").type(TypeToken.get(Float.class)) + .min(0.0F).max(2.0F) + .defaultValue(1.0F) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption SHIELD_HEIGHT = NumberOption.number() + .node("overlay-mod", "shield-height").type(TypeToken.get(Float.class)) + .min(0.0F).max(2.0F) + .defaultValue(1.0F) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption TOTEM_SCALE = NumberOption.number() + .node("overlay-mod", "totem-scale").type(TypeToken.get(Float.class)) + .min(0.25F).max(1.5F) + .defaultValue(1.0F) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption HELD_ITEM_SCALE = NumberOption.number() + .node("overlay-mod", "held-item-scale").type(TypeToken.get(Float.class)) + .min(0.25F).max(1.5F) + .defaultValue(1.0F) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption PUMPKIN_OVERLAY = NumberOption.number() + .node("overlay-mod", "pumpkin-overlay").type(TypeToken.get(Float.class)) + .min(0.0F).max(1.0F) + .defaultValue(1.0F) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption SPYGLASS_OVERLAY = NumberOption.number() + .node("overlay-mod", "spyglass-overlay").type(TypeToken.get(Float.class)) + .min(0.0F).max(1.0F) + .defaultValue(1.0F) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption FROST_OVERLAY = NumberOption.number() + .node("overlay-mod", "frost-overlay").type(TypeToken.get(Float.class)) + .min(0.0F).max(1.0F) + .defaultValue(1.0F) + .notifyClient() + .build(); + + /** + * Hides grass and double grass blocks. + * + * @since 1.2.2 + */ + public static final SimpleOption HIDE_FOLIAGE = SimpleOption.builder() + .comment("Hides grass and double grass blocks") + .node("overlay-mod", "hide-foliage").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * Render shadows for entities. + * + * @since 1.2.2 + */ + public static final SimpleOption ENTITY_SHADOW = SimpleOption.builder() + .comment("Render shadows for entities") + .node("overlay-mod", "entity-shadow").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * Choose whether or not to hide arrows that are stuck in the ground. + * + * @since 1.2.2 + */ + public static final SimpleOption GROUND_ARROWS = SimpleOption.builder() + .comment("Choose whether or not to hide arrows that are stuck in the ground") + .node("overlay-mod", "ground-arrows").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * Choose whether or not to hide arrows that are stuck in players. + * + * @since 1.2.2 + */ + public static final SimpleOption STUCK_ARROWS = SimpleOption.builder() + .comment("Choose whether or not to hide arrows that are stuck in players") + .node("overlay-mod", "stuck-arrows").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HIDE_SKULLS = SimpleOption.builder() + .node("overlay-mod", "hide-skulls").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption CLEAR_GLASS = SimpleOption.builder() + .node("overlay-mod", "clear-glass").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption CLEAR_GLASS_TRANSPARENCY = NumberOption.number() + .node("overlay-mod", "clear-glass-transparency").type(TypeToken.get(Float.class)) + .min(0.0F).max(1.0F) + .defaultValue(0.0F) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption CLEAR_COLORED_GLASS = SimpleOption.builder() + .node("overlay-mod", "clear-colored-glass").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption CLEAR_GLASS_OUTLINE = SimpleOption.builder() + .node("overlay-mod", "clear-glass-outline").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption CLEAR_GLASS_OUTLINE_THICKNESS = NumberOption.number() + .node("overlay-mod", "clear-glass-outline-thickness").type(TypeToken.get(Integer.class)) + .min(1).max(3) + .defaultValue(1) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption CLEAR_GLASS_OUTLINE_TRANSPARENCY = NumberOption.number() + .node("overlay-mod", "clear-glass-outline-transparency").type(TypeToken.get(Float.class)) + .min(0.0F).max(1.0F) + .defaultValue(1.0F) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption ORE_OUTLINES = SimpleOption.builder() + .node("overlay-mod", "ore-outlines").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * Use a heuristic to calculate the ore outline color from the actual ore texture, to make it match better. Turning this option off will use predefined vanilla ore outline colors. + * + * @since 1.2.2 + */ + public static final SimpleOption SMART_OUTLINE_COLORS = SimpleOption.builder() + .comment("Use a heuristic to calculate the ore outline color from the actual ore texture, to make it match better. Turning this option off will use predefined vanilla ore outline colors.") + .node("overlay-mod", "smart-outline-colors").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * Apply some noise to the ore outlines to make them appear shiny. + * + * @since 1.2.2 + */ + public static final SimpleOption SHINY_ORE_OUTLINES = SimpleOption.builder() + .comment("Apply some noise to the ore outlines to make them appear shiny") + .node("overlay-mod", "shiny-ore-outlines").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption ORE_OUTLINE_THICKNESS = NumberOption.number() + .node("overlay-mod", "ore-outline-thickness").type(TypeToken.get(Integer.class)) + .min(1).max(3) + .defaultValue(1) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption DIAMOND_ORE_OUTLINE = SimpleOption.builder() + .node("overlay-mod", "diamond-ore-outline").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption GOLD_ORE_OUTLINE = SimpleOption.builder() + .node("overlay-mod", "gold-ore-outline").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption IRON_ORE_OUTLINE = SimpleOption.builder() + .node("overlay-mod", "iron-ore-outline").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption LAPIS_ORE_OUTLINE = SimpleOption.builder() + .node("overlay-mod", "lapis-ore-outline").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption REDSTONE_ORE_OUTLINE = SimpleOption.builder() + .node("overlay-mod", "redstone-ore-outline").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption EMERALD_ORE_OUTLINE = SimpleOption.builder() + .node("overlay-mod", "emerald-ore-outline").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption COAL_ORE_OUTLINE = SimpleOption.builder() + .node("overlay-mod", "coal-ore-outline").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption NETHER_QUARTZ_ORE_OUTLINE = SimpleOption.builder() + .node("overlay-mod", "nether-quartz-ore-outline").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption BARRIER_OUTLINES = SimpleOption.builder() + .node("overlay-mod", "barrier-outlines").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption BARRIER_OUTLINE_THICKNESS = NumberOption.number() + .node("overlay-mod", "barrier-outline-thickness").type(TypeToken.get(Integer.class)) + .min(1).max(3) + .defaultValue(1) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption BARRIER_OUTLINE_COLOR = SimpleOption.builder() + .node("overlay-mod", "barrier-outline-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(255, 0, 0, 191)) + .notifyClient() + .build(); + + /** + * Make strings/tripwires more visible by changing their color. + * + * @since 1.2.2 + */ + public static final SimpleOption COLORED_STRING = SimpleOption.builder() + .comment("Make strings/tripwires more visible by changing their color") + .node("overlay-mod", "colored-string").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * Fill in the transparent spots on the string texture. + * + * @since 1.2.2 + */ + public static final SimpleOption BOLD_STRING = SimpleOption.builder() + .comment("Fill in the transparent spots on the string texture") + .node("overlay-mod", "bold-string").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption STRING_COLOR = SimpleOption.builder() + .node("overlay-mod", "string-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(255, 0, 0)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption OVERRIDE_XP_ORB_COLOR = SimpleOption.builder() + .node("overlay-mod", "override-xp-orb-color").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption XP_ORB_COLOR = SimpleOption.builder() + .node("overlay-mod", "xp-orb-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(255, 255, 255, 128)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption CUSTOM_FISHING_LINE = SimpleOption.builder() + .node("overlay-mod", "custom-fishing-line").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption FISHING_LINE_THICKNESS = NumberOption.number() + .node("overlay-mod", "fishing-line-thickness").type(TypeToken.get(Float.class)) + .min(0.5F).max(3.0F) + .defaultValue(1.0F) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption FISHING_LINE_COLOR = SimpleOption.builder() + .node("overlay-mod", "fishing-line-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(0, 0, 0)) + .notifyClient() + .build(); + + /** + * Improve visibility when riding a horse. + * + * @since 1.2.2 + */ + public static final SimpleOption HEADLESS_HORSES = SimpleOption.builder() + .comment("Improve visibility when riding a horse") + .node("overlay-mod", "headless-horses").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption DISABLE_DEATH_ANIMATION = SimpleOption.builder() + .node("overlay-mod", "disable-death-animation").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption DISABLE_DAMAGE_OVERLAY = SimpleOption.builder() + .node("overlay-mod", "disable-damage-overlay").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * Disable the rendering of the fire overlay when a mob or player is on fire. + * + * @since 1.2.2 + */ + public static final SimpleOption DISABLE_FIRE_OVERLAY = SimpleOption.builder() + .comment("Disable the rendering of the fire overlay when a mob or player is on fire.") + .node("overlay-mod", "disable-fire-overlay").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HIDE_HELMET = SimpleOption.builder() + .node("overlay-mod", "hide-helmet").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * Does not work on elytra. + * + * @since 1.2.2 + */ + public static final SimpleOption HIDE_CHEST = SimpleOption.builder() + .comment("Does not work on elytra.") + .node("overlay-mod", "hide-chest").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HIDE_LEGGINGS = SimpleOption.builder() + .node("overlay-mod", "hide-leggings").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HIDE_BOOTS = SimpleOption.builder() + .node("overlay-mod", "hide-boots").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * Disabling this allows you to hide armor slots for all entities. + * + * @since 1.2.2 + */ + public static final SimpleOption SELF_ONLY = SimpleOption.builder() + .comment("Disabling this allows you to hide armor slots for all entities.") + .node("overlay-mod", "self-only").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + private ModOverlayMod() { + } + +} diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModParticleChanger.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModParticleChanger.java index 28832eb9..e5473af9 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModParticleChanger.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModParticleChanger.java @@ -46,6 +46,62 @@ public final class ModParticleChanger { .notifyClient() .build(); + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption SHOW_BLOOD_PARTICLES = SimpleOption.builder() + .node("particle-changer", "show-blood-particles").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption BLOOD_MULTIPLIER = NumberOption.number() + .node("particle-changer", "blood-multiplier").type(TypeToken.get(Integer.class)) + .min(1).max(10) + .defaultValue(1) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption PLAYER_BLOOD_PARTICLES = SimpleOption.builder() + .node("particle-changer", "player-blood-particles").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption ENTITY_BLOOD_PARTICLES = SimpleOption.builder() + .node("particle-changer", "entity-blood-particles").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption PLAY_BLOOD_SOUND = SimpleOption.builder() + .node("particle-changer", "play-blood-sound").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + /** * No documentation available. * @@ -80,6 +136,18 @@ public final class ModParticleChanger { .notifyClient() .build(); + /** + * Simple toggle for clean game rendering. This may cause issues with certain server mechanics being more challenging to see!. + * + * @since 1.2.2 + */ + public static final SimpleOption HIDE_ALL_PARTICLES = SimpleOption.builder() + .comment("Simple toggle for clean game rendering. This may cause issues with certain server mechanics being more challenging to see!") + .node("particle-changer", "hide-all-particles").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + /** * No documentation available. * diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModReachDisplay.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModReachDisplay.java index bb96f6c1..77806261 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModReachDisplay.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModReachDisplay.java @@ -58,6 +58,50 @@ public final class ModReachDisplay { .notifyClient() .build(); + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption REVERSE_ORDER = SimpleOption.builder() + .node("reach-display", "reverse-order").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HIDE_ZERO = SimpleOption.builder() + .node("reach-display", "hide-zero").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HIGHLIGHT_ATTACKABLE_PLAYERS = SimpleOption.builder() + .node("reach-display", "highlight-attackable-players").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HIGHLIGHT_COLOR = SimpleOption.builder() + .node("reach-display", "highlight-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(0, 255, 0, 77)) + .notifyClient() + .build(); + /** * Adds a shadow to text. * diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModScoreboard.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModScoreboard.java index 12732e7d..98a74f72 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModScoreboard.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModScoreboard.java @@ -126,6 +126,17 @@ public final class ModScoreboard { .notifyClient() .build(); + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HEADER_COLOR = SimpleOption.builder() + .node("scoreboard", "header-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(0, 0, 0, 80)) + .notifyClient() + .build(); + /** * No documentation available. * diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModScrollableTooltips.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModScrollableTooltips.java index fa6c1f6b..06c6c4ba 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModScrollableTooltips.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModScrollableTooltips.java @@ -92,6 +92,18 @@ public final class ModScrollableTooltips { .notifyClient() .build(); + /** + * Instead of moving the tooltip vertically, hide lines when scrolling. + * + * @since 1.2.2 + */ + public static final SimpleOption LINE_SHIFT_MODE = SimpleOption.builder() + .comment("Instead of moving the tooltip vertically, hide lines when scrolling.") + .node("scrollable-tooltips", "line-shift-mode").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + /** * No documentation available. * diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModShields.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModShields.java new file mode 100644 index 00000000..79a0a8ba --- /dev/null +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModShields.java @@ -0,0 +1,143 @@ +/* + * This file is part of Apollo, licensed under the MIT License. + * + * Copyright (c) 2023 Moonsworth + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +package com.lunarclient.apollo.mods.impl; + +import com.lunarclient.apollo.option.SimpleOption; +import io.leangen.geantyref.TypeToken; +import java.awt.Color; + +/** + * Some QoL features for Minecraft shields. + * + * @since 1.2.2 + */ +public final class ModShields { + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption ENABLED = SimpleOption.builder() + .node("shields", "enabled").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption ENABLE_SHIELD_COLORS = SimpleOption.builder() + .node("shields", "enable-shield-colors").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption SHIELD_ACTIVE_COLOR = SimpleOption.builder() + .node("shields", "shield-active-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(0, 255, 0)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption SHIELD_INACTIVE_COLOR = SimpleOption.builder() + .node("shields", "shield-inactive-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(255, 0, 0)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption ANIMATE_COLOR_TRANSITION = SimpleOption.builder() + .node("shields", "animate-color-transition").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * Always play a sound whenever a player's shield goes inactive. + * + * @since 1.2.2 + */ + public static final SimpleOption SHIELD_INACTIVE_SOUND = SimpleOption.builder() + .comment("Always play a sound whenever a player's shield goes inactive.") + .node("shields", "shield-inactive-sound").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * Always play a sound whenever a player's shield is damaged by any source. + * + * @since 1.2.2 + */ + public static final SimpleOption SHIELD_USE_SOUND = SimpleOption.builder() + .comment("Always play a sound whenever a player's shield is damaged by any source.") + .node("shields", "shield-use-sound").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * Ignore the 5 tick deactivation period when a shield is hit with any item other than the axe. + * + * @since 1.2.2 + */ + public static final SimpleOption IGNORE_5TICKS = SimpleOption.builder() + .comment("Ignore the 5 tick deactivation period when a shield is hit with any item other than the axe.") + .node("shields", "ignore5-ticks").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * Fix the bug where shields don't show as blocking sometimes, even though the player is blocking. + * + * @since 1.2.2 + */ + public static final SimpleOption BETTER_BLOCKING = SimpleOption.builder() + .comment("Fix the bug where shields don't show as blocking sometimes, even though the player is blocking.") + .node("shields", "better-blocking").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + private ModShields() { + } + +} diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModSkyblock.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModSkyblock.java index 00ac0cf4..d34ed138 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModSkyblock.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModSkyblock.java @@ -106,6 +106,76 @@ public final class ModSkyblock { .notifyClient() .build(); + /** + * Adds tab completion to the /warp command. + * + * @since 1.2.2 + */ + public static final SimpleOption SKYBLOCK_AUTOCOMPLETE_WARPS = SimpleOption.builder() + .comment("Adds tab completion to the /warp command.") + .node("skyblock", "skyblock-autocomplete-warps").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * Hides ex-coop members in the collection menu. + * + * @since 1.2.2 + */ + public static final SimpleOption SKYBLOCK_HIDE_EX_COOPS = SimpleOption.builder() + .comment("Hides ex-coop members in the collection menu.") + .node("skyblock", "skyblock-hide-ex-coops").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption SKYBLOCK_HIDE_MAGIC_SOUP_MESSAGES = SimpleOption.builder() + .node("skyblock", "skyblock-hide-magic-soup-messages").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * Hides other players near important NPCs. + * + * @since 1.2.2 + */ + public static final SimpleOption SKYBLOCK_HIDE_PLAYERS_NEAR_NPCS = SimpleOption.builder() + .comment("Hides other players near important NPCs.") + .node("skyblock", "skyblock-hide-players-near-n-p-cs").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption SKYBLOCK_HIDE_OTHERS_GIFTS = SimpleOption.builder() + .node("skyblock", "skyblock-hide-others-gifts").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * Hides spambots that send malicious websites in chat. + * + * @since 1.2.2 + */ + public static final SimpleOption SKYBLOCK_ADBLOCK = SimpleOption.builder() + .comment("Hides spambots that send malicious websites in chat.") + .node("skyblock", "skyblock-adblock").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + /** * No documentation available. * @@ -206,6 +276,17 @@ public final class ModSkyblock { .notifyClient() .build(); + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption SKYBLOCK_HIDE_RANDOM_BOSSBARS = SimpleOption.builder() + .node("skyblock", "skyblock-hide-random-bossbars").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + /** * Provides QOL for the Diana mayor that helps the user quickly locate burrows. * @@ -218,6 +299,116 @@ public final class ModSkyblock { .notifyClient() .build(); + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption BURROW_ESTIMATE_COLOR = SimpleOption.builder() + .node("skyblock", "burrow-estimate-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(255, 255, 0)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption BURROW_ESTIMATE_LINE = SimpleOption.builder() + .node("skyblock", "burrow-estimate-line").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption BURROW_ESTIMATE_BEAM = SimpleOption.builder() + .node("skyblock", "burrow-estimate-beam").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption BURROW_ESTIMATES_PRIORITIZE_PLAYER_WAYPOINTS = SimpleOption.builder() + .node("skyblock", "burrow-estimates-prioritize-player-waypoints").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption BURROW_WARP_TO_NEAREST_ALERT = SimpleOption.builder() + .node("skyblock", "burrow-warp-to-nearest-alert").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption BURROW_MOB_COLOR = SimpleOption.builder() + .node("skyblock", "burrow-mob-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(255, 0, 0)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption BURROW_TREASURE_COLOR = SimpleOption.builder() + .node("skyblock", "burrow-treasure-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(0, 255, 0)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption BURROW_START_COLOR = SimpleOption.builder() + .node("skyblock", "burrow-start-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(0, 255, 0)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption BURROW_UNKNOWN_COLOR = SimpleOption.builder() + .node("skyblock", "burrow-unknown-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(0, 255, 0)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption BURROW_BEAM = SimpleOption.builder() + .node("skyblock", "burrow-beam").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + /** * Changes crop hitboxes with their 1.12+ variant. Only enabled on Hypixel or singleplayer. * @@ -496,6 +687,149 @@ public final class ModSkyblock { .notifyClient() .build(); + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption ENABLE_DUNGEON_ROUTES = SimpleOption.builder() + .node("skyblock", "enable-dungeon-routes").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption DEFAULT_SECRET_ROUTES_ENABLED = SimpleOption.builder() + .node("skyblock", "default-secret-routes-enabled").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption SECRET_ROUTES_NAMES_AT_START = SimpleOption.builder() + .node("skyblock", "secret-routes-names-at-start").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption SECRET_ROUTES_NAME_COLOR = SimpleOption.builder() + .node("skyblock", "secret-routes-name-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(255, 0, 0)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption SECRET_ROUTES_DISABLE_HELP_TEXT = SimpleOption.builder() + .node("skyblock", "secret-routes-disable-help-text").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption SECRET_ROUTES_ALLOW_PEARLING = SimpleOption.builder() + .node("skyblock", "secret-routes-allow-pearling").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption SECRET_ROUTES_DISABLE_SUPERBOOM = SimpleOption.builder() + .node("skyblock", "secret-routes-disable-superboom").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption SECRET_ROUTES_DISABLE_BLOCK = SimpleOption.builder() + .node("skyblock", "secret-routes-disable-block").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption SECRET_ROUTES_DISABLE_LEVER = SimpleOption.builder() + .node("skyblock", "secret-routes-disable-lever").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption SECRET_ROUTES_DISABLE_ETHERWARP = SimpleOption.builder() + .node("skyblock", "secret-routes-disable-etherwarp").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption SECRET_ROUTES_DISABLE_SECRET = SimpleOption.builder() + .node("skyblock", "secret-routes-disable-secret").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption SECRET_ROUTES_DISABLE_MISC = SimpleOption.builder() + .node("skyblock", "secret-routes-disable-misc").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption SECRET_ROUTES_DISABLE_PEARLS = SimpleOption.builder() + .node("skyblock", "secret-routes-disable-pearls").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + /** * Provides a general line thickness option that applies to most features with box/line rendering. * diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModStopwatch.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModStopwatch.java index 488c5ed8..efe8d491 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModStopwatch.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModStopwatch.java @@ -29,7 +29,7 @@ import java.awt.Color; /** - * Adds a stopwatch to the HUD. + * Adds stopwatches and timers to the HUD. * * @since 1.0.0 */ @@ -51,6 +51,7 @@ public final class ModStopwatch { * * @since 1.0.0 */ + @Deprecated public static final NumberOption SCALE = NumberOption.number() .node("stopwatch", "scale").type(TypeToken.get(Float.class)) .min(0.25F).max(5.0F) @@ -63,6 +64,7 @@ public final class ModStopwatch { * * @since 1.0.0 */ + @Deprecated public static final SimpleOption RESET_EVERY_START = SimpleOption.builder() .node("stopwatch", "reset-every-start").type(TypeToken.get(Boolean.class)) .defaultValue(true) @@ -74,6 +76,7 @@ public final class ModStopwatch { * * @since 1.0.0 */ + @Deprecated public static final SimpleOption TEXT_SHADOW = SimpleOption.builder() .comment("Adds a shadow to text") .node("stopwatch", "text-shadow").type(TypeToken.get(Boolean.class)) @@ -86,6 +89,7 @@ public final class ModStopwatch { * * @since 1.0.0 */ + @Deprecated public static final SimpleOption BRACKETS = SimpleOption.builder() .node("stopwatch", "brackets").type(TypeToken.get(Boolean.class)) .defaultValue(true) @@ -97,6 +101,7 @@ public final class ModStopwatch { * * @since 1.1.6 */ + @Deprecated public static final SimpleOption BRACKET_COLOR = SimpleOption.builder() .node("stopwatch", "bracket-color").type(TypeToken.get(Color.class)) .defaultValue(new Color(255, 255, 255)) @@ -108,6 +113,7 @@ public final class ModStopwatch { * * @since 1.0.0 */ + @Deprecated public static final SimpleOption BACKGROUND = SimpleOption.builder() .node("stopwatch", "background").type(TypeToken.get(Boolean.class)) .defaultValue(true) @@ -119,6 +125,7 @@ public final class ModStopwatch { * * @since 1.0.0 */ + @Deprecated public static final SimpleOption STATIC_BACKGROUND_WIDTH = SimpleOption.builder() .comment("If this is disabled the background will change size with the text.") .node("stopwatch", "static-background-width").type(TypeToken.get(Boolean.class)) @@ -131,6 +138,7 @@ public final class ModStopwatch { * * @since 1.1.6 */ + @Deprecated public static final SimpleOption STATIC_BACKGROUND_HEIGHT = SimpleOption.builder() .comment("If this is disabled the background will change size with the text.") .node("stopwatch", "static-background-height").type(TypeToken.get(Boolean.class)) @@ -143,6 +151,7 @@ public final class ModStopwatch { * * @since 1.0.0 */ + @Deprecated public static final NumberOption BACKGROUND_WIDTH = NumberOption.number() .node("stopwatch", "background-width").type(TypeToken.get(Integer.class)) .min(44).max(120) @@ -155,6 +164,7 @@ public final class ModStopwatch { * * @since 1.0.0 */ + @Deprecated public static final NumberOption BACKGROUND_HEIGHT = NumberOption.number() .node("stopwatch", "background-height").type(TypeToken.get(Integer.class)) .min(10).max(22) @@ -167,6 +177,7 @@ public final class ModStopwatch { * * @since 1.0.0 */ + @Deprecated public static final SimpleOption BORDER = SimpleOption.builder() .node("stopwatch", "border").type(TypeToken.get(Boolean.class)) .defaultValue(false) @@ -178,6 +189,7 @@ public final class ModStopwatch { * * @since 1.0.0 */ + @Deprecated public static final NumberOption BORDER_THICKNESS = NumberOption.number() .node("stopwatch", "border-thickness").type(TypeToken.get(Float.class)) .min(0.5F).max(3.0F) @@ -190,6 +202,7 @@ public final class ModStopwatch { * * @since 1.0.0 */ + @Deprecated public static final SimpleOption BORDER_COLOR = SimpleOption.builder() .node("stopwatch", "border-color").type(TypeToken.get(Color.class)) .defaultValue(new Color(0, 0, 0, 159)) @@ -201,6 +214,7 @@ public final class ModStopwatch { * * @since 1.0.0 */ + @Deprecated public static final SimpleOption BACKGROUND_COLOR = SimpleOption.builder() .node("stopwatch", "background-color").type(TypeToken.get(Color.class)) .defaultValue(new Color(0, 0, 0, 111)) @@ -212,6 +226,7 @@ public final class ModStopwatch { * * @since 1.0.0 */ + @Deprecated public static final SimpleOption TEXT_COLOR = SimpleOption.builder() .node("stopwatch", "text-color").type(TypeToken.get(Color.class)) .defaultValue(new Color(255, 255, 255)) diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTeamView.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTeamView.java index 8212a921..87dc9421 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTeamView.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModTeamView.java @@ -25,6 +25,7 @@ import com.lunarclient.apollo.option.SimpleOption; import io.leangen.geantyref.TypeToken; +import java.awt.Color; /** * Shows you where your teammates are on the HUD. @@ -44,6 +45,52 @@ public final class ModTeamView { .notifyClient() .build(); + /** + * On supported servers, use our Apollo plugin for team detection. + * + * @since 1.2.2 + */ + public static final SimpleOption APOLLO_TEAMS = SimpleOption.builder() + .comment("On supported servers, use our Apollo plugin for team detection.") + .node("team-view", "apollo-teams").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * If you are in a lobby, or in a game where your party members can be shown without giving you an unfair advantage (e.g. Skyblock), show them. Otherwise, if you're in a team game, show your teammate(s). + * + * @since 1.2.2 + */ + public static final SimpleOption TEAMVIEW_HYPIXEL = SimpleOption.builder() + .comment("If you are in a lobby, or in a game where your party members can be shown without giving you an unfair advantage (e.g. Skyblock), show them. Otherwise, if you're in a team game, show your teammate(s).") + .node("team-view", "teamview-hypixel").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HYPIXEL_TEAM_COLOR = SimpleOption.builder() + .node("team-view", "hypixel-team-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(43, 255, 65)) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption HYPIXEL_PARTY_COLOR = SimpleOption.builder() + .node("team-view", "hypixel-party-color").type(TypeToken.get(Color.class)) + .defaultValue(new Color(246, 198, 52)) + .notifyClient() + .build(); + private ModTeamView() { } diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWaila.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWaila.java index 0738a298..dc912f2e 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWaila.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWaila.java @@ -91,6 +91,28 @@ public final class ModWaila { .notifyClient() .build(); + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption SHOW_SPRAYS = SimpleOption.builder() + .node("waila", "show-sprays").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption SHOW_COMPANIONS = SimpleOption.builder() + .node("waila", "show-companions").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + /** * Adds a shadow to text. * diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWaypoints.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWaypoints.java index bc63e19b..008b63a5 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWaypoints.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWaypoints.java @@ -57,6 +57,18 @@ public final class ModWaypoints { .notifyClient() .build(); + /** + * Ask for confirmation before deleting a waypoint through the UI. + * + * @since 1.2.2 + */ + public static final SimpleOption CONFIRM_DELETE = SimpleOption.builder() + .comment("Ask for confirmation before deleting a waypoint through the UI") + .node("waypoints", "confirm-delete").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + /** * Automatically create a waypoint when you die. * diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWeatherChanger.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWeatherChanger.java index 1e9ef707..fede2873 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWeatherChanger.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModWeatherChanger.java @@ -70,6 +70,64 @@ public final class ModWeatherChanger { .notifyClient() .build(); + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption THUNDER_STORM = SimpleOption.builder() + .node("weather-changer", "thunder-storm").type(TypeToken.get(Boolean.class)) + .defaultValue(false) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final SimpleOption PLAY_THUNDER_SOUND = SimpleOption.builder() + .node("weather-changer", "play-thunder-sound").type(TypeToken.get(Boolean.class)) + .defaultValue(true) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption LIGHTNING_FREQ = NumberOption.number() + .node("weather-changer", "lightning-freq").type(TypeToken.get(Float.class)) + .min(1.0F).max(20.0F) + .defaultValue(1.0F) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption LIGHTNING_RADIUS_XZ = NumberOption.number() + .node("weather-changer", "lightning-radius-x-z").type(TypeToken.get(Float.class)) + .min(8.0F).max(512.0F) + .defaultValue(128.0F) + .notifyClient() + .build(); + + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption LIGHTNING_OFFSET_Y = NumberOption.number() + .node("weather-changer", "lightning-offset-y").type(TypeToken.get(Float.class)) + .min(-64.0F).max(64.0F) + .defaultValue(0.0F) + .notifyClient() + .build(); + private ModWeatherChanger() { } diff --git a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModZoom.java b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModZoom.java index d7329103..c35d1e12 100644 --- a/api/src/main/java/com/lunarclient/apollo/mods/impl/ModZoom.java +++ b/api/src/main/java/com/lunarclient/apollo/mods/impl/ModZoom.java @@ -93,6 +93,18 @@ public final class ModZoom { .notifyClient() .build(); + /** + * No documentation available. + * + * @since 1.2.2 + */ + public static final NumberOption ZOOM_SCROLL_SPEED = NumberOption.number() + .node("zoom", "zoom-scroll-speed").type(TypeToken.get(Float.class)) + .min(0.25F).max(5.0F) + .defaultValue(1.0F) + .notifyClient() + .build(); + /** * Change the initial zoom depth. * diff --git a/docs/developers/mods/_meta.json b/docs/developers/mods/_meta.json index f3b20c7b..631a973a 100644 --- a/docs/developers/mods/_meta.json +++ b/docs/developers/mods/_meta.json @@ -19,6 +19,7 @@ "damagetint": "DamageTint", "daycounter": "DayCounter", "directionhud": "DirectionHud", + "f3display": "F3Display", "fog": "Fog", "fov": "Fov", "fps": "Fps", @@ -37,6 +38,7 @@ "keystrokes": "Keystrokes", "killsounds": "KillSounds", "lighting": "Lighting", + "markers": "Markers", "memory": "Memory", "menublur": "MenuBlur", "minimap": "Minimap", @@ -48,6 +50,7 @@ "neu": "Neu", "nickhider": "NickHider", "onesevenvisuals": "OneSevenVisuals", + "overlaymod": "OverlayMod", "packdisplay": "PackDisplay", "packorganizer": "PackOrganizer", "particlechanger": "ParticleChanger", @@ -66,6 +69,7 @@ "screenshot": "Screenshot", "scrollabletooltips": "ScrollableTooltips", "serveraddress": "ServerAddress", + "shields": "Shields", "shinypots": "ShinyPots", "shulkerpreview": "ShulkerPreview", "skyblock": "Skyblock", diff --git a/docs/developers/mods/chat.mdx b/docs/developers/mods/chat.mdx index c1428e57..f838896f 100644 --- a/docs/developers/mods/chat.mdx +++ b/docs/developers/mods/chat.mdx @@ -121,6 +121,13 @@ For example, if your name is Notch, this will ping on Notch but not Notch123. - Type: `Boolean` - Default: `false` +- __`COPY_CHAT_RIGHT_CLICK`__ + - Allows you to simply right click a chat message to copy it, no keybind + - Config Key: `copy-chat-right-click` + - Values + - Type: `Boolean` + - Default: `true` + - __`HOVER_IMAGE_PREVIEW`__ - Displays a preview of an image when hovering over it. If a single message has more than one image, press CTRL to cycle through them. diff --git a/docs/developers/mods/chunkborders.mdx b/docs/developers/mods/chunkborders.mdx index 6d30e3d9..d1020f5d 100644 --- a/docs/developers/mods/chunkborders.mdx +++ b/docs/developers/mods/chunkborders.mdx @@ -21,18 +21,68 @@ public void toggleChunkBordersExample(Player viewer, boolean value) { - Type: `Boolean` - Default: `false` +- __`GRID`__ + - Config Key: `grid` + - Values + - Type: `Boolean` + - Default: `true` + +- __`GRID_SIZE`__ + - Config Key: `grid-size` + - Values + - Type: `Float` + - Default: `1.0F` + - Minimum: `1.0F` + - Maximum: `5.0F` + +- __`GRID_LINE_THICKNESS`__ + - Config Key: `grid-line-thickness` + - Values + - Type: `Float` + - Default: `1.0F` + - Minimum: `1.0F` + - Maximum: `5.0F` + - __`GRID_COLOR`__ - Config Key: `grid-color` - Values - Type: `String` - Default: `#FFFFFF00` +- __`INNER_CORNERS`__ + - Config Key: `inner-corners` + - Values + - Type: `Boolean` + - Default: `true` + +- __`INNER_CORNER_THICKNESS`__ + - Config Key: `inner-corner-thickness` + - Values + - Type: `Float` + - Default: `1.0F` + - Minimum: `1.0F` + - Maximum: `5.0F` + - __`INNER_CHUNK_CORNER_COLOR`__ - Config Key: `inner-chunk-corner-color` - Values - Type: `String` - Default: `#FF0000FF` +- __`OUTER_CORNERS`__ + - Config Key: `outer-corners` + - Values + - Type: `Boolean` + - Default: `true` + +- __`OUTER_CORNER_THICKNESS`__ + - Config Key: `outer-corner-thickness` + - Values + - Type: `Float` + - Default: `1.0F` + - Minimum: `1.0F` + - Maximum: `5.0F` + - __`OUTER_CHUNK_CORNER_COLOR`__ - Config Key: `outer-chunk-corner-color` - Values diff --git a/docs/developers/mods/colorsaturation.mdx b/docs/developers/mods/colorsaturation.mdx index 242b2d2d..94164b17 100644 --- a/docs/developers/mods/colorsaturation.mdx +++ b/docs/developers/mods/colorsaturation.mdx @@ -51,3 +51,9 @@ public void toggleColorSaturationExample(Player viewer, boolean value) { - Minimum: `0.0F` - Maximum: `10.0F` +- __`GRAYSCALE`__ + - Config Key: `grayscale` + - Values + - Type: `Boolean` + - Default: `false` + diff --git a/docs/developers/mods/coordinates.mdx b/docs/developers/mods/coordinates.mdx index 55d317fb..b6e67268 100644 --- a/docs/developers/mods/coordinates.mdx +++ b/docs/developers/mods/coordinates.mdx @@ -62,6 +62,12 @@ public void toggleCoordinatesExample(Player viewer, boolean value) { - Minimum: `0.5F` - Maximum: `3.0F` +- __`DECIMAL_COORDINATES`__ + - Config Key: `decimal-coordinates` + - Values + - Type: `Boolean` + - Default: `false` + - __`MOVE_CHILDREN_INDIVIDUALLY`__ - Config Key: `move-children-individually` - Values diff --git a/docs/developers/mods/crosshair.mdx b/docs/developers/mods/crosshair.mdx index 067b5613..4f70b5a2 100644 --- a/docs/developers/mods/crosshair.mdx +++ b/docs/developers/mods/crosshair.mdx @@ -21,77 +21,3 @@ public void toggleCrosshairExample(Player viewer, boolean value) { - Type: `Boolean` - Default: `false` -- __`CROSSHAIR_THICKNESS`__ - - Config Key: `crosshair-thickness` - - Values - - Type: `Integer` - - Default: `1` - - Minimum: `1` - - Maximum: `5` - -- __`CROSSHAIR_SIZE`__ - - Config Key: `crosshair-size` - - Values - - Type: `Integer` - - Default: `4` - - Minimum: `0` - - Maximum: `8` - -- __`CROSSHAIR_GAP`__ - - Config Key: `crosshair-gap` - - Values - - Type: `Integer` - - Default: `0` - - Minimum: `0` - - Maximum: `8` - -- __`CROSSHAIR_DOT`__ - - Config Key: `crosshair-dot` - - Values - - Type: `Boolean` - - Default: `true` - -- __`CROSSHAIR_OUTLINE`__ - - Config Key: `crosshair-outline` - - Values - - Type: `Boolean` - - Default: `false` - -- __`OUTLINE_THICKNESS`__ - - Config Key: `outline-thickness` - - Values - - Type: `Float` - - Default: `0.5F` - - Minimum: `0.0F` - - Maximum: `1.0F` - -- __`OUTLINE_COLOR`__ - - Config Key: `outline-color` - - Values - - Type: `String` - - Default: `#88000000` - -- __`CUSTOM_SCALE`__ - - Config Key: `custom-scale` - - Values - - Type: `Boolean` - - Default: `false` - -- __`COLOR`__ - - Config Key: `color` - - Values - - Type: `String` - - Default: `#FFFFFFFF` - -- __`FRIENDLY_COLOR`__ - - Config Key: `friendly-color` - - Values - - Type: `String` - - Default: `#FF33FF33` - -- __`ENEMY_COLOR`__ - - Config Key: `enemy-color` - - Values - - Type: `String` - - Default: `#FFFF3333` - diff --git a/docs/developers/mods/damagetint.mdx b/docs/developers/mods/damagetint.mdx index 6cd00ead..6b62726b 100644 --- a/docs/developers/mods/damagetint.mdx +++ b/docs/developers/mods/damagetint.mdx @@ -52,3 +52,11 @@ public void toggleDamageTintExample(Player viewer, boolean value) { - Type: `Boolean` - Default: `false` +- __`HEARTBEAT_AUDIO_VOLUME`__ + - Config Key: `heartbeat-audio-volume` + - Values + - Type: `Float` + - Default: `1.0F` + - Minimum: `0.0F` + - Maximum: `1.0F` + diff --git a/docs/developers/mods/directionhud.mdx b/docs/developers/mods/directionhud.mdx index b91dc07b..52b06f98 100644 --- a/docs/developers/mods/directionhud.mdx +++ b/docs/developers/mods/directionhud.mdx @@ -71,6 +71,13 @@ public void toggleDirectionHUDExample(Player viewer, boolean value) { - Minimum: `0.5F` - Maximum: `3.0F` +- __`SHOW_WITH_TAB`__ + - Choose whether to show the Direction HUD when TAB is open. + - Config Key: `show-with-tab` + - Values + - Type: `Boolean` + - Default: `false` + - __`SHOW_MARKER`__ - Config Key: `show-marker` - Values @@ -83,18 +90,24 @@ public void toggleDirectionHUDExample(Player viewer, boolean value) { - Type: `Boolean` - Default: `true` -- __`USE_LEGACY_STYLE`__ - - Config Key: `use-legacy-style` +- __`SHOW_WAYPOINTS`__ + - Config Key: `show-waypoints` - Values - Type: `Boolean` - - Default: `false` + - Default: `true` -- __`SHOW_WITH_TAB`__ - - Choose whether to show the Direction HUD when TAB is open. - - Config Key: `show-with-tab` +- __`SHOW_TEAMMATES`__ + - Config Key: `show-teammates` - Values - Type: `Boolean` - - Default: `false` + - Default: `true` + +- __`SHOW_EXTERNAL_MARKERS`__ + - Show markers from the Markers Mod. + - Config Key: `show-external-markers` + - Values + - Type: `Boolean` + - Default: `true` - __`BACKGROUND_COLOR`__ - Config Key: `background-color` diff --git a/docs/developers/mods/f3display.mdx b/docs/developers/mods/f3display.mdx new file mode 100644 index 00000000..6ab17e3a --- /dev/null +++ b/docs/developers/mods/f3display.mdx @@ -0,0 +1,77 @@ +# F3 Display + +Allows you to move and customize the F3 Debug Screen. + +## Integration + +### How to toggle the mod + +```java +public void toggleF3DisplayExample(Player viewer, boolean value) { + Optional apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId()); + apolloPlayerOpt.ifPresent(apolloPlayer -> this.modSettingModule.getOptions().set(apolloPlayer, ModF3Display.ENABLED, value)); +} +``` + +## Available options + +- __`ENABLED`__ + - Config Key: `enabled` + - Values + - Type: `Boolean` + - Default: `false` + +- __`ENTER_ANIMATION_DURATION`__ + - Config Key: `enter-animation-duration` + - Values + - Type: `Double` + - Default: `0.25D` + - Minimum: `0.0D` + - Maximum: `1.0D` + +- __`EXIT_ANIMATION_DURATION`__ + - Config Key: `exit-animation-duration` + - Values + - Type: `Double` + - Default: `0.05D` + - Minimum: `0.0D` + - Maximum: `1.0D` + +- __`ONLY_MOVERS_IN_F3`__ + - Hides the hud previews in the edit hud layout menu if you don't have F3 toggled. + - Config Key: `only-movers-in-f3` + - Values + - Type: `Boolean` + - Default: `true` + +- __`TEXT_SHADOW`__ + - Adds a shadow to text + - Config Key: `text-shadow` + - Values + - Type: `Boolean` + - Default: `true` + +- __`BACKGROUND`__ + - Config Key: `background` + - Values + - Type: `Boolean` + - Default: `false` + +- __`BACKGROUND_COLOR`__ + - Config Key: `background-color` + - Values + - Type: `String` + - Default: `#55000000` + +- __`LABEL_COLOR`__ + - Config Key: `label-color` + - Values + - Type: `String` + - Default: `#FFFFFFFF` + +- __`VALUE_COLOR`__ + - Config Key: `value-color` + - Values + - Type: `String` + - Default: `#FFFFFFFF` + diff --git a/docs/developers/mods/fov.mdx b/docs/developers/mods/fov.mdx index c839181d..2ff547d5 100644 --- a/docs/developers/mods/fov.mdx +++ b/docs/developers/mods/fov.mdx @@ -22,7 +22,7 @@ public void toggleFOVChangerExample(Player viewer, boolean value) { - Default: `false` - __`STATIC_FOV`__ - - Determines if your FOV changes as you move. + - Turning this on will prevent your FOV from ever being changed by movement, flying, effects, bow, etc. - Config Key: `static-f-o-v` - Values - Type: `Boolean` @@ -36,6 +36,19 @@ public void toggleFOVChangerExample(Player viewer, boolean value) { - Minimum: `30` - Maximum: `110` +- __`SMOOTH_FOV`__ + - Smooth transition for the custom dynamic fov values. This does not affect the vanilla FOVs, only custom FOV values. + - Config Key: `smooth-fov` + - Values + - Type: `Boolean` + - Default: `true` + +- __`DYNAMIC_BOW`__ + - Config Key: `dynamic-bow` + - Values + - Type: `Boolean` + - Default: `true` + - __`AIMING_MODIFIER`__ - Config Key: `aiming-modifier` - Values @@ -60,6 +73,12 @@ public void toggleFOVChangerExample(Player viewer, boolean value) { - Minimum: `-200.0F` - Maximum: `200.0F` +- __`DYNAMIC_EFFECTS`__ + - Config Key: `dynamic-effects` + - Values + - Type: `Boolean` + - Default: `true` + - __`SPEED_FOV`__ - Config Key: `speed-f-o-v` - Values @@ -108,6 +127,12 @@ public void toggleFOVChangerExample(Player viewer, boolean value) { - Minimum: `-200.0F` - Maximum: `200.0F` +- __`DYNAMIC_SPRINT`__ + - Config Key: `dynamic-sprint` + - Values + - Type: `Boolean` + - Default: `true` + - __`SPRINTING_FOV`__ - Config Key: `sprinting-f-o-v` - Values @@ -140,6 +165,12 @@ public void toggleFOVChangerExample(Player viewer, boolean value) { - Minimum: `-200.0F` - Maximum: `200.0F` +- __`DYNAMIC_FLYING`__ + - Config Key: `dynamic-flying` + - Values + - Type: `Boolean` + - Default: `true` + - __`FLYING_FOV`__ - Config Key: `flying-fov` - Values diff --git a/docs/developers/mods/fps.mdx b/docs/developers/mods/fps.mdx index d6db7760..58087f68 100644 --- a/docs/developers/mods/fps.mdx +++ b/docs/developers/mods/fps.mdx @@ -29,6 +29,12 @@ public void toggleFPSExample(Player viewer, boolean value) { - Minimum: `0.25F` - Maximum: `5.0F` +- __`REVERSE_ORDER`__ + - Config Key: `reverse-order` + - Values + - Type: `Boolean` + - Default: `false` + - __`TEXT_SHADOW`__ - Adds a shadow to text - Config Key: `text-shadow` diff --git a/docs/developers/mods/hitbox.mdx b/docs/developers/mods/hitbox.mdx index 02cd2a71..6f91d4fc 100644 --- a/docs/developers/mods/hitbox.mdx +++ b/docs/developers/mods/hitbox.mdx @@ -21,6 +21,27 @@ public void toggleHitboxExample(Player viewer, boolean value) { - Type: `Boolean` - Default: `false` +- __`MAX_DISTANCE_TOGGLE`__ + - Config Key: `max-distance-toggle` + - Values + - Type: `Boolean` + - Default: `false` + +- __`MAX_DISTANCE`__ + - Maximum distance away from the entity to show hitboxes at + - Config Key: `max-distance` + - Values + - Type: `Integer` + - Default: `64` + - Minimum: `1` + - Maximum: `128` + +- __`HITBOX_PLAYER_SHOW`__ + - Config Key: `hitbox-player-show` + - Values + - Type: `Boolean` + - Default: `true` + - __`HITBOX_PLAYER_LINE_WIDTH`__ - Config Key: `hitbox-player-line-width` - Values @@ -41,8 +62,8 @@ public void toggleHitboxExample(Player viewer, boolean value) { - Type: `Boolean` - Default: `false` -- __`HITBOX_PLAYER_SHOW`__ - - Config Key: `hitbox-player-show` +- __`HITBOX_ITEM_SHOW`__ + - Config Key: `hitbox-item-show` - Values - Type: `Boolean` - Default: `true` @@ -67,8 +88,190 @@ public void toggleHitboxExample(Player viewer, boolean value) { - Type: `Boolean` - Default: `false` -- __`HITBOX_ITEM_SHOW`__ - - Config Key: `hitbox-item-show` +- __`HITBOX_EXP_ORB_SHOW`__ + - Config Key: `hitbox-exp-orb-show` + - Values + - Type: `Boolean` + - Default: `true` + +- __`HITBOX_EXP_ORB_LINE_WIDTH`__ + - Config Key: `hitbox-exp-orb-line-width` + - Values + - Type: `Float` + - Default: `1.0F` + - Minimum: `1.0F` + - Maximum: `5.0F` + +- __`HITBOX_EXP_ORB_LINE_COLOR`__ + - Config Key: `hitbox-exp-orb-line-color` + - Values + - Type: `String` + - Default: `#FFFFFFFF` + +- __`HITBOX_EXP_ORB_LOOK_VECTOR`__ + - Config Key: `hitbox-exp-orb-look-vector` + - Values + - Type: `Boolean` + - Default: `false` + +- __`HITBOX_ITEM_FRAME_SHOW`__ + - Config Key: `hitbox-item-frame-show` + - Values + - Type: `Boolean` + - Default: `true` + +- __`HITBOX_ITEM_FRAME_LINE_WIDTH`__ + - Config Key: `hitbox-item-frame-line-width` + - Values + - Type: `Float` + - Default: `1.0F` + - Minimum: `1.0F` + - Maximum: `5.0F` + +- __`HITBOX_ITEM_FRAME_LINE_COLOR`__ + - Config Key: `hitbox-item-frame-line-color` + - Values + - Type: `String` + - Default: `#FFFFFFFF` + +- __`HITBOX_ITEM_FRAME_LOOK_VECTOR`__ + - Config Key: `hitbox-item-frame-look-vector` + - Values + - Type: `Boolean` + - Default: `false` + +- __`HITBOX_FIREWORK_SHOW`__ + - Config Key: `hitbox-firework-show` + - Values + - Type: `Boolean` + - Default: `true` + +- __`HITBOX_FIREWORK_LINE_WIDTH`__ + - Config Key: `hitbox-firework-line-width` + - Values + - Type: `Float` + - Default: `1.0F` + - Minimum: `1.0F` + - Maximum: `5.0F` + +- __`HITBOX_FIREWORK_LINE_COLOR`__ + - Config Key: `hitbox-firework-line-color` + - Values + - Type: `String` + - Default: `#FFFFFFFF` + +- __`HITBOX_FIREWORK_LOOK_VECTOR`__ + - Config Key: `hitbox-firework-look-vector` + - Values + - Type: `Boolean` + - Default: `false` + +- __`HITBOX_WITHER_SKULL_SHOW`__ + - Config Key: `hitbox-wither-skull-show` + - Values + - Type: `Boolean` + - Default: `true` + +- __`HITBOX_WITHER_SKULL_LINE_WIDTH`__ + - Config Key: `hitbox-wither-skull-line-width` + - Values + - Type: `Float` + - Default: `1.0F` + - Minimum: `1.0F` + - Maximum: `5.0F` + +- __`HITBOX_WITHER_SKULL_LINE_COLOR`__ + - Config Key: `hitbox-wither-skull-line-color` + - Values + - Type: `String` + - Default: `#FFFFFFFF` + +- __`HITBOX_WITHER_SKULL_LOOK_VECTOR`__ + - Config Key: `hitbox-wither-skull-look-vector` + - Values + - Type: `Boolean` + - Default: `false` + +- __`HITBOX_SNOWBALL_SHOW`__ + - Config Key: `hitbox-snowball-show` + - Values + - Type: `Boolean` + - Default: `true` + +- __`HITBOX_SNOWBALL_LINE_WIDTH`__ + - Config Key: `hitbox-snowball-line-width` + - Values + - Type: `Float` + - Default: `1.0F` + - Minimum: `1.0F` + - Maximum: `5.0F` + +- __`HITBOX_SNOWBALL_LINE_COLOR`__ + - Config Key: `hitbox-snowball-line-color` + - Values + - Type: `String` + - Default: `#FFFFFFFF` + +- __`HITBOX_SNOWBALL_LOOK_VECTOR`__ + - Config Key: `hitbox-snowball-look-vector` + - Values + - Type: `Boolean` + - Default: `false` + +- __`HITBOX_FIREBALL_SHOW`__ + - Config Key: `hitbox-fireball-show` + - Values + - Type: `Boolean` + - Default: `true` + +- __`HITBOX_FIREBALL_LINE_WIDTH`__ + - Config Key: `hitbox-fireball-line-width` + - Values + - Type: `Float` + - Default: `1.0F` + - Minimum: `1.0F` + - Maximum: `5.0F` + +- __`HITBOX_FIREBALL_LINE_COLOR`__ + - Config Key: `hitbox-fireball-line-color` + - Values + - Type: `String` + - Default: `#FFFFFFFF` + +- __`HITBOX_FIREBALL_LOOK_VECTOR`__ + - Config Key: `hitbox-fireball-look-vector` + - Values + - Type: `Boolean` + - Default: `false` + +- __`HITBOX_ARROW_SHOW`__ + - Config Key: `hitbox-arrow-show` + - Values + - Type: `Boolean` + - Default: `true` + +- __`HITBOX_ARROW_LINE_WIDTH`__ + - Config Key: `hitbox-arrow-line-width` + - Values + - Type: `Float` + - Default: `1.0F` + - Minimum: `1.0F` + - Maximum: `5.0F` + +- __`HITBOX_ARROW_LINE_COLOR`__ + - Config Key: `hitbox-arrow-line-color` + - Values + - Type: `String` + - Default: `#FFFFFFFF` + +- __`HITBOX_ARROW_LOOK_VECTOR`__ + - Config Key: `hitbox-arrow-look-vector` + - Values + - Type: `Boolean` + - Default: `false` + +- __`HITBOX_PROJECTILE_SHOW`__ + - Config Key: `hitbox-projectile-show` - Values - Type: `Boolean` - Default: `true` @@ -93,61 +296,81 @@ public void toggleHitboxExample(Player viewer, boolean value) { - Type: `Boolean` - Default: `false` -- __`HITBOX_PROJECTILE_SHOW`__ - - Config Key: `hitbox-projectile-show` +- __`HITBOX_MONSTER_SHOW`__ + - Config Key: `hitbox-monster-show` - Values - Type: `Boolean` - Default: `true` -- __`HITBOX_MOB_LINE_WIDTH`__ - - Config Key: `hitbox-mob-line-width` +- __`HITBOX_MONSTER_LINE_WIDTH`__ + - Config Key: `hitbox-monster-line-width` - Values - Type: `Float` - Default: `1.0F` - Minimum: `1.0F` - Maximum: `5.0F` -- __`HITBOX_MOB_LINE_COLOR`__ - - Config Key: `hitbox-mob-line-color` +- __`HITBOX_MONSTER_LINE_COLOR`__ + - Config Key: `hitbox-monster-line-color` - Values - Type: `String` - Default: `#FFFFFFFF` -- __`HITBOX_MOB_LOOK_VECTOR`__ - - Config Key: `hitbox-mob-look-vector` +- __`HITBOX_MONSTER_LOOK_VECTOR`__ + - Config Key: `hitbox-monster-look-vector` - Values - Type: `Boolean` - Default: `false` -- __`HITBOX_MOB_SHOW`__ - - Config Key: `hitbox-mob-show` +- __`HITBOX_PASSIVE_SHOW`__ + - Config Key: `hitbox-passive-show` - Values - Type: `Boolean` - Default: `true` -- __`HITBOX_EXP_ORB_LINE_WIDTH`__ - - Config Key: `hitbox-exp-orb-line-width` +- __`HITBOX_PASSIVE_LINE_WIDTH`__ + - Config Key: `hitbox-passive-line-width` - Values - Type: `Float` - Default: `1.0F` - Minimum: `1.0F` - Maximum: `5.0F` -- __`HITBOX_EXP_ORB_LINE_COLOR`__ - - Config Key: `hitbox-exp-orb-line-color` +- __`HITBOX_PASSIVE_LINE_COLOR`__ + - Config Key: `hitbox-passive-line-color` - Values - Type: `String` - Default: `#FFFFFFFF` -- __`HITBOX_EXP_ORB_LOOK_VECTOR`__ - - Config Key: `hitbox-exp-orb-look-vector` +- __`HITBOX_PASSIVE_LOOK_VECTOR`__ + - Config Key: `hitbox-passive-look-vector` - Values - Type: `Boolean` - Default: `false` -- __`HITBOX_EXP_ORB_SHOW`__ - - Config Key: `hitbox-exp-orb-show` +- __`HITBOX_OTHER_SHOW`__ + - Config Key: `hitbox-other-show` - Values - Type: `Boolean` - Default: `true` +- __`HITBOX_OTHER_LINE_WIDTH`__ + - Config Key: `hitbox-other-line-width` + - Values + - Type: `Float` + - Default: `1.0F` + - Minimum: `1.0F` + - Maximum: `5.0F` + +- __`HITBOX_OTHER_LINE_COLOR`__ + - Config Key: `hitbox-other-line-color` + - Values + - Type: `String` + - Default: `#FFFFFFFF` + +- __`HITBOX_OTHER_LOOK_VECTOR`__ + - Config Key: `hitbox-other-look-vector` + - Values + - Type: `Boolean` + - Default: `false` + diff --git a/docs/developers/mods/inventorymod.mdx b/docs/developers/mods/inventorymod.mdx index c38732ee..c7af8c8f 100644 --- a/docs/developers/mods/inventorymod.mdx +++ b/docs/developers/mods/inventorymod.mdx @@ -1,4 +1,4 @@ -# Inventory Mod +# Inventory A collection of quality of life tweaks for the inventory. @@ -7,7 +7,7 @@ A collection of quality of life tweaks for the inventory. ### How to toggle the mod ```java -public void toggleInventoryModExample(Player viewer, boolean value) { +public void toggleInventoryExample(Player viewer, boolean value) { Optional apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId()); apolloPlayerOpt.ifPresent(apolloPlayer -> this.modSettingModule.getOptions().set(apolloPlayer, ModInventoryMod.ENABLED, value)); } diff --git a/docs/developers/mods/itemcounter.mdx b/docs/developers/mods/itemcounter.mdx index 237f0def..9c5e23df 100644 --- a/docs/developers/mods/itemcounter.mdx +++ b/docs/developers/mods/itemcounter.mdx @@ -23,9 +23,56 @@ public void toggleItemCounterExample(Player viewer, boolean value) { - __`SCALE`__ - Config Key: `scale` + - Values + - Type: `Float` + - Default: `1.0F` + - Minimum: `0.25F` + - Maximum: `5.0F` + +- __`CHILD_SCALE`__ + - Config Key: `child-scale` - Values - Type: `Float` - Default: `1.0F` - Minimum: `0.5F` - Maximum: `1.5F` +- __`ITEM_COUNTER_GROUPED`__ + - Grouped mode takes the existing item counters and groups them together into a single box + - Config Key: `item-counter-grouped` + - Values + - Type: `Boolean` + - Default: `false` + +- __`BACKGROUND`__ + - Config Key: `background` + - Values + - Type: `Boolean` + - Default: `true` + +- __`BORDER`__ + - Config Key: `border` + - Values + - Type: `Boolean` + - Default: `false` + +- __`BACKGROUND_COLOR`__ + - Config Key: `background-color` + - Values + - Type: `String` + - Default: `#6F000000` + +- __`BORDER_COLOR`__ + - Config Key: `border-color` + - Values + - Type: `String` + - Default: `#6F000000` + +- __`BORDER_THICKNESS`__ + - Config Key: `border-thickness` + - Values + - Type: `Float` + - Default: `0.5F` + - Minimum: `0.5F` + - Maximum: `3.0F` + diff --git a/docs/developers/mods/markers.mdx b/docs/developers/mods/markers.mdx new file mode 100644 index 00000000..e0f5b6b4 --- /dev/null +++ b/docs/developers/mods/markers.mdx @@ -0,0 +1,170 @@ +# Markers + +Allows you and your team to mark things in the world, like in various FPS games. + +## Integration + +### How to toggle the mod + +```java +public void toggleMarkersExample(Player viewer, boolean value) { + Optional apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId()); + apolloPlayerOpt.ifPresent(apolloPlayer -> this.modSettingModule.getOptions().set(apolloPlayer, ModMarkers.ENABLED, value)); +} +``` + +## Available options + +- __`ENABLED`__ + - Config Key: `enabled` + - Values + - Type: `Boolean` + - Default: `true` + +- __`DING_VOLUME_SELF`__ + - Config Key: `ding-volume-self` + - Values + - Type: `Float` + - Default: `0.5F` + - Minimum: `0.0F` + - Maximum: `1.0F` + +- __`DING_VOLUME_OTHERS`__ + - Config Key: `ding-volume-others` + - Values + - Type: `Float` + - Default: `0.5F` + - Minimum: `0.0F` + - Maximum: `1.0F` + +- __`MIDDLE_CLICK_REMOVE`__ + - Hit the middle mouse button while hovering over your marker to delete it. + - Config Key: `middle-click-remove` + - Values + - Type: `Boolean` + - Default: `true` + +- __`CHAT_NOTIFY`__ + - Config Key: `chat-notify` + - Values + - Type: `Boolean` + - Default: `false` + +- __`LUNAR_NOTIFY`__ + - Config Key: `lunar-notify` + - Values + - Type: `Boolean` + - Default: `false` + +- __`TEAM_MEMBERS`__ + - Try to detect your current team, and see and broadcast markers from and to members of your team. + - Config Key: `team-members` + - Values + - Type: `Boolean` + - Default: `true` + +- __`SCOREBOARD_TEAMS`__ + - Classic team detection which uses Minecraft's scoreboard teams. + - Config Key: `scoreboard-teams` + - Values + - Type: `Boolean` + - Default: `false` + +- __`APOLLO_TEAMS`__ + - On supported servers, use our Apollo plugin for team detection. + - Config Key: `apollo-teams` + - Values + - Type: `Boolean` + - Default: `true` + +- __`COLOR_TEAMS`__ + - Config Key: `color-teams` + - Values + - Type: `Boolean` + - Default: `false` + +- __`HYPIXEL_PARTY`__ + - See and broadcast markers from and to members of your Hypixel party. + - Config Key: `hypixel-party` + - Values + - Type: `Boolean` + - Default: `true` + +- __`LUNAR_FRIENDS`__ + - See and broadcast markers from and to people on your Lunar friends list. + - Config Key: `lunar-friends` + - Values + - Type: `Boolean` + - Default: `false` + +- __`SCALE`__ + - Config Key: `scale` + - Values + - Type: `Float` + - Default: `1.0F` + - Minimum: `0.5F` + - Maximum: `2.0F` + +- __`VISIBLE_DURATION`__ + - Config Key: `visible-duration` + - Values + - Type: `Integer` + - Default: `20` + - Minimum: `5` + - Maximum: `120` + +- __`ANIMATE_MARKER`__ + - Config Key: `animate-marker` + - Values + - Type: `Boolean` + - Default: `true` + +- __`COMPACT_MODE`__ + - Config Key: `compact-mode` + - Values + - Type: `Boolean` + - Default: `false` + +- __`TEXT_SHADOW`__ + - Adds a shadow to text + - Config Key: `text-shadow` + - Values + - Type: `Boolean` + - Default: `true` + +- __`BACKGROUND`__ + - Config Key: `background` + - Values + - Type: `Boolean` + - Default: `false` + +- __`BACKGROUND_COLOR`__ + - Config Key: `background-color` + - Values + - Type: `String` + - Default: `#40000000` + +- __`MARKER_COLOR`__ + - Config Key: `marker-color` + - Values + - Type: `String` + - Default: `#BEAEE1FC` + +- __`DANGER_MARKER_COLOR`__ + - Config Key: `danger-marker-color` + - Values + - Type: `String` + - Default: `#BEFF4200` + +- __`INFO_MARKER_COLOR`__ + - Config Key: `info-marker-color` + - Values + - Type: `String` + - Default: `#FF349EEB` + +- __`INTEREST_MARKER_COLOR`__ + - Config Key: `interest-marker-color` + - Values + - Type: `String` + - Default: `#FFFFAA00` + diff --git a/docs/developers/mods/minimap.mdx b/docs/developers/mods/minimap.mdx index 64ab81c5..d785036d 100644 --- a/docs/developers/mods/minimap.mdx +++ b/docs/developers/mods/minimap.mdx @@ -59,6 +59,13 @@ public void toggleMinimapExample(Player viewer, boolean value) { - Type: `Boolean` - Default: `true` +- __`FIT_TEXT_TO_WIDTH`__ + - With this enabled, the info text is scaled down to the width of the minimap + - Config Key: `fit-text-to-width` + - Values + - Type: `Boolean` + - Default: `true` + - __`BORDER`__ - Config Key: `border` - Values @@ -139,6 +146,36 @@ public void toggleMinimapExample(Player viewer, boolean value) { - Type: `Boolean` - Default: `true` +- __`SHOW_BIOME`__ + - Config Key: `show-biome` + - Values + - Type: `Boolean` + - Default: `false` + +- __`PRESET_BIOME_COLOR`__ + - Config Key: `preset-biome-color` + - Values + - Type: `Boolean` + - Default: `true` + +- __`SHOW_CLOCK`__ + - Config Key: `show-clock` + - Values + - Type: `Boolean` + - Default: `false` + +- __`SHOW_AM_PM`__ + - Config Key: `show-am-pm` + - Values + - Type: `Boolean` + - Default: `true` + +- __`MILITARY_TIME`__ + - Config Key: `military-time` + - Values + - Type: `Boolean` + - Default: `false` + - __`SHOW_DISTANT_WAYPOINTS`__ - Config Key: `show-distant-waypoints` - Values diff --git a/docs/developers/mods/momentum.mdx b/docs/developers/mods/momentum.mdx index e7bc0b79..1e0e4ea4 100644 --- a/docs/developers/mods/momentum.mdx +++ b/docs/developers/mods/momentum.mdx @@ -1,4 +1,4 @@ -# Momentum Mod +# Momentum Shows your current velocity @@ -7,7 +7,7 @@ Shows your current velocity ### How to toggle the mod ```java -public void toggleMomentumModExample(Player viewer, boolean value) { +public void toggleMomentumExample(Player viewer, boolean value) { Optional apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId()); apolloPlayerOpt.ifPresent(apolloPlayer -> this.modSettingModule.getOptions().set(apolloPlayer, ModMomentum.ENABLED, value)); } diff --git a/docs/developers/mods/nickhider.mdx b/docs/developers/mods/nickhider.mdx index 95dc9da0..d49e7062 100644 --- a/docs/developers/mods/nickhider.mdx +++ b/docs/developers/mods/nickhider.mdx @@ -39,6 +39,18 @@ public void toggleNickHiderExample(Player viewer, boolean value) { - Type: `Boolean` - Default: `false` +- __`CUSTOM_SUFFIX`__ + - Config Key: `custom-suffix` + - Values + - Type: `Boolean` + - Default: `false` + +- __`HIDE_LOBBY_ID`__ + - Config Key: `hide-lobby-i-d` + - Values + - Type: `Boolean` + - Default: `false` + - __`HIDE_OWN_SKIN`__ - Config Key: `hide-own-skin` - Values diff --git a/docs/developers/mods/overlaymod.mdx b/docs/developers/mods/overlaymod.mdx new file mode 100644 index 00000000..3ba30e83 --- /dev/null +++ b/docs/developers/mods/overlaymod.mdx @@ -0,0 +1,368 @@ +# Overlay + +Configure various texture overlays, tweaks, and modifiers + +## Integration + +### How to toggle the mod + +```java +public void toggleOverlayExample(Player viewer, boolean value) { + Optional apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId()); + apolloPlayerOpt.ifPresent(apolloPlayer -> this.modSettingModule.getOptions().set(apolloPlayer, ModOverlayMod.ENABLED, value)); +} +``` + +## Available options + +- __`ENABLED`__ + - Config Key: `enabled` + - Values + - Type: `Boolean` + - Default: `true` + +- __`MINIMAL_VIEW_BOBBING`__ + - When View Bobbing is enabled, only bob your hand (requires View Bobbing to be enabled). + - Config Key: `minimal-view-bobbing` + - Values + - Type: `Boolean` + - Default: `false` + +- __`FIRE_HEIGHT`__ + - Config Key: `fire-height` + - Values + - Type: `Float` + - Default: `1.0F` + - Minimum: `0.0F` + - Maximum: `2.0F` + +- __`SHIELD_HEIGHT`__ + - Config Key: `shield-height` + - Values + - Type: `Float` + - Default: `1.0F` + - Minimum: `0.0F` + - Maximum: `2.0F` + +- __`TOTEM_SCALE`__ + - Config Key: `totem-scale` + - Values + - Type: `Float` + - Default: `1.0F` + - Minimum: `0.25F` + - Maximum: `1.5F` + +- __`HELD_ITEM_SCALE`__ + - Config Key: `held-item-scale` + - Values + - Type: `Float` + - Default: `1.0F` + - Minimum: `0.25F` + - Maximum: `1.5F` + +- __`PUMPKIN_OVERLAY`__ + - Config Key: `pumpkin-overlay` + - Values + - Type: `Float` + - Default: `1.0F` + - Minimum: `0.0F` + - Maximum: `1.0F` + +- __`SPYGLASS_OVERLAY`__ + - Config Key: `spyglass-overlay` + - Values + - Type: `Float` + - Default: `1.0F` + - Minimum: `0.0F` + - Maximum: `1.0F` + +- __`FROST_OVERLAY`__ + - Config Key: `frost-overlay` + - Values + - Type: `Float` + - Default: `1.0F` + - Minimum: `0.0F` + - Maximum: `1.0F` + +- __`HIDE_FOLIAGE`__ + - Hides grass and double grass blocks + - Config Key: `hide-foliage` + - Values + - Type: `Boolean` + - Default: `false` + +- __`ENTITY_SHADOW`__ + - Render shadows for entities + - Config Key: `entity-shadow` + - Values + - Type: `Boolean` + - Default: `true` + +- __`GROUND_ARROWS`__ + - Choose whether or not to hide arrows that are stuck in the ground + - Config Key: `ground-arrows` + - Values + - Type: `Boolean` + - Default: `true` + +- __`STUCK_ARROWS`__ + - Choose whether or not to hide arrows that are stuck in players + - Config Key: `stuck-arrows` + - Values + - Type: `Boolean` + - Default: `true` + +- __`HIDE_SKULLS`__ + - Config Key: `hide-skulls` + - Values + - Type: `Boolean` + - Default: `false` + +- __`CLEAR_GLASS`__ + - Config Key: `clear-glass` + - Values + - Type: `Boolean` + - Default: `false` + +- __`CLEAR_GLASS_TRANSPARENCY`__ + - Config Key: `clear-glass-transparency` + - Values + - Type: `Float` + - Default: `0.0F` + - Minimum: `0.0F` + - Maximum: `1.0F` + +- __`CLEAR_COLORED_GLASS`__ + - Config Key: `clear-colored-glass` + - Values + - Type: `Boolean` + - Default: `false` + +- __`CLEAR_GLASS_OUTLINE`__ + - Config Key: `clear-glass-outline` + - Values + - Type: `Boolean` + - Default: `false` + +- __`CLEAR_GLASS_OUTLINE_THICKNESS`__ + - Config Key: `clear-glass-outline-thickness` + - Values + - Type: `Integer` + - Default: `1` + - Minimum: `1` + - Maximum: `3` + +- __`CLEAR_GLASS_OUTLINE_TRANSPARENCY`__ + - Config Key: `clear-glass-outline-transparency` + - Values + - Type: `Float` + - Default: `1.0F` + - Minimum: `0.0F` + - Maximum: `1.0F` + +- __`ORE_OUTLINES`__ + - Config Key: `ore-outlines` + - Values + - Type: `Boolean` + - Default: `false` + +- __`SMART_OUTLINE_COLORS`__ + - Use a heuristic to calculate the ore outline color from the actual ore texture, to make it match better. Turning this option off will use predefined vanilla ore outline colors. + - Config Key: `smart-outline-colors` + - Values + - Type: `Boolean` + - Default: `true` + +- __`SHINY_ORE_OUTLINES`__ + - Apply some noise to the ore outlines to make them appear shiny + - Config Key: `shiny-ore-outlines` + - Values + - Type: `Boolean` + - Default: `true` + +- __`ORE_OUTLINE_THICKNESS`__ + - Config Key: `ore-outline-thickness` + - Values + - Type: `Integer` + - Default: `1` + - Minimum: `1` + - Maximum: `3` + +- __`DIAMOND_ORE_OUTLINE`__ + - Config Key: `diamond-ore-outline` + - Values + - Type: `Boolean` + - Default: `true` + +- __`GOLD_ORE_OUTLINE`__ + - Config Key: `gold-ore-outline` + - Values + - Type: `Boolean` + - Default: `true` + +- __`IRON_ORE_OUTLINE`__ + - Config Key: `iron-ore-outline` + - Values + - Type: `Boolean` + - Default: `true` + +- __`LAPIS_ORE_OUTLINE`__ + - Config Key: `lapis-ore-outline` + - Values + - Type: `Boolean` + - Default: `true` + +- __`REDSTONE_ORE_OUTLINE`__ + - Config Key: `redstone-ore-outline` + - Values + - Type: `Boolean` + - Default: `true` + +- __`EMERALD_ORE_OUTLINE`__ + - Config Key: `emerald-ore-outline` + - Values + - Type: `Boolean` + - Default: `true` + +- __`COAL_ORE_OUTLINE`__ + - Config Key: `coal-ore-outline` + - Values + - Type: `Boolean` + - Default: `true` + +- __`NETHER_QUARTZ_ORE_OUTLINE`__ + - Config Key: `nether-quartz-ore-outline` + - Values + - Type: `Boolean` + - Default: `true` + +- __`BARRIER_OUTLINES`__ + - Config Key: `barrier-outlines` + - Values + - Type: `Boolean` + - Default: `false` + +- __`BARRIER_OUTLINE_THICKNESS`__ + - Config Key: `barrier-outline-thickness` + - Values + - Type: `Integer` + - Default: `1` + - Minimum: `1` + - Maximum: `3` + +- __`BARRIER_OUTLINE_COLOR`__ + - Config Key: `barrier-outline-color` + - Values + - Type: `String` + - Default: `#BFFF0000` + +- __`COLORED_STRING`__ + - Make strings/tripwires more visible by changing their color + - Config Key: `colored-string` + - Values + - Type: `Boolean` + - Default: `false` + +- __`BOLD_STRING`__ + - Fill in the transparent spots on the string texture + - Config Key: `bold-string` + - Values + - Type: `Boolean` + - Default: `false` + +- __`STRING_COLOR`__ + - Config Key: `string-color` + - Values + - Type: `String` + - Default: `#FFFF0000` + +- __`OVERRIDE_XP_ORB_COLOR`__ + - Config Key: `override-xp-orb-color` + - Values + - Type: `Boolean` + - Default: `false` + +- __`XP_ORB_COLOR`__ + - Config Key: `xp-orb-color` + - Values + - Type: `String` + - Default: `#80FFFFFF` + +- __`CUSTOM_FISHING_LINE`__ + - Config Key: `custom-fishing-line` + - Values + - Type: `Boolean` + - Default: `false` + +- __`FISHING_LINE_THICKNESS`__ + - Config Key: `fishing-line-thickness` + - Values + - Type: `Float` + - Default: `1.0F` + - Minimum: `0.5F` + - Maximum: `3.0F` + +- __`FISHING_LINE_COLOR`__ + - Config Key: `fishing-line-color` + - Values + - Type: `String` + - Default: `#FF000000` + +- __`HEADLESS_HORSES`__ + - Improve visibility when riding a horse + - Config Key: `headless-horses` + - Values + - Type: `Boolean` + - Default: `false` + +- __`DISABLE_DEATH_ANIMATION`__ + - Config Key: `disable-death-animation` + - Values + - Type: `Boolean` + - Default: `false` + +- __`DISABLE_DAMAGE_OVERLAY`__ + - Config Key: `disable-damage-overlay` + - Values + - Type: `Boolean` + - Default: `false` + +- __`DISABLE_FIRE_OVERLAY`__ + - Disable the rendering of the fire overlay when a mob or player is on fire. + - Config Key: `disable-fire-overlay` + - Values + - Type: `Boolean` + - Default: `false` + +- __`HIDE_HELMET`__ + - Config Key: `hide-helmet` + - Values + - Type: `Boolean` + - Default: `false` + +- __`HIDE_CHEST`__ + - Does not work on elytra. + - Config Key: `hide-chest` + - Values + - Type: `Boolean` + - Default: `false` + +- __`HIDE_LEGGINGS`__ + - Config Key: `hide-leggings` + - Values + - Type: `Boolean` + - Default: `false` + +- __`HIDE_BOOTS`__ + - Config Key: `hide-boots` + - Values + - Type: `Boolean` + - Default: `false` + +- __`SELF_ONLY`__ + - Disabling this allows you to hide armor slots for all entities. + - Config Key: `self-only` + - Values + - Type: `Boolean` + - Default: `true` + diff --git a/docs/developers/mods/particlechanger.mdx b/docs/developers/mods/particlechanger.mdx index bbdcd8cd..81a23392 100644 --- a/docs/developers/mods/particlechanger.mdx +++ b/docs/developers/mods/particlechanger.mdx @@ -21,6 +21,38 @@ public void toggleParticleChangerExample(Player viewer, boolean value) { - Type: `Boolean` - Default: `false` +- __`SHOW_BLOOD_PARTICLES`__ + - Config Key: `show-blood-particles` + - Values + - Type: `Boolean` + - Default: `false` + +- __`BLOOD_MULTIPLIER`__ + - Config Key: `blood-multiplier` + - Values + - Type: `Integer` + - Default: `1` + - Minimum: `1` + - Maximum: `10` + +- __`PLAYER_BLOOD_PARTICLES`__ + - Config Key: `player-blood-particles` + - Values + - Type: `Boolean` + - Default: `true` + +- __`ENTITY_BLOOD_PARTICLES`__ + - Config Key: `entity-blood-particles` + - Values + - Type: `Boolean` + - Default: `true` + +- __`PLAY_BLOOD_SOUND`__ + - Config Key: `play-blood-sound` + - Values + - Type: `Boolean` + - Default: `false` + - __`ALWAYS_ENCHANT_STRIKES`__ - Config Key: `always-enchant-strikes` - Values @@ -40,6 +72,13 @@ public void toggleParticleChangerExample(Player viewer, boolean value) { - Type: `Boolean` - Default: `false` +- __`HIDE_ALL_PARTICLES`__ + - Simple toggle for clean game rendering. This may cause issues with certain server mechanics being more challenging to see! + - Config Key: `hide-all-particles` + - Values + - Type: `Boolean` + - Default: `false` + - __`COLOR`__ - Config Key: `color` - Values diff --git a/docs/developers/mods/reachdisplay.mdx b/docs/developers/mods/reachdisplay.mdx index 58c234ec..879d71ab 100644 --- a/docs/developers/mods/reachdisplay.mdx +++ b/docs/developers/mods/reachdisplay.mdx @@ -29,6 +29,30 @@ public void toggleReachDisplayExample(Player viewer, boolean value) { - Minimum: `0.25F` - Maximum: `5.0F` +- __`REVERSE_ORDER`__ + - Config Key: `reverse-order` + - Values + - Type: `Boolean` + - Default: `false` + +- __`HIDE_ZERO`__ + - Config Key: `hide-zero` + - Values + - Type: `Boolean` + - Default: `false` + +- __`HIGHLIGHT_ATTACKABLE_PLAYERS`__ + - Config Key: `highlight-attackable-players` + - Values + - Type: `Boolean` + - Default: `false` + +- __`HIGHLIGHT_COLOR`__ + - Config Key: `highlight-color` + - Values + - Type: `String` + - Default: `#4D00FF00` + - __`TEXT_SHADOW`__ - Adds a shadow to text - Config Key: `text-shadow` diff --git a/docs/developers/mods/scoreboard.mdx b/docs/developers/mods/scoreboard.mdx index 2621df63..b5672519 100644 --- a/docs/developers/mods/scoreboard.mdx +++ b/docs/developers/mods/scoreboard.mdx @@ -68,6 +68,12 @@ public void toggleScoreboardExample(Player viewer, boolean value) { - Type: `String` - Default: `#50000000` +- __`HEADER_COLOR`__ + - Config Key: `header-color` + - Values + - Type: `String` + - Default: `#50000000` + - __`BORDER_COLOR`__ - Config Key: `border-color` - Values diff --git a/docs/developers/mods/scrollabletooltips.mdx b/docs/developers/mods/scrollabletooltips.mdx index d4ebea06..8652d64b 100644 --- a/docs/developers/mods/scrollabletooltips.mdx +++ b/docs/developers/mods/scrollabletooltips.mdx @@ -49,3 +49,10 @@ public void toggleScrollableTooltipsExample(Player viewer, boolean value) { - Type: `Boolean` - Default: `false` +- __`LINE_SHIFT_MODE`__ + - Instead of moving the tooltip vertically, hide lines when scrolling. + - Config Key: `line-shift-mode` + - Values + - Type: `Boolean` + - Default: `false` + diff --git a/docs/developers/mods/shields.mdx b/docs/developers/mods/shields.mdx new file mode 100644 index 00000000..f4fd5e75 --- /dev/null +++ b/docs/developers/mods/shields.mdx @@ -0,0 +1,75 @@ +# Shields + +Some QoL features for Minecraft shields + +## Integration + +### How to toggle the mod + +```java +public void toggleShieldsExample(Player viewer, boolean value) { + Optional apolloPlayerOpt = Apollo.getPlayerManager().getPlayer(viewer.getUniqueId()); + apolloPlayerOpt.ifPresent(apolloPlayer -> this.modSettingModule.getOptions().set(apolloPlayer, ModShields.ENABLED, value)); +} +``` + +## Available options + +- __`ENABLED`__ + - Config Key: `enabled` + - Values + - Type: `Boolean` + - Default: `false` + +- __`ENABLE_SHIELD_COLORS`__ + - Config Key: `enable-shield-colors` + - Values + - Type: `Boolean` + - Default: `true` + +- __`SHIELD_ACTIVE_COLOR`__ + - Config Key: `shield-active-color` + - Values + - Type: `String` + - Default: `#FF00FF00` + +- __`SHIELD_INACTIVE_COLOR`__ + - Config Key: `shield-inactive-color` + - Values + - Type: `String` + - Default: `#FFFF0000` + +- __`ANIMATE_COLOR_TRANSITION`__ + - Config Key: `animate-color-transition` + - Values + - Type: `Boolean` + - Default: `false` + +- __`SHIELD_INACTIVE_SOUND`__ + - Always play a sound whenever a player's shield goes inactive. + - Config Key: `shield-inactive-sound` + - Values + - Type: `Boolean` + - Default: `true` + +- __`SHIELD_USE_SOUND`__ + - Always play a sound whenever a player's shield is damaged by any source. + - Config Key: `shield-use-sound` + - Values + - Type: `Boolean` + - Default: `true` + +- __`IGNORE_5TICKS`__ + - Ignore the 5 tick deactivation period when a shield is hit with any item other than the axe. + - Config Key: `ignore5-ticks` + - Values + - Type: `Boolean` + - Default: `true` + +- __`BETTER_BLOCKING`__ + - Fix the bug where shields don't show as blocking sometimes, even though the player is blocking. + - Config Key: `better-blocking` + - Values + - Type: `Boolean` + - Default: `true` + diff --git a/docs/developers/mods/skyblock.mdx b/docs/developers/mods/skyblock.mdx index 024a1530..f54aa69d 100644 --- a/docs/developers/mods/skyblock.mdx +++ b/docs/developers/mods/skyblock.mdx @@ -57,6 +57,46 @@ public void toggleHypixelSkyblockExample(Player viewer, boolean value) { - Type: `Boolean` - Default: `false` +- __`SKYBLOCK_AUTOCOMPLETE_WARPS`__ + - Adds tab completion to the /warp command. + - Config Key: `skyblock-autocomplete-warps` + - Values + - Type: `Boolean` + - Default: `true` + +- __`SKYBLOCK_HIDE_EX_COOPS`__ + - Hides ex-coop members in the collection menu. + - Config Key: `skyblock-hide-ex-coops` + - Values + - Type: `Boolean` + - Default: `false` + +- __`SKYBLOCK_HIDE_MAGIC_SOUP_MESSAGES`__ + - Config Key: `skyblock-hide-magic-soup-messages` + - Values + - Type: `Boolean` + - Default: `false` + +- __`SKYBLOCK_HIDE_PLAYERS_NEAR_NPCS`__ + - Hides other players near important NPCs. + - Config Key: `skyblock-hide-players-near-n-p-cs` + - Values + - Type: `Boolean` + - Default: `false` + +- __`SKYBLOCK_HIDE_OTHERS_GIFTS`__ + - Config Key: `skyblock-hide-others-gifts` + - Values + - Type: `Boolean` + - Default: `true` + +- __`SKYBLOCK_ADBLOCK`__ + - Hides spambots that send malicious websites in chat. + - Config Key: `skyblock-adblock` + - Values + - Type: `Boolean` + - Default: `true` + - __`SKYBLOCK_BOW_REEQUIP`__ - Config Key: `skyblock-bow-reequip` - Values @@ -112,6 +152,12 @@ public void toggleHypixelSkyblockExample(Player viewer, boolean value) { - Type: `String` - Default: `#FFAAAAAA` +- __`SKYBLOCK_HIDE_RANDOM_BOSSBARS`__ + - Config Key: `skyblock-hide-random-bossbars` + - Values + - Type: `Boolean` + - Default: `true` + - __`GRIFFIN_BURROW_ESTIMATES`__ - Provides QOL for the Diana mayor that helps the user quickly locate burrows. - Config Key: `griffin-burrow-estimates` @@ -119,6 +165,66 @@ public void toggleHypixelSkyblockExample(Player viewer, boolean value) { - Type: `Boolean` - Default: `false` +- __`BURROW_ESTIMATE_COLOR`__ + - Config Key: `burrow-estimate-color` + - Values + - Type: `String` + - Default: `#FFFFFF00` + +- __`BURROW_ESTIMATE_LINE`__ + - Config Key: `burrow-estimate-line` + - Values + - Type: `Boolean` + - Default: `false` + +- __`BURROW_ESTIMATE_BEAM`__ + - Config Key: `burrow-estimate-beam` + - Values + - Type: `Boolean` + - Default: `true` + +- __`BURROW_ESTIMATES_PRIORITIZE_PLAYER_WAYPOINTS`__ + - Config Key: `burrow-estimates-prioritize-player-waypoints` + - Values + - Type: `Boolean` + - Default: `true` + +- __`BURROW_WARP_TO_NEAREST_ALERT`__ + - Config Key: `burrow-warp-to-nearest-alert` + - Values + - Type: `Boolean` + - Default: `true` + +- __`BURROW_MOB_COLOR`__ + - Config Key: `burrow-mob-color` + - Values + - Type: `String` + - Default: `#FFFF0000` + +- __`BURROW_TREASURE_COLOR`__ + - Config Key: `burrow-treasure-color` + - Values + - Type: `String` + - Default: `#FF00FF00` + +- __`BURROW_START_COLOR`__ + - Config Key: `burrow-start-color` + - Values + - Type: `String` + - Default: `#FF00FF00` + +- __`BURROW_UNKNOWN_COLOR`__ + - Config Key: `burrow-unknown-color` + - Values + - Type: `String` + - Default: `#FF00FF00` + +- __`BURROW_BEAM`__ + - Config Key: `burrow-beam` + - Values + - Type: `Boolean` + - Default: `true` + - __`TALLER_CROPS`__ - Changes crop hitboxes with their 1.12+ variant. Only enabled on Hypixel or singleplayer. - Config Key: `taller-crops` @@ -277,6 +383,84 @@ public void toggleHypixelSkyblockExample(Player viewer, boolean value) { - Type: `Boolean` - Default: `true` +- __`ENABLE_DUNGEON_ROUTES`__ + - Config Key: `enable-dungeon-routes` + - Values + - Type: `Boolean` + - Default: `false` + +- __`DEFAULT_SECRET_ROUTES_ENABLED`__ + - Config Key: `default-secret-routes-enabled` + - Values + - Type: `Boolean` + - Default: `true` + +- __`SECRET_ROUTES_NAMES_AT_START`__ + - Config Key: `secret-routes-names-at-start` + - Values + - Type: `Boolean` + - Default: `false` + +- __`SECRET_ROUTES_NAME_COLOR`__ + - Config Key: `secret-routes-name-color` + - Values + - Type: `String` + - Default: `#FFFF0000` + +- __`SECRET_ROUTES_DISABLE_HELP_TEXT`__ + - Config Key: `secret-routes-disable-help-text` + - Values + - Type: `Boolean` + - Default: `false` + +- __`SECRET_ROUTES_ALLOW_PEARLING`__ + - Config Key: `secret-routes-allow-pearling` + - Values + - Type: `Boolean` + - Default: `false` + +- __`SECRET_ROUTES_DISABLE_SUPERBOOM`__ + - Config Key: `secret-routes-disable-superboom` + - Values + - Type: `Boolean` + - Default: `false` + +- __`SECRET_ROUTES_DISABLE_BLOCK`__ + - Config Key: `secret-routes-disable-block` + - Values + - Type: `Boolean` + - Default: `false` + +- __`SECRET_ROUTES_DISABLE_LEVER`__ + - Config Key: `secret-routes-disable-lever` + - Values + - Type: `Boolean` + - Default: `false` + +- __`SECRET_ROUTES_DISABLE_ETHERWARP`__ + - Config Key: `secret-routes-disable-etherwarp` + - Values + - Type: `Boolean` + - Default: `false` + +- __`SECRET_ROUTES_DISABLE_SECRET`__ + - Config Key: `secret-routes-disable-secret` + - Values + - Type: `Boolean` + - Default: `false` + +- __`SECRET_ROUTES_DISABLE_MISC`__ + - Config Key: `secret-routes-disable-misc` + - Values + - Type: `Boolean` + - Default: `false` + +- __`SECRET_ROUTES_DISABLE_PEARLS`__ + - Config Key: `secret-routes-disable-pearls` + - Values + - Type: `Boolean` + - Default: `false` + - __`SKYBLOCK_LINE_THICKNESS`__ - Provides a general line thickness option that applies to most features with box/line rendering. - Config Key: `skyblock-line-thickness` diff --git a/docs/developers/mods/stopwatch.mdx b/docs/developers/mods/stopwatch.mdx index 1b403763..5fa1e2e0 100644 --- a/docs/developers/mods/stopwatch.mdx +++ b/docs/developers/mods/stopwatch.mdx @@ -1,6 +1,6 @@ # Stopwatch -Adds a stopwatch to the HUD. +Adds stopwatches and timers to the HUD. ## Integration @@ -21,104 +21,3 @@ public void toggleStopwatchExample(Player viewer, boolean value) { - Type: `Boolean` - Default: `false` -- __`SCALE`__ - - Config Key: `scale` - - Values - - Type: `Float` - - Default: `1.0F` - - Minimum: `0.25F` - - Maximum: `5.0F` - -- __`RESET_EVERY_START`__ - - Config Key: `reset-every-start` - - Values - - Type: `Boolean` - - Default: `true` - -- __`TEXT_SHADOW`__ - - Adds a shadow to text - - Config Key: `text-shadow` - - Values - - Type: `Boolean` - - Default: `true` - -- __`BRACKETS`__ - - Config Key: `brackets` - - Values - - Type: `Boolean` - - Default: `true` - -- __`BRACKET_COLOR`__ - - Config Key: `bracket-color` - - Values - - Type: `String` - - Default: `#FFFFFFFF` - -- __`BACKGROUND`__ - - Config Key: `background` - - Values - - Type: `Boolean` - - Default: `true` - -- __`STATIC_BACKGROUND_WIDTH`__ - - If this is disabled the background will change size with the text. - - Config Key: `static-background-width` - - Values - - Type: `Boolean` - - Default: `true` - -- __`STATIC_BACKGROUND_HEIGHT`__ - - If this is disabled the background will change size with the text. - - Config Key: `static-background-height` - - Values - - Type: `Boolean` - - Default: `true` - -- __`BACKGROUND_WIDTH`__ - - Config Key: `background-width` - - Values - - Type: `Integer` - - Default: `56` - - Minimum: `44` - - Maximum: `120` - -- __`BACKGROUND_HEIGHT`__ - - Config Key: `background-height` - - Values - - Type: `Integer` - - Default: `18` - - Minimum: `10` - - Maximum: `22` - -- __`BORDER`__ - - Config Key: `border` - - Values - - Type: `Boolean` - - Default: `false` - -- __`BORDER_THICKNESS`__ - - Config Key: `border-thickness` - - Values - - Type: `Float` - - Default: `0.5F` - - Minimum: `0.5F` - - Maximum: `3.0F` - -- __`BORDER_COLOR`__ - - Config Key: `border-color` - - Values - - Type: `String` - - Default: `#9F000000` - -- __`BACKGROUND_COLOR`__ - - Config Key: `background-color` - - Values - - Type: `String` - - Default: `#6F000000` - -- __`TEXT_COLOR`__ - - Config Key: `text-color` - - Values - - Type: `String` - - Default: `#FFFFFFFF` - diff --git a/docs/developers/mods/teamview.mdx b/docs/developers/mods/teamview.mdx index b4ce23ac..705b37a7 100644 --- a/docs/developers/mods/teamview.mdx +++ b/docs/developers/mods/teamview.mdx @@ -21,3 +21,29 @@ public void toggleTeamViewExample(Player viewer, boolean value) { - Type: `Boolean` - Default: `true` +- __`APOLLO_TEAMS`__ + - On supported servers, use our Apollo plugin for team detection. + - Config Key: `apollo-teams` + - Values + - Type: `Boolean` + - Default: `true` + +- __`TEAMVIEW_HYPIXEL`__ + - If you are in a lobby, or in a game where your party members can be shown without giving you an unfair advantage (e.g. Skyblock), show them. Otherwise, if you're in a team game, show your teammate(s). + - Config Key: `teamview-hypixel` + - Values + - Type: `Boolean` + - Default: `true` + +- __`HYPIXEL_TEAM_COLOR`__ + - Config Key: `hypixel-team-color` + - Values + - Type: `String` + - Default: `#FF2BFF41` + +- __`HYPIXEL_PARTY_COLOR`__ + - Config Key: `hypixel-party-color` + - Values + - Type: `String` + - Default: `#FFF6C634` + diff --git a/docs/developers/mods/waila.mdx b/docs/developers/mods/waila.mdx index c1431cd5..3d4031dd 100644 --- a/docs/developers/mods/waila.mdx +++ b/docs/developers/mods/waila.mdx @@ -47,6 +47,18 @@ public void toggleWAILAExample(Player viewer, boolean value) { - Type: `Boolean` - Default: `true` +- __`SHOW_SPRAYS`__ + - Config Key: `show-sprays` + - Values + - Type: `Boolean` + - Default: `true` + +- __`SHOW_COMPANIONS`__ + - Config Key: `show-companions` + - Values + - Type: `Boolean` + - Default: `true` + - __`TEXT_SHADOW`__ - Adds a shadow to text - Config Key: `text-shadow` diff --git a/docs/developers/mods/waypoints.mdx b/docs/developers/mods/waypoints.mdx index 39a299a6..b0962278 100644 --- a/docs/developers/mods/waypoints.mdx +++ b/docs/developers/mods/waypoints.mdx @@ -28,6 +28,13 @@ public void toggleWaypointsExample(Player viewer, boolean value) { - Type: `Boolean` - Default: `true` +- __`CONFIRM_DELETE`__ + - Ask for confirmation before deleting a waypoint through the UI + - Config Key: `confirm-delete` + - Values + - Type: `Boolean` + - Default: `true` + - __`DEATH_WAYPOINT`__ - Automatically create a waypoint when you die - Config Key: `death-waypoint` diff --git a/docs/developers/mods/weatherchanger.mdx b/docs/developers/mods/weatherchanger.mdx index 919d6c61..9cb23f36 100644 --- a/docs/developers/mods/weatherchanger.mdx +++ b/docs/developers/mods/weatherchanger.mdx @@ -36,3 +36,39 @@ public void toggleWeatherChangerExample(Player viewer, boolean value) { - Type: `String` - Default: `#FFFFFFFF` +- __`THUNDER_STORM`__ + - Config Key: `thunder-storm` + - Values + - Type: `Boolean` + - Default: `false` + +- __`PLAY_THUNDER_SOUND`__ + - Config Key: `play-thunder-sound` + - Values + - Type: `Boolean` + - Default: `true` + +- __`LIGHTNING_FREQ`__ + - Config Key: `lightning-freq` + - Values + - Type: `Float` + - Default: `1.0F` + - Minimum: `1.0F` + - Maximum: `20.0F` + +- __`LIGHTNING_RADIUS_XZ`__ + - Config Key: `lightning-radius-x-z` + - Values + - Type: `Float` + - Default: `128.0F` + - Minimum: `8.0F` + - Maximum: `512.0F` + +- __`LIGHTNING_OFFSET_Y`__ + - Config Key: `lightning-offset-y` + - Values + - Type: `Float` + - Default: `0.0F` + - Minimum: `-64.0F` + - Maximum: `64.0F` + diff --git a/docs/developers/mods/zoom.mdx b/docs/developers/mods/zoom.mdx index 28ef70a8..9c77fe1f 100644 --- a/docs/developers/mods/zoom.mdx +++ b/docs/developers/mods/zoom.mdx @@ -49,6 +49,14 @@ public void toggleZoomExample(Player viewer, boolean value) { - Type: `Boolean` - Default: `false` +- __`ZOOM_SCROLL_SPEED`__ + - Config Key: `zoom-scroll-speed` + - Values + - Type: `Float` + - Default: `1.0F` + - Minimum: `0.25F` + - Maximum: `5.0F` + - __`ZOOM_DIVISOR`__ - Change the initial zoom depth. - Config Key: `zoom-divisor` From 125a88da77f3a89a36e4a82cbfba1f018d33140b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Bu=C4=8Dari=C4=87?= Date: Thu, 19 Feb 2026 22:42:06 +0100 Subject: [PATCH 4/4] Bump to 1.2.2 (#250) * Bump to 1.2.2 --- docs/developers/minestom.mdx | 6 +++--- example/bukkit/api/src/main/resources/plugin.yml | 2 +- example/bukkit/json/src/main/resources/plugin.yml | 2 +- example/bukkit/proto/src/main/resources/plugin.yml | 2 +- gradle.properties | 2 +- platform/bukkit/src/platform-loader/resources/plugin.yml | 2 +- platform/bungee/src/platform-loader/resources/plugin.yml | 2 +- platform/folia/src/main/resources/plugin.yml | 2 +- .../java/com/lunarclient/apollo/ApolloMinestomPlatform.java | 2 +- .../java/com/lunarclient/apollo/ApolloVelocityPlatform.java | 2 +- 10 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/developers/minestom.mdx b/docs/developers/minestom.mdx index 7b0dfb62..c63f1f4e 100644 --- a/docs/developers/minestom.mdx +++ b/docs/developers/minestom.mdx @@ -52,14 +52,14 @@ Next, add the `apollo-minestom` dependency to your project. ```kotlin filename="build.gradle.kts" dependencies { - implementation("com.lunarclient:apollo-minestom:1.2.1") + implementation("com.lunarclient:apollo-minestom:1.2.2") } ``` ```groovy filename="build.gradle" dependencies { - implementation 'com.lunarclient:apollo-minestom:1.2.1' + implementation 'com.lunarclient:apollo-minestom:1.2.2' } ``` @@ -69,7 +69,7 @@ Next, add the `apollo-minestom` dependency to your project. com.lunarclient apollo-minestom - 1.2.1 + 1.2.2 compile diff --git a/example/bukkit/api/src/main/resources/plugin.yml b/example/bukkit/api/src/main/resources/plugin.yml index d0fbb647..1db6a639 100644 --- a/example/bukkit/api/src/main/resources/plugin.yml +++ b/example/bukkit/api/src/main/resources/plugin.yml @@ -1,6 +1,6 @@ name: Apollo-API-Example main: com.lunarclient.apollo.example.api.ApolloApiExamplePlatform -version: 1.2.1 +version: 1.2.2 author: Moonsworth softdepend: [ Apollo-Bukkit, Apollo-Folia ] api-version: 1.13 diff --git a/example/bukkit/json/src/main/resources/plugin.yml b/example/bukkit/json/src/main/resources/plugin.yml index 6a17e3bd..1e3102a1 100644 --- a/example/bukkit/json/src/main/resources/plugin.yml +++ b/example/bukkit/json/src/main/resources/plugin.yml @@ -1,6 +1,6 @@ name: Apollo-Json-Example main: com.lunarclient.apollo.example.json.ApolloJsonExamplePlatform -version: 1.2.1 +version: 1.2.2 author: Moonsworth softdepend: [ Apollo-Bukkit ] api-version: 1.13 diff --git a/example/bukkit/proto/src/main/resources/plugin.yml b/example/bukkit/proto/src/main/resources/plugin.yml index d42f000a..83d13efd 100644 --- a/example/bukkit/proto/src/main/resources/plugin.yml +++ b/example/bukkit/proto/src/main/resources/plugin.yml @@ -1,6 +1,6 @@ name: Apollo-Proto-Example main: com.lunarclient.apollo.example.proto.ApolloProtoExamplePlatform -version: 1.2.1 +version: 1.2.2 author: Moonsworth softdepend: [ Apollo-Bukkit ] api-version: 1.13 diff --git a/gradle.properties b/gradle.properties index 21135ed5..cd0f9390 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ group=com.lunarclient -version=1.2.2-SNAPSHOT +version=1.2.2 description=The API for interacting with Lunar Client players. org.gradle.parallel=true diff --git a/platform/bukkit/src/platform-loader/resources/plugin.yml b/platform/bukkit/src/platform-loader/resources/plugin.yml index 24f4445b..6eac1699 100644 --- a/platform/bukkit/src/platform-loader/resources/plugin.yml +++ b/platform/bukkit/src/platform-loader/resources/plugin.yml @@ -1,6 +1,6 @@ name: Apollo-Bukkit main: com.lunarclient.apollo.loader.BukkitPlatformLoader -version: 1.2.1 +version: 1.2.2 author: Moonsworth api-version: 1.13 soft-depend: [LunarClient-API] diff --git a/platform/bungee/src/platform-loader/resources/plugin.yml b/platform/bungee/src/platform-loader/resources/plugin.yml index a804a581..5d37b58b 100644 --- a/platform/bungee/src/platform-loader/resources/plugin.yml +++ b/platform/bungee/src/platform-loader/resources/plugin.yml @@ -1,4 +1,4 @@ name: Apollo-Bungee main: com.lunarclient.apollo.loader.BungeePlatformLoader -version: 1.2.1 +version: 1.2.2 author: Moonsworth diff --git a/platform/folia/src/main/resources/plugin.yml b/platform/folia/src/main/resources/plugin.yml index b5fa6171..d01a15bc 100644 --- a/platform/folia/src/main/resources/plugin.yml +++ b/platform/folia/src/main/resources/plugin.yml @@ -1,6 +1,6 @@ name: Apollo-Folia main: com.lunarclient.apollo.ApolloFoliaPlatform -version: 1.2.1 +version: 1.2.2 author: Moonsworth api-version: 1.13 folia-supported: true diff --git a/platform/minestom/src/main/java/com/lunarclient/apollo/ApolloMinestomPlatform.java b/platform/minestom/src/main/java/com/lunarclient/apollo/ApolloMinestomPlatform.java index 5113d27f..e6702e22 100644 --- a/platform/minestom/src/main/java/com/lunarclient/apollo/ApolloMinestomPlatform.java +++ b/platform/minestom/src/main/java/com/lunarclient/apollo/ApolloMinestomPlatform.java @@ -237,7 +237,7 @@ public Options getOptions() { @Override public String getApolloVersion() { - return "1.2.1"; + return "1.2.2"; } @Override diff --git a/platform/velocity/src/main/java/com/lunarclient/apollo/ApolloVelocityPlatform.java b/platform/velocity/src/main/java/com/lunarclient/apollo/ApolloVelocityPlatform.java index f3b5646d..a0d868bd 100644 --- a/platform/velocity/src/main/java/com/lunarclient/apollo/ApolloVelocityPlatform.java +++ b/platform/velocity/src/main/java/com/lunarclient/apollo/ApolloVelocityPlatform.java @@ -105,7 +105,7 @@ @Plugin( id = "apollo", name = "Apollo-Velocity", - version = "1.2.1", + version = "1.2.2", url = "https://moonsworth.com", description = "Implementation of Apollo for Velocity", authors = {"Moonsworth"}