diff --git a/src/main/java/meteordevelopment/meteorclient/MeteorClient.java b/src/main/java/meteordevelopment/meteorclient/MeteorClient.java index 4711bd80bd..65a16e6b19 100644 --- a/src/main/java/meteordevelopment/meteorclient/MeteorClient.java +++ b/src/main/java/meteordevelopment/meteorclient/MeteorClient.java @@ -27,6 +27,7 @@ import meteordevelopment.meteorclient.utils.misc.Version; import meteordevelopment.meteorclient.utils.misc.input.KeyAction; import meteordevelopment.meteorclient.utils.misc.input.KeyBinds; +import meteordevelopment.meteorclient.utils.misc.text.MeteorTranslatableTextComponent; import meteordevelopment.meteorclient.utils.network.OnlinePlayers; import meteordevelopment.orbit.EventBus; import meteordevelopment.orbit.EventHandler; @@ -37,6 +38,7 @@ import net.fabricmc.loader.api.metadata.ModMetadata; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.ChatScreen; +import net.minecraft.text.MutableText; import net.minecraft.util.Identifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -197,4 +199,12 @@ private void onOpenScreen(OpenScreenEvent event) { public static Identifier identifier(String path) { return Identifier.of(MeteorClient.MOD_ID, path); } + + public static MutableText translatable(String key, Object... args) { + return MutableText.of(new MeteorTranslatableTextComponent(key, args)); + } + + public static MutableText translatable(String key, String fallback, Object... args) { + return MutableText.of(new MeteorTranslatableTextComponent(key, fallback, args)); + } } diff --git a/src/main/java/meteordevelopment/meteorclient/addons/AddonManager.java b/src/main/java/meteordevelopment/meteorclient/addons/AddonManager.java index 54af1c4d00..2e1a10668e 100644 --- a/src/main/java/meteordevelopment/meteorclient/addons/AddonManager.java +++ b/src/main/java/meteordevelopment/meteorclient/addons/AddonManager.java @@ -48,6 +48,7 @@ public String getCommit() { ModMetadata metadata = FabricLoader.getInstance().getModContainer(MeteorClient.MOD_ID).get().getMetadata(); + MeteorClient.ADDON.id = metadata.getId(); MeteorClient.ADDON.name = metadata.getName(); MeteorClient.ADDON.authors = new String[metadata.getAuthors().size()]; if (metadata.containsCustomValue(MeteorClient.MOD_ID + ":color")) { @@ -72,6 +73,7 @@ public String getCommit() { throw new RuntimeException("Exception during addon init \"%s\".".formatted(metadata.getName()), throwable); } + addon.id = metadata.getId(); addon.name = metadata.getName(); if (metadata.getAuthors().isEmpty()) throw new RuntimeException("Addon \"%s\" requires at least 1 author to be defined in it's fabric.mod.json. See https://fabricmc.net/wiki/documentation:fabric_mod_json_spec".formatted(addon.name)); diff --git a/src/main/java/meteordevelopment/meteorclient/addons/MeteorAddon.java b/src/main/java/meteordevelopment/meteorclient/addons/MeteorAddon.java index 8499e60521..5c2eb55fff 100644 --- a/src/main/java/meteordevelopment/meteorclient/addons/MeteorAddon.java +++ b/src/main/java/meteordevelopment/meteorclient/addons/MeteorAddon.java @@ -8,6 +8,10 @@ import meteordevelopment.meteorclient.utils.render.color.Color; public abstract class MeteorAddon { + /** This field is automatically assigned from fabric.mod.json file. + * @since 1.21.11 */ // todo replace with exact version when released + public String id; + /** This field is automatically assigned from fabric.mod.json file. */ public String name; diff --git a/src/main/java/meteordevelopment/meteorclient/commands/Command.java b/src/main/java/meteordevelopment/meteorclient/commands/Command.java index 18fea76782..0809c14978 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/Command.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/Command.java @@ -12,12 +12,14 @@ import meteordevelopment.meteorclient.MeteorClient; import meteordevelopment.meteorclient.systems.config.Config; import meteordevelopment.meteorclient.utils.Utils; +import meteordevelopment.meteorclient.utils.misc.MeteorTranslations; import meteordevelopment.meteorclient.utils.player.ChatUtils; import net.minecraft.client.MinecraftClient; import net.minecraft.command.CommandRegistryAccess; import net.minecraft.command.CommandSource; import net.minecraft.registry.BuiltinRegistries; import net.minecraft.server.command.CommandManager; +import net.minecraft.text.MutableText; import net.minecraft.text.Text; import java.util.List; @@ -29,14 +31,18 @@ public abstract class Command { private final String name; private final String title; - private final String description; private final List aliases; + public final String translationKey; - public Command(String name, String description, String... aliases) { + public Command(String name, String... aliases) { this.name = name; this.title = Utils.nameToTitle(name); - this.description = description; this.aliases = List.of(aliases); + this.translationKey = "command." + name; + } + + public Command(String name) { + this(name, new String[0]); } // Helper methods to painlessly infer the CommandSource generic type argument @@ -65,10 +71,6 @@ public String getName() { return name; } - public String getDescription() { - return description; - } - public List getAliases() { return aliases; } @@ -90,16 +92,24 @@ public void info(Text message) { public void info(String message, Object... args) { ChatUtils.forceNextPrefixClass(getClass()); - ChatUtils.infoPrefix(title, message, args); + ChatUtils.infoPrefix(title, MeteorTranslations.translate(translationKey + ".info." + message, message, args)); } public void warning(String message, Object... args) { ChatUtils.forceNextPrefixClass(getClass()); - ChatUtils.warningPrefix(title, message, args); + ChatUtils.warningPrefix(title, MeteorTranslations.translate(translationKey + ".warning." + message, message, args)); } public void error(String message, Object... args) { ChatUtils.forceNextPrefixClass(getClass()); - ChatUtils.errorPrefix(title, message, args); + ChatUtils.errorPrefix(title, MeteorTranslations.translate(translationKey + ".error." + message, message, args)); + } + + public MutableText translatable(String string, Object... args) { + return MeteorClient.translatable(translationKey + "." + string, args); + } + + public MutableText translatable(String string, String fallback, Object... args) { + return MeteorClient.translatable(translationKey + "." + string, fallback, args); } } diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/BindCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/BindCommand.java index 3ef50aa80d..98302c02fd 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/BindCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/BindCommand.java @@ -14,7 +14,7 @@ public class BindCommand extends Command { public BindCommand() { - super("bind", "Binds a specified module to the next pressed key."); + super("bind"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/BindsCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/BindsCommand.java index 0bc90a5ea4..76abdda30c 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/BindsCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/BindsCommand.java @@ -9,7 +9,6 @@ import meteordevelopment.meteorclient.commands.Command; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.systems.modules.Modules; -import meteordevelopment.meteorclient.utils.Utils; import meteordevelopment.meteorclient.utils.player.ChatUtils; import net.minecraft.command.CommandSource; import net.minecraft.text.HoverEvent; @@ -21,7 +20,7 @@ public class BindsCommand extends Command { public BindsCommand() { - super("binds", "List of all bound modules."); + super("binds"); } @Override @@ -37,7 +36,7 @@ public void build(LiteralArgumentBuilder builder) { for (Module module : modules) { HoverEvent hoverEvent = new HoverEvent.ShowText(getTooltip(module)); - MutableText text = Text.literal(module.title).formatted(Formatting.WHITE); + MutableText text = module.getTitleText().formatted(Formatting.WHITE); text.setStyle(text.getStyle().withHoverEvent(hoverEvent)); MutableText sep = Text.literal(" - "); @@ -56,8 +55,8 @@ public void build(LiteralArgumentBuilder builder) { } private MutableText getTooltip(Module module) { - MutableText tooltip = Text.literal(Utils.nameToTitle(module.title)).formatted(Formatting.BLUE, Formatting.BOLD).append("\n\n"); - tooltip.append(Text.literal(module.description).formatted(Formatting.WHITE)); + MutableText tooltip = module.getTitleText().formatted(Formatting.BLUE, Formatting.BOLD).append("\n\n"); + tooltip.append(module.getDescriptionText().formatted(Formatting.WHITE)); return tooltip; } } diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/CommandsCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/CommandsCommand.java index e35078c472..6f0be6c8e1 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/CommandsCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/CommandsCommand.java @@ -20,7 +20,7 @@ public class CommandsCommand extends Command { public CommandsCommand() { - super("commands", "List of all commands.", "help"); + super("commands", "help"); } @Override @@ -53,7 +53,7 @@ private MutableText getCommandText(Command command) { } tooltip.append(aliases.formatted(Formatting.GRAY)).append("\n\n"); - tooltip.append(Text.literal(command.getDescription()).formatted(Formatting.WHITE)); + tooltip.append(command.translatable("description")).formatted(Formatting.WHITE); // Text MutableText text = Text.literal(Utils.nameToTitle(command.getName())); diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/DamageCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/DamageCommand.java index 973c10bb0c..653f411b9e 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/DamageCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/DamageCommand.java @@ -21,7 +21,7 @@ public class DamageCommand extends Command { private final static SimpleCommandExceptionType INVULNERABLE = new SimpleCommandExceptionType(Text.literal("You are invulnerable.")); public DamageCommand() { - super("damage", "Damages self", "dmg"); + super("damage", "dmg"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/DisconnectCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/DisconnectCommand.java index f43585276a..2cfa733b92 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/DisconnectCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/DisconnectCommand.java @@ -15,13 +15,13 @@ public class DisconnectCommand extends Command { public DisconnectCommand() { - super("disconnect", "Disconnect from the server", "dc"); + super("disconnect", "dc"); } @Override public void build(LiteralArgumentBuilder builder) { builder.executes(context -> { - mc.player.networkHandler.onDisconnect(new DisconnectS2CPacket(Text.literal("%s[%sDisconnectCommand%s] Disconnected by user.".formatted(Formatting.GRAY, Formatting.BLUE, Formatting.GRAY)))); + mc.player.networkHandler.onDisconnect(new DisconnectS2CPacket(translatable("disconnection_message", Formatting.GRAY, Formatting.BLUE, Formatting.GRAY))); return SINGLE_SUCCESS; }); diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/DismountCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/DismountCommand.java index 1cbdfb84cd..78253c2e8c 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/DismountCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/DismountCommand.java @@ -13,7 +13,7 @@ public class DismountCommand extends Command { public DismountCommand() { - super("dismount", "Dismounts you from entity you are riding."); + super("dismount"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/DropCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/DropCommand.java index 4816bedd09..e03c181216 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/DropCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/DropCommand.java @@ -10,6 +10,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; +import meteordevelopment.meteorclient.MeteorClient; import meteordevelopment.meteorclient.commands.Command; import meteordevelopment.meteorclient.utils.player.InvUtils; import net.minecraft.client.network.ClientPlayerEntity; @@ -19,14 +20,13 @@ import net.minecraft.entity.EquipmentSlot; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; -import net.minecraft.text.Text; public class DropCommand extends Command { - private static final SimpleCommandExceptionType NOT_SPECTATOR = new SimpleCommandExceptionType(Text.literal("Can't drop items while in spectator.")); - private static final SimpleCommandExceptionType NO_SUCH_ITEM = new SimpleCommandExceptionType(Text.literal("Could not find an item with that name!")); + private static final SimpleCommandExceptionType NOT_SPECTATOR = new SimpleCommandExceptionType(MeteorClient.translatable("meteor.command.drop.exception.not_spectator")); + private static final SimpleCommandExceptionType NO_SUCH_ITEM = new SimpleCommandExceptionType(MeteorClient.translatable("meteor.command.drop.exception.no_such_item")); public DropCommand() { - super("drop", "Automatically drops specified items."); + super("drop"); } @Override @@ -70,9 +70,9 @@ public void build(LiteralArgumentBuilder builder) { // Specific item builder.then(argument("item", ItemStackArgumentType.itemStack(REGISTRY_ACCESS)) - .executes(context -> drop(player -> { - dropItem(player, context, Integer.MAX_VALUE); - })) + .executes(context -> drop(player -> + dropItem(player, context, Integer.MAX_VALUE) + )) .then(argument("amount", IntegerArgumentType.integer(1)) .executes(context -> drop(player -> { int amount = IntegerArgumentType.getInteger(context, "amount"); diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/EnchantCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/EnchantCommand.java index 7eb9e6b584..d9dc46cb3c 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/EnchantCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/EnchantCommand.java @@ -10,6 +10,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; +import meteordevelopment.meteorclient.MeteorClient; import meteordevelopment.meteorclient.commands.Command; import meteordevelopment.meteorclient.commands.arguments.RegistryEntryReferenceArgumentType; import meteordevelopment.meteorclient.utils.Utils; @@ -19,16 +20,15 @@ import net.minecraft.item.ItemStack; import net.minecraft.registry.RegistryKeys; import net.minecraft.registry.entry.RegistryEntry; -import net.minecraft.text.Text; import java.util.function.ToIntFunction; public class EnchantCommand extends Command { - private static final SimpleCommandExceptionType NOT_IN_CREATIVE = new SimpleCommandExceptionType(Text.literal("You must be in creative mode to use this.")); - private static final SimpleCommandExceptionType NOT_HOLDING_ITEM = new SimpleCommandExceptionType(Text.literal("You need to hold some item to enchant.")); + private static final SimpleCommandExceptionType NOT_IN_CREATIVE = new SimpleCommandExceptionType(MeteorClient.translatable("meteor.command.enchant.exception.not_in_creative")); + private static final SimpleCommandExceptionType NOT_HOLDING_ITEM = new SimpleCommandExceptionType(MeteorClient.translatable("meteor.command.enchant.exception.not_holding_item")); public EnchantCommand() { - super("enchant", "Enchants the item in your hand. REQUIRES Creative mode."); + super("enchant"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/EnderChestCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/EnderChestCommand.java index 818bf8bb27..2c5210ad1c 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/EnderChestCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/EnderChestCommand.java @@ -14,7 +14,7 @@ public class EnderChestCommand extends Command { public EnderChestCommand() { - super("ender-chest", "Allows you to preview memory of your ender chest.", "ec", "echest"); + super("ender-chest", "ec", "echest"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/FakePlayerCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/FakePlayerCommand.java index 5374e1f503..09dd5e3797 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/FakePlayerCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/FakePlayerCommand.java @@ -13,12 +13,11 @@ import meteordevelopment.meteorclient.systems.modules.player.FakePlayer; import meteordevelopment.meteorclient.utils.entity.fakeplayer.FakePlayerEntity; import meteordevelopment.meteorclient.utils.entity.fakeplayer.FakePlayerManager; -import meteordevelopment.meteorclient.utils.player.ChatUtils; import net.minecraft.command.CommandSource; public class FakePlayerCommand extends Command { public FakePlayerCommand() { - super("fake-player", "Manages fake players that you can use for testing."); + super("fake-player"); } @Override @@ -43,12 +42,12 @@ public void build(LiteralArgumentBuilder builder) { .executes(context -> { FakePlayerEntity fp = FakePlayerArgumentType.get(context); if (fp == null || !FakePlayerManager.contains(fp)) { - error("Couldn't find a Fake Player with that name."); + error("not_found"); return SINGLE_SUCCESS; } FakePlayerManager.remove(fp); - info("Removed Fake Player %s.".formatted(fp.getName().getString())); + info("removed", fp.getName().getString()); return SINGLE_SUCCESS; }) @@ -65,7 +64,7 @@ public void build(LiteralArgumentBuilder builder) { builder.then(literal("list") .executes(context -> { info("--- Fake Players ((highlight)%s(default)) ---", FakePlayerManager.count()); - FakePlayerManager.forEach(fp -> ChatUtils.info("(highlight)%s".formatted(fp.getName().getString()))); + FakePlayerManager.forEach(fp -> info("(highlight)%s".formatted(fp.getName().getString()))); return SINGLE_SUCCESS; }) ); diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/FovCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/FovCommand.java index dd612d030a..bf5aef1948 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/FovCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/FovCommand.java @@ -13,7 +13,7 @@ public class FovCommand extends Command { public FovCommand() { - super("fov", "Changes your fov."); + super("fov"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/FriendsCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/FriendsCommand.java index 23ae209cad..84d12f56c6 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/FriendsCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/FriendsCommand.java @@ -18,7 +18,7 @@ public class FriendsCommand extends Command { public FriendsCommand() { - super("friends", "Manages friends."); + super("friends"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/GamemodeCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/GamemodeCommand.java index 9033346af8..2fcaba695f 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/GamemodeCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/GamemodeCommand.java @@ -12,7 +12,7 @@ public class GamemodeCommand extends Command { public GamemodeCommand() { - super("gamemode", "Changes your gamemode client-side.", "gm"); + super("gamemode", "gm"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/GiveCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/GiveCommand.java index 94150a58b7..83b4e8bc12 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/GiveCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/GiveCommand.java @@ -9,6 +9,7 @@ import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; +import meteordevelopment.meteorclient.MeteorClient; import meteordevelopment.meteorclient.commands.Command; import meteordevelopment.meteorclient.utils.player.FindItemResult; import meteordevelopment.meteorclient.utils.player.InvUtils; @@ -16,14 +17,13 @@ import net.minecraft.command.argument.ItemStackArgumentType; import net.minecraft.item.ItemStack; import net.minecraft.network.packet.c2s.play.CreativeInventoryActionC2SPacket; -import net.minecraft.text.Text; public class GiveCommand extends Command { - private final static SimpleCommandExceptionType NOT_IN_CREATIVE = new SimpleCommandExceptionType(Text.literal("You must be in creative mode to use this.")); - private final static SimpleCommandExceptionType NO_SPACE = new SimpleCommandExceptionType(Text.literal("No space in hotbar.")); + private final static SimpleCommandExceptionType NOT_IN_CREATIVE = new SimpleCommandExceptionType(MeteorClient.translatable("meteor.command.give.exception.not_in_creative")); + private final static SimpleCommandExceptionType NO_SPACE = new SimpleCommandExceptionType(MeteorClient.translatable("meteor.command.give.exception.no_space")); public GiveCommand() { - super("give", "Gives you any item."); + super("give"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/HClipCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/HClipCommand.java index 2af1daa8f3..11528ac7cf 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/HClipCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/HClipCommand.java @@ -14,7 +14,7 @@ public class HClipCommand extends Command { public HClipCommand() { - super("hclip", "Lets you clip through blocks horizontally."); + super("hclip"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/InputCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/InputCommand.java index ae4fc9ad57..c5e96ce16c 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/InputCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/InputCommand.java @@ -41,7 +41,7 @@ public class InputCommand extends Command { ); public InputCommand() { - super("input", "Keyboard input simulation."); + super("input"); } @Override @@ -80,9 +80,9 @@ public void build(LiteralArgumentBuilder builder) { } builder.then(literal("clear").executes(ctx -> { - if (activeHandlers.isEmpty()) warning("No active keypress handlers."); + if (activeHandlers.isEmpty()) warning("no_handlers"); else { - info("Cleared all keypress handlers."); + info("cleared_handlers"); activeHandlers.forEach(MeteorClient.EVENT_BUS::unsubscribe); activeHandlers.clear(); } @@ -90,12 +90,12 @@ public void build(LiteralArgumentBuilder builder) { })); builder.then(literal("list").executes(ctx -> { - if (activeHandlers.isEmpty()) warning("No active keypress handlers."); + if (activeHandlers.isEmpty()) warning("no_handlers"); else { - info("Active keypress handlers: "); + info(""); for (int i = 0; i < activeHandlers.size(); i++) { KeypressHandler handler = activeHandlers.get(i); - info("(highlight)%d(default) - (highlight)%s %d(default) ticks left out of (highlight)%d(default).", i, I18n.translate(handler.key.getId()), handler.ticks, handler.totalTicks); + info("keypress_handler", i, I18n.translate(handler.key.getId()), handler.ticks, handler.totalTicks); } } return SINGLE_SUCCESS; @@ -103,9 +103,9 @@ public void build(LiteralArgumentBuilder builder) { builder.then(literal("remove").then(argument("index", IntegerArgumentType.integer(0)).executes(ctx -> { int index = IntegerArgumentType.getInteger(ctx, "index"); - if (index >= activeHandlers.size()) warning("Index out of range."); + if (index >= activeHandlers.size()) warning("out_of_range"); else { - info("Removed keypress handler."); + info("removed_handler"); MeteorClient.EVENT_BUS.unsubscribe(activeHandlers.get(index)); activeHandlers.remove(index); } diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/InventoryCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/InventoryCommand.java index 8ef230967c..6bcd33a815 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/InventoryCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/InventoryCommand.java @@ -14,7 +14,7 @@ public class InventoryCommand extends Command { public InventoryCommand() { - super("inventory", "Allows you to see parts of another player's inventory.", "inv", "invsee"); + super("inventory", "inv", "invsee"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/LocateCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/LocateCommand.java index f3c4895d35..32062c3935 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/LocateCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/LocateCommand.java @@ -67,7 +67,7 @@ public class LocateCommand extends Command { ); public LocateCommand() { - super("locate", "Locates structures", "loc"); + super("locate", "loc"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/MacroCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/MacroCommand.java index 074c9eae8d..566cfb43e1 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/MacroCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/MacroCommand.java @@ -21,7 +21,7 @@ public class MacroCommand extends Command { public MacroCommand() { - super("macro", "Allows you to execute macros."); + super("macro"); MeteorClient.EVENT_BUS.subscribe(this); } @@ -35,12 +35,12 @@ public void build(LiteralArgumentBuilder builder) { .then(literal("clear") .executes(context -> { if (scheduleQueue.isEmpty() && scheduledMacros.isEmpty()) { - error("No macros are currently scheduled."); + error("none_scheduled"); return SINGLE_SUCCESS; } clearAll(); - info("Cleared all scheduled macros."); + info("cleared_all"); return SINGLE_SUCCESS; }) @@ -49,12 +49,12 @@ public void build(LiteralArgumentBuilder builder) { Macro macro = MacroArgumentType.get(context); if (!isScheduled(macro)) { - error("This macro is not currently scheduled."); + error("not_scheduled"); return SINGLE_SUCCESS; } clear(macro); - info("Cleared scheduled macro."); + info("cleared"); return SINGLE_SUCCESS; }) ) diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/ModulesCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/ModulesCommand.java index 248fea9f6a..b3aaf85cf6 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/ModulesCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/ModulesCommand.java @@ -18,7 +18,7 @@ public class ModulesCommand extends Command { public ModulesCommand() { - super("modules", "Displays a list of all modules.", "features"); + super("modules", "features"); } @Override @@ -29,7 +29,7 @@ public void build(LiteralArgumentBuilder builder) { Modules.loopCategories().forEach(category -> { MutableText categoryMessage = Text.literal(""); Modules.get().getGroup(category).forEach(module -> categoryMessage.append(getModuleText(module))); - ChatUtils.sendMsg(category.name, categoryMessage); + ChatUtils.sendMsg(category.getName(), categoryMessage); // todo }); return SINGLE_SUCCESS; @@ -40,11 +40,11 @@ private MutableText getModuleText(Module module) { // Hover tooltip MutableText tooltip = Text.literal(""); - tooltip.append(Text.literal(module.title).formatted(Formatting.BLUE, Formatting.BOLD)).append("\n"); + tooltip.append(module.getTitleText().formatted(Formatting.BLUE, Formatting.BOLD)).append("\n"); tooltip.append(Text.literal(module.name).formatted(Formatting.GRAY)).append("\n\n"); - tooltip.append(Text.literal(module.description).formatted(Formatting.WHITE)); + tooltip.append(module.getDescriptionText().formatted(Formatting.WHITE)); - MutableText finalModule = Text.literal(module.title); + MutableText finalModule = module.getTitleText(); if (!module.isActive()) finalModule.formatted(Formatting.GRAY); if (!module.equals(Modules.get().getGroup(module.category).getLast())) finalModule.append(Text.literal(", ").formatted(Formatting.GRAY)); finalModule.setStyle(finalModule.getStyle().withHoverEvent(new HoverEvent.ShowText(tooltip))); diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/NameHistoryCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/NameHistoryCommand.java index db1a317183..ba5b8aea0c 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/NameHistoryCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/NameHistoryCommand.java @@ -27,7 +27,7 @@ public class NameHistoryCommand extends Command { public NameHistoryCommand() { - super("name-history", "Provides a list of a players previous names from the laby.net api.", "history", "names"); + super("name-history", "history", "names"); } @Override @@ -38,13 +38,13 @@ public void build(LiteralArgumentBuilder builder) { UUID uuid = lookUpTarget.getProfile().id(); NameHistory history = Http.get("https://laby.net/api/v2/user/" + uuid + "/get-profile") - .exceptionHandler(e -> error("There was an error fetching that users name history.")) + .exceptionHandler(e -> error("error_fetching_name")) .sendJson(NameHistory.class); if (history == null) { return; } else if (history.username_history == null || history.username_history.length == 0) { - error("There was an error fetching that users name history."); + error("error_fetching_name"); } String name = lookUpTarget.getProfile().name(); @@ -85,7 +85,7 @@ public void build(LiteralArgumentBuilder builder) { if (!entry.accurate) { MutableText text = Text.literal("*").formatted(Formatting.WHITE); - text.setStyle(text.getStyle().withHoverEvent(new HoverEvent.ShowText(Text.literal("This name history entry is not accurate according to laby.net")))); + text.setStyle(text.getStyle().withHoverEvent(new HoverEvent.ShowText(translatable("inaccurate")))); nameText.append(text); } diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/NbtCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/NbtCommand.java index 1eea843b3a..667b28c421 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/NbtCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/NbtCommand.java @@ -51,7 +51,7 @@ public class NbtCommand extends Command { ))); public NbtCommand() { - super("nbt", "Modifies NBT data for an item, example: .nbt add {display:{Name:'{\"text\":\"$cRed Name\"}'}}"); + super("nbt"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/NotebotCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/NotebotCommand.java index ee791ce2fc..cf6822fb2e 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/NotebotCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/NotebotCommand.java @@ -41,7 +41,7 @@ public class NotebotCommand extends Command { private final Map> song = new HashMap<>(); // tick -> notes public NotebotCommand() { - super("notebot", "Allows you load notebot files"); + super("notebot"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/PeekCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/PeekCommand.java index 52e9761622..77d2ac6dcf 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/PeekCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/PeekCommand.java @@ -19,7 +19,7 @@ public class PeekCommand extends Command { private static final SimpleCommandExceptionType CANT_PEEK = new SimpleCommandExceptionType(Text.literal("You must be holding a storage block or looking at an item frame.")); public PeekCommand() { - super("peek", "Lets you see what's inside storage block items."); + super("peek"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/ProfilesCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/ProfilesCommand.java index 43c816f1c1..f8b0b7c25d 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/ProfilesCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/ProfilesCommand.java @@ -15,7 +15,7 @@ public class ProfilesCommand extends Command { public ProfilesCommand() { - super("profiles", "Loads and saves profiles."); + super("profiles"); } @Override @@ -25,7 +25,7 @@ public void build(LiteralArgumentBuilder builder) { if (profile != null) { profile.load(); - info("Loaded profile (highlight)%s(default).", profile.name.get()); + info("loaded", profile.name.get()); } return SINGLE_SUCCESS; @@ -36,7 +36,7 @@ public void build(LiteralArgumentBuilder builder) { if (profile != null) { profile.save(); - info("Saved profile (highlight)%s(default).", profile.name.get()); + info("saved", profile.name.get()); } return SINGLE_SUCCESS; @@ -47,7 +47,7 @@ public void build(LiteralArgumentBuilder builder) { if (profile != null) { Profiles.get().remove(profile); - info("Deleted profile (highlight)%s(default).", profile.name.get()); + info("deleted", profile.name.get()); } return SINGLE_SUCCESS; diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/ReloadCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/ReloadCommand.java index f299819854..4a66ff2272 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/ReloadCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/ReloadCommand.java @@ -17,13 +17,13 @@ public class ReloadCommand extends Command { public ReloadCommand() { - super("reload", "Reloads many systems."); + super("reload"); } @Override public void build(LiteralArgumentBuilder builder) { builder.executes(context -> { - warning("Reloading systems, this may take a while."); + warning("reloading"); Systems.load(); Capes.init(); diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/ResetCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/ResetCommand.java index 3377b7d7e1..d5cd90994e 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/ResetCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/ResetCommand.java @@ -19,7 +19,7 @@ public class ResetCommand extends Command { public ResetCommand() { - super("reset", "Resets specified settings."); + super("reset"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/RotationCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/RotationCommand.java index d9b3be2622..ec0aa00d1b 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/RotationCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/RotationCommand.java @@ -15,7 +15,7 @@ public class RotationCommand extends Command { public RotationCommand() { - super("rotation", "Modifies your rotation."); + super("rotation"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/SaveMapCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/SaveMapCommand.java index e29c4f2f48..668893f56b 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/SaveMapCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/SaveMapCommand.java @@ -19,7 +19,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.item.map.MapState; -import net.minecraft.text.Text; import org.jetbrains.annotations.Nullable; import org.lwjgl.BufferUtils; import org.lwjgl.PointerBuffer; @@ -33,13 +32,13 @@ import java.nio.ByteBuffer; public class SaveMapCommand extends Command { - private static final SimpleCommandExceptionType MAP_NOT_FOUND = new SimpleCommandExceptionType(Text.literal("You must be holding a filled map.")); - private static final SimpleCommandExceptionType OOPS = new SimpleCommandExceptionType(Text.literal("Something went wrong.")); + private static final SimpleCommandExceptionType MAP_NOT_FOUND = new SimpleCommandExceptionType(MeteorClient.translatable("meteor.command.save-map.exception.map_not_found")); + private static final SimpleCommandExceptionType OOPS = new SimpleCommandExceptionType(MeteorClient.translatable("meteor.command.save-map.exception.oops")); private final PointerBuffer filters; public SaveMapCommand() { - super("save-map", "Saves a map to an image.", "sm"); + super("save-map", "sm"); filters = BufferUtils.createPointerBuffer(1); @@ -72,24 +71,25 @@ private void saveMap(int scale) throws CommandSyntaxException { if (path == null) throw OOPS.create(); MapTextureManagerAccessor textureManager = (MapTextureManagerAccessor) mc.gameRenderer.getClient().getMapTextureManager(); - MapTextureManager.MapTexture texture = textureManager.meteor$invokeGetMapTexture(map.get(DataComponentTypes.MAP_ID), state); - if (texture.texture.getImage() == null) throw OOPS.create(); - - try { - if (scale == 128) texture.texture.getImage().writeTo(path); - else { - int[] data = texture.texture.getImage().makePixelArray(); - BufferedImage image = new BufferedImage(128, 128, BufferedImage.TYPE_INT_ARGB); - image.setRGB(0, 0, image.getWidth(), image.getHeight(), data, 0, 128); - - BufferedImage scaledImage = new BufferedImage(scale, scale, 2); - scaledImage.createGraphics().drawImage(image, 0, 0, scale, scale, null); - - ImageIO.write(scaledImage, "png", path); + try (MapTextureManager.MapTexture texture = textureManager.meteor$invokeGetMapTexture(map.get(DataComponentTypes.MAP_ID), state)) { + if (texture.texture.getImage() == null) throw OOPS.create(); + + try { + if (scale == 128) texture.texture.getImage().writeTo(path); + else { + int[] data = texture.texture.getImage().makePixelArray(); + BufferedImage image = new BufferedImage(128, 128, BufferedImage.TYPE_INT_ARGB); + image.setRGB(0, 0, image.getWidth(), image.getHeight(), data, 0, 128); + + BufferedImage scaledImage = new BufferedImage(scale, scale, 2); + scaledImage.createGraphics().drawImage(image, 0, 0, scale, scale, null); + + ImageIO.write(scaledImage, "png", path); + } + } catch (IOException e) { + error("error_writing_texture"); + MeteorClient.LOG.error(e.toString()); } - } catch (IOException e) { - error("Error writing map texture"); - MeteorClient.LOG.error(e.toString()); } } diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/SayCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/SayCommand.java index 102bc003fe..298a3512c0 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/SayCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/SayCommand.java @@ -23,7 +23,7 @@ public class SayCommand extends Command { public SayCommand() { - super("say", "Sends messages in chat."); + super("say"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/ServerCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/ServerCommand.java index d7bdd78978..746b2b91a7 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/ServerCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/ServerCommand.java @@ -54,7 +54,7 @@ public class ServerCommand extends Command { public ServerCommand() { - super("server", "Prints server information"); + super("server"); MeteorClient.EVENT_BUS.subscribe(this); } diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/SettingCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/SettingCommand.java index 25a2e92b65..04fca1e192 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/SettingCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/SettingCommand.java @@ -22,7 +22,7 @@ public class SettingCommand extends Command { public SettingCommand() { - super("settings", "Allows you to view and change module settings.", "s"); + super("settings", "s"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/SpectateCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/SpectateCommand.java index d54ed7cce9..deefaa9f60 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/SpectateCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/SpectateCommand.java @@ -21,7 +21,7 @@ public class SpectateCommand extends Command { private final StaticListener shiftListener = new StaticListener(); public SpectateCommand() { - super("spectate", "Allows you to spectate nearby players"); + super("spectate"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/SwarmCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/SwarmCommand.java index 1397af8f4a..d00b57f437 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/SwarmCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/SwarmCommand.java @@ -43,7 +43,7 @@ public class SwarmCommand extends Command { private @Nullable ObjectIntPair pendingConnection; public SwarmCommand() { - super("swarm", "Sends commands to connected swarm workers."); + super("swarm"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/ToggleCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/ToggleCommand.java index c7fdbdd5e6..7bb31f750b 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/ToggleCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/ToggleCommand.java @@ -17,7 +17,7 @@ public class ToggleCommand extends Command { public ToggleCommand() { - super("toggle", "Toggles a module.", "t"); + super("toggle", "t"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/VClipCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/VClipCommand.java index 13124e5a54..d1ee18751c 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/VClipCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/VClipCommand.java @@ -14,7 +14,7 @@ public class VClipCommand extends Command { public VClipCommand() { - super("vclip", "Lets you clip through blocks vertically."); + super("vclip"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/WaspCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/WaspCommand.java index fe9ce8a74a..63711b6327 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/WaspCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/WaspCommand.java @@ -7,19 +7,19 @@ import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; +import meteordevelopment.meteorclient.MeteorClient; import meteordevelopment.meteorclient.commands.Command; import meteordevelopment.meteorclient.commands.arguments.PlayerArgumentType; import meteordevelopment.meteorclient.systems.modules.Modules; import meteordevelopment.meteorclient.systems.modules.movement.AutoWasp; import net.minecraft.command.CommandSource; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.text.Text; public class WaspCommand extends Command { - private static final SimpleCommandExceptionType CANT_WASP_SELF = new SimpleCommandExceptionType(Text.literal("You cannot target yourself!")); + private static final SimpleCommandExceptionType CANT_WASP_SELF = new SimpleCommandExceptionType(MeteorClient.translatable("meteor.command.wasp.exception.cant_wasp_self")); public WaspCommand() { - super("wasp", "Sets the auto wasp target."); + super("wasp"); } @Override @@ -38,7 +38,7 @@ public void build(LiteralArgumentBuilder builder) { wasp.target = player; wasp.enable(); - info(player.getName().getString() + " set as target."); + info("target", player.getName().getString()); return SINGLE_SUCCESS; })); } diff --git a/src/main/java/meteordevelopment/meteorclient/commands/commands/WaypointCommand.java b/src/main/java/meteordevelopment/meteorclient/commands/commands/WaypointCommand.java index 54082c09c2..d65e1fdc3e 100644 --- a/src/main/java/meteordevelopment/meteorclient/commands/commands/WaypointCommand.java +++ b/src/main/java/meteordevelopment/meteorclient/commands/commands/WaypointCommand.java @@ -20,7 +20,7 @@ public class WaypointCommand extends Command { public WaypointCommand() { - super("waypoint", "Manages waypoints.", "wp"); + super("waypoint", "wp"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/gui/DefaultSettingsWidgetFactory.java b/src/main/java/meteordevelopment/meteorclient/gui/DefaultSettingsWidgetFactory.java index 6a1b773118..9a23adfbdc 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/DefaultSettingsWidgetFactory.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/DefaultSettingsWidgetFactory.java @@ -23,6 +23,7 @@ import meteordevelopment.meteorclient.renderer.Fonts; import meteordevelopment.meteorclient.settings.*; import meteordevelopment.meteorclient.utils.Utils; +import meteordevelopment.meteorclient.utils.misc.MeteorTranslations; import meteordevelopment.meteorclient.utils.render.color.SettingColor; import net.minecraft.client.resource.language.I18n; import org.apache.commons.lang3.Strings; @@ -81,7 +82,7 @@ public WWidget create(GuiTheme theme, Settings settings, String filter) { // Add all settings for (SettingGroup group : settings.groups) { - group(list, group, filter, removeInfoList); + group(list, group, filter, removeInfoList, settings.baseTranslationKey); } // Calculate width and set it as minimum width @@ -101,8 +102,8 @@ protected double settingTitleTopMargin() { return 6; } - private void group(WVerticalList list, SettingGroup group, String filter, List removeInfoList) { - WSection section = list.add(theme.section(group.name, group.sectionExpanded)).expandX().widget(); + private void group(WVerticalList list, SettingGroup group, String filter, List removeInfoList, String baseKey) { + WSection section = list.add(theme.section(MeteorTranslations.translate(group.translationKey), group.sectionExpanded)).expandX().widget(); section.action = () -> group.sectionExpanded = section.isExpanded(); WTable table = section.add(theme.table()).expandX().widget(); @@ -110,7 +111,9 @@ private void group(WVerticalList list, SettingGroup group, String filter, List setting : group) { - if (!Strings.CI.contains(setting.title, filter)) continue; + String settingKey = baseKey + "." + group.name + "." + setting.name; + String title = MeteorTranslations.translate(settingKey); + if (!Strings.CI.contains(title, filter) && !Strings.CI.contains(setting.name, filter)) continue; boolean visible = setting.isVisible(); setting.lastWasVisible = visible; @@ -119,7 +122,7 @@ private void group(WVerticalList list, SettingGroup group, String filter, List { public static final double TITLE_TEXT_SCALE = 1.25; public final String name; - public final Settings settings = new Settings(); + public final Settings settings; public boolean disableHoverColor; @@ -50,6 +51,7 @@ public abstract class GuiTheme implements ISerializable { public GuiTheme(String name) { this.name = name; + this.settings = new Settings("theme." + name.toLowerCase(Locale.ROOT)); } public void beforeRender() { @@ -156,7 +158,7 @@ public WSection section(String title) { public abstract WAccount account(WidgetScreen screen, Account account); public WWidget module(Module module) { - return module(module, module.title); + return module(module, module.getTitle()); } public abstract WWidget module(Module module, String title); @@ -213,6 +215,7 @@ public WKeybind keybind(Keybind keybind, Keybind defaultValue) { } public WWidget settings(Settings settings, String filter) { + if (settings.baseTranslationKey == null) throw new IllegalArgumentException("Cannot use internal Settings in a GuiTheme!"); return settingsFactory.create(this, settings, filter); } public WWidget settings(Settings settings) { diff --git a/src/main/java/meteordevelopment/meteorclient/gui/screens/ModuleScreen.java b/src/main/java/meteordevelopment/meteorclient/gui/screens/ModuleScreen.java index a9918bddfe..86a9b7aa01 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/screens/ModuleScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/screens/ModuleScreen.java @@ -23,6 +23,7 @@ import meteordevelopment.meteorclient.gui.widgets.pressable.WFavorite; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.systems.modules.Modules; +import meteordevelopment.meteorclient.utils.misc.MeteorTranslations; import meteordevelopment.meteorclient.utils.misc.NbtUtils; import meteordevelopment.meteorclient.utils.render.prompts.OkPrompt; import meteordevelopment.orbit.EventHandler; @@ -40,7 +41,7 @@ public class ModuleScreen extends WindowScreen { private WCheckbox active; public ModuleScreen(GuiTheme theme, Module module) { - super(theme, theme.favorite(module.favorite), module.title); + super(theme, theme.favorite(module.favorite), module.getTitle()); ((WFavorite) window.icon).action = () -> module.favorite = ((WFavorite) window.icon).checked; this.module = module; @@ -49,11 +50,11 @@ public ModuleScreen(GuiTheme theme, Module module) { @Override public void initWidgets() { // Description - add(theme.label(module.description, getWindowWidth() / 2.0)); + add(theme.label(module.getDescription(), getWindowWidth() / 2.0)); if (module.addon != null && module.addon != MeteorClient.ADDON) { WHorizontalList addon = add(theme.horizontalList()).expandX().widget(); - addon.add(theme.label("From: ").color(theme.textSecondaryColor())).widget(); + addon.add(theme.label(MeteorTranslations.translate("module.base.from")).color(theme.textSecondaryColor())).widget(); addon.add(theme.label(module.addon.name).color(module.addon.color)).widget(); } @@ -73,12 +74,12 @@ public void initWidgets() { } // Bind - WSection section = add(theme.section("Bind", true)).expandX().widget(); + WSection section = add(theme.section(MeteorTranslations.translate("module.base.bind"), true)).expandX().widget(); // Keybind WHorizontalList bind = section.add(theme.horizontalList()).expandX().widget(); - bind.add(theme.label("Bind: ")); + bind.add(theme.label(MeteorTranslations.translate("module.base.bind.bind"))); keybind = bind.add(theme.keybind(module.keybind)).expandX().widget(); keybind.actionOnSet = () -> Modules.get().setModuleToBind(module); @@ -89,14 +90,14 @@ public void initWidgets() { // Toggle on bind release WHorizontalList tobr = section.add(theme.horizontalList()).widget(); - tobr.add(theme.label("Toggle on bind release: ")); + tobr.add(theme.label(MeteorTranslations.translate("module.base.bind.toggle-on-release"))); WCheckbox tobrC = tobr.add(theme.checkbox(module.toggleOnBindRelease)).widget(); tobrC.action = () -> module.toggleOnBindRelease = tobrC.checked; // Chat feedback WHorizontalList cf = section.add(theme.horizontalList()).widget(); - cf.add(theme.label("Chat Feedback: ")); + cf.add(theme.label(MeteorTranslations.translate("module.base.bind.chat-feedback"))); WCheckbox cfC = cf.add(theme.checkbox(module.chatFeedback)).widget(); cfC.action = () -> module.chatFeedback = cfC.checked; @@ -106,7 +107,7 @@ public void initWidgets() { WHorizontalList bottom = add(theme.horizontalList()).expandX().widget(); // Active - bottom.add(theme.label("Active: ")); + bottom.add(theme.label(MeteorTranslations.translate("module.base.active"))); active = bottom.add(theme.checkbox(module.isActive())).expandCellX().widget(); active.action = () -> { if (module.isActive() != active.checked) module.toggle(); @@ -126,11 +127,11 @@ public void initWidgets() { .show(); } }; - copy.tooltip = "Copy config"; + copy.tooltip = MeteorTranslations.translate("module.base.copy-config"); WButton paste = sharing.add(theme.button(GuiRenderer.PASTE)).widget(); paste.action = this::fromClipboard; - paste.tooltip = "Paste config"; + paste.tooltip = MeteorTranslations.translate("module.base.paste-config"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/gui/screens/ModulesScreen.java b/src/main/java/meteordevelopment/meteorclient/gui/screens/ModulesScreen.java index bd1b13e5df..4610674f07 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/screens/ModulesScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/screens/ModulesScreen.java @@ -9,6 +9,7 @@ import meteordevelopment.meteorclient.gui.tabs.TabScreen; import meteordevelopment.meteorclient.gui.tabs.Tabs; import meteordevelopment.meteorclient.gui.utils.Cell; +import meteordevelopment.meteorclient.gui.widgets.WLabel; import meteordevelopment.meteorclient.gui.widgets.containers.WContainer; import meteordevelopment.meteorclient.gui.widgets.containers.WSection; import meteordevelopment.meteorclient.gui.widgets.containers.WVerticalList; @@ -18,14 +19,18 @@ import meteordevelopment.meteorclient.systems.modules.Category; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.systems.modules.Modules; +import meteordevelopment.meteorclient.utils.misc.MeteorTranslations; import meteordevelopment.meteorclient.utils.misc.NbtUtils; +import meteordevelopment.meteorclient.utils.render.prompts.YesNoPrompt; import net.minecraft.item.Items; import net.minecraft.util.Pair; +import net.minecraft.util.Util; import java.util.ArrayList; import java.util.List; import java.util.Set; +import static meteordevelopment.meteorclient.MeteorClient.mc; import static meteordevelopment.meteorclient.utils.Utils.getWindowHeight; import static meteordevelopment.meteorclient.utils.Utils.getWindowWidth; @@ -44,6 +49,32 @@ public void initWidgets() { WVerticalList help = add(theme.verticalList()).pad(4).bottom().widget(); help.add(theme.label("Left click - Toggle module")); help.add(theme.label("Right click - Open module settings")); + + // Translation info + if (MeteorTranslations.isEnglish()) return; + double t = MeteorTranslations.percentLocalised(); + + WLabel translation = add(theme.label(String.format("%.1f%% translated", t))).pad(4).bottom().right().widget(); + translation.tooltip = "Open translation info"; + translation.instantTooltips = true; + translation.action = () -> { + // people who translate deserve their names recognised for it + String translators = MeteorTranslations.translate("meteor.lang.translators", ""); + // todo switch this to master before we merge + String url = "https://github.com/MeteorDevelopment/meteor-client/blob/translations/src/main/resources/assets/meteor-client/language/" + mc.options.language.toLowerCase() + ".json"; + + YesNoPrompt prompt = YesNoPrompt.create(theme, this) + .title("Translation Information") + .message("The current language (%s) is currently %.1f%% translated.", mc.options.language, t); + + if (!translators.isEmpty()) prompt.message("Translation work done by: " + translators); + + prompt.message("") + .message("Do you want to open the language file for the current language?") + .onYes(() -> Util.getOperatingSystem().open(url)) + .dontShowAgainCheckboxVisible(false) + .show(); + }; } @Override @@ -55,7 +86,7 @@ protected void init() { // Category protected WWindow createCategory(WContainer c, Category category, List moduleList) { - WWindow w = theme.window(category.name); + WWindow w = theme.window(category.getName()); w.id = category.name; w.padding = 0; w.spacing = 0; diff --git a/src/main/java/meteordevelopment/meteorclient/gui/screens/settings/ModuleListSettingScreen.java b/src/main/java/meteordevelopment/meteorclient/gui/screens/settings/ModuleListSettingScreen.java index b8b3ab4fbf..b37b410875 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/screens/settings/ModuleListSettingScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/screens/settings/ModuleListSettingScreen.java @@ -21,14 +21,14 @@ public ModuleListSettingScreen(GuiTheme theme, Setting> setting) { @Override protected WWidget getValueWidget(Module value) { - return theme.label(value.title); + return theme.label(value.getTitle()); } @Override protected String[] getValueNames(Module value) { String[] names = new String[value.aliases.length + 1]; System.arraycopy(value.aliases, 0, names, 1, value.aliases.length); - names[0] = value.title; + names[0] = value.getTitle(); return names; } } diff --git a/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/MeteorGuiTheme.java b/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/MeteorGuiTheme.java index a2b5ffe06b..86b1819ed9 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/MeteorGuiTheme.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/MeteorGuiTheme.java @@ -36,20 +36,19 @@ public class MeteorGuiTheme extends GuiTheme { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgColors = settings.createGroup("Colors"); - private final SettingGroup sgTextColors = settings.createGroup("Text"); - private final SettingGroup sgBackgroundColors = settings.createGroup("Background"); - private final SettingGroup sgOutline = settings.createGroup("Outline"); - private final SettingGroup sgSeparator = settings.createGroup("Separator"); - private final SettingGroup sgScrollbar = settings.createGroup("Scrollbar"); - private final SettingGroup sgSlider = settings.createGroup("Slider"); - private final SettingGroup sgStarscript = settings.createGroup("Starscript"); + private final SettingGroup sgColors = settings.createGroup("colors"); + private final SettingGroup sgTextColors = settings.createGroup("text"); + private final SettingGroup sgBackgroundColors = settings.createGroup("background"); + private final SettingGroup sgOutline = settings.createGroup("outline"); + private final SettingGroup sgSeparator = settings.createGroup("separator"); + private final SettingGroup sgScrollbar = settings.createGroup("scrollbar"); + private final SettingGroup sgSlider = settings.createGroup("slider"); + private final SettingGroup sgStarscript = settings.createGroup("starscript"); // General public final Setting scale = sgGeneral.add(new DoubleSetting.Builder() .name("scale") - .description("Scale of the GUI.") .defaultValue(1) .min(0.75) .sliderRange(0.75, 4) @@ -62,21 +61,18 @@ public class MeteorGuiTheme extends GuiTheme { public final Setting moduleAlignment = sgGeneral.add(new EnumSetting.Builder() .name("module-alignment") - .description("How module titles are aligned.") .defaultValue(AlignmentX.Center) .build() ); public final Setting categoryIcons = sgGeneral.add(new BoolSetting.Builder() .name("category-icons") - .description("Adds item icons to module categories.") .defaultValue(false) .build() ); public final Setting hideHUD = sgGeneral.add(new BoolSetting.Builder() .name("hide-HUD") - .description("Hide HUD when in GUI.") .defaultValue(false) .onChanged(v -> { if (mc.currentScreen instanceof WidgetScreen) mc.options.hudHidden = v; @@ -86,20 +82,20 @@ public class MeteorGuiTheme extends GuiTheme { // Colors - public final Setting accentColor = color("accent", "Main color of the GUI.", new SettingColor(145, 61, 226)); - public final Setting checkboxColor = color("checkbox", "Color of checkbox.", new SettingColor(145, 61, 226)); - public final Setting plusColor = color("plus", "Color of plus button.", new SettingColor(50, 255, 50)); - public final Setting minusColor = color("minus", "Color of minus button.", new SettingColor(255, 50, 50)); - public final Setting favoriteColor = color("favorite", "Color of checked favorite button.", new SettingColor(250, 215, 0)); + public final Setting accentColor = color("accent", new SettingColor(145, 61, 226)); + public final Setting checkboxColor = color("checkbox", new SettingColor(145, 61, 226)); + public final Setting plusColor = color("plus", new SettingColor(50, 255, 50)); + public final Setting minusColor = color("minus", new SettingColor(255, 50, 50)); + public final Setting favoriteColor = color("favorite", new SettingColor(250, 215, 0)); // Text - public final Setting textColor = color(sgTextColors, "text", "Color of text.", new SettingColor(255, 255, 255)); - public final Setting textSecondaryColor = color(sgTextColors, "text-secondary-text", "Color of secondary text.", new SettingColor(150, 150, 150)); - public final Setting textHighlightColor = color(sgTextColors, "text-highlight", "Color of text highlighting.", new SettingColor(45, 125, 245, 100)); - public final Setting titleTextColor = color(sgTextColors, "title-text", "Color of title text.", new SettingColor(255, 255, 255)); - public final Setting loggedInColor = color(sgTextColors, "logged-in-text", "Color of logged in account name.", new SettingColor(45, 225, 45)); - public final Setting placeholderColor = color(sgTextColors, "placeholder", "Color of placeholder text.", new SettingColor(255, 255, 255, 20)); + public final Setting textColor = color(sgTextColors, "text", new SettingColor(255, 255, 255)); + public final Setting textSecondaryColor = color(sgTextColors, "text-secondary-text", new SettingColor(150, 150, 150)); + public final Setting textHighlightColor = color(sgTextColors, "text-highlight", new SettingColor(45, 125, 245, 100)); + public final Setting titleTextColor = color(sgTextColors, "title-text", new SettingColor(255, 255, 255)); + public final Setting loggedInColor = color(sgTextColors, "logged-in-text", new SettingColor(45, 225, 45)); + public final Setting placeholderColor = color(sgTextColors, "placeholder", new SettingColor(255, 255, 255, 20)); // Background @@ -111,7 +107,7 @@ public class MeteorGuiTheme extends GuiTheme { new SettingColor(40, 40, 40, 200) ); - public final Setting moduleBackground = color(sgBackgroundColors, "module-background", "Color of module background when active.", new SettingColor(50, 50, 50)); + public final Setting moduleBackground = color(sgBackgroundColors, "module-background", new SettingColor(50, 50, 50)); // Outline @@ -125,9 +121,9 @@ public class MeteorGuiTheme extends GuiTheme { // Separator - public final Setting separatorText = color(sgSeparator, "separator-text", "Color of separator text", new SettingColor(255, 255, 255)); - public final Setting separatorCenter = color(sgSeparator, "separator-center", "Center color of separators.", new SettingColor(255, 255, 255)); - public final Setting separatorEdges = color(sgSeparator, "separator-edges", "Color of separator edges.", new SettingColor(225, 225, 225, 150)); + public final Setting separatorText = color(sgSeparator, "separator-text", new SettingColor(255, 255, 255)); + public final Setting separatorCenter = color(sgSeparator, "separator-center", new SettingColor(255, 255, 255)); + public final Setting separatorEdges = color(sgSeparator, "separator-edges", new SettingColor(225, 225, 225, 150)); // Scrollbar @@ -149,21 +145,21 @@ public class MeteorGuiTheme extends GuiTheme { new SettingColor(150, 60, 255) ); - public final Setting sliderLeft = color(sgSlider, "slider-left", "Color of slider left part.", new SettingColor(100,35,170)); - public final Setting sliderRight = color(sgSlider, "slider-right", "Color of slider right part.", new SettingColor(50, 50, 50)); + public final Setting sliderLeft = color(sgSlider, "slider-left", new SettingColor(100,35,170)); + public final Setting sliderRight = color(sgSlider, "slider-right", new SettingColor(50, 50, 50)); // Starscript - private final Setting starscriptText = color(sgStarscript, "starscript-text", "Color of text in Starscript code.", new SettingColor(169, 183, 198)); - private final Setting starscriptBraces = color(sgStarscript, "starscript-braces", "Color of braces in Starscript code.", new SettingColor(150, 150, 150)); - private final Setting starscriptParenthesis = color(sgStarscript, "starscript-parenthesis", "Color of parenthesis in Starscript code.", new SettingColor(169, 183, 198)); - private final Setting starscriptDots = color(sgStarscript, "starscript-dots", "Color of dots in starscript code.", new SettingColor(169, 183, 198)); - private final Setting starscriptCommas = color(sgStarscript, "starscript-commas", "Color of commas in starscript code.", new SettingColor(169, 183, 198)); - private final Setting starscriptOperators = color(sgStarscript, "starscript-operators", "Color of operators in Starscript code.", new SettingColor(169, 183, 198)); - private final Setting starscriptStrings = color(sgStarscript, "starscript-strings", "Color of strings in Starscript code.", new SettingColor(106, 135, 89)); - private final Setting starscriptNumbers = color(sgStarscript, "starscript-numbers", "Color of numbers in Starscript code.", new SettingColor(104, 141, 187)); - private final Setting starscriptKeywords = color(sgStarscript, "starscript-keywords", "Color of keywords in Starscript code.", new SettingColor(204, 120, 50)); - private final Setting starscriptAccessedObjects = color(sgStarscript, "starscript-accessed-objects", "Color of accessed objects (before a dot) in Starscript code.", new SettingColor(152, 118, 170)); + private final Setting starscriptText = color(sgStarscript, "starscript-text", new SettingColor(169, 183, 198)); + private final Setting starscriptBraces = color(sgStarscript, "starscript-braces", new SettingColor(150, 150, 150)); + private final Setting starscriptParenthesis = color(sgStarscript, "starscript-parenthesis", new SettingColor(169, 183, 198)); + private final Setting starscriptDots = color(sgStarscript, "starscript-dots", new SettingColor(169, 183, 198)); + private final Setting starscriptCommas = color(sgStarscript, "starscript-commas", new SettingColor(169, 183, 198)); + private final Setting starscriptOperators = color(sgStarscript, "starscript-operators", new SettingColor(169, 183, 198)); + private final Setting starscriptStrings = color(sgStarscript, "starscript-strings", new SettingColor(106, 135, 89)); + private final Setting starscriptNumbers = color(sgStarscript, "starscript-numbers", new SettingColor(104, 141, 187)); + private final Setting starscriptKeywords = color(sgStarscript, "starscript-keywords", new SettingColor(204, 120, 50)); + private final Setting starscriptAccessedObjects = color(sgStarscript, "starscript-accessed-objects", new SettingColor(152, 118, 170)); public MeteorGuiTheme() { super("Meteor"); @@ -171,15 +167,14 @@ public MeteorGuiTheme() { settingsFactory = new DefaultSettingsWidgetFactory(this); } - private Setting color(SettingGroup group, String name, String description, SettingColor color) { + private Setting color(SettingGroup group, String name, SettingColor color) { return group.add(new ColorSetting.Builder() .name(name + "-color") - .description(description) .defaultValue(color) .build()); } - private Setting color(String name, String description, SettingColor color) { - return color(sgColors, name, description, color); + private Setting color(String name, SettingColor color) { + return color(sgColors, name, color); } // Widgets @@ -391,9 +386,9 @@ public class ThreeStateColorSetting { private final Setting normal, hovered, pressed; public ThreeStateColorSetting(SettingGroup group, String name, SettingColor c1, SettingColor c2, SettingColor c3) { - normal = color(group, name, "Color of " + name + ".", c1); - hovered = color(group, "hovered-" + name, "Color of " + name + " when hovered.", c2); - pressed = color(group, "pressed-" + name, "Color of " + name + " when pressed.", c3); + normal = color(group, name, c1); + hovered = color(group, "hovered-" + name, c2); + pressed = color(group, "pressed-" + name, c3); } public SettingColor get() { diff --git a/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/widgets/WMeteorModule.java b/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/widgets/WMeteorModule.java index 7cd5bd1481..bb0778bf63 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/widgets/WMeteorModule.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/themes/meteor/widgets/WMeteorModule.java @@ -30,7 +30,7 @@ public class WMeteorModule extends WPressable implements MeteorWidget { public WMeteorModule(Module module, String title) { this.module = module; this.title = title; - this.tooltip = module.description; + this.tooltip = module.getDescription(); if (module.isActive()) { animationProgress1 = 1; diff --git a/src/main/java/meteordevelopment/meteorclient/gui/widgets/WWidget.java b/src/main/java/meteordevelopment/meteorclient/gui/widgets/WWidget.java index 873f9b01ef..6415836684 100644 --- a/src/main/java/meteordevelopment/meteorclient/gui/widgets/WWidget.java +++ b/src/main/java/meteordevelopment/meteorclient/gui/widgets/WWidget.java @@ -25,8 +25,8 @@ public abstract class WWidget implements BaseWidget { public String tooltip; public boolean mouseOver; + public boolean instantTooltips; public boolean focused; - protected boolean instantTooltips; protected double mouseOverTimer; public void init() {} diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/AbstractSignEditScreenMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/AbstractSignEditScreenMixin.java deleted file mode 100644 index 68cb072b41..0000000000 --- a/src/main/java/meteordevelopment/meteorclient/mixin/AbstractSignEditScreenMixin.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client). - * Copyright (c) Meteor Development. - */ - -package meteordevelopment.meteorclient.mixin; - -import com.llamalad7.mixinextras.injector.ModifyExpressionValue; -import net.minecraft.client.gui.screen.ingame.AbstractSignEditScreen; -import net.minecraft.text.*; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; -import org.spongepowered.asm.mixin.injection.At; - -import java.util.stream.Stream; - -@Mixin(AbstractSignEditScreen.class) -public abstract class AbstractSignEditScreenMixin { - @ModifyExpressionValue(method = "(Lnet/minecraft/block/entity/SignBlockEntity;ZZLnet/minecraft/text/Text;)V", at = @At(value = "INVOKE", target = "Ljava/util/stream/IntStream;mapToObj(Ljava/util/function/IntFunction;)Ljava/util/stream/Stream;")) - private Stream modifyTranslatableText(Stream original) { - return original.map(this::modifyText); - } - - // based on https://github.com/JustAlittleWolf/ModDetectionPreventer - @Unique - private Text modifyText(Text message) { - MutableText modified = MutableText.of(message.getContent()); - - if (message.getContent() instanceof KeybindTextContent content) { - String key = content.getKey(); - - if (key.contains("meteor-client")) modified = MutableText.of(new PlainTextContent.Literal(key)); - } - if (message.getContent() instanceof TranslatableTextContent content) { - String key = content.getKey(); - - if (key.contains("meteor-client")) modified = MutableText.of(new PlainTextContent.Literal(key)); - } - - modified.setStyle(message.getStyle()); - for (Text sibling : message.getSiblings()) { - modified.append(modifyText(sibling)); - } - - return modified; - } -} diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/ControlListWidgetMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/ControlListWidgetMixin.java new file mode 100644 index 0000000000..40bcc25ae7 --- /dev/null +++ b/src/main/java/meteordevelopment/meteorclient/mixin/ControlListWidgetMixin.java @@ -0,0 +1,24 @@ +/* + * This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client). + * Copyright (c) Meteor Development. + */ + +package meteordevelopment.meteorclient.mixin; + +import com.llamalad7.mixinextras.injector.ModifyExpressionValue; +import com.llamalad7.mixinextras.sugar.Local; +import meteordevelopment.meteorclient.MeteorClient; +import net.minecraft.client.gui.screen.option.ControlsListWidget; +import net.minecraft.client.option.KeyBinding; +import net.minecraft.text.MutableText; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; + +@Mixin(ControlsListWidget.class) +public class ControlListWidgetMixin { + @ModifyExpressionValue(method = "", at = @At(value = "INVOKE", target = "Lnet/minecraft/text/Text;translatable(Ljava/lang/String;)Lnet/minecraft/text/MutableText;")) + private MutableText modifyText(MutableText original, @Local KeyBinding binding) { + if (binding.getId().startsWith("meteor.key.")) return MeteorClient.translatable(binding.getId()); + return original; + } +} diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/DownloaderMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/DownloaderMixin.java index 85362f4815..1da0f0eb09 100644 --- a/src/main/java/meteordevelopment/meteorclient/mixin/DownloaderMixin.java +++ b/src/main/java/meteordevelopment/meteorclient/mixin/DownloaderMixin.java @@ -7,8 +7,8 @@ import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import com.llamalad7.mixinextras.sugar.Local; -import meteordevelopment.meteorclient.MeteorClient; import net.minecraft.util.Downloader; +import net.minecraft.util.Uuids; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -36,10 +36,7 @@ public class DownloaderMixin { @ModifyExpressionValue(method = "method_55485", at = @At(value = "INVOKE", target = "Ljava/nio/file/Path;resolve(Ljava/lang/String;)Ljava/nio/file/Path;")) private Path hookResolve(Path original, @Local(argsOnly = true) UUID id) { UUID accountId = mc.getSession().getUuidOrNull(); - if (accountId == null) { - MeteorClient.LOG.warn("Failed to change resource pack download directory because the account id is null."); - return original; - } + if (accountId == null) accountId = Uuids.getOfflinePlayerUuid(mc.getSession().getUsername()); return directory.resolve(accountId.toString()).resolve(id.toString()); } diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/KeyBindingCategoryMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/KeyBindingCategoryMixin.java new file mode 100644 index 0000000000..fcb1709e42 --- /dev/null +++ b/src/main/java/meteordevelopment/meteorclient/mixin/KeyBindingCategoryMixin.java @@ -0,0 +1,29 @@ +/* + * This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client). + * Copyright (c) Meteor Development. + */ + +package meteordevelopment.meteorclient.mixin; + +import com.llamalad7.mixinextras.injector.ModifyReturnValue; +import meteordevelopment.meteorclient.MeteorClient; +import net.minecraft.client.option.KeyBinding; +import net.minecraft.text.Text; +import net.minecraft.util.Identifier; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; + +@Mixin(KeyBinding.Category.class) +public class KeyBindingCategoryMixin { + @Shadow + @Final + private Identifier id; + + @ModifyReturnValue(method = "getLabel", at = @At("RETURN")) + private Text modifyLabel(Text original) { + if (id.getNamespace().equals(MeteorClient.MOD_ID)) return MeteorClient.translatable(id.getPath()); + return original; + } +} diff --git a/src/main/java/meteordevelopment/meteorclient/mixin/LanguageManagerMixin.java b/src/main/java/meteordevelopment/meteorclient/mixin/LanguageManagerMixin.java new file mode 100644 index 0000000000..4a1868909c --- /dev/null +++ b/src/main/java/meteordevelopment/meteorclient/mixin/LanguageManagerMixin.java @@ -0,0 +1,22 @@ +/* + * This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client). + * Copyright (c) Meteor Development. + */ + +package meteordevelopment.meteorclient.mixin; + +import meteordevelopment.meteorclient.utils.misc.MeteorTranslations; +import net.minecraft.client.resource.language.LanguageManager; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(LanguageManager.class) +public class LanguageManagerMixin { + @Inject(method = "setLanguage", at = @At("TAIL")) + private void onSetLanguage(String languageCode, CallbackInfo ci) { + MeteorTranslations.loadLanguage(languageCode); + MeteorTranslations.clearUnusedLanguages(languageCode); + } +} diff --git a/src/main/java/meteordevelopment/meteorclient/pathing/BaritoneSettings.java b/src/main/java/meteordevelopment/meteorclient/pathing/BaritoneSettings.java index 8294edaa12..32a74a7dbb 100644 --- a/src/main/java/meteordevelopment/meteorclient/pathing/BaritoneSettings.java +++ b/src/main/java/meteordevelopment/meteorclient/pathing/BaritoneSettings.java @@ -13,13 +13,16 @@ import net.minecraft.item.Item; import java.awt.*; -import java.lang.reflect.*; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; import java.util.HashMap; import java.util.List; import java.util.Map; public class BaritoneSettings implements IPathManager.ISettings { - private final Settings settings = new Settings(); + private final Settings settings = new Settings("baritone"); private Setting walkOnWater, walkOnLava; private Setting step, noFall; @@ -68,14 +71,14 @@ public void save() { @SuppressWarnings({"rawtypes", "unchecked"}) private void createWrappers() { - SettingGroup sgBool = settings.createGroup("Checkboxes"); - SettingGroup sgDouble = settings.createGroup("Numbers"); - SettingGroup sgInt = settings.createGroup("Whole Numbers"); - SettingGroup sgString = settings.createGroup("Strings"); - SettingGroup sgColor = settings.createGroup("Colors"); - - SettingGroup sgBlockLists = settings.createGroup("Block Lists"); - SettingGroup sgItemLists = settings.createGroup("Item Lists"); + SettingGroup sgBool = settings.createGroup("checkboxes"); + SettingGroup sgDouble = settings.createGroup("numbers"); + SettingGroup sgInt = settings.createGroup("whole-numbers"); + SettingGroup sgString = settings.createGroup("strings"); + SettingGroup sgColor = settings.createGroup("colors"); + + SettingGroup sgBlockLists = settings.createGroup("block-lists"); + SettingGroup sgItemLists = settings.createGroup("item-lists"); try { Class klass = BaritoneAPI.getSettings().getClass(); diff --git a/src/main/java/meteordevelopment/meteorclient/renderer/text/CustomTextRenderer.java b/src/main/java/meteordevelopment/meteorclient/renderer/text/CustomTextRenderer.java index c31faabc6e..f1242672a1 100644 --- a/src/main/java/meteordevelopment/meteorclient/renderer/text/CustomTextRenderer.java +++ b/src/main/java/meteordevelopment/meteorclient/renderer/text/CustomTextRenderer.java @@ -8,6 +8,7 @@ import meteordevelopment.meteorclient.renderer.MeshBuilder; import meteordevelopment.meteorclient.renderer.MeshRenderer; import meteordevelopment.meteorclient.renderer.MeteorRenderPipelines; +import meteordevelopment.meteorclient.renderer.Texture; import meteordevelopment.meteorclient.utils.Utils; import meteordevelopment.meteorclient.utils.render.color.Color; import net.minecraft.client.MinecraftClient; @@ -38,7 +39,7 @@ public CustomTextRenderer(FontFace fontFace) { fonts = new Font[5]; for (int i = 0; i < fonts.length; i++) { - fonts[i] = new Font(buffer, (int) Math.round(27 * ((i * 0.5) + 1))); + fonts[i] = new Font(fontFace, buffer, (int) Math.round(27 * ((i * 0.5) + 1))); } } @@ -125,11 +126,13 @@ public void end() { if (!scaleOnly) { mesh.end(); + Texture fontAtlas = font.getTexture(); + MeshRenderer.begin() .attachments(MinecraftClient.getInstance().getFramebuffer()) .pipeline(MeteorRenderPipelines.UI_TEXT) .mesh(mesh) - .sampler("u_Texture", font.texture.getGlTextureView(), font.texture.getSampler()) + .sampler("u_Texture", fontAtlas.getGlTextureView(), fontAtlas.getSampler()) .end(); } @@ -139,7 +142,7 @@ public void end() { public void destroy() { for (Font font : this.fonts) { - font.texture.close(); + font.close(); } } } diff --git a/src/main/java/meteordevelopment/meteorclient/renderer/text/Font.java b/src/main/java/meteordevelopment/meteorclient/renderer/text/Font.java index 7886610014..a15906244c 100644 --- a/src/main/java/meteordevelopment/meteorclient/renderer/text/Font.java +++ b/src/main/java/meteordevelopment/meteorclient/renderer/text/Font.java @@ -5,109 +5,186 @@ package meteordevelopment.meteorclient.renderer.text; +import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.textures.FilterMode; import com.mojang.blaze3d.textures.TextureFormat; -import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; +import it.unimi.dsi.fastutil.ints.*; import meteordevelopment.meteorclient.renderer.MeshBuilder; import meteordevelopment.meteorclient.renderer.Texture; +import meteordevelopment.meteorclient.utils.Utils; import meteordevelopment.meteorclient.utils.render.color.Color; +import net.minecraft.client.texture.NativeImage; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.lwjgl.BufferUtils; import org.lwjgl.stb.*; import org.lwjgl.system.MemoryStack; +import org.lwjgl.system.MemoryUtil; +import java.lang.ref.WeakReference; import java.nio.ByteBuffer; import java.nio.IntBuffer; public class Font { - public final Texture texture; + private static final int size = 2048; + private final Texture texture; + private final FontFace fontFace; private final int height; private final float scale; private final float ascent; private final Int2ObjectOpenHashMap charMap = new Int2ObjectOpenHashMap<>(); - private static final int size = 2048; - - public Font(ByteBuffer buffer, int height) { + private final STBTTPackContext packContext; + private final NativeImage fontAtlas; + private @Nullable ByteBuffer fileBuffer; + private WeakReference fileBufferRef; + + public Font(FontFace fontFace, @NotNull ByteBuffer buffer, int height) { + this.fontFace = fontFace; + this.fileBuffer = buffer; + this.fileBufferRef = new WeakReference<>(buffer); this.height = height; - // Initialize font + // allocate data STBTTFontinfo fontInfo = STBTTFontinfo.create(); STBTruetype.stbtt_InitFont(fontInfo, buffer); - // Allocate buffers - ByteBuffer bitmap = BufferUtils.createByteBuffer(size * size); - STBTTPackedchar.Buffer[] cdata = { - STBTTPackedchar.create(95), // Basic Latin - STBTTPackedchar.create(96), // Latin 1 Supplement - STBTTPackedchar.create(128), // Latin Extended-A - STBTTPackedchar.create(144), // Greek and Coptic - STBTTPackedchar.create(256), // Cyrillic - STBTTPackedchar.create(1) // infinity symbol - }; - - // create and initialise packing context - STBTTPackContext packContext = STBTTPackContext.create(); - STBTruetype.stbtt_PackBegin(packContext, bitmap, size, size, 0 ,1); - - // create the pack range, populate with the specific packing ranges - STBTTPackRange.Buffer packRange = STBTTPackRange.create(cdata.length); - packRange.put(STBTTPackRange.create().set(height, 32, null, 95, cdata[0], (byte) 2, (byte) 2)); - packRange.put(STBTTPackRange.create().set(height, 160, null, 96, cdata[1], (byte) 2, (byte) 2)); - packRange.put(STBTTPackRange.create().set(height, 256, null, 128, cdata[2], (byte) 2, (byte) 2)); - packRange.put(STBTTPackRange.create().set(height, 880, null, 144, cdata[3], (byte) 2, (byte) 2)); - packRange.put(STBTTPackRange.create().set(height, 1024, null, 256, cdata[4], (byte) 2, (byte) 2)); - packRange.put(STBTTPackRange.create().set(height, 8734, null, 1, cdata[5], (byte) 2, (byte) 2)); // lol - packRange.flip(); - - // write and finish - STBTruetype.stbtt_PackFontRanges(packContext, buffer, 0, packRange); - STBTruetype.stbtt_PackEnd(packContext); - - // Create texture object and get font scale texture = new Texture(size, size, TextureFormat.RED8, FilterMode.LINEAR, FilterMode.LINEAR); - texture.upload(bitmap); scale = STBTruetype.stbtt_ScaleForPixelHeight(fontInfo, height); + // initialize font info & zero out texture + fontAtlas = new NativeImage(NativeImage.Format.LUMINANCE, size, size, false); + + packContext = STBTTPackContext.create(); + STBTruetype.nstbtt_PackBegin(packContext.address(), fontAtlas.imageId(), size, size, 0, 1, MemoryUtil.NULL); + // Get font vertical ascent try (MemoryStack stack = MemoryStack.stackPush()) { IntBuffer ascent = stack.mallocInt(1); STBTruetype.stbtt_GetFontVMetrics(fontInfo, ascent, null, null); this.ascent = ascent.get(0); } + } + + public Font(FontFace fontFace, int height) { + this(fontFace, readFont(fontFace), height); + } - for (int i = 0; i < cdata.length; i++) { - STBTTPackedchar.Buffer cbuf = cdata[i]; - int offset = packRange.get(i).first_unicode_codepoint_in_range(); - - for (int j = 0; j < cbuf.capacity(); j++) { - STBTTPackedchar packedChar = cbuf.get(j); - - float ipw = 1f / size; // pixel width and height - float iph = 1f / size; - - charMap.put(j + offset, new CharData( - packedChar.xoff(), - packedChar.yoff(), - packedChar.xoff2(), - packedChar.yoff2(), - packedChar.x0() * ipw, - packedChar.y0() * iph, - packedChar.x1() * ipw, - packedChar.y1() * iph, - packedChar.xadvance() - )); + private void upload() { + RenderSystem.getDevice().createCommandEncoder().writeToTexture(this.texture.getGlTexture(), this.fontAtlas); + } + + private ByteBuffer getFileBuffer() { + if (this.fileBuffer == null) { + if (this.fileBufferRef.get() == null) { + ByteBuffer buffer = readFont(this.fontFace); + this.fileBufferRef = new WeakReference<>(buffer); + return this.fileBuffer = buffer; + } else { + return this.fileBuffer = this.fileBufferRef.get(); } + } else { + return this.fileBuffer; } } + private static ByteBuffer readFont(FontFace fontFace) { + byte[] data = Utils.readBytes(fontFace.toStream()); + return BufferUtils.createByteBuffer(data.length).put(data).flip(); + } + + // currently unused, but useful in the future hopefully + private void regenerateAtlas() { + ByteBuffer fileBuffer = this.getFileBuffer(); + + // Allocate buffers + int chars = charMap.size(); + + STBTTPackRange.Buffer packRange = STBTTPackRange.create(1); + STBTTPackedchar.Buffer packedCharBuffer = STBTTPackedchar.create(chars); + + // create the pack range, populate with the specific packing ranges + IntBuffer charBuffer = BufferUtils.createIntBuffer(chars); + for (int c : charMap.keySet()) charBuffer.put(c); + charMap.clear(); + charBuffer.flip(); + + packRange.put(STBTTPackRange.create().set(height, 0, charBuffer, chars, packedCharBuffer, (byte) 0, (byte) 0)); + packRange.flip(); + + // create and initialise packing context + + // pack and upload + STBTruetype.stbtt_PackFontRanges(packContext, fileBuffer, 0, packRange); + + this.upload(); + + // update char data + for (int i = 0; i < chars; i++) { + int codepoint = charBuffer.get(i); + STBTTPackedchar packedChar = packedCharBuffer.get(i); + + float ipw = 1f / size; // pixel width and height + float iph = 1f / size; + + charMap.put(codepoint, new CharData( + packedChar.xoff(), + packedChar.yoff(), + packedChar.xoff2(), + packedChar.yoff2(), + packedChar.x0() * ipw, + packedChar.y0() * iph, + packedChar.x1() * ipw, + packedChar.y1() * iph, + packedChar.xadvance() + )); + } + + // clear + this.fileBuffer = null; + } + + private CharData getCharData(int codepoint) { + return charMap.computeIfAbsent(codepoint, c -> { + ByteBuffer fileBuffer = this.getFileBuffer(); + + // allocate buffers + STBTTPackRange.Buffer packRange = STBTTPackRange.create(1); + STBTTPackedchar.Buffer packedCharBuffer = STBTTPackedchar.create(1); + + packRange.put(STBTTPackRange.create().set(height, codepoint, null, 1, packedCharBuffer, (byte) 0, (byte) 0)); + packRange.flip(); + + // pack and upload + STBTruetype.stbtt_PackFontRanges(packContext, fileBuffer, 0, packRange); + + // update char data + STBTTPackedchar packedChar = packedCharBuffer.get(0); + + float ipw = 1f / size; // pixel width and height + float iph = 1f / size; + + return new CharData( + packedChar.xoff(), + packedChar.yoff(), + packedChar.xoff2(), + packedChar.yoff2(), + packedChar.x0() * ipw, + packedChar.y0() * iph, + packedChar.x1() * ipw, + packedChar.y1() * iph, + packedChar.xadvance() + ); + }); + } + public double getWidth(String string, int length) { double width = 0; - for (int i = 0; i < length; i++) { - int cp = string.charAt(i); - CharData c = charMap.get(cp); - if (c == null) c = charMap.get(32); - - width += c.xAdvance; + for (int i = 0; i < length;) { + int cp = string.codePointAt(i); + CharData c = this.getCharData(cp); + width += c.xAdvance(); + i += Character.charCount(cp); } return width; @@ -123,23 +200,38 @@ public double render(MeshBuilder mesh, String string, double x, double y, Color int length = string.length(); mesh.ensureCapacity(length * 4, length * 6); - for (int i = 0; i < length; i++) { - int cp = string.charAt(i); - CharData c = charMap.get(cp); - if (c == null) c = charMap.get(32); - + for (int i = 0; i < length;) { + int cp = string.codePointAt(i); + CharData c = this.getCharData(cp); mesh.quad( - mesh.vec2(x + c.x0 * scale, y + c.y0 * scale).vec2(c.u0, c.v0).color(color).next(), - mesh.vec2(x + c.x0 * scale, y + c.y1 * scale).vec2(c.u0, c.v1).color(color).next(), - mesh.vec2(x + c.x1 * scale, y + c.y1 * scale).vec2(c.u1, c.v1).color(color).next(), - mesh.vec2(x + c.x1 * scale, y + c.y0 * scale).vec2(c.u1, c.v0).color(color).next() + mesh.vec2(x + c.x0() * scale, y + c.y0() * scale).vec2(c.u0(), c.v0()).color(color).next(), + mesh.vec2(x + c.x0() * scale, y + c.y1() * scale).vec2(c.u0(), c.v1()).color(color).next(), + mesh.vec2(x + c.x1() * scale, y + c.y1() * scale).vec2(c.u1(), c.v1()).color(color).next(), + mesh.vec2(x + c.x1() * scale, y + c.y0() * scale).vec2(c.u1(), c.v0()).color(color).next() ); - x += c.xAdvance * scale; + x += c.xAdvance() * scale; + i += Character.charCount(cp); } return x; } + public Texture getTexture() { + // flush updates + if (this.fileBuffer != null) { + this.upload(); + this.fileBuffer = null; + } + + return this.texture; + } + + public void close() { + this.texture.close(); + this.fontAtlas.close(); + STBTruetype.stbtt_PackEnd(this.packContext); + } + private record CharData(float x0, float y0, float x1, float y1, float u0, float v0, float u1, float v1, float xAdvance) {} } diff --git a/src/main/java/meteordevelopment/meteorclient/settings/SettingGroup.java b/src/main/java/meteordevelopment/meteorclient/settings/SettingGroup.java index 49b4d121c9..eeaa1a005e 100644 --- a/src/main/java/meteordevelopment/meteorclient/settings/SettingGroup.java +++ b/src/main/java/meteordevelopment/meteorclient/settings/SettingGroup.java @@ -17,12 +17,14 @@ public class SettingGroup implements ISerializable, Iterable> { public final String name; + public final String translationKey; public boolean sectionExpanded; final List> settings = new ArrayList<>(1); SettingGroup(String name, boolean sectionExpanded) { this.name = name; + this.translationKey = "setting.group." + name; this.sectionExpanded = sectionExpanded; } diff --git a/src/main/java/meteordevelopment/meteorclient/settings/Settings.java b/src/main/java/meteordevelopment/meteorclient/settings/Settings.java index 6e4ca7d2d7..c3a1a8a74b 100644 --- a/src/main/java/meteordevelopment/meteorclient/settings/Settings.java +++ b/src/main/java/meteordevelopment/meteorclient/settings/Settings.java @@ -8,6 +8,7 @@ import meteordevelopment.meteorclient.gui.GuiTheme; import meteordevelopment.meteorclient.gui.widgets.containers.WContainer; import meteordevelopment.meteorclient.systems.modules.Module; +import meteordevelopment.meteorclient.utils.Utils; import meteordevelopment.meteorclient.utils.misc.ISerializable; import meteordevelopment.meteorclient.utils.render.color.RainbowColors; import meteordevelopment.meteorclient.utils.render.color.SettingColor; @@ -15,6 +16,7 @@ import net.minecraft.nbt.NbtElement; import net.minecraft.nbt.NbtList; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.Iterator; @@ -23,6 +25,17 @@ public class Settings implements ISerializable, Iterable { private SettingGroup defaultGroup; public final List groups = new ArrayList<>(1); + /// {@code null} when {@link Settings} is internal, should not be passed to {@link GuiTheme#settings(Settings)} + public final @Nullable String baseTranslationKey; + + public Settings(@NotNull String baseTranslationKey) { + this.baseTranslationKey = baseTranslationKey; + } + + /// @apiNote marks this {@link Settings} as internal, using it in user-facing UIs will throw + public Settings() { + this.baseTranslationKey = null; + } public void onActivated() { for (SettingGroup group : groups) { @@ -64,6 +77,7 @@ public void reset() { } public SettingGroup getGroup(String name) { + name = Utils.titleToName(name); for (SettingGroup sg : this) { if (sg.name.equals(name)) return sg; } @@ -76,7 +90,7 @@ public int sizeGroups() { } public SettingGroup getDefaultGroup() { - if (defaultGroup == null) defaultGroup = createGroup("General"); + if (defaultGroup == null) defaultGroup = createGroup("general"); return defaultGroup; } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/config/Config.java b/src/main/java/meteordevelopment/meteorclient/systems/config/Config.java index f8deb6eff2..d010d5507b 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/config/Config.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/config/Config.java @@ -24,25 +24,23 @@ import static meteordevelopment.meteorclient.MeteorClient.mc; public class Config extends System { - public final Settings settings = new Settings(); + public final Settings settings = new Settings("config"); - private final SettingGroup sgVisual = settings.createGroup("Visual"); - private final SettingGroup sgModules = settings.createGroup("Modules"); - private final SettingGroup sgChat = settings.createGroup("Chat"); - private final SettingGroup sgMisc = settings.createGroup("Misc"); + private final SettingGroup sgVisual = settings.createGroup("visual"); + private final SettingGroup sgModules = settings.createGroup("modules"); + private final SettingGroup sgChat = settings.createGroup("chat"); + private final SettingGroup sgMisc = settings.createGroup("misc"); // Visual public final Setting customFont = sgVisual.add(new BoolSetting.Builder() .name("custom-font") - .description("Use a custom font.") .defaultValue(true) .build() ); public final Setting font = sgVisual.add(new FontFaceSetting.Builder() .name("font") - .description("Custom font to use.") .visible(customFont::get) .onChanged(Fonts::load) .build() @@ -50,7 +48,6 @@ public class Config extends System { public final Setting rainbowSpeed = sgVisual.add(new DoubleSetting.Builder() .name("rainbow-speed") - .description("The global rainbow speed.") .defaultValue(0.5) .range(0, 10) .sliderMax(5) @@ -59,21 +56,18 @@ public class Config extends System { public final Setting titleScreenCredits = sgVisual.add(new BoolSetting.Builder() .name("title-screen-credits") - .description("Show Meteor credits on title screen") .defaultValue(true) .build() ); public final Setting titleScreenSplashes = sgVisual.add(new BoolSetting.Builder() .name("title-screen-splashes") - .description("Show Meteor splash texts on title screen") .defaultValue(true) .build() ); public final Setting customWindowTitle = sgVisual.add(new BoolSetting.Builder() .name("custom-window-title") - .description("Show custom text in the window title.") .defaultValue(false) .onModuleActivated(setting -> mc.updateWindowTitle()) .onChanged(value -> mc.updateWindowTitle()) @@ -82,7 +76,6 @@ public class Config extends System { public final Setting customWindowTitleText = sgVisual.add(new StringSetting.Builder() .name("window-title-text") - .description("The text it displays in the window title.") .visible(customWindowTitle::get) .defaultValue("Minecraft {mc_version} - {meteor.name} {meteor.version}") .onChanged(value -> mc.updateWindowTitle()) @@ -91,14 +84,12 @@ public class Config extends System { public final Setting friendColor = sgVisual.add(new ColorSetting.Builder() .name("friend-color") - .description("The color used to show friends.") .defaultValue(new SettingColor(0, 255, 180)) .build() ); public final Setting syncListSettingWidths = sgVisual.add(new BoolSetting.Builder() .name("sync-list-setting-widths") - .description("Prevents the list setting screens from moving around as you add & remove elements.") .defaultValue(false) .build() ); @@ -107,13 +98,11 @@ public class Config extends System { public final Setting> hiddenModules = sgModules.add(new ModuleListSetting.Builder() .name("hidden-modules") - .description("Prevent these modules from being rendered as options in the clickgui.") .build() ); public final Setting moduleSearchCount = sgModules.add(new IntSetting.Builder() .name("module-search-count") - .description("Amount of modules and settings to be shown in the module search bar.") .defaultValue(8) .min(1).sliderMax(12) .build() @@ -121,7 +110,6 @@ public class Config extends System { public final Setting moduleAliases = sgModules.add(new BoolSetting.Builder() .name("search-module-aliases") - .description("Whether or not module aliases will be used in the module search bar.") .defaultValue(true) .build() ); @@ -130,21 +118,18 @@ public class Config extends System { public final Setting prefix = sgChat.add(new StringSetting.Builder() .name("prefix") - .description("Prefix.") .defaultValue(".") .build() ); public final Setting chatFeedback = sgChat.add(new BoolSetting.Builder() .name("chat-feedback") - .description("Sends chat feedback when meteor performs certain actions.") .defaultValue(true) .build() ); public final Setting deleteChatFeedback = sgChat.add(new BoolSetting.Builder() .name("delete-chat-feedback") - .description("Delete previous matching chat feedback to keep chat clear.") .visible(chatFeedback::get) .defaultValue(true) .build() @@ -154,14 +139,12 @@ public class Config extends System { public final Setting rotationHoldTicks = sgMisc.add(new IntSetting.Builder() .name("rotation-hold") - .description("Hold long to hold server side rotation when not sending any packets.") .defaultValue(4) .build() ); public final Setting useTeamColor = sgMisc.add(new BoolSetting.Builder() .name("use-team-color") - .description("Uses player's team color for rendering things like esp and tracers.") .defaultValue(true) .build() ); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/Hud.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/Hud.java index b5fa527675..4bd31ddce9 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/Hud.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/Hud.java @@ -31,20 +31,19 @@ public class Hud extends System implements Iterable { public static final HudGroup GROUP = new HudGroup("Meteor"); public boolean active; - public Settings settings = new Settings(); + public Settings settings = new Settings("hud"); public final Map> infos = new TreeMap<>(); private final List elements = new ArrayList<>(); private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgEditor = settings.createGroup("Editor"); - private final SettingGroup sgKeybind = settings.createGroup("Bind"); + private final SettingGroup sgEditor = settings.createGroup("editor"); + private final SettingGroup sgKeybind = settings.createGroup("bind"); // General private final Setting customFont = sgGeneral.add(new BoolSetting.Builder() .name("custom-font") - .description("Text will use custom font.") .defaultValue(true) .onChanged(aBoolean -> { for (HudElement element : elements) element.onFontChanged(); @@ -54,14 +53,12 @@ public class Hud extends System implements Iterable { private final Setting hideInMenus = sgGeneral.add(new BoolSetting.Builder() .name("hide-in-menus") - .description("Hides the meteor hud when in inventory screens or game menus.") .defaultValue(false) .build() ); private final Setting textScale = sgGeneral.add(new DoubleSetting.Builder() .name("text-scale") - .description("Scale of text if not overridden by the element.") .defaultValue(1) .min(0.5) .sliderRange(0.5, 3) @@ -70,7 +67,6 @@ public class Hud extends System implements Iterable { public final Setting> textColors = sgGeneral.add(new ColorListSetting.Builder() .name("text-colors") - .description("Colors used for the Text element.") .defaultValue(List.of(new SettingColor(), new SettingColor(175, 175, 175), new SettingColor(25, 225, 25), new SettingColor(225, 25, 25))) .build() ); @@ -79,7 +75,6 @@ public class Hud extends System implements Iterable { public final Setting border = sgEditor.add(new IntSetting.Builder() .name("border") - .description("Space around the edges of the screen.") .defaultValue(4) .sliderMax(20) .build() @@ -87,7 +82,6 @@ public class Hud extends System implements Iterable { public final Setting snappingRange = sgEditor.add(new IntSetting.Builder() .name("snapping-range") - .description("Snapping range in editor.") .defaultValue(10) .sliderMax(20) .build() diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/HudElement.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/HudElement.java index 1868e9c1d2..75ecb138da 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/HudElement.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/HudElement.java @@ -18,7 +18,7 @@ public abstract class HudElement implements Snapper.Element, ISerializable info; private boolean active; - public final Settings settings = new Settings(); + public final Settings settings; public final HudBox box = new HudBox(this); public boolean autoAnchors = true; @@ -26,6 +26,7 @@ public abstract class HudElement implements Snapper.Element, ISerializable info) { this.info = info; + this.settings = new Settings("hud." + info.name); this.active = true; } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/HudRenderer.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/HudRenderer.java index 3316565d67..5ee5cb0a77 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/HudRenderer.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/HudRenderer.java @@ -27,9 +27,7 @@ import net.minecraft.util.Identifier; import org.joml.Quaternionf; import org.joml.Vector3f; -import org.lwjgl.BufferUtils; -import java.nio.ByteBuffer; import java.time.Duration; import java.util.ArrayList; import java.util.Iterator; @@ -85,11 +83,13 @@ public void end() { FontHolder fontHolder = it.next(); if (fontHolder.visited) { + Texture fontAtlas = fontHolder.font.getTexture(); + MeshRenderer.begin() .attachments(mc.getFramebuffer()) .pipeline(MeteorRenderPipelines.UI_TEXT) .mesh(fontHolder.getMesh()) - .sampler("u_Texture", fontHolder.font.texture.getGlTextureView(), fontHolder.font.texture.getSampler()) + .sampler("u_Texture", fontAtlas.getGlTextureView(), fontAtlas.getSampler()) .end(); } else { @@ -298,10 +298,7 @@ private void onCustomFontChanged(CustomFontChangedEvent event) { } private static FontHolder loadFont(int height) { - byte[] data = Utils.readBytes(Fonts.RENDERER.fontFace.toStream()); - ByteBuffer buffer = BufferUtils.createByteBuffer(data.length).put(data).flip(); - - return new FontHolder(new Font(buffer, height)); + return new FontHolder(new Font(Fonts.RENDERER.fontFace, height)); } private static class FontHolder { @@ -321,7 +318,7 @@ public MeshBuilder getMesh() { } public void destroy() { - font.texture.close(); + font.close(); } } } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/ActiveModulesHud.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/ActiveModulesHud.java index 10e21972bc..51966605bc 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/ActiveModulesHud.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/ActiveModulesHud.java @@ -21,54 +21,47 @@ public class ActiveModulesHud extends HudElement { private static final Color WHITE = new Color(); private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgColor = settings.createGroup("Color"); - private final SettingGroup sgScale = settings.createGroup("Scale"); - private final SettingGroup sgBackground = settings.createGroup("Background"); + private final SettingGroup sgColor = settings.createGroup("colors"); + private final SettingGroup sgScale = settings.createGroup("scale"); + private final SettingGroup sgBackground = settings.createGroup("background"); private final Setting sort = sgGeneral.add(new EnumSetting.Builder() .name("sort") - .description("How to sort active modules.") .defaultValue(Sort.Biggest) .build() ); private final Setting> hiddenModules = sgGeneral.add(new ModuleListSetting.Builder() .name("hidden-modules") - .description("Which modules not to show in the list.") .build() ); private final Setting activeInfo = sgGeneral.add(new BoolSetting.Builder() .name("module-info") - .description("Shows info from the module next to the name in the active modules list.") .defaultValue(true) .build() ); private final Setting showKeybind = sgGeneral.add(new BoolSetting.Builder() .name("show-keybind") - .description("Shows the module's keybind next to its name.") .defaultValue(false) .build() ); private final Setting shadow = sgGeneral.add(new BoolSetting.Builder() .name("shadow") - .description("Renders shadow behind text.") .defaultValue(true) .build() ); private final Setting outlines = sgGeneral.add(new BoolSetting.Builder() .name("outlines") - .description("Whether or not to render outlines") .defaultValue(false) .build() ); private final Setting outlineWidth = sgGeneral.add(new IntSetting.Builder() .name("outline-width") - .description("Outline width") .defaultValue(2) .min(1) .sliderMin(1) @@ -78,7 +71,6 @@ public class ActiveModulesHud extends HudElement { private final Setting alignment = sgGeneral.add(new EnumSetting.Builder() .name("alignment") - .description("Horizontal alignment.") .defaultValue(Alignment.Auto) .build() ); @@ -87,14 +79,12 @@ public class ActiveModulesHud extends HudElement { private final Setting colorMode = sgColor.add(new EnumSetting.Builder() .name("color-mode") - .description("What color to use for active modules.") .defaultValue(ColorMode.Rainbow) .build() ); private final Setting flatColor = sgColor.add(new ColorSetting.Builder() .name("flat-color") - .description("Color for flat color mode.") .defaultValue(new SettingColor(225, 25, 25)) .visible(() -> colorMode.get() == ColorMode.Flat) .build() @@ -102,7 +92,6 @@ public class ActiveModulesHud extends HudElement { private final Setting rainbowSpeed = sgColor.add(new DoubleSetting.Builder() .name("rainbow-speed") - .description("Rainbow speed of rainbow color mode.") .defaultValue(0.05) .sliderMin(0.01) .sliderMax(0.2) @@ -113,7 +102,6 @@ public class ActiveModulesHud extends HudElement { private final Setting rainbowSpread = sgColor.add(new DoubleSetting.Builder() .name("rainbow-spread") - .description("Rainbow spread of rainbow color mode.") .defaultValue(0.01) .sliderMin(0.001) .sliderMax(0.05) @@ -140,7 +128,6 @@ public class ActiveModulesHud extends HudElement { private final Setting moduleInfoColor = sgColor.add(new ColorSetting.Builder() .name("module-info-color") - .description("Color of module info text.") .defaultValue(new SettingColor(175, 175, 175)) .visible(activeInfo::get) .build() @@ -150,14 +137,12 @@ public class ActiveModulesHud extends HudElement { private final Setting customScale = sgScale.add(new BoolSetting.Builder() .name("custom-scale") - .description("Applies a custom scale to this hud element.") .defaultValue(false) .build() ); private final Setting scale = sgScale.add(new DoubleSetting.Builder() .name("scale") - .description("Custom scale.") .visible(customScale::get) .defaultValue(1) .min(0.5) @@ -169,14 +154,12 @@ public class ActiveModulesHud extends HudElement { private final Setting background = sgBackground.add(new BoolSetting.Builder() .name("background") - .description("Displays background.") .defaultValue(false) .build() ); private final Setting backgroundColor = sgBackground.add(new ColorSetting.Builder() .name("background-color") - .description("Color used for the background.") .visible(background::get) .defaultValue(new SettingColor(25, 25, 25, 50)) .build() @@ -213,7 +196,7 @@ public void tick(HudRenderer renderer) { } modules.sort((e1, e2) -> switch (sort.get()) { - case Alphabetical -> e1.title.compareTo(e2.title); + case Alphabetical -> e1.getTitle().compareTo(e2.getTitle()); case Biggest -> Double.compare(getModuleWidth(renderer, e2), getModuleWidth(renderer, e1)); case Smallest -> Double.compare(getModuleWidth(renderer, e1), getModuleWidth(renderer, e2)); }); @@ -275,10 +258,10 @@ private void renderModule(HudRenderer renderer, int index, double x, double y) { } } - renderer.text(module.title, x, y, color, shadow.get(), getScale()); + renderer.text(module.getTitle(), x, y, color, shadow.get(), getScale()); double textHeight = renderer.textHeight(shadow.get(), getScale()); - double textLength = renderer.textWidth(module.title, shadow.get(), getScale()); + double textLength = renderer.textWidth(module.getTitle(), shadow.get(), getScale()); if (showKeybind.get() && module.keybind.isSet()) { String keybindStr = " [" + module.keybind + "]"; @@ -341,7 +324,7 @@ private void renderModule(HudRenderer renderer, int index, double x, double y) { } private double getModuleWidth(HudRenderer renderer, Module module) { - double width = renderer.textWidth(module.title, shadow.get(), getScale()); + double width = renderer.textWidth(module.getTitle(), shadow.get(), getScale()); if (showKeybind.get() && module.keybind.isSet()) { width += renderer.textWidth(" [" + module.keybind + "]", shadow.get(), getScale()); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/ArmorHud.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/ArmorHud.java index a3bd7f6f01..9af850cb75 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/ArmorHud.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/ArmorHud.java @@ -22,15 +22,14 @@ public class ArmorHud extends HudElement { public static final HudElementInfo INFO = new HudElementInfo<>(Hud.GROUP, "armor", "Displays your armor.", ArmorHud::new); private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgDurability = settings.createGroup("Durability"); - private final SettingGroup sgScale = settings.createGroup("Scale"); - private final SettingGroup sgBackground = settings.createGroup("Background"); + private final SettingGroup sgDurability = settings.createGroup("durability"); + private final SettingGroup sgScale = settings.createGroup("scale"); + private final SettingGroup sgBackground = settings.createGroup("background"); // General private final Setting orientation = sgGeneral.add(new EnumSetting.Builder() .name("orientation") - .description("How to display armor.") .defaultValue(Orientation.Horizontal) .onChanged(val -> calculateSize()) .build() @@ -38,14 +37,12 @@ public class ArmorHud extends HudElement { private final Setting flipOrder = sgGeneral.add(new BoolSetting.Builder() .name("flip-order") - .description("Flips the order of armor items.") .defaultValue(true) .build() ); private final Setting showEmpty = sgGeneral.add(new BoolSetting.Builder() .name("show-empty") - .description("Renders barrier icons for empty slots.") .defaultValue(false) .build() ); @@ -54,7 +51,6 @@ public class ArmorHud extends HudElement { private final Setting durability = sgDurability.add(new EnumSetting.Builder() .name("durability") - .description("How to display armor durability.") .defaultValue(Durability.Bar) .onChanged(durability1 -> calculateSize()) .build() @@ -62,7 +58,6 @@ public class ArmorHud extends HudElement { private final Setting durabilityColor = sgDurability.add(new ColorSetting.Builder() .name("durability-color") - .description("Color of the text.") .visible(() -> durability.get() == Durability.Total || durability.get() == Durability.Percentage) .defaultValue(new SettingColor()) .build() @@ -70,7 +65,6 @@ public class ArmorHud extends HudElement { private final Setting durabilityShadow = sgDurability.add(new BoolSetting.Builder() .name("durability-shadow") - .description("Text shadow.") .visible(() -> durability.get() == Durability.Total || durability.get() == Durability.Percentage) .defaultValue(true) .build() @@ -80,7 +74,6 @@ public class ArmorHud extends HudElement { private final Setting customScale = sgScale.add(new BoolSetting.Builder() .name("custom-scale") - .description("Applies a custom scale to this hud element.") .defaultValue(false) .onChanged(aBoolean -> calculateSize()) .build() @@ -88,7 +81,6 @@ public class ArmorHud extends HudElement { private final Setting scale = sgScale.add(new DoubleSetting.Builder() .name("scale") - .description("Custom scale.") .visible(customScale::get) .defaultValue(2) .onChanged(aDouble -> calculateSize()) @@ -101,14 +93,12 @@ public class ArmorHud extends HudElement { private final Setting background = sgBackground.add(new BoolSetting.Builder() .name("background") - .description("Displays background.") .defaultValue(false) .build() ); private final Setting backgroundColor = sgBackground.add(new ColorSetting.Builder() .name("background-color") - .description("Color used for the background.") .visible(background::get) .defaultValue(new SettingColor(25, 25, 25, 50)) .build() diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/CombatHud.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/CombatHud.java index 2e2ffd1a42..a6be7adb89 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/CombatHud.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/CombatHud.java @@ -55,16 +55,15 @@ public class CombatHud extends HudElement { public static final HudElementInfo INFO = new HudElementInfo<>(Hud.GROUP, "combat", "Displays information about your combat target.", CombatHud::new); private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgEnchantments = settings.createGroup("Enchantments"); - private final SettingGroup sgHealth = settings.createGroup("Health"); - private final SettingGroup sgDistance = settings.createGroup("Distance"); - private final SettingGroup sgPing = settings.createGroup("Ping"); - private final SettingGroup sgScale = settings.createGroup("Scale"); - private final SettingGroup sgBackground = settings.createGroup("Background"); + private final SettingGroup sgEnchantments = settings.createGroup("enchantments"); + private final SettingGroup sgHealth = settings.createGroup("health"); + private final SettingGroup sgDistance = settings.createGroup("distance"); + private final SettingGroup sgPing = settings.createGroup("ping"); + private final SettingGroup sgScale = settings.createGroup("scale"); + private final SettingGroup sgBackground = settings.createGroup("background"); private final Setting range = sgGeneral.add(new DoubleSetting.Builder() .name("range") - .description("The range to target players.") .defaultValue(100) .min(1) .sliderMax(200) @@ -75,21 +74,18 @@ public class CombatHud extends HudElement { private final Setting healthColor1 = sgHealth.add(new ColorSetting.Builder() .name("health-stage-1") - .description("The color on the left of the health gradient.") .defaultValue(new SettingColor(255, 15, 15)) .build() ); private final Setting healthColor2 = sgHealth.add(new ColorSetting.Builder() .name("health-stage-2") - .description("The color in the middle of the health gradient.") .defaultValue(new SettingColor(255, 150, 15)) .build() ); private final Setting healthColor3 = sgHealth.add(new ColorSetting.Builder() .name("health-stage-3") - .description("The color on the right of the health gradient.") .defaultValue(new SettingColor(15, 255, 15)) .build() ); @@ -98,14 +94,12 @@ public class CombatHud extends HudElement { private final Setting>> displayedEnchantments = sgEnchantments.add(new EnchantmentListSetting.Builder() .name("displayed-enchantments") - .description("The enchantments that are shown on nametags.") .vanillaDefaults() .build() ); private final Setting enchantmentTextColor = sgEnchantments.add(new ColorSetting.Builder() .name("enchantment-color") - .description("Color of enchantment text.") .defaultValue(new SettingColor(255, 255, 255)) .build() ); @@ -114,14 +108,12 @@ public class CombatHud extends HudElement { private final Setting displayPing = sgPing.add(new BoolSetting.Builder() .name("ping") - .description("Shows the player's ping.") .defaultValue(true) .build() ); private final Setting pingColor1 = sgPing.add(new ColorSetting.Builder() .name("ping-stage-1") - .description("Color of ping text when under 75.") .defaultValue(new SettingColor(15, 255, 15)) .visible(displayPing::get) .build() @@ -129,7 +121,6 @@ public class CombatHud extends HudElement { private final Setting pingColor2 = sgPing.add(new ColorSetting.Builder() .name("ping-stage-2") - .description("Color of ping text when between 75 and 200.") .defaultValue(new SettingColor(255, 150, 15)) .visible(displayPing::get) .build() @@ -137,7 +128,6 @@ public class CombatHud extends HudElement { private final Setting pingColor3 = sgPing.add(new ColorSetting.Builder() .name("ping-stage-3") - .description("Color of ping text when over 200.") .defaultValue(new SettingColor(255, 15, 15)) .visible(displayPing::get) .build() @@ -147,14 +137,12 @@ public class CombatHud extends HudElement { private final Setting displayDistance = sgDistance.add(new BoolSetting.Builder() .name("distance") - .description("Shows the distance between you and the player.") .defaultValue(true) .build() ); private final Setting distColor1 = sgDistance.add(new ColorSetting.Builder() .name("distance-stage-1") - .description("The color when a player is within 10 blocks of you.") .defaultValue(new SettingColor(255, 15, 15)) .visible(displayDistance::get) .build() @@ -162,7 +150,6 @@ public class CombatHud extends HudElement { private final Setting distColor2 = sgDistance.add(new ColorSetting.Builder() .name("distance-stage-2") - .description("The color when a player is within 50 blocks of you.") .defaultValue(new SettingColor(255, 150, 15)) .visible(displayDistance::get) .build() @@ -170,7 +157,6 @@ public class CombatHud extends HudElement { private final Setting distColor3 = sgDistance.add(new ColorSetting.Builder() .name("distance-stage-3") - .description("The color when a player is greater then 50 blocks away from you.") .defaultValue(new SettingColor(15, 255, 15)) .visible(displayDistance::get) .build() @@ -180,7 +166,6 @@ public class CombatHud extends HudElement { public final Setting customScale = sgScale.add(new BoolSetting.Builder() .name("custom-scale") - .description("Applies a custom scale to this hud element.") .defaultValue(false) .onChanged(aBoolean -> calculateSize()) .build() @@ -188,7 +173,6 @@ public class CombatHud extends HudElement { public final Setting scale = sgScale.add(new DoubleSetting.Builder() .name("scale") - .description("Custom scale.") .visible(customScale::get) .defaultValue(2) .onChanged(aDouble -> calculateSize()) @@ -201,14 +185,12 @@ public class CombatHud extends HudElement { public final Setting background = sgBackground.add(new BoolSetting.Builder() .name("background") - .description("Displays background.") .defaultValue(false) .build() ); public final Setting backgroundColor = sgBackground.add(new ColorSetting.Builder() .name("background-color") - .description("Color used for the background.") .visible(background::get) .defaultValue(new SettingColor(25, 25, 25, 50)) .build() diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/CompassHud.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/CompassHud.java index fcd83dbdea..aa8f4c4552 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/CompassHud.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/CompassHud.java @@ -19,35 +19,31 @@ public class CompassHud extends HudElement { public static final HudElementInfo INFO = new HudElementInfo<>(Hud.GROUP, "compass", "Displays a compass.", CompassHud::new); private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgScale = settings.createGroup("Scale"); - private final SettingGroup sgBackground = settings.createGroup("Background"); + private final SettingGroup sgScale = settings.createGroup("scale"); + private final SettingGroup sgBackground = settings.createGroup("background"); // General private final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("type") - .description("Which type of direction information to show.") .defaultValue(Mode.Axis) .build() ); private final Setting colorNorth = sgGeneral.add(new ColorSetting.Builder() .name("color-north") - .description("Color of north.") .defaultValue(new SettingColor(225, 45, 45)) .build() ); private final Setting colorOther = sgGeneral.add(new ColorSetting.Builder() - .name("color-north") - .description("Color of other directions.") + .name("color-other") .defaultValue(new SettingColor()) .build() ); private final Setting shadow = sgGeneral.add(new BoolSetting.Builder() .name("shadow") - .description("Text shadow.") .defaultValue(false) .build() ); @@ -56,7 +52,6 @@ public class CompassHud extends HudElement { private final Setting customScale = sgScale.add(new BoolSetting.Builder() .name("custom-scale") - .description("Apply custom scales to this hud element.") .defaultValue(false) .onChanged(aBoolean -> calculateSize()) .build() @@ -64,7 +59,6 @@ public class CompassHud extends HudElement { private final Setting textScale = sgScale.add(new DoubleSetting.Builder() .name("text-scale") - .description("Scale to use for the letters.") .visible(customScale::get) .defaultValue(1) .min(0.5) @@ -74,7 +68,6 @@ public class CompassHud extends HudElement { private final Setting compassScale = sgScale.add(new DoubleSetting.Builder() .name("compass-scale") - .description("Scale of the whole HUD element.") .visible(customScale::get) .defaultValue(1) .min(0.5) @@ -87,14 +80,12 @@ public class CompassHud extends HudElement { private final Setting background = sgBackground.add(new BoolSetting.Builder() .name("background") - .description("Displays background.") .defaultValue(false) .build() ); private final Setting backgroundColor = sgBackground.add(new ColorSetting.Builder() .name("background-color") - .description("Color used for the background.") .visible(background::get) .defaultValue(new SettingColor(25, 25, 25, 50)) .build() diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/HoleHud.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/HoleHud.java index da963f4230..feb87fa74f 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/HoleHud.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/HoleHud.java @@ -26,14 +26,13 @@ public class HoleHud extends HudElement { public static final HudElementInfo INFO = new HudElementInfo<>(Hud.GROUP, "hole", "Displays information about the hole you are standing in.", HoleHud::new); private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgScale = settings.createGroup("Scale"); - private final SettingGroup sgBackground = settings.createGroup("Background"); + private final SettingGroup sgScale = settings.createGroup("scale"); + private final SettingGroup sgBackground = settings.createGroup("background"); // General public final Setting> safe = sgGeneral.add(new BlockListSetting.Builder() .name("safe-blocks") - .description("Which blocks to consider safe.") .defaultValue(Blocks.OBSIDIAN, Blocks.BEDROCK, Blocks.CRYING_OBSIDIAN, Blocks.NETHERITE_BLOCK) .build() ); @@ -42,7 +41,6 @@ public class HoleHud extends HudElement { public final Setting customScale = sgScale.add(new BoolSetting.Builder() .name("custom-scale") - .description("Applies a custom scale to this hud element.") .defaultValue(false) .onChanged(aBoolean -> calculateSize()) .build() @@ -50,7 +48,6 @@ public class HoleHud extends HudElement { public final Setting scale = sgScale.add(new DoubleSetting.Builder() .name("scale") - .description("Custom scale.") .visible(customScale::get) .defaultValue(2) .onChanged(aDouble -> calculateSize()) @@ -63,14 +60,12 @@ public class HoleHud extends HudElement { public final Setting background = sgBackground.add(new BoolSetting.Builder() .name("background") - .description("Displays background.") .defaultValue(false) .build() ); public final Setting backgroundColor = sgBackground.add(new ColorSetting.Builder() .name("background-color") - .description("Color used for the background.") .visible(background::get) .defaultValue(new SettingColor(25, 25, 25, 50)) .build() diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/InventoryHud.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/InventoryHud.java index 8b30db3f8e..e58aa9ea4b 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/InventoryHud.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/InventoryHud.java @@ -27,12 +27,11 @@ public class InventoryHud extends HudElement { private static final Identifier TEXTURE_TRANSPARENT = MeteorClient.identifier("textures/container-transparent.png"); private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgScale = settings.createGroup("Scale"); - private final SettingGroup sgBackground = settings.createGroup("Background"); + private final SettingGroup sgScale = settings.createGroup("scale"); + private final SettingGroup sgBackground = settings.createGroup("background"); private final Setting containers = sgGeneral.add(new BoolSetting.Builder() .name("containers") - .description("Shows the contents of a container when holding them.") .defaultValue(false) .build() ); @@ -41,7 +40,6 @@ public class InventoryHud extends HudElement { public final Setting customScale = sgScale.add(new BoolSetting.Builder() .name("custom-scale") - .description("Applies a custom scale to this hud element.") .defaultValue(false) .onChanged(aBoolean -> calculateSize()) .build() @@ -49,7 +47,6 @@ public class InventoryHud extends HudElement { public final Setting scale = sgScale.add(new DoubleSetting.Builder() .name("scale") - .description("Custom scale.") .visible(customScale::get) .defaultValue(2) .onChanged(aDouble -> calculateSize()) @@ -62,7 +59,6 @@ public class InventoryHud extends HudElement { private final Setting background = sgBackground.add(new EnumSetting.Builder() .name("background") - .description("Background of inventory viewer.") .defaultValue(Background.Texture) .onChanged(bg -> calculateSize()) .build() @@ -70,7 +66,6 @@ public class InventoryHud extends HudElement { public final Setting backgroundColor = sgBackground.add(new ColorSetting.Builder() .name("background-color") - .description("Color used for the background.") .visible(() -> background.get() == Background.Flat) .defaultValue(new SettingColor(25, 25, 25, 50)) .build() diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/ItemHud.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/ItemHud.java index 975d8da941..efac788ce8 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/ItemHud.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/ItemHud.java @@ -21,21 +21,19 @@ public class ItemHud extends HudElement { public static final HudElementInfo INFO = new HudElementInfo<>(Hud.GROUP, "item", "Displays the item count.", ItemHud::new); private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgScale = settings.createGroup("Scale"); - private final SettingGroup sgBackground = settings.createGroup("Background"); + private final SettingGroup sgScale = settings.createGroup("scale"); + private final SettingGroup sgBackground = settings.createGroup("background"); // General private final Setting item = sgGeneral.add(new ItemSetting.Builder() .name("item") - .description("Item to display") .defaultValue(Items.TOTEM_OF_UNDYING) .build() ); private final Setting noneMode = sgGeneral.add(new EnumSetting.Builder() .name("none-mode") - .description("How to render the item when you don't have the specified item in your inventory.") .defaultValue(NoneMode.HideCount) .build() ); @@ -44,7 +42,6 @@ public class ItemHud extends HudElement { public final Setting customScale = sgScale.add(new BoolSetting.Builder() .name("custom-scale") - .description("Applies a custom scale to this hud element.") .defaultValue(false) .onChanged(aBoolean -> calculateSize()) .build() @@ -52,7 +49,6 @@ public class ItemHud extends HudElement { public final Setting scale = sgScale.add(new DoubleSetting.Builder() .name("scale") - .description("Custom scale.") .visible(customScale::get) .defaultValue(2) .onChanged(aDouble -> calculateSize()) @@ -65,14 +61,12 @@ public class ItemHud extends HudElement { public final Setting background = sgBackground.add(new BoolSetting.Builder() .name("background") - .description("Displays background.") .defaultValue(false) .build() ); public final Setting backgroundColor = sgBackground.add(new ColorSetting.Builder() .name("background-color") - .description("Color used for the background.") .visible(background::get) .defaultValue(new SettingColor(25, 25, 25, 50)) .build() diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/LagNotifierHud.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/LagNotifierHud.java index 6154e8f8d4..24731d10be 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/LagNotifierHud.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/LagNotifierHud.java @@ -18,42 +18,37 @@ public class LagNotifierHud extends HudElement { public static final HudElementInfo INFO = new HudElementInfo<>(Hud.GROUP, "lag-notifier", "Displays if the server is lagging in ticks.", LagNotifierHud::new); private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgScale = settings.createGroup("Scale"); - private final SettingGroup sgBackground = settings.createGroup("Background"); + private final SettingGroup sgScale = settings.createGroup("scale"); + private final SettingGroup sgBackground = settings.createGroup("background"); // General private final Setting shadow = sgGeneral.add(new BoolSetting.Builder() .name("shadow") - .description("Text shadow.") .defaultValue(true) .build() ); private final Setting textColor = sgGeneral.add(new ColorSetting.Builder() .name("text-color") - .description("A.") .defaultValue(new SettingColor()) .build() ); private final Setting color1 = sgGeneral.add(new ColorSetting.Builder() .name("color-1") - .description("First color.") .defaultValue(new SettingColor(255, 255, 5)) .build() ); private final Setting color2 = sgGeneral.add(new ColorSetting.Builder() .name("color-2") - .description("Second color.") .defaultValue(new SettingColor(235, 158, 52)) .build() ); private final Setting color3 = sgGeneral.add(new ColorSetting.Builder() .name("color-3") - .description("Third color.") .defaultValue(new SettingColor(225, 45, 45)) .build() ); @@ -62,14 +57,12 @@ public class LagNotifierHud extends HudElement { private final Setting customScale = sgScale.add(new BoolSetting.Builder() .name("custom-scale") - .description("Applies a custom scale to this hud element.") .defaultValue(false) .build() ); private final Setting scale = sgScale.add(new DoubleSetting.Builder() .name("scale") - .description("Custom scale.") .visible(customScale::get) .defaultValue(1) .min(0.5) @@ -81,14 +74,12 @@ public class LagNotifierHud extends HudElement { private final Setting background = sgBackground.add(new BoolSetting.Builder() .name("background") - .description("Displays background.") .defaultValue(false) .build() ); private final Setting backgroundColor = sgBackground.add(new ColorSetting.Builder() .name("background-color") - .description("Color used for the background.") .visible(background::get) .defaultValue(new SettingColor(25, 25, 25, 50)) .build() diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/MapHud.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/MapHud.java index 8c997a2f6c..26bd7a5313 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/MapHud.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/MapHud.java @@ -30,20 +30,18 @@ public class MapHud extends HudElement { public static final HudElementInfo INFO = new HudElementInfo<>(Hud.GROUP, "map", "Displays the contents of a map on your Hud.", MapHud::new); private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgVisual = settings.createGroup("Visual"); + private final SettingGroup sgVisual = settings.createGroup("visual"); // General private final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("How to determine which map to render.") .defaultValue(Mode.Simple) .build() ); private final Setting slotIndex = sgGeneral.add(new IntSetting.Builder() .name("slot-index") - .description("Which slot to grab the map from.") .visible(() -> mode.get() == Mode.SlotIndex) .defaultValue(0) .sliderRange(0, 40) @@ -52,7 +50,6 @@ public class MapHud extends HudElement { private final Setting mapId = sgGeneral.add(new IntSetting.Builder() .name("map-id") - .description("Which map id to render from. Must be in your inventory!") .visible(() -> mode.get() == Mode.MapId) .defaultValue(0) .noSlider() @@ -63,7 +60,6 @@ public class MapHud extends HudElement { private final Setting scale = sgVisual.add(new DoubleSetting.Builder() .name("scale") - .description("How big to render the map.") .defaultValue(1) .min(0.5) .sliderRange(0.5, 3) @@ -72,14 +68,12 @@ public class MapHud extends HudElement { private final Setting background = sgVisual.add(new BoolSetting.Builder() .name("background") - .description("Displays background.") .defaultValue(false) .build() ); private final Setting backgroundColor = sgVisual.add(new ColorSetting.Builder() .name("background-color") - .description("Color used for the background.") .visible(background::get) .defaultValue(new SettingColor(25, 25, 25, 50)) .build() diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/ModuleInfosHud.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/ModuleInfosHud.java index 61f0c0f8cd..09f4233fba 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/ModuleInfosHud.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/ModuleInfosHud.java @@ -21,49 +21,42 @@ public class ModuleInfosHud extends HudElement { private final Setting> modules = sgGeneral.add(new ModuleListSetting.Builder() .name("modules") - .description("Which modules to display") .defaultValue(KillAura.class, CrystalAura.class, AnchorAura.class, BedAura.class, Surround.class) .build() ); private final Setting additionalInfo = sgGeneral.add(new BoolSetting.Builder() .name("additional-info") - .description("Shows additional info from the module next to the name in the module info list.") .defaultValue(true) .build() ); private final Setting textShadow = sgGeneral.add(new BoolSetting.Builder() .name("text-shadow") - .description("Renders shadow behind text.") .defaultValue(true) .build() ); private final Setting moduleColor = sgGeneral.add(new ColorSetting.Builder() .name("module-color") - .description("Module color.") .defaultValue(new SettingColor()) .build() ); private final Setting onColor = sgGeneral.add(new ColorSetting.Builder() .name("on-color") - .description("Color when module is on.") .defaultValue(new SettingColor(25, 225, 25)) .build() ); private final Setting offColor = sgGeneral.add(new ColorSetting.Builder() .name("off-color") - .description("Color when module is off.") .defaultValue(new SettingColor(225, 25, 25)) .build() ); private final Setting alignment = sgGeneral.add(new EnumSetting.Builder() .name("alignment") - .description("Horizontal alignment.") .defaultValue(Alignment.Auto) .build() ); @@ -87,7 +80,7 @@ public void render(HudRenderer renderer) { int i = 0; for (Module module : modules.get()) { - double moduleWidth = renderer.textWidth(module.title) + renderer.textWidth(" "); + double moduleWidth = renderer.textWidth(module.getTitle()) + renderer.textWidth(" "); String text = null; if (module.isActive()) { @@ -102,7 +95,7 @@ public void render(HudRenderer renderer) { moduleWidth += renderer.textWidth(text); double x = this.x + alignX(moduleWidth, alignment.get()); - x = renderer.text(module.title, x, y, moduleColor.get(), textShadow.get()); + x = renderer.text(module.getTitle(), x, y, moduleColor.get(), textShadow.get()); renderer.text(text, x + renderer.textWidth(" "), y, module.isActive() ? onColor.get() : offColor.get(), textShadow.get()); y += renderer.textHeight() + 2; diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/PlayerModelHud.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/PlayerModelHud.java index 73814d21d9..6fe8a855fd 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/PlayerModelHud.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/PlayerModelHud.java @@ -20,21 +20,19 @@ public class PlayerModelHud extends HudElement { public static final HudElementInfo INFO = new HudElementInfo<>(Hud.GROUP, "player-model", "Displays a model of your player.", PlayerModelHud::new); private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgScale = settings.createGroup("Scale"); - private final SettingGroup sgBackground = settings.createGroup("Background"); + private final SettingGroup sgScale = settings.createGroup("scale"); + private final SettingGroup sgBackground = settings.createGroup("background"); // General private final Setting copyYaw = sgGeneral.add(new BoolSetting.Builder() .name("copy-yaw") - .description("Makes the player model's yaw equal to yours.") .defaultValue(true) .build() ); private final Setting customYaw = sgGeneral.add(new IntSetting.Builder() .name("custom-yaw") - .description("Custom yaw for when copy yaw is off.") .defaultValue(0) .range(-180, 180) .sliderRange(-180, 180) @@ -44,14 +42,12 @@ public class PlayerModelHud extends HudElement { private final Setting copyPitch = sgGeneral.add(new BoolSetting.Builder() .name("copy-pitch") - .description("Makes the player model's pitch equal to yours.") .defaultValue(true) .build() ); private final Setting customPitch = sgGeneral.add(new IntSetting.Builder() .name("custom-pitch") - .description("Custom pitch for when copy pitch is off.") .defaultValue(0) .range(-90, 90) .sliderRange(-90, 90) @@ -61,7 +57,6 @@ public class PlayerModelHud extends HudElement { private final Setting centerOrientation = sgGeneral.add(new EnumSetting.Builder() .name("center-orientation") - .description("Which direction the player faces when the HUD model faces directly forward.") .defaultValue(CenterOrientation.South) .build() ); @@ -70,7 +65,6 @@ public class PlayerModelHud extends HudElement { public final Setting customScale = sgScale.add(new BoolSetting.Builder() .name("custom-scale") - .description("Applies a custom scale to this hud element.") .defaultValue(false) .onChanged(aBoolean -> calculateSize()) .build() @@ -78,7 +72,6 @@ public class PlayerModelHud extends HudElement { public final Setting scale = sgScale.add(new DoubleSetting.Builder() .name("scale") - .description("Custom scale.") .visible(customScale::get) .defaultValue(2) .onChanged(aDouble -> calculateSize()) @@ -91,14 +84,12 @@ public class PlayerModelHud extends HudElement { private final Setting background = sgBackground.add(new BoolSetting.Builder() .name("background") - .description("Displays background.") .defaultValue(false) .build() ); private final Setting backgroundColor = sgBackground.add(new ColorSetting.Builder() .name("background-color") - .description("Color used for the background.") .visible(background::get) .defaultValue(new SettingColor(25, 25, 25, 50)) .build() diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/PlayerRadarHud.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/PlayerRadarHud.java index c2908620f3..b19bcdf37c 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/PlayerRadarHud.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/PlayerRadarHud.java @@ -24,14 +24,13 @@ public class PlayerRadarHud extends HudElement { public static final HudElementInfo INFO = new HudElementInfo<>(Hud.GROUP, "player-radar", "Displays players in your visual range.", PlayerRadarHud::new); private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgScale = settings.createGroup("Scale"); - private final SettingGroup sgBackground = settings.createGroup("Background"); + private final SettingGroup sgScale = settings.createGroup("scale"); + private final SettingGroup sgBackground = settings.createGroup("background"); // General private final Setting limit = sgGeneral.add(new IntSetting.Builder() .name("limit") - .description("The max number of players to show.") .defaultValue(10) .min(1) .sliderRange(1, 20) @@ -40,49 +39,42 @@ public class PlayerRadarHud extends HudElement { private final Setting distance = sgGeneral.add(new BoolSetting.Builder() .name("distance") - .description("Shows the distance to the player next to their name.") .defaultValue(false) .build() ); private final Setting friends = sgGeneral.add(new BoolSetting.Builder() .name("display-friends") - .description("Whether to show friends or not.") .defaultValue(true) .build() ); private final Setting shadow = sgGeneral.add(new BoolSetting.Builder() .name("shadow") - .description("Renders shadow behind text.") .defaultValue(true) .build() ); private final Setting primaryColor = sgGeneral.add(new ColorSetting.Builder() .name("primary-color") - .description("Primary color.") .defaultValue(new SettingColor()) .build() ); private final Setting secondaryColor = sgGeneral.add(new ColorSetting.Builder() .name("secondary-color") - .description("Secondary color.") .defaultValue(new SettingColor(175, 175, 175)) .build() ); private final Setting alignment = sgGeneral.add(new EnumSetting.Builder() .name("alignment") - .description("Horizontal alignment.") .defaultValue(Alignment.Auto) .build() ); private final Setting border = sgGeneral.add(new IntSetting.Builder() .name("border") - .description("How much space to add around the element.") .defaultValue(0) .build() ); @@ -91,14 +83,12 @@ public class PlayerRadarHud extends HudElement { private final Setting customScale = sgScale.add(new BoolSetting.Builder() .name("custom-scale") - .description("Applies a custom scale to this hud element.") .defaultValue(false) .build() ); private final Setting scale = sgScale.add(new DoubleSetting.Builder() .name("scale") - .description("Custom scale.") .visible(customScale::get) .defaultValue(1) .min(0.5) @@ -110,14 +100,12 @@ public class PlayerRadarHud extends HudElement { private final Setting background = sgBackground.add(new BoolSetting.Builder() .name("background") - .description("Displays background.") .defaultValue(false) .build() ); private final Setting backgroundColor = sgBackground.add(new ColorSetting.Builder() .name("background-color") - .description("Color used for the background.") .visible(background::get) .defaultValue(new SettingColor(25, 25, 25, 50)) .build() diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/PotionTimersHud.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/PotionTimersHud.java index 33101ee694..94016aaf07 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/PotionTimersHud.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/PotionTimersHud.java @@ -25,34 +25,30 @@ public class PotionTimersHud extends HudElement { public static final HudElementInfo INFO = new HudElementInfo<>(Hud.GROUP, "potion-timers", "Displays active potion effects with timers.", PotionTimersHud::new); private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgScale = settings.createGroup("Scale"); - private final SettingGroup sgBackground = settings.createGroup("Background"); + private final SettingGroup sgScale = settings.createGroup("scale"); + private final SettingGroup sgBackground = settings.createGroup("background"); // General private final Setting> hiddenEffects = sgGeneral.add(new StatusEffectListSetting.Builder() .name("hidden-effects") - .description("Which effects not to show in the list.") .build() ); private final Setting showAmbient = sgGeneral.add(new BoolSetting.Builder() .name("show-ambient") - .description("Whether to show ambient effects like from beacons and conduits.") .defaultValue(true) .build() ); private final Setting colorMode = sgGeneral.add(new EnumSetting.Builder() .name("color-mode") - .description("What color to use for effects.") .defaultValue(ColorMode.Effect) .build() ); private final Setting flatColor = sgGeneral.add(new ColorSetting.Builder() .name("flat-color") - .description("Color for flat color mode.") .defaultValue(new SettingColor(225, 25, 25)) .visible(() -> colorMode.get() == ColorMode.Flat) .build() @@ -60,7 +56,6 @@ public class PotionTimersHud extends HudElement { private final Setting rainbowSpeed = sgGeneral.add(new DoubleSetting.Builder() .name("rainbow-speed") - .description("Rainbow speed of rainbow color mode.") .defaultValue(0.05) .sliderMin(0.01) .sliderMax(0.2) @@ -71,7 +66,6 @@ public class PotionTimersHud extends HudElement { private final Setting rainbowSpread = sgGeneral.add(new DoubleSetting.Builder() .name("rainbow-spread") - .description("Rainbow spread of rainbow color mode.") .defaultValue(0.01) .sliderMin(0.001) .sliderMax(0.05) @@ -82,7 +76,6 @@ public class PotionTimersHud extends HudElement { private final Setting rainbowSaturation = sgGeneral.add(new DoubleSetting.Builder() .name("rainbow-saturation") - .description("Saturation of rainbow color mode.") .defaultValue(1.0d) .sliderRange(0.0d, 1.0d) .visible(() -> colorMode.get() == ColorMode.Rainbow) @@ -91,7 +84,6 @@ public class PotionTimersHud extends HudElement { private final Setting rainbowBrightness = sgGeneral.add(new DoubleSetting.Builder() .name("rainbow-brightness") - .description("Brightness of rainbow color mode.") .defaultValue(1.0d) .sliderRange(0.0d, 1.0d) .visible(() -> colorMode.get() == ColorMode.Rainbow) @@ -100,21 +92,18 @@ public class PotionTimersHud extends HudElement { private final Setting shadow = sgGeneral.add(new BoolSetting.Builder() .name("shadow") - .description("Renders shadow behind text.") .defaultValue(true) .build() ); private final Setting alignment = sgGeneral.add(new EnumSetting.Builder() .name("alignment") - .description("Horizontal alignment.") .defaultValue(Alignment.Auto) .build() ); private final Setting border = sgGeneral.add(new IntSetting.Builder() .name("border") - .description("How much space to add around the element.") .defaultValue(0) .build() ); @@ -123,14 +112,12 @@ public class PotionTimersHud extends HudElement { private final Setting customScale = sgScale.add(new BoolSetting.Builder() .name("custom-scale") - .description("Applies a custom scale to this hud element.") .defaultValue(false) .build() ); private final Setting scale = sgScale.add(new DoubleSetting.Builder() .name("scale") - .description("Custom scale.") .visible(customScale::get) .defaultValue(1) .min(0.5) @@ -142,14 +129,12 @@ public class PotionTimersHud extends HudElement { private final Setting background = sgBackground.add(new BoolSetting.Builder() .name("background") - .description("Displays background.") .defaultValue(false) .build() ); private final Setting backgroundColor = sgBackground.add(new ColorSetting.Builder() .name("background-color") - .description("Color used for the background.") .visible(background::get) .defaultValue(new SettingColor(25, 25, 25, 50)) .build() diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/TextHud.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/TextHud.java index 659b38742f..97d81b9f98 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/TextHud.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/elements/TextHud.java @@ -27,9 +27,9 @@ public class TextHud extends HudElement { private static final Color WHITE = new Color(); private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgShown = settings.createGroup("Shown"); - private final SettingGroup sgScale = settings.createGroup("Scale"); - private final SettingGroup sgBackground = settings.createGroup("Background"); + private final SettingGroup sgShown = settings.createGroup("shown"); + private final SettingGroup sgScale = settings.createGroup("scale"); + private final SettingGroup sgBackground = settings.createGroup("background"); private double originalWidth, originalHeight; private boolean needsCompile, recalculateSize; @@ -40,7 +40,6 @@ public class TextHud extends HudElement { public final Setting text = sgGeneral.add(new StringSetting.Builder() .name("text") - .description("Text to display with Starscript.") .defaultValue(MeteorClient.NAME) .onChanged(s -> recompile()) .wide() @@ -50,7 +49,6 @@ public class TextHud extends HudElement { public final Setting updateDelay = sgGeneral.add(new IntSetting.Builder() .name("update-delay") - .description("Update delay in ticks") .defaultValue(4) .onChanged(integer -> { if (timer > integer) timer = integer; @@ -61,7 +59,6 @@ public class TextHud extends HudElement { public final Setting shadow = sgGeneral.add(new BoolSetting.Builder() .name("shadow") - .description("Renders shadow behind text.") .defaultValue(true) .onChanged(aBoolean -> recalculateSize = true) .build() @@ -69,7 +66,6 @@ public class TextHud extends HudElement { public final Setting border = sgGeneral.add(new IntSetting.Builder() .name("border") - .description("How much space to add around the text.") .defaultValue(0) .onChanged(integer -> super.setSize(originalWidth + integer * 2, originalHeight + integer * 2)) .build() @@ -79,7 +75,6 @@ public class TextHud extends HudElement { public final Setting shown = sgShown.add(new EnumSetting.Builder() .name("shown") - .description("When this text element is shown.") .defaultValue(Shown.Always) .onChanged(s -> recompile()) .build() @@ -87,7 +82,6 @@ public class TextHud extends HudElement { public final Setting condition = sgShown.add(new StringSetting.Builder() .name("condition") - .description("Condition to check when shown is not Always.") .visible(() -> shown.get() != Shown.Always) .onChanged(s -> recompile()) .renderer(StarscriptTextBoxRenderer.class) @@ -98,7 +92,6 @@ public class TextHud extends HudElement { public final Setting customScale = sgScale.add(new BoolSetting.Builder() .name("custom-scale") - .description("Applies a custom scale to this hud element.") .defaultValue(false) .onChanged(aBoolean -> recalculateSize = true) .build() @@ -106,7 +99,6 @@ public class TextHud extends HudElement { public final Setting scale = sgScale.add(new DoubleSetting.Builder() .name("scale") - .description("Custom scale.") .visible(customScale::get) .defaultValue(1) .onChanged(aDouble -> recalculateSize = true) @@ -119,14 +111,12 @@ public class TextHud extends HudElement { public final Setting background = sgBackground.add(new BoolSetting.Builder() .name("background") - .description("Displays background.") .defaultValue(false) .build() ); public final Setting backgroundColor = sgBackground.add(new ColorSetting.Builder() .name("background-color") - .description("Color used for the background.") .visible(background::get) .defaultValue(new SettingColor(25, 25, 25, 50)) .build() diff --git a/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/HudElementScreen.java b/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/HudElementScreen.java index 387b729678..709e4b70cd 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/HudElementScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/hud/screens/HudElementScreen.java @@ -36,11 +36,10 @@ public HudElementScreen(GuiTheme theme, HudElement element) { this.element = element; - settings = new Settings(); - SettingGroup sg = settings.createGroup("Anchors"); + settings = new Settings("hud.base"); + SettingGroup sg = settings.createGroup("anchors"); sg.add(new BoolSetting.Builder() .name("auto-anchors") - .description("Automatically assigns anchors based on the position.") .defaultValue(true) .onModuleActivated(booleanSetting -> booleanSetting.set(element.autoAnchors)) .onChanged(aBoolean -> { @@ -51,7 +50,6 @@ public HudElementScreen(GuiTheme theme, HudElement element) { ); sg.add(new EnumSetting.Builder() .name("x-anchor") - .description("Horizontal anchor.") .defaultValue(XAnchor.Left) .visible(() -> !element.autoAnchors) .onModuleActivated(xAnchorSetting -> xAnchorSetting.set(element.box.xAnchor)) @@ -60,7 +58,6 @@ public HudElementScreen(GuiTheme theme, HudElement element) { ); sg.add(new EnumSetting.Builder() .name("y-anchor") - .description("Vertical anchor.") .defaultValue(YAnchor.Top) .visible(() -> !element.autoAnchors) .onModuleActivated(yAnchorSetting -> yAnchorSetting.set(element.box.yAnchor)) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/macros/Macro.java b/src/main/java/meteordevelopment/meteorclient/systems/macros/Macro.java index d1e04fca43..29fc08d3a9 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/macros/Macro.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/macros/Macro.java @@ -22,19 +22,17 @@ import static meteordevelopment.meteorclient.MeteorClient.mc; public class Macro implements ISerializable { - public final Settings settings = new Settings(); + public final Settings settings = new Settings("macro"); private final SettingGroup sgGeneral = settings.getDefaultGroup(); public Setting name = sgGeneral.add(new StringSetting.Builder() .name("name") - .description("The name of the macro.") .build() ); public Setting> messages = sgGeneral.add(new StringListSetting.Builder() .name("messages") - .description("The messages for the macro to send.") .onChanged(v -> dirty = true) .renderer(StarscriptTextBoxRenderer.class) .build() @@ -42,7 +40,6 @@ public class Macro implements ISerializable { public Setting keybind = sgGeneral.add(new KeybindSetting.Builder() .name("keybind") - .description("The bind to run the macro.") .build() ); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/Categories.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/Categories.java index 5ff0101feb..6ef58af416 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/Categories.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/Categories.java @@ -10,12 +10,12 @@ import net.minecraft.item.Items; public class Categories { - public static final Category Combat = new Category("Combat", Items.GOLDEN_SWORD.getDefaultStack()); - public static final Category Player = new Category("Player", Items.ARMOR_STAND.getDefaultStack()); - public static final Category Movement = new Category("Movement", Items.DIAMOND_BOOTS.getDefaultStack()); - public static final Category Render = new Category("Render", Items.GLASS.getDefaultStack()); - public static final Category World = new Category("World", Items.GRASS_BLOCK.getDefaultStack()); - public static final Category Misc = new Category("Misc", Items.LAVA_BUCKET.getDefaultStack()); + public static final Category Combat = new Category("combat", Items.GOLDEN_SWORD.getDefaultStack()); + public static final Category Player = new Category("player", Items.ARMOR_STAND.getDefaultStack()); + public static final Category Movement = new Category("movement", Items.DIAMOND_BOOTS.getDefaultStack()); + public static final Category Render = new Category("render", Items.GLASS.getDefaultStack()); + public static final Category World = new Category("world", Items.GRASS_BLOCK.getDefaultStack()); + public static final Category Misc = new Category("misc", Items.LAVA_BUCKET.getDefaultStack()); public static boolean REGISTERING; diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/Category.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/Category.java index 0deefe861c..69688550ab 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/Category.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/Category.java @@ -5,16 +5,19 @@ package meteordevelopment.meteorclient.systems.modules; +import meteordevelopment.meteorclient.utils.misc.MeteorTranslations; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; public class Category { public final String name; + private final String translationKey; public final ItemStack icon; private final int nameHash; public Category(String name, ItemStack icon) { this.name = name; + this.translationKey = "category." + name; this.nameHash = name.hashCode(); this.icon = icon == null ? Items.AIR.getDefaultStack() : icon; } @@ -22,9 +25,13 @@ public Category(String name) { this(name, null); } + public String getName() { + return MeteorTranslations.translate(this.translationKey); + } + @Override public String toString() { - return name; + return this.getName(); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/Module.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/Module.java index 1e7fd08a29..9ac7b74004 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/Module.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/Module.java @@ -15,11 +15,13 @@ import meteordevelopment.meteorclient.utils.Utils; import meteordevelopment.meteorclient.utils.misc.ISerializable; import meteordevelopment.meteorclient.utils.misc.Keybind; +import meteordevelopment.meteorclient.utils.misc.MeteorTranslations; import meteordevelopment.meteorclient.utils.player.ChatUtils; import meteordevelopment.meteorclient.utils.render.color.Color; import net.minecraft.client.MinecraftClient; import net.minecraft.nbt.NbtCompound; import net.minecraft.nbt.NbtElement; +import net.minecraft.text.MutableText; import net.minecraft.text.Text; import net.minecraft.util.Formatting; import org.jetbrains.annotations.NotNull; @@ -31,13 +33,11 @@ public abstract class Module implements ISerializable, Comparable, Comparable modules : groups.values()) { - modules.sort(Comparator.comparing(o -> o.title)); + modules.sort(Comparator.comparing(o -> o.getTitle())); } } @@ -153,20 +153,21 @@ public List> searchTitles(String text) { Map, Integer> modules = new HashMap<>(); for (Module module : this.moduleInstances.values()) { - String title = module.title; + String title = module.getTitle(); int score = Utils.searchLevenshteinDefault(title, text, false); + String display = title; if (Config.get().moduleAliases.get()) { for (String alias : module.aliases) { int aliasScore = Utils.searchLevenshteinDefault(alias, text, false); if (aliasScore < score) { - title = module.title + " (" + alias + ")"; + display = title + " (" + alias + ")"; score = aliasScore; } } } - modules.put(new Pair<>(module, title), score); + modules.put(new Pair<>(module, display), score); } List> l = new ArrayList<>(modules.keySet()); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AnchorAura.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AnchorAura.java index a7e303d03e..4ec0336548 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AnchorAura.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AnchorAura.java @@ -39,16 +39,15 @@ public class AnchorAura extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgPlace = settings.createGroup("Place"); - private final SettingGroup sgBreak = settings.createGroup("Break"); - private final SettingGroup sgPause = settings.createGroup("Pause"); - private final SettingGroup sgRender = settings.createGroup("Render"); + private final SettingGroup sgPlace = settings.createGroup("place"); + private final SettingGroup sgBreak = settings.createGroup("break"); + private final SettingGroup sgPause = settings.createGroup("pause"); + private final SettingGroup sgRender = settings.createGroup("render"); // General private final Setting targetRange = sgGeneral.add(new DoubleSetting.Builder() .name("target-range") - .description("Range in which to target players.") .defaultValue(10) .min(0) .sliderMax(16) @@ -57,14 +56,12 @@ public class AnchorAura extends Module { private final Setting targetPriority = sgGeneral.add(new EnumSetting.Builder() .name("target-priority") - .description("How to select the player to target.") .defaultValue(SortPriority.LowestHealth) .build() ); private final Setting minDamage = sgGeneral.add(new DoubleSetting.Builder() .name("min-damage") - .description("The minimum damage to inflict on your target.") .defaultValue(7) .min(0) .sliderMax(36) @@ -73,7 +70,6 @@ public class AnchorAura extends Module { private final Setting maxSelfDamage = sgGeneral.add(new DoubleSetting.Builder() .name("max-self-damage") - .description("The maximum damage to inflict on yourself.") .defaultValue(7) .min(0) .sliderMax(36) @@ -82,21 +78,18 @@ public class AnchorAura extends Module { private final Setting antiSuicide = sgGeneral.add(new BoolSetting.Builder() .name("anti-suicide") - .description("Will not place and break anchors if they will kill you.") .defaultValue(true) .build() ); private final Setting swapBack = sgGeneral.add(new BoolSetting.Builder() .name("swap-back") - .description("Switches to your previous slot after using anchors.") .defaultValue(true) .build() ); private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() .name("rotate") - .description("Rotates server-side towards the anchors being placed/broken.") .defaultValue(true) .build() ); @@ -105,14 +98,12 @@ public class AnchorAura extends Module { private final Setting place = sgPlace.add(new BoolSetting.Builder() .name("place") - .description("Allows Anchor Aura to place anchors.") .defaultValue(true) .build() ); private final Setting placeDelay = sgPlace.add(new IntSetting.Builder() .name("place-delay") - .description("The tick delay between placing anchors.") .defaultValue(5) .range(0, 10) .visible(place::get) @@ -121,7 +112,6 @@ public class AnchorAura extends Module { private final Setting placeRange = sgPlace.add(new DoubleSetting.Builder() .name("place-range") - .description("The range at which anchors can be placed.") .defaultValue(4) .range(0, 6) .visible(place::get) @@ -130,7 +120,6 @@ public class AnchorAura extends Module { private final Setting placeWallsRange = sgPlace.add(new DoubleSetting.Builder() .name("walls-range") - .description("Range in which to place anchors when behind blocks.") .defaultValue(4) .range(0, 6) .visible(place::get) @@ -139,7 +128,6 @@ public class AnchorAura extends Module { private final Setting airPlace = sgPlace.add(new BoolSetting.Builder() .name("air-place") - .description("Allows Anchor Aura to place anchors in the air.") .defaultValue(true) .visible(place::get) .build() @@ -149,7 +137,6 @@ public class AnchorAura extends Module { private final Setting chargeDelay = sgBreak.add(new IntSetting.Builder() .name("charge-delay") - .description("The tick delay it takes to charge anchors.") .defaultValue(1) .range(0, 10) .build() @@ -157,7 +144,6 @@ public class AnchorAura extends Module { private final Setting breakDelay = sgBreak.add(new IntSetting.Builder() .name("break-delay") - .description("The tick delay it takes to break anchors.") .defaultValue(1) .range(0, 10) .build() @@ -165,7 +151,6 @@ public class AnchorAura extends Module { private final Setting breakRange = sgBreak.add(new DoubleSetting.Builder() .name("break-range") - .description("Range in which to break anchors.") .defaultValue(4.5) .min(0) .sliderMax(6) @@ -174,7 +159,6 @@ public class AnchorAura extends Module { private final Setting breakWallsRange = sgBreak.add(new DoubleSetting.Builder() .name("walls-range") - .description("Range in which to break anchors when behind blocks.") .defaultValue(4.5) .min(0) .sliderMax(6) @@ -185,21 +169,18 @@ public class AnchorAura extends Module { private final Setting pauseOnUse = sgPause.add(new BoolSetting.Builder() .name("pause-on-use") - .description("Pauses while using an item.") .defaultValue(true) .build() ); private final Setting pauseOnMine = sgPause.add(new BoolSetting.Builder() .name("pause-on-mine") - .description("Pauses while mining blocks.") .defaultValue(true) .build() ); private final Setting pauseOnCA = sgPause.add(new BoolSetting.Builder() .name("pause-on-CA") - .description("Pauses while Crystal Aura is placing.") .defaultValue(true) .build() ); @@ -208,21 +189,18 @@ public class AnchorAura extends Module { private final Setting swing = sgRender.add(new BoolSetting.Builder() .name("swing") - .description("Whether to swing your hand client-side.") .defaultValue(true) .build() ); private final Setting render = sgRender.add(new BoolSetting.Builder() .name("render") - .description("Renders the block where it is placing an anchor.") .defaultValue(true) .build() ); private final Setting shapeMode = sgRender.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .visible(render::get) .build() @@ -230,7 +208,6 @@ public class AnchorAura extends Module { private final Setting sideColor = sgRender.add(new ColorSetting.Builder() .name("side-color") - .description("The side color for positions to be placed.") .defaultValue(new SettingColor(15, 255, 211, 41)) .visible(() -> render.get() && shapeMode.get().sides()) .build() @@ -238,7 +215,6 @@ public class AnchorAura extends Module { private final Setting lineColor = sgRender.add(new ColorSetting.Builder() .name("line-color") - .description("The line color for positions to be placed.") .defaultValue(new SettingColor(15, 255, 211)) .visible(() -> render.get() && shapeMode.get().lines()) .build() @@ -255,7 +231,7 @@ public class AnchorAura extends Module { private PlayerEntity target; public AnchorAura() { - super(Categories.Combat, "anchor-aura", "Automatically places and breaks Respawn Anchors to harm entities."); + super(Categories.Combat, "anchor-aura"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AntiAnchor.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AntiAnchor.java index 5a9ec05d7c..be4c554583 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AntiAnchor.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AntiAnchor.java @@ -23,20 +23,18 @@ public class AntiAnchor extends Module { private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() .name("rotate") - .description("Makes you rotate when placing.") .defaultValue(true) .build() ); private final Setting swing = sgGeneral.add(new BoolSetting.Builder() .name("swing") - .description("Swings your hand when placing.") .defaultValue(true) .build() ); public AntiAnchor() { - super(Categories.Combat, "anti-anchor", "Automatically prevents Anchor Aura by placing a slab on your head."); + super(Categories.Combat, "anti-anchor"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AntiAnvil.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AntiAnvil.java index 3285309807..7aa19dbd13 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AntiAnvil.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AntiAnvil.java @@ -23,20 +23,18 @@ public class AntiAnvil extends Module { private final Setting swing = sgGeneral.add(new BoolSetting.Builder() .name("swing") - .description("Swings your hand client-side when placing.") .defaultValue(true) .build() ); private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() .name("rotate") - .description("Makes you rotate when placing.") .defaultValue(true) .build() ); public AntiAnvil() { - super(Categories.Combat, "anti-anvil", "Automatically prevents Auto Anvil by placing between you and the anvil."); + super(Categories.Combat, "anti-anvil"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AntiBed.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AntiBed.java index 34eac3026f..e713e38a5e 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AntiBed.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AntiBed.java @@ -29,28 +29,24 @@ public class AntiBed extends Module { private final Setting placeStringTop = sgGeneral.add(new BoolSetting.Builder() .name("place-string-top") - .description("Places string above you.") .defaultValue(false) .build() ); private final Setting placeStringMiddle = sgGeneral.add(new BoolSetting.Builder() .name("place-string-middle") - .description("Places string in your upper hitbox.") .defaultValue(true) .build() ); private final Setting placeStringBottom = sgGeneral.add(new BoolSetting.Builder() .name("place-string-bottom") - .description("Places string at your feet.") .defaultValue(false) .build() ); private final Setting onlyInHole = sgGeneral.add(new BoolSetting.Builder() .name("only-in-hole") - .description("Only functions when you are standing in a hole.") .defaultValue(true) .build() ); @@ -58,7 +54,7 @@ public class AntiBed extends Module { private boolean breaking; public AntiBed() { - super(Categories.Combat, "anti-bed", "Places string to prevent beds being placed on you."); + super(Categories.Combat, "anti-bed"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/ArrowDodge.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/ArrowDodge.java index 322d0fa837..0ce5907097 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/ArrowDodge.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/ArrowDodge.java @@ -28,18 +28,16 @@ public class ArrowDodge extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgMovement = settings.createGroup("Movement"); + private final SettingGroup sgMovement = settings.createGroup("movement"); private final Setting moveType = sgMovement.add(new EnumSetting.Builder() .name("move-type") - .description("The way you are moved by this module.") .defaultValue(MoveType.Velocity) .build() ); private final Setting moveSpeed = sgMovement.add(new DoubleSetting.Builder() .name("move-speed") - .description("How fast should you be when dodging arrow.") .defaultValue(1) .min(0.01) .sliderRange(0.01, 5) @@ -48,7 +46,6 @@ public class ArrowDodge extends Module { private final Setting distanceCheck = sgMovement.add(new DoubleSetting.Builder() .name("distance-check") - .description("How far should an arrow be from the player to be considered not hitting.") .defaultValue(1) .min(0.01) .sliderRange(0.01, 5) @@ -57,28 +54,24 @@ public class ArrowDodge extends Module { private final Setting groundCheck = sgGeneral.add(new BoolSetting.Builder() .name("ground-check") - .description("Tries to prevent you from falling to your death.") .defaultValue(true) .build() ); private final Setting allProjectiles = sgGeneral.add(new BoolSetting.Builder() .name("all-projectiles") - .description("Dodge all projectiles, not only arrows.") .defaultValue(false) .build() ); private final Setting ignoreOwn = sgGeneral.add(new BoolSetting.Builder() .name("ignore-own") - .description("Ignore your own projectiles.") .defaultValue(true) .build() ); public final Setting simulationSteps = sgGeneral.add(new IntSetting.Builder() .name("simulation-steps") - .description("How many steps to simulate projectiles. Zero for no limit.") .defaultValue(500) .sliderMax(5000) .build() @@ -100,7 +93,7 @@ public class ArrowDodge extends Module { private final List points = new ArrayList<>(); public ArrowDodge() { - super(Categories.Combat, "arrow-dodge", "Tries to dodge arrows coming at you."); + super(Categories.Combat, "arrow-dodge"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AttributeSwap.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AttributeSwap.java index 2b8aab6fc0..b5a0c763e0 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AttributeSwap.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AttributeSwap.java @@ -30,22 +30,20 @@ public class AttributeSwap extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgSwappingOptions = settings.createGroup("Swapping Options"); - private final SettingGroup sgSwordEnchants = settings.createGroup("Sword Enchants"); - private final SettingGroup sgMaceEnchants = settings.createGroup("Mace Enchants"); - private final SettingGroup sgOtherEnchants = settings.createGroup("Other Enchants"); - private final SettingGroup sgWeapon = settings.createGroup("Weapon Options"); + private final SettingGroup sgSwappingOptions = settings.createGroup("swapping-options"); + private final SettingGroup sgSwordEnchants = settings.createGroup("sword-enchants"); + private final SettingGroup sgMaceEnchants = settings.createGroup("mace-enchants"); + private final SettingGroup sgOtherEnchants = settings.createGroup("other-enchants"); + private final SettingGroup sgWeapon = settings.createGroup("weapon-options"); private final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("The mode to use.") .defaultValue(Mode.Simple) .build() ); private final Setting targetSlot = sgGeneral.add(new IntSetting.Builder() .name("target-slot") - .description("Hotbar slot to swap to (1-9).") .defaultValue(1) .min(1) .sliderRange(1, 9) @@ -55,14 +53,12 @@ public class AttributeSwap extends Module { private final Setting swapBack = sgGeneral.add(new BoolSetting.Builder() .name("swap-back") - .description("Swap back to the original slot after a delay.") .defaultValue(true) .build() ); private final Setting swapBackDelay = sgGeneral.add(new IntSetting.Builder() .name("swap-back-delay") - .description("Delay in ticks before swapping back.") .defaultValue(2) .min(0) .max(100) @@ -73,7 +69,6 @@ public class AttributeSwap extends Module { private final Setting smartShieldBreak = sgSwappingOptions.add(new BoolSetting.Builder() .name("shield-breaker") - .description("Automatically swaps to an axe if the target is blocking.") .defaultValue(true) .visible(() -> mode.get() == Mode.Smart) .build() @@ -81,7 +76,6 @@ public class AttributeSwap extends Module { private final Setting smartDurability = sgSwappingOptions.add(new BoolSetting.Builder() .name("durability-saver") - .description("Swaps to a non-damageable item to save durability on the main weapon.") .defaultValue(true) .visible(() -> mode.get() == Mode.Smart) .build() @@ -89,7 +83,6 @@ public class AttributeSwap extends Module { private final Setting swordSwapping = sgSwappingOptions.add(new BoolSetting.Builder() .name("sword-swapping") - .description("Enables smart swapping for sword enchantments.") .defaultValue(true) .visible(() -> mode.get() == Mode.Smart) .build() @@ -97,7 +90,6 @@ public class AttributeSwap extends Module { private final Setting maceSwapping = sgSwappingOptions.add(new BoolSetting.Builder() .name("mace-swapping") - .description("Enables smart swapping for mace enchantments.") .defaultValue(true) .visible(() -> mode.get() == Mode.Smart) .build() @@ -105,7 +97,6 @@ public class AttributeSwap extends Module { private final Setting otherSwapping = sgSwappingOptions.add(new BoolSetting.Builder() .name("other-swapping") - .description("Enables smart swapping for other enchantments like Impaling.") .defaultValue(true) .visible(() -> mode.get() == Mode.Smart) .build() @@ -113,7 +104,6 @@ public class AttributeSwap extends Module { private final Setting enchantFireAspect = sgSwordEnchants.add(new BoolSetting.Builder() .name("fire-aspect") - .description("Swaps to an item with Fire Aspect to set the target on fire, if target isn't already on fire") .defaultValue(true) .visible(() -> mode.get() == Mode.Smart && swordSwapping.get()) .build() @@ -121,7 +111,6 @@ public class AttributeSwap extends Module { private final Setting enchantLooting = sgSwordEnchants.add(new BoolSetting.Builder() .name("looting") - .description("Swaps to an item with Looting for better drops or more experience. Only prefers for mobs (but fire aspect is priority)") .defaultValue(true) .visible(() -> mode.get() == Mode.Smart && swordSwapping.get()) .build() @@ -129,7 +118,6 @@ public class AttributeSwap extends Module { private final Setting enchantSharpness = sgSwordEnchants.add(new BoolSetting.Builder() .name("sharpness") - .description("Swaps to an item with Sharpness for increased damage against all entities.") .defaultValue(true) .visible(() -> mode.get() == Mode.Smart && swordSwapping.get()) .build() @@ -137,7 +125,6 @@ public class AttributeSwap extends Module { private final Setting enchantSmite = sgSwordEnchants.add(new BoolSetting.Builder() .name("smite") - .description("Swaps to an item with Smite for increased damage against undead mobs.") .defaultValue(true) .visible(() -> mode.get() == Mode.Smart && swordSwapping.get()) .build() @@ -145,7 +132,6 @@ public class AttributeSwap extends Module { private final Setting enchantBaneOfArthropods = sgSwordEnchants.add(new BoolSetting.Builder() .name("bane-of-arthropods") - .description("Swaps to an item with Bane of Arthropods for increased damage against arthropods.") .defaultValue(true) .visible(() -> mode.get() == Mode.Smart && swordSwapping.get()) .build() @@ -153,7 +139,6 @@ public class AttributeSwap extends Module { private final Setting enchantSweepingEdge = sgSwordEnchants.add(new BoolSetting.Builder() .name("sweeping-edge") - .description("Swaps to an item with Sweeping Edge for increased sweeping attack damage.") .defaultValue(true) .visible(() -> mode.get() == Mode.Smart && swordSwapping.get()) .build() @@ -161,7 +146,6 @@ public class AttributeSwap extends Module { private final Setting regularMace = sgMaceEnchants.add(new BoolSetting.Builder() .name("regular-mace") - .description("Swaps to a regular Mace when falling if no better option is available.") .defaultValue(true) .visible(() -> mode.get() == Mode.Smart && maceSwapping.get()) .build() @@ -169,7 +153,6 @@ public class AttributeSwap extends Module { private final Setting enchantDensity = sgMaceEnchants.add(new BoolSetting.Builder() .name("density") - .description("Swaps to a Mace with Density to deal increased damage when falling.") .defaultValue(true) .visible(() -> mode.get() == Mode.Smart && maceSwapping.get()) .build() @@ -177,7 +160,6 @@ public class AttributeSwap extends Module { private final Setting enchantBreach = sgMaceEnchants.add(new BoolSetting.Builder() .name("breach") - .description("Swaps to a Mace with Breach to reduce the target's armor effectiveness.") .defaultValue(true) .visible(() -> mode.get() == Mode.Smart && maceSwapping.get()) .build() @@ -185,7 +167,6 @@ public class AttributeSwap extends Module { private final Setting enchantWindBurst = sgMaceEnchants.add(new BoolSetting.Builder() .name("wind-burst") - .description("Swaps to a Mace with Wind Burst to launch up when hitting while falling.") .defaultValue(true) .visible(() -> mode.get() == Mode.Smart && maceSwapping.get()) .build() @@ -193,7 +174,6 @@ public class AttributeSwap extends Module { private final Setting enchantImpaling = sgOtherEnchants.add(new BoolSetting.Builder() .name("impaling") - .description("Swaps to an item with Impaling for increased damage against aquatic mobs.") .defaultValue(true) .visible(() -> mode.get() == Mode.Smart && otherSwapping.get()) .build() @@ -201,14 +181,12 @@ public class AttributeSwap extends Module { private final Setting onlyOnWeapon = sgWeapon.add(new BoolSetting.Builder() .name("only-on-weapon") - .description("Only swaps when holding a selected weapon in hand.") .defaultValue(false) .build() ); private final Setting sword = sgWeapon.add(new BoolSetting.Builder() .name("sword") - .description("Works while holding a sword.") .defaultValue(true) .visible(onlyOnWeapon::get) .build() @@ -216,7 +194,6 @@ public class AttributeSwap extends Module { private final Setting axe = sgWeapon.add(new BoolSetting.Builder() .name("axe") - .description("Works while holding an axe.") .defaultValue(true) .visible(onlyOnWeapon::get) .build() @@ -224,7 +201,6 @@ public class AttributeSwap extends Module { private final Setting pickaxe = sgWeapon.add(new BoolSetting.Builder() .name("pickaxe") - .description("Works while holding a pickaxe.") .defaultValue(true) .visible(onlyOnWeapon::get) .build() @@ -232,7 +208,6 @@ public class AttributeSwap extends Module { private final Setting shovel = sgWeapon.add(new BoolSetting.Builder() .name("shovel") - .description("Works while holding a shovel.") .defaultValue(true) .visible(onlyOnWeapon::get) .build() @@ -240,7 +215,6 @@ public class AttributeSwap extends Module { private final Setting hoe = sgWeapon.add(new BoolSetting.Builder() .name("hoe") - .description("Works while holding a hoe.") .defaultValue(true) .visible(onlyOnWeapon::get) .build() @@ -248,7 +222,6 @@ public class AttributeSwap extends Module { private final Setting mace = sgWeapon.add(new BoolSetting.Builder() .name("mace") - .description("Works while holding a mace.") .defaultValue(true) .visible(onlyOnWeapon::get) .build() @@ -256,7 +229,6 @@ public class AttributeSwap extends Module { private final Setting trident = sgWeapon.add(new BoolSetting.Builder() .name("trident") - .description("Works while holding a trident.") .defaultValue(true) .visible(onlyOnWeapon::get) .build() @@ -266,7 +238,7 @@ public class AttributeSwap extends Module { private boolean awaitingBack; public AttributeSwap() { - super(Categories.Combat, "attribute-swap", "Swaps to a target slot when you attack."); + super(Categories.Combat, "attribute-swap"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoAnvil.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoAnvil.java index 674afe4078..48c14df2fb 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoAnvil.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoAnvil.java @@ -33,7 +33,6 @@ public class AutoAnvil extends Module { private final Setting range = sgGeneral.add(new DoubleSetting.Builder() .name("target-range") - .description("The radius in which players get targeted.") .defaultValue(4) .min(0) .sliderMax(5) @@ -42,14 +41,12 @@ public class AutoAnvil extends Module { private final Setting priority = sgGeneral.add(new EnumSetting.Builder() .name("target-priority") - .description("How to select the player to target.") .defaultValue(SortPriority.LowestHealth) .build() ); private final Setting height = sgGeneral.add(new IntSetting.Builder() .name("height") - .description("The height to place anvils at.") .defaultValue(2) .range(0, 5) .sliderMax(5) @@ -58,7 +55,6 @@ public class AutoAnvil extends Module { private final Setting delay = sgGeneral.add(new IntSetting.Builder() .name("delay") - .description("The delay in between anvil placements.") .defaultValue(10) .min(0) .sliderMax(50) @@ -67,28 +63,24 @@ public class AutoAnvil extends Module { private final Setting placeButton = sgGeneral.add(new BoolSetting.Builder() .name("place-at-feet") - .description("Automatically places a button or pressure plate at the targets feet to break the anvils.") .defaultValue(true) .build() ); private final Setting multiPlace = sgGeneral.add(new BoolSetting.Builder() .name("multi-place") - .description("Places multiple anvils at once.") .defaultValue(true) .build() ); private final Setting toggleOnBreak = sgGeneral.add(new BoolSetting.Builder() .name("toggle-on-break") - .description("Toggles when the target's helmet slot is empty.") .defaultValue(false) .build() ); private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() .name("rotate") - .description("Automatically rotates towards the position anvils/pressure plates/buttons are placed.") .defaultValue(true) .build() ); @@ -97,7 +89,7 @@ public class AutoAnvil extends Module { private int timer; public AutoAnvil() { - super(Categories.Combat, "auto-anvil", "Automatically places anvils above players to destroy helmets."); + super(Categories.Combat, "auto-anvil"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoArmor.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoArmor.java index 476b016a0c..1e3d75ac96 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoArmor.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoArmor.java @@ -37,14 +37,12 @@ public class AutoArmor extends Module { private final Setting preferredProtection = sgGeneral.add(new EnumSetting.Builder() .name("preferred-protection") - .description("Which type of protection to prefer.") .defaultValue(Protection.Protection) .build() ); private final Setting delay = sgGeneral.add(new IntSetting.Builder() .name("swap-delay") - .description("The delay between equipping armor pieces.") .defaultValue(1) .min(0) .sliderMax(5) @@ -53,28 +51,24 @@ public class AutoArmor extends Module { private final Setting>> avoidedEnchantments = sgGeneral.add(new EnchantmentListSetting.Builder() .name("avoided-enchantments") - .description("Enchantments that should be avoided.") .defaultValue(Enchantments.BINDING_CURSE, Enchantments.FROST_WALKER) .build() ); private final Setting blastLeggings = sgGeneral.add(new BoolSetting.Builder() .name("blast-prot-leggings") - .description("Uses blast protection for leggings regardless of preferred protection.") .defaultValue(true) .build() ); private final Setting antiBreak = sgGeneral.add(new BoolSetting.Builder() .name("anti-break") - .description("Takes off armor if it is about to break.") .defaultValue(false) .build() ); private final Setting ignoreElytra = sgGeneral.add(new BoolSetting.Builder() .name("ignore-elytra") - .description("Will not replace your elytra if you have it equipped.") .defaultValue(true) .build() ); @@ -88,7 +82,7 @@ public class AutoArmor extends Module { private int timer; public AutoArmor() { - super(Categories.Combat, "auto-armor", "Automatically equips armor."); + super(Categories.Combat, "auto-armor"); armorPieces[0] = helmet; armorPieces[1] = chestplate; diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoCity.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoCity.java index a7e3629c6f..8a4293619b 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoCity.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoCity.java @@ -31,12 +31,11 @@ public class AutoCity extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgRender = settings.createGroup("Render"); + private final SettingGroup sgRender = settings.createGroup("render"); private final Setting targetRange = sgGeneral.add(new DoubleSetting.Builder() .name("target-range") - .description("The radius in which players get targeted.") .defaultValue(5.5) .min(0) .sliderMax(7) @@ -45,7 +44,6 @@ public class AutoCity extends Module { private final Setting breakRange = sgGeneral.add(new DoubleSetting.Builder() .name("break-range") - .description("How close a block must be to you to be considered.") .defaultValue(4.5) .min(0) .sliderMax(6) @@ -54,21 +52,18 @@ public class AutoCity extends Module { private final Setting switchMode = sgGeneral.add(new EnumSetting.Builder() .name("switch-mode") - .description("How to switch to a pickaxe.") .defaultValue(SwitchMode.Normal) .build() ); private final Setting support = sgGeneral.add(new BoolSetting.Builder() .name("support") - .description("If there is no block below a city block it will place one before mining.") .defaultValue(true) .build() ); private final Setting placeRange = sgGeneral.add(new DoubleSetting.Builder() .name("place-range") - .description("How far away to try and place a block.") .defaultValue(4.5) .min(0) .sliderMax(6) @@ -78,14 +73,12 @@ public class AutoCity extends Module { private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() .name("rotate") - .description("Automatically rotates you towards the city block.") .defaultValue(true) .build() ); private final Setting chatInfo = sgGeneral.add(new BoolSetting.Builder() .name("chat-info") - .description("Whether the module should send messages in chat.") .defaultValue(true) .build() ); @@ -94,21 +87,18 @@ public class AutoCity extends Module { private final Setting swingHand = sgRender.add(new BoolSetting.Builder() .name("swing-hand") - .description("Whether to render your hand swinging.") .defaultValue(false) .build() ); private final Setting renderBlock = sgRender.add(new BoolSetting.Builder() .name("render-block") - .description("Whether to render the block being broken.") .defaultValue(true) .build() ); private final Setting shapeMode = sgRender.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .visible(renderBlock::get) .build() @@ -116,7 +106,6 @@ public class AutoCity extends Module { private final Setting sideColor = sgRender.add(new ColorSetting.Builder() .name("side-color") - .description("The side color of the rendering.") .defaultValue(new SettingColor(225, 0, 0, 75)) .visible(() -> renderBlock.get() && shapeMode.get().sides()) .build() @@ -124,7 +113,6 @@ public class AutoCity extends Module { private final Setting lineColor = sgRender.add(new ColorSetting.Builder() .name("line-color") - .description("The line color of the rendering.") .defaultValue(new SettingColor(225, 0, 0, 255)) .visible(() -> renderBlock.get() && shapeMode.get().lines()) .build() @@ -136,7 +124,7 @@ public class AutoCity extends Module { private float progress; public AutoCity() { - super(Categories.Combat, "auto-city", "Automatically mine blocks next to someone's feet."); + super(Categories.Combat, "auto-city"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoEXP.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoEXP.java index b79065eb46..76cd66ac7b 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoEXP.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoEXP.java @@ -27,28 +27,24 @@ public class AutoEXP extends Module { private final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("Which items to repair.") .defaultValue(Mode.Both) .build() ); private final Setting replenish = sgGeneral.add(new BoolSetting.Builder() .name("replenish") - .description("Automatically replenishes exp into a selected hotbar slot.") .defaultValue(true) .build() ); private final Setting onlyGround = sgGeneral.add(new BoolSetting.Builder() .name("only-on-ground") - .description("Only throw when the player is on the ground.") .defaultValue(false) .build() ); private final Setting slot = sgGeneral.add(new IntSetting.Builder() .name("exp-slot") - .description("The slot to replenish exp into.") .visible(replenish::get) .defaultValue(6) .range(1, 9) @@ -58,7 +54,6 @@ public class AutoEXP extends Module { private final Setting minThreshold = sgGeneral.add(new IntSetting.Builder() .name("min-threshold") - .description("The minimum durability percentage that an item needs to fall to, to be repaired.") .defaultValue(30) .range(1, 100) .sliderRange(1, 100) @@ -67,7 +62,6 @@ public class AutoEXP extends Module { private final Setting maxThreshold = sgGeneral.add(new IntSetting.Builder() .name("max-threshold") - .description("The maximum durability percentage to repair items to.") .defaultValue(80) .range(1, 100) .sliderRange(1, 100) @@ -77,7 +71,7 @@ public class AutoEXP extends Module { private int repairingI; public AutoEXP() { - super(Categories.Combat, "auto-exp", "Automatically repairs your armor and tools in pvp."); + super(Categories.Combat, "auto-exp"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoLog.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoLog.java index a7245f206e..8914571a50 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoLog.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoLog.java @@ -35,11 +35,10 @@ public class AutoLog extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgEntities = settings.createGroup("Entities"); + private final SettingGroup sgEntities = settings.createGroup("entities"); private final Setting health = sgGeneral.add(new IntSetting.Builder() .name("health") - .description("Automatically disconnects when health is lower or equal to this value. Set to 0 to disable.") .defaultValue(6) .range(0, 19) .sliderMax(19) @@ -48,14 +47,12 @@ public class AutoLog extends Module { private final Setting smart = sgGeneral.add(new BoolSetting.Builder() .name("predict-incoming-damage") - .description("Disconnects when it detects you're about to take enough damage to set you under the 'health' setting.") .defaultValue(true) .build() ); private final Setting totemPops = sgGeneral.add(new IntSetting.Builder() .name("totem-pops") - .description("Disconnects when you have popped this many totems. Set to 0 to disable.") .defaultValue(0) .min(0) .build() @@ -63,35 +60,30 @@ public class AutoLog extends Module { private final Setting onlyTrusted = sgGeneral.add(new BoolSetting.Builder() .name("only-trusted") - .description("Disconnects when a player not on your friends list appears in render distance.") .defaultValue(false) .build() ); private final Setting instantDeath = sgGeneral.add(new BoolSetting.Builder() .name("32K") - .description("Disconnects when a player near you can instantly kill you.") .defaultValue(false) .build() ); private final Setting smartToggle = sgGeneral.add(new BoolSetting.Builder() .name("smart-toggle") - .description("Disables Auto Log after a low-health logout. WILL re-enable once you heal.") .defaultValue(false) .build() ); private final Setting toggleOff = sgGeneral.add(new BoolSetting.Builder() .name("toggle-off") - .description("Disables Auto Log after usage.") .defaultValue(true) .build() ); private final Setting toggleAutoReconnect = sgGeneral.add(new BoolSetting.Builder() .name("toggle-auto-reconnect") - .description("Whether to disable Auto Reconnect after a logout.") .defaultValue(true) .build() ); @@ -100,21 +92,18 @@ public class AutoLog extends Module { private final Setting>> entities = sgEntities.add(new EntityTypeListSetting.Builder() .name("entities") - .description("Disconnects when a specified entity is present within a specified range.") .defaultValue(EntityType.END_CRYSTAL) .build() ); private final Setting useTotalCount = sgEntities.add(new BoolSetting.Builder() .name("use-total-count") - .description("Toggle between counting the total number of all selected entities or each entity individually.") .defaultValue(true) .visible(() -> !entities.get().isEmpty()) .build()); private final Setting combinedEntityThreshold = sgEntities.add(new IntSetting.Builder() .name("combined-entity-threshold") - .description("The minimum total number of selected entities that must be near you before disconnection occurs.") .defaultValue(10) .min(1) .sliderMax(32) @@ -124,7 +113,6 @@ public class AutoLog extends Module { private final Setting individualEntityThreshold = sgEntities.add(new IntSetting.Builder() .name("individual-entity-threshold") - .description("The minimum number of entities individually that must be near you before disconnection occurs.") .defaultValue(2) .min(1) .sliderMax(16) @@ -134,7 +122,6 @@ public class AutoLog extends Module { private final Setting range = sgEntities.add(new IntSetting.Builder() .name("range") - .description("How close an entity has to be to you before you disconnect.") .defaultValue(5) .min(1) .sliderMax(16) @@ -148,7 +135,7 @@ public class AutoLog extends Module { private int pops; public AutoLog() { - super(Categories.Combat, "auto-log", "Automatically disconnects you when certain requirements are met."); + super(Categories.Combat, "auto-log"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoTotem.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoTotem.java index 9682a1f166..2df546f202 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoTotem.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoTotem.java @@ -26,14 +26,12 @@ public class AutoTotem extends Module { private final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("Determines when to hold a totem, strict will always hold.") .defaultValue(Mode.Smart) .build() ); private final Setting delay = sgGeneral.add(new IntSetting.Builder() .name("delay") - .description("The ticks between slot movements.") .defaultValue(0) .min(0) .build() @@ -41,7 +39,6 @@ public class AutoTotem extends Module { private final Setting health = sgGeneral.add(new IntSetting.Builder() .name("health") - .description("The health to hold a totem at.") .defaultValue(10) .range(0, 36) .sliderMax(36) @@ -51,7 +48,6 @@ public class AutoTotem extends Module { private final Setting elytra = sgGeneral.add(new BoolSetting.Builder() .name("elytra") - .description("Will always hold a totem when flying with elytra.") .defaultValue(true) .visible(() -> mode.get() == Mode.Smart) .build() @@ -59,7 +55,6 @@ public class AutoTotem extends Module { private final Setting fall = sgGeneral.add(new BoolSetting.Builder() .name("fall") - .description("Will hold a totem when fall damage could kill you.") .defaultValue(true) .visible(() -> mode.get() == Mode.Smart) .build() @@ -67,7 +62,6 @@ public class AutoTotem extends Module { private final Setting explosion = sgGeneral.add(new BoolSetting.Builder() .name("explosion") - .description("Will hold a totem when explosion damage could kill you.") .defaultValue(true) .visible(() -> mode.get() == Mode.Smart) .build() @@ -77,7 +71,7 @@ public class AutoTotem extends Module { private int totems, ticks; public AutoTotem() { - super(Categories.Combat, "auto-totem", "Automatically equips a totem in your offhand."); + super(Categories.Combat, "auto-totem"); } @EventHandler(priority = EventPriority.HIGHEST) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoTrap.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoTrap.java index d22367c277..1a4c69071d 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoTrap.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoTrap.java @@ -39,20 +39,18 @@ public class AutoTrap extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgRender = settings.createGroup("Render"); + private final SettingGroup sgRender = settings.createGroup("render"); // General private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() .name("whitelist") - .description("Which blocks to use.") .defaultValue(Blocks.OBSIDIAN, Blocks.CRYING_OBSIDIAN) .build() ); private final Setting placeRange = sgGeneral.add(new DoubleSetting.Builder() .name("place-range") - .description("The range at which blocks can be placed.") .defaultValue(4) .min(0) .sliderMax(6) @@ -61,7 +59,6 @@ public class AutoTrap extends Module { private final Setting placeWallsRange = sgGeneral.add(new DoubleSetting.Builder() .name("walls-range") - .description("Range in which to place when behind blocks.") .defaultValue(4) .min(0) .sliderMax(6) @@ -70,14 +67,12 @@ public class AutoTrap extends Module { private final Setting priority = sgGeneral.add(new EnumSetting.Builder() .name("target-priority") - .description("How to select the player to target.") .defaultValue(SortPriority.LowestHealth) .build() ); private final Setting targetRange = sgGeneral.add(new DoubleSetting.Builder() .name("target-range") - .description("The maximum distance to target players.") .defaultValue(3) .min(0) .sliderMax(10) @@ -86,14 +81,12 @@ public class AutoTrap extends Module { private final Setting delay = sgGeneral.add(new IntSetting.Builder() .name("place-delay") - .description("How many ticks between block placements.") .defaultValue(1) .build() ); private final Setting blocksPerTick = sgGeneral.add(new IntSetting.Builder() .name("blocks-per-tick") - .description("How many blocks to place in one tick.") .defaultValue(1) .min(1) .build() @@ -101,28 +94,24 @@ public class AutoTrap extends Module { private final Setting topPlacement = sgGeneral.add(new EnumSetting.Builder() .name("top-blocks") - .description("Which blocks to place on the top half of the target.") .defaultValue(TopMode.Full) .build() ); private final Setting bottomPlacement = sgGeneral.add(new EnumSetting.Builder() .name("bottom-blocks") - .description("Which blocks to place on the bottom half of the target.") .defaultValue(BottomMode.Platform) .build() ); private final Setting selfToggle = sgGeneral.add(new BoolSetting.Builder() .name("self-toggle") - .description("Turns off after placing all blocks.") .defaultValue(true) .build() ); private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() .name("rotate") - .description("Rotates towards blocks when placing.") .defaultValue(true) .build() ); @@ -131,14 +120,12 @@ public class AutoTrap extends Module { private final Setting render = sgRender.add(new BoolSetting.Builder() .name("render") - .description("Renders an overlay where blocks will be placed.") .defaultValue(true) .build() ); private final Setting shapeMode = sgRender.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .visible(render::get) .build() @@ -146,7 +133,6 @@ public class AutoTrap extends Module { private final Setting sideColor = sgRender.add(new ColorSetting.Builder() .name("side-color") - .description("The side color of the target block rendering.") .defaultValue(new SettingColor(197, 137, 232, 10)) .visible(() -> render.get() && shapeMode.get().sides()) .build() @@ -154,7 +140,6 @@ public class AutoTrap extends Module { private final Setting lineColor = sgRender.add(new ColorSetting.Builder() .name("line-color") - .description("The line color of the target block rendering.") .defaultValue(new SettingColor(197, 137, 232)) .visible(() -> render.get() && shapeMode.get().lines()) .build() @@ -162,7 +147,6 @@ public class AutoTrap extends Module { private final Setting nextSideColor = sgRender.add(new ColorSetting.Builder() .name("next-side-color") - .description("The side color of the next block to be placed.") .defaultValue(new SettingColor(227, 196, 245, 10)) .visible(() -> render.get() && shapeMode.get().sides()) .build() @@ -170,7 +154,6 @@ public class AutoTrap extends Module { private final Setting nextLineColor = sgRender.add(new ColorSetting.Builder() .name("next-line-color") - .description("The line color of the next block to be placed.") .defaultValue(new SettingColor(5, 139, 221)) .visible(() -> render.get() && shapeMode.get().lines()) .build() @@ -182,7 +165,7 @@ public class AutoTrap extends Module { private int timer; public AutoTrap() { - super(Categories.Combat, "auto-trap", "Traps people in a box to prevent them from moving."); + super(Categories.Combat, "auto-trap"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoWeapon.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoWeapon.java index 3285e112f1..3ac0399e38 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoWeapon.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoWeapon.java @@ -22,27 +22,24 @@ public class AutoWeapon extends Module { private final Setting weapon = sgGeneral.add(new EnumSetting.Builder() .name("weapon") - .description("What type of weapon to use.") .defaultValue(Weapon.Sword) .build() ); private final Setting threshold = sgGeneral.add(new IntSetting.Builder() .name("threshold") - .description("If the non-preferred weapon produces this much damage this will favor it over your preferred weapon.") .defaultValue(4) .build() ); private final Setting antiBreak = sgGeneral.add(new BoolSetting.Builder() .name("anti-break") - .description("Prevents you from breaking your weapon.") .defaultValue(false) .build() ); public AutoWeapon() { - super(Categories.Combat, "auto-weapon", "Finds the best weapon to use in your hotbar."); + super(Categories.Combat, "auto-weapon"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoWeb.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoWeb.java index 0199240000..735f598989 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoWeb.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/AutoWeb.java @@ -31,11 +31,10 @@ public class AutoWeb extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgRender = settings.createGroup("Render"); + private final SettingGroup sgRender = settings.createGroup("render"); private final Setting placeRange = sgGeneral.add(new DoubleSetting.Builder() .name("place-range") - .description("The range at which webs can be placed.") .defaultValue(4) .min(0) .sliderMax(6) @@ -44,7 +43,6 @@ public class AutoWeb extends Module { private final Setting placeWallsRange = sgGeneral.add(new DoubleSetting.Builder() .name("walls-range") - .description("Range in which to place webs when behind blocks.") .defaultValue(4) .min(0) .sliderMax(6) @@ -53,14 +51,12 @@ public class AutoWeb extends Module { private final Setting priority = sgGeneral.add(new EnumSetting.Builder() .name("target-priority") - .description("How to filter targets within range.") .defaultValue(SortPriority.LowestDistance) .build() ); private final Setting targetRange = sgGeneral.add(new DoubleSetting.Builder() .name("target-range") - .description("The maximum distance to target players.") .defaultValue(10) .min(0) .sliderMax(30) @@ -69,14 +65,12 @@ public class AutoWeb extends Module { private final Setting predictMovement = sgGeneral.add(new BoolSetting.Builder() .name("predict-movement") - .description("Predict target movement to account for ping.") .defaultValue(true) .build() ); private final Setting ticksToPredict = sgGeneral.add(new DoubleSetting.Builder() .name("ticks-to-predict") - .description("How many ticks ahead we should predict for.") .defaultValue(10) .min(1) .sliderMax(30) @@ -86,14 +80,12 @@ public class AutoWeb extends Module { private final Setting doubles = sgGeneral.add(new BoolSetting.Builder() .name("doubles") - .description("Places webs in the target's upper hitbox as well as the lower hitbox.") .defaultValue(false) .build() ); private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() .name("rotate") - .description("Rotates towards the webs when placing.") .defaultValue(true) .build() ); @@ -102,14 +94,12 @@ public class AutoWeb extends Module { private final Setting render = sgRender.add(new BoolSetting.Builder() .name("render") - .description("Renders an overlay where webs are placed.") .defaultValue(true) .build() ); private final Setting shapeMode = sgRender.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .visible(render::get) .build() @@ -117,7 +107,6 @@ public class AutoWeb extends Module { private final Setting sideColor = sgRender.add(new ColorSetting.Builder() .name("side-color") - .description("The side color of the placed web rendering.") .defaultValue(new SettingColor(239, 231, 244, 31)) .visible(() -> render.get() && shapeMode.get().sides()) .build() @@ -125,7 +114,6 @@ public class AutoWeb extends Module { private final Setting lineColor = sgRender.add(new ColorSetting.Builder() .name("line-color") - .description("The line color of the placed web rendering.") .defaultValue(new SettingColor(255, 255, 255)) .visible(() -> render.get() && shapeMode.get().lines()) .build() @@ -135,7 +123,7 @@ public class AutoWeb extends Module { private PlayerEntity target = null; public AutoWeb() { - super(Categories.Combat, "auto-web", "Automatically places webs on other players."); + super(Categories.Combat, "auto-web"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/BedAura.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/BedAura.java index c0dfa23870..930f1fe5b9 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/BedAura.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/BedAura.java @@ -38,16 +38,15 @@ public class BedAura extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgTargeting = settings.createGroup("Targeting"); - private final SettingGroup sgAutoMove = settings.createGroup("Inventory"); - private final SettingGroup sgPause = settings.createGroup("Pause"); - private final SettingGroup sgRender = settings.createGroup("Render"); + private final SettingGroup sgTargeting = settings.createGroup("targeting"); + private final SettingGroup sgAutoMove = settings.createGroup("inventory"); + private final SettingGroup sgPause = settings.createGroup("pause"); + private final SettingGroup sgRender = settings.createGroup("render"); // General private final Setting delay = sgGeneral.add(new IntSetting.Builder() .name("delay") - .description("The delay between placing beds in ticks.") .defaultValue(9) .min(0) .sliderMax(20) @@ -56,7 +55,6 @@ public class BedAura extends Module { private final Setting strictDirection = sgGeneral.add(new BoolSetting.Builder() .name("strict-direction") - .description("Only places beds in the direction you are facing.") .defaultValue(false) .build() ); @@ -65,7 +63,6 @@ public class BedAura extends Module { private final Setting targetRange = sgTargeting.add(new DoubleSetting.Builder() .name("target-range") - .description("The range at which players can be targeted.") .defaultValue(4) .min(0) .sliderMax(5) @@ -74,14 +71,12 @@ public class BedAura extends Module { private final Setting priority = sgTargeting.add(new EnumSetting.Builder() .name("target-priority") - .description("How to filter targets within range.") .defaultValue(SortPriority.LowestHealth) .build() ); private final Setting minDamage = sgTargeting.add(new DoubleSetting.Builder() .name("min-damage") - .description("The minimum damage to inflict on your target.") .defaultValue(7) .range(0, 36) .sliderMax(36) @@ -90,7 +85,6 @@ public class BedAura extends Module { private final Setting maxSelfDamage = sgTargeting.add(new DoubleSetting.Builder() .name("max-self-damage") - .description("The maximum damage to inflict on yourself.") .defaultValue(7) .range(0, 36) .sliderMax(36) @@ -99,7 +93,6 @@ public class BedAura extends Module { private final Setting antiSuicide = sgTargeting.add(new BoolSetting.Builder() .name("anti-suicide") - .description("Will not place and break beds if they will kill you.") .defaultValue(true) .build() ); @@ -108,14 +101,12 @@ public class BedAura extends Module { private final Setting autoMove = sgAutoMove.add(new BoolSetting.Builder() .name("auto-move") - .description("Moves beds into a selected hotbar slot.") .defaultValue(false) .build() ); private final Setting autoMoveSlot = sgAutoMove.add(new IntSetting.Builder() .name("auto-move-slot") - .description("The slot auto move moves beds to.") .defaultValue(9) .range(1, 9) .sliderRange(1, 9) @@ -125,7 +116,6 @@ public class BedAura extends Module { private final Setting autoSwitch = sgAutoMove.add(new BoolSetting.Builder() .name("auto-switch") - .description("Switches to and from beds automatically.") .defaultValue(true) .build() ); @@ -134,21 +124,18 @@ public class BedAura extends Module { private final Setting pauseOnEat = sgPause.add(new BoolSetting.Builder() .name("pause-on-eat") - .description("Pauses while eating.") .defaultValue(true) .build() ); private final Setting pauseOnDrink = sgPause.add(new BoolSetting.Builder() .name("pause-on-drink") - .description("Pauses while drinking.") .defaultValue(true) .build() ); private final Setting pauseOnMine = sgPause.add(new BoolSetting.Builder() .name("pause-on-mine") - .description("Pauses while mining.") .defaultValue(true) .build() ); @@ -157,35 +144,30 @@ public class BedAura extends Module { private final Setting swing = sgRender.add(new BoolSetting.Builder() .name("swing") - .description("Whether to swing hand client-side.") .defaultValue(true) .build() ); private final Setting render = sgRender.add(new BoolSetting.Builder() .name("render") - .description("Renders the block where it is placing a bed.") .defaultValue(true) .build() ); private final Setting shapeMode = sgRender.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .build() ); private final Setting sideColor = sgRender.add(new ColorSetting.Builder() .name("side-color") - .description("The side color for positions to be placed.") .defaultValue(new SettingColor(15, 255, 211,75)) .build() ); private final Setting lineColor = sgRender.add(new ColorSetting.Builder() .name("line-color") - .description("The line color for positions to be placed.") .defaultValue(new SettingColor(15, 255, 211)) .build() ); @@ -196,7 +178,7 @@ public class BedAura extends Module { private int timer; public BedAura() { - super(Categories.Combat, "bed-aura", "Automatically places and explodes beds in the Nether and End."); + super(Categories.Combat, "bed-aura"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/BowAimbot.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/BowAimbot.java index f978b420cd..2263596ba5 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/BowAimbot.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/BowAimbot.java @@ -35,7 +35,6 @@ public class BowAimbot extends Module { private final Setting range = sgGeneral.add(new DoubleSetting.Builder() .name("range") - .description("The maximum range the entity can be to aim at it.") .defaultValue(20) .range(0, 100) .sliderMax(100) @@ -44,28 +43,24 @@ public class BowAimbot extends Module { private final Setting>> entities = sgGeneral.add(new EntityTypeListSetting.Builder() .name("entities") - .description("Entities to attack.") .onlyAttackable() .build() ); private final Setting priority = sgGeneral.add(new EnumSetting.Builder() .name("priority") - .description("What type of entities to target.") .defaultValue(SortPriority.LowestHealth) .build() ); private final Setting babies = sgGeneral.add(new BoolSetting.Builder() .name("babies") - .description("Whether or not to attack baby variants of the entity.") .defaultValue(true) .build() ); private final Setting nametagged = sgGeneral.add(new BoolSetting.Builder() .name("nametagged") - .description("Whether or not to attack mobs with a name tag.") .defaultValue(false) .build() ); @@ -73,7 +68,6 @@ public class BowAimbot extends Module { private final Setting pauseOnCombat = sgGeneral.add(new BoolSetting.Builder() .name("pause-on-combat") - .description("Freezes Baritone temporarily until you released the bow.") .defaultValue(false) .build() ); @@ -82,7 +76,7 @@ public class BowAimbot extends Module { private Entity target; public BowAimbot() { - super(Categories.Combat, "bow-aimbot", "Automatically aims your bow for you."); + super(Categories.Combat, "bow-aimbot"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/BowSpam.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/BowSpam.java index d269633452..bb69d55a04 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/BowSpam.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/BowSpam.java @@ -23,11 +23,10 @@ public class BowSpam extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgCrossbows = settings.createGroup("Crossbows"); + private final SettingGroup sgCrossbows = settings.createGroup("crossbows"); private final Setting charge = sgGeneral.add(new IntSetting.Builder() .name("charge") - .description("How long to charge the bow before releasing in ticks.") .defaultValue(5) .range(4, 20) .sliderRange(4, 20) @@ -36,21 +35,18 @@ public class BowSpam extends Module { private final Setting onlyWhenHoldingRightClick = sgGeneral.add(new BoolSetting.Builder() .name("when-holding-right-click") - .description("Works only when holding right click.") .defaultValue(false) .build() ); private final Setting spamCrossbows = sgCrossbows.add(new BoolSetting.Builder() .name("spam-crossbows") - .description("Whether to spam loaded crossbows; takes priority over charging bows.") .defaultValue(true) .build() ); private final Setting crossbowDelay = sgCrossbows.add(new IntSetting.Builder() .name("crossbow-delay") - .description("Delay between shooting crossbows in ticks.") .defaultValue(10) .sliderRange(0, 20) .min(0) @@ -59,7 +55,6 @@ public class BowSpam extends Module { private final Setting searchInventory = sgCrossbows.add(new BoolSetting.Builder() .name("search-inventory") - .description("Whether to search your inventory to find loaded crossbows.") .defaultValue(true) .build() ); @@ -69,7 +64,7 @@ public class BowSpam extends Module { private int ticks = 0; public BowSpam() { - super(Categories.Combat, "bow-spam", "Spams bows and crossbows.", "auto-bow", "crossbow-spam", "auto-crossbow"); + super(Categories.Combat, "bow-spam", "auto-bow", "crossbow-spam", "auto-crossbow"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Burrow.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Burrow.java index 0a052c34c9..f8367b35f0 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Burrow.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Burrow.java @@ -38,28 +38,24 @@ public class Burrow extends Module { private final Setting block = sgGeneral.add(new EnumSetting.Builder() .name("block-to-use") - .description("The block to use for Burrow.") .defaultValue(Block.EChest) .build() ); private final Setting instant = sgGeneral.add(new BoolSetting.Builder() .name("instant") - .description("Jumps with packets rather than vanilla jump.") .defaultValue(true) .build() ); private final Setting automatic = sgGeneral.add(new BoolSetting.Builder() .name("automatic") - .description("Automatically burrows on activate rather than waiting for jump.") .defaultValue(true) .build() ); private final Setting triggerHeight = sgGeneral.add(new DoubleSetting.Builder() .name("trigger-height") - .description("How high you have to jump before a rubberband is triggered.") .defaultValue(1.12) .range(0.01, 1.4) .sliderRange(0.01, 1.4) @@ -68,7 +64,6 @@ public class Burrow extends Module { private final Setting rubberbandHeight = sgGeneral.add(new DoubleSetting.Builder() .name("rubberband-height") - .description("How far to attempt to cause rubberband.") .defaultValue(12) .sliderMin(-30) .sliderMax(30) @@ -77,7 +72,6 @@ public class Burrow extends Module { private final Setting timer = sgGeneral.add(new DoubleSetting.Builder() .name("timer") - .description("Timer override.") .defaultValue(1) .min(0.01) .sliderRange(0.01, 10) @@ -86,21 +80,18 @@ public class Burrow extends Module { private final Setting onlyInHole = sgGeneral.add(new BoolSetting.Builder() .name("only-in-holes") - .description("Stops you from burrowing when not in a hole.") .defaultValue(false) .build() ); private final Setting center = sgGeneral.add(new BoolSetting.Builder() .name("center") - .description("Centers you to the middle of the block before burrowing.") .defaultValue(true) .build() ); private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() .name("rotate") - .description("Faces the block you place server-side.") .defaultValue(true) .build() ); @@ -109,7 +100,7 @@ public class Burrow extends Module { private boolean shouldBurrow; public Burrow() { - super(Categories.Combat, "burrow", "Attempts to clip you into a block."); + super(Categories.Combat, "burrow"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Criticals.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Criticals.java index 02e60af412..239a853704 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Criticals.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Criticals.java @@ -27,18 +27,16 @@ public class Criticals extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgMace = settings.createGroup("Mace"); + private final SettingGroup sgMace = settings.createGroup("mace"); private final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("The mode on how Criticals will function.") .defaultValue(Mode.Packet) .build() ); private final Setting ka = sgGeneral.add(new BoolSetting.Builder() .name("only-killaura") - .description("Only performs crits when using killaura.") .defaultValue(false) .visible(() -> mode.get() != Mode.None) .build() @@ -46,14 +44,12 @@ public class Criticals extends Module { private final Setting mace = sgMace.add(new BoolSetting.Builder() .name("smash-attack") - .description("Will always perform smash attacks when using a mace.") .defaultValue(true) .build() ); private final Setting extraHeight = sgMace.add(new DoubleSetting.Builder() .name("additional-height") - .description("The amount of additional height to spoof. More height means more damage.") .defaultValue(0.0) .min(0) .sliderRange(0, 100) @@ -69,7 +65,7 @@ public class Criticals extends Module { private boolean waitingForPeak; public Criticals() { - super(Categories.Combat, "criticals", "Performs critical attacks when you hit your target."); + super(Categories.Combat, "criticals"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/CrystalAura.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/CrystalAura.java index b3e4461342..5fb24d3c90 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/CrystalAura.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/CrystalAura.java @@ -68,18 +68,17 @@ public class CrystalAura extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgSwitch = settings.createGroup("Switch"); - private final SettingGroup sgPlace = settings.createGroup("Place"); - private final SettingGroup sgFacePlace = settings.createGroup("Face Place"); - private final SettingGroup sgBreak = settings.createGroup("Break"); - private final SettingGroup sgPause = settings.createGroup("Pause"); - private final SettingGroup sgRender = settings.createGroup("Render"); + private final SettingGroup sgSwitch = settings.createGroup("switch"); + private final SettingGroup sgPlace = settings.createGroup("place"); + private final SettingGroup sgFacePlace = settings.createGroup("face-place"); + private final SettingGroup sgBreak = settings.createGroup("break"); + private final SettingGroup sgPause = settings.createGroup("pause"); + private final SettingGroup sgRender = settings.createGroup("render"); // General private final Setting targetRange = sgGeneral.add(new DoubleSetting.Builder() .name("target-range") - .description("Range in which to target players.") .defaultValue(10) .min(0) .sliderMax(16) @@ -88,14 +87,12 @@ public class CrystalAura extends Module { private final Setting predictMovement = sgGeneral.add(new BoolSetting.Builder() .name("predict-movement") - .description("Predicts target movement.") .defaultValue(false) .build() ); private final Setting minDamage = sgGeneral.add(new DoubleSetting.Builder() .name("min-damage") - .description("Minimum damage the crystal needs to deal to your target.") .defaultValue(6) .min(0) .build() @@ -103,7 +100,6 @@ public class CrystalAura extends Module { private final Setting maxDamage = sgGeneral.add(new DoubleSetting.Builder() .name("max-damage") - .description("Maximum damage crystals can deal to yourself.") .defaultValue(6) .range(0, 36) .sliderMax(36) @@ -112,28 +108,24 @@ public class CrystalAura extends Module { private final Setting antiSuicide = sgGeneral.add(new BoolSetting.Builder() .name("anti-suicide") - .description("Will not place and break crystals if they will kill you.") .defaultValue(true) .build() ); private final Setting ignoreNakeds = sgGeneral.add(new BoolSetting.Builder() .name("ignore-nakeds") - .description("Ignore players with no items.") .defaultValue(false) .build() ); private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() .name("rotate") - .description("Rotates server-side towards the crystals being hit/placed.") .defaultValue(true) .build() ); private final Setting yawStepMode = sgGeneral.add(new EnumSetting.Builder() .name("yaw-steps-mode") - .description("When to run the yaw steps check.") .defaultValue(YawStepMode.Break) .visible(rotate::get) .build() @@ -141,7 +133,6 @@ public class CrystalAura extends Module { private final Setting yawSteps = sgGeneral.add(new DoubleSetting.Builder() .name("yaw-steps") - .description("Maximum number of degrees its allowed to rotate in one tick.") .defaultValue(180) .range(1, 180) .visible(rotate::get) @@ -150,7 +141,6 @@ public class CrystalAura extends Module { private final Setting>> entities = sgGeneral.add(new EntityTypeListSetting.Builder() .name("entities") - .description("Entities to attack.") .onlyAttackable() .defaultValue(EntityType.PLAYER, EntityType.WARDEN, EntityType.WITHER) .build() @@ -160,14 +150,12 @@ public class CrystalAura extends Module { private final Setting autoSwitch = sgSwitch.add(new EnumSetting.Builder() .name("auto-switch") - .description("Switches to crystals in your hotbar once a target is found.") .defaultValue(AutoSwitchMode.Normal) .build() ); private final Setting switchDelay = sgSwitch.add(new IntSetting.Builder() .name("switch-delay") - .description("The delay in ticks to wait to break a crystal after switching hotbar slot.") .defaultValue(0) .min(0) .build() @@ -175,7 +163,6 @@ public class CrystalAura extends Module { private final Setting noGapSwitch = sgSwitch.add(new BoolSetting.Builder() .name("no-gap-switch") - .description("Won't auto switch if you're holding a gapple.") .defaultValue(true) .visible(() -> autoSwitch.get() == AutoSwitchMode.Normal) .build() @@ -183,14 +170,12 @@ public class CrystalAura extends Module { private final Setting noBowSwitch = sgSwitch.add(new BoolSetting.Builder() .name("no-bow-switch") - .description("Won't auto switch if you're holding a bow.") .defaultValue(true) .build() ); private final Setting antiWeakness = sgSwitch.add(new BoolSetting.Builder() .name("anti-weakness") - .description("Switches to tools with so you can break crystals with the weakness effect.") .defaultValue(true) .build() ); @@ -199,14 +184,12 @@ public class CrystalAura extends Module { private final Setting doPlace = sgPlace.add(new BoolSetting.Builder() .name("place") - .description("If the CA should place crystals.") .defaultValue(true) .build() ); public final Setting placeDelay = sgPlace.add(new IntSetting.Builder() .name("place-delay") - .description("The delay in ticks to wait to place a crystal after it's exploded.") .defaultValue(0) .min(0) .sliderMax(20) @@ -215,7 +198,6 @@ public class CrystalAura extends Module { private final Setting placeRange = sgPlace.add(new DoubleSetting.Builder() .name("place-range") - .description("Range in which to place crystals.") .defaultValue(4.5) .min(0) .sliderMax(6) @@ -224,7 +206,6 @@ public class CrystalAura extends Module { private final Setting placeWallsRange = sgPlace.add(new DoubleSetting.Builder() .name("walls-range") - .description("Range in which to place crystals when behind blocks.") .defaultValue(4.5) .min(0) .sliderMax(6) @@ -233,21 +214,18 @@ public class CrystalAura extends Module { private final Setting placement112 = sgPlace.add(new BoolSetting.Builder() .name("1.12-placement") - .description("Uses 1.12 crystal placement.") .defaultValue(false) .build() ); private final Setting support = sgPlace.add(new EnumSetting.Builder() .name("support") - .description("Places a support block in air if no other position have been found.") .defaultValue(SupportMode.Disabled) .build() ); private final Setting supportDelay = sgPlace.add(new IntSetting.Builder() .name("support-delay") - .description("Delay in ticks after placing support block.") .defaultValue(1) .min(0) .visible(() -> support.get() != SupportMode.Disabled) @@ -258,14 +236,12 @@ public class CrystalAura extends Module { private final Setting facePlace = sgFacePlace.add(new BoolSetting.Builder() .name("face-place") - .description("Will face-place when target is below a certain health or armor durability threshold.") .defaultValue(true) .build() ); private final Setting facePlaceHealth = sgFacePlace.add(new DoubleSetting.Builder() .name("face-place-health") - .description("The health the target has to be at to start face placing.") .defaultValue(8) .min(1) .sliderMin(1) @@ -276,7 +252,6 @@ public class CrystalAura extends Module { private final Setting facePlaceDurability = sgFacePlace.add(new DoubleSetting.Builder() .name("face-place-durability") - .description("The durability threshold percentage to be able to face-place.") .defaultValue(2) .min(1) .sliderMin(1) @@ -287,7 +262,6 @@ public class CrystalAura extends Module { private final Setting facePlaceArmor = sgFacePlace.add(new BoolSetting.Builder() .name("face-place-missing-armor") - .description("Automatically starts face placing when a target misses a piece of armor.") .defaultValue(false) .visible(facePlace::get) .build() @@ -295,7 +269,6 @@ public class CrystalAura extends Module { private final Setting forceFacePlace = sgFacePlace.add(new KeybindSetting.Builder() .name("force-face-place") - .description("Starts face place when this button is pressed.") .defaultValue(Keybind.none()) .build() ); @@ -304,14 +277,12 @@ public class CrystalAura extends Module { private final Setting doBreak = sgBreak.add(new BoolSetting.Builder() .name("break") - .description("If the CA should break crystals.") .defaultValue(true) .build() ); private final Setting breakDelay = sgBreak.add(new IntSetting.Builder() .name("break-delay") - .description("The delay in ticks to wait to break a crystal after it's placed.") .defaultValue(0) .min(0) .sliderMax(20) @@ -320,14 +291,12 @@ public class CrystalAura extends Module { private final Setting smartDelay = sgBreak.add(new BoolSetting.Builder() .name("smart-delay") - .description("Only breaks crystals when the target can receive damage.") .defaultValue(false) .build() ); private final Setting breakRange = sgBreak.add(new DoubleSetting.Builder() .name("break-range") - .description("Range in which to break crystals.") .defaultValue(4.5) .min(0) .sliderMax(6) @@ -336,7 +305,6 @@ public class CrystalAura extends Module { private final Setting breakWallsRange = sgBreak.add(new DoubleSetting.Builder() .name("walls-range") - .description("Range in which to break crystals when behind blocks.") .defaultValue(4.5) .min(0) .sliderMax(6) @@ -345,14 +313,12 @@ public class CrystalAura extends Module { private final Setting onlyBreakOwn = sgBreak.add(new BoolSetting.Builder() .name("only-own") - .description("Only breaks own crystals.") .defaultValue(false) .build() ); private final Setting breakAttempts = sgBreak.add(new IntSetting.Builder() .name("break-attempts") - .description("How many times to hit a crystal before stopping to target it.") .defaultValue(2) .sliderMin(1) .sliderMax(5) @@ -361,7 +327,6 @@ public class CrystalAura extends Module { private final Setting ticksExisted = sgBreak.add(new IntSetting.Builder() .name("ticks-existed") - .description("Amount of ticks a crystal needs to have lived for it to be attacked by CrystalAura.") .defaultValue(0) .min(0) .build() @@ -369,7 +334,6 @@ public class CrystalAura extends Module { private final Setting attackFrequency = sgBreak.add(new IntSetting.Builder() .name("attack-frequency") - .description("Maximum hits to do per second.") .defaultValue(25) .min(1) .sliderRange(1, 30) @@ -378,7 +342,6 @@ public class CrystalAura extends Module { private final Setting fastBreak = sgBreak.add(new BoolSetting.Builder() .name("fast-break") - .description("Ignores break delay and tries to break the crystal as soon as it's spawned in the world.") .defaultValue(true) .build() ); @@ -387,35 +350,30 @@ public class CrystalAura extends Module { public final Setting pauseOnUse = sgPause.add(new EnumSetting.Builder() .name("pause-on-use") - .description("Which processes should be paused while using an item.") .defaultValue(PauseMode.Place) .build() ); public final Setting pauseOnMine = sgPause.add(new EnumSetting.Builder() .name("pause-on-mine") - .description("Which processes should be paused while mining a block.") .defaultValue(PauseMode.None) .build() ); private final Setting pauseOnLag = sgPause.add(new BoolSetting.Builder() .name("pause-on-lag") - .description("Whether to pause if the server is not responding.") .defaultValue(true) .build() ); public final Setting> pauseModules = sgPause.add(new ModuleListSetting.Builder() .name("pause-modules") - .description("Pauses while any of the selected modules are active.") .defaultValue(BedAura.class) .build() ); public final Setting pauseHealth = sgPause.add(new DoubleSetting.Builder() .name("pause-health") - .description("Pauses when you go below a certain health.") .defaultValue(5) .range(0,36) .sliderRange(0,36) @@ -426,21 +384,18 @@ public class CrystalAura extends Module { public final Setting swingMode = sgRender.add(new EnumSetting.Builder() .name("swing-mode") - .description("How to swing when placing.") .defaultValue(SwingMode.Both) .build() ); private final Setting renderMode = sgRender.add(new EnumSetting.Builder() .name("render-mode") - .description("The mode to render in.") .defaultValue(RenderMode.Normal) .build() ); private final Setting renderPlace = sgRender.add(new BoolSetting.Builder() .name("render-place") - .description("Renders a block overlay over the block the crystals are being placed on.") .defaultValue(true) .visible(() -> renderMode.get() == RenderMode.Normal) .build() @@ -448,7 +403,6 @@ public class CrystalAura extends Module { private final Setting placeRenderTime = sgRender.add(new IntSetting.Builder() .name("place-time") - .description("How long to render placements.") .defaultValue(10) .min(0) .sliderMax(20) @@ -458,7 +412,6 @@ public class CrystalAura extends Module { private final Setting renderBreak = sgRender.add(new BoolSetting.Builder() .name("render-break") - .description("Renders a block overlay over the block the crystals are broken on.") .defaultValue(false) .visible(() -> renderMode.get() == RenderMode.Normal) .build() @@ -466,7 +419,6 @@ public class CrystalAura extends Module { private final Setting breakRenderTime = sgRender.add(new IntSetting.Builder() .name("break-time") - .description("How long to render breaking for.") .defaultValue(13) .min(0) .sliderMax(20) @@ -476,7 +428,6 @@ public class CrystalAura extends Module { private final Setting smoothness = sgRender.add(new IntSetting.Builder() .name("smoothness") - .description("How smoothly the render should move around.") .defaultValue(10) .min(0) .sliderMax(20) @@ -486,7 +437,6 @@ public class CrystalAura extends Module { private final Setting height = sgRender.add(new DoubleSetting.Builder() .name("height") - .description("How tall the gradient should be.") .defaultValue(0.7) .min(0) .sliderMax(1) @@ -496,7 +446,6 @@ public class CrystalAura extends Module { private final Setting renderTime = sgRender.add(new IntSetting.Builder() .name("render-time") - .description("How long to render placements.") .defaultValue(10) .min(0) .sliderMax(20) @@ -506,7 +455,6 @@ public class CrystalAura extends Module { private final Setting shapeMode = sgRender.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .visible(() -> renderMode.get() != RenderMode.None) .build() @@ -514,7 +462,6 @@ public class CrystalAura extends Module { private final Setting sideColor = sgRender.add(new ColorSetting.Builder() .name("side-color") - .description("The side color of the block overlay.") .defaultValue(new SettingColor(255, 255, 255, 45)) .visible(() -> shapeMode.get().sides() && renderMode.get() != RenderMode.None) .build() @@ -522,7 +469,6 @@ public class CrystalAura extends Module { private final Setting lineColor = sgRender.add(new ColorSetting.Builder() .name("line-color") - .description("The line color of the block overlay.") .defaultValue(new SettingColor(255, 255, 255)) .visible(() -> shapeMode.get().lines() && renderMode.get() != RenderMode.None) .build() @@ -530,7 +476,6 @@ public class CrystalAura extends Module { private final Setting renderDamageText = sgRender.add(new BoolSetting.Builder() .name("damage") - .description("Renders crystal damage text in the block overlay.") .defaultValue(true) .visible(() -> renderMode.get() != RenderMode.None) .build() @@ -538,7 +483,6 @@ public class CrystalAura extends Module { private final Setting damageColor = sgRender.add(new ColorSetting.Builder() .name("damage-color") - .description("The color of the damage text.") .defaultValue(new SettingColor(255, 255, 255)) .visible(() -> renderMode.get() != RenderMode.None && renderDamageText.get()) .build() @@ -546,7 +490,6 @@ public class CrystalAura extends Module { private final Setting damageTextScale = sgRender.add(new DoubleSetting.Builder() .name("damage-scale") - .description("How big the damage text should be.") .defaultValue(1.25) .min(1) .sliderMax(4) @@ -601,7 +544,7 @@ public class CrystalAura extends Module { private double renderDamage; public CrystalAura() { - super(Categories.Combat, "crystal-aura", "Automatically places and attacks crystals."); + super(Categories.Combat, "crystal-aura"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Hitboxes.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Hitboxes.java index 8f8f469066..e7e493c8e1 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Hitboxes.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Hitboxes.java @@ -21,39 +21,34 @@ public class Hitboxes extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgWeapon = settings.createGroup("Weapon Options"); + private final SettingGroup sgWeapon = settings.createGroup("weapon-options"); private final Setting>> entities = sgGeneral.add(new EntityTypeListSetting.Builder() .name("entities") - .description("Which entities to target.") .defaultValue(EntityType.PLAYER) .build() ); private final Setting value = sgGeneral.add(new DoubleSetting.Builder() .name("expand") - .description("How much to expand the hitbox of the entity.") .defaultValue(0.5) .build() ); private final Setting ignoreFriends = sgGeneral.add(new BoolSetting.Builder() .name("ignore-friends") - .description("Doesn't expand the hitboxes of friends.") .defaultValue(true) .build() ); private final Setting onlyOnWeapon = sgWeapon.add(new BoolSetting.Builder() .name("only-on-weapon") - .description("Only modifies hitbox when holding a weapon in hand.") .defaultValue(false) .build() ); private final Setting sword = sgWeapon.add(new BoolSetting.Builder() .name("sword") - .description("Enable when holding a sword.") .defaultValue(true) .visible(onlyOnWeapon::get) .build() @@ -61,7 +56,6 @@ public class Hitboxes extends Module { private final Setting axe = sgWeapon.add(new BoolSetting.Builder() .name("axe") - .description("Enable when holding an axe.") .defaultValue(true) .visible(onlyOnWeapon::get) .build() @@ -69,7 +63,6 @@ public class Hitboxes extends Module { private final Setting pickaxe = sgWeapon.add(new BoolSetting.Builder() .name("pickaxe") - .description("Enable when holding a pickaxe.") .defaultValue(true) .visible(onlyOnWeapon::get) .build() @@ -77,7 +70,6 @@ public class Hitboxes extends Module { private final Setting shovel = sgWeapon.add(new BoolSetting.Builder() .name("shovel") - .description("Enable when holding a shovel.") .defaultValue(true) .visible(onlyOnWeapon::get) .build() @@ -85,7 +77,6 @@ public class Hitboxes extends Module { private final Setting hoe = sgWeapon.add(new BoolSetting.Builder() .name("hoe") - .description("Enable when holding a hoe.") .defaultValue(true) .visible(onlyOnWeapon::get) .build() @@ -93,7 +84,6 @@ public class Hitboxes extends Module { private final Setting mace = sgWeapon.add(new BoolSetting.Builder() .name("mace") - .description("Enable when holding a mace.") .defaultValue(true) .visible(onlyOnWeapon::get) .build() @@ -101,7 +91,6 @@ public class Hitboxes extends Module { private final Setting spear = sgWeapon.add(new BoolSetting.Builder() .name("spear") - .description("Enable when holding a spear.") .defaultValue(true) .visible(onlyOnWeapon::get) .build() @@ -109,14 +98,13 @@ public class Hitboxes extends Module { private final Setting trident = sgWeapon.add(new BoolSetting.Builder() .name("trident") - .description("Enable when holding a trident.") .defaultValue(true) .visible(onlyOnWeapon::get) .build() ); public Hitboxes() { - super(Categories.Combat, "hitboxes", "Expands an entity's hitboxes."); + super(Categories.Combat, "hitboxes"); } public double getEntityValue(Entity entity) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/HoleFiller.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/HoleFiller.java index 25ea0b41cf..987be62c9d 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/HoleFiller.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/HoleFiller.java @@ -39,12 +39,11 @@ public class HoleFiller extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgSmart = settings.createGroup("Smart"); - private final SettingGroup sgRender = settings.createGroup("Render"); + private final SettingGroup sgSmart = settings.createGroup("smart"); + private final SettingGroup sgRender = settings.createGroup("render"); private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() .name("blocks") - .description("Which blocks can be used to fill holes.") .defaultValue( Blocks.OBSIDIAN, Blocks.CRYING_OBSIDIAN, @@ -57,7 +56,6 @@ public class HoleFiller extends Module { private final Setting searchRadius = sgGeneral.add(new IntSetting.Builder() .name("search-radius") - .description("Horizontal radius in which to search for holes.") .defaultValue(5) .min(0) .sliderMax(6) @@ -66,7 +64,6 @@ public class HoleFiller extends Module { private final Setting placeRange = sgGeneral.add(new DoubleSetting.Builder() .name("place-range") - .description("How far away from the player you can place a block.") .defaultValue(4.5) .min(0) .sliderMax(6) @@ -75,7 +72,6 @@ public class HoleFiller extends Module { private final Setting placeWallsRange = sgGeneral.add(new DoubleSetting.Builder() .name("walls-range") - .description("How far away from the player you can place a block behind walls.") .defaultValue(4.5) .min(0) .sliderMax(6) @@ -84,21 +80,18 @@ public class HoleFiller extends Module { private final Setting doubles = sgGeneral.add(new BoolSetting.Builder() .name("doubles") - .description("Fills double holes.") .defaultValue(true) .build() ); private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() .name("rotate") - .description("Automatically rotates towards the holes being filled.") .defaultValue(false) .build() ); private final Setting placeDelay = sgGeneral.add(new IntSetting.Builder() .name("place-delay") - .description("The ticks delay between placement.") .defaultValue(1) .min(0) .build() @@ -106,7 +99,6 @@ public class HoleFiller extends Module { private final Setting blocksPerTick = sgGeneral.add(new IntSetting.Builder() .name("blocks-per-tick") - .description("How many blocks to place in one tick.") .defaultValue(3) .min(1) .build() @@ -116,14 +108,12 @@ public class HoleFiller extends Module { private final Setting smart = sgSmart.add(new BoolSetting.Builder() .name("smart") - .description("Take more factors into account before filling a hole.") .defaultValue(true) .build() ); public final Setting forceFill = sgSmart.add(new KeybindSetting.Builder() .name("force-fill") - .description("Fills all holes around you regardless of target checks.") .defaultValue(Keybind.none()) .visible(smart::get) .build() @@ -131,7 +121,6 @@ public class HoleFiller extends Module { private final Setting predictMovement = sgSmart.add(new BoolSetting.Builder() .name("predict-movement") - .description("Predict target movement to account for ping.") .defaultValue(true) .visible(smart::get) .build() @@ -139,7 +128,6 @@ public class HoleFiller extends Module { private final Setting ticksToPredict = sgSmart.add(new DoubleSetting.Builder() .name("ticks-to-predict") - .description("How many ticks ahead we should predict for.") .defaultValue(10) .min(1) .sliderMax(30) @@ -149,7 +137,6 @@ public class HoleFiller extends Module { private final Setting ignoreSafe = sgSmart.add(new BoolSetting.Builder() .name("ignore-safe") - .description("Ignore players in safe holes.") .defaultValue(true) .visible(smart::get) .build() @@ -157,7 +144,6 @@ public class HoleFiller extends Module { private final Setting onlyMoving = sgSmart.add(new BoolSetting.Builder() .name("only-moving") - .description("Ignore players if they're standing still.") .defaultValue(true) .visible(smart::get) .build() @@ -165,7 +151,6 @@ public class HoleFiller extends Module { private final Setting targetRange = sgSmart.add(new DoubleSetting.Builder() .name("target-range") - .description("How far away to target players.") .defaultValue(7) .min(0) .sliderMin(1) @@ -176,7 +161,6 @@ public class HoleFiller extends Module { private final Setting feetRange = sgSmart.add(new DoubleSetting.Builder() .name("feet-range") - .description("How far from a hole a player's feet must be to fill it.") .defaultValue(1.5) .min(0) .sliderMax(4) @@ -188,21 +172,18 @@ public class HoleFiller extends Module { private final Setting swing = sgRender.add(new BoolSetting.Builder() .name("swing") - .description("Swing the player's hand when placing.") .defaultValue(true) .build() ); private final Setting render = sgRender.add(new BoolSetting.Builder() .name("render") - .description("Renders an overlay where blocks will be placed.") .defaultValue(true) .build() ); private final Setting shapeMode = sgRender.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .visible(render::get) .build() @@ -210,7 +191,6 @@ public class HoleFiller extends Module { private final Setting sideColor = sgRender.add(new ColorSetting.Builder() .name("side-color") - .description("The side color of the target block rendering.") .defaultValue(new SettingColor(197, 137, 232, 10)) .visible(() -> render.get() && shapeMode.get().sides()) .build() @@ -218,7 +198,6 @@ public class HoleFiller extends Module { private final Setting lineColor = sgRender.add(new ColorSetting.Builder() .name("line-color") - .description("The line color of the target block rendering.") .defaultValue(new SettingColor(197, 137, 232)) .visible(() -> render.get() && shapeMode.get().lines()) .build() @@ -226,7 +205,6 @@ public class HoleFiller extends Module { private final Setting nextSideColor = sgRender.add(new ColorSetting.Builder() .name("next-side-color") - .description("The side color of the next block to be placed.") .defaultValue(new SettingColor(227, 196, 245, 10)) .visible(() -> render.get() && shapeMode.get().sides()) .build() @@ -234,7 +212,6 @@ public class HoleFiller extends Module { private final Setting nextLineColor = sgRender.add(new ColorSetting.Builder() .name("next-line-color") - .description("The line color of the next block to be placed.") .defaultValue(new SettingColor(5, 139, 221)) .visible(() -> render.get() && shapeMode.get().lines()) .build() @@ -245,7 +222,7 @@ public class HoleFiller extends Module { private int timer; public HoleFiller() { - super(Categories.Combat, "hole-filler", "Fills holes with specified blocks."); + super(Categories.Combat, "hole-filler"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/KillAura.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/KillAura.java index 769dff7ea8..edc6f48e82 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/KillAura.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/KillAura.java @@ -47,21 +47,19 @@ public class KillAura extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgTargeting = settings.createGroup("Targeting"); - private final SettingGroup sgTiming = settings.createGroup("Timing"); + private final SettingGroup sgTargeting = settings.createGroup("targeting"); + private final SettingGroup sgTiming = settings.createGroup("timing"); // General private final Setting attackWhenHolding = sgGeneral.add(new EnumSetting.Builder() .name("attack-when-holding") - .description("Only attacks an entity when a specified item is in your hand.") .defaultValue(AttackItems.Weapons) .build() ); private final Setting> weapons = sgGeneral.add(new ItemListSetting.Builder() .name("selected-weapon-types") - .description("Which types of weapons to attack with (if you select the diamond sword, any type of sword may be used to attack).") .defaultValue(Items.DIAMOND_SWORD, Items.DIAMOND_AXE, Items.TRIDENT) .filter(FILTER::contains) .visible(() -> attackWhenHolding.get() == AttackItems.Weapons) @@ -70,21 +68,18 @@ public class KillAura extends Module { private final Setting rotation = sgGeneral.add(new EnumSetting.Builder() .name("rotate") - .description("Determines when you should rotate towards the target.") .defaultValue(RotationMode.Always) .build() ); private final Setting autoSwitch = sgGeneral.add(new BoolSetting.Builder() .name("auto-switch") - .description("Switches to an acceptable weapon when attacking the target.") .defaultValue(false) .build() ); private final Setting swapBack = sgGeneral.add(new BoolSetting.Builder() .name("swap-back") - .description("Switches to your previous slot when done attacking the target.") .defaultValue(false) .visible(autoSwitch::get) .build() @@ -92,7 +87,6 @@ public class KillAura extends Module { private final Setting shieldMode = sgGeneral.add(new EnumSetting.Builder() .name("shield-mode") - .description("Will try and use an axe to break target shields.") .defaultValue(ShieldMode.Break) .visible(autoSwitch::get) .build() @@ -100,21 +94,18 @@ public class KillAura extends Module { private final Setting onlyOnClick = sgGeneral.add(new BoolSetting.Builder() .name("only-on-click") - .description("Only attacks when holding left click.") .defaultValue(false) .build() ); private final Setting onlyOnLook = sgGeneral.add(new BoolSetting.Builder() .name("only-on-look") - .description("Only attacks when looking at an entity.") .defaultValue(false) .build() ); private final Setting pauseOnCombat = sgGeneral.add(new BoolSetting.Builder() .name("pause-baritone") - .description("Freezes Baritone temporarily until you are finished attacking the entity.") .defaultValue(true) .build() ); @@ -123,7 +114,6 @@ public class KillAura extends Module { private final Setting>> entities = sgTargeting.add(new EntityTypeListSetting.Builder() .name("entities") - .description("Entities to attack.") .onlyAttackable() .defaultValue(EntityType.PLAYER) .build() @@ -131,14 +121,12 @@ public class KillAura extends Module { private final Setting priority = sgTargeting.add(new EnumSetting.Builder() .name("priority") - .description("How to filter targets within range.") .defaultValue(SortPriority.ClosestAngle) .build() ); private final Setting maxTargets = sgTargeting.add(new IntSetting.Builder() .name("max-targets") - .description("How many entities to target at once.") .defaultValue(1) .min(1) .sliderRange(1, 5) @@ -148,7 +136,6 @@ public class KillAura extends Module { private final Setting range = sgTargeting.add(new DoubleSetting.Builder() .name("range") - .description("The maximum range the entity can be to attack it.") .defaultValue(4.5) .min(0) .sliderMax(6) @@ -157,7 +144,6 @@ public class KillAura extends Module { private final Setting wallsRange = sgTargeting.add(new DoubleSetting.Builder() .name("walls-range") - .description("The maximum range the entity can be attacked through walls.") .defaultValue(3.5) .min(0) .sliderMax(6) @@ -166,28 +152,24 @@ public class KillAura extends Module { private final Setting mobAgeFilter = sgTargeting.add(new EnumSetting.Builder() .name("mob-age-filter") - .description("Determines the age of the mobs to target (baby, adult, or both).") .defaultValue(EntityAge.Adult) .build() ); private final Setting ignoreNamed = sgTargeting.add(new BoolSetting.Builder() .name("ignore-named") - .description("Whether or not to attack mobs with a name.") .defaultValue(false) .build() ); private final Setting ignorePassive = sgTargeting.add(new BoolSetting.Builder() .name("ignore-passive") - .description("Will only attack sometimes passive mobs if they are targeting you.") .defaultValue(true) .build() ); private final Setting ignoreTamed = sgTargeting.add(new BoolSetting.Builder() .name("ignore-tamed") - .description("Will avoid attacking mobs you tamed.") .defaultValue(false) .build() ); @@ -196,42 +178,36 @@ public class KillAura extends Module { private final Setting pauseOnLag = sgTiming.add(new BoolSetting.Builder() .name("pause-on-lag") - .description("Pauses if the server is lagging.") .defaultValue(true) .build() ); private final Setting pauseOnUse = sgTiming.add(new BoolSetting.Builder() .name("pause-on-use") - .description("Does not attack while using an item.") .defaultValue(false) .build() ); private final Setting pauseOnCA = sgTiming.add(new BoolSetting.Builder() .name("pause-on-CA") - .description("Does not attack while CA is placing.") .defaultValue(true) .build() ); private final Setting tpsSync = sgTiming.add(new BoolSetting.Builder() .name("TPS-sync") - .description("Tries to sync attack delay with the server's TPS.") .defaultValue(true) .build() ); private final Setting customDelay = sgTiming.add(new BoolSetting.Builder() .name("custom-delay") - .description("Use a custom delay instead of the vanilla cooldown.") .defaultValue(false) .build() ); private final Setting hitDelay = sgTiming.add(new IntSetting.Builder() .name("hit-delay") - .description("How fast you hit the entity in ticks.") .defaultValue(11) .min(0) .sliderMax(60) @@ -241,7 +217,6 @@ public class KillAura extends Module { private final Setting switchDelay = sgTiming.add(new IntSetting.Builder() .name("switch-delay") - .description("How many ticks to wait before hitting an entity after switching hotbar slots.") .defaultValue(0) .min(0) .sliderMax(10) @@ -256,7 +231,7 @@ public class KillAura extends Module { public static int previousSlot; public KillAura() { - super(Categories.Combat, "kill-aura", "Attacks specified entities around you."); + super(Categories.Combat, "kill-aura"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Offhand.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Offhand.java index 2e4609ea49..bf04fcf6db 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Offhand.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Offhand.java @@ -26,14 +26,13 @@ import static org.lwjgl.glfw.GLFW.GLFW_MOUSE_BUTTON_RIGHT; public class Offhand extends Module { - private final SettingGroup sgCombat = settings.createGroup("Combat"); - private final SettingGroup sgTotem = settings.createGroup("Totem"); + private final SettingGroup sgCombat = settings.createGroup("combat"); + private final SettingGroup sgTotem = settings.createGroup("totem"); //Combat private final Setting delayTicks = sgCombat.add(new IntSetting.Builder() .name("item-switch-delay") - .description("The delay in ticks between slot movements.") .defaultValue(0) .min(0) .sliderMax(20) @@ -41,21 +40,18 @@ public class Offhand extends Module { ); private final Setting preferreditem = sgCombat.add(new EnumSetting.Builder() .name("item") - .description("Which item to hold in your offhand.") .defaultValue(Item.Crystal) .build() ); private final Setting hotbar = sgCombat.add(new BoolSetting.Builder() .name("hotbar") - .description("Whether to use items from your hotbar.") .defaultValue(false) .build() ); private final Setting rightgapple = sgCombat.add(new BoolSetting.Builder() .name("right-gapple") - .description("Will switch to a gapple when holding right click.(DO NOT USE WITH POTION ON)") .defaultValue(false) .build() ); @@ -63,7 +59,6 @@ public class Offhand extends Module { private final Setting SwordGap = sgCombat.add(new BoolSetting.Builder() .name("sword-gapple") - .description("Will switch to a gapple when holding a sword and right click.") .defaultValue(false) .visible(rightgapple::get) .build() @@ -71,7 +66,6 @@ public class Offhand extends Module { private final Setting alwaysSwordGap = sgCombat.add(new BoolSetting.Builder() .name("always-gap-on-sword") - .description("Holds an Enchanted Golden Apple when you are holding a sword.") .defaultValue(false) .visible(() -> !rightgapple.get()) .build() @@ -80,14 +74,12 @@ public class Offhand extends Module { private final Setting alwaysPot = sgCombat.add(new BoolSetting.Builder() .name("always-pot-on-sword") - .description("Will switch to a potion when holding a sword") .defaultValue(false) .visible(() -> !rightgapple.get() && !alwaysSwordGap.get()) .build() ); private final Setting potionClick = sgCombat.add(new BoolSetting.Builder() .name("sword-pot") - .description("Will switch to a potion when holding a sword and right click.") .defaultValue(false) .visible(() -> !rightgapple.get() && !alwaysPot.get() && !alwaysSwordGap.get() ) .build() @@ -97,7 +89,6 @@ public class Offhand extends Module { private final Setting minHealth = sgTotem.add(new DoubleSetting.Builder() .name("min-health") - .description("Will hold a totem when below this amount of health.") .defaultValue(10) .range(0,36) .sliderRange(0,36) @@ -106,21 +97,18 @@ public class Offhand extends Module { private final Setting elytra = sgTotem.add(new BoolSetting.Builder() .name("elytra") - .description("Will always hold a totem while flying with an elytra.") .defaultValue(false) .build() ); private final Setting falling = sgTotem.add(new BoolSetting.Builder() .name("falling") - .description("Will hold a totem if fall damage could kill you.") .defaultValue(false) .build() ); private final Setting explosion = sgTotem.add(new BoolSetting.Builder() .name("explosion") - .description("Will hold a totem when explosion damage could kill you.") .defaultValue(true) .build() ); @@ -135,7 +123,7 @@ public class Offhand extends Module { private int totems, ticks; public Offhand() { - super(Categories.Combat, "offhand", "Allows you to hold specified items in your offhand."); + super(Categories.Combat, "offhand"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Quiver.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Quiver.java index 62e5fc0dec..26a8c6ee5d 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Quiver.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Quiver.java @@ -35,19 +35,17 @@ public class Quiver extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgSafety = settings.createGroup("Safety"); + private final SettingGroup sgSafety = settings.createGroup("safety"); private final Setting> effects = sgGeneral.add(new StatusEffectListSetting.Builder() .name("effects") - .description("Which effects to shoot you with.") .defaultValue(StatusEffects.STRENGTH.value()) .build() ); private final Setting cooldown = sgGeneral.add(new IntSetting.Builder() .name("cooldown") - .description("How many ticks between shooting effects (19 minimum for NCP).") .defaultValue(10) .range(0,40) .sliderRange(0,40) @@ -56,21 +54,18 @@ public class Quiver extends Module { private final Setting checkEffects = sgGeneral.add(new BoolSetting.Builder() .name("check-effects") - .description("Won't shoot you with effects you already have.") .defaultValue(true) .build() ); private final Setting silentBow = sgGeneral.add(new BoolSetting.Builder() .name("silent-bow") - .description("Takes a bow from your inventory to quiver.") .defaultValue(true) .build() ); private final Setting chatInfo = sgGeneral.add(new BoolSetting.Builder() .name("chat-info") - .description("Sends info about quiver checks in chat.") .defaultValue(false) .build() ); @@ -79,21 +74,18 @@ public class Quiver extends Module { private final Setting onlyInHoles = sgSafety.add(new BoolSetting.Builder() .name("only-in-holes") - .description("Only quiver when you're in a hole.") .defaultValue(true) .build() ); private final Setting onlyOnGround = sgSafety.add(new BoolSetting.Builder() .name("only-on-ground") - .description("Only quiver when you're on the ground.") .defaultValue(true) .build() ); private final Setting minHealth = sgSafety.add(new DoubleSetting.Builder() .name("min-health") - .description("How much health you must have to quiver.") .defaultValue(10) .range(0,36) .sliderRange(0,36) @@ -107,7 +99,7 @@ public class Quiver extends Module { private final BlockPos.Mutable testPos = new BlockPos.Mutable(); public Quiver() { - super(Categories.Combat, "quiver", "Shoots arrows at yourself."); + super(Categories.Combat, "quiver"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/SelfAnvil.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/SelfAnvil.java index ee1b0a2754..0f074589a8 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/SelfAnvil.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/SelfAnvil.java @@ -18,7 +18,7 @@ public class SelfAnvil extends Module { public SelfAnvil() { - super(Categories.Combat, "self-anvil", "Automatically places an anvil on you to prevent other players from going into your hole."); + super(Categories.Combat, "self-anvil"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/SelfTrap.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/SelfTrap.java index d1706de6b9..f1affec325 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/SelfTrap.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/SelfTrap.java @@ -39,55 +39,48 @@ public enum BottomMode { } private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgRender = settings.createGroup("Render"); + private final SettingGroup sgRender = settings.createGroup("render"); // General private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() .name("whitelist") - .description("Which blocks to use.") .defaultValue(Blocks.OBSIDIAN, Blocks.NETHERITE_BLOCK) .build() ); private final Setting topPlacement = sgGeneral.add(new EnumSetting.Builder() .name("top-mode") - .description("Which positions to place on your top half.") .defaultValue(TopMode.Top) .build() ); private final Setting bottomPlacement = sgGeneral.add(new EnumSetting.Builder() .name("bottom-mode") - .description("Which positions to place on your bottom half.") .defaultValue(BottomMode.None) .build() ); private final Setting delaySetting = sgGeneral.add(new IntSetting.Builder() .name("place-delay") - .description("How many ticks between block placements.") .defaultValue(1) .build() ); private final Setting center = sgGeneral.add(new BoolSetting.Builder() .name("center") - .description("Centers you on the block you are standing on before placing.") .defaultValue(true) .build() ); private final Setting turnOff = sgGeneral.add(new BoolSetting.Builder() .name("turn-off") - .description("Turns off after placing.") .defaultValue(true) .build() ); private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() .name("rotate") - .description("Sends rotation packets to the server when placing.") .defaultValue(true) .build() ); @@ -96,28 +89,24 @@ public enum BottomMode { private final Setting render = sgRender.add(new BoolSetting.Builder() .name("render") - .description("Renders a block overlay where the blocks will be placed.") .defaultValue(true) .build() ); private final Setting shapeMode = sgRender.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .build() ); private final Setting sideColor = sgRender.add(new ColorSetting.Builder() .name("side-color") - .description("The color of the sides of the blocks being rendered.") .defaultValue(new SettingColor(204, 0, 0, 10)) .build() ); private final Setting lineColor = sgRender.add(new ColorSetting.Builder() .name("line-color") - .description("The color of the lines of the blocks being rendered.") .defaultValue(new SettingColor(204, 0, 0, 255)) .build() ); @@ -127,7 +116,7 @@ public enum BottomMode { private int delay; public SelfTrap(){ - super(Categories.Combat, "self-trap", "Places blocks above your head."); + super(Categories.Combat, "self-trap"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/SelfWeb.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/SelfWeb.java index ab3ff3f6bc..da53f86311 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/SelfWeb.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/SelfWeb.java @@ -22,14 +22,12 @@ public class SelfWeb extends Module { private final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("The mode to use for selfweb.") .defaultValue(Mode.Normal) .build() ); private final Setting range = sgGeneral.add(new IntSetting.Builder() .name("range") - .description("How far away the player has to be from you to place webs. Requires Mode to Smart.") .defaultValue(3) .min(1) .sliderRange(1, 7) @@ -39,27 +37,24 @@ public class SelfWeb extends Module { private final Setting doubles = sgGeneral.add(new BoolSetting.Builder() .name("double-place") - .description("Places webs in your upper hitbox as well.") .defaultValue(false) .build() ); private final Setting turnOff = sgGeneral.add(new BoolSetting.Builder() .name("auto-toggle") - .description("Toggles off after placing the webs.") .defaultValue(true) .build() ); private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() .name("rotate") - .description("Forces you to rotate downwards when placing webs.") .defaultValue(true) .build() ); public SelfWeb() { - super(Categories.Combat, "self-web", "Automatically places webs on you."); + super(Categories.Combat, "self-web"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Surround.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Surround.java index e23990d57e..a511033975 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Surround.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Surround.java @@ -44,14 +44,13 @@ public class Surround extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgToggles = settings.createGroup("Toggles"); - private final SettingGroup sgRender = settings.createGroup("Render"); + private final SettingGroup sgToggles = settings.createGroup("toggles"); + private final SettingGroup sgRender = settings.createGroup("render"); // General private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() .name("blocks") - .description("What blocks to use for surround.") .defaultValue(Blocks.OBSIDIAN, Blocks.CRYING_OBSIDIAN, Blocks.NETHERITE_BLOCK) .filter(this::blockFilter) .build() @@ -59,7 +58,6 @@ public class Surround extends Module { private final Setting delay = sgGeneral.add(new IntSetting.Builder() .name("delay") - .description("Delay, in ticks, between block placements.") .min(0) .defaultValue(0) .build() @@ -67,7 +65,6 @@ public class Surround extends Module { private final Setting blocksPerTick = sgGeneral.add(new IntSetting.Builder() .name("blocks-per-tick") - .description("How many blocks to place in one tick.") .defaultValue(1) .min(1) .build() @@ -75,42 +72,36 @@ public class Surround extends Module { private final Setting
center = sgGeneral.add(new EnumSetting.Builder
() .name("center") - .description("Teleports you to the center of the block.") .defaultValue(Center.Incomplete) .build() ); private final Setting doubleHeight = sgGeneral.add(new BoolSetting.Builder() .name("double-height") - .description("Places obsidian on top of the original surround blocks to prevent people from face-placing you.") .defaultValue(false) .build() ); private final Setting onlyOnGround = sgGeneral.add(new BoolSetting.Builder() .name("only-on-ground") - .description("Works only when you are standing on blocks.") .defaultValue(true) .build() ); private final Setting airPlace = sgGeneral.add(new BoolSetting.Builder() .name("air-place") - .description("Allows Surround to place blocks in the air.") .defaultValue(true) .build() ); private final Setting toggleModules = sgGeneral.add(new BoolSetting.Builder() .name("toggle-modules") - .description("Turn off other modules when surround is activated.") .defaultValue(false) .build() ); private final Setting toggleBack = sgGeneral.add(new BoolSetting.Builder() .name("toggle-back-on") - .description("Turn the other modules back on when surround is deactivated.") .defaultValue(false) .visible(toggleModules::get) .build() @@ -118,21 +109,18 @@ public class Surround extends Module { private final Setting> modules = sgGeneral.add(new ModuleListSetting.Builder() .name("modules") - .description("Which modules to disable on activation.") .visible(toggleModules::get) .build() ); private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() .name("rotate") - .description("Automatically faces towards the obsidian being placed.") .defaultValue(true) .build() ); private final Setting protect = sgGeneral.add(new BoolSetting.Builder() .name("protect") - .description("Attempts to break crystals around surround positions to prevent surround break.") .defaultValue(true) .build() ); @@ -141,21 +129,18 @@ public class Surround extends Module { private final Setting toggleOnYChange = sgToggles.add(new BoolSetting.Builder() .name("toggle-on-y-change") - .description("Automatically disables when your y level changes (step, jumping, etc).") .defaultValue(true) .build() ); private final Setting toggleOnComplete = sgToggles.add(new BoolSetting.Builder() .name("toggle-on-complete") - .description("Toggles off when all blocks are placed.") .defaultValue(false) .build() ); private final Setting toggleOnDeath = sgToggles.add(new BoolSetting.Builder() .name("toggle-on-death") - .description("Toggles off when you die.") .defaultValue(true) .build() ); @@ -164,35 +149,30 @@ public class Surround extends Module { private final Setting swing = sgRender.add(new BoolSetting.Builder() .name("swing") - .description("Render your hand swinging when placing surround blocks.") .defaultValue(true) .build() ); private final Setting render = sgRender.add(new BoolSetting.Builder() .name("render") - .description("Renders a block overlay where the obsidian will be placed.") .defaultValue(true) .build() ); private final Setting renderBelow = sgRender.add(new BoolSetting.Builder() .name("below") - .description("Renders the block below you.") .defaultValue(false) .build() ); private final Setting shapeMode = sgRender.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .build() ); private final Setting safeSideColor = sgRender.add(new ColorSetting.Builder() .name("safe-side-color") - .description("The side color for safe blocks.") .defaultValue(new SettingColor(13, 255, 0, 0)) .visible(() -> render.get() && shapeMode.get() != ShapeMode.Lines) .build() @@ -200,7 +180,6 @@ public class Surround extends Module { private final Setting safeLineColor = sgRender.add(new ColorSetting.Builder() .name("safe-line-color") - .description("The line color for safe blocks.") .defaultValue(new SettingColor(13, 255, 0, 0)) .visible(() -> render.get() && shapeMode.get() != ShapeMode.Sides) .build() @@ -208,7 +187,6 @@ public class Surround extends Module { private final Setting normalSideColor = sgRender.add(new ColorSetting.Builder() .name("normal-side-color") - .description("The side color for normal blocks.") .defaultValue(new SettingColor(0, 255, 238, 12)) .visible(() -> render.get() && shapeMode.get() != ShapeMode.Lines) .build() @@ -216,7 +194,6 @@ public class Surround extends Module { private final Setting normalLineColor = sgRender.add(new ColorSetting.Builder() .name("normal-line-color") - .description("The line color for normal blocks.") .defaultValue(new SettingColor(0, 255, 238, 100)) .visible(() -> render.get() && shapeMode.get() != ShapeMode.Sides) .build() @@ -224,7 +201,6 @@ public class Surround extends Module { private final Setting unsafeSideColor = sgRender.add(new ColorSetting.Builder() .name("unsafe-side-color") - .description("The side color for unsafe blocks.") .defaultValue(new SettingColor(204, 0, 0, 12)) .visible(() -> render.get() && shapeMode.get() != ShapeMode.Lines) .build() @@ -232,7 +208,6 @@ public class Surround extends Module { private final Setting unsafeLineColor = sgRender.add(new ColorSetting.Builder() .name("unsafe-line-color") - .description("The line color for unsafe blocks.") .defaultValue(new SettingColor(204, 0, 0, 100)) .visible(() -> render.get() && shapeMode.get() != ShapeMode.Sides) .build() @@ -242,7 +217,7 @@ public class Surround extends Module { private int timer; public Surround() { - super(Categories.Combat, "surround", "Surrounds you in blocks to prevent massive crystal damage."); + super(Categories.Combat, "surround"); } // Render diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/AntiPacketKick.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/AntiPacketKick.java index cf23ec9f5d..4df044e706 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/AntiPacketKick.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/AntiPacketKick.java @@ -16,21 +16,19 @@ public class AntiPacketKick extends Module { public final Setting catchExceptions = sgGeneral.add(new BoolSetting.Builder() .name("catch-exceptions") - .description("Drops corrupted packets.") .defaultValue(false) .build() ); public final Setting logExceptions = sgGeneral.add(new BoolSetting.Builder() .name("log-exceptions") - .description("Logs caught exceptions.") .defaultValue(false) .visible(catchExceptions::get) .build() ); public AntiPacketKick() { - super(Categories.Misc, "anti-packet-kick", "Attempts to prevent you from being disconnected by large packets."); + super(Categories.Misc, "anti-packet-kick"); } public boolean catchExceptions() { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/AutoReconnect.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/AutoReconnect.java index 997f57d442..d9fae8cbbc 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/AutoReconnect.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/AutoReconnect.java @@ -24,7 +24,6 @@ public class AutoReconnect extends Module { public final Setting time = sgGeneral.add(new DoubleSetting.Builder() .name("delay") - .description("The amount of seconds to wait before reconnecting to the server.") .defaultValue(3.5) .min(0) .decimalPlaces(1) @@ -33,7 +32,6 @@ public class AutoReconnect extends Module { public final Setting button = sgGeneral.add(new BoolSetting.Builder() .name("hide-buttons") - .description("Will hide the buttons related to Auto Reconnect.") .defaultValue(false) .build() ); @@ -41,7 +39,7 @@ public class AutoReconnect extends Module { public Pair lastServerConnection; public AutoReconnect() { - super(Categories.Misc, "auto-reconnect", "Automatically reconnects when disconnected from a server."); + super(Categories.Misc, "auto-reconnect"); MeteorClient.EVENT_BUS.subscribe(new StaticListener()); } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/BetterBeacons.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/BetterBeacons.java index de0fbddf72..20ab135611 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/BetterBeacons.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/BetterBeacons.java @@ -10,6 +10,6 @@ public class BetterBeacons extends Module { public BetterBeacons() { - super(Categories.Misc, "better-beacons", "Select effects unaffected by beacon level."); + super(Categories.Misc, "better-beacons"); } } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/BetterChat.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/BetterChat.java index fe3757a136..ac4f510c41 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/BetterChat.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/BetterChat.java @@ -48,35 +48,31 @@ public class BetterChat extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgFilter = settings.createGroup("Filter"); - private final SettingGroup sgLongerChat = settings.createGroup("Longer Chat"); - private final SettingGroup sgPrefix = settings.createGroup("Prefix"); - private final SettingGroup sgSuffix = settings.createGroup("Suffix"); + private final SettingGroup sgFilter = settings.createGroup("filter"); + private final SettingGroup sgLongerChat = settings.createGroup("longer-chat"); + private final SettingGroup sgPrefix = settings.createGroup("prefix"); + private final SettingGroup sgSuffix = settings.createGroup("suffix"); private final Setting annoy = sgGeneral.add(new BoolSetting.Builder() .name("annoy") - .description("Makes your messages aNnOyInG.") .defaultValue(false) .build() ); private final Setting fancy = sgGeneral.add(new BoolSetting.Builder() .name("fancy-chat") - .description("Makes your messages ғᴀɴᴄʏ!") .defaultValue(false) .build() ); private final Setting timestamps = sgGeneral.add(new BoolSetting.Builder() .name("timestamps") - .description("Adds client-side time stamps to the beginning of chat messages.") .defaultValue(false) .build() ); private final Setting showSeconds = sgGeneral.add(new BoolSetting.Builder() .name("show-seconds") - .description("Shows seconds in the chat message timestamps") .defaultValue(false) .visible(timestamps::get) .onChanged(o -> updateDateFormat()) @@ -85,21 +81,18 @@ public class BetterChat extends Module { private final Setting playerHeads = sgGeneral.add(new BoolSetting.Builder() .name("player-heads") - .description("Displays player heads next to their messages.") .defaultValue(true) .build() ); private final Setting coordsProtection = sgGeneral.add(new BoolSetting.Builder() .name("coords-protection") - .description("Prevents you from sending messages in chat that may contain coordinates.") .defaultValue(true) .build() ); private final Setting keepHistory = sgGeneral.add(new BoolSetting.Builder() .name("keep-history") - .description("Prevents the chat history from being cleared when disconnecting.") .defaultValue(true) .build() ); @@ -108,14 +101,12 @@ public class BetterChat extends Module { private final Setting antiSpam = sgFilter.add(new BoolSetting.Builder() .name("anti-spam") - .description("Blocks duplicate messages from filling your chat.") .defaultValue(true) .build() ); private final Setting antiSpamDepth = sgFilter.add(new IntSetting.Builder() .name("depth") - .description("How many messages to filter.") .defaultValue(20) .min(1) .sliderMin(1) @@ -125,21 +116,18 @@ public class BetterChat extends Module { private final Setting antiClear = sgFilter.add(new BoolSetting.Builder() .name("anti-clear") - .description("Prevents servers from clearing chat.") .defaultValue(true) .build() ); private final Setting filterRegex = sgFilter.add(new BoolSetting.Builder() .name("filter-regex") - .description("Filter out chat messages that match the regex filter.") .defaultValue(false) .build() ); private final Setting> regexFilters = sgFilter.add(new StringListSetting.Builder() .name("regex-filter") - .description("Regex filter used for filtering chat messages.") .visible(filterRegex::get) .onChanged(strings -> compileFilterRegexList()) .build() @@ -150,21 +138,18 @@ public class BetterChat extends Module { private final Setting infiniteChatBox = sgLongerChat.add(new BoolSetting.Builder() .name("infinite-chat-box") - .description("Lets you type infinitely long messages.") .defaultValue(true) .build() ); private final Setting longerChatHistory = sgLongerChat.add(new BoolSetting.Builder() .name("longer-chat-history") - .description("Extends chat length.") .defaultValue(true) .build() ); private final Setting longerChatLines = sgLongerChat.add(new IntSetting.Builder() .name("extra-lines") - .description("The amount of extra chat lines.") .defaultValue(1000) .min(0) .sliderRange(0, 1000) @@ -176,21 +161,18 @@ public class BetterChat extends Module { private final Setting prefix = sgPrefix.add(new BoolSetting.Builder() .name("prefix") - .description("Adds a prefix to your chat messages.") .defaultValue(false) .build() ); private final Setting prefixRandom = sgPrefix.add(new BoolSetting.Builder() .name("random") - .description("Uses a random number as your prefix.") .defaultValue(false) .build() ); private final Setting prefixText = sgPrefix.add(new StringSetting.Builder() .name("text") - .description("The text to add as your prefix.") .defaultValue("> ") .visible(() -> !prefixRandom.get()) .build() @@ -198,7 +180,6 @@ public class BetterChat extends Module { private final Setting prefixSmallCaps = sgPrefix.add(new BoolSetting.Builder() .name("small-caps") - .description("Uses small caps in the prefix.") .defaultValue(false) .visible(() -> !prefixRandom.get()) .build() @@ -208,21 +189,18 @@ public class BetterChat extends Module { private final Setting suffix = sgSuffix.add(new BoolSetting.Builder() .name("suffix") - .description("Adds a suffix to your chat messages.") .defaultValue(false) .build() ); private final Setting suffixRandom = sgSuffix.add(new BoolSetting.Builder() .name("random") - .description("Uses a random number as your suffix.") .defaultValue(false) .build() ); private final Setting suffixText = sgSuffix.add(new StringSetting.Builder() .name("text") - .description("The text to add as your suffix.") .defaultValue(" | meteor on crack!") .visible(() -> !suffixRandom.get()) .build() @@ -230,7 +208,6 @@ public class BetterChat extends Module { private final Setting suffixSmallCaps = sgSuffix.add(new BoolSetting.Builder() .name("small-caps") - .description("Uses small caps in the suffix.") .defaultValue(true) .visible(() -> !suffixRandom.get()) .build() @@ -245,7 +222,7 @@ public class BetterChat extends Module { public final IntList lines = new IntArrayList(); public BetterChat() { - super(Categories.Misc, "better-chat", "Improves your chat experience in various ways."); + super(Categories.Misc, "better-chat"); String[] a = "abcdefghijklmnopqrstuvwxyz".split(""); String[] b = "ᴀʙᴄᴅᴇꜰɢʜɪᴊᴋʟᴍɴᴏᴩqʀꜱᴛᴜᴠᴡxyᴢ".split(""); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/BookBot.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/BookBot.java index dc900275eb..9e8734dc42 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/BookBot.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/BookBot.java @@ -51,14 +51,12 @@ public class BookBot extends Module { private final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("What kind of text to write.") .defaultValue(Mode.Random) .build() ); private final Setting pages = sgGeneral.add(new IntSetting.Builder() .name("pages") - .description("The number of pages to write per book.") .defaultValue(50) .range(1, 100) .sliderRange(1, 100) @@ -68,7 +66,6 @@ public class BookBot extends Module { private final Setting onlyAscii = sgGeneral.add(new BoolSetting.Builder() .name("ascii-only") - .description("Only uses the characters in the ASCII charset.") .defaultValue(false) .visible(() -> mode.get() == Mode.Random) .build() @@ -76,7 +73,6 @@ public class BookBot extends Module { private final Setting delay = sgGeneral.add(new IntSetting.Builder() .name("delay") - .description("The amount of delay between writing books.") .defaultValue(20) .min(1) .sliderRange(1, 200) @@ -85,14 +81,12 @@ public class BookBot extends Module { private final Setting sign = sgGeneral.add(new BoolSetting.Builder() .name("sign") - .description("Whether to sign the book.") .defaultValue(true) .build() ); private final Setting name = sgGeneral.add(new StringSetting.Builder() .name("name") - .description("The name you want to give your books.") .defaultValue("Meteor on Crack!") .visible(sign::get) .build() @@ -100,7 +94,6 @@ public class BookBot extends Module { private final Setting count = sgGeneral.add(new BoolSetting.Builder() .name("append-count") - .description("Whether to append the number of the book to the title.") .defaultValue(true) .visible(sign::get) .build() @@ -108,7 +101,6 @@ public class BookBot extends Module { private final Setting wordWrap = sgGeneral.add(new BoolSetting.Builder() .name("word-wrap") - .description("Prevents words from being cut in the middle of lines.") .defaultValue(true) .visible(() -> mode.get() == Mode.File) .build() @@ -121,7 +113,7 @@ public class BookBot extends Module { private Random random; public BookBot() { - super(Categories.Misc, "book-bot", "Automatically writes in books."); + super(Categories.Misc, "book-bot"); if (!file.exists()) { file = null; diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/DiscordPresence.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/DiscordPresence.java index 5a36774923..8e130c96c9 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/DiscordPresence.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/DiscordPresence.java @@ -46,14 +46,13 @@ public enum SelectMode { Sequential } - private final SettingGroup sgLine1 = settings.createGroup("Line 1"); - private final SettingGroup sgLine2 = settings.createGroup("Line 2"); + private final SettingGroup sgLine1 = settings.createGroup("line-1"); + private final SettingGroup sgLine2 = settings.createGroup("line-2"); // Line 1 private final Setting> line1Strings = sgLine1.add(new StringListSetting.Builder() .name("line-1-messages") - .description("Messages used for the first line.") .defaultValue("{player}", "{server}") .onChanged(strings -> recompileLine1()) .renderer(StarscriptTextBoxRenderer.class) @@ -62,7 +61,6 @@ public enum SelectMode { private final Setting line1UpdateDelay = sgLine1.add(new IntSetting.Builder() .name("line-1-update-delay") - .description("How fast to update the first line in ticks.") .defaultValue(200) .min(10) .sliderRange(10, 200) @@ -71,7 +69,6 @@ public enum SelectMode { private final Setting line1SelectMode = sgLine1.add(new EnumSetting.Builder() .name("line-1-select-mode") - .description("How to select messages for the first line.") .defaultValue(SelectMode.Sequential) .build() ); @@ -80,7 +77,6 @@ public enum SelectMode { private final Setting> line2Strings = sgLine2.add(new StringListSetting.Builder() .name("line-2-messages") - .description("Messages used for the second line.") .defaultValue("Meteor on Crack!", "{round(server.tps, 1)} TPS", "Playing on {server.difficulty} difficulty.", "{server.player_count} Players online") .onChanged(strings -> recompileLine2()) .renderer(StarscriptTextBoxRenderer.class) @@ -89,7 +85,6 @@ public enum SelectMode { private final Setting line2UpdateDelay = sgLine2.add(new IntSetting.Builder() .name("line-2-update-delay") - .description("How fast to update the second line in ticks.") .defaultValue(60) .min(10) .sliderRange(10, 200) @@ -98,7 +93,6 @@ public enum SelectMode { private final Setting line2SelectMode = sgLine2.add(new EnumSetting.Builder() .name("line-2-select-mode") - .description("How to select messages for the second line.") .defaultValue(SelectMode.Sequential) .build() ); @@ -122,7 +116,7 @@ public enum SelectMode { } public DiscordPresence() { - super(Categories.Misc, "discord-presence", "Displays Meteor as your presence on Discord."); + super(Categories.Misc, "discord-presence"); runInMainMenu = true; } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/InventoryTweaks.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/InventoryTweaks.java index 8a13ebb7f2..6c8e3bd5e9 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/InventoryTweaks.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/InventoryTweaks.java @@ -43,24 +43,22 @@ public class InventoryTweaks extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgSorting = settings.createGroup("Sorting"); - private final SettingGroup sgAntiDrop = settings.createGroup("Anti Drop"); - private final SettingGroup sgAutoDrop = settings.createGroup("Auto Drop"); - private final SettingGroup sgStealDump = settings.createGroup("Steal and Dump"); - private final SettingGroup sgAutoSteal = settings.createGroup("Auto Steal"); + private final SettingGroup sgSorting = settings.createGroup("sorting"); + private final SettingGroup sgAntiDrop = settings.createGroup("anti-drop"); + private final SettingGroup sgAutoDrop = settings.createGroup("auto-drop"); + private final SettingGroup sgStealDump = settings.createGroup("steal-and-dump"); + private final SettingGroup sgAutoSteal = settings.createGroup("auto-steal"); // General private final Setting mouseDragItemMove = sgGeneral.add(new BoolSetting.Builder() .name("mouse-drag-item-move") - .description("Moving mouse over items while holding shift will transfer it to the other container.") .defaultValue(true) .build() ); private final Setting xCarry = sgGeneral.add(new BoolSetting.Builder() .name("xcarry") - .description("Allows you to store four extra item stacks in your crafting grid.") .defaultValue(true) .onChanged(v -> { if (v || !Utils.canUpdate()) return; @@ -74,14 +72,12 @@ public class InventoryTweaks extends Module { private final Setting sortingEnabled = sgSorting.add(new BoolSetting.Builder() .name("sorting-enabled") - .description("Automatically sorts stacks in inventory.") .defaultValue(true) .build() ); private final Setting sortingKey = sgSorting.add(new KeybindSetting.Builder() .name("sorting-key") - .description("Key to trigger the sort.") .visible(sortingEnabled::get) .defaultValue(Keybind.fromButton(GLFW.GLFW_MOUSE_BUTTON_MIDDLE)) .build() @@ -89,7 +85,6 @@ public class InventoryTweaks extends Module { private final Setting sortingDelay = sgSorting.add(new IntSetting.Builder() .name("sorting-delay") - .description("Delay in ticks between moving items when sorting.") .visible(sortingEnabled::get) .defaultValue(1) .min(0) @@ -98,7 +93,6 @@ public class InventoryTweaks extends Module { private final Setting disableInCreative = sgSorting.add(new BoolSetting.Builder() .name("disable-in-creative") - .description("Disables the inventory sorter when in creative mode.") .defaultValue(true) .visible(sortingEnabled::get) .build() @@ -106,7 +100,6 @@ public class InventoryTweaks extends Module { private final Setting uncapBundleScrolling = sgGeneral.add(new BoolSetting.Builder() .name("uncap-bundle-scrolling") - .description("Whether to uncap the bundle scrolling feature to let you select any item.") .defaultValue(true) .build() ); @@ -115,20 +108,17 @@ public class InventoryTweaks extends Module { private final Setting> antiDropItems = sgAntiDrop.add(new ItemListSetting.Builder() .name("anti-drop-items") - .description("Items to prevent dropping. Doesn't work in creative inventory screen.") .build() ); private final Setting antiItemFrame = sgAntiDrop.add(new BoolSetting.Builder() .name("item-frames") - .description("Prevent anti-drop items from being placed in item frames or pots") .defaultValue(true) .build() ); private final Setting antiDropOverrideBind = sgAntiDrop.add(new KeybindSetting.Builder() .name("override-bind") - .description("Hold this bind to temporarily bypass anti-drop") .build() ); @@ -136,27 +126,23 @@ public class InventoryTweaks extends Module { private final Setting> autoDropItems = sgAutoDrop.add(new ItemListSetting.Builder() .name("auto-drop-items") - .description("Items to drop.") .build() ); private final Setting autoDropExcludeEquipped = sgAutoDrop.add(new BoolSetting.Builder() .name("exclude-equipped") - .description("Whether or not to drop items equipped in armor slots.") .defaultValue(true) .build() ); private final Setting autoDropExcludeHotbar = sgAutoDrop.add(new BoolSetting.Builder() .name("exclude-hotbar") - .description("Whether or not to drop items from your hotbar.") .defaultValue(false) .build() ); private final Setting autoDropOnlyFullStacks = sgAutoDrop.add(new BoolSetting.Builder() .name("only-full-stacks") - .description("Only drops the items if the stack is full.") .defaultValue(false) .build() ); @@ -165,28 +151,24 @@ public class InventoryTweaks extends Module { public final Setting>> stealScreens = sgStealDump.add(new ScreenHandlerListSetting.Builder() .name("steal-screens") - .description("Select the screens to display buttons and auto steal.") .defaultValue(List.of(ScreenHandlerType.GENERIC_9X3, ScreenHandlerType.GENERIC_9X6)) .build() ); private final Setting buttons = sgStealDump.add(new BoolSetting.Builder() .name("inventory-buttons") - .description("Shows steal and dump buttons in container guis.") .defaultValue(true) .build() ); private final Setting stealDrop = sgStealDump.add(new BoolSetting.Builder() .name("steal-drop") - .description("Drop items to the ground instead of stealing them.") .defaultValue(false) .build() ); private final Setting dropBackwards = sgStealDump.add(new BoolSetting.Builder() .name("drop-backwards") - .description("Drop items behind you.") .defaultValue(false) .visible(stealDrop::get) .build() @@ -194,27 +176,23 @@ public class InventoryTweaks extends Module { private final Setting dumpFilter = sgStealDump.add(new EnumSetting.Builder() .name("dump-filter") - .description("Dump mode.") .defaultValue(ListMode.None) .build() ); private final Setting> dumpItems = sgStealDump.add(new ItemListSetting.Builder() .name("dump-items") - .description("Items to dump.") .build() ); private final Setting stealFilter = sgStealDump.add(new EnumSetting.Builder() .name("steal-filter") - .description("Steal mode.") .defaultValue(ListMode.None) .build() ); private final Setting> stealItems = sgStealDump.add(new ItemListSetting.Builder() .name("steal-items") - .description("Items to steal.") .build() ); @@ -222,7 +200,6 @@ public class InventoryTweaks extends Module { private final Setting autoSteal = sgAutoSteal.add(new BoolSetting.Builder() .name("auto-steal") - .description("Automatically removes all possible items when you open a container.") .defaultValue(false) .onChanged(val -> checkAutoStealSettings()) .build() @@ -230,7 +207,6 @@ public class InventoryTweaks extends Module { private final Setting autoDump = sgAutoSteal.add(new BoolSetting.Builder() .name("auto-dump") - .description("Automatically dumps all possible items when you open a container.") .defaultValue(false) .onChanged(val -> checkAutoStealSettings()) .build() @@ -238,7 +214,6 @@ public class InventoryTweaks extends Module { private final Setting autoStealDelay = sgAutoSteal.add(new IntSetting.Builder() .name("delay") - .description("The minimum delay between stealing the next stack in milliseconds.") .defaultValue(20) .sliderMax(1000) .build() @@ -246,7 +221,6 @@ public class InventoryTweaks extends Module { private final Setting autoStealInitDelay = sgAutoSteal.add(new IntSetting.Builder() .name("initial-delay") - .description("The initial delay before stealing in milliseconds. 0 to use normal delay instead.") .defaultValue(50) .sliderMax(1000) .build() @@ -254,7 +228,6 @@ public class InventoryTweaks extends Module { private final Setting autoStealRandomDelay = sgAutoSteal.add(new IntSetting.Builder() .name("random") - .description("Randomly adds a delay of up to the specified time in milliseconds.") .min(0) .sliderMax(1000) .defaultValue(50) @@ -265,7 +238,7 @@ public class InventoryTweaks extends Module { private boolean invOpened; public InventoryTweaks() { - super(Categories.Misc, "inventory-tweaks", "Various inventory related utilities."); + super(Categories.Misc, "inventory-tweaks"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/MessageAura.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/MessageAura.java index 23c795b191..2e57211dcb 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/MessageAura.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/MessageAura.java @@ -22,20 +22,18 @@ public class MessageAura extends Module { private final Setting message = sgGeneral.add(new StringSetting.Builder() .name("message") - .description("The specified message sent to the player.") .defaultValue("Meteor on Crack!") .build() ); private final Setting ignoreFriends = sgGeneral.add(new BoolSetting.Builder() .name("ignore-friends") - .description("Will not send any messages to people friended.") .defaultValue(false) .build() ); public MessageAura() { - super(Categories.Misc, "message-aura", "Sends a specified message to any player that enters render distance."); + super(Categories.Misc, "message-aura"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/Notebot.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/Notebot.java index f5a5afea78..bb3b9435d9 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/Notebot.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/Notebot.java @@ -61,12 +61,11 @@ public class Notebot extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgNoteMap = settings.createGroup("Note Map", false); - private final SettingGroup sgRender = settings.createGroup("Render", true); + private final SettingGroup sgNoteMap = settings.createGroup("note-map", false); + private final SettingGroup sgRender = settings.createGroup("render", true); public final Setting tickDelay = sgGeneral.add(new IntSetting.Builder() .name("tick-delay") - .description("The delay when loading a song.") .defaultValue(1) .sliderRange(1, 20) .min(1) @@ -75,7 +74,6 @@ public class Notebot extends Module { public final Setting concurrentTuneBlocks = sgGeneral.add(new IntSetting.Builder() .name("concurrent-tune-blocks") - .description("How many noteblocks can be tuned at the same time. On Paper it is recommended to set it to 1 to avoid bugs.") .defaultValue(1) .min(1) .sliderRange(1, 20) @@ -84,56 +82,48 @@ public class Notebot extends Module { public final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("Select mode of notebot") .defaultValue(NotebotUtils.NotebotMode.ExactInstruments) .build() ); public final Setting instrumentDetectMode = sgGeneral.add(new EnumSetting.Builder() .name("instrument-detect-mode") - .description("Select an instrument detect mode. Can be useful when server has a plugin that modifies noteblock state (e.g ItemsAdder) but noteblock can still play the right note") .defaultValue(InstrumentDetectMode.BlockState) .build() ); public final Setting polyphonic = sgGeneral.add(new BoolSetting.Builder() .name("polyphonic") - .description("Whether or not to allow multiple notes to be played at the same time") .defaultValue(true) .build() ); public final Setting autoRotate = sgGeneral.add(new BoolSetting.Builder() .name("auto-rotate") - .description("Should client look at note block when it wants to hit it") .defaultValue(true) .build() ); public final Setting autoPlay = sgGeneral.add(new BoolSetting.Builder() .name("auto-play") - .description("Auto plays random songs") .defaultValue(false) .build() ); public final Setting roundOutOfRange = sgGeneral.add(new BoolSetting.Builder() .name("round-out-of-range") - .description("Rounds out of range notes") .defaultValue(false) .build() ); public final Setting swingArm = sgGeneral.add(new BoolSetting.Builder() .name("swing-arm") - .description("Should swing arm on hit") .defaultValue(true) .build() ); public final Setting checkNoteblocksAgainDelay = sgGeneral.add(new IntSetting.Builder() .name("check-noteblocks-again-delay") - .description("How much delay should be between end of tuning and checking again") .defaultValue(10) .min(1) .sliderRange(1, 20) @@ -142,84 +132,72 @@ public class Notebot extends Module { public final Setting renderText = sgRender.add(new BoolSetting.Builder() .name("render-text") - .description("Whether or not to render the text above noteblocks.") .defaultValue(true) .build() ); public final Setting renderBoxes = sgRender.add(new BoolSetting.Builder() .name("render-boxes") - .description("Whether or not to render the outline around the noteblocks.") .defaultValue(true) .build() ); public final Setting shapeMode = sgRender.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .build() ); public final Setting untunedSideColor = sgRender.add(new ColorSetting.Builder() .name("untuned-side-color") - .description("The color of the sides of the untuned blocks being rendered.") .defaultValue(new SettingColor(204, 0, 0, 10)) .build() ); public final Setting untunedLineColor = sgRender.add(new ColorSetting.Builder() .name("untuned-line-color") - .description("The color of the lines of the untuned blocks being rendered.") .defaultValue(new SettingColor(204, 0, 0, 255)) .build() ); public final Setting tunedSideColor = sgRender.add(new ColorSetting.Builder() .name("tuned-side-color") - .description("The color of the sides of the tuned blocks being rendered.") .defaultValue(new SettingColor(0, 204, 0, 10)) .build() ); public final Setting tunedLineColor = sgRender.add(new ColorSetting.Builder() .name("tuned-line-color") - .description("The color of the lines of the tuned blocks being rendered.") .defaultValue(new SettingColor(0, 204, 0, 255)) .build() ); public final Setting tuneHitSideColor = sgRender.add(new ColorSetting.Builder() .name("hit-side-color") - .description("The color of the sides being rendered on noteblock tune hit.") .defaultValue(new SettingColor(255, 153, 0, 10)) .build() ); private final Setting tuneHitLineColor = sgRender.add(new ColorSetting.Builder() .name("hit-line-color") - .description("The color of the lines being rendered on noteblock tune hit.") .defaultValue(new SettingColor(255, 153, 0, 255)) .build() ); public final Setting scannedNoteblockSideColor = sgRender.add(new ColorSetting.Builder() .name("scanned-noteblock-side-color") - .description("The color of the sides of the scanned noteblocks being rendered.") .defaultValue(new SettingColor(255, 255, 0, 30)) .build() ); private final Setting scannedNoteblockLineColor = sgRender.add(new ColorSetting.Builder() .name("scanned-noteblock-line-color") - .description("The color of the lines of the scanned noteblocks being rendered.") .defaultValue(new SettingColor(255, 255, 0, 255)) .build() ); public final Setting noteTextScale = sgRender.add(new DoubleSetting.Builder() .name("note-text-scale") - .description("The scale.") .defaultValue(1.5) .min(0) .build() @@ -227,7 +205,6 @@ public class Notebot extends Module { public final Setting showScannedNoteblocks = sgRender.add(new BoolSetting.Builder() .name("show-scanned-noteblocks") - .description("Show scanned Noteblocks") .defaultValue(false) .build() ); @@ -252,7 +229,7 @@ public class Notebot extends Module { public Notebot() { - super(Categories.Misc, "notebot", "Plays noteblock nicely"); + super(Categories.Misc, "notebot"); for (NoteBlockInstrument inst : NoteBlockInstrument.values()) { NotebotUtils.OptionalInstrument optionalInstrument = NotebotUtils.OptionalInstrument.fromMinecraftInstrument(inst); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/Notifier.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/Notifier.java index aee4004eef..a5dcf327c1 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/Notifier.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/Notifier.java @@ -43,23 +43,21 @@ import static meteordevelopment.meteorclient.utils.player.ChatUtils.formatCoords; public class Notifier extends Module { - private final SettingGroup sgTotemPops = settings.createGroup("Totem Pops"); - private final SettingGroup sgVisualRange = settings.createGroup("Visual Range"); - private final SettingGroup sgPearl = settings.createGroup("Pearl"); - private final SettingGroup sgJoinsLeaves = settings.createGroup("Joins/Leaves"); + private final SettingGroup sgTotemPops = settings.createGroup("totem-pops"); + private final SettingGroup sgVisualRange = settings.createGroup("visual-range"); + private final SettingGroup sgPearl = settings.createGroup("pearl"); + private final SettingGroup sgJoinsLeaves = settings.createGroup("joins/leaves"); // Totem Pops private final Setting totemPops = sgTotemPops.add(new BoolSetting.Builder() .name("totem-pops") - .description("Notifies you when a player pops a totem.") .defaultValue(true) .build() ); private final Setting totemsDistanceCheck = sgTotemPops.add(new BoolSetting.Builder() .name("distance-check") - .description("Limits the distance in which the pops are recognized.") .defaultValue(false) .visible(totemPops::get) .build() @@ -67,7 +65,6 @@ public class Notifier extends Module { private final Setting totemsDistance = sgTotemPops.add(new IntSetting.Builder() .name("player-radius") - .description("The radius in which to log totem pops.") .defaultValue(30) .sliderRange(1, 50) .range(1, 100) @@ -77,21 +74,18 @@ public class Notifier extends Module { private final Setting totemsIgnoreOwn = sgTotemPops.add(new BoolSetting.Builder() .name("ignore-own") - .description("Ignores your own totem pops.") .defaultValue(false) .build() ); private final Setting totemsIgnoreFriends = sgTotemPops.add(new BoolSetting.Builder() .name("ignore-friends") - .description("Ignores friends totem pops.") .defaultValue(false) .build() ); private final Setting totemsIgnoreOthers = sgTotemPops.add(new BoolSetting.Builder() .name("ignore-others") - .description("Ignores other players totem pops.") .defaultValue(false) .build() ); @@ -100,42 +94,36 @@ public class Notifier extends Module { private final Setting visualRange = sgVisualRange.add(new BoolSetting.Builder() .name("visual-range") - .description("Notifies you when an entity enters your render distance.") .defaultValue(false) .build() ); private final Setting event = sgVisualRange.add(new EnumSetting.Builder() .name("event") - .description("When to log the entities.") .defaultValue(Event.Both) .build() ); private final Setting>> entities = sgVisualRange.add(new EntityTypeListSetting.Builder() .name("entities") - .description("Which entities to notify about.") .defaultValue(EntityType.PLAYER) .build() ); private final Setting visualRangeIgnoreFriends = sgVisualRange.add(new BoolSetting.Builder() .name("ignore-friends") - .description("Ignores friends.") .defaultValue(true) .build() ); private final Setting visualRangeIgnoreFakes = sgVisualRange.add(new BoolSetting.Builder() .name("ignore-fake-players") - .description("Ignores fake players.") .defaultValue(true) .build() ); private final Setting visualMakeSound = sgVisualRange.add(new BoolSetting.Builder() .name("sound") - .description("Emits a sound effect on enter / leave") .defaultValue(true) .build() ); @@ -144,21 +132,18 @@ public class Notifier extends Module { private final Setting pearl = sgPearl.add(new BoolSetting.Builder() .name("pearl") - .description("Notifies you when a player is teleported using an ender pearl.") .defaultValue(true) .build() ); private final Setting pearlIgnoreOwn = sgPearl.add(new BoolSetting.Builder() .name("ignore-own") - .description("Ignores your own pearls.") .defaultValue(false) .build() ); private final Setting pearlIgnoreFriends = sgPearl.add(new BoolSetting.Builder() .name("ignore-friends") - .description("Ignores friends pearls.") .defaultValue(false) .build() ); @@ -167,14 +152,12 @@ public class Notifier extends Module { private final Setting joinsLeavesMode = sgJoinsLeaves.add(new EnumSetting.Builder() .name("player-joins-leaves") - .description("How to handle player join/leave notifications.") .defaultValue(JoinLeaveModes.None) .build() ); private final Setting notificationDelay = sgJoinsLeaves.add(new IntSetting.Builder() .name("notification-delay") - .description("How long to wait in ticks before posting the next join/leave notification in your chat.") .range(0, 1000) .sliderRange(0, 100) .defaultValue(0) @@ -183,7 +166,6 @@ public class Notifier extends Module { private final Setting simpleNotifications = sgJoinsLeaves.add(new BoolSetting.Builder() .name("simple-notifications") - .description("Display join/leave notifications without a prefix, to reduce chat clutter.") .defaultValue(true) .build() ); @@ -198,7 +180,7 @@ public class Notifier extends Module { private final Random random = new Random(); public Notifier() { - super(Categories.Misc, "notifier", "Notifies you of different events."); + super(Categories.Misc, "notifier"); } // Visual Range diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/PacketCanceller.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/PacketCanceller.java index ba7a2c1f15..7f84cd8321 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/PacketCanceller.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/PacketCanceller.java @@ -23,20 +23,18 @@ public class PacketCanceller extends Module { private final Setting>>> s2cPackets = sgGeneral.add(new PacketListSetting.Builder() .name("S2C-packets") - .description("Server-to-client packets to cancel.") .filter(aClass -> PacketUtils.getS2CPackets().contains(aClass)) .build() ); private final Setting>>> c2sPackets = sgGeneral.add(new PacketListSetting.Builder() .name("C2S-packets") - .description("Client-to-server packets to cancel.") .filter(aClass -> PacketUtils.getC2SPackets().contains(aClass)) .build() ); public PacketCanceller() { - super(Categories.Misc, "packet-canceller", "Allows you to cancel certain packets."); + super(Categories.Misc, "packet-canceller"); runInMainMenu = true; } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/ServerSpoof.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/ServerSpoof.java index c4000b203e..0ef69798c5 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/ServerSpoof.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/ServerSpoof.java @@ -36,14 +36,12 @@ public class ServerSpoof extends Module { private final Setting spoofBrand = sgGeneral.add(new BoolSetting.Builder() .name("spoof-brand") - .description("Whether or not to spoof the brand.") .defaultValue(true) .build() ); private final Setting brand = sgGeneral.add(new StringSetting.Builder() .name("brand") - .description("Specify the brand that will be send to the server.") .defaultValue("vanilla") .visible(spoofBrand::get) .build() @@ -51,21 +49,18 @@ public class ServerSpoof extends Module { private final Setting resourcePack = sgGeneral.add(new BoolSetting.Builder() .name("resource-pack") - .description("Spoof accepting server resource pack.") .defaultValue(false) .build() ); private final Setting blockChannels = sgGeneral.add(new BoolSetting.Builder() .name("block-channels") - .description("Whether or not to block some channels.") .defaultValue(true) .build() ); private final Setting> channels = sgGeneral.add(new StringListSetting.Builder() .name("channels") - .description("If the channel contains the keyword, this outgoing channel will be blocked.") .defaultValue("fabric", "minecraft:register") .visible(blockChannels::get) .build() @@ -75,7 +70,7 @@ public class ServerSpoof extends Module { public boolean silentAcceptResourcePack = false; public ServerSpoof() { - super(Categories.Misc, "server-spoof", "Spoof client brand, resource pack and channels."); + super(Categories.Misc, "server-spoof"); runInMainMenu = true; } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/SoundBlocker.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/SoundBlocker.java index 7b2ff09a72..1a0c636f20 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/SoundBlocker.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/SoundBlocker.java @@ -23,12 +23,11 @@ public class SoundBlocker extends Module { private final Setting> sounds = sgGeneral.add(new SoundEventListSetting.Builder() .name("sounds") - .description("Sounds to block.") .build() ); public SoundBlocker() { - super(Categories.Misc, "sound-blocker", "Cancels out selected sounds."); + super(Categories.Misc, "sound-blocker"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/Spam.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/Spam.java index 5315c3e448..c27dee6643 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/Spam.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/Spam.java @@ -24,14 +24,12 @@ public class Spam extends Module { private final Setting> messages = sgGeneral.add(new StringListSetting.Builder() .name("messages") - .description("Messages to use for spam.") .defaultValue(List.of("Meteor on Crack!")) .build() ); private final Setting delay = sgGeneral.add(new IntSetting.Builder() .name("delay") - .description("The delay between specified messages in ticks.") .defaultValue(20) .min(0) .sliderMax(200) @@ -40,35 +38,30 @@ public class Spam extends Module { private final Setting disableOnLeave = sgGeneral.add(new BoolSetting.Builder() .name("disable-on-leave") - .description("Disables spam when you leave a server.") .defaultValue(true) .build() ); private final Setting disableOnDisconnect = sgGeneral.add(new BoolSetting.Builder() .name("disable-on-disconnect") - .description("Disables spam when you are disconnected from a server.") .defaultValue(true) .build() ); private final Setting random = sgGeneral.add(new BoolSetting.Builder() .name("randomise") - .description("Selects a random message from your spam message list.") .defaultValue(false) .build() ); private final Setting autoSplitMessages = sgGeneral.add(new BoolSetting.Builder() .name("auto-split-messages") - .description("Automatically split up large messages after a certain length") .defaultValue(false) .build() ); private final Setting splitLength = sgGeneral.add(new IntSetting.Builder() .name("split-length") - .description("The length after which to split messages in chat") .visible(autoSplitMessages::get) .defaultValue(256) .min(1) @@ -78,7 +71,6 @@ public class Spam extends Module { private final Setting autoSplitDelay = sgGeneral.add(new IntSetting.Builder() .name("split-delay") - .description("The delay between split messages in ticks.") .visible(autoSplitMessages::get) .defaultValue(20) .min(0) @@ -88,14 +80,12 @@ public class Spam extends Module { private final Setting bypass = sgGeneral.add(new BoolSetting.Builder() .name("bypass") - .description("Add random text at the end of the message to try to bypass anti spams.") .defaultValue(false) .build() ); private final Setting uppercase = sgGeneral.add(new BoolSetting.Builder() .name("include-uppercase-characters") - .description("Whether the bypass text should include uppercase characters.") .visible(bypass::get) .defaultValue(true) .build() @@ -103,7 +93,6 @@ public class Spam extends Module { private final Setting length = sgGeneral.add(new IntSetting.Builder() .name("length") - .description("Number of characters used to bypass anti spam.") .visible(bypass::get) .defaultValue(16) .sliderRange(1, 256) @@ -114,7 +103,7 @@ public class Spam extends Module { private String text; public Spam() { - super(Categories.Misc, "spam", "Spams specified messages in chat."); + super(Categories.Misc, "spam"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/swarm/Swarm.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/swarm/Swarm.java index ce046432e4..43338c84a5 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/swarm/Swarm.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/misc/swarm/Swarm.java @@ -24,14 +24,12 @@ public class Swarm extends Module { public final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("What type of client to run.") .defaultValue(Mode.Host) .build() ); private final Setting ipAddress = sgGeneral.add(new StringSetting.Builder() .name("ip") - .description("The IP address of the host server.") .defaultValue("localhost") .visible(() -> mode.get() == Mode.Worker) .build() @@ -39,7 +37,6 @@ public class Swarm extends Module { private final Setting serverPort = sgGeneral.add(new IntSetting.Builder() .name("port") - .description("The port used for connections.") .defaultValue(6969) .range(1, 65535) .noSlider() @@ -50,7 +47,7 @@ public class Swarm extends Module { public SwarmWorker worker; public Swarm() { - super(Categories.Misc, "swarm", "Allows you to control multiple instances of Meteor from one central host."); + super(Categories.Misc, "swarm"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AirJump.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AirJump.java index a078d0323f..a80be53858 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AirJump.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AirJump.java @@ -22,7 +22,6 @@ public class AirJump extends Module { private final Setting maintainLevel = sgGeneral.add(new BoolSetting.Builder() .name("maintain-level") - .description("Maintains your current Y level when holding the jump key.") .defaultValue(false) .build() ); @@ -30,7 +29,7 @@ public class AirJump extends Module { private int level; public AirJump() { - super(Categories.Movement, "air-jump", "Lets you jump in the air."); + super(Categories.Movement, "air-jump"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Anchor.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Anchor.java index 4005727fae..e717392f4b 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Anchor.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Anchor.java @@ -22,7 +22,6 @@ public class Anchor extends Module { private final Setting maxHeight = sgGeneral.add(new IntSetting.Builder() .name("max-height") - .description("The maximum height Anchor will work at.") .defaultValue(10) .range(0, 255) .sliderMax(20) @@ -31,7 +30,6 @@ public class Anchor extends Module { private final Setting minPitch = sgGeneral.add(new IntSetting.Builder() .name("min-pitch") - .description("The minimum pitch at which anchor will work.") .defaultValue(0) .range(-90, 90) .sliderRange(-90, 90) @@ -40,21 +38,18 @@ public class Anchor extends Module { private final Setting cancelMove = sgGeneral.add(new BoolSetting.Builder() .name("cancel-jump-in-hole") - .description("Prevents you from jumping when Anchor is active and Min Pitch is met.") .defaultValue(false) .build() ); private final Setting pull = sgGeneral.add(new BoolSetting.Builder() .name("pull") - .description("The pull strength of Anchor.") .defaultValue(false) .build() ); private final Setting pullSpeed = sgGeneral.add(new DoubleSetting.Builder() .name("pull-speed") - .description("How fast to pull towards the hole in blocks per second.") .defaultValue(0.3) .min(0) .sliderMax(5) @@ -72,7 +67,7 @@ public class Anchor extends Module { public double deltaX, deltaZ; public Anchor() { - super(Categories.Movement, "anchor", "Helps you get into holes by stopping your movement completely over a hole."); + super(Categories.Movement, "anchor"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AntiVoid.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AntiVoid.java index 6a697bdb25..5a1023e08c 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AntiVoid.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AntiVoid.java @@ -20,7 +20,6 @@ public class AntiVoid extends Module { private final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("The method to prevent you from falling into the void.") .defaultValue(Mode.Jump) .onChanged(a -> onActivate()) .build() @@ -29,7 +28,7 @@ public class AntiVoid extends Module { private boolean wasFlightEnabled, hasRun; public AntiVoid() { - super(Categories.Movement, "anti-void", "Attempts to prevent you from falling into the void."); + super(Categories.Movement, "anti-void"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoJump.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoJump.java index 3277d74f90..1e12312268 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoJump.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoJump.java @@ -20,21 +20,18 @@ public class AutoJump extends Module { private final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("The method of jumping.") .defaultValue(Mode.Jump) .build() ); private final Setting jumpIf = sgGeneral.add(new EnumSetting.Builder() .name("jump-if") - .description("Jump if.") .defaultValue(JumpWhen.Always) .build() ); private final Setting velocityHeight = sgGeneral.add(new DoubleSetting.Builder() .name("velocity-height") - .description("The distance that velocity mode moves you.") .defaultValue(0.25) .min(0) .sliderMax(2) @@ -42,7 +39,7 @@ public class AutoJump extends Module { ); public AutoJump() { - super(Categories.Movement, "auto-jump", "Automatically jumps."); + super(Categories.Movement, "auto-jump"); } private boolean jump() { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoWalk.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoWalk.java index aa839a3795..d820efb792 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoWalk.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoWalk.java @@ -31,7 +31,6 @@ public class AutoWalk extends Module { private final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("Walking mode.") .defaultValue(Mode.Smart) .onChanged(mode1 -> { if (isActive() && Utils.canUpdate()) { @@ -49,7 +48,6 @@ public class AutoWalk extends Module { private final Setting direction = sgGeneral.add(new EnumSetting.Builder() .name("simple-direction") - .description("The direction to walk in simple mode.") .defaultValue(Direction.Forwards) .onChanged(direction1 -> { if (isActive()) unpress(); @@ -60,14 +58,12 @@ public class AutoWalk extends Module { private final Setting disableOnInput = sgGeneral.add(new BoolSetting.Builder() .name("disable-on-input") - .description("Disable module on manual movement input") .defaultValue(false) .build() ); private final Setting disableOnY = sgGeneral.add(new BoolSetting.Builder() .name("disable-on-y-change") - .description("Disable module if player moves vertically") .defaultValue(false) .visible(() -> mode.get() == Mode.Simple) .build() @@ -75,14 +71,13 @@ public class AutoWalk extends Module { private final Setting waitForChunks = sgGeneral.add(new BoolSetting.Builder() .name("no-unloaded-chunks") - .description("Do not allow movement into unloaded chunks") .defaultValue(true) .visible(() -> mode.get() == Mode.Simple) .build() ); public AutoWalk() { - super(Categories.Movement, "auto-walk", "Automatically walks forward."); + super(Categories.Movement, "auto-walk"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoWasp.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoWasp.java index 34921e0a4b..5a4f7cc852 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoWasp.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/AutoWasp.java @@ -34,49 +34,42 @@ public class AutoWasp extends Module { private final Setting horizontalSpeed = sgGeneral.add(new DoubleSetting.Builder() .name("horizontal-speed") - .description("Horizontal elytra speed.") .defaultValue(2.0) .build() ); private final Setting verticalSpeed = sgGeneral.add(new DoubleSetting.Builder() .name("vertical-speed") - .description("Vertical elytra speed.") .defaultValue(3.0) .build() ); private final Setting avoidLanding = sgGeneral.add(new BoolSetting.Builder() .name("avoid-landing") - .description("Will try to avoid landing if your target is on the ground.") .defaultValue(true) .build() ); private final Setting predictMovement = sgGeneral.add(new BoolSetting.Builder() .name("predict-movement") - .description("Tries to predict the targets position according to their movement.") .defaultValue(true) .build() ); private final Setting onlyFriends = sgGeneral.add(new BoolSetting.Builder() .name("only-friends") - .description("Will only follow friends.") .defaultValue(false) .build() ); private final Setting action = sgGeneral.add(new EnumSetting.Builder() .name("action-on-target-loss") - .description("What to do if you lose the target.") .defaultValue(Action.TOGGLE) .build() ); private final Setting offset = sgGeneral.add(new Vector3dSetting.Builder() .name("offset") - .description("How many blocks offset to wasp at from the target.") .defaultValue(0, 0, 0) .build() ); @@ -86,7 +79,7 @@ public class AutoWasp extends Module { private boolean incrementJumpTimer = false; public AutoWasp() { - super(Categories.Movement, "auto-wasp", "Wasps for you. Unable to traverse around blocks, assumes a clear straight line to the target."); + super(Categories.Movement, "auto-wasp"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Blink.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Blink.java index 91e529faaf..809568f23b 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Blink.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Blink.java @@ -28,14 +28,12 @@ public class Blink extends Module { private final Setting renderOriginal = sgGeneral.add(new BoolSetting.Builder() .name("render-original") - .description("Renders your player model at the original position.") .defaultValue(true) .build() ); private final Setting delay = sgGeneral.add(new IntSetting.Builder() .name("pulse-delay") - .description("After the duration in ticks has elapsed, send all packets and start blinking again. 0 to disable.") .defaultValue(0) .min(0) .sliderMax(60) @@ -45,7 +43,6 @@ public class Blink extends Module { @SuppressWarnings("unused") private final Setting cancelBlink = sgGeneral.add(new KeybindSetting.Builder() .name("cancel-blink") - .description("Cancels sending packets and sends you back to your original position.") .defaultValue(Keybind.none()) .action(() -> { cancelled = true; @@ -62,7 +59,7 @@ public class Blink extends Module { private int timer = 0; public Blink() { - super(Categories.Movement, "blink", "Allows you to essentially teleport while suspending motion updates."); + super(Categories.Movement, "blink"); runInMainMenu = true; } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/ClickTP.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/ClickTP.java index efd47f775b..fc6bdd5a18 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/ClickTP.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/ClickTP.java @@ -28,7 +28,7 @@ public class ClickTP extends Module { public ClickTP() { - super(Categories.Movement, "click-tp", "Teleports you to the block you click on."); + super(Categories.Movement, "click-tp"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/ElytraBoost.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/ElytraBoost.java index 4f3a123210..1766e9ee0e 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/ElytraBoost.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/ElytraBoost.java @@ -32,14 +32,12 @@ public class ElytraBoost extends Module { private final Setting dontConsumeFirework = sgGeneral.add(new BoolSetting.Builder() .name("anti-consume") - .description("Prevents fireworks from being consumed when using Elytra Boost.") .defaultValue(true) .build() ); private final Setting fireworkLevel = sgGeneral.add(new IntSetting.Builder() .name("firework-duration") - .description("The duration of the firework.") .defaultValue(0) .range(0, 255) .sliderMax(255) @@ -48,7 +46,6 @@ public class ElytraBoost extends Module { private final Setting playSound = sgGeneral.add(new BoolSetting.Builder() .name("play-sound") - .description("Plays the firework sound when a boost is triggered.") .defaultValue(true) .build() ); @@ -56,7 +53,6 @@ public class ElytraBoost extends Module { @SuppressWarnings("unused") private final Setting keybind = sgGeneral.add(new KeybindSetting.Builder() .name("keybind") - .description("The keybind to boost.") .action(this::boost) .build() ); @@ -64,7 +60,7 @@ public class ElytraBoost extends Module { private final List fireworks = new ArrayList<>(); public ElytraBoost() { - super(Categories.Movement, "elytra-boost", "Boosts your elytra as if you used a firework."); + super(Categories.Movement, "elytra-boost"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/EntityControl.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/EntityControl.java index 61b40e941d..e9daec0fb1 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/EntityControl.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/EntityControl.java @@ -29,9 +29,9 @@ import java.util.Set; public class EntityControl extends Module { - private final SettingGroup sgControl = settings.createGroup("Control"); - private final SettingGroup sgSpeed = settings.createGroup("Speed"); - private final SettingGroup sgFlight = settings.createGroup("Flight"); + private final SettingGroup sgControl = settings.createGroup("control"); + private final SettingGroup sgSpeed = settings.createGroup("speed"); + private final SettingGroup sgFlight = settings.createGroup("flight"); List> list = new ArrayList<>(); { @@ -44,7 +44,6 @@ public class EntityControl extends Module { private final Setting>> entities = sgControl.add(new EntityTypeListSetting.Builder() .name("entities") - .description("Target entities.") .filter(entityType -> EntityUtils.isRideable(entityType) && entityType != EntityType.MINECART && entityType != EntityType.LLAMA && entityType != EntityType.TRADER_LLAMA) .defaultValue(list.toArray(new EntityType[0])) .build() @@ -52,42 +51,36 @@ public class EntityControl extends Module { private final Setting spoofSaddle = sgControl.add(new BoolSetting.Builder() .name("spoof-saddle*") - .description("Lets you control rideable entities without them being saddled. Only works on older server versions.") .defaultValue(false) .build() ); private final Setting maxJump = sgControl.add(new BoolSetting.Builder() .name("max-jump") - .description("Sets jump power to maximum.") .defaultValue(true) .build() ); public final Setting lockYaw = sgControl.add(new BoolSetting.Builder() .name("lock-yaw") - .description("Locks the Entity's yaw.") .defaultValue(true) .build() ); private final Setting cancelServerPackets = sgControl.add(new BoolSetting.Builder() .name("cancel-server-packets") - .description("Cancels incoming vehicle move packets. WILL desync you from the server if you make an invalid movement.") .defaultValue(false) .build() ); private final Setting speed = sgSpeed.add(new BoolSetting.Builder() .name("speed") - .description("Makes you go faster horizontally when riding entities.") .defaultValue(false) .build() ); private final Setting horizontalSpeed = sgSpeed.add(new DoubleSetting.Builder() .name("horizontal-speed") - .description("Horizontal speed in blocks per second.") .defaultValue(10) .min(0) .sliderMax(50) @@ -97,7 +90,6 @@ public class EntityControl extends Module { private final Setting onlyOnGround = sgSpeed.add(new BoolSetting.Builder() .name("only-on-ground") - .description("Use speed only when standing on a block.") .defaultValue(false) .visible(speed::get) .build() @@ -105,7 +97,6 @@ public class EntityControl extends Module { private final Setting inWater = sgSpeed.add(new BoolSetting.Builder() .name("in-water") - .description("Use speed when in water.") .defaultValue(true) .visible(speed::get) .build() @@ -113,14 +104,12 @@ public class EntityControl extends Module { private final Setting flight = sgFlight.add(new BoolSetting.Builder() .name("fly") - .description("Allows you to fly with entities.") .defaultValue(false) .build() ); private final Setting verticalSpeed = sgFlight.add(new DoubleSetting.Builder() .name("vertical-speed") - .description("Vertical speed in blocks per second.") .defaultValue(6) .min(0) .sliderMax(20) @@ -130,7 +119,6 @@ public class EntityControl extends Module { private final Setting fallSpeed = sgFlight.add(new DoubleSetting.Builder() .name("fall-speed") - .description("How fast you will fall in blocks per second. Set to a small value to prevent fly kicks.") .defaultValue(0) .min(0) .visible(flight::get) @@ -139,7 +127,6 @@ public class EntityControl extends Module { private final Setting antiKick = sgFlight.add(new BoolSetting.Builder() .name("anti-fly-kick") - .description("Whether to prevent the server from kicking you for flying.") .defaultValue(true) .visible(flight::get) .build() @@ -147,7 +134,6 @@ public class EntityControl extends Module { private final Setting delay = sgFlight.add(new IntSetting.Builder() .name("delay") - .description("The amount of delay, in ticks, between flying down a bit and return to original position") .defaultValue(40) .min(1) .sliderMax(80) @@ -156,7 +142,7 @@ public class EntityControl extends Module { ); public EntityControl() { - super(Categories.Movement, "entity-control", "Lets you control rideable entities without a saddle.", "entity-speed", "entity-fly", "boat-fly"); + super(Categories.Movement, "entity-control", "entity-speed", "entity-fly", "boat-fly"); } private int delayLeft; diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/FastClimb.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/FastClimb.java index 21a119b661..edf55b1e98 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/FastClimb.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/FastClimb.java @@ -25,14 +25,12 @@ public class FastClimb extends Module { private final Setting timerMode = sgGeneral.add(new BoolSetting.Builder() .name("timer-mode") - .description("Use timer.") .defaultValue(false) .build() ); private final Setting speed = sgGeneral.add(new DoubleSetting.Builder() .name("climb-speed") - .description("Your climb speed.") .defaultValue(0.2872) .min(0.0) .visible(() -> !timerMode.get()) @@ -41,7 +39,6 @@ public class FastClimb extends Module { private final Setting timer = sgGeneral.add(new DoubleSetting.Builder() .name("timer") - .description("The timer value for Timer.") .defaultValue(1.436) .min(1) .sliderMin(1) @@ -52,7 +49,7 @@ public class FastClimb extends Module { private boolean resetTimer; public FastClimb() { - super(Categories.Movement, "fast-climb", "Allows you to climb faster."); + super(Categories.Movement, "fast-climb"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Flight.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Flight.java index dc52cfae3b..57aa20b4e4 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Flight.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Flight.java @@ -22,11 +22,10 @@ public class Flight extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgAntiKick = settings.createGroup("Anti Kick"); //Pog + private final SettingGroup sgAntiKick = settings.createGroup("anti-kick"); //Pog private final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("The mode for Flight.") .defaultValue(Mode.Abilities) .onChanged(mode -> { if (!isActive() || !Utils.canUpdate()) return; @@ -37,7 +36,6 @@ public class Flight extends Module { private final Setting speed = sgGeneral.add(new DoubleSetting.Builder() .name("speed") - .description("Your speed when flying.") .defaultValue(0.1) .min(0.0) .build() @@ -45,14 +43,12 @@ public class Flight extends Module { private final Setting verticalSpeedMatch = sgGeneral.add(new BoolSetting.Builder() .name("vertical-speed-match") - .description("Matches your vertical speed to your horizontal speed, otherwise uses vanilla ratio.") .defaultValue(false) .build() ); private final Setting noSneak = sgGeneral.add(new BoolSetting.Builder() .name("no-sneak") - .description("Prevents you from sneaking while flying.") .defaultValue(false) .visible(() -> mode.get() == Mode.Velocity) .build() @@ -60,14 +56,12 @@ public class Flight extends Module { private final Setting antiKickMode = sgAntiKick.add(new EnumSetting.Builder() .name("mode") - .description("The mode for anti kick.") .defaultValue(AntiKickMode.Packet) .build() ); private final Setting delay = sgAntiKick.add(new IntSetting.Builder() .name("delay") - .description("The amount of delay, in ticks, between flying down a bit and return to original position") .defaultValue(20) .min(1) .sliderMax(200) @@ -77,7 +71,6 @@ public class Flight extends Module { // Anti Kick private final Setting offTime = sgAntiKick.add(new IntSetting.Builder() .name("off-time") - .description("The amount of delay, in ticks, to fly down a bit to reset floating ticks.") .defaultValue(1) .min(1) .sliderRange(1, 20) @@ -91,7 +84,7 @@ public class Flight extends Module { private double lastPacketY = Double.MAX_VALUE; public Flight() { - super(Categories.Movement, "flight", "FLYYYY! No Fall is recommended with this module."); + super(Categories.Movement, "flight"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/GUIMove.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/GUIMove.java index 4ee40cb9f9..c6b98ccdb7 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/GUIMove.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/GUIMove.java @@ -37,14 +37,12 @@ public enum Screens { private final Setting screens = sgGeneral.add(new EnumSetting.Builder() .name("guis") - .description("Which GUIs to move in.") .defaultValue(Screens.Inventory) .build() ); public final Setting jump = sgGeneral.add(new BoolSetting.Builder() .name("jump") - .description("Allows you to jump while in GUIs.") .defaultValue(true) .onChanged(aBoolean -> { if (isActive() && !aBoolean) mc.options.jumpKey.setPressed(false); @@ -54,7 +52,6 @@ public enum Screens { public final Setting sneak = sgGeneral.add(new BoolSetting.Builder() .name("sneak") - .description("Allows you to sneak while in GUIs.") .defaultValue(true) .onChanged(aBoolean -> { if (isActive() && !aBoolean) mc.options.sneakKey.setPressed(false); @@ -64,7 +61,6 @@ public enum Screens { public final Setting sprint = sgGeneral.add(new BoolSetting.Builder() .name("sprint") - .description("Allows you to sprint while in GUIs.") .defaultValue(true) .onChanged(aBoolean -> { if (isActive() && !aBoolean) mc.options.sprintKey.setPressed(false); @@ -74,21 +70,19 @@ public enum Screens { private final Setting arrowsRotate = sgGeneral.add(new BoolSetting.Builder() .name("arrows-rotate") - .description("Allows you to use your arrow keys to rotate while in GUIs.") .defaultValue(true) .build() ); private final Setting rotateSpeed = sgGeneral.add(new DoubleSetting.Builder() .name("rotate-speed") - .description("Rotation speed while in GUIs.") .defaultValue(4) .min(0) .build() ); public GUIMove() { - super(Categories.Movement, "gui-move", "Allows you to perform various actions while in GUIs."); + super(Categories.Movement, "gui-move"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/HighJump.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/HighJump.java index a56b858c7e..6462f2bee2 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/HighJump.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/HighJump.java @@ -18,14 +18,13 @@ public class HighJump extends Module { private final Setting multiplier = sgGeneral.add(new DoubleSetting.Builder() .name("jump-multiplier") - .description("Jump height multiplier.") .defaultValue(1) .min(0) .build() ); public HighJump() { - super(Categories.Movement, "high-jump", "Makes you jump higher than normal."); + super(Categories.Movement, "high-jump"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Jesus.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Jesus.java index 84118b1dde..52b8126588 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Jesus.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Jesus.java @@ -43,15 +43,14 @@ import java.util.stream.Collectors; public class Jesus extends Module { - private final SettingGroup sgGeneral = settings.createGroup("General"); - private final SettingGroup sgWater = settings.createGroup("Water"); - private final SettingGroup sgLava = settings.createGroup("Lava"); + private final SettingGroup sgGeneral = settings.createGroup("general"); + private final SettingGroup sgWater = settings.createGroup("water"); + private final SettingGroup sgLava = settings.createGroup("lava"); // General private final Setting powderSnow = sgGeneral.add(new BoolSetting.Builder() .name("powder-snow") - .description("Walk on powder snow.") .defaultValue(true) .build() ); @@ -60,14 +59,12 @@ public class Jesus extends Module { private final Setting waterMode = sgWater.add(new EnumSetting.Builder() .name("mode") - .description("How to treat the water.") .defaultValue(Mode.Solid) .build() ); private final Setting dipIfBurning = sgWater.add(new BoolSetting.Builder() .name("dip-if-burning") - .description("Lets you go into the water when you are burning.") .defaultValue(true) .visible(() -> waterMode.get() == Mode.Solid) .build() @@ -75,7 +72,6 @@ public class Jesus extends Module { private final Setting dipOnSneakWater = sgWater.add(new BoolSetting.Builder() .name("dip-on-sneak") - .description("Lets you go into the water when your sneak key is held.") .defaultValue(true) .visible(() -> waterMode.get() == Mode.Solid) .build() @@ -83,7 +79,6 @@ public class Jesus extends Module { private final Setting dipOnFallWater = sgWater.add(new BoolSetting.Builder() .name("dip-on-fall") - .description("Lets you go into the water when you fall over a certain height.") .defaultValue(true) .visible(() -> waterMode.get() == Mode.Solid) .build() @@ -91,7 +86,6 @@ public class Jesus extends Module { private final Setting dipFallHeightWater = sgWater.add(new IntSetting.Builder() .name("dip-fall-height") - .description("The fall height at which you will go into the water.") .defaultValue(4) .range(1, 255) .sliderRange(3, 20) @@ -103,14 +97,12 @@ public class Jesus extends Module { private final Setting lavaMode = sgLava.add(new EnumSetting.Builder() .name("mode") - .description("How to treat the lava.") .defaultValue(Mode.Solid) .build() ); private final Setting dipIfFireResistant = sgLava.add(new BoolSetting.Builder() .name("dip-if-resistant") - .description("Lets you go into the lava if you have Fire Resistance effect.") .defaultValue(true) .visible(() -> lavaMode.get() == Mode.Solid) .build() @@ -118,7 +110,6 @@ public class Jesus extends Module { private final Setting dipOnSneakLava = sgLava.add(new BoolSetting.Builder() .name("dip-on-sneak") - .description("Lets you go into the lava when your sneak key is held.") .defaultValue(true) .visible(() -> lavaMode.get() == Mode.Solid) .build() @@ -126,7 +117,6 @@ public class Jesus extends Module { private final Setting dipOnFallLava = sgLava.add(new BoolSetting.Builder() .name("dip-on-fall") - .description("Lets you go into the lava when you fall over a certain height.") .defaultValue(true) .visible(() -> lavaMode.get() == Mode.Solid) .build() @@ -134,7 +124,6 @@ public class Jesus extends Module { private final Setting dipFallHeightLava = sgLava.add(new IntSetting.Builder() .name("dip-fall-height") - .description("The fall height at which you will go into the lava.") .defaultValue(4) .range(1, 255) .sliderRange(3, 20) @@ -155,7 +144,7 @@ public class Jesus extends Module { public boolean isInBubbleColumn = false; public Jesus() { - super(Categories.Movement, "jesus", "Walk on liquids and powder snow like Jesus."); + super(Categories.Movement, "jesus"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/LongJump.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/LongJump.java index 62f785b422..111c5df1d9 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/LongJump.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/LongJump.java @@ -25,14 +25,12 @@ public class LongJump extends Module { public final Setting jumpMode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("The method of jumping.") .defaultValue(JumpMode.Vanilla) .build() ); private final Setting vanillaBoostFactor = sgGeneral.add(new DoubleSetting.Builder() .name("vanilla-boost-factor") - .description("The amount by which to boost the jump.") .visible(() -> jumpMode.get() == JumpMode.Vanilla) .defaultValue(1.261) .min(0) @@ -42,7 +40,6 @@ public class LongJump extends Module { private final Setting burstInitialSpeed = sgGeneral.add(new DoubleSetting.Builder() .name("burst-initial-speed") - .description("The initial speed of the runup.") .visible(() -> jumpMode.get() == JumpMode.Burst) .defaultValue(6) .min(0) @@ -52,7 +49,6 @@ public class LongJump extends Module { private final Setting burstBoostFactor = sgGeneral.add(new DoubleSetting.Builder() .name("burst-boost-factor") - .description("The amount by which to boost the jump.") .visible(() -> jumpMode.get() == JumpMode.Burst) .defaultValue(2.149) .min(0) @@ -62,7 +58,6 @@ public class LongJump extends Module { private final Setting onlyOnGround = sgGeneral.add(new BoolSetting.Builder() .name("only-on-ground") - .description("Only performs the jump if you are on the ground.") .visible(() -> jumpMode.get() == JumpMode.Burst) .defaultValue(true) .build() @@ -70,7 +65,6 @@ public class LongJump extends Module { private final Setting onJump = sgGeneral.add(new BoolSetting.Builder() .name("on-jump") - .description("Whether the player needs to jump first or not.") .visible(() -> jumpMode.get() == JumpMode.Burst) .defaultValue(false) .build() @@ -78,7 +72,6 @@ public class LongJump extends Module { private final Setting glideMultiplier = sgGeneral.add(new DoubleSetting.Builder() .name("glide-multiplier") - .description("The amount by to multiply the glide velocity.") .visible(() -> jumpMode.get() == JumpMode.Glide) .defaultValue(1) .min(0) @@ -88,7 +81,6 @@ public class LongJump extends Module { public final Setting timer = sgGeneral.add(new DoubleSetting.Builder() .name("timer") - .description("Timer override.") .defaultValue(1) .min(0.01) .sliderMin(0.01) @@ -97,7 +89,6 @@ public class LongJump extends Module { private final Setting autoDisable = sgGeneral.add(new BoolSetting.Builder() .name("auto-disable") - .description("Automatically disabled the module after jumping.") .visible(() -> jumpMode.get() != JumpMode.Vanilla) .defaultValue(true) .build() @@ -105,13 +96,12 @@ public class LongJump extends Module { private final Setting disableOnRubberband = sgGeneral.add(new BoolSetting.Builder() .name("disable-on-rubberband") - .description("Disables the module when you get lagged back.") .defaultValue(true) .build() ); public LongJump() { - super(Categories.Movement, "long-jump", "Allows you to jump further than normal."); + super(Categories.Movement, "long-jump"); } private int stage; diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/NoFall.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/NoFall.java index f9eb17f08f..383478eb7f 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/NoFall.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/NoFall.java @@ -47,14 +47,12 @@ public class NoFall extends Module { private final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("The way you are saved from fall damage.") .defaultValue(Mode.Packet) .build() ); private final Setting placedItem = sgGeneral.add(new EnumSetting.Builder() .name("placed-item") - .description("Which block to place.") .defaultValue(PlacedItem.Bucket) .visible(() -> mode.get() == Mode.Place) .build() @@ -62,7 +60,6 @@ public class NoFall extends Module { private final Setting airPlaceMode = sgGeneral.add(new EnumSetting.Builder() .name("air-place-mode") - .description("Whether place mode places before you die or before you take damage.") .defaultValue(PlaceMode.BeforeDeath) .visible(() -> mode.get() == Mode.AirPlace) .build() @@ -70,7 +67,6 @@ public class NoFall extends Module { private final Setting anchor = sgGeneral.add(new BoolSetting.Builder() .name("anchor") - .description("Centers the player and reduces movement when using bucket or air place mode.") .defaultValue(true) .visible(() -> mode.get() != Mode.Packet) .build() @@ -78,14 +74,12 @@ public class NoFall extends Module { private final Setting antiBounce = sgGeneral.add(new BoolSetting.Builder() .name("anti-bounce") - .description("Disables bouncing on slime-block and bed upon landing.") .defaultValue(true) .build() ); private final Setting pauseOnMace = sgGeneral.add(new BoolSetting.Builder() .name("pause-on-mace") - .description("Pauses NoFall when using a mace.") .defaultValue(true) .build() ); @@ -96,7 +90,7 @@ public class NoFall extends Module { private boolean prePathManagerNoFall; public NoFall() { - super(Categories.Movement, "no-fall", "Attempts to prevent you from taking fall damage."); + super(Categories.Movement, "no-fall"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/NoSlow.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/NoSlow.java index 1651f349d1..8b81449cfc 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/NoSlow.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/NoSlow.java @@ -19,21 +19,18 @@ public class NoSlow extends Module { private final Setting items = sgGeneral.add(new BoolSetting.Builder() .name("items") - .description("Whether or not using items will slow you.") .defaultValue(true) .build() ); private final Setting web = sgGeneral.add(new EnumSetting.Builder() .name("web") - .description("Whether or not cobwebs will not slow you down.") .defaultValue(WebMode.Vanilla) .build() ); private final Setting webTimer = sgGeneral.add(new DoubleSetting.Builder() .name("web-timer") - .description("The timer value for WebMode Timer.") .defaultValue(10) .min(1) .sliderMin(1) @@ -43,63 +40,54 @@ public class NoSlow extends Module { private final Setting honeyBlock = sgGeneral.add(new BoolSetting.Builder() .name("honey-block") - .description("Whether or not honey blocks will not slow you down.") .defaultValue(true) .build() ); private final Setting soulSand = sgGeneral.add(new BoolSetting.Builder() .name("soul-sand") - .description("Whether or not soul sand will not slow you down.") .defaultValue(true) .build() ); private final Setting slimeBlock = sgGeneral.add(new BoolSetting.Builder() .name("slime-block") - .description("Whether or not slime blocks will not slow you down.") .defaultValue(true) .build() ); private final Setting berryBush = sgGeneral.add(new BoolSetting.Builder() .name("berry-bush") - .description("Whether or not berry bushes will not slow you down.") .defaultValue(true) .build() ); private final Setting airStrict = sgGeneral.add(new BoolSetting.Builder() .name("air-strict") - .description("Will attempt to bypass anti-cheats like 2b2t's. Only works while in air.") .defaultValue(false) .build() ); private final Setting fluidDrag = sgGeneral.add(new BoolSetting.Builder() .name("fluid-drag") - .description("Whether or not fluid drag will not slow you down.") .defaultValue(false) .build() ); private final Setting sneaking = sgGeneral.add(new BoolSetting.Builder() .name("sneaking") - .description("Whether or not sneaking will not slow you down.") .defaultValue(false) .build() ); private final Setting hunger = sgGeneral.add(new BoolSetting.Builder() .name("hunger") - .description("Whether or not hunger will not slow you down.") .defaultValue(false) .build() ); private final Setting slowness = sgGeneral.add(new BoolSetting.Builder() .name("slowness") - .description("Whether or not slowness will not slow you down.") .defaultValue(false) .build() ); @@ -107,7 +95,7 @@ public class NoSlow extends Module { private boolean resetTimer; public NoSlow() { - super(Categories.Movement, "no-slow", "Allows you to move normally when using objects that will slow you."); + super(Categories.Movement, "no-slow"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Parkour.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Parkour.java index 5daec23b24..91970ecf94 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Parkour.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Parkour.java @@ -24,14 +24,13 @@ public class Parkour extends Module { private final Setting edgeDistance = sgGeneral.add(new DoubleSetting.Builder() .name("edge-distance") - .description("How far from the edge should you jump.") .range(0.001, 0.1) .defaultValue(0.001) .build() ); public Parkour() { - super(Categories.Movement, "parkour", "Automatically jumps at the edges of blocks."); + super(Categories.Movement, "parkour"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/ReverseStep.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/ReverseStep.java index 0e57822cc5..200659b2b4 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/ReverseStep.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/ReverseStep.java @@ -23,7 +23,6 @@ public class ReverseStep extends Module { private final Setting fallSpeed = sgGeneral.add(new DoubleSetting.Builder() .name("fall-speed") - .description("How fast to fall in blocks per second.") .defaultValue(3) .min(0) .build() @@ -31,7 +30,6 @@ public class ReverseStep extends Module { private final Setting fallDistance = sgGeneral.add(new DoubleSetting.Builder() .name("fall-distance") - .description("The maximum fall distance this setting will activate at.") .defaultValue(3) .min(0) .build() @@ -39,13 +37,12 @@ public class ReverseStep extends Module { private final Setting vehicles = sgGeneral.add(new BoolSetting.Builder() .name("vehicles") - .description("Whether or not reverse step should affect vehicles.") .defaultValue(false) .build() ); public ReverseStep() { - super(Categories.Movement, "reverse-step", "Allows you to fall down blocks at a greater speed."); + super(Categories.Movement, "reverse-step"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/SafeWalk.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/SafeWalk.java index d908103c99..1fd037e96f 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/SafeWalk.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/SafeWalk.java @@ -23,11 +23,10 @@ public class SafeWalk extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgRender = settings.createGroup("Render"); + private final SettingGroup sgRender = settings.createGroup("render"); private final Setting fallDistance = sgGeneral.add(new IntSetting.Builder() .name("minimum-fall-distance") - .description("The minimum number of blocks you are expected to fall before the module activates.") .defaultValue(1) .min(1) .build() @@ -35,14 +34,12 @@ public class SafeWalk extends Module { private final Setting sneak = sgGeneral.add(new BoolSetting.Builder() .name("sneak") - .description("Sneak when approaching edge of block.") .defaultValue(false) .build() ); private final Setting safeSneak = sgGeneral.add(new BoolSetting.Builder() .name("safe-sneak") - .description("Prevent you from falling if sneak doesn't trigger correctly.") .defaultValue(true) .visible(sneak::get) .build() @@ -50,7 +47,6 @@ public class SafeWalk extends Module { private final Setting sneakSprint = sgGeneral.add(new BoolSetting.Builder() .name("sneak-on-sprint") - .description("Sneak even when sprinting at the block edge.") .defaultValue(true) .visible(sneak::get) .build() @@ -58,7 +54,6 @@ public class SafeWalk extends Module { private final Setting edgeDistance = sgGeneral.add(new DoubleSetting.Builder() .name("edge-distance") - .description("Distance offset before reaching an edge.") .defaultValue(0.30) .sliderRange(0.00, 0.30) .decimalPlaces(2) @@ -68,7 +63,6 @@ public class SafeWalk extends Module { private final Setting renderEdgeDistance = sgRender.add(new BoolSetting.Builder() .name("render") - .description("Render edge distance helper.") .defaultValue(false) .visible(sneak::get) .build() @@ -76,14 +70,13 @@ public class SafeWalk extends Module { private final Setting renderPlayerBox = sgRender.add(new BoolSetting.Builder() .name("render-player-box") - .description("Render player box helper.") .defaultValue(false) .visible(() -> sneak.get() && renderEdgeDistance.get()) .build() ); public SafeWalk() { - super(Categories.Movement, "safe-walk", "Prevents you from walking off blocks."); + super(Categories.Movement, "safe-walk"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Scaffold.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Scaffold.java index ad02674d0f..52eacc7702 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Scaffold.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Scaffold.java @@ -32,31 +32,27 @@ public class Scaffold extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgRender = settings.createGroup("Render"); + private final SettingGroup sgRender = settings.createGroup("render"); private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() .name("blocks") - .description("Selected blocks.") .build() ); private final Setting blocksFilter = sgGeneral.add(new EnumSetting.Builder() .name("blocks-filter") - .description("How to use the block list setting") .defaultValue(ListMode.Blacklist) .build() ); private final Setting fastTower = sgGeneral.add(new BoolSetting.Builder() .name("fast-tower") - .description("Whether or not to scaffold upwards faster.") .defaultValue(false) .build() ); private final Setting towerSpeed = sgGeneral.add(new DoubleSetting.Builder() .name("tower-speed") - .description("The speed at which to tower.") .defaultValue(0.5) .min(0) .sliderMax(1) @@ -66,7 +62,6 @@ public class Scaffold extends Module { private final Setting whileMoving = sgGeneral.add(new BoolSetting.Builder() .name("while-moving") - .description("Allows you to tower while moving.") .defaultValue(false) .visible(fastTower::get) .build() @@ -74,42 +69,36 @@ public class Scaffold extends Module { private final Setting onlyOnClick = sgGeneral.add(new BoolSetting.Builder() .name("only-on-click") - .description("Only places blocks when holding right click.") .defaultValue(false) .build() ); private final Setting renderSwing = sgGeneral.add(new BoolSetting.Builder() .name("swing") - .description("Renders your client-side swing.") .defaultValue(false) .build() ); private final Setting autoSwitch = sgGeneral.add(new BoolSetting.Builder() .name("auto-switch") - .description("Automatically swaps to a block before placing.") .defaultValue(true) .build() ); private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() .name("rotate") - .description("Rotates towards the blocks being placed.") .defaultValue(true) .build() ); private final Setting airPlace = sgGeneral.add(new BoolSetting.Builder() .name("air-place") - .description("Allow air place. This also allows you to modify scaffold radius.") .defaultValue(false) .build() ); private final Setting aheadDistance = sgGeneral.add(new DoubleSetting.Builder() .name("ahead-distance") - .description("How far ahead to place blocks.") .defaultValue(0) .min(0) .sliderMax(1) @@ -119,7 +108,6 @@ public class Scaffold extends Module { private final Setting placeRange = sgGeneral.add(new DoubleSetting.Builder() .name("closest-block-range") - .description("How far can scaffold place blocks when you are in air.") .defaultValue(4) .min(0) .sliderMax(8) @@ -129,7 +117,6 @@ public class Scaffold extends Module { private final Setting radius = sgGeneral.add(new DoubleSetting.Builder() .name("radius") - .description("Scaffold radius.") .defaultValue(0) .min(0) .max(6) @@ -139,7 +126,6 @@ public class Scaffold extends Module { private final Setting blocksPerTick = sgGeneral.add(new IntSetting.Builder() .name("blocks-per-tick") - .description("How many blocks to place in one tick.") .defaultValue(3) .min(1) .visible(airPlace::get) @@ -150,14 +136,12 @@ public class Scaffold extends Module { private final Setting render = sgRender.add(new BoolSetting.Builder() .name("render") - .description("Whether to render blocks that have been placed.") .defaultValue(true) .build() ); private final Setting shapeMode = sgRender.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .visible(render::get) .build() @@ -165,7 +149,6 @@ public class Scaffold extends Module { private final Setting sideColor = sgRender.add(new ColorSetting.Builder() .name("side-color") - .description("The side color of the target block rendering.") .defaultValue(new SettingColor(197, 137, 232, 10)) .visible(render::get) .build() @@ -173,7 +156,6 @@ public class Scaffold extends Module { private final Setting lineColor = sgRender.add(new ColorSetting.Builder() .name("line-color") - .description("The line color of the target block rendering.") .defaultValue(new SettingColor(197, 137, 232)) .visible(render::get) .build() @@ -182,7 +164,7 @@ public class Scaffold extends Module { private final BlockPos.Mutable bp = new BlockPos.Mutable(); public Scaffold() { - super(Categories.Movement, "scaffold", "Automatically places blocks under you."); + super(Categories.Movement, "scaffold"); } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Slippy.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Slippy.java index 18ee10e8d7..163a4063fa 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Slippy.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Slippy.java @@ -17,7 +17,6 @@ public class Slippy extends Module { public final Setting friction = sgGeneral.add(new DoubleSetting.Builder() .name("friction") - .description("The base friction level.") .range(0.01, 1.10) .sliderRange(0.01, 1.10) .defaultValue(1) @@ -26,27 +25,24 @@ public class Slippy extends Module { public final Setting listMode = sgGeneral.add(new EnumSetting.Builder() .name("list-mode") - .description("The mode to select blocks.") .defaultValue(ListMode.Blacklist) .build() ); public final Setting> ignoredBlocks = sgGeneral.add(new BlockListSetting.Builder() .name("ignored-blocks") - .description("Decide which blocks not to slip on") .visible(() -> listMode.get() == ListMode.Blacklist) .build() ); public final Setting> allowedBlocks = sgGeneral.add(new BlockListSetting.Builder() .name("allowed-blocks") - .description("Decide which blocks to slip on") .visible(() -> listMode.get() == ListMode.Whitelist) .build() ); public Slippy() { - super(Categories.Movement, "slippy", "Changes the base friction level of blocks."); + super(Categories.Movement, "slippy"); } public enum ListMode { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Sneak.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Sneak.java index aa362123e5..ab24bc8e71 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Sneak.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Sneak.java @@ -16,13 +16,12 @@ public class Sneak extends Module { private final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("Which method to sneak.") .defaultValue(Mode.Vanilla) .build() ); public Sneak() { - super (Categories.Movement, "sneak", "Sneaks for you"); + super (Categories.Movement, "sneak"); } public boolean doPacket() { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Spider.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Spider.java index 7242d480fd..ec582a8901 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Spider.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Spider.java @@ -19,14 +19,13 @@ public class Spider extends Module { private final Setting speed = sgGeneral.add(new DoubleSetting.Builder() .name("climb-speed") - .description("The speed you go up blocks.") .defaultValue(0.2) .min(0.0) .build() ); public Spider() { - super(Categories.Movement, "spider", "Allows you to climb walls like a spider."); + super(Categories.Movement, "spider"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Sprint.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Sprint.java index 2c45aa5f03..99de639373 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Sprint.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Sprint.java @@ -30,28 +30,24 @@ public enum Mode { public final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("sprint-mode") - .description("What mode of sprinting.") .defaultValue(Mode.Strict) .build() ); private final Setting keepSprint = sgGeneral.add(new BoolSetting.Builder() .name("keep-sprint") - .description("Whether to keep sprinting after attacking.") .defaultValue(false) .build() ); private final Setting unsprintOnHit = sgGeneral.add(new BoolSetting.Builder() .name("unsprint-on-hit") - .description("Whether to stop sprinting before attacking, to ensure you get crits and sweep attacks.") .defaultValue(false) .build() ); public final Setting unsprintInWater = sgGeneral.add(new BoolSetting.Builder() .name("unsprint-in-water") - .description("Whether to stop sprinting when in water.") .defaultValue(true) .visible(() -> mode.get() == Mode.Rage) .build() @@ -59,14 +55,13 @@ public enum Mode { private final Setting permaSprint = sgGeneral.add(new BoolSetting.Builder() .name("sprint-while-stationary") - .description("Sprint even when not moving.") .defaultValue(false) .visible(() -> mode.get() == Mode.Rage) .build() ); public Sprint() { - super(Categories.Movement, "sprint", "Automatically sprints."); + super(Categories.Movement, "sprint"); } @EventHandler(priority = EventPriority.HIGH) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Step.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Step.java index cefeb58637..999d32efd7 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Step.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Step.java @@ -28,7 +28,6 @@ public class Step extends Module { public final Setting height = sgGeneral.add(new DoubleSetting.Builder() .name("height") - .description("Step height.") .defaultValue(1.25) .min(0) .build() @@ -36,21 +35,18 @@ public class Step extends Module { private final Setting activeWhen = sgGeneral.add(new EnumSetting.Builder() .name("active-when") - .description("Step is active when you meet these requirements.") .defaultValue(ActiveWhen.Always) .build() ); private final Setting safeStep = sgGeneral.add(new BoolSetting.Builder() .name("safe-step") - .description("Doesn't let you step out of a hole if you are low on health or there is a crystal nearby.") .defaultValue(false) .build() ); private final Setting stepHealth = sgGeneral.add(new IntSetting.Builder() .name("step-health") - .description("The health you stop being able to step at.") .defaultValue(5) .range(1, 36) .sliderRange(1, 36) @@ -62,7 +58,7 @@ public class Step extends Module { private boolean prevPathManagerStep; public Step() { - super(Categories.Movement, "step", "Allows you to walk up full blocks instantly."); + super(Categories.Movement, "step"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/TridentBoost.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/TridentBoost.java index 4396451731..6b4cae79dc 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/TridentBoost.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/TridentBoost.java @@ -17,7 +17,6 @@ public class TridentBoost extends Module { private final Setting multiplier = sgGeneral.add(new DoubleSetting.Builder() .name("boost") - .description("How much your velocity is multiplied by when using riptide.") .defaultValue(2) .min(0.1) .sliderMin(1) @@ -26,13 +25,12 @@ public class TridentBoost extends Module { private final Setting allowOutOfWater = sgGeneral.add(new BoolSetting.Builder() .name("out-of-water") - .description("Whether riptide should work out of water") .defaultValue(true) .build() ); public TridentBoost() { - super(Categories.Movement, "trident-boost", "Boosts you when using riptide with a trident."); + super(Categories.Movement, "trident-boost"); } public double getMultiplier() { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Velocity.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Velocity.java index 2628cd6acb..269a3e454c 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Velocity.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Velocity.java @@ -24,14 +24,12 @@ public class Velocity extends Module { public final Setting knockback = sgGeneral.add(new BoolSetting.Builder() .name("knockback") - .description("Modifies the amount of knockback you take from attacks.") .defaultValue(true) .build() ); public final Setting knockbackHorizontal = sgGeneral.add(new DoubleSetting.Builder() .name("knockback-horizontal") - .description("How much horizontal knockback you will take.") .defaultValue(0) .sliderMax(1) .visible(knockback::get) @@ -40,7 +38,6 @@ public class Velocity extends Module { public final Setting knockbackVertical = sgGeneral.add(new DoubleSetting.Builder() .name("knockback-vertical") - .description("How much vertical knockback you will take.") .defaultValue(0) .sliderMax(1) .visible(knockback::get) @@ -49,14 +46,12 @@ public class Velocity extends Module { public final Setting explosions = sgGeneral.add(new BoolSetting.Builder() .name("explosions") - .description("Modifies your knockback from explosions.") .defaultValue(true) .build() ); public final Setting explosionsHorizontal = sgGeneral.add(new DoubleSetting.Builder() .name("explosions-horizontal") - .description("How much velocity you will take from explosions horizontally.") .defaultValue(0) .sliderMax(1) .visible(explosions::get) @@ -65,7 +60,6 @@ public class Velocity extends Module { public final Setting explosionsVertical = sgGeneral.add(new DoubleSetting.Builder() .name("explosions-vertical") - .description("How much velocity you will take from explosions vertically.") .defaultValue(0) .sliderMax(1) .visible(explosions::get) @@ -74,14 +68,12 @@ public class Velocity extends Module { public final Setting liquids = sgGeneral.add(new BoolSetting.Builder() .name("liquids") - .description("Modifies the amount you are pushed by flowing liquids.") .defaultValue(true) .build() ); public final Setting liquidsHorizontal = sgGeneral.add(new DoubleSetting.Builder() .name("liquids-horizontal") - .description("How much velocity you will take from liquids horizontally.") .defaultValue(0) .sliderMax(1) .visible(liquids::get) @@ -90,7 +82,6 @@ public class Velocity extends Module { public final Setting liquidsVertical = sgGeneral.add(new DoubleSetting.Builder() .name("liquids-vertical") - .description("How much velocity you will take from liquids vertically.") .defaultValue(0) .sliderMax(1) .visible(liquids::get) @@ -99,14 +90,12 @@ public class Velocity extends Module { public final Setting entityPush = sgGeneral.add(new BoolSetting.Builder() .name("entity-push") - .description("Modifies the amount you are pushed by entities.") .defaultValue(true) .build() ); public final Setting entityPushAmount = sgGeneral.add(new DoubleSetting.Builder() .name("entity-push-amount") - .description("How much you will be pushed.") .defaultValue(0) .sliderMax(1) .visible(entityPush::get) @@ -115,27 +104,24 @@ public class Velocity extends Module { public final Setting blocks = sgGeneral.add(new BoolSetting.Builder() .name("blocks") - .description("Prevents you from being pushed out of blocks.") .defaultValue(true) .build() ); public final Setting sinking = sgGeneral.add(new BoolSetting.Builder() .name("sinking") - .description("Prevents you from sinking in liquids.") .defaultValue(false) .build() ); public final Setting fishing = sgGeneral.add(new BoolSetting.Builder() .name("fishing") - .description("Prevents you from being pulled by fishing rods.") .defaultValue(false) .build() ); public Velocity() { - super(Categories.Movement, "velocity", "Prevents you from being moved by external forces."); + super(Categories.Movement, "velocity"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/elytrafly/ElytraFly.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/elytrafly/ElytraFly.java index 9af851c443..fd4b999d2a 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/elytrafly/ElytraFly.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/elytrafly/ElytraFly.java @@ -39,14 +39,13 @@ public class ElytraFly extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgInventory = settings.createGroup("Inventory"); - private final SettingGroup sgAutopilot = settings.createGroup("Autopilot"); + private final SettingGroup sgInventory = settings.createGroup("inventory"); + private final SettingGroup sgAutopilot = settings.createGroup("autopilot"); // General public final Setting flightMode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("The mode of flying.") .defaultValue(ElytraFlightModes.Vanilla) .onModuleActivated(flightModesSetting -> onModeChanged(flightModesSetting.get())) .onChanged(this::onModeChanged) @@ -55,7 +54,6 @@ public class ElytraFly extends Module { public final Setting autoTakeOff = sgGeneral.add(new BoolSetting.Builder() .name("auto-take-off") - .description("Automatically takes off when you hold jump without needing to double jump.") .defaultValue(false) .visible(() -> flightMode.get() != ElytraFlightModes.Pitch40 && flightMode.get() != ElytraFlightModes.Bounce) .build() @@ -63,7 +61,6 @@ public class ElytraFly extends Module { public final Setting fallMultiplier = sgGeneral.add(new DoubleSetting.Builder() .name("fall-multiplier") - .description("Controls how fast will you go down naturally.") .defaultValue(0.01) .min(0) .visible(() -> flightMode.get() != ElytraFlightModes.Pitch40 && flightMode.get() != ElytraFlightModes.Bounce) @@ -72,7 +69,6 @@ public class ElytraFly extends Module { public final Setting horizontalSpeed = sgGeneral.add(new DoubleSetting.Builder() .name("horizontal-speed") - .description("How fast you go forward and backward.") .defaultValue(1) .min(0) .visible(() -> flightMode.get() != ElytraFlightModes.Pitch40 && flightMode.get() != ElytraFlightModes.Bounce) @@ -81,7 +77,6 @@ public class ElytraFly extends Module { public final Setting verticalSpeed = sgGeneral.add(new DoubleSetting.Builder() .name("vertical-speed") - .description("How fast you go up and down.") .defaultValue(1) .min(0) .visible(() -> flightMode.get() != ElytraFlightModes.Pitch40 && flightMode.get() != ElytraFlightModes.Bounce) @@ -114,7 +109,6 @@ public class ElytraFly extends Module { public final Setting stopInWater = sgGeneral.add(new BoolSetting.Builder() .name("stop-in-water") - .description("Stops flying in water.") .defaultValue(true) .visible(() -> flightMode.get() != ElytraFlightModes.Bounce) .build() @@ -122,14 +116,12 @@ public class ElytraFly extends Module { public final Setting dontGoIntoUnloadedChunks = sgGeneral.add(new BoolSetting.Builder() .name("no-unloaded-chunks") - .description("Stops you from going into unloaded chunks.") .defaultValue(true) .build() ); public final Setting autoHover = sgGeneral.add(new BoolSetting.Builder() .name("auto-hover") - .description("Automatically hover .3 blocks off ground when holding shift.") .defaultValue(false) .visible(() -> flightMode.get() != ElytraFlightModes.Bounce) .build() @@ -137,7 +129,6 @@ public class ElytraFly extends Module { public final Setting noCrash = sgGeneral.add(new BoolSetting.Builder() .name("no-crash") - .description("Stops you from going into walls.") .defaultValue(false) .visible(() -> flightMode.get() != ElytraFlightModes.Bounce) .build() @@ -145,7 +136,6 @@ public class ElytraFly extends Module { public final Setting crashLookAhead = sgGeneral.add(new IntSetting.Builder() .name("crash-look-ahead") - .description("Distance to look ahead when flying.") .defaultValue(5) .range(1, 15) .sliderMin(1) @@ -155,7 +145,6 @@ public class ElytraFly extends Module { private final Setting instaDrop = sgGeneral.add(new BoolSetting.Builder() .name("insta-drop") - .description("Makes you drop out of flight instantly.") .defaultValue(false) .visible(() -> flightMode.get() != ElytraFlightModes.Bounce) .build() @@ -163,10 +152,6 @@ public class ElytraFly extends Module { public final Setting pitch40lowerBounds = sgGeneral.add(new DoubleSetting.Builder() .name("pitch40-lower-bounds") - .description( - "The bottom height boundary for pitch40. You must be at least 40 blocks above this boundary when starting the module.\n" + - "After descending below this boundary you will start pitching upwards." - ) .defaultValue(180) .min(-128) .sliderMax(360) @@ -176,10 +161,6 @@ public class ElytraFly extends Module { public final Setting pitch40upperBounds = sgGeneral.add(new DoubleSetting.Builder() .name("pitch40-upper-bounds") - .description( - "The upper height boundary for pitch40. You must be above this boundary when starting the module.\n" + - "When ascending above this boundary, if you are not already, you will start pitching downwards." - ) .defaultValue(220) .min(-128) .sliderMax(360) @@ -189,7 +170,6 @@ public class ElytraFly extends Module { public final Setting pitch40rotationSpeedUp = sgGeneral.add(new DoubleSetting.Builder() .name("pitch40-rotate-speed-up") - .description("The speed for pitch rotation upwards (degrees per tick).") .defaultValue(5.45) .min(1) .sliderMax(20) @@ -199,7 +179,6 @@ public class ElytraFly extends Module { public final Setting pitch40rotationSpeedDown = sgGeneral.add(new DoubleSetting.Builder() .name("pitch40-rotate-speed-down") - .description("The speed for pitch rotation downwards (degrees per tick).") .defaultValue(0.90) .min(0.5) .sliderMax(2) @@ -209,7 +188,6 @@ public class ElytraFly extends Module { public final Setting autoJump = sgGeneral.add(new BoolSetting.Builder() .name("auto-jump") - .description("Automatically jumps for you.") .defaultValue(true) .visible(() -> flightMode.get() == ElytraFlightModes.Bounce) .build() @@ -217,7 +195,6 @@ public class ElytraFly extends Module { public final Setting yawLockMode = sgGeneral.add(new EnumSetting.Builder() .name("yaw-lock") - .description("Whether to enable yaw lock or not") .defaultValue(Rotation.LockMode.Smart) .visible(() -> flightMode.get() == ElytraFlightModes.Bounce) .build() @@ -225,7 +202,6 @@ public class ElytraFly extends Module { public final Setting yaw = sgGeneral.add(new DoubleSetting.Builder() .name("yaw") - .description("The yaw angle to look at when using simple rotation lock in bounce mode.") .defaultValue(0) .range(0, 360) .sliderRange(0,360) @@ -235,7 +211,6 @@ public class ElytraFly extends Module { public final Setting lockPitch = sgGeneral.add(new BoolSetting.Builder() .name("pitch-lock") - .description("Whether to lock your pitch angle.") .defaultValue(true) .visible(() -> flightMode.get() == ElytraFlightModes.Bounce) .build() @@ -243,7 +218,6 @@ public class ElytraFly extends Module { public final Setting pitch = sgGeneral.add(new DoubleSetting.Builder() .name("pitch") - .description("The pitch angle to look at when using the bounce mode.") .defaultValue(85) .range(0, 90) .sliderRange(0, 90) @@ -253,7 +227,6 @@ public class ElytraFly extends Module { public final Setting restart = sgGeneral.add(new BoolSetting.Builder() .name("restart") - .description("Restarts flying with the elytra when rubberbanding.") .defaultValue(true) .visible(() -> flightMode.get() == ElytraFlightModes.Bounce) .build() @@ -261,7 +234,6 @@ public class ElytraFly extends Module { public final Setting restartDelay = sgGeneral.add(new IntSetting.Builder() .name("restart-delay") - .description("How many ticks to wait before restarting the elytra again after rubberbanding.") .defaultValue(7) .min(0) .sliderRange(0, 20) @@ -271,7 +243,6 @@ public class ElytraFly extends Module { public final Setting sprint = sgGeneral.add(new BoolSetting.Builder() .name("sprint-constantly") - .description("Sprints all the time. If turned off, it will only sprint when the player is touching the ground.") .defaultValue(true) .visible(() -> flightMode.get() == ElytraFlightModes.Bounce) .build() @@ -279,7 +250,6 @@ public class ElytraFly extends Module { public final Setting manualTakeoff = sgGeneral.add(new BoolSetting.Builder() .name("manual-takeoff") - .description("Does not automatically take off.") .defaultValue(false) .visible(() -> flightMode.get() == ElytraFlightModes.Bounce) .build() @@ -289,14 +259,12 @@ public class ElytraFly extends Module { public final Setting replace = sgInventory.add(new BoolSetting.Builder() .name("elytra-replace") - .description("Replaces broken elytra with a new elytra.") .defaultValue(false) .build() ); public final Setting replaceDurability = sgInventory.add(new IntSetting.Builder() .name("replace-durability") - .description("The durability threshold your elytra will be replaced at.") .defaultValue(2) .range(1, Items.ELYTRA.getComponents().getOrDefault(DataComponentTypes.MAX_DAMAGE, 432) - 1) .sliderRange(1, Items.ELYTRA.getComponents().getOrDefault(DataComponentTypes.MAX_DAMAGE, 432) - 1) @@ -306,21 +274,18 @@ public class ElytraFly extends Module { public final Setting chestSwap = sgInventory.add(new EnumSetting.Builder() .name("chest-swap") - .description("Enables ChestSwap when toggling this module.") .defaultValue(ChestSwapMode.Never) .build() ); public final Setting autoReplenish = sgInventory.add(new BoolSetting.Builder() .name("replenish-fireworks") - .description("Moves fireworks into a selected hotbar slot.") .defaultValue(false) .build() ); public final Setting replenishSlot = sgInventory.add(new IntSetting.Builder() .name("replenish-slot") - .description("The slot auto move moves fireworks to.") .defaultValue(9) .range(1, 9) .sliderRange(1, 9) @@ -332,7 +297,6 @@ public class ElytraFly extends Module { public final Setting autoPilot = sgAutopilot.add(new BoolSetting.Builder() .name("auto-pilot") - .description("Moves forward while elytra flying.") .defaultValue(false) .visible(() -> flightMode.get() != ElytraFlightModes.Pitch40 && flightMode.get() != ElytraFlightModes.Bounce) .build() @@ -340,7 +304,6 @@ public class ElytraFly extends Module { public final Setting useFireworks = sgAutopilot.add(new BoolSetting.Builder() .name("use-fireworks") - .description("Uses firework rockets every second of your choice.") .defaultValue(false) .visible(() -> autoPilot.get() && flightMode.get() != ElytraFlightModes.Pitch40 && flightMode.get() != ElytraFlightModes.Bounce) .build() @@ -348,7 +311,6 @@ public class ElytraFly extends Module { public final Setting autoPilotFireworkDelay = sgAutopilot.add(new DoubleSetting.Builder() .name("firework-delay") - .description("The delay in seconds in between using fireworks if \"Use Fireworks\" is enabled.") .min(1) .defaultValue(8) .sliderMax(20) @@ -358,7 +320,6 @@ public class ElytraFly extends Module { public final Setting autoPilotMinimumHeight = sgAutopilot.add(new DoubleSetting.Builder() .name("minimum-height") - .description("The minimum height for autopilot.") .defaultValue(120) .min(-128) .sliderMax(260) @@ -369,7 +330,7 @@ public class ElytraFly extends Module { private ElytraFlightMode currentMode = new Vanilla(); public ElytraFly() { - super(Categories.Movement, "elytra-fly", "Gives you more control over your elytra."); + super(Categories.Movement, "elytra-fly"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/speed/Speed.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/speed/Speed.java index 40b4d268da..490a22970c 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/speed/Speed.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/speed/Speed.java @@ -25,7 +25,6 @@ public class Speed extends Module { public final Setting speedMode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("The method of applying speed.") .defaultValue(SpeedModes.Vanilla) .onModuleActivated(speedModesSetting -> onSpeedModeChanged(speedModesSetting.get())) .onChanged(this::onSpeedModeChanged) @@ -34,7 +33,6 @@ public class Speed extends Module { public final Setting vanillaSpeed = sgGeneral.add(new DoubleSetting.Builder() .name("vanilla-speed") - .description("The speed in blocks per second.") .defaultValue(5.6) .min(0) .sliderMax(20) @@ -44,7 +42,6 @@ public class Speed extends Module { public final Setting ncpSpeed = sgGeneral.add(new DoubleSetting.Builder() .name("strafe-speed") - .description("The speed.") .visible(() -> speedMode.get() == SpeedModes.Strafe) .defaultValue(1.6) .min(0) @@ -54,7 +51,6 @@ public class Speed extends Module { public final Setting ncpSpeedLimit = sgGeneral.add(new BoolSetting.Builder() .name("speed-limit") - .description("Limits your speed on servers with very strict anticheats.") .visible(() -> speedMode.get() == SpeedModes.Strafe) .defaultValue(false) .build() @@ -62,7 +58,6 @@ public class Speed extends Module { public final Setting timer = sgGeneral.add(new DoubleSetting.Builder() .name("timer") - .description("Timer override.") .defaultValue(1) .min(0.01) .sliderMin(0.01) @@ -72,21 +67,18 @@ public class Speed extends Module { public final Setting inLiquids = sgGeneral.add(new BoolSetting.Builder() .name("in-liquids") - .description("Uses speed when in lava or water.") .defaultValue(false) .build() ); public final Setting whenSneaking = sgGeneral.add(new BoolSetting.Builder() .name("when-sneaking") - .description("Uses speed when sneaking.") .defaultValue(false) .build() ); public final Setting vanillaOnGround = sgGeneral.add(new BoolSetting.Builder() .name("only-on-ground") - .description("Uses speed only when standing on a block.") .visible(() -> speedMode.get() == SpeedModes.Vanilla) .defaultValue(false) .build() @@ -95,7 +87,7 @@ public class Speed extends Module { private SpeedMode currentMode; public Speed() { - super(Categories.Movement, "speed", "Modifies your movement speed when moving on the ground."); + super(Categories.Movement, "speed"); onSpeedModeChanged(speedMode.get()); } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AirPlace.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AirPlace.java index 15200a20d6..cf3047f5d1 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AirPlace.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AirPlace.java @@ -26,34 +26,30 @@ public class AirPlace extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgRange = settings.createGroup("Range"); + private final SettingGroup sgRange = settings.createGroup("range"); // General private final Setting render = sgGeneral.add(new BoolSetting.Builder() .name("render") - .description("Renders a block overlay where the obsidian will be placed.") .defaultValue(true) .build() ); private final Setting shapeMode = sgGeneral.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .build() ); private final Setting sideColor = sgGeneral.add(new ColorSetting.Builder() .name("side-color") - .description("The color of the sides of the blocks being rendered.") .defaultValue(new SettingColor(204, 0, 0, 10)) .build() ); private final Setting lineColor = sgGeneral.add(new ColorSetting.Builder() .name("line-color") - .description("The color of the lines of the blocks being rendered.") .defaultValue(new SettingColor(204, 0, 0, 255)) .build() ); @@ -62,14 +58,12 @@ public class AirPlace extends Module { private final Setting customRange = sgRange.add(new BoolSetting.Builder() .name("custom-range") - .description("Use custom range for air place.") .defaultValue(false) .build() ); private final Setting range = sgRange.add(new DoubleSetting.Builder() .name("range") - .description("Custom range to place at.") .visible(customRange::get) .defaultValue(5) .min(0) @@ -80,7 +74,7 @@ public class AirPlace extends Module { private HitResult hitResult; public AirPlace() { - super(Categories.Player, "air-place", "Places a block where your crosshair is pointing at."); + super(Categories.Player, "air-place"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AntiAFK.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AntiAFK.java index 2d170034d7..2f47a42189 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AntiAFK.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AntiAFK.java @@ -18,35 +18,31 @@ import java.util.Random; public class AntiAFK extends Module { - private final SettingGroup sgActions = settings.createGroup("Actions"); - private final SettingGroup sgMessages = settings.createGroup("Messages"); + private final SettingGroup sgActions = settings.createGroup("actions"); + private final SettingGroup sgMessages = settings.createGroup("messages"); // Actions private final Setting jump = sgActions.add(new BoolSetting.Builder() .name("jump") - .description("Jump randomly.") .defaultValue(true) .build() ); private final Setting swing = sgActions.add(new BoolSetting.Builder() .name("swing") - .description("Swings your hand.") .defaultValue(false) .build() ); private final Setting sneak = sgActions.add(new BoolSetting.Builder() .name("sneak") - .description("Sneaks and unsneaks quickly.") .defaultValue(false) .build() ); private final Setting sneakTime = sgActions.add(new IntSetting.Builder() .name("sneak-time") - .description("How many ticks to stay sneaked.") .defaultValue(5) .min(1) .sliderMin(1) @@ -56,7 +52,6 @@ public class AntiAFK extends Module { private final Setting strafe = sgActions.add(new BoolSetting.Builder() .name("strafe") - .description("Strafe right and left.") .defaultValue(false) .onChanged(aBoolean -> { strafeTimer = 0; @@ -72,14 +67,12 @@ public class AntiAFK extends Module { private final Setting spin = sgActions.add(new BoolSetting.Builder() .name("spin") - .description("Spins the player in place.") .defaultValue(true) .build() ); private final Setting spinMode = sgActions.add(new EnumSetting.Builder() .name("spin-mode") - .description("The method of rotating.") .defaultValue(SpinMode.Server) .visible(spin::get) .build() @@ -87,7 +80,6 @@ public class AntiAFK extends Module { private final Setting spinSpeed = sgActions.add(new IntSetting.Builder() .name("speed") - .description("The speed to spin you.") .defaultValue(7) .visible(spin::get) .build() @@ -95,7 +87,6 @@ public class AntiAFK extends Module { private final Setting pitch = sgActions.add(new IntSetting.Builder() .name("pitch") - .description("The pitch to send to the server.") .defaultValue(0) .range(-90, 90) .sliderRange(-90, 90) @@ -108,14 +99,12 @@ public class AntiAFK extends Module { private final Setting sendMessages = sgMessages.add(new BoolSetting.Builder() .name("send-messages") - .description("Sends messages to prevent getting kicked for AFK.") .defaultValue(false) .build() ); private final Setting randomMessage = sgMessages.add(new BoolSetting.Builder() .name("random") - .description("Selects a random message from your message list.") .defaultValue(false) .visible(sendMessages::get) .build() @@ -123,7 +112,6 @@ public class AntiAFK extends Module { private final Setting delay = sgMessages.add(new IntSetting.Builder() .name("delay") - .description("The delay between specified messages in seconds.") .defaultValue(15) .min(0) .sliderMax(30) @@ -133,7 +121,6 @@ public class AntiAFK extends Module { private final Setting> messages = sgMessages.add(new StringListSetting.Builder() .name("messages") - .description("The messages to choose from.") .defaultValue( "Meteor on top!", "Meteor on crack!" @@ -143,7 +130,7 @@ public class AntiAFK extends Module { ); public AntiAFK() { - super(Categories.Player, "anti-afk", "Performs different actions to prevent getting kicked while AFK."); + super(Categories.Player, "anti-afk"); } private final Random random = new Random(); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AntiHunger.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AntiHunger.java index 5c94ffe687..0a749da4bf 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AntiHunger.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AntiHunger.java @@ -22,14 +22,12 @@ public class AntiHunger extends Module { private final Setting sprint = sgGeneral.add(new BoolSetting.Builder() .name("sprint") - .description("Spoofs sprinting packets.") .defaultValue(true) .build() ); private final Setting onGround = sgGeneral.add(new BoolSetting.Builder() .name("on-ground") - .description("Spoofs the onGround flag.") .defaultValue(true) .build() ); @@ -37,7 +35,7 @@ public class AntiHunger extends Module { private boolean lastOnGround, ignorePacket; public AntiHunger() { - super(Categories.Player, "anti-hunger", "Reduces (does NOT remove) hunger consumption."); + super(Categories.Player, "anti-hunger"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoClicker.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoClicker.java index 8ab9a34069..6e7be53116 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoClicker.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoClicker.java @@ -17,21 +17,18 @@ public class AutoClicker extends Module { private final Setting inScreens = sgGeneral.add(new BoolSetting.Builder() .name("while-in-screens") - .description("Whether to click while a screen is open.") .defaultValue(true) .build() ); private final Setting leftClickMode = sgGeneral.add(new EnumSetting.Builder() .name("mode-left") - .description("The method of clicking for left clicks.") .defaultValue(Mode.Press) .build() ); private final Setting leftClickDelay = sgGeneral.add(new IntSetting.Builder() .name("delay-left") - .description("The amount of delay between left clicks in ticks.") .defaultValue(2) .min(0) .sliderMax(60) @@ -41,14 +38,12 @@ public class AutoClicker extends Module { private final Setting rightClickMode = sgGeneral.add(new EnumSetting.Builder() .name("mode-right") - .description("The method of clicking for right clicks.") .defaultValue(Mode.Press) .build() ); private final Setting rightClickDelay = sgGeneral.add(new IntSetting.Builder() .name("delay-right") - .description("The amount of delay between right clicks in ticks.") .defaultValue(2) .min(0) .sliderMax(60) @@ -59,7 +54,7 @@ public class AutoClicker extends Module { private int rightClickTimer, leftClickTimer; public AutoClicker() { - super(Categories.Player, "auto-clicker", "Automatically clicks."); + super(Categories.Player, "auto-clicker"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoEat.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoEat.java index 8640666fd1..c49b32bb22 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoEat.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoEat.java @@ -36,12 +36,11 @@ public class AutoEat extends Module { // Settings groups private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgThreshold = settings.createGroup("Threshold"); + private final SettingGroup sgThreshold = settings.createGroup("threshold"); // General public final Setting> blacklist = sgGeneral.add(new ItemListSetting.Builder() .name("blacklist") - .description("Which items to not eat.") .defaultValue( Items.ENCHANTED_GOLDEN_APPLE, Items.GOLDEN_APPLE, @@ -59,14 +58,12 @@ public class AutoEat extends Module { private final Setting pauseAuras = sgGeneral.add(new BoolSetting.Builder() .name("pause-auras") - .description("Pauses all auras when eating.") .defaultValue(true) .build() ); private final Setting pauseBaritone = sgGeneral.add(new BoolSetting.Builder() .name("pause-baritone") - .description("Pause baritone when eating.") .defaultValue(true) .build() ); @@ -74,14 +71,12 @@ public class AutoEat extends Module { // Threshold private final Setting thresholdMode = sgThreshold.add(new EnumSetting.Builder() .name("threshold-mode") - .description("The threshold mode to trigger auto eat.") .defaultValue(ThresholdMode.Any) .build() ); private final Setting healthThreshold = sgThreshold.add(new DoubleSetting.Builder() .name("health-threshold") - .description("The level of health you eat at.") .defaultValue(10) .range(1, 19) .sliderRange(1, 19) @@ -91,7 +86,6 @@ public class AutoEat extends Module { private final Setting hungerThreshold = sgThreshold.add(new IntSetting.Builder() .name("hunger-threshold") - .description("The level of hunger you eat at.") .defaultValue(16) .range(1, 19) .sliderRange(1, 19) @@ -107,7 +101,7 @@ public class AutoEat extends Module { private boolean wasBaritone = false; public AutoEat() { - super(Categories.Player, "auto-eat", "Automatically eats food."); + super(Categories.Player, "auto-eat"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoFish.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoFish.java index ae630c33a1..9d40f168e2 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoFish.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoFish.java @@ -27,28 +27,24 @@ public class AutoFish extends Module { private final Setting autoSwitch = sgGeneral.add(new BoolSetting.Builder() .name("auto-switch") - .description("Automatically switch to a fishing rod.") .defaultValue(true) .build() ); private final Setting antiBreak = sgGeneral.add(new BoolSetting.Builder() .name("anti-break") - .description("Avoid using rods that would break if they were cast.") .defaultValue(true) .build() ); private final Setting autoCast = sgGeneral.add(new BoolSetting.Builder() .name("auto-cast") - .description("Automatically cast the fishing rod.") .defaultValue(true) .build() ); private final Setting castDelay = sgGeneral.add(new IntSetting.Builder() .name("cast-delay") - .description("How long to wait between recasts if the bobber fails to land in water.") .defaultValue(14) .min(1) .sliderMax(60) @@ -57,7 +53,6 @@ public class AutoFish extends Module { private final Setting castDelayVariance = sgGeneral.add(new IntSetting.Builder() .name("cast-delay-variance") - .description("Maximum amount of randomness added to cast delay.") .defaultValue(0) .min(0) .sliderMax(30) @@ -66,7 +61,6 @@ public class AutoFish extends Module { private final Setting catchDelay = sgGeneral.add(new IntSetting.Builder() .name("catch-delay") - .description("How long to wait after hooking a fish to reel it in.") .defaultValue(6) .min(1) .sliderMax(20) @@ -75,7 +69,6 @@ public class AutoFish extends Module { private final Setting catchDelayVariance = sgGeneral.add(new IntSetting.Builder() .name("catch-delay-variance") - .description("Maximum amount of randomness added to catch delay.") .defaultValue(0) .min(0) .sliderMax(10) // Since the shortest Java edition catch window is 20 ticks, this is the highest possible variance that won't miss fish. @@ -83,7 +76,7 @@ public class AutoFish extends Module { ); public AutoFish() { - super(Categories.Player, "auto-fish", "Automatically fishes for you."); + super(Categories.Player, "auto-fish"); } private double castDelayLeft = 0.0; diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoGap.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoGap.java index b9dbc11d2f..693fadbbcd 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoGap.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoGap.java @@ -39,35 +39,31 @@ public class AutoGap extends Module { private static final Class[] AURAS = new Class[] { KillAura.class, CrystalAura.class, AnchorAura.class, BedAura.class }; private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgPotions = settings.createGroup("Potions"); - private final SettingGroup sgHealth = settings.createGroup("Health"); + private final SettingGroup sgPotions = settings.createGroup("potions"); + private final SettingGroup sgHealth = settings.createGroup("health"); // General private final Setting allowEgap = sgGeneral.add(new BoolSetting.Builder() .name("allow-egap") - .description("Allow eating E-Gaps over Gaps if found.") .defaultValue(true) .build() ); private final Setting always = sgGeneral.add(new BoolSetting.Builder() .name("always") - .description("If it should always eat.") .defaultValue(false) .build() ); private final Setting pauseAuras = sgGeneral.add(new BoolSetting.Builder() .name("pause-auras") - .description("Pauses all auras when eating.") .defaultValue(true) .build() ); private final Setting pauseBaritone = sgGeneral.add(new BoolSetting.Builder() .name("pause-baritone") - .description("Pause baritone when eating.") .defaultValue(true) .build() ); @@ -75,14 +71,12 @@ public class AutoGap extends Module { // Potions private final Setting beforeExpiry = sgPotions.add(new BoolSetting.Builder() .name("before-expiry") - .description("If it should eat before potion effects expire.") .defaultValue(false) .build() ); private final Setting expiryThreshold = sgPotions.add(new IntSetting.Builder() .name("expiry-threshold") - .description("Time in ticks before the potion effect expires to start eating.") .defaultValue(60) .min(0) .sliderMax(200) @@ -92,14 +86,12 @@ public class AutoGap extends Module { private final Setting potionsRegeneration = sgPotions.add(new BoolSetting.Builder() .name("potions-regeneration") - .description("If it should eat when Regeneration runs out.") .defaultValue(false) .build() ); private final Setting potionsFireResistance = sgPotions.add(new BoolSetting.Builder() .name("potions-fire-resistance") - .description("If it should eat when Fire Resistance runs out. Requires E-Gaps.") .defaultValue(true) .visible(allowEgap::get) .build() @@ -107,7 +99,6 @@ public class AutoGap extends Module { private final Setting potionsAbsorption = sgPotions.add(new BoolSetting.Builder() .name("potions-absorption") - .description("If it should eat when Absorption runs out. Requires E-Gaps.") .defaultValue(false) .visible(allowEgap::get) .build() @@ -117,14 +108,12 @@ public class AutoGap extends Module { private final Setting healthEnabled = sgHealth.add(new BoolSetting.Builder() .name("health-enabled") - .description("If it should eat when health drops below threshold.") .defaultValue(true) .build() ); private final Setting healthThreshold = sgHealth.add(new IntSetting.Builder() .name("health-threshold") - .description("Health threshold to eat at. Includes absorption.") .defaultValue(20) .min(0) .sliderMax(40) @@ -140,7 +129,7 @@ public class AutoGap extends Module { private boolean wasBaritone; public AutoGap() { - super(Categories.Player, "auto-gap", "Automatically eats Gaps or E-Gaps."); + super(Categories.Player, "auto-gap"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoMend.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoMend.java index 569400a272..be6c795796 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoMend.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoMend.java @@ -27,21 +27,18 @@ public class AutoMend extends Module { private final Setting> blacklist = sgGeneral.add(new ItemListSetting.Builder() .name("blacklist") - .description("Item blacklist.") .filter(item -> item.getComponents().get(DataComponentTypes.DAMAGE) != null) .build() ); private final Setting force = sgGeneral.add(new BoolSetting.Builder() .name("force") - .description("Replaces item in offhand even if there is some other non-repairable item.") .defaultValue(false) .build() ); private final Setting autoDisable = sgGeneral.add(new BoolSetting.Builder() .name("auto-disable") - .description("Automatically disables when there are no more items to repair.") .defaultValue(true) .build() ); @@ -49,7 +46,7 @@ public class AutoMend extends Module { private boolean didMove; public AutoMend() { - super(Categories.Player, "auto-mend", "Automatically replaces items in your offhand with mending when fully repaired."); + super(Categories.Player, "auto-mend"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoReplenish.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoReplenish.java index cdb30f7461..93b9dfdd68 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoReplenish.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoReplenish.java @@ -26,7 +26,6 @@ public class AutoReplenish extends Module { private final Setting minCount = sgGeneral.add(new IntSetting.Builder() .name("min-count") - .description("Replenish a slot when it reaches this item count.") .defaultValue(8) .min(1) .sliderRange(1, 63) @@ -35,7 +34,6 @@ public class AutoReplenish extends Module { private final Setting tickDelay = sgGeneral.add(new IntSetting.Builder() .name("delay") - .description("How long in ticks to wait between replenishing your hotbar.") .defaultValue(1) .min(0) .build() @@ -43,21 +41,18 @@ public class AutoReplenish extends Module { private final Setting offhand = sgGeneral.add(new BoolSetting.Builder() .name("offhand") - .description("Whether or not to replenish items in your offhand.") .defaultValue(true) .build() ); private final Setting unstackable = sgGeneral.add(new BoolSetting.Builder() .name("unstackable") - .description("Replenish unstackable items.") .defaultValue(true) .build() ); private final Setting sameEnchants = sgGeneral.add(new BoolSetting.Builder() .name("same-enchants") - .description("Only replace unstackables with items that have the same enchants.") .defaultValue(true) .visible(unstackable::get) .build() @@ -65,14 +60,12 @@ public class AutoReplenish extends Module { private final Setting searchHotbar = sgGeneral.add(new BoolSetting.Builder() .name("search-hotbar") - .description("Combine stacks in your hotbar/offhand as a last resort.") .defaultValue(false) .build() ); private final Setting> excludedItems = sgGeneral.add(new ItemListSetting.Builder() .name("excluded-items") - .description("Items that won't be replenished.") .build() ); @@ -85,7 +78,7 @@ public class AutoReplenish extends Module { private int tickDelayLeft; public AutoReplenish() { - super(Categories.Player, "auto-replenish", "Automatically refills items in your hotbar, main hand, or offhand."); + super(Categories.Player, "auto-replenish"); Arrays.fill(items, Items.AIR.getDefaultStack()); } @@ -131,7 +124,7 @@ private void checkSlot(int slot, ItemStack stack) { items[slot] = stack.copy(); if (slot == 9) slot = SlotUtils.OFFHAND; - + if (excludedItems.get().contains(stack.getItem())) return; if (excludedItems.get().contains(prevStack.getItem())) return; diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoRespawn.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoRespawn.java index 67dbafdb66..ec7e771dbe 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoRespawn.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoRespawn.java @@ -16,7 +16,7 @@ public class AutoRespawn extends Module { public AutoRespawn() { - super(Categories.Player, "auto-respawn", "Automatically respawns after death."); + super(Categories.Player, "auto-respawn"); } @EventHandler(priority = EventPriority.HIGH) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoTool.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoTool.java index fdc6774c86..e4a54ba2ed 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoTool.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/AutoTool.java @@ -33,41 +33,36 @@ public class AutoTool extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgWhitelist = settings.createGroup("Whitelist"); + private final SettingGroup sgWhitelist = settings.createGroup("whitelist"); // General private final Setting prefer = sgGeneral.add(new EnumSetting.Builder() .name("prefer") - .description("Either to prefer Silk Touch, Fortune, or none.") .defaultValue(EnchantPreference.Fortune) .build() ); private final Setting silkTouchForEnderChest = sgGeneral.add(new BoolSetting.Builder() .name("silk-touch-for-ender-chest") - .description("Mines Ender Chests only with the Silk Touch enchantment.") .defaultValue(true) .build() ); private final Setting fortuneForOresCrops = sgGeneral.add(new BoolSetting.Builder() .name("fortune-for-ores-and-crops") - .description("Mines Ores and crops only with the Fortune enchantment.") .defaultValue(false) .build() ); private final Setting antiBreak = sgGeneral.add(new BoolSetting.Builder() .name("anti-break") - .description("Stops you from breaking your tool.") .defaultValue(false) .build() ); private final Setting breakDurability = sgGeneral.add(new IntSetting.Builder() .name("anti-break-percentage") - .description("The durability percentage to stop using a tool.") .defaultValue(10) .range(1, 100) .sliderRange(1, 100) @@ -77,14 +72,12 @@ public class AutoTool extends Module { private final Setting switchBack = sgGeneral.add(new BoolSetting.Builder() .name("switch-back") - .description("Switches your hand to whatever was selected when releasing your attack key.") .defaultValue(false) .build() ); private final Setting switchDelay = sgGeneral.add((new IntSetting.Builder() .name("switch-delay") - .description("Delay in ticks before switching tools.") .defaultValue(0) .build() )); @@ -93,14 +86,12 @@ public class AutoTool extends Module { private final Setting listMode = sgWhitelist.add(new EnumSetting.Builder() .name("list-mode") - .description("Selection mode.") .defaultValue(ListMode.Blacklist) .build() ); private final Setting> whitelist = sgWhitelist.add(new ItemListSetting.Builder() .name("whitelist") - .description("The tools you want to use.") .visible(() -> listMode.get() == ListMode.Whitelist) .filter(AutoTool::isTool) .build() @@ -108,7 +99,6 @@ public class AutoTool extends Module { private final Setting> blacklist = sgWhitelist.add(new ItemListSetting.Builder() .name("blacklist") - .description("The tools you don't want to use.") .visible(() -> listMode.get() == ListMode.Blacklist) .filter(AutoTool::isTool) .build() @@ -120,7 +110,7 @@ public class AutoTool extends Module { private int bestSlot; public AutoTool() { - super(Categories.Player, "auto-tool", "Automatically switches to the most effective tool when performing an action."); + super(Categories.Player, "auto-tool"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/BreakDelay.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/BreakDelay.java index fe0b0f497e..6f683f15f8 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/BreakDelay.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/BreakDelay.java @@ -21,7 +21,6 @@ public class BreakDelay extends Module { private final Setting cooldown = sgGeneral.add(new IntSetting.Builder() .name("cooldown") - .description("Block break cooldown in ticks.") .defaultValue(0) .min(0) .sliderMax(5) @@ -30,7 +29,6 @@ public class BreakDelay extends Module { private final Setting noInstaBreak = sgGeneral.add(new BoolSetting.Builder() .name("no-insta-break") - .description("Prevents you from misbreaking blocks if you can instantly break them.") .defaultValue(false) .build() ); @@ -38,7 +36,7 @@ public class BreakDelay extends Module { private boolean breakBlockCooldown = false; public BreakDelay() { - super(Categories.Player, "break-delay", "Changes the delay between breaking blocks."); + super(Categories.Player, "break-delay"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/ChestSwap.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/ChestSwap.java index 8cbeed193c..adfed938bd 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/ChestSwap.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/ChestSwap.java @@ -25,27 +25,24 @@ public class ChestSwap extends Module { private final Setting chestplate = sgGeneral.add(new EnumSetting.Builder() .name("chestplate") - .description("Which type of chestplate to swap to.") .defaultValue(Chestplate.PreferNetherite) .build() ); private final Setting stayOn = sgGeneral.add(new BoolSetting.Builder() .name("stay-on") - .description("Stays on and activates when you turn it off.") .defaultValue(false) .build() ); private final Setting closeInventory = sgGeneral.add(new BoolSetting.Builder() .name("close-inventory") - .description("Sends inventory close after swap.") .defaultValue(true) .build() ); public ChestSwap() { - super(Categories.Player, "chest-swap", "Automatically swaps between a chestplate and an elytra."); + super(Categories.Player, "chest-swap"); } @Override @@ -138,7 +135,7 @@ private void equip(int slot) { @Override public void sendToggledMsg() { if (stayOn.get()) super.sendToggledMsg(); - else if (Config.get().chatFeedback.get() && chatFeedback) info("Triggered (highlight)%s(default).", title); + else if (Config.get().chatFeedback.get() && chatFeedback) info("Triggered (highlight)%s(default).", this.getTitle()); } public enum Chestplate { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/EXPThrower.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/EXPThrower.java index a64f656e02..a86ab6df37 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/EXPThrower.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/EXPThrower.java @@ -16,7 +16,7 @@ public class EXPThrower extends Module { public EXPThrower() { - super(Categories.Player, "exp-thrower", "Automatically throws XP bottles from your hotbar."); + super(Categories.Player, "exp-thrower"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/FakePlayer.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/FakePlayer.java index 9b427a8aed..ec79dfc330 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/FakePlayer.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/FakePlayer.java @@ -21,21 +21,18 @@ public class FakePlayer extends Module { public final Setting name = sgGeneral.add(new StringSetting.Builder() .name("name") - .description("The name of the fake player.") .defaultValue("seasnail8169") .build() ); public final Setting copyInv = sgGeneral.add(new BoolSetting.Builder() .name("copy-inv") - .description("Copies your inventory to the fake player.") .defaultValue(true) .build() ); public final Setting health = sgGeneral.add(new IntSetting.Builder() .name("health") - .description("The fake player's default health.") .defaultValue(20) .min(1) .sliderRange(1, 100) @@ -45,7 +42,7 @@ public class FakePlayer extends Module { private WTable table; public FakePlayer() { - super(Categories.Player, "fake-player", "Spawns a client-side fake player for testing usages. No need to be active."); + super(Categories.Player, "fake-player"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/FastUse.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/FastUse.java index 0a17c7d48a..e6d6870c54 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/FastUse.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/FastUse.java @@ -24,21 +24,18 @@ public enum Mode { private final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("Which items to fast use.") .defaultValue(Mode.All) .build() ); private final Setting> items = sgGeneral.add(new ItemListSetting.Builder() .name("items") - .description("Which items should fast place work on in \"Some\" mode.") .visible(() -> mode.get() == Mode.Some) .build() ); private final Setting blocks = sgGeneral.add(new BoolSetting.Builder() .name("blocks") - .description("Fast-places blocks if the mode is \"Some\" mode.") .visible(() -> mode.get() == Mode.Some) .defaultValue(false) .build() @@ -46,7 +43,6 @@ public enum Mode { private final Setting cooldown = sgGeneral.add(new IntSetting.Builder() .name("cooldown") - .description("Fast-use cooldown in ticks.") .defaultValue(0) .min(0) .sliderMax(4) @@ -54,7 +50,7 @@ public enum Mode { ); public FastUse() { - super(Categories.Player, "fast-use", "Allows you to use items at very high speeds."); + super(Categories.Player, "fast-use"); } public int getItemUseCooldown(ItemStack itemStack) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/GhostHand.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/GhostHand.java index efd61e216a..71eef7cf1d 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/GhostHand.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/GhostHand.java @@ -23,7 +23,7 @@ public class GhostHand extends Module { private final Set posList = new ObjectOpenHashSet<>(); public GhostHand() { - super(Categories.Player, "ghost-hand", "Opens containers through walls."); + super(Categories.Player, "ghost-hand"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/InstantRebreak.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/InstantRebreak.java index 06766eef18..b1785f7ec2 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/InstantRebreak.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/InstantRebreak.java @@ -25,11 +25,10 @@ public class InstantRebreak extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgRender = settings.createGroup("Render"); + private final SettingGroup sgRender = settings.createGroup("render"); private final Setting tickDelay = sgGeneral.add(new IntSetting.Builder() .name("delay") - .description("The delay between break attempts.") .defaultValue(0) .min(0) .sliderMax(20) @@ -38,14 +37,12 @@ public class InstantRebreak extends Module { private final Setting pick = sgGeneral.add(new BoolSetting.Builder() .name("only-pick") - .description("Only tries to mine the block if you are holding a pickaxe.") .defaultValue(true) .build() ); private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() .name("rotate") - .description("Faces the block being mined server side.") .defaultValue(true) .build() ); @@ -54,28 +51,24 @@ public class InstantRebreak extends Module { private final Setting render = sgRender.add(new BoolSetting.Builder() .name("render") - .description("Renders an overlay on the block being broken.") .defaultValue(true) .build() ); private final Setting shapeMode = sgRender.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .build() ); private final Setting sideColor = sgRender.add(new ColorSetting.Builder() .name("side-color") - .description("The color of the sides of the blocks being rendered.") .defaultValue(new SettingColor(204, 0, 0, 10)) .build() ); private final Setting lineColor = sgRender.add(new ColorSetting.Builder() .name("line-color") - .description("The color of the lines of the blocks being rendered.") .defaultValue(new SettingColor(204, 0, 0, 255)) .build() ); @@ -85,7 +78,7 @@ public class InstantRebreak extends Module { private Direction direction; public InstantRebreak() { - super(Categories.Player, "instant-rebreak", "Instantly re-breaks blocks in the same position."); + super(Categories.Player, "instant-rebreak"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/LiquidInteract.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/LiquidInteract.java index aaea7b351f..b9c649c297 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/LiquidInteract.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/LiquidInteract.java @@ -10,6 +10,6 @@ public class LiquidInteract extends Module { public LiquidInteract() { - super(Categories.Player, "liquid-interact", "Allows you to interact with liquids."); + super(Categories.Player, "liquid-interact"); } } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/MiddleClickExtra.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/MiddleClickExtra.java index ed8f38d0b3..75b059f9d5 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/MiddleClickExtra.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/MiddleClickExtra.java @@ -35,14 +35,12 @@ public class MiddleClickExtra extends Module { private final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("Which item to use when you middle click.") .defaultValue(Mode.Pearl) .build() ); private final Setting message = sgGeneral.add(new BoolSetting.Builder() .name("send-message") - .description("Sends a message when you add a player as a friend.") .defaultValue(false) .visible(() -> mode.get() == Mode.AddFriend) .build() @@ -50,7 +48,6 @@ public class MiddleClickExtra extends Module { private final Setting friendMessage = sgGeneral.add(new StringSetting.Builder() .name("message-to-send") - .description("Message to send when you add a player as a friend (use %player for the player's name)") .defaultValue("/msg %player I just friended you on Meteor.") .visible(() -> mode.get() == Mode.AddFriend) .build() @@ -58,7 +55,6 @@ public class MiddleClickExtra extends Module { private final Setting quickSwap = sgGeneral.add(new BoolSetting.Builder() .name("quick-swap") - .description("Allows you to use items in your inventory by simulating hotbar key presses. May get flagged by anticheats.") .defaultValue(false) .visible(() -> mode.get() != Mode.AddFriend) .build() @@ -66,7 +62,6 @@ public class MiddleClickExtra extends Module { private final Setting swapBack = sgGeneral.add(new BoolSetting.Builder() .name("swap-back") - .description("Swap back to your original slot when you finish using an item.") .defaultValue(false) .visible(() -> mode.get() != Mode.AddFriend && !quickSwap.get()) .build() @@ -74,21 +69,19 @@ public class MiddleClickExtra extends Module { private final Setting disableInCreative = sgGeneral.add(new BoolSetting.Builder() .name("disable-in-creative") - .description("Middle click action is disabled in Creative mode.") .defaultValue(true) .build() ); private final Setting notify = sgGeneral.add(new BoolSetting.Builder() .name("notify") - .description("Notifies you when you do not have the specified item in your hotbar.") .defaultValue(true) .visible(() -> mode.get() != Mode.AddFriend) .build() ); public MiddleClickExtra() { - super(Categories.Player, "middle-click-extra", "Perform various actions when you middle click."); + super(Categories.Player, "middle-click-extra"); } private boolean isUsing; diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/Multitask.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/Multitask.java index 62a5b98abe..45303f4bdb 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/Multitask.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/Multitask.java @@ -16,13 +16,12 @@ public class Multitask extends Module { private final Setting attackingEntities = sgGeneral.add(new BoolSetting.Builder() .name("attacking-entities") - .description("Lets you attack entities while using an item.") .defaultValue(true) .build() ); public Multitask() { - super(Categories.Player, "multitask", "Lets you use items and attack at the same time."); + super(Categories.Player, "multitask"); } public boolean attackingEntities() { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NameProtect.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NameProtect.java index 5ba3b14f4b..ceade4289e 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NameProtect.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NameProtect.java @@ -17,14 +17,12 @@ public class NameProtect extends Module { private final Setting nameProtect = sgGeneral.add(new BoolSetting.Builder() .name("name-protect") - .description("Hides your name client-side.") .defaultValue(true) .build() ); private final Setting name = sgGeneral.add(new StringSetting.Builder() .name("name") - .description("Name to be replaced with.") .defaultValue("seasnail") .visible(nameProtect::get) .build() @@ -32,7 +30,6 @@ public class NameProtect extends Module { private final Setting skinProtect = sgGeneral.add(new BoolSetting.Builder() .name("skin-protect") - .description("Make players become Steves.") .defaultValue(true) .build() ); @@ -40,7 +37,7 @@ public class NameProtect extends Module { private String username = "If you see this, something is wrong."; public NameProtect() { - super(Categories.Player, "name-protect", "Hide player names and skins."); + super(Categories.Player, "name-protect"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoInteract.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoInteract.java index 4bea37d511..427539536f 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoInteract.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoInteract.java @@ -28,40 +28,35 @@ import java.util.Set; public class NoInteract extends Module { - private final SettingGroup sgBlocks = settings.createGroup("Blocks"); - private final SettingGroup sgEntities = settings.createGroup("Entities"); + private final SettingGroup sgBlocks = settings.createGroup("blocks"); + private final SettingGroup sgEntities = settings.createGroup("entities"); // Blocks private final Setting> blockMine = sgBlocks.add(new BlockListSetting.Builder() .name("block-mine") - .description("Cancels block mining.") .build() ); private final Setting blockMineMode = sgBlocks.add(new EnumSetting.Builder() .name("block-mine-mode") - .description("List mode to use for block mine.") .defaultValue(ListMode.BlackList) .build() ); private final Setting> blockInteract = sgBlocks.add(new BlockListSetting.Builder() .name("block-interact") - .description("Cancels block interaction.") .build() ); private final Setting blockInteractMode = sgBlocks.add(new EnumSetting.Builder() .name("block-interact-mode") - .description("List mode to use for block interact.") .defaultValue(ListMode.BlackList) .build() ); private final Setting blockInteractHand = sgBlocks.add(new EnumSetting.Builder() .name("block-interact-hand") - .description("Cancels block interaction if performed by this hand.") .defaultValue(HandMode.None) .build() ); @@ -70,62 +65,54 @@ public class NoInteract extends Module { private final Setting>> entityHit = sgEntities.add(new EntityTypeListSetting.Builder() .name("entity-hit") - .description("Cancel entity hitting.") .onlyAttackable() .build() ); private final Setting entityHitMode = sgEntities.add(new EnumSetting.Builder() .name("entity-hit-mode") - .description("List mode to use for entity hit.") .defaultValue(ListMode.BlackList) .build() ); private final Setting>> entityInteract = sgEntities.add(new EntityTypeListSetting.Builder() .name("entity-interact") - .description("Cancel entity interaction.") .onlyAttackable() .build() ); private final Setting entityInteractMode = sgEntities.add(new EnumSetting.Builder() .name("entity-interact-mode") - .description("List mode to use for entity interact.") .defaultValue(ListMode.BlackList) .build() ); private final Setting entityInteractHand = sgEntities.add(new EnumSetting.Builder() .name("entity-interact-hand") - .description("Cancels entity interaction if performed by this hand.") .defaultValue(HandMode.None) .build() ); private final Setting friends = sgEntities.add(new EnumSetting.Builder() .name("friends") - .description("Friends cancel mode.") .defaultValue(InteractMode.None) .build() ); private final Setting babies = sgEntities.add(new EnumSetting.Builder() .name("babies") - .description("Baby entity cancel mode.") .defaultValue(InteractMode.None) .build() ); private final Setting nametagged = sgEntities.add(new EnumSetting.Builder() .name("nametagged") - .description("Nametagged entity cancel mode.") .defaultValue(InteractMode.None) .build() ); public NoInteract() { - super(Categories.Player, "no-interact", "Blocks interactions with certain types of inputs."); + super(Categories.Player, "no-interact"); } @EventHandler(priority = EventPriority.HIGH) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoMiningTrace.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoMiningTrace.java index 2d8858b463..a89c4c30b6 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoMiningTrace.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoMiningTrace.java @@ -22,20 +22,18 @@ public class NoMiningTrace extends Module { private final Setting>> entities = sgGeneral.add(new EntityTypeListSetting.Builder() .name("blacklisted-entities") - .description("Entities you will interact with as normal.") .defaultValue() .build() ); private final Setting onlyWhenHoldingPickaxe = sgGeneral.add(new BoolSetting.Builder() .name("only-when-holding-a-pickaxe") - .description("Whether or not to work only when holding a pickaxe.") .defaultValue(true) .build() ); public NoMiningTrace() { - super(Categories.Player, "no-mining-trace", "Allows you to mine blocks through entities."); + super(Categories.Player, "no-mining-trace"); } public boolean canWork(Entity entity) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoRotate.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoRotate.java index bf4bdf24a4..48abe8d3a6 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoRotate.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoRotate.java @@ -14,7 +14,7 @@ public class NoRotate extends Module { public NoRotate() { - super(Categories.Player, "no-rotate", "Attempts to block rotations sent from server to client."); + super(Categories.Player, "no-rotate"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoStatusEffects.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoStatusEffects.java index 85e8c3cc0c..be4521722b 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoStatusEffects.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/NoStatusEffects.java @@ -19,7 +19,6 @@ public class NoStatusEffects extends Module { private final Setting> blockedEffects = sgGeneral.add(new StatusEffectListSetting.Builder() .name("blocked-effects") - .description("Effects to block.") .defaultValue( LEVITATION.value(), JUMP_BOOST.value(), @@ -30,7 +29,7 @@ public class NoStatusEffects extends Module { ); public NoStatusEffects() { - super(Categories.Player, "no-status-effects", "Blocks specified status effects."); + super(Categories.Player, "no-status-effects"); } public boolean shouldBlock(StatusEffect effect) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/OffhandCrash.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/OffhandCrash.java index 32900028a3..48db1105bb 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/OffhandCrash.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/OffhandCrash.java @@ -26,14 +26,12 @@ public class OffhandCrash extends Module { private final Setting doCrash = sgGeneral.add(new BoolSetting.Builder() .name("do-crash") - .description("Sends X number of offhand swap sound packets to the server per tick.") .defaultValue(true) .build() ); private final Setting speed = sgGeneral.add(new IntSetting.Builder() .name("speed") - .description("The amount of swaps per tick.") .defaultValue(2000) .min(1) .sliderRange(1, 10000) @@ -43,13 +41,12 @@ public class OffhandCrash extends Module { private final Setting antiCrash = sgGeneral.add(new BoolSetting.Builder() .name("anti-crash") - .description("Attempts to prevent you from crashing yourself.") .defaultValue(true) .build() ); public OffhandCrash() { - super(Categories.Misc, "offhand-crash", "An exploit that can crash other players by swapping back and forth between your main hand and offhand."); + super(Categories.Misc, "offhand-crash"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/Portals.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/Portals.java index bfbcb8e990..02d419ea96 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/Portals.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/Portals.java @@ -10,6 +10,6 @@ public class Portals extends Module { public Portals() { - super(Categories.Player, "portals", "Allows you to use GUIs normally while in a Nether Portal."); + super(Categories.Player, "portals"); } } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/PotionSaver.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/PotionSaver.java index 44e2079955..22f8f054fc 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/PotionSaver.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/PotionSaver.java @@ -23,7 +23,6 @@ public class PotionSaver extends Module { private final Setting> effects = sgGeneral.add(new StatusEffectListSetting.Builder() .name("effects") - .description("The effects to preserve.") .defaultValue( STRENGTH.value(), ABSORPTION.value(), @@ -45,13 +44,12 @@ public class PotionSaver extends Module { public final Setting onlyWhenStationary = sgGeneral.add(new BoolSetting.Builder() .name("only-when-stationary") - .description("Only freezes effects when you aren't moving.") .defaultValue(false) .build() ); public PotionSaver() { - super(Categories.Player, "potion-saver", "Stops potion effects ticking when you stand still."); + super(Categories.Player, "potion-saver"); } public boolean shouldFreeze(StatusEffect effect) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/Reach.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/Reach.java index b0bc8fe98c..7a7882c0ea 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/Reach.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/Reach.java @@ -19,20 +19,18 @@ public class Reach extends Module { private final Setting blockReach = sgGeneral.add(new DoubleSetting.Builder() .name("extra-block-reach") - .description("The distance to add to your block reach.") .sliderMax(1) .build() ); private final Setting entityReach = sgGeneral.add(new DoubleSetting.Builder() .name("extra-entity-reach") - .description("The distance to add to your entity reach.") .sliderMax(1) .build() ); public Reach() { - super(Categories.Player, "reach", "Gives you super long arms."); + super(Categories.Player, "reach"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/Rotation.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/Rotation.java index 3f5d5fb8bd..57503febb1 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/Rotation.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/Rotation.java @@ -15,21 +15,19 @@ import meteordevelopment.orbit.EventHandler; public class Rotation extends Module { - private final SettingGroup sgYaw = settings.createGroup("Yaw"); - private final SettingGroup sgPitch = settings.createGroup("Pitch"); + private final SettingGroup sgYaw = settings.createGroup("yaw"); + private final SettingGroup sgPitch = settings.createGroup("pitch"); // Yaw private final Setting yawLockMode = sgYaw.add(new EnumSetting.Builder() .name("yaw-lock-mode") - .description("The way in which your yaw is locked.") .defaultValue(LockMode.Simple) .build() ); private final Setting yawAngle = sgYaw.add(new DoubleSetting.Builder() .name("yaw-angle") - .description("Yaw angle in degrees.") .defaultValue(0) .sliderMax(360) .max(360) @@ -41,14 +39,12 @@ public class Rotation extends Module { private final Setting pitchLockMode = sgPitch.add(new EnumSetting.Builder() .name("pitch-lock-mode") - .description("The way in which your pitch is locked.") .defaultValue(LockMode.Simple) .build() ); private final Setting pitchAngle = sgPitch.add(new DoubleSetting.Builder() .name("pitch-angle") - .description("Pitch angle in degrees.") .defaultValue(0) .range(-90, 90) .sliderRange(-90, 90) @@ -57,7 +53,7 @@ public class Rotation extends Module { ); public Rotation() { - super(Categories.Player, "rotation", "Changes/locks your yaw and pitch."); + super(Categories.Player, "rotation"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/SpeedMine.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/SpeedMine.java index 1f5f738693..d9b6d7408d 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/player/SpeedMine.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/player/SpeedMine.java @@ -34,7 +34,6 @@ public class SpeedMine extends Module { private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() .name("blocks") - .description("Selected blocks.") .filter(block -> block.getHardness() > 0) .visible(() -> mode.get() != Mode.Haste) .build() @@ -42,7 +41,6 @@ public class SpeedMine extends Module { private final Setting blocksFilter = sgGeneral.add(new EnumSetting.Builder() .name("blocks-filter") - .description("How to use the blocks setting.") .defaultValue(ListMode.Blacklist) .visible(() -> mode.get() != Mode.Haste) .build() @@ -50,7 +48,6 @@ public class SpeedMine extends Module { public final Setting modifier = sgGeneral.add(new DoubleSetting.Builder() .name("modifier") - .description("Mining speed modifier. An additional value of 0.2 is equivalent to one haste level (1.2 = haste 1).") .defaultValue(1.4) .visible(() -> mode.get() == Mode.Normal) .min(0) @@ -59,7 +56,6 @@ public class SpeedMine extends Module { private final Setting hasteAmplifier = sgGeneral.add(new IntSetting.Builder() .name("haste-amplifier") - .description("What value of haste to give you. Above 2 not recommended.") .defaultValue(2) .min(1) .visible(() -> mode.get() == Mode.Haste) @@ -69,7 +65,6 @@ public class SpeedMine extends Module { private final Setting instamine = sgGeneral.add(new BoolSetting.Builder() .name("instamine") - .description("Whether or not to instantly mine blocks under certain conditions.") .defaultValue(true) .visible(() -> mode.get() == Mode.Damage) .build() @@ -77,14 +72,13 @@ public class SpeedMine extends Module { private final Setting grimBypass = sgGeneral.add(new BoolSetting.Builder() .name("grim-bypass") - .description("Bypasses Grim's fastbreak check, working as of 2.3.58") .defaultValue(false) .visible(() -> mode.get() == Mode.Damage) .build() ); public SpeedMine() { - super(Categories.Player, "speed-mine", "Allows you to quickly mine blocks."); + super(Categories.Player, "speed-mine"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/BetterTab.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/BetterTab.java index ac4ed36104..e83253e26c 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/BetterTab.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/BetterTab.java @@ -26,7 +26,6 @@ public class BetterTab extends Module { public final Setting tabSize = sgGeneral.add(new IntSetting.Builder() .name("tablist-size") - .description("How many players in total to display in the tablist.") .defaultValue(100) .min(1) .sliderRange(1, 1000) @@ -35,7 +34,6 @@ public class BetterTab extends Module { public final Setting tabHeight = sgGeneral.add(new IntSetting.Builder() .name("column-height") - .description("How many players to display in each column.") .defaultValue(20) .min(1) .sliderRange(1, 1000) @@ -44,14 +42,12 @@ public class BetterTab extends Module { private final Setting self = sgGeneral.add(new BoolSetting.Builder() .name("highlight-self") - .description("Highlights yourself in the tablist.") .defaultValue(true) .build() ); private final Setting selfColor = sgGeneral.add(new ColorSetting.Builder() .name("self-color") - .description("The color to highlight your name with.") .defaultValue(new SettingColor(250, 130, 30)) .visible(self::get) .build() @@ -59,28 +55,25 @@ public class BetterTab extends Module { private final Setting friends = sgGeneral.add(new BoolSetting.Builder() .name("highlight-friends") - .description("Highlights friends in the tablist.") .defaultValue(true) .build() ); public final Setting accurateLatency = sgGeneral.add(new BoolSetting.Builder() .name("accurate-latency") - .description("Shows latency as a number in the tablist.") .defaultValue(true) .build() ); private final Setting gamemode = sgGeneral.add(new BoolSetting.Builder() .name("gamemode") - .description("Display gamemode next to the nick.") .defaultValue(false) .build() ); public BetterTab() { - super(Categories.Render, "better-tab", "Various improvements to the tab list."); + super(Categories.Render, "better-tab"); } public Text getPlayerName(PlayerListEntry playerListEntry) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/BetterTooltips.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/BetterTooltips.java index 11b39e6c16..f716f1b042 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/BetterTooltips.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/BetterTooltips.java @@ -58,15 +58,14 @@ public class BetterTooltips extends Module { public static final Color ECHEST_COLOR = new Color(0, 50, 50); private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgPreviews = settings.createGroup("Previews"); - private final SettingGroup sgOther = settings.createGroup("Other"); - private final SettingGroup sgHideFlags = settings.createGroup("Hide Flags"); + private final SettingGroup sgPreviews = settings.createGroup("previews"); + private final SettingGroup sgOther = settings.createGroup("other"); + private final SettingGroup sgHideFlags = settings.createGroup("hide-flags"); // General private final Setting displayWhen = sgGeneral.add(new EnumSetting.Builder() .name("display-when") - .description("When to display previews.") .defaultValue(DisplayWhen.Keybind) .onChanged(value -> updateTooltips = true) .build() @@ -74,7 +73,6 @@ public class BetterTooltips extends Module { private final Setting keybind = sgGeneral.add(new KeybindSetting.Builder() .name("keybind") - .description("The bind for keybind mode.") .defaultValue(Keybind.fromKey(GLFW_KEY_LEFT_ALT)) .visible(() -> displayWhen.get() == DisplayWhen.Keybind) .onChanged(value -> updateTooltips = true) @@ -83,14 +81,12 @@ public class BetterTooltips extends Module { private final Setting openContents = sgGeneral.add(new BoolSetting.Builder() .name("open-contents") - .description("Opens a GUI window with the inventory of the storage block or book when you click the item.") .defaultValue(true) .build() ); private final Setting openContentsKey = sgGeneral.add(new KeybindSetting.Builder() - .name("keybind") - .description("Key to open contents (containers, books, etc.) when pressed on items.") + .name("open-contents-keybind") .defaultValue(Keybind.fromButton(GLFW_MOUSE_BUTTON_MIDDLE)) .visible(openContents::get) .build() @@ -98,7 +94,6 @@ public class BetterTooltips extends Module { private final Setting pauseInCreative = sgGeneral.add(new BoolSetting.Builder() .name("pause-in-creative") - .description("Pauses middle click open while the player is in creative mode.") .defaultValue(true) .visible(openContents::get) .build() @@ -108,7 +103,6 @@ public class BetterTooltips extends Module { private final Setting shulkers = sgPreviews.add(new BoolSetting.Builder() .name("containers") - .description("Shows a preview of a containers when hovering over it in an inventory.") .defaultValue(true) .onChanged(value -> updateTooltips = true) .build() @@ -116,14 +110,12 @@ public class BetterTooltips extends Module { private final Setting shulkerCompactTooltip = sgPreviews.add(new BoolSetting.Builder() .name("compact-shulker-tooltip") - .description("Compacts the lines of the shulker tooltip.") .defaultValue(true) .build() ); private final Setting echest = sgPreviews.add(new BoolSetting.Builder() .name("echests") - .description("Shows a preview of your echest when hovering over it in an inventory.") .defaultValue(true) .onChanged(value -> updateTooltips = true) .build() @@ -131,7 +123,6 @@ public class BetterTooltips extends Module { private final Setting maps = sgPreviews.add(new BoolSetting.Builder() .name("maps") - .description("Shows a preview of a map when hovering over it in an inventory.") .defaultValue(true) .onChanged(value -> updateTooltips = true) .build() @@ -139,7 +130,6 @@ public class BetterTooltips extends Module { public final Setting mapsScale = sgPreviews.add(new DoubleSetting.Builder() .name("map-scale") - .description("The scale of the map preview.") .defaultValue(1) .min(0.001) .sliderMax(1) @@ -149,7 +139,6 @@ public class BetterTooltips extends Module { private final Setting books = sgPreviews.add(new BoolSetting.Builder() .name("books") - .description("Shows contents of a book when hovering over it in an inventory.") .defaultValue(true) .onChanged(value -> updateTooltips = true) .build() @@ -157,7 +146,6 @@ public class BetterTooltips extends Module { private final Setting banners = sgPreviews.add(new BoolSetting.Builder() .name("banners") - .description("Shows banners' patterns when hovering over it in an inventory. Also works with shields.") .defaultValue(true) .onChanged(value -> updateTooltips = true) .build() @@ -165,7 +153,6 @@ public class BetterTooltips extends Module { private final Setting entitiesInBuckets = sgPreviews.add(new BoolSetting.Builder() .name("entities-in-buckets") - .description("Shows entities in buckets when hovering over it in an inventory.") .defaultValue(true) .onChanged(value -> updateTooltips = true) .build() @@ -173,7 +160,6 @@ public class BetterTooltips extends Module { private final Setting bundles = sgPreviews.add(new BoolSetting.Builder() .name("bundles") - .description("Shows a preview of bundle contents when hovering over it in an inventory.") .defaultValue(true) .onChanged(value -> updateTooltips = true) .build() @@ -181,7 +167,6 @@ public class BetterTooltips extends Module { private final Setting foodInfo = sgPreviews.add(new BoolSetting.Builder() .name("food-info") - .description("Shows hunger and saturation values for food items.") .defaultValue(true) .onChanged(value -> updateTooltips = true) .build() @@ -191,7 +176,6 @@ public class BetterTooltips extends Module { public final Setting byteSize = sgOther.add(new BoolSetting.Builder() .name("byte-size") - .description("Displays an item's size in bytes in the tooltip.") .defaultValue(true) .onChanged(value -> updateTooltips = true) .build() @@ -199,7 +183,6 @@ public class BetterTooltips extends Module { private final Setting sizeType = sgOther.add(new EnumSetting.Builder() .name("byte-size-format") - .description("The format by which to display the item's byte size.") .defaultValue(SortSize.Dynamic) .visible(byteSize::get) .build() @@ -207,7 +190,6 @@ public class BetterTooltips extends Module { private final Setting statusEffects = sgOther.add(new BoolSetting.Builder() .name("status-effects") - .description("Adds list of status effects to tooltips of food items.") .defaultValue(true) .onChanged(value -> updateTooltips = true) .build() @@ -217,14 +199,12 @@ public class BetterTooltips extends Module { public final Setting tooltip = sgHideFlags.add(new BoolSetting.Builder() .name("tooltip") - .description("Show the tooltip when it's hidden.") .defaultValue(false) .build() ); public final Setting additional = sgHideFlags.add(new BoolSetting.Builder() .name("tooltip-components") - .description("Shows tooltip components when they're hidden - e.g. enchantments, attributes, lore, etc.") .defaultValue(false) .build() ); @@ -234,7 +214,7 @@ public class BetterTooltips extends Module { private static final ItemStack[] PEEK_SCREEN = new ItemStack[27]; public BetterTooltips() { - super(Categories.Render, "better-tooltips", "Displays more useful tooltips for certain items."); + super(Categories.Render, "better-tooltips"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/BlockSelection.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/BlockSelection.java index a45948b7bc..a3ea51577c 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/BlockSelection.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/BlockSelection.java @@ -24,48 +24,42 @@ public class BlockSelection extends Module { private final Setting advanced = sgGeneral.add(new BoolSetting.Builder() .name("advanced") - .description("Shows a more advanced outline on different types of shape blocks.") .defaultValue(true) .build() ); private final Setting oneSide = sgGeneral.add(new BoolSetting.Builder() .name("single-side") - .description("Only renders the side you are looking at.") .defaultValue(false) .build() ); private final Setting shapeMode = sgGeneral.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .build() ); private final Setting sideColor = sgGeneral.add(new ColorSetting.Builder() .name("side-color") - .description("The side color.") .defaultValue(new SettingColor(255, 255, 255, 50)) .build() ); private final Setting lineColor = sgGeneral.add(new ColorSetting.Builder() .name("line-color") - .description("The line color.") .defaultValue(new SettingColor(255, 255, 255, 255)) .build() ); private final Setting hideInside = sgGeneral.add(new BoolSetting.Builder() .name("hide-when-inside-block") - .description("Hide selection when inside target block.") .defaultValue(true) .build() ); public BlockSelection() { - super(Categories.Render, "block-selection", "Modifies how your block selection is rendered."); + super(Categories.Render, "block-selection"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Blur.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Blur.java index 0d59260b42..eacf2251dd 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Blur.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Blur.java @@ -37,7 +37,7 @@ public class Blur extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgScreens = settings.createGroup("Screens"); + private final SettingGroup sgScreens = settings.createGroup("screens"); // Strength-Levels from https://github.com/jonaburg/picom/blob/a8445684fe18946604848efb73ace9457b29bf80/src/backend/backend_common.c#L372 private final IntFloatImmutablePair[] strengths = new IntFloatImmutablePair[]{ @@ -66,7 +66,6 @@ public class Blur extends Module { // General private final Setting strength = sgGeneral.add(new IntSetting.Builder() .name("strength") - .description("How strong the blur should be.") .defaultValue(5) .min(1) .max(20) @@ -76,7 +75,6 @@ public class Blur extends Module { private final Setting fadeTime = sgGeneral.add(new IntSetting.Builder() .name("fade-time") - .description("How long the fade will last in milliseconds.") .defaultValue(100) .min(0) .sliderMax(500) @@ -87,27 +85,23 @@ public class Blur extends Module { private final Setting meteor = sgScreens.add(new BoolSetting.Builder() .name("meteor") - .description("Applies blur to Meteor screens.") .defaultValue(true) .build()); private final Setting inventories = sgScreens.add(new BoolSetting.Builder() .name("inventories") - .description("Applies blur to inventory screens.") .defaultValue(true) .build() ); private final Setting chat = sgScreens.add(new BoolSetting.Builder() .name("chat") - .description("Applies blur when in chat.") .defaultValue(false) .build() ); private final Setting other = sgScreens.add(new BoolSetting.Builder() .name("other") - .description("Applies blur to all other screen types.") .defaultValue(true) .build() ); @@ -120,7 +114,7 @@ public class Blur extends Module { private float previousOffset = -1; public Blur() { - super(Categories.Render, "blur", "Blurs background when in GUI screens."); + super(Categories.Render, "blur"); // Initialize fbos for the first time for (int i = 0; i < fbos.length; i++) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/BossStack.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/BossStack.java index 31b16db480..bab2265ea9 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/BossStack.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/BossStack.java @@ -25,21 +25,18 @@ public class BossStack extends Module { public final Setting stack = sgGeneral.add(new BoolSetting.Builder() .name("stack") - .description("Stacks boss bars and adds a counter to the text.") .defaultValue(true) .build() ); public final Setting hideName = sgGeneral.add(new BoolSetting.Builder() .name("hide-name") - .description("Hides the names of boss bars.") .defaultValue(false) .build() ); private final Setting spacing = sgGeneral.add(new DoubleSetting.Builder() .name("bar-spacing") - .description("The spacing reduction between each boss bar.") .defaultValue(10) .min(0) .build() @@ -48,7 +45,7 @@ public class BossStack extends Module { public static final Map barMap = new WeakHashMap<>(); public BossStack() { - super(Categories.Render, "boss-stack", "Stacks boss bars to make your HUD less cluttered."); + super(Categories.Render, "boss-stack"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Breadcrumbs.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Breadcrumbs.java index 548423bb9a..cf33e33b72 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Breadcrumbs.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Breadcrumbs.java @@ -23,14 +23,12 @@ public class Breadcrumbs extends Module { private final Setting color = sgGeneral.add(new ColorSetting.Builder() .name("color") - .description("The color of the Breadcrumbs trail.") .defaultValue(new SettingColor(225, 25, 25)) .build() ); private final Setting maxSections = sgGeneral.add(new IntSetting.Builder() .name("max-sections") - .description("The maximum number of sections.") .defaultValue(1000) .min(1) .sliderRange(1, 5000) @@ -39,7 +37,6 @@ public class Breadcrumbs extends Module { private final Setting sectionLength = sgGeneral.add(new DoubleSetting.Builder() .name("section-length") - .description("The section length in blocks.") .defaultValue(0.5) .min(0) .sliderMax(1) @@ -54,7 +51,7 @@ public class Breadcrumbs extends Module { private DimensionType lastDimension; public Breadcrumbs() { - super(Categories.Render, "breadcrumbs", "Displays a trail behind where you have walked."); + super(Categories.Render, "breadcrumbs"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/BreakIndicators.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/BreakIndicators.java index cfc126e643..98b9e32642 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/BreakIndicators.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/BreakIndicators.java @@ -32,28 +32,24 @@ public class BreakIndicators extends Module { private final Setting shapeMode = sgGeneral.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .build() ); public final Setting packetMine = sgGeneral.add(new BoolSetting.Builder() .name("packet-mine") - .description("Whether or not to render blocks being packet mined.") .defaultValue(true) .build() ); private final Setting startColor = sgGeneral.add(new ColorSetting.Builder() .name("start-color") - .description("The color for the non-broken block.") .defaultValue(new SettingColor(25, 252, 25, 150)) .build() ); private final Setting endColor = sgGeneral.add(new ColorSetting.Builder() .name("end-color") - .description("The color for the fully-broken block.") .defaultValue(new SettingColor(255, 25, 25, 150)) .build() ); @@ -62,7 +58,7 @@ public class BreakIndicators extends Module { private final Color cLines = new Color(); public BreakIndicators() { - super(Categories.Render, "break-indicators", "Renders the progress of a block being broken."); + super(Categories.Render, "break-indicators"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/CameraTweaks.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/CameraTweaks.java index 6dcbccda95..dbd9b8857f 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/CameraTweaks.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/CameraTweaks.java @@ -17,20 +17,18 @@ public class CameraTweaks extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgScrolling = settings.createGroup("Scrolling"); + private final SettingGroup sgScrolling = settings.createGroup("scrolling"); // General private final Setting clip = sgGeneral.add(new BoolSetting.Builder() .name("clip") - .description("Allows the camera to clip through blocks.") .defaultValue(true) .build() ); private final Setting cameraDistance = sgGeneral.add(new DoubleSetting.Builder() .name("camera-distance") - .description("The distance the third person camera is from the player.") .defaultValue(4) .min(0) .onChanged(value -> distance = value) @@ -41,14 +39,12 @@ public class CameraTweaks extends Module { private final Setting scrollingEnabled = sgScrolling.add(new BoolSetting.Builder() .name("scrolling") - .description("Allows you to scroll to change camera distance.") .defaultValue(true) .build() ); private final Setting scrollKeybind = sgScrolling.add(new KeybindSetting.Builder() .name("bind") - .description("Binds camera distance scrolling to a key.") .visible(scrollingEnabled::get) .defaultValue(Keybind.fromKey(GLFW.GLFW_KEY_LEFT_ALT)) .build() @@ -56,7 +52,6 @@ public class CameraTweaks extends Module { private final Setting scrollSensitivity = sgScrolling.add(new DoubleSetting.Builder() .name("sensitivity") - .description("Sensitivity of the scroll wheel when changing the cameras distance.") .visible(scrollingEnabled::get) .defaultValue(1) .min(0.01) @@ -66,7 +61,7 @@ public class CameraTweaks extends Module { public double distance; public CameraTweaks() { - super(Categories.Render, "camera-tweaks", "Allows modification of the third person camera."); + super(Categories.Render, "camera-tweaks"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Chams.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Chams.java index b1cf4e20de..57f8f8827b 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Chams.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Chams.java @@ -17,30 +17,27 @@ import java.util.Set; public class Chams extends Module { - private final SettingGroup sgThroughWalls = settings.createGroup("Through Walls"); - private final SettingGroup sgPlayers = settings.createGroup("Players"); - private final SettingGroup sgCrystals = settings.createGroup("Crystals"); - private final SettingGroup sgHand = settings.createGroup("Hand"); + private final SettingGroup sgThroughWalls = settings.createGroup("through-walls"); + private final SettingGroup sgPlayers = settings.createGroup("players"); + private final SettingGroup sgCrystals = settings.createGroup("crystals"); + private final SettingGroup sgHand = settings.createGroup("hand"); // Through walls public final Setting>> entities = sgThroughWalls.add(new EntityTypeListSetting.Builder() .name("entities") - .description("Select entities to show through walls.") .onlyAttackable() .build() ); public final Setting shader = sgThroughWalls.add(new EnumSetting.Builder() .name("shader") - .description("Renders a shader over of the entities.") .defaultValue(Shader.Image) .build() ); public final Setting shaderColor = sgThroughWalls.add(new ColorSetting.Builder() .name("color") - .description("The color that the shader is drawn with.") .defaultValue(new SettingColor(255, 255, 255, 150)) .visible(() -> shader.get() != Shader.None) .build() @@ -48,7 +45,6 @@ public class Chams extends Module { public final Setting ignoreSelfDepth = sgThroughWalls.add(new BoolSetting.Builder() .name("ignore-self") - .description("Ignores yourself drawing the player.") .defaultValue(true) .build() ); @@ -57,14 +53,12 @@ public class Chams extends Module { public final Setting players = sgPlayers.add(new BoolSetting.Builder() .name("players") - .description("Enables model tweaks for players.") .defaultValue(false) .build() ); public final Setting ignoreSelf = sgPlayers.add(new BoolSetting.Builder() .name("ignore-self") - .description("Ignores yourself when tweaking player models.") .defaultValue(false) .visible(players::get) .build() @@ -72,7 +66,6 @@ public class Chams extends Module { public final Setting playersTexture = sgPlayers.add(new BoolSetting.Builder() .name("texture") - .description("Enables player model textures.") .defaultValue(false) .visible(players::get) .build() @@ -80,7 +73,6 @@ public class Chams extends Module { public final Setting playersColor = sgPlayers.add(new ColorSetting.Builder() .name("color") - .description("The color of player models.") .defaultValue(new SettingColor(198, 135, 254, 150)) .visible(players::get) .build() @@ -88,7 +80,6 @@ public class Chams extends Module { public final Setting playersScale = sgPlayers.add(new DoubleSetting.Builder() .name("scale") - .description("Players scale.") .defaultValue(1.0) .min(0.0) .visible(players::get) @@ -99,14 +90,12 @@ public class Chams extends Module { public final Setting crystals = sgCrystals.add(new BoolSetting.Builder() .name("crystals") - .description("Enables model tweaks for end crystals.") .defaultValue(false) .build() ); public final Setting crystalsScale = sgCrystals.add(new DoubleSetting.Builder() .name("scale") - .description("Crystal scale.") .defaultValue(0.6) .min(0) .visible(crystals::get) @@ -115,7 +104,6 @@ public class Chams extends Module { public final Setting crystalsBounce = sgCrystals.add(new DoubleSetting.Builder() .name("bounce") - .description("How high crystals bounce.") .defaultValue(0.6) .min(0.0) .visible(crystals::get) @@ -124,7 +112,6 @@ public class Chams extends Module { public final Setting crystalsRotationSpeed = sgCrystals.add(new DoubleSetting.Builder() .name("rotation-speed") - .description("Multiplies the rotation speed of the crystal.") .defaultValue(0.3) .min(0) .visible(crystals::get) @@ -133,7 +120,6 @@ public class Chams extends Module { public final Setting crystalsTexture = sgCrystals.add(new BoolSetting.Builder() .name("texture") - .description("Whether to render crystal model textures.") .defaultValue(true) .visible(crystals::get) .build() @@ -141,7 +127,6 @@ public class Chams extends Module { public final Setting crystalsColor = sgCrystals.add(new ColorSetting.Builder() .name("crystal-color") - .description("The color of the of the crystal.") .defaultValue(new SettingColor(198, 135, 254, 255)) .visible(crystals::get) .build() @@ -151,14 +136,12 @@ public class Chams extends Module { public final Setting hand = sgHand.add(new BoolSetting.Builder() .name("enabled") - .description("Enables tweaks of hand rendering.") .defaultValue(false) .build() ); public final Setting handTexture = sgHand.add(new BoolSetting.Builder() .name("texture") - .description("Whether to render hand textures.") .defaultValue(false) .visible(hand::get) .build() @@ -166,7 +149,6 @@ public class Chams extends Module { public final Setting handColor = sgHand.add(new ColorSetting.Builder() .name("hand-color") - .description("The color of your hand.") .defaultValue(new SettingColor(198, 135, 254, 150)) .visible(hand::get) .build() @@ -175,7 +157,7 @@ public class Chams extends Module { public static final Identifier BLANK = MeteorClient.identifier("textures/blank.png"); public Chams() { - super(Categories.Render, "chams", "Tweaks rendering of entities."); + super(Categories.Render, "chams"); } public boolean shouldRender(Entity entity) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/CityESP.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/CityESP.java index 6d9816db96..ff809525eb 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/CityESP.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/CityESP.java @@ -23,27 +23,24 @@ import net.minecraft.util.math.BlockPos; public class CityESP extends Module { - private final SettingGroup sgRender = settings.createGroup("Render"); + private final SettingGroup sgRender = settings.createGroup("render"); // Render private final Setting shapeMode = sgRender.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .build() ); private final Setting sideColor = sgRender.add(new ColorSetting.Builder() .name("side-color") - .description("The side color of the rendering.") .defaultValue(new SettingColor(225, 0, 0, 75)) .build() ); private final Setting lineColor = sgRender.add(new ColorSetting.Builder() .name("line-color") - .description("The line color of the rendering.") .defaultValue(new SettingColor(225, 0, 0, 255)) .build() ); @@ -51,7 +48,7 @@ public class CityESP extends Module { private BlockPos target; public CityESP() { - super(Categories.Render, "city-esp", "Displays blocks that can be broken in order to city another player."); + super(Categories.Render, "city-esp"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ESP.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ESP.java index 796ca5dd4d..28dfa43eb6 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ESP.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ESP.java @@ -33,27 +33,24 @@ public class ESP extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgColors = settings.createGroup("Colors"); + private final SettingGroup sgColors = settings.createGroup("colors"); // General public final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("Rendering mode.") .defaultValue(Mode.Shader) .build() ); public final Setting highlightTarget = sgGeneral.add(new BoolSetting.Builder() .name("highlight-target") - .description("highlights the currently targeted entity differently") .defaultValue(false) .build() ); public final Setting targetHitbox = sgGeneral.add(new BoolSetting.Builder() .name("target-hitbox") - .description("draw the hitbox of the target entity") .defaultValue(true) .visible(highlightTarget::get) .build() @@ -61,7 +58,6 @@ public class ESP extends Module { public final Setting outlineWidth = sgGeneral.add(new IntSetting.Builder() .name("outline-width") - .description("The width of the shader outline.") .visible(() -> mode.get() == Mode.Shader) .defaultValue(2) .range(1, 10) @@ -71,7 +67,6 @@ public class ESP extends Module { public final Setting glowMultiplier = sgGeneral.add(new DoubleSetting.Builder() .name("glow-multiplier") - .description("Multiplier for glow effect") .visible(() -> mode.get() == Mode.Shader) .decimalPlaces(3) .defaultValue(3.5) @@ -82,14 +77,12 @@ public class ESP extends Module { public final Setting ignoreSelf = sgGeneral.add(new BoolSetting.Builder() .name("ignore-self") - .description("Ignores yourself drawing the shader.") .defaultValue(true) .build() ); public final Setting shapeMode = sgGeneral.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .visible(() -> mode.get() != Mode.Glow) .defaultValue(ShapeMode.Both) .build() @@ -97,7 +90,6 @@ public class ESP extends Module { public final Setting fillOpacity = sgGeneral.add(new DoubleSetting.Builder() .name("fill-opacity") - .description("The opacity of the shape fill.") .visible(() -> shapeMode.get() != ShapeMode.Lines && mode.get() != Mode.Glow) .defaultValue(0.3) .range(0, 1) @@ -107,7 +99,6 @@ public class ESP extends Module { private final Setting fadeDistance = sgGeneral.add(new DoubleSetting.Builder() .name("fade-distance") - .description("The distance from an entity where the color begins to fade.") .defaultValue(3) .min(0) .sliderMax(12) @@ -116,7 +107,6 @@ public class ESP extends Module { private final Setting>> entities = sgGeneral.add(new EntityTypeListSetting.Builder() .name("entities") - .description("Select specific entities.") .defaultValue(EntityType.PLAYER) .build() ); @@ -125,14 +115,12 @@ public class ESP extends Module { public final Setting distance = sgColors.add(new BoolSetting.Builder() .name("distance-colors") - .description("Changes the color of tracers depending on distance.") .defaultValue(false) .build() ); public final Setting friendOverride = sgColors.add(new BoolSetting.Builder() .name("show-friend-colors") - .description("Whether or not to override the distance color of friends with the friend color.") .defaultValue(true) .visible(distance::get) .build() @@ -140,7 +128,6 @@ public class ESP extends Module { private final Setting playersColor = sgColors.add(new ColorSetting.Builder() .name("players-color") - .description("The other player's color.") .defaultValue(new SettingColor(255, 255, 255)) .visible(() -> !distance.get()) .build() @@ -148,7 +135,6 @@ public class ESP extends Module { private final Setting animalsColor = sgColors.add(new ColorSetting.Builder() .name("animals-color") - .description("The animal's color.") .defaultValue(new SettingColor(25, 255, 25, 255)) .visible(() -> !distance.get()) .build() @@ -156,7 +142,6 @@ public class ESP extends Module { private final Setting waterAnimalsColor = sgColors.add(new ColorSetting.Builder() .name("water-animals-color") - .description("The water animal's color.") .defaultValue(new SettingColor(25, 25, 255, 255)) .visible(() -> !distance.get()) .build() @@ -164,7 +149,6 @@ public class ESP extends Module { private final Setting monstersColor = sgColors.add(new ColorSetting.Builder() .name("monsters-color") - .description("The monster's color.") .defaultValue(new SettingColor(255, 25, 25, 255)) .visible(() -> !distance.get()) .build() @@ -172,7 +156,6 @@ public class ESP extends Module { private final Setting ambientColor = sgColors.add(new ColorSetting.Builder() .name("ambient-color") - .description("The ambient's color.") .defaultValue(new SettingColor(25, 25, 25, 255)) .visible(() -> !distance.get()) .build() @@ -180,7 +163,6 @@ public class ESP extends Module { private final Setting miscColor = sgColors.add(new ColorSetting.Builder() .name("misc-color") - .description("The misc color.") .defaultValue(new SettingColor(175, 175, 175, 255)) .visible(() -> !distance.get()) .build() @@ -188,7 +170,6 @@ public class ESP extends Module { private final Setting targetColor = sgColors.add(new ColorSetting.Builder() .name("target-color") - .description("The target color.") .defaultValue(new SettingColor(200, 200, 200, 255)) .visible(highlightTarget::get) .build() @@ -196,7 +177,6 @@ public class ESP extends Module { private final Setting targetHitboxColor = sgColors.add(new ColorSetting.Builder() .name("target-hitbox-color") - .description("The target hitbox color.") .defaultValue(new SettingColor(100, 200, 200, 255)) .visible(() -> highlightTarget.get() && targetHitbox.get()) .build() @@ -213,7 +193,7 @@ public class ESP extends Module { private int count; public ESP() { - super(Categories.Render, "esp", "Renders entities through walls."); + super(Categories.Render, "esp"); } // Box diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/EntityOwner.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/EntityOwner.java index 7e7b8dfb3f..768f2266df 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/EntityOwner.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/EntityOwner.java @@ -41,7 +41,6 @@ public class EntityOwner extends Module { private final Setting scale = sgGeneral.add(new DoubleSetting.Builder() .name("scale") - .description("The scale of the text.") .defaultValue(1) .min(0) .build() @@ -51,7 +50,7 @@ public class EntityOwner extends Module { private final Map uuidToName = new HashMap<>(); public EntityOwner() { - super(Categories.Render, "entity-owner", "Displays the name of the player who owns the entity you're looking at."); + super(Categories.Render, "entity-owner"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/FreeLook.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/FreeLook.java index 8e78bba0e8..4df12afd78 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/FreeLook.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/FreeLook.java @@ -17,27 +17,24 @@ public class FreeLook extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgArrows = settings.createGroup("Arrows"); + private final SettingGroup sgArrows = settings.createGroup("arrows"); // General public final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("Which entity to rotate.") .defaultValue(Mode.Player) .build() ); public final Setting togglePerspective = sgGeneral.add(new BoolSetting.Builder() .name("toggle-perspective") - .description("Changes your perspective on toggle.") .defaultValue(true) .build() ); public final Setting sensitivity = sgGeneral.add(new DoubleSetting.Builder() .name("camera-sensitivity") - .description("How fast the camera moves in camera mode.") .defaultValue(8) .min(0) .sliderMax(10) @@ -48,14 +45,12 @@ public class FreeLook extends Module { public final Setting arrows = sgArrows.add(new BoolSetting.Builder() .name("arrows-control-opposite") - .description("Allows you to control the other entities rotation with the arrow keys.") .defaultValue(true) .build() ); private final Setting arrowSpeed = sgArrows.add(new DoubleSetting.Builder() .name("arrow-speed") - .description("Rotation speed with arrow keys.") .defaultValue(4) .min(0) .build() @@ -67,7 +62,7 @@ public class FreeLook extends Module { private Perspective prePers; public FreeLook() { - super(Categories.Render, "free-look", "Allows more rotation options in third person."); + super(Categories.Render, "free-look"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Freecam.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Freecam.java index a07806d4d1..2472c05a4b 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Freecam.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Freecam.java @@ -51,11 +51,10 @@ public class Freecam extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgPathing = settings.createGroup("Pathing"); + private final SettingGroup sgPathing = settings.createGroup("pathing"); private final Setting speed = sgGeneral.add(new DoubleSetting.Builder() .name("speed") - .description("Your speed while in freecam.") .onChanged(aDouble -> speedValue = aDouble) .defaultValue(1.0) .min(0.0) @@ -64,7 +63,6 @@ public class Freecam extends Module { private final Setting speedScrollSensitivity = sgGeneral.add(new DoubleSetting.Builder() .name("speed-scroll-sensitivity") - .description("Allows you to change speed value using scroll wheel. 0 to disable.") .defaultValue(0) .min(0) .sliderMax(2) @@ -73,70 +71,60 @@ public class Freecam extends Module { private final Setting staySneaking = sgGeneral.add(new BoolSetting.Builder() .name("stay-sneaking") - .description("If you are sneaking when you enter freecam, whether your player should remain sneaking.") .defaultValue(true) .build() ); private final Setting toggleOnDamage = sgGeneral.add(new BoolSetting.Builder() .name("toggle-on-damage") - .description("Disables freecam when you take damage.") .defaultValue(false) .build() ); private final Setting toggleOnDeath = sgGeneral.add(new BoolSetting.Builder() .name("toggle-on-death") - .description("Disables freecam when you die.") .defaultValue(false) .build() ); private final Setting toggleOnLog = sgGeneral.add(new BoolSetting.Builder() .name("toggle-on-log") - .description("Disables freecam when you disconnect from a server.") .defaultValue(true) .build() ); private final Setting reloadChunks = sgGeneral.add(new BoolSetting.Builder() .name("reload-chunks") - .description("Disables cave culling.") .defaultValue(true) .build() ); private final Setting renderHands = sgGeneral.add(new BoolSetting.Builder() .name("show-hands") - .description("Whether or not to render your hands in freecam.") .defaultValue(true) .build() ); private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() .name("rotate") - .description("Rotates to the block or entity you are looking at.") .defaultValue(false) .build() ); private final Setting staticView = sgGeneral.add(new BoolSetting.Builder() .name("static") - .description("Disables settings that move the view.") .defaultValue(true) .build() ); private final Setting baritoneClick = sgPathing.add(new BoolSetting.Builder() .name("click-to-path") - .description("Sets a pathfinding goal to any block/entity you click at.") .defaultValue(false) .build() ); private final Setting requireDoubleClick = sgPathing.add(new BoolSetting.Builder() .name("double-click") - .description("Require two clicks to start pathing.") .defaultValue(false) .build() ); @@ -158,7 +146,7 @@ public class Freecam extends Module { private long clickTs = 0; public Freecam() { - super(Categories.Render, "freecam", "Allows the camera to move away from the player."); + super(Categories.Render, "freecam"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Fullbright.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Fullbright.java index 0dbdb00dfd..edee06e057 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Fullbright.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Fullbright.java @@ -24,7 +24,6 @@ public class Fullbright extends Module { public final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("The mode to use for Fullbright.") .defaultValue(Mode.Gamma) .onChanged(mode -> { if (isActive()) { @@ -37,7 +36,6 @@ public class Fullbright extends Module { public final Setting lightType = sgGeneral.add(new EnumSetting.Builder() .name("light-type") - .description("Which type of light to use for Luminance mode.") .defaultValue(LightType.BLOCK) .visible(() -> mode.get() == Mode.Luminance) .onChanged(integer -> { @@ -48,7 +46,6 @@ public class Fullbright extends Module { private final Setting minimumLightLevel = sgGeneral.add(new IntSetting.Builder() .name("minimum-light-level") - .description("Minimum light level when using Luminance mode.") .visible(() -> mode.get() == Mode.Luminance) .defaultValue(8) .range(0, 15) @@ -60,7 +57,7 @@ public class Fullbright extends Module { ); public Fullbright() { - super(Categories.Render, "fullbright", "Lights up your world!"); + super(Categories.Render, "fullbright"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/HandView.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/HandView.java index 214054d993..0d230a04b9 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/HandView.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/HandView.java @@ -19,50 +19,44 @@ public class HandView extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgMainHand = settings.createGroup("Main Hand"); - private final SettingGroup sgOffHand = settings.createGroup("Off Hand"); - private final SettingGroup sgArm = settings.createGroup("Arm"); + private final SettingGroup sgMainHand = settings.createGroup("main-hand"); + private final SettingGroup sgOffHand = settings.createGroup("off-hand"); + private final SettingGroup sgArm = settings.createGroup("arm"); // General private final Setting followRotations = sgGeneral.add(new BoolSetting.Builder() .name("server-rotations") - .description("Makes your hands follow your serverside rotations.") .defaultValue(false) .build() ); public final Setting oldAnimations = sgGeneral.add(new BoolSetting.Builder() .name("old-animations") - .description("Changes hit animations to those like 1.8") .defaultValue(false) .build() ); public final Setting skipSwapping = sgGeneral.add(new BoolSetting.Builder() .name("skip-swapping-animation") - .description("Whether or not to skip the item swapping animation") .defaultValue(false) .build() ); private final Setting disableFoodAnimation = sgGeneral.add(new BoolSetting.Builder() .name("disable-eating-animation") - .description("Disables the eating animation. Potentially desirable if it goes offscreen.") .defaultValue(false) .build() ); public final Setting swingMode = sgGeneral.add(new EnumSetting.Builder() .name("swing-mode") - .description("Modifies your client & server hand swinging.") .defaultValue(SwingMode.None) .build() ); public final Setting swingSpeed = sgGeneral.add(new IntSetting.Builder() .name("swing-speed") - .description("The swing speed of your hands.") .defaultValue(6) .range(0, 20) .sliderMax(20) @@ -71,7 +65,6 @@ public class HandView extends Module { public final Setting mainSwing = sgGeneral.add(new DoubleSetting.Builder() .name("main-hand-progress") - .description("The swing progress of your main hand.") .defaultValue(0) .range(0, 1) .sliderMax(1) @@ -80,7 +73,6 @@ public class HandView extends Module { public final Setting offSwing = sgGeneral.add(new DoubleSetting.Builder() .name("off-hand-progress") - .description("The swing progress of your off hand.") .defaultValue(0) .range(0, 1) .sliderMax(1) @@ -91,7 +83,6 @@ public class HandView extends Module { private final Setting scaleMain = sgMainHand.add(new Vector3dSetting.Builder() .name("scale") - .description("The scale of your main hand.") .defaultValue(1, 1, 1) .sliderMax(5) .decimalPlaces(1) @@ -100,7 +91,6 @@ public class HandView extends Module { private final Setting posMain = sgMainHand.add(new Vector3dSetting.Builder() .name("position") - .description("The position of your main hand.") .defaultValue(0, 0, 0) .sliderRange(-3, 3) .decimalPlaces(1) @@ -109,7 +99,6 @@ public class HandView extends Module { private final Setting rotMain = sgMainHand.add(new Vector3dSetting.Builder() .name("rotation") - .description("The rotation of your main hand.") .defaultValue(0, 0, 0) .sliderRange(-180, 180) .decimalPlaces(0) @@ -120,7 +109,6 @@ public class HandView extends Module { private final Setting scaleOff = sgOffHand.add(new Vector3dSetting.Builder() .name("scale") - .description("The scale of your off hand.") .defaultValue(1, 1, 1) .sliderMax(5) .decimalPlaces(1) @@ -129,7 +117,6 @@ public class HandView extends Module { private final Setting posOff = sgOffHand.add(new Vector3dSetting.Builder() .name("position") - .description("The position of your off hand.") .defaultValue(0, 0, 0) .sliderRange(-3, 3) .decimalPlaces(1) @@ -138,7 +125,6 @@ public class HandView extends Module { private final Setting rotOff = sgOffHand.add(new Vector3dSetting.Builder() .name("rotation") - .description("The rotation of your off hand.") .defaultValue(0, 0, 0) .sliderRange(-180, 180) .decimalPlaces(0) @@ -172,7 +158,7 @@ public class HandView extends Module { ); public HandView() { - super(Categories.Render, "hand-view", "Alters the way items are rendered in your hands."); + super(Categories.Render, "hand-view"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/HoleESP.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/HoleESP.java index a2893ded8c..db12ec4155 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/HoleESP.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/HoleESP.java @@ -32,13 +32,12 @@ public class HoleESP extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgRender = settings.createGroup("Render"); + private final SettingGroup sgRender = settings.createGroup("render"); // General private final Setting horizontalRadius = sgGeneral.add(new IntSetting.Builder() .name("horizontal-radius") - .description("Horizontal radius in which to search for holes.") .defaultValue(10) .min(0) .sliderMax(32) @@ -47,7 +46,6 @@ public class HoleESP extends Module { private final Setting verticalRadius = sgGeneral.add(new IntSetting.Builder() .name("vertical-radius") - .description("Vertical radius in which to search for holes.") .defaultValue(5) .min(0) .sliderMax(32) @@ -56,7 +54,6 @@ public class HoleESP extends Module { private final Setting holeHeight = sgGeneral.add(new IntSetting.Builder() .name("min-height") - .description("Minimum hole height required to be rendered.") .defaultValue(3) .min(1) .sliderMin(1) @@ -65,21 +62,18 @@ public class HoleESP extends Module { private final Setting doubles = sgGeneral.add(new BoolSetting.Builder() .name("doubles") - .description("Highlights double holes that can be stood across.") .defaultValue(true) .build() ); private final Setting ignoreOwn = sgGeneral.add(new BoolSetting.Builder() .name("ignore-own") - .description("Ignores rendering the hole you are currently standing in.") .defaultValue(false) .build() ); private final Setting webs = sgGeneral.add(new BoolSetting.Builder() .name("webs") - .description("Whether to show holes that have webs inside of them.") .defaultValue(false) .build() ); @@ -88,14 +82,12 @@ public class HoleESP extends Module { private final Setting shapeMode = sgRender.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .build() ); private final Setting height = sgRender.add(new DoubleSetting.Builder() .name("height") - .description("The height of rendering.") .defaultValue(0.2) .min(0) .build() @@ -103,56 +95,48 @@ public class HoleESP extends Module { private final Setting topQuad = sgRender.add(new BoolSetting.Builder() .name("top-quad") - .description("Whether to render a quad at the top of the hole.") .defaultValue(true) .build() ); private final Setting bottomQuad = sgRender.add(new BoolSetting.Builder() .name("bottom-quad") - .description("Whether to render a quad at the bottom of the hole.") .defaultValue(false) .build() ); private final Setting bedrockColorTop = sgRender.add(new ColorSetting.Builder() .name("bedrock-top") - .description("The top color for holes that are completely bedrock.") .defaultValue(new SettingColor(100, 255, 0, 200)) .build() ); private final Setting bedrockColorBottom = sgRender.add(new ColorSetting.Builder() .name("bedrock-bottom") - .description("The bottom color for holes that are completely bedrock.") .defaultValue(new SettingColor(100, 255, 0, 0)) .build() ); private final Setting obsidianColorTop = sgRender.add(new ColorSetting.Builder() .name("obsidian-top") - .description("The top color for holes that are completely obsidian.") .defaultValue(new SettingColor(255, 0, 0, 200)) .build() ); private final Setting obsidianColorBottom = sgRender.add(new ColorSetting.Builder() .name("obsidian-bottom") - .description("The bottom color for holes that are completely obsidian.") .defaultValue(new SettingColor(255, 0, 0, 0)) .build() ); private final Setting mixedColorTop = sgRender.add(new ColorSetting.Builder() .name("mixed-top") - .description("The top color for holes that have mixed bedrock and obsidian.") .defaultValue(new SettingColor(255, 127, 0, 200)) .build() ); private final Setting mixedColorBottom = sgRender.add(new ColorSetting.Builder() .name("mixed-bottom") - .description("The bottom color for holes that have mixed bedrock and obsidian.") .defaultValue(new SettingColor(255, 127, 0, 0)) .build() ); @@ -163,7 +147,7 @@ public class HoleESP extends Module { private final byte NULL = 0; public HoleESP() { - super(Categories.Render, "hole-esp", "Displays holes that you will take less damage in."); + super(Categories.Render, "hole-esp"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ItemHighlight.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ItemHighlight.java index 3b4d786bb1..427f25c0bd 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ItemHighlight.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ItemHighlight.java @@ -22,19 +22,17 @@ public class ItemHighlight extends Module { private final Setting> items = sgGeneral.add(new ItemListSetting.Builder() .name("items") - .description("Items to highlight.") .build() ); private final Setting color = sgGeneral.add(new ColorSetting.Builder() .name("color") - .description("The color to highlight the items with.") .defaultValue(new SettingColor(225, 25, 255, 50)) .build() ); public ItemHighlight() { - super(Categories.Render, "item-highlight", "Highlights selected items when in guis"); + super(Categories.Render, "item-highlight"); } public int getColor(ItemStack stack) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ItemPhysics.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ItemPhysics.java index 8c979a3977..71033b928d 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ItemPhysics.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/ItemPhysics.java @@ -35,7 +35,6 @@ public class ItemPhysics extends Module { private final Setting randomRotation = sgGeneral.add(new BoolSetting.Builder() .name("random-rotation") - .description("Adds a random rotation to every item.") .defaultValue(true) .build() ); @@ -44,7 +43,7 @@ public class ItemPhysics extends Module { private boolean skipTransformation; public ItemPhysics() { - super(Categories.Render, "item-physics", "Applies physics to items on the ground."); + super(Categories.Render, "item-physics"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/LightOverlay.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/LightOverlay.java index 2bccfec04b..26c2d7e0e0 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/LightOverlay.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/LightOverlay.java @@ -24,13 +24,12 @@ public class LightOverlay extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgColors = settings.createGroup("Colors"); + private final SettingGroup sgColors = settings.createGroup("colors"); // General private final Setting horizontalRange = sgGeneral.add(new IntSetting.Builder() .name("horizontal-range") - .description("Horizontal range in blocks.") .defaultValue(8) .min(0) .build() @@ -38,7 +37,6 @@ public class LightOverlay extends Module { private final Setting verticalRange = sgGeneral.add(new IntSetting.Builder() .name("vertical-range") - .description("Vertical range in blocks.") .defaultValue(4) .min(0) .build() @@ -46,14 +44,12 @@ public class LightOverlay extends Module { private final Setting seeThroughBlocks = sgGeneral.add(new BoolSetting.Builder() .name("see-through-blocks") - .description("Allows you to see the lines through blocks.") .defaultValue(false) .build() ); private final Setting lightLevel = sgGeneral.add(new IntSetting.Builder() .name("light-level") - .description("Which light levels to render. Old spawning light: 7.") .defaultValue(0) .min(0) .sliderMax(15) @@ -64,14 +60,12 @@ public class LightOverlay extends Module { private final Setting color = sgColors.add(new ColorSetting.Builder() .name("color") - .description("Color of places where mobs can currently spawn.") .defaultValue(new SettingColor(225, 25, 25)) .build() ); private final Setting potentialColor = sgColors.add(new ColorSetting.Builder() .name("potential-color") - .description("Color of places where mobs can potentially spawn (eg at night).") .defaultValue(new SettingColor(225, 225, 25)) .build() ); @@ -80,7 +74,7 @@ public class LightOverlay extends Module { private final List crosses = new ArrayList<>(); public LightOverlay() { - super(Categories.Render, "light-overlay", "Shows blocks where mobs can spawn."); + super(Categories.Render, "light-overlay"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/LogoutSpots.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/LogoutSpots.java index cdfaa7adda..153c369073 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/LogoutSpots.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/LogoutSpots.java @@ -36,13 +36,12 @@ public class LogoutSpots extends Module { private static final Color RED = new Color(225, 25, 25); private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgRender = settings.createGroup("Render"); + private final SettingGroup sgRender = settings.createGroup("render"); // General private final Setting scale = sgGeneral.add(new DoubleSetting.Builder() .name("scale") - .description("The scale.") .defaultValue(1) .min(0) .build() @@ -50,7 +49,6 @@ public class LogoutSpots extends Module { private final Setting fullHeight = sgGeneral.add(new BoolSetting.Builder() .name("full-height") - .description("Displays the height as the player's full height.") .defaultValue(true) .build() ); @@ -59,35 +57,30 @@ public class LogoutSpots extends Module { private final Setting shapeMode = sgRender.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .build() ); private final Setting sideColor = sgRender.add(new ColorSetting.Builder() .name("side-color") - .description("The side color.") .defaultValue(new SettingColor(255, 0, 255, 55)) .build() ); private final Setting lineColor = sgRender.add(new ColorSetting.Builder() .name("line-color") - .description("The line color.") .defaultValue(new SettingColor(255, 0, 255)) .build() ); private final Setting nameColor = sgRender.add(new ColorSetting.Builder() .name("name-color") - .description("The name color.") .defaultValue(new SettingColor(255, 255, 255)) .build() ); private final Setting nameBackgroundColor = sgRender.add(new ColorSetting.Builder() .name("name-background-color") - .description("The name background color.") .defaultValue(new SettingColor(0, 0, 0, 75)) .build() ); @@ -101,7 +94,7 @@ public class LogoutSpots extends Module { private DimensionType lastDimension; public LogoutSpots() { - super(Categories.Render, "logout-spots", "Displays a box where another player has logged out at."); + super(Categories.Render, "logout-spots"); lineColor.onChanged(); } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Nametags.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Nametags.java index 7740d17ae4..78944ccd3c 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Nametags.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Nametags.java @@ -49,22 +49,20 @@ public class Nametags extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgPlayers = settings.createGroup("Players"); - private final SettingGroup sgItems = settings.createGroup("Items"); - private final SettingGroup sgRender = settings.createGroup("Render"); + private final SettingGroup sgPlayers = settings.createGroup("players"); + private final SettingGroup sgItems = settings.createGroup("items"); + private final SettingGroup sgRender = settings.createGroup("render"); // General private final Setting>> entities = sgGeneral.add(new EntityTypeListSetting.Builder() .name("entities") - .description("Select entities to draw nametags on.") .defaultValue(EntityType.PLAYER, EntityType.ITEM) .build() ); private final Setting scale = sgGeneral.add(new DoubleSetting.Builder() .name("scale") - .description("The scale of the nametag.") .defaultValue(1.1) .min(0.1) .build() @@ -72,35 +70,30 @@ public class Nametags extends Module { private final Setting ignoreSelf = sgGeneral.add(new BoolSetting.Builder() .name("ignore-self") - .description("Ignore yourself when in third person or freecam.") .defaultValue(true) .build() ); private final Setting ignoreFriends = sgGeneral.add(new BoolSetting.Builder() .name("ignore-friends") - .description("Ignore rendering nametags for friends.") .defaultValue(false) .build() ); private final Setting ignoreBots = sgGeneral.add(new BoolSetting.Builder() .name("ignore-bots") - .description("Only render non-bot nametags.") .defaultValue(true) .build() ); private final Setting culling = sgGeneral.add(new BoolSetting.Builder() .name("culling") - .description("Only render a certain number of nametags at a certain distance.") .defaultValue(false) .build() ); private final Setting maxCullRange = sgGeneral.add(new DoubleSetting.Builder() .name("culling-range") - .description("Only render nametags within this distance of your player.") .defaultValue(20) .min(0) .sliderMax(200) @@ -110,7 +103,6 @@ public class Nametags extends Module { private final Setting maxCullCount = sgGeneral.add(new IntSetting.Builder() .name("culling-count") - .description("Only render this many nametags.") .defaultValue(50) .min(1) .sliderRange(1, 100) @@ -122,42 +114,36 @@ public class Nametags extends Module { private final Setting displayHealth = sgPlayers.add(new BoolSetting.Builder() .name("health") - .description("Shows the player's health.") .defaultValue(true) .build() ); private final Setting displayGameMode = sgPlayers.add(new BoolSetting.Builder() .name("gamemode") - .description("Shows the player's GameMode.") .defaultValue(false) .build() ); private final Setting displayDistance = sgPlayers.add(new BoolSetting.Builder() .name("distance") - .description("Shows the distance between you and the player.") .defaultValue(false) .build() ); private final Setting displayPing = sgPlayers.add(new BoolSetting.Builder() .name("ping") - .description("Shows the player's ping.") .defaultValue(true) .build() ); private final Setting displayItems = sgPlayers.add(new BoolSetting.Builder() .name("items") - .description("Displays armor and hand items above the name tags.") .defaultValue(true) .build() ); private final Setting itemSpacing = sgPlayers.add(new DoubleSetting.Builder() .name("item-spacing") - .description("The spacing between items.") .defaultValue(2) .range(0, 10) .visible(displayItems::get) @@ -166,7 +152,6 @@ public class Nametags extends Module { private final Setting ignoreEmpty = sgPlayers.add(new BoolSetting.Builder() .name("ignore-empty-slots") - .description("Doesn't add spacing where an empty item stack would be.") .defaultValue(true) .visible(displayItems::get) .build() @@ -174,7 +159,6 @@ public class Nametags extends Module { private final Setting itemDurability = sgPlayers.add(new EnumSetting.Builder() .name("durability") - .description("Displays item durability as either a total, percentage, or neither.") .defaultValue(Durability.None) .visible(displayItems::get) .build() @@ -182,7 +166,6 @@ public class Nametags extends Module { private final Setting displayEnchants = sgPlayers.add(new BoolSetting.Builder() .name("display-enchants") - .description("Displays item enchantments on the items.") .defaultValue(false) .visible(displayItems::get) .build() @@ -190,7 +173,6 @@ public class Nametags extends Module { private final Setting>> shownEnchantments = sgPlayers.add(new EnchantmentListSetting.Builder() .name("shown-enchantments") - .description("The enchantments that are shown on nametags.") .visible(() -> displayItems.get() && displayEnchants.get()) .defaultValue( Enchantments.PROTECTION, @@ -203,7 +185,6 @@ public class Nametags extends Module { private final Setting enchantPos = sgPlayers.add(new EnumSetting.Builder() .name("enchantment-position") - .description("Where the enchantments are rendered.") .defaultValue(Position.Above) .visible(() -> displayItems.get() && displayEnchants.get()) .build() @@ -211,7 +192,6 @@ public class Nametags extends Module { private final Setting enchantLength = sgPlayers.add(new IntSetting.Builder() .name("enchant-name-length") - .description("The length enchantment names are trimmed to.") .defaultValue(3) .range(1, 5) .sliderRange(1, 5) @@ -221,7 +201,6 @@ public class Nametags extends Module { private final Setting enchantTextScale = sgPlayers.add(new DoubleSetting.Builder() .name("enchant-text-scale") - .description("The scale of the enchantment text.") .defaultValue(1) .range(0.1, 2) .sliderRange(0.1, 2) @@ -233,7 +212,6 @@ public class Nametags extends Module { private final Setting itemCount = sgItems.add(new BoolSetting.Builder() .name("show-count") - .description("Displays the number of items in the stack.") .defaultValue(true) .build() ); @@ -242,21 +220,18 @@ public class Nametags extends Module { private final Setting background = sgRender.add(new ColorSetting.Builder() .name("background-color") - .description("The color of the nametag background.") .defaultValue(new SettingColor(0, 0, 0, 75)) .build() ); private final Setting nameColor = sgRender.add(new ColorSetting.Builder() .name("name-color") - .description("The color of the nametag names.") .defaultValue(new SettingColor()) .build() ); private final Setting pingColor = sgRender.add(new ColorSetting.Builder() .name("ping-color") - .description("The color of the nametag ping.") .defaultValue(new SettingColor(20, 170, 170)) .visible(displayPing::get) .build() @@ -264,7 +239,6 @@ public class Nametags extends Module { private final Setting gamemodeColor = sgRender.add(new ColorSetting.Builder() .name("gamemode-color") - .description("The color of the nametag gamemode.") .defaultValue(new SettingColor(232, 185, 35)) .visible(displayGameMode::get) .build() @@ -272,7 +246,6 @@ public class Nametags extends Module { private final Setting distanceColorMode = sgRender.add(new EnumSetting.Builder() .name("distance-color-mode") - .description("The mode to color the nametag distance with.") .defaultValue(DistanceColorMode.Gradient) .visible(displayDistance::get) .build() @@ -280,7 +253,6 @@ public class Nametags extends Module { private final Setting distanceColor = sgRender.add(new ColorSetting.Builder() .name("distance-color") - .description("The color of the nametag distance.") .defaultValue(new SettingColor(150, 150, 150)) .visible(() -> displayDistance.get() && distanceColorMode.get() == DistanceColorMode.Flat) .build() @@ -298,7 +270,7 @@ public class Nametags extends Module { private final List entityList = new ArrayList<>(); public Nametags() { - super(Categories.Render, "nametags", "Displays customizable nametags above players, items and other entities."); + super(Categories.Render, "nametags"); } private static String ticksToTime(int ticks) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/NoRender.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/NoRender.java index 145a1ee45a..9cd1bc0a1f 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/NoRender.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/NoRender.java @@ -24,100 +24,87 @@ import java.util.Set; public class NoRender extends Module { - private final SettingGroup sgOverlay = settings.createGroup("Overlay"); - private final SettingGroup sgHUD = settings.createGroup("HUD"); - private final SettingGroup sgWorld = settings.createGroup("World"); - private final SettingGroup sgEntity = settings.createGroup("Entity"); + private final SettingGroup sgOverlay = settings.createGroup("overlay"); + private final SettingGroup sgHUD = settings.createGroup("hud"); + private final SettingGroup sgWorld = settings.createGroup("world"); + private final SettingGroup sgEntity = settings.createGroup("entity"); // Overlay private final Setting noPortalOverlay = sgOverlay.add(new BoolSetting.Builder() .name("portal-overlay") - .description("Disables rendering of the nether portal overlay.") .defaultValue(false) .build() ); private final Setting noSpyglassOverlay = sgOverlay.add(new BoolSetting.Builder() .name("spyglass-overlay") - .description("Disables rendering of the spyglass overlay.") .defaultValue(false) .build() ); private final Setting noNausea = sgOverlay.add(new BoolSetting.Builder() .name("nausea") - .description("Disables rendering of the nausea overlay.") .defaultValue(false) .build() ); private final Setting noPumpkinOverlay = sgOverlay.add(new BoolSetting.Builder() .name("pumpkin-overlay") - .description("Disables rendering of the pumpkin head overlay") .defaultValue(false) .build() ); private final Setting noPowderedSnowOverlay = sgOverlay.add(new BoolSetting.Builder() .name("powdered-snow-overlay") - .description("Disables rendering of the powdered snow overlay.") .defaultValue(false) .build() ); private final Setting noFireOverlay = sgOverlay.add(new BoolSetting.Builder() .name("fire-overlay") - .description("Disables rendering of the fire overlay.") .defaultValue(false) .build() ); private final Setting noLiquidOverlay = sgOverlay.add(new BoolSetting.Builder() .name("liquid-overlay") - .description("Disables rendering of the liquid overlay.") .defaultValue(false) .build() ); private final Setting noInWallOverlay = sgOverlay.add(new BoolSetting.Builder() .name("in-wall-overlay") - .description("Disables rendering of the overlay when inside blocks.") .defaultValue(false) .build() ); private final Setting noVignette = sgOverlay.add(new BoolSetting.Builder() .name("vignette") - .description("Disables rendering of the vignette overlay.") .defaultValue(false) .build() ); private final Setting noGuiBackground = sgOverlay.add(new BoolSetting.Builder() .name("gui-background") - .description("Disables rendering of the GUI background overlay.") .defaultValue(false) .build() ); private final Setting noTotemAnimation = sgOverlay.add(new BoolSetting.Builder() .name("totem-animation") - .description("Disables rendering of the totem animation when you pop a totem.") .defaultValue(false) .build() ); private final Setting noEatParticles = sgOverlay.add(new BoolSetting.Builder() .name("eating-particles") - .description("Disables rendering of eating particles.") .defaultValue(false) .build() ); private final Setting noEnchantGlint = sgOverlay.add(new BoolSetting.Builder() .name("enchantment-glint") - .description("Disables rending of the enchantment glint.") .defaultValue(false) .build() ); @@ -126,55 +113,47 @@ public class NoRender extends Module { private final Setting noBossBar = sgHUD.add(new BoolSetting.Builder() .name("boss-bar") - .description("Disable rendering of boss bars.") .defaultValue(false) .build() ); private final Setting noScoreboard = sgHUD.add(new BoolSetting.Builder() .name("scoreboard") - .description("Disable rendering of the scoreboard.") .defaultValue(false) .build() ); private final Setting noCrosshair = sgHUD.add(new BoolSetting.Builder() .name("crosshair") - .description("Disables rendering of the crosshair.") .defaultValue(false) .build() ); private final Setting noTitle = sgHUD.add(new BoolSetting.Builder() .name("title") - .description("Disables rendering of the title.") .defaultValue(false) .build() ); private final Setting noHeldItemName = sgHUD.add(new BoolSetting.Builder() .name("held-item-name") - .description("Disables rendering of the held item name.") .defaultValue(false) .build() ); private final Setting noObfuscation = sgHUD.add(new BoolSetting.Builder() .name("obfuscation") - .description("Disables obfuscation styling of characters.") .defaultValue(false) .build() ); private final Setting noPotionIcons = sgHUD.add(new BoolSetting.Builder() .name("potion-icons") - .description("Disables rendering of status effect icons.") .defaultValue(false) .build() ); private final Setting noMessageSignatureIndicator = sgHUD.add(new BoolSetting.Builder() .name("message-signature-indicator") - .description("Disables chat message signature indicator on the left of the message.") .defaultValue(false) .build() ); @@ -183,84 +162,72 @@ public class NoRender extends Module { private final Setting noWeather = sgWorld.add(new BoolSetting.Builder() .name("weather") - .description("Disables rendering of weather.") .defaultValue(false) .build() ); private final Setting noWorldBorder = sgWorld.add(new BoolSetting.Builder() .name("world-border") - .description("Disables rendering of the world border.") .defaultValue(false) .build() ); private final Setting noBlindness = sgWorld.add(new BoolSetting.Builder() .name("blindness") - .description("Disables rendering of blindness.") .defaultValue(false) .build() ); private final Setting noDarkness = sgWorld.add(new BoolSetting.Builder() .name("darkness") - .description("Disables rendering of darkness.") .defaultValue(false) .build() ); private final Setting noFog = sgWorld.add(new BoolSetting.Builder() .name("fog") - .description("Disables rendering of fog.") .defaultValue(false) .build() ); private final Setting noEnchTableBook = sgWorld.add(new BoolSetting.Builder() .name("enchantment-table-book") - .description("Disables rendering of books above enchanting tables.") .defaultValue(false) .build() ); private final Setting noSignText = sgWorld.add(new BoolSetting.Builder() .name("sign-text") - .description("Disables rendering of text on signs.") .defaultValue(false) .build() ); private final Setting noBlockBreakParticles = sgWorld.add(new BoolSetting.Builder() .name("block-break-particles") - .description("Disables rendering of block-break particles.") .defaultValue(false) .build() ); private final Setting noBlockBreakOverlay = sgWorld.add(new BoolSetting.Builder() .name("block-break-overlay") - .description("Disables rendering of block-break overlay.") .defaultValue(false) .build() ); private final Setting noBeaconBeams = sgWorld.add(new BoolSetting.Builder() .name("beacon-beams") - .description("Disables rendering of beacon beams.") .defaultValue(false) .build() ); private final Setting noFallingBlocks = sgWorld.add(new BoolSetting.Builder() .name("falling-blocks") - .description("Disables rendering of falling blocks.") .defaultValue(false) .build() ); private final Setting noCaveCulling = sgWorld.add(new BoolSetting.Builder() .name("cave-culling") - .description("Disables Minecraft's cave culling algorithm.") .defaultValue(false) .onChanged(b -> mc.worldRenderer.reload()) .build() @@ -268,48 +235,41 @@ public class NoRender extends Module { private final Setting noMapMarkers = sgWorld.add(new BoolSetting.Builder() .name("map-markers") - .description("Disables markers on maps.") .defaultValue(false) .build() ); private final Setting noMapContents = sgWorld.add(new BoolSetting.Builder() .name("map-contents") - .description("Disable rendering of maps.") .defaultValue(false) .build() ); private final Setting bannerRender = sgWorld.add(new EnumSetting.Builder() .name("banners") - .description("Changes rendering of banners.") .defaultValue(BannerRenderMode.Everything) .build() ); private final Setting noFireworkExplosions = sgWorld.add(new BoolSetting.Builder() .name("firework-explosions") - .description("Disables rendering of firework explosions.") .defaultValue(false) .build() ); private final Setting>> particles = sgWorld.add(new ParticleTypeListSetting.Builder() .name("particles") - .description("Particles to not render.") .build() ); private final Setting noBarrierInvis = sgWorld.add(new BoolSetting.Builder() .name("barrier-invisibility") - .description("Disables barriers being invisible when not holding one.") .defaultValue(false) .build() ); private final Setting noTextureRotations = sgWorld.add(new BoolSetting.Builder() .name("texture-rotations") - .description("Changes texture rotations and model offsets to use a constant value instead of the block position.") .defaultValue(false) .onChanged(b -> mc.worldRenderer.reload()) .build() @@ -317,7 +277,6 @@ public class NoRender extends Module { private final Setting> blockEntities = sgWorld.add(new BlockListSetting.Builder() .name("block-entities") - .description("Block entities (chest, shulker block, etc.) to not render.") .filter(block -> block instanceof BlockEntityProvider && !(block instanceof AbstractBannerBlock)) .build() ); @@ -326,61 +285,53 @@ public class NoRender extends Module { private final Setting>> entities = sgEntity.add(new EntityTypeListSetting.Builder() .name("entities") - .description("Disables rendering of selected entities.") .build() ); private final Setting dropSpawnPacket = sgEntity.add(new BoolSetting.Builder() .name("drop-spawn-packets") - .description("WARNING! Drops all spawn packets of entities selected in the above list.") .defaultValue(false) .build() ); private final Setting noArmor = sgEntity.add(new BoolSetting.Builder() .name("armor") - .description("Disables rendering of armor on entities.") .defaultValue(false) .build() ); private final Setting noInvisibility = sgEntity.add(new BoolSetting.Builder() .name("invisibility") - .description("Shows invisible entities.") .defaultValue(false) .build() ); private final Setting noGlowing = sgEntity.add(new BoolSetting.Builder() .name("glowing") - .description("Disables rendering of the glowing effect") .defaultValue(false) .build() ); private final Setting noMobInSpawner = sgEntity.add(new BoolSetting.Builder() .name("spawner-entities") - .description("Disables rendering of spinning mobs inside of mob spawners") .defaultValue(false) .build() ); private final Setting noDeadEntities = sgEntity.add(new BoolSetting.Builder() .name("dead-entities") - .description("Disables rendering of dead entities") .defaultValue(false) .build() ); private final Setting noNametags = sgEntity.add(new BoolSetting.Builder() .name("nametags") - .description("Disables rendering of entity nametags") .defaultValue(false) .build() ); public NoRender() { - super(Categories.Render, "no-render", "Disables certain animations or overlays from rendering."); + super(Categories.Render, "no-render"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/PopChams.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/PopChams.java index 4b741fa3a5..6e78866764 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/PopChams.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/PopChams.java @@ -30,14 +30,12 @@ public class PopChams extends Module { private final Setting onlyOne = sgGeneral.add(new BoolSetting.Builder() .name("only-one") - .description("Only allow one ghost per player.") .defaultValue(false) .build() ); private final Setting renderTime = sgGeneral.add(new DoubleSetting.Builder() .name("render-time") - .description("How long the ghost is rendered in seconds.") .defaultValue(1) .min(0.1) .sliderMax(6) @@ -46,7 +44,6 @@ public class PopChams extends Module { private final Setting yModifier = sgGeneral.add(new DoubleSetting.Builder() .name("y-modifier") - .description("How much should the Y position of the ghost change per second.") .defaultValue(0.75) .sliderRange(-4, 4) .build() @@ -54,7 +51,6 @@ public class PopChams extends Module { private final Setting scaleModifier = sgGeneral.add(new DoubleSetting.Builder() .name("scale-modifier") - .description("How much should the scale of the ghost change per second.") .defaultValue(-0.25) .sliderRange(-4, 4) .build() @@ -62,28 +58,24 @@ public class PopChams extends Module { private final Setting fadeOut = sgGeneral.add(new BoolSetting.Builder() .name("fade-out") - .description("Fades out the color.") .defaultValue(true) .build() ); private final Setting shapeMode = sgGeneral.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .build() ); private final Setting sideColor = sgGeneral.add(new ColorSetting.Builder() .name("side-color") - .description("The side color.") .defaultValue(new SettingColor(255, 255, 255, 25)) .build() ); private final Setting lineColor = sgGeneral.add(new ColorSetting.Builder() .name("line-color") - .description("The line color.") .defaultValue(new SettingColor(255, 255, 255, 127)) .build() ); @@ -91,7 +83,7 @@ public class PopChams extends Module { private final List ghosts = new ArrayList<>(); public PopChams() { - super(Categories.Render, "pop-chams", "Renders a ghost where players pop totem."); + super(Categories.Render, "pop-chams"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/StorageESP.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/StorageESP.java index 8a8ecfe1c1..92f72c3409 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/StorageESP.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/StorageESP.java @@ -43,40 +43,35 @@ public class StorageESP extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgOpened = settings.createGroup("Opened Rendering"); + private final SettingGroup sgOpened = settings.createGroup("opened-rendering"); private final Set interactedBlocks = new HashSet<>(); private final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("Rendering mode.") .defaultValue(Mode.Shader) .build() ); private final Setting>> storageBlocks = sgGeneral.add(new StorageBlockListSetting.Builder() .name("storage-blocks") - .description("Select the storage blocks to display.") .defaultValue(StorageBlockListSetting.STORAGE_BLOCKS) .build() ); private final Setting tracers = sgGeneral.add(new BoolSetting.Builder() .name("tracers") - .description("Draws tracers to storage blocks.") .defaultValue(false) .build() ); public final Setting shapeMode = sgGeneral.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .build() ); public final Setting fillOpacity = sgGeneral.add(new IntSetting.Builder() .name("fill-opacity") - .description("The opacity of the shape fill.") .visible(() -> shapeMode.get() != ShapeMode.Lines) .defaultValue(50) .range(0, 255) @@ -86,7 +81,6 @@ public class StorageESP extends Module { public final Setting outlineWidth = sgGeneral.add(new IntSetting.Builder() .name("width") - .description("The width of the shader outline.") .visible(() -> mode.get() == Mode.Shader) .defaultValue(1) .range(1, 10) @@ -96,7 +90,6 @@ public class StorageESP extends Module { public final Setting glowMultiplier = sgGeneral.add(new DoubleSetting.Builder() .name("glow-multiplier") - .description("Multiplier for glow effect") .visible(() -> mode.get() == Mode.Shader) .decimalPlaces(3) .defaultValue(3.5) @@ -107,49 +100,42 @@ public class StorageESP extends Module { private final Setting chest = sgGeneral.add(new ColorSetting.Builder() .name("chest") - .description("The color of chests.") .defaultValue(new SettingColor(255, 160, 0, 255)) .build() ); private final Setting trappedChest = sgGeneral.add(new ColorSetting.Builder() .name("trapped-chest") - .description("The color of trapped chests.") .defaultValue(new SettingColor(255, 0, 0, 255)) .build() ); private final Setting barrel = sgGeneral.add(new ColorSetting.Builder() .name("barrel") - .description("The color of barrels.") .defaultValue(new SettingColor(255, 160, 0, 255)) .build() ); private final Setting shulker = sgGeneral.add(new ColorSetting.Builder() .name("shulker") - .description("The color of Shulker Boxes.") .defaultValue(new SettingColor(255, 160, 0, 255)) .build() ); private final Setting enderChest = sgGeneral.add(new ColorSetting.Builder() .name("ender-chest") - .description("The color of Ender Chests.") .defaultValue(new SettingColor(120, 0, 255, 255)) .build() ); private final Setting other = sgGeneral.add(new ColorSetting.Builder() .name("other") - .description("The color of furnaces, dispensers, droppers and hoppers.") .defaultValue(new SettingColor(140, 140, 140, 255)) .build() ); private final Setting fadeDistance = sgGeneral.add(new DoubleSetting.Builder() .name("fade-distance") - .description("The distance at which the color will fade.") .defaultValue(6) .min(0) .sliderMax(12) @@ -158,14 +144,12 @@ public class StorageESP extends Module { private final Setting hideOpened = sgOpened.add(new BoolSetting.Builder() .name("hide-opened") - .description("Hides opened containers.") .defaultValue(false) .build() ); private final Setting openedColor = sgOpened.add(new ColorSetting.Builder() .name("opened-color") - .description("Optional setting to change colors of opened chests, as opposed to not rendering. Disabled at zero opacity.") .defaultValue(new SettingColor(203, 90, 203, 0)) // TRANSPARENT BY DEFAULT. .build() ); @@ -180,7 +164,7 @@ public class StorageESP extends Module { private final MeshBuilderVertexConsumerProvider vertexConsumerProvider; public StorageESP() { - super(Categories.Render, "storage-esp", "Renders all specified storage blocks."); + super(Categories.Render, "storage-esp"); mesh = new MeshBuilder(MeteorRenderPipelines.WORLD_COLORED); vertexConsumerProvider = new MeshBuilderVertexConsumerProvider(mesh); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/TimeChanger.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/TimeChanger.java index 228fb8afb0..be5248fa49 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/TimeChanger.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/TimeChanger.java @@ -20,7 +20,6 @@ public class TimeChanger extends Module { private final Setting time = sgGeneral.add(new DoubleSetting.Builder() .name("time") - .description("The specified time to be set.") .defaultValue(0) .sliderRange(-20000, 20000) .build() @@ -29,7 +28,7 @@ public class TimeChanger extends Module { long oldTime; public TimeChanger() { - super(Categories.Render, "time-changer", "Makes you able to set a custom time."); + super(Categories.Render, "time-changer"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Tracers.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Tracers.java index edac39cb37..96a6a0dbf3 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Tracers.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Tracers.java @@ -35,8 +35,8 @@ public class Tracers extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgAppearance = settings.createGroup("Appearance"); - private final SettingGroup sgColors = settings.createGroup("Colors"); + private final SettingGroup sgAppearance = settings.createGroup("appearance"); + private final SettingGroup sgColors = settings.createGroup("colors"); public enum TracerStyle { Lines, @@ -47,28 +47,24 @@ public enum TracerStyle { private final Setting>> entities = sgGeneral.add(new EntityTypeListSetting.Builder() .name("entities") - .description("Select specific entities.") .defaultValue(EntityType.PLAYER) .build() ); private final Setting ignoreSelf = sgGeneral.add(new BoolSetting.Builder() .name("ignore-self") - .description("Doesn't draw tracers to yourself when in third person or freecam.") .defaultValue(false) .build() ); public final Setting ignoreFriends = sgGeneral.add(new BoolSetting.Builder() .name("ignore-friends") - .description("Doesn't draw tracers to friends.") .defaultValue(false) .build() ); public final Setting showInvis = sgGeneral.add(new BoolSetting.Builder() .name("show-invisible") - .description("Shows invisible entities.") .defaultValue(true) .build() ); @@ -77,14 +73,12 @@ public enum TracerStyle { private final Setting style = sgAppearance.add(new EnumSetting.Builder() .name("style") - .description("What display mode should be used") .defaultValue(TracerStyle.Lines) .build() ); private final Setting target = sgAppearance.add(new EnumSetting.Builder() .name("target") - .description("What part of the entity to target.") .defaultValue(Target.Body) .visible(() -> style.get() == TracerStyle.Lines) .build() @@ -92,7 +86,6 @@ public enum TracerStyle { private final Setting stem = sgAppearance.add(new BoolSetting.Builder() .name("stem") - .description("Draw a line through the center of the tracer target.") .defaultValue(true) .visible(() -> style.get() == TracerStyle.Lines) .build() @@ -100,7 +93,6 @@ public enum TracerStyle { private final Setting maxDist = sgAppearance.add(new IntSetting.Builder() .name("max-distance") - .description("Maximum distance for tracers to show.") .defaultValue(256) .min(0) .sliderMax(256) @@ -109,7 +101,6 @@ public enum TracerStyle { private final Setting distanceOffscreen = sgAppearance.add(new IntSetting.Builder() .name("distance-offscreen") - .description("Offscreen's distance from center.") .defaultValue(200) .min(0) .sliderMax(500) @@ -119,7 +110,6 @@ public enum TracerStyle { private final Setting sizeOffscreen = sgAppearance.add(new IntSetting.Builder() .name("size-offscreen") - .description("Offscreen's size.") .defaultValue(10) .min(2) .sliderMax(50) @@ -129,7 +119,6 @@ public enum TracerStyle { private final Setting blinkOffscreen = sgAppearance.add(new BoolSetting.Builder() .name("blink-offscreen") - .description("Make offscreen Blink.") .defaultValue(true) .visible(() -> style.get() == TracerStyle.Offscreen) .build() @@ -137,7 +126,6 @@ public enum TracerStyle { private final Setting blinkOffscreenSpeed = sgAppearance.add(new DoubleSetting.Builder() .name("blink-offscreen-speed") - .description("Offscreen's blink speed.") .defaultValue(4) .min(1) .sliderMax(15) @@ -149,14 +137,12 @@ public enum TracerStyle { public final Setting distance = sgColors.add(new BoolSetting.Builder() .name("distance-colors") - .description("Changes the color of tracers depending on distance.") .defaultValue(false) .build() ); public final Setting friendOverride = sgColors.add(new BoolSetting.Builder() .name("show-friend-colors") - .description("Whether or not to override the distance color of friends with the friend color.") .defaultValue(true) .visible(() -> distance.get() && !ignoreFriends.get()) .build() @@ -164,7 +150,6 @@ public enum TracerStyle { private final Setting playersColor = sgColors.add(new ColorSetting.Builder() .name("players-colors") - .description("The player's color.") .defaultValue(new SettingColor(205, 205, 205, 127)) .visible(() -> !distance.get()) .build() @@ -172,7 +157,6 @@ public enum TracerStyle { private final Setting animalsColor = sgColors.add(new ColorSetting.Builder() .name("animals-color") - .description("The animal's color.") .defaultValue(new SettingColor(145, 255, 145, 127)) .visible(() -> !distance.get()) .build() @@ -180,7 +164,6 @@ public enum TracerStyle { private final Setting waterAnimalsColor = sgColors.add(new ColorSetting.Builder() .name("water-animals-color") - .description("The water animal's color.") .defaultValue(new SettingColor(145, 145, 255, 127)) .visible(() -> !distance.get()) .build() @@ -188,7 +171,6 @@ public enum TracerStyle { private final Setting monstersColor = sgColors.add(new ColorSetting.Builder() .name("monsters-color") - .description("The monster's color.") .defaultValue(new SettingColor(255, 145, 145, 127)) .visible(() -> !distance.get()) .build() @@ -196,7 +178,6 @@ public enum TracerStyle { private final Setting ambientColor = sgColors.add(new ColorSetting.Builder() .name("ambient-color") - .description("The ambient color.") .defaultValue(new SettingColor(75, 75, 75, 127)) .visible(() -> !distance.get()) .build() @@ -204,7 +185,6 @@ public enum TracerStyle { private final Setting miscColor = sgColors.add(new ColorSetting.Builder() .name("misc-color") - .description("The misc color.") .defaultValue(new SettingColor(145, 145, 145, 127)) .visible(() -> !distance.get()) .build() @@ -214,7 +194,7 @@ public enum TracerStyle { private final Instant initTimer = Instant.now(); public Tracers() { - super(Categories.Render, "tracers", "Displays tracer lines to specified entities."); + super(Categories.Render, "tracers"); } private boolean shouldBeIgnored(Entity entity) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Trail.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Trail.java index 70e1de3c5e..60bdb42941 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Trail.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Trail.java @@ -24,20 +24,18 @@ public class Trail extends Module { private final Setting>> particles = sgGeneral.add(new ParticleTypeListSetting.Builder() .name("particles") - .description("Particles to draw.") .defaultValue(ParticleTypes.DRIPPING_OBSIDIAN_TEAR, ParticleTypes.CAMPFIRE_COSY_SMOKE) .build() ); private final Setting pause = sgGeneral.add(new BoolSetting.Builder() .name("pause-when-stationary") - .description("Whether or not to add particles when you are not moving.") .defaultValue(true) .build() ); public Trail() { - super(Categories.Render, "trail", "Renders a customizable trail behind your player."); + super(Categories.Render, "trail"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Trajectories.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Trajectories.java index 8d5077999a..658e2e921c 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Trajectories.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Trajectories.java @@ -37,13 +37,12 @@ public class Trajectories extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgRender = settings.createGroup("Render"); + private final SettingGroup sgRender = settings.createGroup("render"); // General private final Setting> items = sgGeneral.add(new ItemListSetting.Builder() .name("items") - .description("Items to display trajectories for.") .defaultValue(getDefaultItems()) .filter(this::itemFilter) .build() @@ -51,21 +50,18 @@ public class Trajectories extends Module { private final Setting otherPlayers = sgGeneral.add(new BoolSetting.Builder() .name("other-players") - .description("Calculates trajectories for other players.") .defaultValue(true) .build() ); private final Setting firedProjectiles = sgGeneral.add(new BoolSetting.Builder() .name("fired-projectiles") - .description("Calculates trajectories for already fired projectiles.") .defaultValue(false) .build() ); private final Setting ignoreWitherSkulls = sgGeneral.add(new BoolSetting.Builder() .name("ignore-wither-skulls") - .description("Whether to ignore fired wither skulls.") .defaultValue(false) .visible(firedProjectiles::get) .build() @@ -73,14 +69,12 @@ public class Trajectories extends Module { private final Setting accurate = sgGeneral.add(new BoolSetting.Builder() .name("accurate") - .description("Whether or not to calculate more accurate.") .defaultValue(false) .build() ); public final Setting simulationSteps = sgGeneral.add(new IntSetting.Builder() .name("simulation-steps") - .description("How many steps to simulate projectiles. Zero for no limit") .defaultValue(500) .sliderMax(5000) .build() @@ -90,7 +84,6 @@ public class Trajectories extends Module { private final Setting ignoreFirstTicks = sgRender.add(new IntSetting.Builder() .name("ignore-rendering-first-ticks") - .description("Ignores rendering the first given ticks, to make the rest of the path more visible.") .defaultValue(3) .min(0) .build() @@ -98,35 +91,30 @@ public class Trajectories extends Module { private final Setting shapeMode = sgRender.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .build() ); private final Setting sideColor = sgRender.add(new ColorSetting.Builder() .name("side-color") - .description("The side color.") .defaultValue(new SettingColor(255, 150, 0, 35)) .build() ); private final Setting lineColor = sgRender.add(new ColorSetting.Builder() .name("line-color") - .description("The line color.") .defaultValue(new SettingColor(255, 150, 0)) .build() ); private final Setting renderPositionBox = sgRender.add(new BoolSetting.Builder() .name("render-position-boxes") - .description("Renders the actual position the projectile will be at each tick along it's trajectory.") .defaultValue(false) .build() ); private final Setting positionBoxSize = sgRender.add(new DoubleSetting.Builder() .name("position-box-size") - .description("The size of the box drawn at the simulated positions.") .defaultValue(0.02) .sliderRange(0.01, 0.1) .visible(renderPositionBox::get) @@ -135,7 +123,6 @@ public class Trajectories extends Module { private final Setting positionSideColor = sgRender.add(new ColorSetting.Builder() .name("position-side-color") - .description("The side color.") .defaultValue(new SettingColor(255, 150, 0, 35)) .visible(renderPositionBox::get) .build() @@ -143,7 +130,6 @@ public class Trajectories extends Module { private final Setting positionLineColor = sgRender.add(new ColorSetting.Builder() .name("position-line-color") - .description("The line color.") .defaultValue(new SettingColor(255, 150, 0)) .visible(renderPositionBox::get) .build() @@ -157,7 +143,7 @@ public class Trajectories extends Module { private static final double MULTISHOT_OFFSET = Math.toRadians(10); // accurate-ish offset of crossbow multishot in radians (10° degrees) public Trajectories() { - super(Categories.Render, "trajectories", "Predicts the trajectory of throwable items."); + super(Categories.Render, "trajectories"); } private boolean itemFilter(Item item) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/TunnelESP.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/TunnelESP.java index 7d5cf45b90..5bbfaeb1ef 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/TunnelESP.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/TunnelESP.java @@ -42,7 +42,6 @@ public class TunnelESP extends Module { private final Setting height = sgGeneral.add(new DoubleSetting.Builder() .name("height") - .description("Height of the rendered box.") .defaultValue(0.1) .sliderMax(2) .build() @@ -50,28 +49,24 @@ public class TunnelESP extends Module { private final Setting connected = sgGeneral.add(new BoolSetting.Builder() .name("connected") - .description("If neighbouring holes should be connected.") .defaultValue(true) .build() ); private final Setting shapeMode = sgGeneral.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .build() ); private final Setting sideColor = sgGeneral.add(new ColorSetting.Builder() .name("side-color") - .description("The side color.") .defaultValue(new SettingColor(255, 175, 25, 50)) .build() ); private final Setting lineColor = sgGeneral.add(new ColorSetting.Builder() .name("line-color") - .description("The line color.") .defaultValue(new SettingColor(255, 175, 25, 255)) .build() ); @@ -79,7 +74,7 @@ public class TunnelESP extends Module { private final Long2ObjectMap chunks = new Long2ObjectOpenHashMap<>(); public TunnelESP() { - super(Categories.Render, "tunnel-esp", "Highlights tunnels."); + super(Categories.Render, "tunnel-esp"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/VoidESP.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/VoidESP.java index 407a87f794..561e9052e5 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/VoidESP.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/VoidESP.java @@ -30,20 +30,18 @@ public class VoidESP extends Module { private static final Direction[] SIDES = {Direction.EAST, Direction.NORTH, Direction.SOUTH, Direction.WEST}; private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgRender = settings.createGroup("Render"); + private final SettingGroup sgRender = settings.createGroup("render"); // General private final Setting airOnly = sgGeneral.add(new BoolSetting.Builder() .name("air-only") - .description("Checks bedrock only for air blocks.") .defaultValue(false) .build() ); private final Setting horizontalRadius = sgGeneral.add(new IntSetting.Builder() .name("horizontal-radius") - .description("Horizontal radius in which to search for holes.") .defaultValue(64) .min(0) .sliderMax(256) @@ -52,7 +50,6 @@ public class VoidESP extends Module { private final Setting holeHeight = sgGeneral.add(new IntSetting.Builder() .name("hole-height") - .description("The minimum hole height to be rendered.") .defaultValue(1) .min(1) .sliderRange(1, 5) @@ -61,7 +58,6 @@ public class VoidESP extends Module { private final Setting netherRoof = sgGeneral.add(new BoolSetting.Builder() .name("nether-roof") - .description("Check for holes in nether roof.") .defaultValue(true) .build() ); @@ -70,21 +66,18 @@ public class VoidESP extends Module { private final Setting shapeMode = sgRender.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .build() ); private final Setting sideColor = sgRender.add(new ColorSetting.Builder() .name("fill-color") - .description("The color that fills holes in the void.") .defaultValue(new SettingColor(225, 25, 25, 50)) .build() ); private final Setting lineColor = sgRender.add(new ColorSetting.Builder() .name("line-color") - .description("The color to draw lines of holes to the void.") .defaultValue(new SettingColor(225, 25, 255)) .build() ); @@ -95,7 +88,7 @@ public class VoidESP extends Module { private final List voidHoles = new ArrayList<>(); public VoidESP() { - super(Categories.Render, "void-esp", "Renders holes in bedrock layers that lead to the void."); + super(Categories.Render, "void-esp"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/WallHack.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/WallHack.java index be042352c5..9e05580d9a 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/WallHack.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/WallHack.java @@ -23,7 +23,6 @@ public class WallHack extends Module { public final Setting opacity = sgGeneral.add(new IntSetting.Builder() .name("opacity") - .description("The opacity for rendered blocks.") .defaultValue(0) .range(0, 255) .sliderMax(255) @@ -37,7 +36,6 @@ public class WallHack extends Module { public final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() .name("blocks") - .description("What blocks should be targeted for Wall Hack.") .defaultValue() .onChanged(onChanged -> { if (isActive()) mc.worldRenderer.reload(); @@ -47,13 +45,12 @@ public class WallHack extends Module { public final Setting occludeChunks = sgGeneral.add(new BoolSetting.Builder() .name("occlude-chunks") - .description("Whether caves should occlude underground (may look wonky when on).") .defaultValue(false) .build() ); public WallHack() { - super(Categories.Render, "wall-hack", "Makes blocks translucent."); + super(Categories.Render, "wall-hack"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/WaypointsModule.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/WaypointsModule.java index 5df199eb84..2991aea436 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/WaypointsModule.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/WaypointsModule.java @@ -48,11 +48,10 @@ public class WaypointsModule extends Module { private static final Color TEXT = new Color(255, 255, 255); private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgDeathPosition = settings.createGroup("Death Position"); + private final SettingGroup sgDeathPosition = settings.createGroup("death-position"); public final Setting textRenderDistance = sgGeneral.add(new IntSetting.Builder() .name("text-render-distance") - .description("Maximum distance from the center of the screen at which text will be rendered.") .defaultValue(100) .min(0) .sliderMax(200) @@ -61,7 +60,6 @@ public class WaypointsModule extends Module { private final Setting waypointFadeDistance = sgGeneral.add(new IntSetting.Builder() .name("waypoint-fade-distance") - .description("The distance to a waypoint at which it begins to start fading.") .defaultValue(20) .sliderRange(0, 100) .min(0) @@ -70,7 +68,6 @@ public class WaypointsModule extends Module { private final Setting maxDeathPositions = sgDeathPosition.add(new IntSetting.Builder() .name("max-death-positions") - .description("The amount of death positions to save, 0 to disable") .defaultValue(0) .min(0) .sliderMax(20) @@ -80,13 +77,12 @@ public class WaypointsModule extends Module { private final Setting dpChat = sgDeathPosition.add(new BoolSetting.Builder() .name("chat") - .description("Send a chat message with your position once you die") .defaultValue(false) .build() ); public WaypointsModule() { - super(Categories.Render, "waypoints", "Allows you to create waypoints."); + super(Categories.Render, "waypoints"); } private final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Xray.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Xray.java index 351a230172..40c299e43e 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Xray.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Xray.java @@ -35,7 +35,6 @@ public class Xray extends Module { private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() .name("whitelist") - .description("Which blocks to show x-rayed.") .defaultValue(ORES) .onChanged(v -> { if (isActive()) mc.worldRenderer.reload(); @@ -45,7 +44,6 @@ public class Xray extends Module { public final Setting opacity = sgGeneral.add(new IntSetting.Builder() .name("opacity") - .description("The opacity for all other blocks.") .defaultValue(25) .range(0, 255) .sliderMax(255) @@ -57,7 +55,6 @@ public class Xray extends Module { private final Setting exposedOnly = sgGeneral.add(new BoolSetting.Builder() .name("exposed-only") - .description("Show only exposed ores.") .defaultValue(false) .onChanged(onChanged -> { if (isActive()) mc.worldRenderer.reload(); @@ -65,7 +62,7 @@ public class Xray extends Module { .build()); public Xray() { - super(Categories.Render, "xray", "Only renders specified blocks. Good for mining."); + super(Categories.Render, "xray"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Zoom.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Zoom.java index 65d6dc066d..ad9267ef7b 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Zoom.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/Zoom.java @@ -26,7 +26,6 @@ public class Zoom extends Module { private final Setting zoom = sgGeneral.add(new DoubleSetting.Builder() .name("zoom") - .description("How much to zoom.") .defaultValue(6) .min(1) .build() @@ -34,7 +33,6 @@ public class Zoom extends Module { private final Setting scrollSensitivity = sgGeneral.add(new DoubleSetting.Builder() .name("scroll-sensitivity") - .description("Allows you to change zoom value using scroll wheel. 0 to disable.") .defaultValue(1) .min(0) .build() @@ -42,28 +40,24 @@ public class Zoom extends Module { private final Setting smooth = sgGeneral.add(new BoolSetting.Builder() .name("smooth") - .description("Smooth transition.") .defaultValue(true) .build() ); private final Setting cinematic = sgGeneral.add(new BoolSetting.Builder() .name("cinematic") - .description("Enables cinematic camera.") .defaultValue(false) .build() ); private final Setting hideHud = sgGeneral.add(new BoolSetting.Builder() .name("hide-HUD") - .description("Whether or not to hide the Minecraft HUD.") .defaultValue(false) .build() ); private final Setting renderHands = sgGeneral.add(new BoolSetting.Builder() .name("show-hands") - .description("Whether or not to render your hands.") .defaultValue(false) .visible(() -> !hideHud.get()) .build() @@ -79,7 +73,7 @@ public class Zoom extends Module { private boolean hudManualToggled; public Zoom() { - super(Categories.Render, "zoom", "Zooms your view."); + super(Categories.Render, "zoom"); autoSubscribe = false; } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/blockesp/BlockESP.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/blockesp/BlockESP.java index 8cfe86c072..b625cd5da7 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/blockesp/BlockESP.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/blockesp/BlockESP.java @@ -40,7 +40,6 @@ public class BlockESP extends Module { private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() .name("blocks") - .description("Blocks to search for.") .onChanged(blocks1 -> { if (isActive() && Utils.canUpdate()) onActivate(); }) @@ -49,7 +48,6 @@ public class BlockESP extends Module { private final Setting defaultBlockConfig = sgGeneral.add(new GenericSetting.Builder() .name("default-block-config") - .description("Default block config.") .defaultValue( new ESPBlockData( ShapeMode.Lines, @@ -64,14 +62,12 @@ public class BlockESP extends Module { private final Setting> blockConfigs = sgGeneral.add(new BlockDataSetting.Builder() .name("block-configs") - .description("Config for each block.") .defaultData(defaultBlockConfig) .build() ); private final Setting tracers = sgGeneral.add(new BoolSetting.Builder() .name("tracers") - .description("Render tracer lines.") .defaultValue(false) .build() ); @@ -85,7 +81,7 @@ public class BlockESP extends Module { private DimensionType lastDimension; public BlockESP() { - super(Categories.Render, "block-esp", "Renders specified blocks through walls.", "search"); + super(Categories.Render, "block-esp", "search"); RainbowColors.register(this::onTickRainbow); } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/blockesp/ESPBlockDataScreen.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/blockesp/ESPBlockDataScreen.java index 6854d2a89a..8f1bc3df4d 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/blockesp/ESPBlockDataScreen.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/blockesp/ESPBlockDataScreen.java @@ -36,13 +36,12 @@ private ESPBlockDataScreen(GuiTheme theme, ESPBlockData blockData, Setting se @Override public void initWidgets() { - Settings settings = new Settings(); + Settings settings = new Settings("module.block-esp.data"); SettingGroup sgGeneral = settings.getDefaultGroup(); - SettingGroup sgTracer = settings.createGroup("Tracer"); + SettingGroup sgTracer = settings.createGroup("tracer"); sgGeneral.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shape is rendered.") .defaultValue(ShapeMode.Lines) .onModuleActivated(shapeModeSetting -> shapeModeSetting.set(blockData.shapeMode)) .onChanged(shapeMode -> { @@ -56,7 +55,6 @@ public void initWidgets() { sgGeneral.add(new ColorSetting.Builder() .name("line-color") - .description("Color of lines.") .defaultValue(new SettingColor(0, 255, 200)) .onModuleActivated(settingColorSetting -> settingColorSetting.get().set(blockData.lineColor)) .onChanged(settingColor -> { @@ -70,7 +68,6 @@ public void initWidgets() { sgGeneral.add(new ColorSetting.Builder() .name("side-color") - .description("Color of sides.") .defaultValue(new SettingColor(0, 255, 200, 25)) .onModuleActivated(settingColorSetting -> settingColorSetting.get().set(blockData.sideColor)) .onChanged(settingColor -> { @@ -84,7 +81,6 @@ public void initWidgets() { sgTracer.add(new BoolSetting.Builder() .name("tracer") - .description("If tracer line is allowed to this block.") .defaultValue(true) .onModuleActivated(booleanSetting -> booleanSetting.set(blockData.tracer)) .onChanged(aBoolean -> { @@ -98,7 +94,6 @@ public void initWidgets() { sgTracer.add(new ColorSetting.Builder() .name("tracer-color") - .description("Color of tracer line.") .defaultValue(new SettingColor(0, 255, 200, 125)) .onModuleActivated(settingColorSetting -> settingColorSetting.get().set(blockData.tracerColor)) .onChanged(settingColor -> { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/marker/BaseMarker.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/marker/BaseMarker.java index 81617cd0cb..15787c67f0 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/marker/BaseMarker.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/marker/BaseMarker.java @@ -16,41 +16,46 @@ import net.minecraft.client.gui.screen.Screen; import net.minecraft.nbt.NbtCompound; +import java.util.Locale; + public abstract class BaseMarker implements ISerializable { - public final Settings settings = new Settings(); - - protected final SettingGroup sgBase = settings.createGroup("Base"); - - public final Setting name = sgBase.add(new StringSetting.Builder() - .name("name") - .description("Custom name for this marker.") - .build() - ); - - protected final Setting description = sgBase.add(new StringSetting.Builder() - .name("description") - .description("Custom description for this marker.") - .build() - ); - - private final Setting dimension = sgBase.add(new EnumSetting.Builder() - .name("dimension") - .description("In which dimension this marker should be visible.") - .defaultValue(Dimension.Overworld) - .build() - ); - - private final Setting active = sgBase.add(new BoolSetting.Builder() - .name("active") - .description("Is this marker visible.") - .defaultValue(false) - .build() - ); - - public BaseMarker(String name) { - this.name.set(name); - - dimension.set(PlayerUtils.getDimension()); + public final Settings settings; + + protected final SettingGroup sgBase; + + public final Setting name; + protected final Setting description; + private final Setting dimension; + private final Setting active; + + public BaseMarker(String type) { + this.settings = new Settings("marker." + type.toLowerCase(Locale.ROOT)); + + this.sgBase = settings.createGroup("base"); + + this.name = sgBase.add(new StringSetting.Builder() + .name("name") + .build() + ); + this.name.set(type); + + this.description = sgBase.add(new StringSetting.Builder() + .name("description") + .build() + ); + + this.dimension = sgBase.add(new EnumSetting.Builder() + .name("dimension") + .defaultValue(Dimension.Overworld) + .build() + ); + this.dimension.set(PlayerUtils.getDimension()); + + this.active = sgBase.add(new BoolSetting.Builder() + .name("active") + .defaultValue(false) + .build() + ); } protected void render(Render3DEvent event) {} diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/marker/CuboidMarker.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/marker/CuboidMarker.java index e869df4538..641700160f 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/marker/CuboidMarker.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/marker/CuboidMarker.java @@ -20,19 +20,17 @@ public enum Mode { } private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgRender = settings.createGroup("Render"); + private final SettingGroup sgRender = settings.createGroup("render"); // General private final Setting pos1 = sgGeneral.add(new BlockPosSetting.Builder() .name("pos-1") - .description("1st corner of the cuboid") .build() ); private final Setting pos2 = sgGeneral.add(new BlockPosSetting.Builder() .name("pos-2") - .description("2nd corner of the cuboid") .build() ); @@ -40,28 +38,24 @@ public enum Mode { private final Setting mode = sgRender.add(new EnumSetting.Builder() .name("mode") - .description("What mode to use for this marker.") .defaultValue(Mode.Full) .build() ); private final Setting shapeMode = sgRender.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .build() ); private final Setting sideColor = sgRender.add(new ColorSetting.Builder() .name("side-color") - .description("The color of the sides of the blocks being rendered.") .defaultValue(new SettingColor(0, 100, 255, 50)) .build() ); private final Setting lineColor = sgRender.add(new ColorSetting.Builder() .name("line-color") - .description("The color of the lines of the blocks being rendered.") .defaultValue(new SettingColor(0, 100, 255, 255)) .build() ); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/marker/Marker.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/marker/Marker.java index 3bf83adb35..2da228c5a4 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/marker/Marker.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/marker/Marker.java @@ -27,11 +27,11 @@ import java.util.ArrayList; public class Marker extends Module { - private final MarkerFactory factory = new MarkerFactory(); + public final MarkerFactory factory = new MarkerFactory(); private final ArrayList markers = new ArrayList<>(); public Marker() { - super(Categories.Render, "marker", "Renders shapes. Useful for large scale projects"); + super(Categories.Render, "marker"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/marker/Sphere2dMarker.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/marker/Sphere2dMarker.java index 53b57e9a48..ca7faee222 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/render/marker/Sphere2dMarker.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/render/marker/Sphere2dMarker.java @@ -33,19 +33,17 @@ public Block(int x, int y, int z) { public static final String type = "Sphere-2D"; private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgRender = settings.createGroup("Render"); - private final SettingGroup sgKeybinding = settings.createGroup("Keybinding"); + private final SettingGroup sgRender = settings.createGroup("render"); + private final SettingGroup sgBind = settings.createGroup("bind"); private final Setting center = sgGeneral.add(new BlockPosSetting.Builder() .name("center") - .description("Center of the sphere") .onChanged(bp -> dirty = true) .build() ); private final Setting radius = sgGeneral.add(new IntSetting.Builder() .name("radius") - .description("Radius of the sphere") .defaultValue(20) .min(1) .noSlider() @@ -55,7 +53,6 @@ public Block(int x, int y, int z) { private final Setting layer = sgGeneral.add(new IntSetting.Builder() .name("layer") - .description("Which layer to render") .defaultValue(0) .min(0) .noSlider() @@ -67,14 +64,12 @@ public Block(int x, int y, int z) { private final Setting limitRenderRange = sgRender.add(new BoolSetting.Builder() .name("limit-render-range") - .description("Whether to limit rendering range (useful in very large circles)") .defaultValue(false) .build() ); private final Setting renderRange = sgRender.add(new IntSetting.Builder() .name("render-range") - .description("Rendering range") .defaultValue(10) .min(1) .sliderRange(1, 20) @@ -84,21 +79,18 @@ public Block(int x, int y, int z) { private final Setting shapeMode = sgRender.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .build() ); private final Setting sideColor = sgRender.add(new ColorSetting.Builder() .name("side-color") - .description("The color of the sides of the blocks being rendered.") .defaultValue(new SettingColor(0, 100, 255, 50)) .build() ); private final Setting lineColor = sgRender.add(new ColorSetting.Builder() .name("line-color") - .description("The color of the lines of the blocks being rendered.") .defaultValue(new SettingColor(0, 100, 255, 255)) .build() ); @@ -106,9 +98,8 @@ public Block(int x, int y, int z) { // Keybinding @SuppressWarnings("unused") - private final Setting nextLayerKey = sgKeybinding.add(new KeybindSetting.Builder() + private final Setting nextLayerKey = sgBind.add(new KeybindSetting.Builder() .name("next-layer-keybind") - .description("Keybind to increment layer") .action(() -> { if (isVisible() && layer.get() < radius.get() * 2) layer.set(layer.get() + 1); }) @@ -116,9 +107,8 @@ public Block(int x, int y, int z) { ); @SuppressWarnings("unused") - private final Setting prevLayerKey = sgKeybinding.add(new KeybindSetting.Builder() + private final Setting prevLayerKey = sgBind.add(new KeybindSetting.Builder() .name("prev-layer-keybind") - .description("Keybind to increment layer") .action(() -> { if (isVisible()) layer.set(layer.get() - 1); }) diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Ambience.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Ambience.java index 6657250d4d..c5376d7ff3 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Ambience.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Ambience.java @@ -18,28 +18,25 @@ * @author Walaryne */ public class Ambience extends Module { - private final SettingGroup sgSky = settings.createGroup("Sky"); - private final SettingGroup sgWorld = settings.createGroup("World"); + private final SettingGroup sgSky = settings.createGroup("sky"); + private final SettingGroup sgWorld = settings.createGroup("world"); // Sky public final Setting endSky = sgSky.add(new BoolSetting.Builder() .name("end-sky") - .description("Makes the sky like the end.") .defaultValue(false) .build() ); public final Setting customSkyColor = sgSky.add(new BoolSetting.Builder() .name("custom-sky-color") - .description("Whether the sky color should be changed.") .defaultValue(false) .build() ); public final Setting overworldSkyColor = sgSky.add(new ColorSetting.Builder() .name("overworld-sky-color") - .description("The color of the overworld sky.") .defaultValue(new SettingColor(0, 125, 255)) .visible(customSkyColor::get) .build() @@ -47,7 +44,6 @@ public class Ambience extends Module { public final Setting netherSkyColor = sgSky.add(new ColorSetting.Builder() .name("nether-sky-color") - .description("The color of the nether sky.") .defaultValue(new SettingColor(102, 0, 0)) .visible(customSkyColor::get) .build() @@ -55,7 +51,6 @@ public class Ambience extends Module { public final Setting endSkyColor = sgSky.add(new ColorSetting.Builder() .name("end-sky-color") - .description("The color of the end sky.") .defaultValue(new SettingColor(65, 30, 90)) .visible(customSkyColor::get) .build() @@ -63,14 +58,12 @@ public class Ambience extends Module { public final Setting customCloudColor = sgSky.add(new BoolSetting.Builder() .name("custom-cloud-color") - .description("Whether the clouds color should be changed.") .defaultValue(false) .build() ); public final Setting cloudColor = sgSky.add(new ColorSetting.Builder() .name("cloud-color") - .description("The color of the clouds.") .defaultValue(new SettingColor(102, 0, 0)) .visible(customCloudColor::get) .build() @@ -78,14 +71,12 @@ public class Ambience extends Module { public final Setting changeLightningColor = sgSky.add(new BoolSetting.Builder() .name("custom-lightning-color") - .description("Whether the lightning color should be changed.") .defaultValue(false) .build() ); public final Setting lightningColor = sgSky.add(new ColorSetting.Builder() .name("lightning-color") - .description("The color of the lightning.") .defaultValue(new SettingColor(102, 0, 0)) .visible(changeLightningColor::get) .build() @@ -94,7 +85,6 @@ public class Ambience extends Module { // World public final Setting customGrassColor = sgWorld.add(new BoolSetting.Builder() .name("custom-grass-color") - .description("Whether the grass color should be changed.") .defaultValue(false) .onChanged(val -> reload()) .build() @@ -102,7 +92,6 @@ public class Ambience extends Module { public final Setting grassColor = sgWorld.add(new ColorSetting.Builder() .name("grass-color") - .description("The color of the grass.") .defaultValue(new SettingColor(102, 0, 0)) .visible(customGrassColor::get) .onChanged(val -> reload()) @@ -111,7 +100,6 @@ public class Ambience extends Module { public final Setting customFoliageColor = sgWorld.add(new BoolSetting.Builder() .name("custom-foliage-color") - .description("Whether the foliage color should be changed.") .defaultValue(false) .onChanged(val -> reload()) .build() @@ -119,7 +107,6 @@ public class Ambience extends Module { public final Setting foliageColor = sgWorld.add(new ColorSetting.Builder() .name("foliage-color") - .description("The color of the foliage.") .defaultValue(new SettingColor(102, 0, 0)) .visible(customFoliageColor::get) .onChanged(val -> reload()) @@ -128,7 +115,6 @@ public class Ambience extends Module { public final Setting customWaterColor = sgWorld.add(new BoolSetting.Builder() .name("custom-water-color") - .description("Whether the water color should be changed.") .defaultValue(false) .onChanged(val -> reload()) .build() @@ -136,7 +122,6 @@ public class Ambience extends Module { public final Setting waterColor = sgWorld.add(new ColorSetting.Builder() .name("water-color") - .description("The color of the water.") .defaultValue(new SettingColor(102, 0, 0)) .visible(customWaterColor::get) .onChanged(val -> reload()) @@ -145,7 +130,6 @@ public class Ambience extends Module { public final Setting customLavaColor = sgWorld.add(new BoolSetting.Builder() .name("custom-lava-color") - .description("Whether the lava color should be changed.") .defaultValue(false) .onChanged(val -> reload()) .build() @@ -153,7 +137,6 @@ public class Ambience extends Module { public final Setting lavaColor = sgWorld.add(new ColorSetting.Builder() .name("lava-color") - .description("The color of the lava.") .defaultValue(new SettingColor(102, 0, 0)) .visible(customLavaColor::get) .onChanged(val -> reload()) @@ -162,21 +145,19 @@ public class Ambience extends Module { public final Setting customFogColor = sgWorld.add(new BoolSetting.Builder() .name("custom-fog-color") - .description("Whether the fog color should be changed.") .defaultValue(false) .build() ); public final Setting fogColor = sgWorld.add(new ColorSetting.Builder() .name("fog-color") - .description("The color of the fog.") .defaultValue(new SettingColor(102, 0, 0)) .visible(customFogColor::get) .build() ); public Ambience() { - super(Categories.World, "ambience", "Change the color of various pieces of the environment."); + super(Categories.World, "ambience"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoBreed.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoBreed.java index 98c647ecd5..082145743d 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoBreed.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoBreed.java @@ -27,7 +27,6 @@ public class AutoBreed extends Module { private final Setting>> entities = sgGeneral.add(new EntityTypeListSetting.Builder() .name("entities") - .description("Entities to breed.") .defaultValue(EntityType.HORSE, EntityType.DONKEY, EntityType.COW, EntityType.MOOSHROOM, EntityType.SHEEP, EntityType.PIG, EntityType.CHICKEN, EntityType.WOLF, EntityType.CAT, EntityType.OCELOT, EntityType.RABBIT, EntityType.LLAMA, EntityType.TURTLE, @@ -38,7 +37,6 @@ public class AutoBreed extends Module { private final Setting range = sgGeneral.add(new DoubleSetting.Builder() .name("range") - .description("How far away the animals can be to be bred.") .min(0) .defaultValue(4.5) .build() @@ -46,14 +44,12 @@ public class AutoBreed extends Module { private final Setting hand = sgGeneral.add(new EnumSetting.Builder() .name("hand-for-breeding") - .description("The hand to use for breeding.") .defaultValue(Hand.MAIN_HAND) .build() ); private final Setting mobAgeFilter = sgGeneral.add(new EnumSetting.Builder() .name("mob-age-filter") - .description("Determines the age of the mobs to target (baby, adult, or both).") .defaultValue(EntityAge.Adult) .build() ); @@ -61,7 +57,7 @@ public class AutoBreed extends Module { private final List animalsFed = new ArrayList<>(); public AutoBreed() { - super(Categories.World, "auto-breed", "Automatically breeds specified animals."); + super(Categories.World, "auto-breed"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoBrewer.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoBrewer.java index 212c4adc04..1b2d746e5f 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoBrewer.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoBrewer.java @@ -25,7 +25,6 @@ public class AutoBrewer extends Module { private final Setting potion = sgGeneral.add(new PotionSetting.Builder() .name("potion") - .description("The type of potion to brew.") .defaultValue(MyPotion.Strength) .build() ); @@ -35,7 +34,7 @@ public class AutoBrewer extends Module { private int timer; public AutoBrewer() { - super(Categories.World, "auto-brewer", "Automatically brews the specified potion."); + super(Categories.World, "auto-brewer"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoMount.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoMount.java index cad9a7ed35..4c3b3a5b17 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoMount.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoMount.java @@ -37,27 +37,24 @@ public class AutoMount extends Module { private final Setting checkSaddle = sgGeneral.add(new BoolSetting.Builder() .name("check-saddle") - .description("Checks if the entity contains a saddle before mounting.") .defaultValue(false) .build() ); private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() .name("rotate") - .description("Faces the entity you mount.") .defaultValue(true) .build() ); private final Setting>> entities = sgGeneral.add(new EntityTypeListSetting.Builder() .name("entities") - .description("Rideable entities.") .filter(EntityUtils::isRideable) .build() ); public AutoMount() { - super(Categories.World, "auto-mount", "Automatically mounts entities."); + super(Categories.World, "auto-mount"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoNametag.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoNametag.java index 5c93427b05..cb091b1024 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoNametag.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoNametag.java @@ -32,13 +32,11 @@ public class AutoNametag extends Module { private final Setting>> entities = sgGeneral.add(new EntityTypeListSetting.Builder() .name("entities") - .description("Which entities to nametag.") .build() ); private final Setting range = sgGeneral.add(new DoubleSetting.Builder() .name("range") - .description("The maximum range an entity can be to be nametagged.") .defaultValue(5) .min(0) .sliderMax(6) @@ -47,21 +45,18 @@ public class AutoNametag extends Module { private final Setting priority = sgGeneral.add(new EnumSetting.Builder() .name("priority") - .description("Priority sort") .defaultValue(SortPriority.LowestDistance) .build() ); private final Setting renametag = sgGeneral.add(new BoolSetting.Builder() .name("renametag") - .description("Allows already nametagged entities to be renamed.") .defaultValue(true) .build() ); private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() .name("rotate") - .description("Automatically faces towards the mob being nametagged.") .defaultValue(true) .build() ); @@ -72,7 +67,7 @@ public class AutoNametag extends Module { private boolean offHand; public AutoNametag() { - super(Categories.World, "auto-nametag", "Automatically uses nametags on entities without a nametag. WILL nametag ALL entities in the specified distance."); + super(Categories.World, "auto-nametag"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoShearer.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoShearer.java index 1da38889d6..2a43dd1f90 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoShearer.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoShearer.java @@ -28,7 +28,6 @@ public class AutoShearer extends Module { private final Setting distance = sgGeneral.add(new DoubleSetting.Builder() .name("distance") - .description("The maximum distance the sheep have to be to be sheared.") .min(0.0) .defaultValue(5.0) .build() @@ -36,14 +35,12 @@ public class AutoShearer extends Module { private final Setting antiBreak = sgGeneral.add(new BoolSetting.Builder() .name("anti-break") - .description("Prevents shears from being broken.") .defaultValue(false) .build() ); private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() .name("rotate") - .description("Automatically faces towards the animal being sheared.") .defaultValue(true) .build() ); @@ -52,7 +49,7 @@ public class AutoShearer extends Module { private Hand hand; public AutoShearer() { - super(Categories.World, "auto-shearer", "Automatically shears sheep."); + super(Categories.World, "auto-shearer"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoSign.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoSign.java index 6e807ac7ef..8a758715d7 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoSign.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoSign.java @@ -27,7 +27,6 @@ public class AutoSign extends Module { private final Setting delay = sgGeneral.add(new IntSetting.Builder() .name("delay") - .description("The tick delay between sign update packets.") .defaultValue(10) .range(0, 100) .sliderRange(0, 100) @@ -42,7 +41,7 @@ public class AutoSign extends Module { private int timer = 0; public AutoSign() { - super(Categories.World, "auto-sign", "Automatically writes signs. The first sign's text will be used."); + super(Categories.World, "auto-sign"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoSmelter.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoSmelter.java index 80c600eeeb..f67e9eb54f 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoSmelter.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoSmelter.java @@ -27,7 +27,6 @@ public class AutoSmelter extends Module { private final Setting> fuelItems = sgGeneral.add(new ItemListSetting.Builder() .name("fuel-items") - .description("Items to use as fuel") .defaultValue(Items.COAL, Items.CHARCOAL) .filter(this::fuelItemFilter) .bypassFilterWhenSavingAndLoading() @@ -36,7 +35,6 @@ public class AutoSmelter extends Module { private final Setting> smeltableItems = sgGeneral.add(new ItemListSetting.Builder() .name("smeltable-items") - .description("Items to smelt") .defaultValue(Items.IRON_ORE, Items.GOLD_ORE, Items.COPPER_ORE, Items.RAW_IRON, Items.RAW_COPPER, Items.RAW_GOLD) .filter(this::smeltableItemFilter) .bypassFilterWhenSavingAndLoading() @@ -45,13 +43,12 @@ public class AutoSmelter extends Module { private final Setting disableWhenOutOfItems = sgGeneral.add(new BoolSetting.Builder() .name("disable-when-out-of-items") - .description("Disable the module when you run out of items") .defaultValue(true) .build() ); public AutoSmelter() { - super(Categories.World, "auto-smelter", "Automatically smelts items from your inventory"); + super(Categories.World, "auto-smelter"); } private boolean fuelItemFilter(Item item) { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/BuildHeight.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/BuildHeight.java index d0bf0dab2a..1c998b592c 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/BuildHeight.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/BuildHeight.java @@ -15,7 +15,7 @@ public class BuildHeight extends Module { public BuildHeight() { - super(Categories.World, "build-height", "Allows you to interact with objects at the build limit."); + super(Categories.World, "build-height"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Collisions.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Collisions.java index ab424c1a0d..0532e3a3cd 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Collisions.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Collisions.java @@ -28,34 +28,30 @@ public class Collisions extends Module { public final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() .name("blocks") - .description("What blocks should be added collision box.") .filter(this::blockFilter) .build() ); private final Setting magma = sgGeneral.add(new BoolSetting.Builder() .name("magma") - .description("Prevents you from walking over magma blocks.") .defaultValue(false) .build() ); private final Setting unloadedChunks = sgGeneral.add(new BoolSetting.Builder() .name("unloaded-chunks") - .description("Stops you from going into unloaded chunks.") .defaultValue(false) .build() ); private final Setting ignoreBorder = sgGeneral.add(new BoolSetting.Builder() .name("ignore-border") - .description("Removes world border collision.") .defaultValue(false) .build() ); public Collisions() { - super(Categories.World, "collisions", "Adds collision boxes to certain blocks/areas."); + super(Categories.World, "collisions"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/EChestFarmer.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/EChestFarmer.java index f2455ea334..7ee661687a 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/EChestFarmer.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/EChestFarmer.java @@ -33,18 +33,16 @@ public class EChestFarmer extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgRender = settings.createGroup("Render"); + private final SettingGroup sgRender = settings.createGroup("render"); private final Setting selfToggle = sgGeneral.add(new BoolSetting.Builder() .name("self-toggle") - .description("Disables when you reach the desired amount of obsidian.") .defaultValue(false) .build() ); private final Setting ignoreExisting = sgGeneral.add(new BoolSetting.Builder() .name("ignore-existing") - .description("Ignores existing obsidian in your inventory and mines the total target amount.") .defaultValue(true) .visible(selfToggle::get) .build() @@ -52,7 +50,6 @@ public class EChestFarmer extends Module { private final Setting amount = sgGeneral.add(new IntSetting.Builder() .name("amount") - .description("The amount of obsidian to farm.") .defaultValue(64) .sliderMax(128) .range(8, 512) @@ -65,35 +62,30 @@ public class EChestFarmer extends Module { private final Setting swingHand = sgRender.add(new BoolSetting.Builder() .name("swing-hand") - .description("Swing hand client-side.") .defaultValue(true) .build() ); private final Setting render = sgRender.add(new BoolSetting.Builder() .name("render") - .description("Renders a block overlay where the obsidian will be placed.") .defaultValue(true) .build() ); private final Setting shapeMode = sgRender.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .build() ); private final Setting sideColor = sgRender.add(new ColorSetting.Builder() .name("side-color") - .description("The color of the sides of the blocks being rendered.") .defaultValue(new SettingColor(204, 0, 0, 50)) .build() ); private final Setting lineColor = sgRender.add(new ColorSetting.Builder() .name("line-color") - .description("The color of the lines of the blocks being rendered.") .defaultValue(new SettingColor(204, 0, 0, 255)) .build() ); @@ -104,7 +96,7 @@ public class EChestFarmer extends Module { private int startCount; public EChestFarmer() { - super(Categories.World, "echest-farmer", "Places and breaks EChests to farm obsidian."); + super(Categories.World, "echest-farmer"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/EndermanLook.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/EndermanLook.java index aed2241daf..beec980d28 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/EndermanLook.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/EndermanLook.java @@ -27,21 +27,19 @@ public class EndermanLook extends Module { private final Setting lookMode = sgGeneral.add(new EnumSetting.Builder() .name("look-mode") - .description("How this module behaves.") .defaultValue(Mode.Away) .build() ); private final Setting stun = sgGeneral.add(new BoolSetting.Builder() .name("stun-hostiles") - .description("Automatically stares at hostile endermen to stun them in place.") .defaultValue(true) .visible(() -> lookMode.get() == Mode.Away) .build() ); public EndermanLook() { - super(Categories.World, "enderman-look", "Either looks at all Endermen or prevents you from looking at Endermen."); + super(Categories.World, "enderman-look"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Excavator.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Excavator.java index 03be24476b..f359176d50 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Excavator.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Excavator.java @@ -25,12 +25,11 @@ public class Excavator extends Module { private final IBaritone baritone = BaritoneAPI.getProvider().getPrimaryBaritone(); private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgRendering = settings.createGroup("Rendering"); + private final SettingGroup sgRendering = settings.createGroup("rendering"); // Keybindings private final Setting selectionBind = sgGeneral.add(new KeybindSetting.Builder() .name("selection-bind") - .description("Bind to draw selection.") .defaultValue(Keybind.fromButton(GLFW.GLFW_MOUSE_BUTTON_RIGHT)) .build() ); @@ -38,14 +37,12 @@ public class Excavator extends Module { // Logging private final Setting logSelection = sgGeneral.add(new BoolSetting.Builder() .name("log-selection") - .description("Logs the selection coordinates to the chat.") .defaultValue(true) .build() ); private final Setting keepActive = sgGeneral.add(new BoolSetting.Builder() .name("keep-active") - .description("Keep the module active after finishing the excavation.") .defaultValue(false) .build() ); @@ -53,21 +50,18 @@ public class Excavator extends Module { // Rendering private final Setting shapeMode = sgRendering.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .build() ); private final Setting sideColor = sgRendering.add(new ColorSetting.Builder() .name("side-color") - .description("The side color.") .defaultValue(new SettingColor(255, 255, 255, 50)) .build() ); private final Setting lineColor = sgRendering.add(new ColorSetting.Builder() .name("line-color") - .description("The line color.") .defaultValue(new SettingColor(255, 255, 255, 255)) .build() ); @@ -82,7 +76,7 @@ private enum Status { private BetterBlockPos start, end; public Excavator() { - super(Categories.World, "excavator", "Excavate a selection area."); + super(Categories.World, "excavator"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Flamethrower.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Flamethrower.java index 4b4c2719a3..d831c896df 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Flamethrower.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Flamethrower.java @@ -33,7 +33,6 @@ public class Flamethrower extends Module { private final Setting distance = sgGeneral.add(new DoubleSetting.Builder() .name("distance") - .description("The maximum distance the animal has to be to be roasted.") .min(0.0) .defaultValue(5.0) .build() @@ -41,21 +40,18 @@ public class Flamethrower extends Module { private final Setting antiBreak = sgGeneral.add(new BoolSetting.Builder() .name("anti-break") - .description("Prevents flint and steel from being broken.") .defaultValue(false) .build() ); private final Setting putOutFire = sgGeneral.add(new BoolSetting.Builder() .name("put-out-fire") - .description("Tries to put out the fire when animal is low health, so the items don't burn.") .defaultValue(true) .build() ); private final Setting targetBabies = sgGeneral.add(new BoolSetting.Builder() .name("target-babies") - .description("If checked babies will also be killed.") .defaultValue(false) .build() ); @@ -68,14 +64,12 @@ public class Flamethrower extends Module { private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() .name("rotate") - .description("Automatically faces towards the animal roasted.") .defaultValue(true) .build() ); private final Setting>> entities = sgGeneral.add(new EntityTypeListSetting.Builder() .name("entities") - .description("Entities to cook.") .defaultValue( EntityType.PIG, EntityType.COW, @@ -91,7 +85,7 @@ public class Flamethrower extends Module { private Hand hand; public Flamethrower() { - super(Categories.World, "flamethrower", "Ignites every alive piece of food."); + super(Categories.World, "flamethrower"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/HighwayBuilder.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/HighwayBuilder.java index 9a82372443..fcf11bc3d1 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/HighwayBuilder.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/HighwayBuilder.java @@ -108,17 +108,16 @@ public enum BlockadeType { } private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgDigging = settings.createGroup("Digging"); - private final SettingGroup sgPaving = settings.createGroup("Paving"); - private final SettingGroup sgInventory = settings.createGroup("Inventory"); - private final SettingGroup sgRenderDigging = settings.createGroup("Render Digging"); - private final SettingGroup sgRenderPaving = settings.createGroup("Render Paving"); + private final SettingGroup sgDigging = settings.createGroup("digging"); + private final SettingGroup sgPaving = settings.createGroup("paving"); + private final SettingGroup sgInventory = settings.createGroup("inventory"); + private final SettingGroup sgRenderDigging = settings.createGroup("render-digging"); + private final SettingGroup sgRenderPaving = settings.createGroup("render-paving"); // General private final Setting width = sgGeneral.add(new IntSetting.Builder() .name("width") - .description("Width of the highway.") .defaultValue(4) .range(1, 5) .sliderRange(1, 5) @@ -127,7 +126,6 @@ public enum BlockadeType { private final Setting height = sgGeneral.add(new IntSetting.Builder() .name("height") - .description("Height of the highway.") .defaultValue(3) .range(2, 5) .sliderRange(2, 5) @@ -136,21 +134,18 @@ public enum BlockadeType { private final Setting floor = sgGeneral.add(new EnumSetting.Builder() .name("floor") - .description("What floor placement mode to use.") .defaultValue(Floor.Replace) .build() ); private final Setting railings = sgGeneral.add(new BoolSetting.Builder() .name("railings") - .description("Builds railings next to the highway.") .defaultValue(true) .build() ); private final Setting cornerBlock = sgGeneral.add(new BoolSetting.Builder() .name("corner-support-block") - .description("Places a support block underneath the railings, to prevent air placing.") .defaultValue(true) .visible(railings::get) .build() @@ -158,35 +153,30 @@ public enum BlockadeType { private final Setting mineAboveRailings = sgGeneral.add(new BoolSetting.Builder() .name("mine-above-railings") - .description("Mines blocks above railings.") .defaultValue(true) .build() ); private final Setting rotation = sgGeneral.add(new EnumSetting.Builder() .name("rotation") - .description("Mode of rotation.") .defaultValue(Rotation.Both) .build() ); private final Setting disconnectOnToggle = sgGeneral.add(new BoolSetting.Builder() .name("disconnect-on-toggle") - .description("Automatically disconnects when the module is turned off, for example for not having enough blocks.") .defaultValue(false) .build() ); private final Setting pauseOnLag = sgGeneral.add(new BoolSetting.Builder() .name("pause-on-lag") - .description("Pauses the current process while the server stops responding.") .defaultValue(true) .build() ); private final Setting destroyCrystalTraps = sgGeneral.add(new BoolSetting.Builder() .name("destroy-crystal-traps") - .description("Use a bow to defuse crystal traps safely from a distance. An infinity bow is recommended.") .defaultValue(true) .build() ); @@ -195,14 +185,12 @@ public enum BlockadeType { private final Setting doubleMine = sgDigging.add(new BoolSetting.Builder() .name("double-mine") - .description("Whether to double mine blocks when applicable (normal mine and packet mine simultaneously).") .defaultValue(true) .build() ); private final Setting fastBreak = sgDigging.add(new BoolSetting.Builder() .name("fast-break") - .description("Whether to finish breaking blocks faster than normal while double mining.") .defaultValue(true) .visible(doubleMine::get) .build() @@ -210,14 +198,12 @@ public enum BlockadeType { private final Setting dontBreakTools = sgDigging.add(new BoolSetting.Builder() .name("dont-break-tools") - .description("Don't break tools.") .defaultValue(false) .build() ); private final Setting breakDurability = sgDigging.add(new IntSetting.Builder() .name("durability-percentage") - .description("The durability percentage at which to stop using a tool.") .defaultValue(2) .range(1, 100) .sliderRange(1, 100) @@ -227,7 +213,6 @@ public enum BlockadeType { private final Setting savePickaxes = sgDigging.add(new IntSetting.Builder() .name("save-pickaxes") - .description("How many pickaxes to ensure are saved. Hitting this number in your inventory will trigger a restock or the module toggling off.") .defaultValue(1) .range(0, 36) .sliderRange(0, 36) @@ -237,7 +222,6 @@ public enum BlockadeType { private final Setting breakDelay = sgDigging.add(new IntSetting.Builder() .name("break-delay") - .description("The delay between breaking blocks.") .defaultValue(0) .min(0) .build() @@ -245,7 +229,6 @@ public enum BlockadeType { private final Setting blocksPerTick = sgDigging.add(new IntSetting.Builder() .name("blocks-per-tick") - .description("The maximum amount of blocks that can be mined in a tick. Only applies to blocks instantly breakable.") .defaultValue(1) .range(1, 100) .sliderRange(1, 25) @@ -256,7 +239,6 @@ public enum BlockadeType { public final Setting> blocksToPlace = sgPaving.add(new BlockListSetting.Builder() .name("blocks-to-place") - .description("Blocks it is allowed to place.") .defaultValue(Blocks.OBSIDIAN) .filter(block -> Block.isShapeFullCube(block.getDefaultState().getCollisionShape(EmptyBlockView.INSTANCE, BlockPos.ORIGIN))) .build() @@ -264,7 +246,6 @@ public enum BlockadeType { private final Setting placeRange = sgPaving.add(new DoubleSetting.Builder() .name("place-range") - .description("The maximum distance at which you can place blocks.") .defaultValue(4.5) .sliderMax(5.5) .build() @@ -272,7 +253,6 @@ public enum BlockadeType { private final Setting placeDelay = sgPaving.add(new IntSetting.Builder() .name("place-delay") - .description("The delay between placing blocks.") .defaultValue(0) .min(0) .build() @@ -280,7 +260,6 @@ public enum BlockadeType { private final Setting placementsPerTick = sgPaving.add(new IntSetting.Builder() .name("placements-per-tick") - .description("The maximum amount of blocks that can be placed in a tick.") .defaultValue(1) .min(1) .build() @@ -290,7 +269,6 @@ public enum BlockadeType { private final Setting> trashItems = sgInventory.add(new ItemListSetting.Builder() .name("trash-items") - .description("Items that are considered trash and can be thrown out.") .defaultValue( Items.NETHERRACK, Items.QUARTZ, Items.GOLD_NUGGET, Items.GOLDEN_SWORD, Items.GLOWSTONE_DUST, Items.GLOWSTONE, Items.BLACKSTONE, Items.BASALT, Items.GHAST_TEAR, Items.SOUL_SAND, Items.SOUL_SOIL, @@ -301,7 +279,6 @@ public enum BlockadeType { private final Setting inventoryDelay = sgInventory.add(new IntSetting.Builder() .name("inventory-delay") - .description("Delay in ticks on inventory interactions.") .defaultValue(3) .min(0) .build() @@ -309,28 +286,24 @@ public enum BlockadeType { private final Setting ejectUselessShulkers = sgInventory.add(new BoolSetting.Builder() .name("eject-useless-shulkers") - .description("Whether you should eject useless shulkers. Warning - will throw out any shulkers that don't contain blocks to place, pickaxes, or food. Be careful with your kits.") .defaultValue(true) .build() ); private final Setting searchEnderChest = sgInventory.add(new BoolSetting.Builder() .name("search-ender-chest") - .description("Searches your ender chest to find items to use. Be careful with this one, especially if you let it search through shulkers.") .defaultValue(false) .build() ); private final Setting searchShulkers = sgInventory.add(new BoolSetting.Builder() .name("search-shulkers") - .description("Searches through shulkers to find items to use.") .defaultValue(true) .build() ); private final Setting minEmpty = sgInventory.add(new IntSetting.Builder() .name("minimum-empty-slots") - .description("The minimum amount of empty slots you want left after mining obsidian.") .defaultValue(3) .sliderRange(0, 9) .min(0) @@ -339,14 +312,12 @@ public enum BlockadeType { private final Setting mineEnderChests = sgInventory.add(new BoolSetting.Builder() .name("mine-ender-chests") - .description("Mines ender chests for obsidian.") .defaultValue(true) .build() ); private final Setting blockadeType = sgInventory.add(new EnumSetting.Builder() .name("echest-blockade-type") - .description("What blockade type to use (the structure placed when mining echests).") .defaultValue(BlockadeType.Full) .visible(mineEnderChests::get) .build() @@ -354,7 +325,6 @@ public enum BlockadeType { public final Setting saveEchests = sgInventory.add(new IntSetting.Builder() .name("save-ender-chests") - .description("How many ender chests to ensure are saved. Hitting this number in your inventory will trigger a restock or the module toggling off.") .defaultValue(2) .range(0, 64) .sliderRange(0, 64) @@ -364,7 +334,6 @@ public enum BlockadeType { private final Setting rebreakEchests = sgInventory.add(new BoolSetting.Builder() .name("instantly-rebreak-echests") - .description("Whether or not to use the instant rebreak exploit to break echests.") .defaultValue(false) .visible(mineEnderChests::get) .build() @@ -372,7 +341,6 @@ public enum BlockadeType { private final Setting rebreakTimer = sgInventory.add(new IntSetting.Builder() .name("rebreak-delay") - .description("Delay between rebreak attempts.") .defaultValue(0) .sliderMax(20) .visible(() -> mineEnderChests.get() && rebreakEchests.get()) @@ -383,28 +351,24 @@ public enum BlockadeType { private final Setting renderMine = sgRenderDigging.add(new BoolSetting.Builder() .name("render-blocks-to-mine") - .description("Render blocks to be mined.") .defaultValue(true) .build() ); private final Setting renderMineShape = sgRenderDigging.add(new EnumSetting.Builder() .name("blocks-to-mine-shape-mode") - .description("How the blocks to be mined are rendered.") .defaultValue(ShapeMode.Both) .build() ); private final Setting renderMineSideColor = sgRenderDigging.add(new ColorSetting.Builder() .name("blocks-to-mine-side-color") - .description("Color of blocks to be mined.") .defaultValue(new SettingColor(225, 25, 25, 25)) .build() ); private final Setting renderMineLineColor = sgRenderDigging.add(new ColorSetting.Builder() .name("blocks-to-mine-line-color") - .description("Color of blocks to be mined.") .defaultValue(new SettingColor(225, 25, 25)) .build() ); @@ -413,28 +377,24 @@ public enum BlockadeType { private final Setting renderPlace = sgRenderPaving.add(new BoolSetting.Builder() .name("render-blocks-to-place") - .description("Render blocks to be placed.") .defaultValue(true) .build() ); private final Setting renderPlaceShape = sgRenderPaving.add(new EnumSetting.Builder() .name("blocks-to-place-shape-mode") - .description("How the blocks to be placed are rendered.") .defaultValue(ShapeMode.Both) .build() ); private final Setting renderPlaceSideColor = sgRenderPaving.add(new ColorSetting.Builder() .name("blocks-to-place-side-color") - .description("Color of blocks to be placed.") .defaultValue(new SettingColor(25, 25, 225, 25)) .build() ); private final Setting renderPlaceLineColor = sgRenderPaving.add(new ColorSetting.Builder() .name("blocks-to-place-line-color") - .description("Color of blocks to be placed.") .defaultValue(new SettingColor(25, 25, 225)) .build() ); @@ -462,7 +422,7 @@ public enum BlockadeType { private final MBlockPos posRender3 = new MBlockPos(); public HighwayBuilder() { - super(Categories.World, "highway-builder", "Automatically builds highways."); + super(Categories.World, "highway-builder"); runInMainMenu = true; } @@ -712,7 +672,7 @@ private boolean canPlace(MBlockPos pos, boolean liquids) { } private void disconnect(String message, Object... args) { - MutableText text = Text.literal(String.format("%s[%s%s%s] %s", Formatting.GRAY, Formatting.BLUE, title, Formatting.GRAY, Formatting.RED) + String.format(message, args)).append("\n"); + MutableText text = Text.literal(String.format("%s[%s%s%s] %s", Formatting.GRAY, Formatting.BLUE, this.getTitle(), Formatting.GRAY, Formatting.RED) + String.format(message, args)).append("\n"); text.append(getStatsText()); mc.getNetworkHandler().getConnection().disconnect(text); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/InfinityMiner.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/InfinityMiner.java index 18c85701c6..f30ada1fc7 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/InfinityMiner.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/InfinityMiner.java @@ -36,13 +36,12 @@ public class InfinityMiner extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgWhenFull = settings.createGroup("When Full"); + private final SettingGroup sgWhenFull = settings.createGroup("when-full"); // General public final Setting> targetBlocks = sgGeneral.add(new BlockListSetting.Builder() .name("target-blocks") - .description("The target blocks to mine.") .defaultValue(Blocks.DIAMOND_ORE, Blocks.DEEPSLATE_DIAMOND_ORE) .filter(this::filterBlocks) .build() @@ -50,14 +49,12 @@ public class InfinityMiner extends Module { public final Setting> targetItems = sgGeneral.add(new ItemListSetting.Builder() .name("target-items") - .description("The target items to collect.") .defaultValue(Items.DIAMOND) .build() ); public final Setting> repairBlocks = sgGeneral.add(new BlockListSetting.Builder() .name("repair-blocks") - .description("The repair blocks to mine.") .defaultValue(Blocks.COAL_ORE, Blocks.REDSTONE_ORE, Blocks.NETHER_QUARTZ_ORE) .filter(this::filterBlocks) .build() @@ -65,7 +62,6 @@ public class InfinityMiner extends Module { public final Setting startRepairing = sgGeneral.add(new DoubleSetting.Builder() .name("repair-threshold") - .description("The durability percentage at which to start repairing.") .defaultValue(20) .range(1, 99) .sliderRange(1, 99) @@ -74,7 +70,6 @@ public class InfinityMiner extends Module { public final Setting startMining = sgGeneral.add(new DoubleSetting.Builder() .name("mine-threshold") - .description("The durability percentage at which to start mining.") .defaultValue(70) .range(1, 99) .sliderRange(1, 99) @@ -85,14 +80,12 @@ public class InfinityMiner extends Module { public final Setting walkHome = sgWhenFull.add(new BoolSetting.Builder() .name("walk-home") - .description("Will walk 'home' when your inventory is full.") .defaultValue(false) .build() ); public final Setting logOut = sgWhenFull.add(new BoolSetting.Builder() .name("log-out") - .description("Logs out when your inventory is full. Will walk home FIRST if walk home is enabled.") .defaultValue(false) .build() ); @@ -106,7 +99,7 @@ public class InfinityMiner extends Module { private boolean repairing; public InfinityMiner() { - super(Categories.World, "infinity-miner", "Allows you to essentially mine forever by mining repair blocks when the durability gets low. Needs a mending pickaxe."); + super(Categories.World, "infinity-miner"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/LiquidFiller.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/LiquidFiller.java index cd3b248e9e..d73e95d0b2 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/LiquidFiller.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/LiquidFiller.java @@ -31,25 +31,22 @@ public class LiquidFiller extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgWhitelist = settings.createGroup("Whitelist"); + private final SettingGroup sgWhitelist = settings.createGroup("whitelist"); private final Setting placeInLiquids = sgGeneral.add(new EnumSetting.Builder() .name("place-in") - .description("What type of liquids to place in.") .defaultValue(PlaceIn.Both) .build() ); private final Setting shape = sgGeneral.add(new EnumSetting.Builder() .name("shape") - .description("The shape of placing algorithm.") .defaultValue(Shape.Sphere) .build() ); private final Setting placeRange = sgGeneral.add(new DoubleSetting.Builder() .name("place-range") - .description("The range at which blocks can be placed.") .defaultValue(4.5) .min(0) .sliderMax(6) @@ -58,7 +55,6 @@ public class LiquidFiller extends Module { private final Setting placeWallsRange = sgGeneral.add(new DoubleSetting.Builder() .name("walls-range") - .description("Range in which to place when behind blocks.") .defaultValue(4.5) .min(0) .sliderMax(6) @@ -67,7 +63,6 @@ public class LiquidFiller extends Module { private final Setting delay = sgGeneral.add(new IntSetting.Builder() .name("delay") - .description("Delay between actions in ticks.") .defaultValue(0) .min(0) .build() @@ -75,7 +70,6 @@ public class LiquidFiller extends Module { private final Setting maxBlocksPerTick = sgGeneral.add(new IntSetting.Builder() .name("max-blocks-per-tick") - .description("Maximum blocks to try to place per tick.") .defaultValue(1) .min(1) .sliderRange(1, 10) @@ -84,14 +78,12 @@ public class LiquidFiller extends Module { private final Setting sortMode = sgGeneral.add(new EnumSetting.Builder() .name("sort-mode") - .description("The blocks you want to place first.") .defaultValue(SortMode.Furthest) .build() ); private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() .name("rotate") - .description("Automatically rotates towards the space targeted for filling.") .defaultValue(true) .build() ); @@ -100,14 +92,12 @@ public class LiquidFiller extends Module { private final Setting listMode = sgWhitelist.add(new EnumSetting.Builder() .name("list-mode") - .description("Selection mode.") .defaultValue(ListMode.Whitelist) .build() ); private final Setting> whitelist = sgWhitelist.add(new BlockListSetting.Builder() .name("whitelist") - .description("The allowed blocks that it will use to fill up the liquid.") .defaultValue( Blocks.DIRT, Blocks.COBBLESTONE, @@ -123,7 +113,6 @@ public class LiquidFiller extends Module { private final Setting> blacklist = sgWhitelist.add(new BlockListSetting.Builder() .name("blacklist") - .description("The denied blocks that it not will use to fill up the liquid.") .visible(() -> listMode.get() == ListMode.Blacklist) .build() ); @@ -133,7 +122,7 @@ public class LiquidFiller extends Module { private int timer; public LiquidFiller(){ - super(Categories.World, "liquid-filler", "Places blocks inside of liquid source blocks within range of you."); + super(Categories.World, "liquid-filler"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/MountBypass.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/MountBypass.java index f4b33af72b..1127d495e8 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/MountBypass.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/MountBypass.java @@ -17,7 +17,7 @@ public class MountBypass extends Module { private boolean dontCancel; public MountBypass() { - super(Categories.World, "mount-bypass", "Allows you to bypass the IllegalStacks plugin and put chests on entities."); + super(Categories.World, "mount-bypass"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/NoGhostBlocks.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/NoGhostBlocks.java index e05462d3ae..caa3b50607 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/NoGhostBlocks.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/NoGhostBlocks.java @@ -20,20 +20,18 @@ public class NoGhostBlocks extends Module { private final Setting breaking = sgGeneral.add(new BoolSetting.Builder() .name("breaking") - .description("Whether to apply for block breaking actions.") .defaultValue(true) .build() ); public final Setting placing = sgGeneral.add(new BoolSetting.Builder() .name("placing") - .description("Whether to apply for block placement actions.") .defaultValue(true) .build() ); public NoGhostBlocks() { - super(Categories.World, "no-ghost-blocks", "Attempts to prevent ghost blocks arising."); + super(Categories.World, "no-ghost-blocks"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Nuker.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Nuker.java index a644676956..481517600a 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Nuker.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Nuker.java @@ -46,28 +46,25 @@ public class Nuker extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgWhitelist = settings.createGroup("Whitelist"); - private final SettingGroup sgRender = settings.createGroup("Render"); + private final SettingGroup sgWhitelist = settings.createGroup("whitelist"); + private final SettingGroup sgRender = settings.createGroup("render"); // General private final Setting shape = sgGeneral.add(new EnumSetting.Builder() .name("shape") - .description("The shape of nuking algorithm.") .defaultValue(Shape.Sphere) .build() ); private final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("The way the blocks are broken.") .defaultValue(Mode.Flatten) .build() ); private final Setting range = sgGeneral.add(new DoubleSetting.Builder() .name("range") - .description("The break range.") .defaultValue(4) .min(0) .visible(() -> shape.get() != Shape.Cube) @@ -76,7 +73,6 @@ public class Nuker extends Module { private final Setting range_up = sgGeneral.add(new IntSetting.Builder() .name("up") - .description("The break range.") .defaultValue(1) .min(0) .visible(() -> shape.get() == Shape.Cube) @@ -85,7 +81,6 @@ public class Nuker extends Module { private final Setting range_down = sgGeneral.add(new IntSetting.Builder() .name("down") - .description("The break range.") .defaultValue(1) .min(0) .visible(() -> shape.get() == Shape.Cube) @@ -94,7 +89,6 @@ public class Nuker extends Module { private final Setting range_left = sgGeneral.add(new IntSetting.Builder() .name("left") - .description("The break range.") .defaultValue(1) .min(0) .visible(() -> shape.get() == Shape.Cube) @@ -103,7 +97,6 @@ public class Nuker extends Module { private final Setting range_right = sgGeneral.add(new IntSetting.Builder() .name("right") - .description("The break range.") .defaultValue(1) .min(0) .visible(() -> shape.get() == Shape.Cube) @@ -112,7 +105,6 @@ public class Nuker extends Module { private final Setting range_forward = sgGeneral.add(new IntSetting.Builder() .name("forward") - .description("The break range.") .defaultValue(1) .min(0) .visible(() -> shape.get() == Shape.Cube) @@ -121,7 +113,6 @@ public class Nuker extends Module { private final Setting range_back = sgGeneral.add(new IntSetting.Builder() .name("back") - .description("The break range.") .defaultValue(1) .min(0) .visible(() -> shape.get() == Shape.Cube) @@ -130,7 +121,6 @@ public class Nuker extends Module { private final Setting wallsRange = sgGeneral.add(new DoubleSetting.Builder() .name("walls-range") - .description("Range in which to break when behind blocks.") .defaultValue(4.0) .min(0) .sliderMax(6) @@ -139,14 +129,12 @@ public class Nuker extends Module { private final Setting delay = sgGeneral.add(new IntSetting.Builder() .name("delay") - .description("Delay in ticks between breaking blocks.") .defaultValue(0) .build() ); private final Setting maxBlocksPerTick = sgGeneral.add(new IntSetting.Builder() .name("max-blocks-per-tick") - .description("Maximum blocks to try to break per tick. Useful when insta mining.") .defaultValue(1) .min(1) .build() @@ -154,35 +142,30 @@ public class Nuker extends Module { private final Setting sortMode = sgGeneral.add(new EnumSetting.Builder() .name("sort-mode") - .description("The blocks you want to mine first.") .defaultValue(SortMode.Closest) .build() ); private final Setting packetMine = sgGeneral.add(new BoolSetting.Builder() .name("packet-mine") - .description("Attempt to instamine everything at once.") .defaultValue(false) .build() ); private final Setting suitableTools = sgGeneral.add(new BoolSetting.Builder() .name("only-suitable-tools") - .description("Only mines when using an appropriate for the block.") .defaultValue(false) .build() ); private final Setting interact = sgGeneral.add(new BoolSetting.Builder() .name("interact") - .description("Interacts with the block instead of mining.") .defaultValue(false) .build() ); private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() .name("rotate") - .description("Rotates server-side to the block being mined.") .defaultValue(true) .build() ); @@ -191,28 +174,24 @@ public class Nuker extends Module { private final Setting listMode = sgWhitelist.add(new EnumSetting.Builder() .name("list-mode") - .description("Selection mode.") .defaultValue(ListMode.Blacklist) .build() ); private final Setting> blacklist = sgWhitelist.add(new BlockListSetting.Builder() .name("blacklist") - .description("The blocks you don't want to mine.") .visible(() -> listMode.get() == ListMode.Blacklist) .build() ); private final Setting> whitelist = sgWhitelist.add(new BlockListSetting.Builder() .name("whitelist") - .description("The blocks you want to mine.") .visible(() -> listMode.get() == ListMode.Whitelist) .build() ); private final Setting selectBlockBind = sgWhitelist.add(new KeybindSetting.Builder() .name("select-block-bind") - .description("Adds targeted block to list when this button is pressed.") .defaultValue(Keybind.none()) .build() ); @@ -221,65 +200,56 @@ public class Nuker extends Module { private final Setting swing = sgRender.add(new BoolSetting.Builder() .name("swing") - .description("Whether to swing hand client-side.") .defaultValue(true) .build() ); private final Setting enableRenderBounding = sgRender.add(new BoolSetting.Builder() .name("bounding-box") - .description("Enable rendering bounding box for Cube and Uniform Cube.") .defaultValue(true) .build() ); private final Setting shapeModeBox = sgRender.add(new EnumSetting.Builder() .name("nuke-box-mode") - .description("How the shape for the bounding box is rendered.") .defaultValue(ShapeMode.Both) .build() ); private final Setting sideColorBox = sgRender.add(new ColorSetting.Builder() .name("side-color") - .description("The side color of the bounding box.") .defaultValue(new SettingColor(16,106,144, 100)) .build() ); private final Setting lineColorBox = sgRender.add(new ColorSetting.Builder() .name("line-color") - .description("The line color of the bounding box.") .defaultValue(new SettingColor(16,106,144, 255)) .build() ); private final Setting enableRenderBreaking = sgRender.add(new BoolSetting.Builder() .name("broken-blocks") - .description("Enable rendering bounding box for Cube and Uniform Cube.") .defaultValue(true) .build() ); private final Setting shapeModeBreak = sgRender.add(new EnumSetting.Builder() .name("nuke-block-mode") - .description("How the shapes for broken blocks are rendered.") .defaultValue(ShapeMode.Both) .visible(enableRenderBreaking::get) .build() ); private final Setting sideColor = sgRender.add(new ColorSetting.Builder() - .name("side-color") - .description("The side color of the target block rendering.") + .name("breaking-side-color") .defaultValue(new SettingColor(255, 0, 0, 80)) .visible(enableRenderBreaking::get) .build() ); private final Setting lineColor = sgRender.add(new ColorSetting.Builder() - .name("line-color") - .description("The line color of the target block rendering.") + .name("breaking-line-color") .defaultValue(new SettingColor(255, 0, 0, 255)) .visible(enableRenderBreaking::get) .build() @@ -300,7 +270,7 @@ public class Nuker extends Module { int maxv = 0; public Nuker() { - super(Categories.World, "nuker", "Breaks blocks around you."); + super(Categories.World, "nuker"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/PacketMine.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/PacketMine.java index d2fd88d8da..a3209d11db 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/PacketMine.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/PacketMine.java @@ -35,13 +35,12 @@ public class PacketMine extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgRender = settings.createGroup("Render"); + private final SettingGroup sgRender = settings.createGroup("render"); // General private final Setting delay = sgGeneral.add(new IntSetting.Builder() .name("delay") - .description("Delay between mining blocks in ticks.") .defaultValue(1) .min(0) .build() @@ -49,21 +48,18 @@ public class PacketMine extends Module { private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() .name("rotate") - .description("Sends rotation packets to the server when mining.") .defaultValue(true) .build() ); private final Setting autoSwitch = sgGeneral.add(new BoolSetting.Builder() .name("auto-switch") - .description("Automatically switches to the best tool when the block is ready to be mined instantly.") .defaultValue(false) .build() ); private final Setting notOnUse = sgGeneral.add(new BoolSetting.Builder() .name("not-on-use") - .description("Won't auto switch if you're using an item.") .defaultValue(true) .visible(autoSwitch::get) .build() @@ -71,7 +67,6 @@ public class PacketMine extends Module { private final Setting obscureBreakingProgress = sgGeneral.add(new BoolSetting.Builder() .name("obscure-breaking-progress") - .description("Spams abort breaking packets to obscure the block mining progress from other players. Does not hide it perfectly.") .defaultValue(false) .build() ); @@ -80,42 +75,36 @@ public class PacketMine extends Module { private final Setting render = sgRender.add(new BoolSetting.Builder() .name("render") - .description("Whether or not to render the block being mined.") .defaultValue(true) .build() ); private final Setting shapeMode = sgRender.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .build() ); private final Setting readySideColor = sgRender.add(new ColorSetting.Builder() .name("ready-side-color") - .description("The color of the sides of the blocks that can be broken.") .defaultValue(new SettingColor(0, 204, 0, 10)) .build() ); private final Setting readyLineColor = sgRender.add(new ColorSetting.Builder() .name("ready-line-color") - .description("The color of the lines of the blocks that can be broken.") .defaultValue(new SettingColor(0, 204, 0, 255)) .build() ); private final Setting sideColor = sgRender.add(new ColorSetting.Builder() .name("side-color") - .description("The color of the sides of the blocks being rendered.") .defaultValue(new SettingColor(204, 0, 0, 10)) .build() ); private final Setting lineColor = sgRender.add(new ColorSetting.Builder() .name("line-color") - .description("The color of the lines of the blocks being rendered.") .defaultValue(new SettingColor(204, 0, 0, 255)) .build() ); @@ -126,7 +115,7 @@ public class PacketMine extends Module { private boolean swapped, shouldUpdateSlot; public PacketMine() { - super(Categories.World, "packet-mine", "Sends packets to mine blocks without the mining animation."); + super(Categories.World, "packet-mine"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/SpawnProofer.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/SpawnProofer.java index b1c7856378..28387d3847 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/SpawnProofer.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/SpawnProofer.java @@ -31,7 +31,6 @@ public class SpawnProofer extends Module { private final Setting placeDelay = sgGeneral.add(new IntSetting.Builder() .name("place-delay") - .description("The tick delay between placing blocks.") .defaultValue(1) .range(0, 10) .build() @@ -39,7 +38,6 @@ public class SpawnProofer extends Module { private final Setting placeRange = sgGeneral.add(new DoubleSetting.Builder() .name("place-range") - .description("How far away from the player you can place a block.") .defaultValue(4.5) .min(0) .sliderMax(6) @@ -48,7 +46,6 @@ public class SpawnProofer extends Module { private final Setting wallsRange = sgGeneral.add(new DoubleSetting.Builder() .name("walls-range") - .description("How far away from the player you can place a block behind walls.") .defaultValue(4.5) .min(0) .sliderMax(6) @@ -57,7 +54,6 @@ public class SpawnProofer extends Module { private final Setting blocksPerTick = sgGeneral.add(new IntSetting.Builder() .name("blocks-per-tick") - .description("How many blocks to place in one tick.") .defaultValue(1) .min(1) .build() @@ -65,7 +61,6 @@ public class SpawnProofer extends Module { private final Setting lightLevel = sgGeneral.add(new IntSetting.Builder() .name("light-level") - .description("Light levels to spawn proof. Old spawning light: 7.") .defaultValue(0) .min(0) .sliderMax(15) @@ -74,7 +69,6 @@ public class SpawnProofer extends Module { private final Setting> blocks = sgGeneral.add(new BlockListSetting.Builder() .name("blocks") - .description("Block to use for spawn proofing.") .defaultValue(Blocks.TORCH, Blocks.STONE_BUTTON, Blocks.STONE_SLAB) .filter(this::filterBlocks) .build() @@ -82,14 +76,12 @@ public class SpawnProofer extends Module { private final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("Which spawn types should be spawn proofed.") .defaultValue(Mode.Both) .build() ); private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() .name("rotate") - .description("Rotates towards the blocks being placed.") .defaultValue(true) .build() ); @@ -99,7 +91,7 @@ public class SpawnProofer extends Module { private int timer; public SpawnProofer() { - super(Categories.World, "spawn-proofer", "Automatically spawnproofs unlit areas."); + super(Categories.World, "spawn-proofer"); } @EventHandler diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/StashFinder.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/StashFinder.java index cd25bf95d5..3bc9693430 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/StashFinder.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/StashFinder.java @@ -51,7 +51,7 @@ public class StashFinder extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgRender = settings.createGroup("Render"); + private final SettingGroup sgRender = settings.createGroup("render"); private static final List DEFAULT_SUPPORT_BLOCK_BLACKLIST = List.of( Blocks.OXIDIZED_COPPER, @@ -66,14 +66,12 @@ public class StashFinder extends Module { private final Setting>> storageBlocks = sgGeneral.add(new StorageBlockListSetting.Builder() .name("storage-blocks") - .description("Select the storage blocks to search for.") .defaultValue(StorageBlockListSetting.STORAGE_BLOCKS) .build() ); private final Setting minimumStorageCount = sgGeneral.add(new IntSetting.Builder() .name("minimum-storage-count") - .description("The minimum amount of storage blocks in a chunk to record the chunk.") .defaultValue(4) .min(1) .sliderMin(1) @@ -82,14 +80,12 @@ public class StashFinder extends Module { private final Setting> blacklistedBlocks = sgGeneral.add(new BlockListSetting.Builder() .name("blacklisted-support-blocks") - .description("Blocks that prevent counting a storage block entity when it sits on them.") .defaultValue(DEFAULT_SUPPORT_BLOCK_BLACKLIST) .build() ); private final Setting minimumDistance = sgGeneral.add(new IntSetting.Builder() .name("minimum-distance") - .description("The minimum distance you must be from spawn to record a certain chunk.") .defaultValue(0) .min(0) .sliderMax(10000) @@ -98,14 +94,12 @@ public class StashFinder extends Module { private final Setting sendNotifications = sgGeneral.add(new BoolSetting.Builder() .name("notifications") - .description("Sends Minecraft notifications when new stashes are found.") .defaultValue(true) .build() ); private final Setting notificationMode = sgGeneral.add(new EnumSetting.Builder() .name("notification-mode") - .description("The mode to use for notifications.") .defaultValue(Mode.Both) .visible(sendNotifications::get) .build() @@ -113,14 +107,12 @@ public class StashFinder extends Module { private final Setting renderTracer = sgRender.add(new BoolSetting.Builder() .name("render-tracer") - .description("Renders a tracer to the last found stash.") .defaultValue(true) .build() ); private final Setting traceColor = sgRender.add(new ColorSetting.Builder() .name("tracer-color") - .description("Color of the stash tracer.") .defaultValue(new SettingColor(255, 215, 0, 255)) .visible(renderTracer::get) .build() @@ -128,7 +120,6 @@ public class StashFinder extends Module { private final Setting traceArrivalDistance = sgRender.add(new IntSetting.Builder() .name("tracer-hide-at-distance") - .description("Hide the trace when you are this close to the stash.") .defaultValue(16) .min(1) .sliderMin(1) @@ -139,7 +130,6 @@ public class StashFinder extends Module { private final Setting traceMaxDistance = sgRender.add(new IntSetting.Builder() .name("tracer-max-distance") - .description("Hide the trace when you are farther than this distance from the stash.") .defaultValue(2000) .min(10) .sliderMin(50) @@ -150,14 +140,12 @@ public class StashFinder extends Module { private final Setting renderChunkColumn = sgRender.add(new BoolSetting.Builder() .name("render-chunk-column") - .description("Renders a vertical column at the center of traced chunks.") .defaultValue(false) .build() ); private final Setting traceColumnColor = sgRender.add(new ColorSetting.Builder() .name("chunk-column-color") - .description("Color of the stash tracer column.") .defaultValue(new SettingColor(255, 215, 0, 100)) .visible(renderChunkColumn::get) .build() @@ -165,7 +153,6 @@ public class StashFinder extends Module { private final Setting clearTracesBind = sgRender.add(new KeybindSetting.Builder() .name("clear-traces-bind") - .description("Keybind to clear all stash traces.") .defaultValue(Keybind.none()) .build() ); @@ -175,7 +162,7 @@ public class StashFinder extends Module { public List chunks = new ArrayList<>(); public StashFinder() { - super(Categories.World, "stash-finder", "Searches loaded chunks for storage blocks. Saves to /meteor-client"); + super(Categories.World, "stash-finder"); } @Override @@ -236,12 +223,12 @@ private void onChunkData(ChunkDataEvent event) { switch (notificationMode.get()) { case Chat -> sendChatNotification(chunk); case Toast -> { - MeteorToast toast = new MeteorToast.Builder(title).icon(Items.CHEST).text("Found Stash!").build(); + MeteorToast toast = new MeteorToast.Builder(this.getTitle()).icon(Items.CHEST).text("Found Stash!").build(); mc.getToastManager().add(toast); } case Both -> { sendChatNotification(chunk); - MeteorToast toast = new MeteorToast.Builder(title).icon(Items.CHEST).text("Found Stash!").build(); + MeteorToast toast = new MeteorToast.Builder(this.getTitle()).icon(Items.CHEST).text("Found Stash!").build(); mc.getToastManager().add(toast); } } diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Timer.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Timer.java index 7f0bd8f516..6b97670b4a 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Timer.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/Timer.java @@ -16,7 +16,6 @@ public class Timer extends Module { private final Setting multiplier = sgGeneral.add(new DoubleSetting.Builder() .name("multiplier") - .description("The timer multiplier amount.") .defaultValue(1) .min(0.1) .sliderMin(0.1) @@ -27,7 +26,7 @@ public class Timer extends Module { private double override = 1; public Timer() { - super(Categories.World, "timer", "Changes the speed of everything in your game."); + super(Categories.World, "timer"); } public double getMultiplier() { diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/VeinMiner.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/VeinMiner.java index 1060dd4082..ef7a7ac268 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/VeinMiner.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/VeinMiner.java @@ -34,7 +34,7 @@ public class VeinMiner extends Module { private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgRender = settings.createGroup("Render"); + private final SettingGroup sgRender = settings.createGroup("render"); private final Set blockNeighbours = Set.of( new Vec3i(1, -1, 1), new Vec3i(0, -1, 1), new Vec3i(-1, -1, 1), @@ -54,21 +54,18 @@ public class VeinMiner extends Module { private final Setting> selectedBlocks = sgGeneral.add(new BlockListSetting.Builder() .name("blocks") - .description("Which blocks to select.") .defaultValue(Blocks.STONE, Blocks.DIRT, Blocks.GRASS_BLOCK) .build() ); private final Setting mode = sgGeneral.add(new EnumSetting.Builder() .name("mode") - .description("Selection mode.") .defaultValue(ListMode.Blacklist) .build() ); private final Setting depth = sgGeneral.add(new IntSetting.Builder() .name("depth") - .description("Amount of iterations used to scan for similar blocks.") .defaultValue(3) .min(1) .sliderRange(1, 15) @@ -77,7 +74,6 @@ public class VeinMiner extends Module { private final Setting delay = sgGeneral.add(new IntSetting.Builder() .name("delay") - .description("Delay between mining blocks.") .defaultValue(0) .min(0) .sliderRange(0, 20) @@ -86,7 +82,6 @@ public class VeinMiner extends Module { private final Setting rotate = sgGeneral.add(new BoolSetting.Builder() .name("rotate") - .description("Sends rotation packets to the server when mining.") .defaultValue(true) .build() ); @@ -95,35 +90,30 @@ public class VeinMiner extends Module { private final Setting swingHand = sgRender.add(new BoolSetting.Builder() .name("swing-hand") - .description("Swing hand client-side.") .defaultValue(true) .build() ); private final Setting render = sgRender.add(new BoolSetting.Builder() .name("render") - .description("Whether or not to render the block being mined.") .defaultValue(true) .build() ); private final Setting shapeMode = sgRender.add(new EnumSetting.Builder() .name("shape-mode") - .description("How the shapes are rendered.") .defaultValue(ShapeMode.Both) .build() ); private final Setting sideColor = sgRender.add(new ColorSetting.Builder() .name("side-color") - .description("The color of the sides of the blocks being rendered.") .defaultValue(new SettingColor(204, 0, 0, 10)) .build() ); private final Setting lineColor = sgRender.add(new ColorSetting.Builder() .name("line-color") - .description("The color of the lines of the blocks being rendered.") .defaultValue(new SettingColor(204, 0, 0, 255)) .build() ); @@ -135,7 +125,7 @@ public class VeinMiner extends Module { private int tick = 0; public VeinMiner() { - super(Categories.World, "vein-miner", "Mines all nearby blocks with this type"); + super(Categories.World, "vein-miner"); } @Override diff --git a/src/main/java/meteordevelopment/meteorclient/systems/profiles/Profile.java b/src/main/java/meteordevelopment/meteorclient/systems/profiles/Profile.java index 8ce3aeb02f..8c180ef6de 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/profiles/Profile.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/profiles/Profile.java @@ -23,49 +23,43 @@ import java.util.Objects; public class Profile implements ISerializable { - public final Settings settings = new Settings(); + public final Settings settings = new Settings("profile"); private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgSave = settings.createGroup("Save"); + private final SettingGroup sgSave = settings.createGroup("save"); public Setting name = sgGeneral.add(new StringSetting.Builder() .name("name") - .description("The name of the profile.") .filter(Utils::nameFilter) .build() ); public Setting> loadOnJoin = sgGeneral.add(new StringListSetting.Builder() .name("load-on-join") - .description("Which servers to set this profile as active when joining.") .filter(Utils::ipFilter) .build() ); public Setting hud = sgSave.add(new BoolSetting.Builder() .name("hud") - .description("Whether the profile should save hud.") .defaultValue(false) .build() ); public Setting macros = sgSave.add(new BoolSetting.Builder() .name("macros") - .description("Whether the profile should save macros.") .defaultValue(false) .build() ); public Setting modules = sgSave.add(new BoolSetting.Builder() .name("modules") - .description("Whether the profile should save modules.") .defaultValue(false) .build() ); public Setting waypoints = sgSave.add(new BoolSetting.Builder() .name("waypoints") - .description("Whether the profile should save waypoints.") .defaultValue(false) .build() ); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/proxies/Proxies.java b/src/main/java/meteordevelopment/meteorclient/systems/proxies/Proxies.java index bb99af47a0..fdc19abd75 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/proxies/Proxies.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/proxies/Proxies.java @@ -18,13 +18,12 @@ import java.util.regex.Pattern; public class Proxies extends System implements Iterable { - public final Settings settings = new Settings(); - private final SettingGroup sgRefreshing = settings.createGroup("Refreshing"); - private final SettingGroup sgCleanup = settings.createGroup("Cleanup"); + public final Settings settings = new Settings("proxies"); + private final SettingGroup sgRefreshing = settings.createGroup("refreshing"); + private final SettingGroup sgCleanup = settings.createGroup("cleanup"); private final Setting threads = sgRefreshing.add(new IntSetting.Builder() .name("threads") - .description("The number of concurrent threads to check proxies with.") .defaultValue(8) .min(0) .sliderRange(0, 32) @@ -33,7 +32,6 @@ public class Proxies extends System implements Iterable { public final Setting timeout = sgRefreshing.add(new IntSetting.Builder() .name("timeout") - .description("The timeout in milliseconds for checking proxies.") .defaultValue(5000) .min(0) .sliderRange(0, 15000) @@ -42,7 +40,6 @@ public class Proxies extends System implements Iterable { private final Setting tries = sgRefreshing.add(new IntSetting.Builder() .name("retries-on-timeout") - .description("How many additional times to check a proxy if the check times out.") .defaultValue(1) .min(0) .sliderRange(0, 5) @@ -51,21 +48,18 @@ public class Proxies extends System implements Iterable { private final Setting sort = sgCleanup.add(new BoolSetting.Builder() .name("sort-by-latency") - .description("Whether to sort the proxy list by latency.") .defaultValue(true) .build() ); private final Setting pruneDead = sgCleanup.add(new BoolSetting.Builder() .name("prune-dead") - .description("Whether to prune dead proxies.") .defaultValue(true) .build() ); private final Setting pruneLatency = sgCleanup.add(new IntSetting.Builder() .name("prune-by-latency") - .description("Prune proxies at or above this latency in ms. 0 to disable.") .defaultValue(2000) .min(0) .sliderRange(0, 10000) @@ -74,7 +68,6 @@ public class Proxies extends System implements Iterable { private final Setting pruneExcess = sgCleanup.add(new IntSetting.Builder() .name("prune-to-count") - .description("If in excess, prune the number of proxies to this count. 0 to disable. Prioritises by latency.") .defaultValue(0) .sliderRange(0, 25) .build() diff --git a/src/main/java/meteordevelopment/meteorclient/systems/proxies/Proxy.java b/src/main/java/meteordevelopment/meteorclient/systems/proxies/Proxy.java index f0d53b89da..54b15ec81b 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/proxies/Proxy.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/proxies/Proxy.java @@ -25,34 +25,30 @@ import java.util.Objects; public class Proxy implements ISerializable { - public final Settings settings = new Settings(); + public final Settings settings = new Settings("proxy"); private final SettingGroup sgGeneral = settings.getDefaultGroup(); - private final SettingGroup sgOptional = settings.createGroup("Optional"); + private final SettingGroup sgOptional = settings.createGroup("optional"); public Setting name = sgGeneral.add(new StringSetting.Builder() .name("name") - .description("The name of the proxy.") .build() ); public Setting type = sgGeneral.add(new EnumSetting.Builder() .name("type") - .description("The type of proxy.") .defaultValue(ProxyType.Socks5) .build() ); public Setting address = sgGeneral.add(new StringSetting.Builder() .name("address") - .description("The ip address of the proxy.") .filter(Utils::ipFilter) .build() ); public Setting port = sgGeneral.add(new IntSetting.Builder() .name("port") - .description("The port of the proxy.") .defaultValue(0) .range(0, 65535) .sliderMax(65535) @@ -62,7 +58,6 @@ public class Proxy implements ISerializable { public Setting enabled = sgGeneral.add(new BoolSetting.Builder() .name("enabled") - .description("Whether the proxy is enabled.") .defaultValue(true) .build() ); @@ -71,13 +66,11 @@ public class Proxy implements ISerializable { public Setting username = sgOptional.add(new StringSetting.Builder() .name("username") - .description("The username of the proxy.") .build() ); public Setting password = sgOptional.add(new StringSetting.Builder() .name("password") - .description("The password of the proxy.") .visible(() -> type.get().equals(ProxyType.Socks5)) .build() ); diff --git a/src/main/java/meteordevelopment/meteorclient/systems/waypoints/Waypoint.java b/src/main/java/meteordevelopment/meteorclient/systems/waypoints/Waypoint.java index 08eeb12808..b13212b4bf 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/waypoints/Waypoint.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/waypoints/Waypoint.java @@ -23,10 +23,10 @@ import java.util.UUID; public class Waypoint implements ISerializable { - public final Settings settings = new Settings(); + public final Settings settings = new Settings("waypoint"); - private final SettingGroup sgVisual = settings.createGroup("Visual"); - private final SettingGroup sgPosition = settings.createGroup("Position"); + private final SettingGroup sgVisual = settings.createGroup("visual"); + private final SettingGroup sgPosition = settings.createGroup("position"); public enum NearAction { Disabled, Hide, Delete @@ -34,14 +34,12 @@ public enum NearAction { public Setting name = sgVisual.add(new StringSetting.Builder() .name("name") - .description("The name of the waypoint.") .defaultValue("Home") .build() ); public Setting icon = sgVisual.add(new ProvidedStringSetting.Builder() .name("icon") - .description("The icon of the waypoint.") .defaultValue("Square") .supplier(() -> Waypoints.BUILTIN_ICONS) .onChanged(v -> validateIcon()) @@ -50,49 +48,42 @@ public enum NearAction { public Setting color = sgVisual.add(new ColorSetting.Builder() .name("color") - .description("The color of the waypoint.") .defaultValue(MeteorClient.ADDON.color.toSetting()) .build() ); public Setting visible = sgVisual.add(new BoolSetting.Builder() .name("visible") - .description("Whether to show the waypoint.") .defaultValue(true) .build() ); public Setting maxVisible = sgVisual.add(new IntSetting.Builder() .name("max-visible-distance") - .description("How far away to render the waypoint.") .defaultValue(5000) .build() ); public Setting scale = sgVisual.add(new DoubleSetting.Builder() .name("scale") - .description("The scale of the waypoint.") .defaultValue(1.5) .build() ); public Setting pos = sgPosition.add(new BlockPosSetting.Builder() .name("location") - .description("The location of the waypoint.") .defaultValue(BlockPos.ORIGIN) .build() ); public Setting dimension = sgPosition.add(new EnumSetting.Builder() .name("dimension") - .description("Which dimension the waypoint is in.") .defaultValue(Dimension.Overworld) .build() ); public Setting opposite = sgPosition.add(new BoolSetting.Builder() .name("opposite-dimension") - .description("Whether to show the waypoint in the opposite dimension.") .defaultValue(true) .visible(() -> dimension.get() != Dimension.End) .build() @@ -100,14 +91,12 @@ public enum NearAction { public Setting actionWhenNear = sgPosition.add(new EnumSetting.Builder() .name("action-when-near") - .description("Action to be performed when the player is near.") .defaultValue(NearAction.Disabled) .build() ); public Setting actionWhenNearDistance = sgPosition.add(new IntSetting.Builder() .name("action-when-near-distance") - .description("How close (in blocks) the player has to be for the near action to be performed.") .defaultValue(8) .sliderRange(0, 32) .visible(() -> actionWhenNear.get() != NearAction.Disabled) diff --git a/src/main/java/meteordevelopment/meteorclient/utils/misc/MeteorTranslations.java b/src/main/java/meteordevelopment/meteorclient/utils/misc/MeteorTranslations.java new file mode 100644 index 0000000000..4424140ef7 --- /dev/null +++ b/src/main/java/meteordevelopment/meteorclient/utils/misc/MeteorTranslations.java @@ -0,0 +1,218 @@ +/* + * This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client). + * Copyright (c) Meteor Development. + */ + +package meteordevelopment.meteorclient.utils.misc; + +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonPrimitive; +import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; +import meteordevelopment.meteorclient.MeteorClient; +import meteordevelopment.meteorclient.addons.AddonManager; +import meteordevelopment.meteorclient.addons.MeteorAddon; +import meteordevelopment.meteorclient.utils.PreInit; +import net.fabricmc.loader.api.FabricLoader; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.resource.language.LanguageDefinition; +import net.minecraft.client.resource.language.ReorderingUtil; +import net.minecraft.text.OrderedText; +import net.minecraft.text.StringVisitable; +import net.minecraft.util.Language; +import org.jetbrains.annotations.Nullable; + +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.nio.charset.StandardCharsets; +import java.util.*; +import java.util.function.Supplier; + +import static meteordevelopment.meteorclient.MeteorClient.mc; + +@SuppressWarnings("unused") +public class MeteorTranslations { + private static final boolean DEBUG_MISSING_ENTRIES = FabricLoader.getInstance().isDevelopmentEnvironment() || Boolean.getBoolean("meteor.lang.debug"); + private static final String EN_US_CODE = "en_us"; + private static final Gson GSON = new Gson(); + private static final Map languages = new Object2ObjectOpenHashMap<>(); + private static MeteorLanguage defaultLanguage; + + @PreInit + public static void preInit() { + List toLoad = new ArrayList<>(2); + toLoad.add(EN_US_CODE); + if (!mc.options.language.equals(EN_US_CODE)) toLoad.add(mc.options.language); + + for (String language : toLoad) { + loadLanguage(language); + } + + defaultLanguage = getLanguage(EN_US_CODE); + } + + public static void loadLanguage(String languageCode) { + if (languages.containsKey(languageCode)) return; + + LanguageDefinition definition = MinecraftClient.getInstance().getLanguageManager().getLanguage(languageCode); + if (definition == null) return; + + Object2ObjectOpenHashMap languageMap = new Object2ObjectOpenHashMap<>(); + + try (InputStream stream = MeteorTranslations.class.getResourceAsStream("/assets/meteor-client/language/" + languageCode + ".json")) { + if (stream == null) { + if (languageCode.equals(EN_US_CODE)) throw new RuntimeException("Error loading the default language"); + else MeteorClient.LOG.info("No language file found for '{}'", languageCode); + } + else { + loadToMap(new InputStreamReader(stream, StandardCharsets.UTF_8), languageMap); + MeteorClient.LOG.info("Loaded language: {}", languageCode); + } + } catch (IOException e) { + if (languageCode.equals(EN_US_CODE)) throw new RuntimeException("Error loading default language", e); + else MeteorClient.LOG.error("Error loading language: {}", languageCode, e); + } + + for (MeteorAddon addon : AddonManager.ADDONS) { + if (addon == MeteorClient.ADDON) continue; + + try (InputStream stream = addon.getClass().getResourceAsStream("/assets/" + addon.id + "/language/" + languageCode + ".json")) { + if (stream == null) continue; + + loadToMap(new InputStreamReader(stream, StandardCharsets.UTF_8), languageMap); + MeteorClient.LOG.info("Loaded language {} from addon {}", languageCode, addon.name); + } catch (IOException e) { + MeteorClient.LOG.error("Error loading language {} from addon {}", languageCode, addon.name, e); + } + } + + if (!languageMap.isEmpty()) { + languages.put(languageCode, new MeteorLanguage(definition.rightToLeft(), languageMap)); + } + } + + private static void loadToMap(Reader reader, Map map) { + JsonObject object = GSON.fromJson(reader, JsonObject.class); + for (Map.Entry entry : object.entrySet()) { + if (entry.getValue() instanceof JsonPrimitive primitive && primitive.isString()) { + String value = primitive.getAsString(); + if (!value.isEmpty()) map.put(entry.getKey(), value); + } else { + MeteorClient.LOG.error("Unexpected element '{}' for '{}'.", entry.getValue().toString(), entry.getKey()); + } + } + } + + public static void clearUnusedLanguages(String currentLanguageCode) { + languages.keySet().removeIf(languageCode -> !languageCode.equals(EN_US_CODE) && !languageCode.equals(currentLanguageCode)); + } + + public static String translate(String key, Object... args) { + MeteorLanguage currentLang = getCurrentLanguage(); + debug(currentLang, key); + String translated = currentLang.get(key, () -> getDefaultLanguage().get(key)); + + try { + return String.format(translated, args); + } catch (IllegalFormatException e) { + return key; + } + } + + public static String translate(String key, String fallback, Object... args) { + MeteorLanguage currentLang = getCurrentLanguage(); + debug(currentLang, key); + String translated = currentLang.get(key, () -> getDefaultLanguage().get(key, fallback)); + + try { + return String.format(translated, args); + } catch (IllegalFormatException e) { + return fallback; + } + } + + public static String translate(String key, Supplier fallback, Object... args) { + MeteorLanguage currentLang = getCurrentLanguage(); + debug(currentLang, key); + String translated = currentLang.get(key, () -> getDefaultLanguage().get(key, fallback)); + + try { + return String.format(translated, args); + } catch (IllegalFormatException e) { + return fallback.get(); + } + } + + private static void debug(MeteorLanguage language, String key) { + if (DEBUG_MISSING_ENTRIES && !language.hasTranslation(key)) { + MeteorClient.LOG.warn("Missing entry for '{}' in lang '{}'.", key, mc.options.language); + } + } + + public static MeteorLanguage getLanguage(String lang) { + return languages.get(lang); + } + + public static MeteorLanguage getCurrentLanguage() { + return languages.getOrDefault(mc.options.language, getDefaultLanguage()); + } + + public static MeteorLanguage getDefaultLanguage() { + return defaultLanguage; + } + + /** + * @return what percentage of the current language has been localised compared to the default language + */ + public static double percentLocalised() { + // Right now there aren't enough differences between the english dialects to justify each having their own + // translation. Maybe that will change in the future. + if (isEnglish()) return 100; + + MeteorLanguage currentLang = languages.get(mc.options.language); + double currentLangSize = currentLang != null ? currentLang.translations.size() : 0; + return (currentLangSize / getDefaultLanguage().translations.size()) * 100; + } + + public static boolean isEnglish() { + return mc.options.language.startsWith("en"); + } + + public static class MeteorLanguage extends Language { + private final Map translations = new Object2ObjectOpenHashMap<>(); + private final boolean rightToLeft; + + public MeteorLanguage(boolean rightToLeft, Map translations) { + this.rightToLeft = rightToLeft; + this.translations.putAll(translations); + } + + @Override + public String get(String key, String fallback) { + return translations.getOrDefault(key, fallback); + } + + public String get(String key, Supplier fallback) { + @Nullable String string = translations.get(key); + return string != null ? string : fallback.get(); + } + + @Override + public boolean hasTranslation(String key) { + return translations.containsKey(key); + } + + @Override + public boolean isRightToLeft() { + return this.rightToLeft; + } + + @Override + public OrderedText reorder(StringVisitable text) { + return ReorderingUtil.reorder(text, this.rightToLeft); + } + } +} diff --git a/src/main/java/meteordevelopment/meteorclient/utils/misc/input/KeyBinds.java b/src/main/java/meteordevelopment/meteorclient/utils/misc/input/KeyBinds.java index 6830326c87..ca346284ad 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/misc/input/KeyBinds.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/misc/input/KeyBinds.java @@ -11,16 +11,22 @@ import org.lwjgl.glfw.GLFW; public class KeyBinds { - private static final KeyBinding.Category CATEGORY = KeyBinding.Category.create(MeteorClient.identifier("meteor-client")); + /** + * see {@link meteordevelopment.meteorclient.mixin.KeyBindingCategoryMixin} + */ + private static final KeyBinding.Category CATEGORY = KeyBinding.Category.create(MeteorClient.identifier("meteor.key.category")); - public static KeyBinding OPEN_GUI = new KeyBinding("key.meteor-client.open-gui", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_RIGHT_SHIFT, CATEGORY); - public static KeyBinding OPEN_COMMANDS = new KeyBinding("key.meteor-client.open-commands", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_PERIOD, CATEGORY); + /** + * see {@link meteordevelopment.meteorclient.mixin.ControlListWidgetMixin} + */ + public static KeyBinding OPEN_GUI = new KeyBinding("meteor.key.open-gui", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_RIGHT_SHIFT, CATEGORY); + public static KeyBinding OPEN_COMMANDS = new KeyBinding("meteor.key.open-commands", InputUtil.Type.KEYSYM, GLFW.GLFW_KEY_PERIOD, CATEGORY); private KeyBinds() { } public static KeyBinding[] apply(KeyBinding[] binds) { - // Add key binding + // Add key bindings KeyBinding[] newBinds = new KeyBinding[binds.length + 2]; System.arraycopy(binds, 0, newBinds, 0, binds.length); diff --git a/src/main/java/meteordevelopment/meteorclient/utils/misc/text/MeteorTranslatableTextComponent.java b/src/main/java/meteordevelopment/meteorclient/utils/misc/text/MeteorTranslatableTextComponent.java new file mode 100644 index 0000000000..10f568660e --- /dev/null +++ b/src/main/java/meteordevelopment/meteorclient/utils/misc/text/MeteorTranslatableTextComponent.java @@ -0,0 +1,77 @@ +/* + * This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client). + * Copyright (c) Meteor Development. + */ + +package meteordevelopment.meteorclient.utils.misc.text; + +import com.mojang.serialization.MapCodec; +import meteordevelopment.meteorclient.utils.misc.MeteorTranslations; +import net.minecraft.text.StringVisitable; +import net.minecraft.text.Style; +import net.minecraft.text.TextContent; +import org.jetbrains.annotations.Nullable; + +import java.util.Arrays; +import java.util.Objects; +import java.util.Optional; + +import static meteordevelopment.meteorclient.MeteorClient.mc; + +public class MeteorTranslatableTextComponent implements TextContent { + private final String key; + @Nullable + private final String fallback; + private final Object[] args; + + private String translation; + private String cachedLanguage; + + public MeteorTranslatableTextComponent(String key, @Nullable String fallback, Object... args) { + this.key = key; + this.fallback = fallback; + this.args = args; + } + + public MeteorTranslatableTextComponent(String key, Object... args) { + this(key, null, args); + } + + private void updateTranslations() { + if (!mc.options.language.equals(this.cachedLanguage)) { + cachedLanguage = mc.options.language; + translation = fallback == null ? MeteorTranslations.translate(key, args) : MeteorTranslations.translate(key, fallback, args); + } + } + + @Override + public Optional visit(StringVisitable.StyledVisitor visitor, Style style) { + updateTranslations(); + + return visitor.accept(style, translation); + } + + @Override + public Optional visit(StringVisitable.Visitor visitor) { + updateTranslations(); + + return visitor.accept(translation); + } + + @Override + public MapCodec getCodec() { + return null; + } + + @Override + public boolean equals(@Nullable Object o) { + if (this == o) return true; + if (!(o instanceof MeteorTranslatableTextComponent component)) return false; + return Objects.equals(this.key, component.key) && Objects.equals(this.fallback, component.fallback) && Arrays.equals(this.args, component.args); + } + + @Override + public String toString() { + return "MeteorTranslatableTextComponent[key=" + key + ", fallback=" + fallback + ", args=" + Arrays.toString(args) + "]"; + } +} diff --git a/src/main/resources/assets/meteor-client/lang/en_gb.json b/src/main/resources/assets/meteor-client/lang/en_gb.json deleted file mode 100644 index 7b02207810..0000000000 --- a/src/main/resources/assets/meteor-client/lang/en_gb.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "key.meteor-client.open-gui": "Open GUI", - "key.meteor-client.open-commands": "Open Commands", - "key.category.meteor-client.meteor-client": "Meteor Client" -} diff --git a/src/main/resources/assets/meteor-client/lang/en_us.json b/src/main/resources/assets/meteor-client/lang/en_us.json deleted file mode 100644 index 7b02207810..0000000000 --- a/src/main/resources/assets/meteor-client/lang/en_us.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "key.meteor-client.open-gui": "Open GUI", - "key.meteor-client.open-commands": "Open Commands", - "key.category.meteor-client.meteor-client": "Meteor Client" -} diff --git a/src/main/resources/assets/meteor-client/lang/hi_in.json b/src/main/resources/assets/meteor-client/lang/hi_in.json deleted file mode 100644 index 991dfbf4ee..0000000000 --- a/src/main/resources/assets/meteor-client/lang/hi_in.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "key.meteor-client.open-gui": "GUI खोलें", - "key.meteor-client.open-commands": "कमांड खोलें" -} diff --git a/src/main/resources/assets/meteor-client/lang/pt_br.json b/src/main/resources/assets/meteor-client/lang/pt_br.json deleted file mode 100644 index 0056869be4..0000000000 --- a/src/main/resources/assets/meteor-client/lang/pt_br.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "key.meteor-client.open-gui": "Abrir Menu", - "key.meteor-client.open-commands": "Abrir Comandos" -} diff --git a/src/main/resources/assets/meteor-client/lang/vi_vn.json b/src/main/resources/assets/meteor-client/lang/vi_vn.json deleted file mode 100644 index 86372f9041..0000000000 --- a/src/main/resources/assets/meteor-client/lang/vi_vn.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "key.meteor-client.open-gui": "Mở giao diện", - "key.meteor-client.open-commands": "Mở lệnh" -} diff --git a/src/main/resources/assets/meteor-client/lang/zh_cn.json b/src/main/resources/assets/meteor-client/lang/zh_cn.json deleted file mode 100644 index 4c1eaa1207..0000000000 --- a/src/main/resources/assets/meteor-client/lang/zh_cn.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "key.meteor-client.open-gui": "打开GUI", - "key.meteor-client.open-commands": "输入命令" -} diff --git a/src/main/resources/assets/meteor-client/language/en_gb.json b/src/main/resources/assets/meteor-client/language/en_gb.json new file mode 100644 index 0000000000..7e700764dc --- /dev/null +++ b/src/main/resources/assets/meteor-client/language/en_gb.json @@ -0,0 +1,4026 @@ +{ + "meteor.lang.translators": "MeteorDevelopment", + + "meteor.key.category": "Meteor Client", + "meteor.key.open-commands": "Open Commands", + "meteor.key.open-gui": "Open GUI", + + "command.bind.description": "Binds a specified module to the next pressed key.", + "command.binds.description": "List of all bound modules.", + "command.commands.description": "List of all commands.", + "command.damage.description": "Damages self.", + "command.disconnect.description": "Disconnect from the server", + "command.disconnect.disconnection_message": "%s[%sDisconnectCommand%s] Disconnected by user.", + "command.dismount.description": "Dismounts you from entity you are riding.", + "command.drop.description": "Automatically drops specified items.", + "command.drop.exception.no_such_item": "Could not find an item with that name!", + "command.drop.exception.not_spectator": "Can't drop items while in spectator.", + "command.enchant.description": "Enchants the item in your hand. REQUIRES Creative mode.", + "command.enchant.exception.not_holding_item": "You need to hold some item to enchant.", + "command.enchant.exception.not_in_creative": "You must be in creative mode to use this.", + "command.ender-chest.description": "Allows you to preview memory of your ender chest.", + "command.fake-player.description": "Manages fake players that you can use for testing.", + "command.fake-player.error.not_found": "Couldn't find a Fake Player with that name.", + "command.fake-player.info.removed": "Removed Fake Player %s.", + "command.fov.description": "Changes your fov.", + "command.friends.description": "Manages friends.", + "command.gamemode.description": "Changes your gamemode client-side.", + "command.give.description": "Gives you any item.", + "command.give.exception.not_in_creative": "You must be in creative mode to use this.", + "command.give.exception.no_space": "No space in hotbar.", + "command.hclip.description": "Lets you clip through blocks horizontally.", + "command.input.description": "Keyboard input simulation.", + "command.input.info.cleared_handlers": "Cleared all keypress handlers.", + "command.input.info.active_handlers": "Active keypress handlers: ", + "command.input.info.keypress_handler": "(highlight)%d(default) - (highlight)%s %d(default) ticks left out of (highlight)%d(default).", + "command.input.info.removed_handler": "Removed keypress handler.", + "command.input.warning.no_handlers": "No active keypress handlers.", + "command.input.warning.out_of_range": "Index out of range.", + "command.inventory.description": "Allows you to see parts of another player's inventory.", + "command.locate.description": "Locates structures", + "command.macro.description": "Allows you to execute macros.", + "command.macro.error.none_scheduled": "No macros are currently scheduled.", + "command.macro.error.not_scheduled": "This macro is not currently scheduled.", + "command.macro.info.cleared_all": "Cleared all scheduled macros.", + "command.macro.info.cleared": "Cleared scheduled macro.", + "command.modules.description": "Displays a list of all modules.", + "command.name-history.description": "Provides a list of a players previous names from the laby.net api", + "command.name-history.error.error_fetching_name": "There was an error fetching that users name history.", + "command.name-history.inaccurate": "This name history entry is not accurate according to laby.net", + "command.nbt.description": "Modifies NBT data for an item, example: .nbt add {display:{Name:'{\"text\":\"$cRed Name\"}'}}", + "command.notebot.description": "Allows you load notebot files", + "command.peek.description": "Lets you see what's inside storage block items.", + "command.profiles.description": "Loads and saves profiles.", + "command.profiles.info.loaded": "Loaded profile (highlight)%s(default).", + "command.profiles.info.saved": "Saved profile (highlight)%s(default).", + "command.profiles.info.deleted": "Deleted profile (highlight)%s(default).", + "command.reload.description": "Reloads many systems.", + "command.reload.warning.reloading": "Reloading systems, this may take a while.", + "command.reset.description": "Resets specified settings.", + "command.rotation.description": "Modifies your rotation.", + "command.save-map.description": "Saves a map to an image.", + "command.save-map.error.error_writing_texture": "Error writing map texture", + "command.save-map.exception.map_not_found": "You must be holding a filled map.", + "command.save-map.exception.oops": "Something went wrong.", + "command.say.description": "Sends messages in chat.", + "command.server.description": "Prints server information", + "command.settings.description": "Allows you to view and change module settings.", + "command.spectate.description": "Allows you to spectate nearby players", + "command.swarm.description": "Sends commands to connected swarm workers.", + "command.toggle.description": "Toggles a module.", + "command.vclip.description": "Lets you clip through blocks vertically.", + "command.wasp.description": "Sets the auto wasp target.", + "command.wasp.exception.cant_wasp_self": "You cannot target yourself!", + "command.wasp.info.target": "%s set as target.", + "command.waypoint.description": "Manages waypoints.", + + "config.visual.custom-font": "Custom Font", + "config.visual.custom-font.description": "Use a custom font.", + "config.visual.font": "Font", + "config.visual.font.description": "Custom font to use.", + "config.visual.rainbow-speed": "Rainbow Speed", + "config.visual.rainbow-speed.description": "The global rainbow speed.", + "config.visual.title-screen-credits": "Title Screen Credits", + "config.visual.title-screen-credits.description": "Show Meteor credits on title screen", + "config.visual.title-screen-splashes": "Title Screen Splashes", + "config.visual.title-screen-splashes.description": "Show Meteor splash texts on title screen", + "config.visual.custom-window-title": "Custom Window Title", + "config.visual.custom-window-title.description": "Show custom text in the window title.", + "config.visual.window-title-text": "Window Title Text", + "config.visual.window-title-text.description": "The text it displays in the window title.", + "config.visual.friend-color": "Friend Color", + "config.visual.friend-color.description": "The color used to show friends.", + "config.visual.sync-list-setting-widths": "Sync List Setting Widths", + "config.visual.sync-list-setting-widths.description": "Prevents the list setting screens from moving around as you add & remove elements.", + "config.modules.hidden-modules": "Hidden Modules", + "config.modules.hidden-modules.description": "Prevent these modules from being rendered as options in the clickgui.", + "config.modules.module-search-count": "Module Search Count", + "config.modules.module-search-count.description": "Amount of modules and settings to be shown in the module search bar.", + "config.modules.search-module-aliases": "Search Module Aliases", + "config.modules.search-module-aliases.description": "Whether or not module aliases will be used in the module search bar.", + "config.chat.prefix": "Prefix", + "config.chat.prefix.description": "Prefix.", + "config.chat.chat-feedback": "Chat Feedback", + "config.chat.chat-feedback.description": "Sends chat feedback when meteor performs certain actions.", + "config.chat.delete-chat-feedback": "Delete Chat Feedback", + "config.chat.delete-chat-feedback.description": "Delete previous matching chat feedback to keep chat clear.", + "config.misc.rotation-hold": "Rotation Hold", + "config.misc.rotation-hold.description": "Hold long to hold server side rotation when not sending any packets.", + "config.misc.use-team-color": "Use Team Color", + "config.misc.use-team-color.description": "Uses player's team color for rendering things like esp and tracers.", + + "hud.general.custom-font": "Custom Font", + "hud.general.custom-font.description": "Text will use custom font.", + "hud.general.hide-in-menus": "Hide In Menus", + "hud.general.hide-in-menus.description": "Hides the meteor hud when in inventory screens or game menus.", + "hud.general.text-scale": "Text Scale", + "hud.general.text-scale.description": "Scale of text if not overridden by the element.", + "hud.general.text-colors": "Text Colors", + "hud.general.text-colors.description": "Colors used for the Text element.", + "hud.editor.border": "Border", + "hud.editor.border.description": "Space around the edges of the screen.", + "hud.editor.snapping-range": "Snapping Range", + "hud.editor.snapping-range.description": "Snapping range in editor.", + "hud.bind.bind": "Bind", + "hud.bind.bind.description": "Keybind for toggling the hud", + + "hud.base.anchors.auto-anchors": "Automatically assigns anchors based on the position.", + "hud.base.anchors.x-anchor": "Horizontal anchor.", + "hud.base.anchors.y-anchor": "Vertical anchor.", + + "hud.active-modules.general.sort": "Sort", + "hud.active-modules.general.sort.description": "How to sort active modules.", + "hud.active-modules.general.hidden-modules": "Hidden Modules", + "hud.active-modules.general.hidden-modules.description": "Which modules not to show in the list.", + "hud.active-modules.general.module-info": "Module Info", + "hud.active-modules.general.module-info.description": "Shows info from the module next to the name in the active modules list.", + "hud.active-modules.general.show-keybind": "Show Keybind", + "hud.active-modules.general.show-keybind.description": "Shows the module's keybind next to its name.", + "hud.active-modules.general.shadow": "Shadow", + "hud.active-modules.general.shadow.description": "Renders shadow behind text.", + "hud.active-modules.general.outlines": "Outlines", + "hud.active-modules.general.outlines.description": "Whether or not to render outlines", + "hud.active-modules.general.outline-width": "Outline Width", + "hud.active-modules.general.outline-width.description": "Outline width", + "hud.active-modules.general.alignment": "Alignment", + "hud.active-modules.general.alignment.description": "Horizontal alignment.", + "hud.active-modules.color.color-mode": "Color Mode", + "hud.active-modules.color.color-mode.description": "What color to use for active modules.", + "hud.active-modules.color.flat-color": "Flat Color", + "hud.active-modules.color.flat-color.description": "Color for flat color mode.", + "hud.active-modules.color.rainbow-speed": "Rainbow Speed", + "hud.active-modules.color.rainbow-speed.description": "Rainbow speed of rainbow color mode.", + "hud.active-modules.color.rainbow-spread": "Rainbow Spread", + "hud.active-modules.color.rainbow-spread.description": "Rainbow spread of rainbow color mode.", + "hud.active-modules.color.rainbow-saturation": "Rainbow Saturation", + "hud.active-modules.color.rainbow-saturation.description": "", + "hud.active-modules.color.rainbow-brightness": "Rainbow Brightness", + "hud.active-modules.color.rainbow-brightness.description": "", + "hud.active-modules.color.module-info-color": "Module Info Color", + "hud.active-modules.color.module-info-color.description": "Color of module info text.", + "hud.active-modules.scale.custom-scale": "Custom Scale", + "hud.active-modules.scale.custom-scale.description": "Applies a custom scale to this hud element.", + "hud.active-modules.scale.scale": "Scale", + "hud.active-modules.scale.scale.description": "Custom scale.", + "hud.active-modules.background.background": "Background", + "hud.active-modules.background.background.description": "Displays background.", + "hud.active-modules.background.background-color": "Background Color", + "hud.active-modules.background.background-color.description": "Color used for the background.", + "hud.armor.general.orientation": "Orientation", + "hud.armor.general.orientation.description": "How to display armor.", + "hud.armor.general.flip-order": "Flip Order", + "hud.armor.general.flip-order.description": "Flips the order of armor items.", + "hud.armor.general.show-empty": "Show Empty", + "hud.armor.general.show-empty.description": "Renders barrier icons for empty slots.", + "hud.armor.durability.durability": "Durability", + "hud.armor.durability.durability.description": "How to display armor durability.", + "hud.armor.durability.durability-color": "Durability Color", + "hud.armor.durability.durability-color.description": "Color of the text.", + "hud.armor.durability.durability-shadow": "Durability Shadow", + "hud.armor.durability.durability-shadow.description": "Text shadow.", + "hud.armor.scale.custom-scale": "Custom Scale", + "hud.armor.scale.custom-scale.description": "Applies a custom scale to this hud element.", + "hud.armor.scale.scale": "Scale", + "hud.armor.scale.scale.description": "Custom scale.", + "hud.armor.background.background": "Background", + "hud.armor.background.background.description": "Displays background.", + "hud.armor.background.background-color": "Background Color", + "hud.armor.background.background-color.description": "Color used for the background.", + "hud.combat.general.range": "Range", + "hud.combat.general.range.description": "The range to target players.", + "hud.combat.enchantments.displayed-enchantments": "Displayed Enchantments", + "hud.combat.enchantments.displayed-enchantments.description": "The enchantments that are shown on nametags.", + "hud.combat.enchantments.enchantment-color": "Enchantment Color", + "hud.combat.enchantments.enchantment-color.description": "Color of enchantment text.", + "hud.combat.health.health-stage-1": "Health Stage 1", + "hud.combat.health.health-stage-1.description": "The color on the left of the health gradient.", + "hud.combat.health.health-stage-2": "Health Stage 2", + "hud.combat.health.health-stage-2.description": "The color in the middle of the health gradient.", + "hud.combat.health.health-stage-3": "Health Stage 3", + "hud.combat.health.health-stage-3.description": "The color on the right of the health gradient.", + "hud.combat.distance.distance": "Distance", + "hud.combat.distance.distance.description": "Shows the distance between you and the player.", + "hud.combat.distance.distance-stage-1": "Distance Stage 1", + "hud.combat.distance.distance-stage-1.description": "The color when a player is within 10 blocks of you.", + "hud.combat.distance.distance-stage-2": "Distance Stage 2", + "hud.combat.distance.distance-stage-2.description": "The color when a player is within 50 blocks of you.", + "hud.combat.distance.distance-stage-3": "Distance Stage 3", + "hud.combat.distance.distance-stage-3.description": "The color when a player is greater then 50 blocks away from you.", + "hud.combat.ping.ping": "Ping", + "hud.combat.ping.ping.description": "Shows the player's ping.", + "hud.combat.ping.ping-stage-1": "Ping Stage 1", + "hud.combat.ping.ping-stage-1.description": "Color of ping text when under 75.", + "hud.combat.ping.ping-stage-2": "Ping Stage 2", + "hud.combat.ping.ping-stage-2.description": "Color of ping text when between 75 and 200.", + "hud.combat.ping.ping-stage-3": "Ping Stage 3", + "hud.combat.ping.ping-stage-3.description": "Color of ping text when over 200.", + "hud.combat.scale.custom-scale": "Custom Scale", + "hud.combat.scale.custom-scale.description": "Applies a custom scale to this hud element.", + "hud.combat.scale.scale": "Scale", + "hud.combat.scale.scale.description": "Custom scale.", + "hud.combat.background.background": "Background", + "hud.combat.background.background.description": "Displays background.", + "hud.combat.background.background-color": "Background Color", + "hud.combat.background.background-color.description": "Color used for the background.", + "hud.compass.general.type": "Type", + "hud.compass.general.type.description": "Which type of direction information to show.", + "hud.compass.general.color-north": "Color North", + "hud.compass.general.color-north.description": "Color of north.", + "hud.compass.general.color-other": "Color Other", + "hud.compass.general.color-other.description": "Color of other directions.", + "hud.compass.general.shadow": "Shadow", + "hud.compass.general.shadow.description": "Text shadow.", + "hud.compass.scale.custom-scale": "Custom Scale", + "hud.compass.scale.custom-scale.description": "Apply custom scales to this hud element.", + "hud.compass.scale.text-scale": "Text Scale", + "hud.compass.scale.text-scale.description": "Scale to use for the letters.", + "hud.compass.scale.compass-scale": "Compass Scale", + "hud.compass.scale.compass-scale.description": "Scale of the whole HUD element.", + "hud.compass.background.background": "Background", + "hud.compass.background.background.description": "Displays background.", + "hud.compass.background.background-color": "Background Color", + "hud.compass.background.background-color.description": "Color used for the background.", + "hud.hole.general.safe-blocks": "Safe Blocks", + "hud.hole.general.safe-blocks.description": "Which blocks to consider safe.", + "hud.hole.scale.custom-scale": "Custom Scale", + "hud.hole.scale.custom-scale.description": "Applies a custom scale to this hud element.", + "hud.hole.scale.scale": "Scale", + "hud.hole.scale.scale.description": "Custom scale.", + "hud.hole.background.background": "Background", + "hud.hole.background.background.description": "Displays background.", + "hud.hole.background.background-color": "Background Color", + "hud.hole.background.background-color.description": "Color used for the background.", + "hud.inventory.general.containers": "Containers", + "hud.inventory.general.containers.description": "Shows the contents of a container when holding them.", + "hud.inventory.scale.custom-scale": "Custom Scale", + "hud.inventory.scale.custom-scale.description": "Applies a custom scale to this hud element.", + "hud.inventory.scale.scale": "Scale", + "hud.inventory.scale.scale.description": "Custom scale.", + "hud.inventory.background.background": "Background", + "hud.inventory.background.background.description": "Background of inventory viewer.", + "hud.inventory.background.background-color": "Background Color", + "hud.inventory.background.background-color.description": "Color used for the background.", + "hud.item.general.item": "Item", + "hud.item.general.item.description": "Item to display", + "hud.item.general.none-mode": "None Mode", + "hud.item.general.none-mode.description": "How to render the item when you don't have the specified item in your inventory.", + "hud.item.scale.custom-scale": "Custom Scale", + "hud.item.scale.`custom-scale`.description": "Applies a custom scale to this hud element.", + "hud.item.scale.scale": "Scale", + "hud.item.scale.scale.description": "Custom scale.", + "hud.item.background.background": "Background", + "hud.item.background.background.description": "Displays background.", + "hud.item.background.background-color": "Background Color", + "hud.item.background.background-color.description": "Color used for the background.", + "hud.lag-notifier.general.shadow": "Shadow", + "hud.lag-notifier.general.shadow.description": "Text shadow.", + "hud.lag-notifier.general.text-color": "Text Color", + "hud.lag-notifier.general.text-color.description": "A.", + "hud.lag-notifier.general.color-1": "Color 1", + "hud.lag-notifier.general.color-1.description": "First color.", + "hud.lag-notifier.general.color-2": "Color 2", + "hud.lag-notifier.general.color-2.description": "Second color.", + "hud.lag-notifier.general.color-3": "Color 3", + "hud.lag-notifier.general.color-3.description": "Third color.", + "hud.lag-notifier.scale.custom-scale": "Custom Scale", + "hud.lag-notifier.scale.custom-scale.description": "Applies a custom scale to this hud element.", + "hud.lag-notifier.scale.scale": "Scale", + "hud.lag-notifier.scale.scale.description": "Custom scale.", + "hud.lag-notifier.background.background": "Background", + "hud.lag-notifier.background.background.description": "Displays background.", + "hud.lag-notifier.background.background-color": "Background Color", + "hud.lag-notifier.background.background-color.description": "Color used for the background.", + "hud.map.general.mode": "Mode", + "hud.map.general.mode.description": "How to determine which map to render.", + "hud.map.general.slot-index": "Slot Index", + "hud.map.general.slot-index.description": "Which slot to grab the map from.", + "hud.map.general.map-id": "Map Id", + "hud.map.general.map-id.description": "Which map id to render from. Must be in your inventory!", + "hud.map.visual.scale": "Scale", + "hud.map.visual.scale.description": "How big to render the map.", + "hud.map.visual.background": "Background", + "hud.map.visual.background.description": "Displays background.", + "hud.map.visual.background-color": "Background Color", + "hud.map.visual.background-color.description": "Color used for the background.", + "hud.module-infos.general.modules": "Modules", + "hud.module-infos.general.modules.description": "Which modules to display", + "hud.module-infos.general.additional-info": "Additional Info", + "hud.module-infos.general.additional-info.description": "Shows additional info from the module next to the name in the module info list.", + "hud.module-infos.general.text-shadow": "Text Shadow", + "hud.module-infos.general.text-shadow.description": "Renders shadow behind text.", + "hud.module-infos.general.module-color": "Module Color", + "hud.module-infos.general.module-color.description": "Module color.", + "hud.module-infos.general.on-color": "On Color", + "hud.module-infos.general.on-color.description": "Color when module is on.", + "hud.module-infos.general.off-color": "Off Color", + "hud.module-infos.general.off-color.description": "Color when module is off.", + "hud.module-infos.general.alignment": "Alignment", + "hud.module-infos.general.alignment.description": "Horizontal alignment.", + "hud.player-model.general.copy-yaw": "Copy Yaw", + "hud.player-model.general.copy-yaw.description": "Makes the player model's yaw equal to yours.", + "hud.player-model.general.custom-yaw": "Custom Yaw", + "hud.player-model.general.custom-yaw.description": "Custom yaw for when copy yaw is off.", + "hud.player-model.general.copy-pitch": "Copy Pitch", + "hud.player-model.general.copy-pitch.description": "Makes the player model's pitch equal to yours.", + "hud.player-model.general.custom-pitch": "Custom Pitch", + "hud.player-model.general.custom-pitch.description": "Custom pitch for when copy pitch is off.", + "hud.player-model.general.center-orientation": "Center Orientation", + "hud.player-model.general.center-orientation.description": "Which direction the player faces when the HUD model faces directly forward.", + "hud.player-model.scale.custom-scale": "Custom Scale", + "hud.player-model.scale.custom-scale.description": "Applies a custom scale to this hud element.", + "hud.player-model.scale.scale": "Scale", + "hud.player-model.scale.scale.description": "Custom scale.", + "hud.player-model.background.background": "Background", + "hud.player-model.background.background.description": "Displays background.", + "hud.player-model.background.background-color": "Background Color", + "hud.player-model.background.background-color.description": "Color used for the background.", + "hud.player-radar.general.limit": "Limit", + "hud.player-radar.general.limit.description": "The max number of players to show.", + "hud.player-radar.general.distance": "Distance", + "hud.player-radar.general.distance.description": "Shows the distance to the player next to their name.", + "hud.player-radar.general.display-friends": "Display Friends", + "hud.player-radar.general.display-friends.description": "Whether to show friends or not.", + "hud.player-radar.general.shadow": "Shadow", + "hud.player-radar.general.shadow.description": "Renders shadow behind text.", + "hud.player-radar.general.primary-color": "Primary Color", + "hud.player-radar.general.primary-color.description": "Primary color.", + "hud.player-radar.general.secondary-color": "Secondary Color", + "hud.player-radar.general.secondary-color.description": "Secondary color.", + "hud.player-radar.general.alignment": "Alignment", + "hud.player-radar.general.alignment.description": "Horizontal alignment.", + "hud.player-radar.general.border": "Border", + "hud.player-radar.general.border.description": "How much space to add around the element.", + "hud.player-radar.scale.custom-scale": "Custom Scale", + "hud.player-radar.scale.custom-scale.description": "Applies a custom scale to this hud element.", + "hud.player-radar.scale.scale": "Scale", + "hud.player-radar.scale.scale.description": "Custom scale.", + "hud.player-radar.background.background": "Background", + "hud.player-radar.background.background.description": "Displays background.", + "hud.player-radar.background.background-color": "Background Color", + "hud.player-radar.background.background-color.description": "Color used for the background.", + "hud.potion-timers.general.hidden-effects": "Hidden Effects", + "hud.potion-timers.general.hidden-effects.description": "Which effects not to show in the list.", + "hud.potion-timers.general.show-ambient": "Show Ambient", + "hud.potion-timers.general.show-ambient.description": "Whether to show ambient effects like from beacons and conduits.", + "hud.potion-timers.general.color-mode": "Color Mode", + "hud.potion-timers.general.color-mode.description": "What color to use for effects.", + "hud.potion-timers.general.flat-color": "Flat Color", + "hud.potion-timers.general.flat-color.description": "Color for flat color mode.", + "hud.potion-timers.general.rainbow-speed": "Rainbow Speed", + "hud.potion-timers.general.rainbow-speed.description": "Rainbow speed of rainbow color mode.", + "hud.potion-timers.general.rainbow-spread": "Rainbow Spread", + "hud.potion-timers.general.rainbow-spread.description": "Rainbow spread of rainbow color mode.", + "hud.potion-timers.general.rainbow-saturation": "Rainbow Saturation", + "hud.potion-timers.general.rainbow-saturation.description": "Saturation of rainbow color mode.", + "hud.potion-timers.general.rainbow-brightness": "Rainbow Brightness", + "hud.potion-timers.general.rainbow-brightness.description": "Brightness of rainbow color mode.", + "hud.potion-timers.general.shadow": "Shadow", + "hud.potion-timers.general.shadow.description": "Renders shadow behind text.", + "hud.potion-timers.general.alignment": "Alignment", + "hud.potion-timers.general.alignment.description": "Horizontal alignment.", + "hud.potion-timers.general.border": "Border", + "hud.potion-timers.general.border.description": "How much space to add around the element.", + "hud.potion-timers.scale.custom-scale": "Custom Scale", + "hud.potion-timers.scale.custom-scale.description": "Applies a custom scale to this hud element.", + "hud.potion-timers.scale.scale": "Scale", + "hud.potion-timers.scale.scale.description": "Custom scale.", + "hud.potion-timers.background.background": "Background", + "hud.potion-timers.background.background.description": "Displays background.", + "hud.potion-timers.background.background-color": "Background Color", + "hud.potion-timers.background.background-color.description": "Color used for the background.", + "hud.text.general.text": "Text", + "hud.text.general.text.description": "Text to display with Starscript.", + "hud.text.general.update-delay": "Update Delay", + "hud.text.general.update-delay.description": "Update delay in ticks", + "hud.text.general.shadow": "Shadow", + "hud.text.general.shadow.description": "Renders shadow behind text.", + "hud.text.general.border": "Border", + "hud.text.general.border.description": "How much space to add around the text.", + "hud.text.shown.shown": "Shown", + "hud.text.shown.shown.description": "When this text element is shown.", + "hud.text.shown.condition": "Condition", + "hud.text.shown.condition.description": "Condition to check when shown is not Always.", + "hud.text.scale.custom-scale": "Custom Scale", + "hud.text.scale.custom-scale.description": "Applies a custom scale to this hud element.", + "hud.text.scale.scale": "Scale", + "hud.text.scale.scale.description": "Custom scale.", + "hud.text.background.background": "Background", + "hud.text.background.background.description": "Displays background.", + "hud.text.background.background-color": "Background Color", + "hud.text.background.background-color.description": "Color used for the background.", + + "macro.general.name": "Name", + "macro.general.name.description": "The name of the macro.", + "macro.general.messages": "Messages", + "macro.general.messages.description": "The messages for the macro to send.", + "macro.general.keybind": "Keybind", + "macro.general.keybind.description": "The bind to run the macro.", + + "profile.general.name": "Name", + "profile.general.name.description": "The name of the profile.", + "profile.general.load-on-join": "Load On Join", + "profile.general.load-on-join.description": "Which servers to set this profile as active when joining.", + "profile.save.hud": "Hud", + "profile.save.hud.description": "Whether the profile should save hud.", + "profile.save.macros": "Macros", + "profile.save.macros.description": "Whether the profile should save macros.", + "profile.save.modules": "Modules", + "profile.save.modules.description": "Whether the profile should save modules.", + "profile.save.waypoints": "Waypoints", + "profile.save.waypoints.description": "Whether the profile should save waypoints.", + + "proxies.refreshing.threads": "Threads", + "proxies.refreshing.threads.description": "The number of concurrent threads to check proxies with.", + "proxies.refreshing.timeout": "Timeout", + "proxies.refreshing.timeout.description": "The timeout in milliseconds for checking proxies.", + "proxies.refreshing.retries-on-timeout": "Retries On Timeout", + "proxies.refreshing.retries-on-timeout.description": "How many additional times to check a proxy if the check times out.", + "proxies.cleanup.sort-by-latency": "Sort By Latency", + "proxies.cleanup.sort-by-latency.description": "Whether to sort the proxy list by latency.", + "proxies.cleanup.prune-dead": "Prune Dead", + "proxies.cleanup.prune-dead.description": "Whether to prune dead proxies.", + "proxies.cleanup.prune-by-latency": "Prune By Latency", + "proxies.cleanup.prune-by-latency.description": "Prune proxies at or above this latency in ms. 0 to disable.", + "proxies.cleanup.prune-to-count": "Prune To Count", + "proxies.cleanup.prune-to-count.description": "If in excess, prune the number of proxies to this count. 0 to disable. Prioritises by latency.", + + "proxy.general.name": "Name", + "proxy.general.name.description": "The name of the proxy.", + "proxy.general.type": "Type", + "proxy.general.type.description": "The type of proxy.", + "proxy.general.address": "Address", + "proxy.general.address.description": "The ip address of the proxy.", + "proxy.general.port": "Port", + "proxy.general.port.description": "The port of the proxy.", + "proxy.general.enabled": "Enabled", + "proxy.general.enabled.description": "Whether the proxy is enabled.", + "proxy.optional.username": "Username", + "proxy.optional.username.description": "The username of the proxy.", + "proxy.optional.password": "Password", + "proxy.optional.password.description": "The password of the proxy.", + + "waypoint.visual.name": "Name", + "waypoint.visual.name.description": "The name of the waypoint.", + "waypoint.visual.icon": "Icon", + "waypoint.visual.icon.description": "The icon of the waypoint.", + "waypoint.visual.color": "Color", + "waypoint.visual.color.description": "The color of the waypoint.", + "waypoint.visual.visible": "Visible", + "waypoint.visual.visible.description": "Whether to show the waypoint.", + "waypoint.visual.max-visible-distance": "Max Visible Distance", + "waypoint.visual.max-visible-distance.description": "How far away to render the waypoint.", + "waypoint.visual.scale": "Scale", + "waypoint.visual.scale.description": "The scale of the waypoint.", + "waypoint.position.location": "Location", + "waypoint.position.location.description": "The location of the waypoint.", + "waypoint.position.dimension": "Dimension", + "waypoint.position.dimension.description": "Which dimension the waypoint is in.", + "waypoint.position.opposite-dimension": "Opposite Dimension", + "waypoint.position.opposite-dimension.description": "Whether to show the waypoint in the opposite dimension.", + "waypoint.position.action-when-near": "Action When Near", + "waypoint.position.action-when-near.description": "Action to be performed when the player is near.", + "waypoint.position.action-when-near-distance": "Action When Near Distance", + "waypoint.position.action-when-near-distance.description": "How close (in blocks) the player has to be for the near action to be performed.", + + "theme.meteor.general.scale": "Scale", + "theme.meteor.general.scale.description": "Scale of the GUI.", + "theme.meteor.general.module-alignment": "Module Alignment", + "theme.meteor.general.module-alignment.description": "How module titles are aligned.", + "theme.meteor.general.category-icons": "Category Icons", + "theme.meteor.general.category-icons.description": "Adds item icons to module categories.", + "theme.meteor.general.hide-HUD": "Hide HUD", + "theme.meteor.general.hide-HUD.description": "Hide HUD when in GUI.", + "theme.meteor.colors.accent-color": "Accent Color", + "theme.meteor.colors.accent-color.description": "Main color of the GUI.", + "theme.meteor.colors.checkbox-color": "Checkbox Color", + "theme.meteor.colors.checkbox-color.description": "Color of checkbox.", + "theme.meteor.colors.plus-color": "Plus Color", + "theme.meteor.colors.plus-color.description": "Color of plus button.", + "theme.meteor.colors.minus-color": "Minus Color", + "theme.meteor.colors.minus-color.description": "Color of minus button.", + "theme.meteor.colors.favorite-color": "Favorite Color", + "theme.meteor.colors.favorite-color.description": "Color of checked favorite button.", + "theme.meteor.text.text-color": "Text Color", + "theme.meteor.text.text-color.description": "Color of text.", + "theme.meteor.text.text-secondary-text-color": "Text Secondary Text Color", + "theme.meteor.text.text-secondary-text-color.description": "Color of secondary text.", + "theme.meteor.text.text-highlight-color": "Text Highlight Color", + "theme.meteor.text.text-highlight-color.description": "Color of text highlighting.", + "theme.meteor.text.title-text-color": "Title Text Color", + "theme.meteor.text.title-text-color.description": "Color of title text.", + "theme.meteor.text.logged-in-text-color": "Logged In Text Color", + "theme.meteor.text.logged-in-text-color.description": "Color of logged in account name.", + "theme.meteor.text.placeholder-color": "Placeholder Color", + "theme.meteor.text.placeholder-color.description": "Color of placeholder text.", + "theme.meteor.background.background-color": "Background Color", + "theme.meteor.background.background-color.description": "Color of background.", + "theme.meteor.background.hovered-background-color": "Hovered Background Color", + "theme.meteor.background.hovered-background-color.description": "Color of background when hovered.", + "theme.meteor.background.pressed-background-color": "Pressed Background Color", + "theme.meteor.background.pressed-background-color.description": "Color of background when pressed.", + "theme.meteor.background.module-background-color": "Module Background Color", + "theme.meteor.background.module-background-color.description": "Color of module background when active.", + "theme.meteor.outline.outline-color": "Outline Color", + "theme.meteor.outline.outline-color.description": "Color of outline.", + "theme.meteor.outline.hovered-outline-color": "Hovered Outline Color", + "theme.meteor.outline.hovered-outline-color.description": "Color of outline when hovered.", + "theme.meteor.outline.pressed-outline-color": "Pressed Outline Color", + "theme.meteor.outline.pressed-outline-color.description": "Color of outline when pressed.", + "theme.meteor.separator.separator-text-color": "Separator Text Color", + "theme.meteor.separator.separator-text-color.description": "Color of separator text", + "theme.meteor.separator.separator-center-color": "Separator Center Color", + "theme.meteor.separator.separator-center-color.description": "Center color of separators.", + "theme.meteor.separator.separator-edges-color": "Separator Edges Color", + "theme.meteor.separator.separator-edges-color.description": "Color of separator edges.", + "theme.meteor.scrollbar.Scrollbar-color": "Scrollbar Color", + "theme.meteor.scrollbar.Scrollbar-color.description": "Color of Scrollbar.", + "theme.meteor.scrollbar.hovered-Scrollbar-color": "Hovered Scrollbar Color", + "theme.meteor.scrollbar.hovered-Scrollbar-color.description": "Color of Scrollbar when hovered.", + "theme.meteor.scrollbar.pressed-Scrollbar-color": "Pressed Scrollbar Color", + "theme.meteor.scrollbar.pressed-Scrollbar-color.description": "Color of Scrollbar when pressed.", + "theme.meteor.slider.slider-handle-color": "Slider Handle Color", + "theme.meteor.slider.slider-handle-color.description": "Color of slider-handle.", + "theme.meteor.slider.hovered-slider-handle-color": "Hovered Slider Handle Color", + "theme.meteor.slider.hovered-slider-handle-color.description": "Color of slider-handle when hovered.", + "theme.meteor.slider.pressed-slider-handle-color": "Pressed Slider Handle Color", + "theme.meteor.slider.pressed-slider-handle-color.description": "Color of slider-handle when pressed.", + "theme.meteor.slider.slider-left-color": "Slider Left Color", + "theme.meteor.slider.slider-left-color.description": "Color of slider left part.", + "theme.meteor.slider.slider-right-color": "Slider Right Color", + "theme.meteor.slider.slider-right-color.description": "Color of slider right part.", + "theme.meteor.starscript.starscript-text-color": "Starscript Text Color", + "theme.meteor.starscript.starscript-text-color.description": "Color of text in Starscript code.", + "theme.meteor.starscript.starscript-braces-color": "Starscript Braces Color", + "theme.meteor.starscript.starscript-braces-color.description": "Color of braces in Starscript code.", + "theme.meteor.starscript.starscript-parenthesis-color": "Starscript Parenthesis Color", + "theme.meteor.starscript.starscript-parenthesis-color.description": "Color of parenthesis in Starscript code.", + "theme.meteor.starscript.starscript-dots-color": "Starscript Dots Color", + "theme.meteor.starscript.starscript-dots-color.description": "Color of dots in starscript code.", + "theme.meteor.starscript.starscript-commas-color": "Starscript Commas Color", + "theme.meteor.starscript.starscript-commas-color.description": "Color of commas in starscript code.", + "theme.meteor.starscript.starscript-operators-color": "Starscript Operators Color", + "theme.meteor.starscript.starscript-operators-color.description": "Color of operators in Starscript code.", + "theme.meteor.starscript.starscript-strings-color": "Starscript Strings Color", + "theme.meteor.starscript.starscript-strings-color.description": "Color of strings in Starscript code.", + "theme.meteor.starscript.starscript-numbers-color": "Starscript Numbers Color", + "theme.meteor.starscript.starscript-numbers-color.description": "Color of numbers in Starscript code.", + "theme.meteor.starscript.starscript-keywords-color": "Starscript Keywords Color", + "theme.meteor.starscript.starscript-keywords-color.description": "Color of keywords in Starscript code.", + "theme.meteor.starscript.starscript-accessed-objects-color": "Starscript Accessed Objects Color", + "theme.meteor.starscript.starscript-accessed-objects-color.description": "Color of accessed objects (before a dot) in Starscript code.", + + "category.combat": "Combat", + "category.player": "Player", + "category.movement": "Movement", + "category.render": "Render", + "category.world": "World", + "category.misc": "Misc", + + "setting.group.general": "General", + "setting.group.entities": "Entities", + "setting.group.whitelist": "Whitelist", + "setting.group.visual": "Visual", + "setting.group.arrows": "Arrows", + "setting.group.movement": "Movement", + "setting.group.pathing": "Pathing", + "setting.group.screens": "Screens", + "setting.group.yaw": "Yaw", + "setting.group.pitch": "Pitch", + "setting.group.threshold": "Threshold", + "setting.group.players": "Players", + "setting.group.items": "Items", + "setting.group.colors": "Colors", + "setting.group.water": "Water", + "setting.group.lava": "Lava", + "setting.group.targeting": "Targeting", + "setting.group.inventory": "Inventory", + "setting.group.pause": "Pause", + "setting.group.filter": "Filter", + "setting.group.longer-chat": "Longer Chat", + "setting.group.prefix": "Prefix", + "setting.group.suffix": "Suffix", + "setting.group.toggles": "Toggles", + "setting.group.note-map": "Note Map", + "setting.group.render": "Render", + "setting.group.scrolling": "Scrolling", + "setting.group.main-hand": "Main Hand", + "setting.group.off-hand": "Off Hand", + "setting.group.arm": "Arm", + "setting.group.opened-rendering": "Opened Rendering", + "setting.group.potions": "Potions", + "setting.group.health": "Health", + "setting.group.death-position": "Death Position", + "setting.group.overlay": "Overlay", + "setting.group.hud": "Hud", + "setting.group.world": "World", + "setting.group.entity": "Entity", + "setting.group.swapping-options": "Swapping Options", + "setting.group.sword-enchants": "Sword Enchants", + "setting.group.mace-enchants": "Mace Enchants", + "setting.group.other-enchants": "Other Enchants", + "setting.group.weapon-options": "Weapon Options", + "setting.group.blocks": "Blocks", + "setting.group.through-walls": "Through Walls", + "setting.group.crystals": "Crystals", + "setting.group.hand": "Hand", + "setting.group.sky": "Sky", + "setting.group.place": "Place", + "setting.group.break": "Break", + "setting.group.combat": "Combat", + "setting.group.totem": "Totem", + "setting.group.previews": "Previews", + "setting.group.other": "Other", + "setting.group.hide-flags": "Hide Flags", + "setting.group.safety": "Safety", + "setting.group.mace": "Mace", + "setting.group.switch": "Switch", + "setting.group.face-place": "Face Place", + "setting.group.digging": "Digging", + "setting.group.paving": "Paving", + "setting.group.render-digging": "Render Digging", + "setting.group.render-paving": "Render Paving", + "setting.group.crossbows": "Crossbows", + "setting.group.timing": "Timing", + "setting.group.sorting": "Sorting", + "setting.group.anti-drop": "Anti Drop", + "setting.group.auto-drop": "Auto Drop", + "setting.group.steal-and-dump": "Steal And Dump", + "setting.group.auto-steal": "Auto Steal", + "setting.group.line-1": "Line 1", + "setting.group.line-2": "Line 2", + "setting.group.anti-kick": "Anti Kick", + "setting.group.appearance": "Appearance", + "setting.group.autopilot": "Autopilot", + "setting.group.totem-pops": "Totem Pops", + "setting.group.visual-range": "Visual Range", + "setting.group.pearl": "Pearl", + "setting.group.joins/leaves": "Joins/leaves", + "setting.group.actions": "Actions", + "setting.group.messages": "Messages", + "setting.group.control": "Control", + "setting.group.speed": "Speed", + "setting.group.flight": "Flight", + "setting.group.range": "Range", + "setting.group.smart": "Smart", + "setting.group.editor": "Editor", + "setting.group.bind": "Bind", + "setting.group.modules": "Modules", + "setting.group.chat": "Chat", + "setting.group.misc": "Misc", + "setting.group.save": "Save", + "setting.group.refreshing": "Refreshing", + "setting.group.cleanup": "Cleanup", + "setting.group.optional": "Optional", + "setting.group.position": "Position", + "setting.group.text": "Text", + "setting.group.background": "Background", + "setting.group.outline": "Outline", + "setting.group.separator": "Separator", + "setting.group.scrollbar": "Scrollbar", + "setting.group.slider": "Slider", + "setting.group.starscript": "Starscript", + "setting.group.scale": "Scale", + "setting.group.shown": "Shown", + "setting.group.durability": "Durability", + "setting.group.enchantments": "Enchantments", + "setting.group.distance": "Distance", + "setting.group.ping": "Ping", + "setting.group.anchors": "Anchors", + "setting.group.tracer": "Tracer", + "setting.group.base": "Base", + + "module.base.bind": "Bind", + "module.base.bind.bind": "Bind: ", + "module.base.bind.toggle-on-release": "Toggle on bind release: ", + "module.base.bind.chat-feedback": "Chat Feedback: ", + "module.base.active": "Active: ", + "module.base.copy-config": "Copy config", + "module.base.paste-config": "Paste config", + "module.base.from": "From: ", + + "module.air-jump": "Air Jump", + "module.air-jump.description": "Lets you jump in the air.", + "module.air-jump.general.maintain-level": "Maintain Level", + "module.air-jump.general.maintain-level.description": "Maintains your current Y level when holding the jump key.", + + "module.auto-fish": "Auto Fish", + "module.auto-fish.description": "Automatically fishes for you.", + "module.auto-fish.general.auto-switch": "Auto Switch", + "module.auto-fish.general.auto-switch.description": "Automatically switch to a fishing rod.", + "module.auto-fish.general.anti-break": "Anti Break", + "module.auto-fish.general.anti-break.description": "Avoid using rods that would break if they were cast.", + "module.auto-fish.general.auto-cast": "Auto Cast", + "module.auto-fish.general.auto-cast.description": "Automatically cast the fishing rod.", + "module.auto-fish.general.cast-delay": "Cast Delay", + "module.auto-fish.general.cast-delay.description": "How long to wait between recasts if the bobber fails to land in water.", + "module.auto-fish.general.cast-delay-variance": "Cast Delay Variance", + "module.auto-fish.general.cast-delay-variance.description": "Maximum amount of randomness added to cast delay.", + "module.auto-fish.general.catch-delay": "Catch Delay", + "module.auto-fish.general.catch-delay.description": "How long to wait after hooking a fish to reel it in.", + "module.auto-fish.general.catch-delay-variance": "Catch Delay Variance", + "module.auto-fish.general.catch-delay-variance.description": "Maximum amount of randomness added to catch delay.", + + "module.name-protect": "Name Protect", + "module.name-protect.description": "Hide player names and skins.", + "module.name-protect.general.name-protect": "Name Protect", + "module.name-protect.general.name-protect.description": "Hides your name client-side.", + "module.name-protect.general.name": "Name", + "module.name-protect.general.name.description": "Name to be replaced with.", + "module.name-protect.general.skin-protect": "Skin Protect", + "module.name-protect.general.skin-protect.description": "Make players become Steves.", + + "module.velocity": "Velocity", + "module.velocity.description": "Prevents you from being moved by external forces.", + "module.velocity.general.knockback": "Knockback", + "module.velocity.general.knockback.description": "Modifies the amount of knockback you take from attacks.", + "module.velocity.general.knockback-horizontal": "Knockback Horizontal", + "module.velocity.general.knockback-horizontal.description": "How much horizontal knockback you will take.", + "module.velocity.general.knockback-vertical": "Knockback Vertical", + "module.velocity.general.knockback-vertical.description": "How much vertical knockback you will take.", + "module.velocity.general.explosions": "Explosions", + "module.velocity.general.explosions.description": "Modifies your knockback from explosions.", + "module.velocity.general.explosions-horizontal": "Explosions Horizontal", + "module.velocity.general.explosions-horizontal.description": "How much velocity you will take from explosions horizontally.", + "module.velocity.general.explosions-vertical": "Explosions Vertical", + "module.velocity.general.explosions-vertical.description": "How much velocity you will take from explosions vertically.", + "module.velocity.general.liquids": "Liquids", + "module.velocity.general.liquids.description": "Modifies the amount you are pushed by flowing liquids.", + "module.velocity.general.liquids-horizontal": "Liquids Horizontal", + "module.velocity.general.liquids-horizontal.description": "How much velocity you will take from liquids horizontally.", + "module.velocity.general.liquids-vertical": "Liquids Vertical", + "module.velocity.general.liquids-vertical.description": "How much velocity you will take from liquids vertically.", + "module.velocity.general.entity-push": "Entity Push", + "module.velocity.general.entity-push.description": "Modifies the amount you are pushed by entities.", + "module.velocity.general.entity-push-amount": "Entity Push Amount", + "module.velocity.general.entity-push-amount.description": "How much you will be pushed.", + "module.velocity.general.blocks": "Blocks", + "module.velocity.general.blocks.description": "Prevents you from being pushed out of blocks.", + "module.velocity.general.sinking": "Sinking", + "module.velocity.general.sinking.description": "Prevents you from sinking in liquids.", + "module.velocity.general.fishing": "Fishing", + "module.velocity.general.fishing.description": "Prevents you from being pulled by fishing rods.", + + "module.no-ghost-blocks": "No Ghost Blocks", + "module.no-ghost-blocks.description": "Attempts to prevent ghost blocks arising.", + "module.no-ghost-blocks.general.breaking": "Breaking", + "module.no-ghost-blocks.general.breaking.description": "Whether to apply for block breaking actions.", + "module.no-ghost-blocks.general.placing": "Placing", + "module.no-ghost-blocks.general.placing.description": "Whether to apply for block placement actions.", + + "module.bed-aura": "Bed Aura", + "module.bed-aura.description": "Automatically places and explodes beds in the Nether and End.", + "module.bed-aura.general.delay": "Delay", + "module.bed-aura.general.delay.description": "The delay between placing beds in ticks.", + "module.bed-aura.general.strict-direction": "Strict Direction", + "module.bed-aura.general.strict-direction.description": "Only places beds in the direction you are facing.", + "module.bed-aura.targeting.target-range": "Target Range", + "module.bed-aura.targeting.target-range.description": "The range at which players can be targeted.", + "module.bed-aura.targeting.target-priority": "Target Priority", + "module.bed-aura.targeting.target-priority.description": "How to filter targets within range.", + "module.bed-aura.targeting.min-damage": "Min Damage", + "module.bed-aura.targeting.min-damage.description": "The minimum damage to inflict on your target.", + "module.bed-aura.targeting.max-self-damage": "Max Self Damage", + "module.bed-aura.targeting.max-self-damage.description": "The maximum damage to inflict on yourself.", + "module.bed-aura.targeting.anti-suicide": "Anti Suicide", + "module.bed-aura.targeting.anti-suicide.description": "Will not place and break beds if they will kill you.", + "module.bed-aura.inventory.auto-move": "Auto Move", + "module.bed-aura.inventory.auto-move.description": "Moves beds into a selected hotbar slot.", + "module.bed-aura.inventory.auto-move-slot": "Auto Move Slot", + "module.bed-aura.inventory.auto-move-slot.description": "The slot auto move moves beds to.", + "module.bed-aura.inventory.auto-switch": "Auto Switch", + "module.bed-aura.inventory.auto-switch.description": "Switches to and from beds automatically.", + "module.bed-aura.pause.pause-on-eat": "Pause On Eat", + "module.bed-aura.pause.pause-on-eat.description": "Pauses while eating.", + "module.bed-aura.pause.pause-on-drink": "Pause On Drink", + "module.bed-aura.pause.pause-on-drink.description": "Pauses while drinking.", + "module.bed-aura.pause.pause-on-mine": "Pause On Mine", + "module.bed-aura.pause.pause-on-mine.description": "Pauses while mining.", + "module.bed-aura.render.swing": "Swing", + "module.bed-aura.render.swing.description": "Whether to swing hand client-side.", + "module.bed-aura.render.render": "Render", + "module.bed-aura.render.render.description": "Renders the block where it is placing a bed.", + "module.bed-aura.render.shape-mode": "Shape Mode", + "module.bed-aura.render.shape-mode.description": "How the shapes are rendered.", + "module.bed-aura.render.side-color": "Side Color", + "module.bed-aura.render.side-color.description": "The side color for positions to be placed.", + "module.bed-aura.render.line-color": "Line Color", + "module.bed-aura.render.line-color.description": "The line color for positions to be placed.", + + "module.auto-jump": "Auto Jump", + "module.auto-jump.description": "Automatically jumps.", + "module.auto-jump.general.mode": "Mode", + "module.auto-jump.general.mode.description": "The method of jumping.", + "module.auto-jump.general.jump-if": "Jump If", + "module.auto-jump.general.jump-if.description": "Jump if.", + "module.auto-jump.general.velocity-height": "Velocity Height", + "module.auto-jump.general.velocity-height.description": "The distance that velocity mode moves you.", + + "module.ambience": "Ambience", + "module.ambience.description": "Change the color of various pieces of the environment.", + "module.ambience.sky.end-sky": "End Sky", + "module.ambience.sky.end-sky.description": "Makes the sky like the end.", + "module.ambience.sky.custom-sky-color": "Custom Sky Color", + "module.ambience.sky.custom-sky-color.description": "Whether the sky color should be changed.", + "module.ambience.sky.overworld-sky-color": "Overworld Sky Color", + "module.ambience.sky.overworld-sky-color.description": "The color of the overworld sky.", + "module.ambience.sky.nether-sky-color": "Nether Sky Color", + "module.ambience.sky.nether-sky-color.description": "The color of the nether sky.", + "module.ambience.sky.end-sky-color": "End Sky Color", + "module.ambience.sky.end-sky-color.description": "The color of the end sky.", + "module.ambience.sky.custom-cloud-color": "Custom Cloud Color", + "module.ambience.sky.custom-cloud-color.description": "Whether the clouds color should be changed.", + "module.ambience.sky.cloud-color": "Cloud Color", + "module.ambience.sky.cloud-color.description": "The color of the clouds.", + "module.ambience.sky.custom-lightning-color": "Custom Lightning Color", + "module.ambience.sky.custom-lightning-color.description": "Whether the lightning color should be changed.", + "module.ambience.sky.lightning-color": "Lightning Color", + "module.ambience.sky.lightning-color.description": "The color of the lightning.", + "module.ambience.world.custom-grass-color": "Custom Grass Color", + "module.ambience.world.custom-grass-color.description": "Whether the grass color should be changed.", + "module.ambience.world.grass-color": "Grass Color", + "module.ambience.world.grass-color.description": "The color of the grass.", + "module.ambience.world.custom-foliage-color": "Custom Foliage Color", + "module.ambience.world.custom-foliage-color.description": "Whether the foliage color should be changed.", + "module.ambience.world.foliage-color": "Foliage Color", + "module.ambience.world.foliage-color.description": "The color of the foliage.", + "module.ambience.world.custom-water-color": "Custom Water Color", + "module.ambience.world.custom-water-color.description": "Whether the water color should be changed.", + "module.ambience.world.water-color": "Water Color", + "module.ambience.world.water-color.description": "The color of the water.", + "module.ambience.world.custom-lava-color": "Custom Lava Color", + "module.ambience.world.custom-lava-color.description": "Whether the lava color should be changed.", + "module.ambience.world.lava-color": "Lava Color", + "module.ambience.world.lava-color.description": "The color of the lava.", + "module.ambience.world.custom-fog-color": "Custom Fog Color", + "module.ambience.world.custom-fog-color.description": "Whether the fog color should be changed.", + "module.ambience.world.fog-color": "Fog Color", + "module.ambience.world.fog-color.description": "The color of the fog.", + + "module.better-tooltips": "Better Tooltips", + "module.better-tooltips.description": "Displays more useful tooltips for certain items.", + "module.better-tooltips.general.display-when": "Display When", + "module.better-tooltips.general.display-when.description": "When to display previews.", + "module.better-tooltips.general.keybind": "Keybind", + "module.better-tooltips.general.keybind.description": "The bind for keybind mode.", + "module.better-tooltips.general.open-contents": "Open Contents", + "module.better-tooltips.general.open-contents.description": "Opens a GUI window with the inventory of the storage block or book when you click the item.", + "module.better-tooltips.general.open-contents-keybind": "Open Contents Keybind", + "module.better-tooltips.general.open-contents-keybind.description": "Key to open contents (containers, books, etc.) when pressed on items.", + "module.better-tooltips.general.pause-in-creative": "Pause In Creative", + "module.better-tooltips.general.pause-in-creative.description": "Pauses middle click open while the player is in creative mode.", + "module.better-tooltips.previews.containers": "Containers", + "module.better-tooltips.previews.containers.description": "Shows a preview of a containers when hovering over it in an inventory.", + "module.better-tooltips.previews.compact-shulker-tooltip": "Compact Shulker Tooltip", + "module.better-tooltips.previews.compact-shulker-tooltip.description": "Compacts the lines of the shulker tooltip.", + "module.better-tooltips.previews.echests": "Echests", + "module.better-tooltips.previews.echests.description": "Shows a preview of your echest when hovering over it in an inventory.", + "module.better-tooltips.previews.maps": "Maps", + "module.better-tooltips.previews.maps.description": "Shows a preview of a map when hovering over it in an inventory.", + "module.better-tooltips.previews.map-scale": "Map Scale", + "module.better-tooltips.previews.map-scale.description": "The scale of the map preview.", + "module.better-tooltips.previews.books": "Books", + "module.better-tooltips.previews.books.description": "Shows contents of a book when hovering over it in an inventory.", + "module.better-tooltips.previews.banners": "Banners", + "module.better-tooltips.previews.banners.description": "Shows banners' patterns when hovering over it in an inventory. Also works with shields.", + "module.better-tooltips.previews.entities-in-buckets": "Entities In Buckets", + "module.better-tooltips.previews.entities-in-buckets.description": "Shows entities in buckets when hovering over it in an inventory.", + "module.better-tooltips.previews.bundles": "Bundles", + "module.better-tooltips.previews.bundles.description": "Shows a preview of bundle contents when hovering over it in an inventory.", + "module.better-tooltips.previews.food-info": "Food Info", + "module.better-tooltips.previews.food-info.description": "Shows hunger and saturation values for food items.", + "module.better-tooltips.other.byte-size": "Byte Size", + "module.better-tooltips.other.byte-size.description": "Displays an item's size in bytes in the tooltip.", + "module.better-tooltips.other.byte-size-format": "Byte Size Format", + "module.better-tooltips.other.byte-size-format.description": "The format by which to display the item's byte size.", + "module.better-tooltips.other.status-effects": "Status Effects", + "module.better-tooltips.other.status-effects.description": "Adds list of status effects to tooltips of food items.", + "module.better-tooltips.hide-flags.tooltip": "Tooltip", + "module.better-tooltips.hide-flags.tooltip.description": "Show the tooltip when it's hidden.", + "module.better-tooltips.hide-flags.tooltip-components": "Tooltip Components", + "module.better-tooltips.hide-flags.tooltip-components.description": "Shows tooltip components when they're hidden - e.g. enchantments, attributes, lore, etc.", + + "module.notifier": "Notifier", + "module.notifier.description": "Notifies you of different events.", + "module.notifier.totem-pops.totem-pops": "Totem Pops", + "module.notifier.totem-pops.totem-pops.description": "Notifies you when a player pops a totem.", + "module.notifier.totem-pops.distance-check": "Distance Check", + "module.notifier.totem-pops.distance-check.description": "Limits the distance in which the pops are recognized.", + "module.notifier.totem-pops.player-radius": "Player Radius", + "module.notifier.totem-pops.player-radius.description": "The radius in which to log totem pops.", + "module.notifier.totem-pops.ignore-own": "Ignore Own", + "module.notifier.totem-pops.ignore-own.description": "Ignores your own totem pops.", + "module.notifier.totem-pops.ignore-friends": "Ignore Friends", + "module.notifier.totem-pops.ignore-friends.description": "Ignores friends totem pops.", + "module.notifier.totem-pops.ignore-others": "Ignore Others", + "module.notifier.totem-pops.ignore-others.description": "Ignores other players totem pops.", + "module.notifier.visual-range.visual-range": "Visual Range", + "module.notifier.visual-range.visual-range.description": "Notifies you when an entity enters your render distance.", + "module.notifier.visual-range.event": "Event", + "module.notifier.visual-range.event.description": "When to log the entities.", + "module.notifier.visual-range.entities": "Entities", + "module.notifier.visual-range.entities.description": "Which entities to notify about.", + "module.notifier.visual-range.ignore-friends": "Ignore Friends", + "module.notifier.visual-range.ignore-friends.description": "Ignores friends.", + "module.notifier.visual-range.ignore-fake-players": "Ignore Fake Players", + "module.notifier.visual-range.ignore-fake-players.description": "Ignores fake players.", + "module.notifier.visual-range.sound": "Sound", + "module.notifier.visual-range.sound.description": "Emits a sound effect on enter / leave", + "module.notifier.pearl.pearl": "Pearl", + "module.notifier.pearl.pearl.description": "Notifies you when a player is teleported using an ender pearl.", + "module.notifier.pearl.ignore-own": "Ignore Own", + "module.notifier.pearl.ignore-own.description": "Ignores your own pearls.", + "module.notifier.pearl.ignore-friends": "Ignore Friends", + "module.notifier.pearl.ignore-friends.description": "Ignores friends pearls.", + "module.notifier.joins/leaves.player-joins-leaves": "Player Joins Leaves", + "module.notifier.joins/leaves.player-joins-leaves.description": "How to handle player join/leave notifications.", + "module.notifier.joins/leaves.notification-delay": "Notification Delay", + "module.notifier.joins/leaves.notification-delay.description": "How long to wait in ticks before posting the next join/leave notification in your chat.", + "module.notifier.joins/leaves.simple-notifications": "Simple Notifications", + "module.notifier.joins/leaves.simple-notifications.description": "Display join/leave notifications without a prefix, to reduce chat clutter.", + + "module.item-physics": "Item Physics", + "module.item-physics.description": "Applies physics to items on the ground.", + "module.item-physics.general.random-rotation": "Random Rotation", + "module.item-physics.general.random-rotation.description": "Adds a random rotation to every item.", + + "module.air-place": "Air Place", + "module.air-place.description": "Places a block where your crosshair is pointing at.", + "module.air-place.general.render": "Render", + "module.air-place.general.render.description": "Renders a block overlay where the obsidian will be placed.", + "module.air-place.general.shape-mode": "Shape Mode", + "module.air-place.general.shape-mode.description": "How the shapes are rendered.", + "module.air-place.general.side-color": "Side Color", + "module.air-place.general.side-color.description": "The color of the sides of the blocks being rendered.", + "module.air-place.general.line-color": "Line Color", + "module.air-place.general.line-color.description": "The color of the lines of the blocks being rendered.", + "module.air-place.range.custom-range": "Custom Range", + "module.air-place.range.custom-range.description": "Use custom range for air place.", + "module.air-place.range.range": "Range", + "module.air-place.range.range.description": "Custom range to place at.", + + "module.enderman-look": "Enderman Look", + "module.enderman-look.description": "Either looks at all Endermen or prevents you from looking at Endermen.", + "module.enderman-look.general.look-mode": "Look Mode", + "module.enderman-look.general.look-mode.description": "How this module behaves.", + "module.enderman-look.general.stun-hostiles": "Stun Hostiles", + "module.enderman-look.general.stun-hostiles.description": "Automatically stares at hostile endermen to stun them in place.", + + "module.excavator": "Excavator", + "module.excavator.description": "Excavate a selection area.", + "module.excavator.general.selection-bind": "Selection Bind", + "module.excavator.general.selection-bind.description": "Bind to draw selection.", + "module.excavator.general.log-selection": "Log Selection", + "module.excavator.general.log-selection.description": "Logs the selection coordinates to the chat.", + "module.excavator.general.keep-active": "Keep Active", + "module.excavator.general.keep-active.description": "Keep the module active after finishing the excavation.", + "module.excavator.rendering.shape-mode": "Shape Mode", + "module.excavator.rendering.shape-mode.description": "How the shapes are rendered.", + "module.excavator.rendering.side-color": "Side Color", + "module.excavator.rendering.side-color.description": "The side color.", + "module.excavator.rendering.line-color": "Line Color", + "module.excavator.rendering.line-color.description": "The line color.", + + "module.timer": "Timer", + "module.timer.description": "Changes the speed of everything in your game.", + "module.timer.general.multiplier": "Multiplier", + "module.timer.general.multiplier.description": "The timer multiplier amount.", + + "module.surround": "Surround", + "module.surround.description": "Surrounds you in blocks to prevent massive crystal damage.", + "module.surround.general.blocks": "Blocks", + "module.surround.general.blocks.description": "What blocks to use for surround.", + "module.surround.general.delay": "Delay", + "module.surround.general.delay.description": "Delay, in ticks, between block placements.", + "module.surround.general.blocks-per-tick": "Blocks Per Tick", + "module.surround.general.blocks-per-tick.description": "How many blocks to place in one tick.", + "module.surround.general.center": "Center", + "module.surround.general.center.description": "Teleports you to the center of the block.", + "module.surround.general.double-height": "Double Height", + "module.surround.general.double-height.description": "Places obsidian on top of the original surround blocks to prevent people from face-placing you.", + "module.surround.general.only-on-ground": "Only On Ground", + "module.surround.general.only-on-ground.description": "Works only when you are standing on blocks.", + "module.surround.general.air-place": "Air Place", + "module.surround.general.air-place.description": "Allows Surround to place blocks in the air.", + "module.surround.general.toggle-modules": "Toggle Modules", + "module.surround.general.toggle-modules.description": "Turn off other modules when surround is activated.", + "module.surround.general.toggle-back-on": "Toggle Back On", + "module.surround.general.toggle-back-on.description": "Turn the other modules back on when surround is deactivated.", + "module.surround.general.modules": "Modules", + "module.surround.general.modules.description": "Which modules to disable on activation.", + "module.surround.general.rotate": "Rotate", + "module.surround.general.rotate.description": "Automatically faces towards the obsidian being placed.", + "module.surround.general.protect": "Protect", + "module.surround.general.protect.description": "Attempts to break crystals around surround positions to prevent surround break.", + "module.surround.toggles.toggle-on-y-change": "Toggle On Y Change", + "module.surround.toggles.toggle-on-y-change.description": "Automatically disables when your y level changes (step, jumping, etc).", + "module.surround.toggles.toggle-on-complete": "Toggle On Complete", + "module.surround.toggles.toggle-on-complete.description": "Toggles off when all blocks are placed.", + "module.surround.toggles.toggle-on-death": "Toggle On Death", + "module.surround.toggles.toggle-on-death.description": "Toggles off when you die.", + "module.surround.render.swing": "Swing", + "module.surround.render.swing.description": "Render your hand swinging when placing surround blocks.", + "module.surround.render.render": "Render", + "module.surround.render.render.description": "Renders a block overlay where the obsidian will be placed.", + "module.surround.render.below": "Below", + "module.surround.render.below.description": "Renders the block below you.", + "module.surround.render.shape-mode": "Shape Mode", + "module.surround.render.shape-mode.description": "How the shapes are rendered.", + "module.surround.render.safe-side-color": "Safe Side Color", + "module.surround.render.safe-side-color.description": "The side color for safe blocks.", + "module.surround.render.safe-line-color": "Safe Line Color", + "module.surround.render.safe-line-color.description": "The line color for safe blocks.", + "module.surround.render.normal-side-color": "Normal Side Color", + "module.surround.render.normal-side-color.description": "The side color for normal blocks.", + "module.surround.render.normal-line-color": "Normal Line Color", + "module.surround.render.normal-line-color.description": "The line color for normal blocks.", + "module.surround.render.unsafe-side-color": "Unsafe Side Color", + "module.surround.render.unsafe-side-color.description": "The side color for unsafe blocks.", + "module.surround.render.unsafe-line-color": "Unsafe Line Color", + "module.surround.render.unsafe-line-color.description": "The line color for unsafe blocks.", + + "module.no-rotate": "No Rotate", + "module.no-rotate.description": "Attempts to block rotations sent from server to client.", + + "module.long-jump": "Long Jump", + "module.long-jump.description": "Allows you to jump further than normal.", + "module.long-jump.general.mode": "Mode", + "module.long-jump.general.mode.description": "The method of jumping.", + "module.long-jump.general.vanilla-boost-factor": "Vanilla Boost Factor", + "module.long-jump.general.vanilla-boost-factor.description": "The amount by which to boost the jump.", + "module.long-jump.general.burst-initial-speed": "Burst Initial Speed", + "module.long-jump.general.burst-initial-speed.description": "The initial speed of the runup.", + "module.long-jump.general.burst-boost-factor": "Burst Boost Factor", + "module.long-jump.general.burst-boost-factor.description": "The amount by which to boost the jump.", + "module.long-jump.general.only-on-ground": "Only On Ground", + "module.long-jump.general.only-on-ground.description": "Only performs the jump if you are on the ground.", + "module.long-jump.general.on-jump": "On Jump", + "module.long-jump.general.on-jump.description": "Whether the player needs to jump first or not.", + "module.long-jump.general.glide-multiplier": "Glide Multiplier", + "module.long-jump.general.glide-multiplier.description": "The amount by to multiply the glide velocity.", + "module.long-jump.general.timer": "Timer", + "module.long-jump.general.timer.description": "Timer override.", + "module.long-jump.general.auto-disable": "Auto Disable", + "module.long-jump.general.auto-disable.description": "Automatically disabled the module after jumping.", + "module.long-jump.general.disable-on-rubberband": "Disable On Rubberband", + "module.long-jump.general.disable-on-rubberband.description": "Disables the module when you get lagged back.", + + "module.trajectories": "Trajectories", + "module.trajectories.description": "Predicts the trajectory of throwable items.", + "module.trajectories.general.items": "Items", + "module.trajectories.general.items.description": "Items to display trajectories for.", + "module.trajectories.general.other-players": "Other Players", + "module.trajectories.general.other-players.description": "Calculates trajectories for other players.", + "module.trajectories.general.fired-projectiles": "Fired Projectiles", + "module.trajectories.general.fired-projectiles.description": "Calculates trajectories for already fired projectiles.", + "module.trajectories.general.ignore-wither-skulls": "Ignore Wither Skulls", + "module.trajectories.general.ignore-wither-skulls.description": "Whether to ignore fired wither skulls.", + "module.trajectories.general.accurate": "Accurate", + "module.trajectories.general.accurate.description": "Whether or not to calculate more accurate.", + "module.trajectories.general.simulation-steps": "Simulation Steps", + "module.trajectories.general.simulation-steps.description": "How many steps to simulate projectiles. Zero for no limit", + "module.trajectories.render.ignore-rendering-first-ticks": "Ignore Rendering First Ticks", + "module.trajectories.render.ignore-rendering-first-ticks.description": "Ignores rendering the first given ticks, to make the rest of the path more visible.", + "module.trajectories.render.shape-mode": "Shape Mode", + "module.trajectories.render.shape-mode.description": "How the shapes are rendered.", + "module.trajectories.render.side-color": "Side Color", + "module.trajectories.render.side-color.description": "The side color.", + "module.trajectories.render.line-color": "Line Color", + "module.trajectories.render.line-color.description": "The line color.", + "module.trajectories.render.render-position-boxes": "Render Position Boxes", + "module.trajectories.render.render-position-boxes.description": "Renders the actual position the projectile will be at each tick along it's trajectory.", + "module.trajectories.render.position-box-size": "Position Box Size", + "module.trajectories.render.position-box-size.description": "The size of the box drawn at the simulated positions.", + "module.trajectories.render.position-side-color": "Position Side Color", + "module.trajectories.render.position-side-color.description": "The side color.", + "module.trajectories.render.position-line-color": "Position Line Color", + "module.trajectories.render.position-line-color.description": "The line color.", + + "module.chams": "Chams", + "module.chams.description": "Tweaks rendering of entities.", + "module.chams.through-walls.entities": "Entities", + "module.chams.through-walls.entities.description": "Select entities to show through walls.", + "module.chams.through-walls.shader": "Shader", + "module.chams.through-walls.shader.description": "Renders a shader over of the entities.", + "module.chams.through-walls.color": "Color", + "module.chams.through-walls.color.description": "The color that the shader is drawn with.", + "module.chams.through-walls.ignore-self": "Ignore Self", + "module.chams.through-walls.ignore-self.description": "Ignores yourself drawing the player.", + "module.chams.players.players": "Players", + "module.chams.players.players.description": "Enables model tweaks for players.", + "module.chams.players.ignore-self": "Ignore Self", + "module.chams.players.ignore-self.description": "Ignores yourself when tweaking player models.", + "module.chams.players.texture": "Texture", + "module.chams.players.texture.description": "Enables player model textures.", + "module.chams.players.color": "Color", + "module.chams.players.color.description": "The color of player models.", + "module.chams.players.scale": "Scale", + "module.chams.players.scale.description": "Players scale.", + "module.chams.crystals.crystals": "Crystals", + "module.chams.crystals.crystals.description": "Enables model tweaks for end crystals.", + "module.chams.crystals.scale": "Scale", + "module.chams.crystals.scale.description": "Crystal scale.", + "module.chams.crystals.bounce": "Bounce", + "module.chams.crystals.bounce.description": "How high crystals bounce.", + "module.chams.crystals.rotation-speed": "Rotation Speed", + "module.chams.crystals.rotation-speed.description": "Multiplies the rotation speed of the crystal.", + "module.chams.crystals.texture": "Texture", + "module.chams.crystals.texture.description": "Whether to render crystal model textures.", + "module.chams.crystals.crystal-color": "Crystal Color", + "module.chams.crystals.crystal-color.description": "The color of the of the crystal.", + "module.chams.hand.enabled": "Enabled", + "module.chams.hand.enabled.description": "Enables tweaks of hand rendering.", + "module.chams.hand.texture": "Texture", + "module.chams.hand.texture.description": "Whether to render hand textures.", + "module.chams.hand.hand-color": "Hand Color", + "module.chams.hand.hand-color.description": "The color of your hand.", + + "module.server-spoof": "Server Spoof", + "module.server-spoof.description": "Spoof client brand, resource pack and channels.", + "module.server-spoof.general.spoof-brand": "Spoof Brand", + "module.server-spoof.general.spoof-brand.description": "Whether or not to spoof the brand.", + "module.server-spoof.general.brand": "Brand", + "module.server-spoof.general.brand.description": "Specify the brand that will be send to the server.", + "module.server-spoof.general.resource-pack": "Resource Pack", + "module.server-spoof.general.resource-pack.description": "Spoof accepting server resource pack.", + "module.server-spoof.general.block-channels": "Block Channels", + "module.server-spoof.general.block-channels.description": "Whether or not to block some channels.", + "module.server-spoof.general.channels": "Channels", + "module.server-spoof.general.channels.description": "If the channel contains the keyword, this outgoing channel will be blocked.", + + "module.fullbright": "Fullbright", + "module.fullbright.description": "Lights up your world!", + "module.fullbright.general.mode": "Mode", + "module.fullbright.general.mode.description": "The mode to use for Fullbright.", + "module.fullbright.general.light-type": "Light Type", + "module.fullbright.general.light-type.description": "Which type of light to use for Luminance mode.", + "module.fullbright.general.minimum-light-level": "Minimum Light Level", + "module.fullbright.general.minimum-light-level.description": "Minimum light level when using Luminance mode.", + + "module.freecam": "Freecam", + "module.freecam.description": "Allows the camera to move away from the player.", + "module.freecam.general.speed": "Speed", + "module.freecam.general.speed.description": "Your speed while in freecam.", + "module.freecam.general.speed-scroll-sensitivity": "Speed Scroll Sensitivity", + "module.freecam.general.speed-scroll-sensitivity.description": "Allows you to change speed value using scroll wheel. 0 to disable.", + "module.freecam.general.stay-sneaking": "Stay Sneaking", + "module.freecam.general.stay-sneaking.description": "If you are sneaking when you enter freecam, whether your player should remain sneaking.", + "module.freecam.general.toggle-on-damage": "Toggle On Damage", + "module.freecam.general.toggle-on-damage.description": "Disables freecam when you take damage.", + "module.freecam.general.toggle-on-death": "Toggle On Death", + "module.freecam.general.toggle-on-death.description": "Disables freecam when you die.", + "module.freecam.general.toggle-on-log": "Toggle On Log", + "module.freecam.general.toggle-on-log.description": "Disables freecam when you disconnect from a server.", + "module.freecam.general.reload-chunks": "Reload Chunks", + "module.freecam.general.reload-chunks.description": "Disables cave culling.", + "module.freecam.general.show-hands": "Show Hands", + "module.freecam.general.show-hands.description": "Whether or not to render your hands in freecam.", + "module.freecam.general.rotate": "Rotate", + "module.freecam.general.rotate.description": "Rotates to the block or entity you are looking at.", + "module.freecam.general.static": "Static", + "module.freecam.general.static.description": "Disables settings that move the view.", + "module.freecam.pathing.click-to-path": "Click To Path", + "module.freecam.pathing.click-to-path.description": "Sets a pathfinding goal to any block/entity you click at.", + "module.freecam.pathing.double-click": "Double Click", + "module.freecam.pathing.double-click.description": "Require two clicks to start pathing.", + + "module.exp-thrower": "Exp Thrower", + "module.exp-thrower.description": "Automatically throws XP bottles from your hotbar.", + + "module.auto-totem": "Auto Totem", + "module.auto-totem.description": "Automatically equips a totem in your offhand.", + "module.auto-totem.general.mode": "Mode", + "module.auto-totem.general.mode.description": "Determines when to hold a totem, strict will always hold.", + "module.auto-totem.general.delay": "Delay", + "module.auto-totem.general.delay.description": "The ticks between slot movements.", + "module.auto-totem.general.health": "Health", + "module.auto-totem.general.health.description": "The health to hold a totem at.", + "module.auto-totem.general.elytra": "Elytra", + "module.auto-totem.general.elytra.description": "Will always hold a totem when flying with elytra.", + "module.auto-totem.general.fall": "Fall", + "module.auto-totem.general.fall.description": "Will hold a totem when fall damage could kill you.", + "module.auto-totem.general.explosion": "Explosion", + "module.auto-totem.general.explosion.description": "Will hold a totem when explosion damage could kill you.", + + "module.book-bot": "Book Bot", + "module.book-bot.description": "Automatically writes in books.", + "module.book-bot.general.mode": "Mode", + "module.book-bot.general.mode.description": "What kind of text to write.", + "module.book-bot.general.pages": "Pages", + "module.book-bot.general.pages.description": "The number of pages to write per book.", + "module.book-bot.general.ascii-only": "Ascii Only", + "module.book-bot.general.ascii-only.description": "Only uses the characters in the ASCII charset.", + "module.book-bot.general.delay": "Delay", + "module.book-bot.general.delay.description": "The amount of delay between writing books.", + "module.book-bot.general.sign": "Sign", + "module.book-bot.general.sign.description": "Whether to sign the book.", + "module.book-bot.general.name": "Name", + "module.book-bot.general.name.description": "The name you want to give your books.", + "module.book-bot.general.append-count": "Append Count", + "module.book-bot.general.append-count.description": "Whether to append the number of the book to the title.", + "module.book-bot.general.word-wrap": "Word Wrap", + "module.book-bot.general.word-wrap.description": "Prevents words from being cut in the middle of lines.", + + "module.auto-gap": "Auto Gap", + "module.auto-gap.description": "Automatically eats Gaps or E-Gaps.", + "module.auto-gap.general.allow-egap": "Allow Egap", + "module.auto-gap.general.allow-egap.description": "Allow eating E-Gaps over Gaps if found.", + "module.auto-gap.general.always": "Always", + "module.auto-gap.general.always.description": "If it should always eat.", + "module.auto-gap.general.pause-auras": "Pause Auras", + "module.auto-gap.general.pause-auras.description": "Pauses all auras when eating.", + "module.auto-gap.general.pause-baritone": "Pause Baritone", + "module.auto-gap.general.pause-baritone.description": "Pause baritone when eating.", + "module.auto-gap.potions.before-expiry": "Before Expiry", + "module.auto-gap.potions.before-expiry.description": "If it should eat before potion effects expire.", + "module.auto-gap.potions.expiry-threshold": "Expiry Threshold", + "module.auto-gap.potions.expiry-threshold.description": "Time in ticks before the potion effect expires to start eating.", + "module.auto-gap.potions.potions-regeneration": "Potions Regeneration", + "module.auto-gap.potions.potions-regeneration.description": "If it should eat when Regeneration runs out.", + "module.auto-gap.potions.potions-fire-resistance": "Potions Fire Resistance", + "module.auto-gap.potions.potions-fire-resistance.description": "If it should eat when Fire Resistance runs out. Requires E-Gaps.", + "module.auto-gap.potions.potions-absorption": "Potions Absorption", + "module.auto-gap.potions.potions-absorption.description": "If it should eat when Absorption runs out. Requires E-Gaps.", + "module.auto-gap.health.health-enabled": "Health Enabled", + "module.auto-gap.health.health-enabled.description": "If it should eat when health drops below threshold.", + "module.auto-gap.health.health-threshold": "Health Threshold", + "module.auto-gap.health.health-threshold.description": "Health threshold to eat at. Includes absorption.", + + "module.middle-click-extra": "Middle Click Extra", + "module.middle-click-extra.description": "Perform various actions when you middle click.", + "module.middle-click-extra.general.mode": "Mode", + "module.middle-click-extra.general.mode.description": "Which item to use when you middle click.", + "module.middle-click-extra.general.send-message": "Send Message", + "module.middle-click-extra.general.send-message.description": "Sends a message when you add a player as a friend.", + "module.middle-click-extra.general.message-to-send": "Message To Send", + "module.middle-click-extra.general.message-to-send.description": "Message to send when you add a player as a friend (use %player for the player's name)", + "module.middle-click-extra.general.quick-swap": "Quick Swap", + "module.middle-click-extra.general.quick-swap.description": "Allows you to use items in your inventory by simulating hotbar key presses. May get flagged by anticheats.", + "module.middle-click-extra.general.swap-back": "Swap Back", + "module.middle-click-extra.general.swap-back.description": "Swap back to your original slot when you finish using an item.", + "module.middle-click-extra.general.disable-in-creative": "Disable In Creative", + "module.middle-click-extra.general.disable-in-creative.description": "Middle click action is disabled in Creative mode.", + "module.middle-click-extra.general.notify": "Notify", + "module.middle-click-extra.general.notify.description": "Notifies you when you do not have the specified item in your hotbar.", + + "module.logout-spots": "Logout Spots", + "module.logout-spots.description": "Displays a box where another player has logged out at.", + "module.logout-spots.general.scale": "Scale", + "module.logout-spots.general.scale.description": "The scale.", + "module.logout-spots.general.full-height": "Full Height", + "module.logout-spots.general.full-height.description": "Displays the height as the player's full height.", + "module.logout-spots.render.shape-mode": "Shape Mode", + "module.logout-spots.render.shape-mode.description": "How the shapes are rendered.", + "module.logout-spots.render.side-color": "Side Color", + "module.logout-spots.render.side-color.description": "The side color.", + "module.logout-spots.render.line-color": "Line Color", + "module.logout-spots.render.line-color.description": "The line color.", + "module.logout-spots.render.name-color": "Name Color", + "module.logout-spots.render.name-color.description": "The name color.", + "module.logout-spots.render.name-background-color": "Name Background Color", + "module.logout-spots.render.name-background-color.description": "The name background color.", + + "module.sound-blocker": "Sound Blocker", + "module.sound-blocker.description": "Cancels out selected sounds.", + "module.sound-blocker.general.sounds": "Sounds", + "module.sound-blocker.general.sounds.description": "Sounds to block.", + + "module.vein-miner": "Vein Miner", + "module.vein-miner.description": "Mines all nearby blocks with this type", + "module.vein-miner.general.blocks": "Blocks", + "module.vein-miner.general.blocks.description": "Which blocks to select.", + "module.vein-miner.general.mode": "Mode", + "module.vein-miner.general.mode.description": "Selection mode.", + "module.vein-miner.general.depth": "Depth", + "module.vein-miner.general.depth.description": "Amount of iterations used to scan for similar blocks.", + "module.vein-miner.general.delay": "Delay", + "module.vein-miner.general.delay.description": "Delay between mining blocks.", + "module.vein-miner.general.rotate": "Rotate", + "module.vein-miner.general.rotate.description": "Sends rotation packets to the server when mining.", + "module.vein-miner.render.swing-hand": "Swing Hand", + "module.vein-miner.render.swing-hand.description": "Swing hand client-side.", + "module.vein-miner.render.render": "Render", + "module.vein-miner.render.render.description": "Whether or not to render the block being mined.", + "module.vein-miner.render.shape-mode": "Shape Mode", + "module.vein-miner.render.shape-mode.description": "How the shapes are rendered.", + "module.vein-miner.render.side-color": "Side Color", + "module.vein-miner.render.side-color.description": "The color of the sides of the blocks being rendered.", + "module.vein-miner.render.line-color": "Line Color", + "module.vein-miner.render.line-color.description": "The color of the lines of the blocks being rendered.", + + "module.nuker": "Nuker", + "module.nuker.description": "Breaks blocks around you.", + "module.nuker.general.shape": "Shape", + "module.nuker.general.shape.description": "The shape of nuking algorithm.", + "module.nuker.general.mode": "Mode", + "module.nuker.general.mode.description": "The way the blocks are broken.", + "module.nuker.general.range": "Range", + "module.nuker.general.range.description": "The break range.", + "module.nuker.general.up": "Up", + "module.nuker.general.up.description": "The break range.", + "module.nuker.general.down": "Down", + "module.nuker.general.down.description": "The break range.", + "module.nuker.general.left": "Left", + "module.nuker.general.left.description": "The break range.", + "module.nuker.general.right": "Right", + "module.nuker.general.right.description": "The break range.", + "module.nuker.general.forward": "Forward", + "module.nuker.general.forward.description": "The break range.", + "module.nuker.general.back": "Back", + "module.nuker.general.back.description": "The break range.", + "module.nuker.general.walls-range": "Walls Range", + "module.nuker.general.walls-range.description": "Range in which to break when behind blocks.", + "module.nuker.general.delay": "Delay", + "module.nuker.general.delay.description": "Delay in ticks between breaking blocks.", + "module.nuker.general.max-blocks-per-tick": "Max Blocks Per Tick", + "module.nuker.general.max-blocks-per-tick.description": "Maximum blocks to try to break per tick. Useful when insta mining.", + "module.nuker.general.sort-mode": "Sort Mode", + "module.nuker.general.sort-mode.description": "The blocks you want to mine first.", + "module.nuker.general.packet-mine": "Packet Mine", + "module.nuker.general.packet-mine.description": "Attempt to instamine everything at once.", + "module.nuker.general.only-suitable-tools": "Only Suitable Tools", + "module.nuker.general.only-suitable-tools.description": "Only mines when using an appropriate for the block.", + "module.nuker.general.interact": "Interact", + "module.nuker.general.interact.description": "Interacts with the block instead of mining.", + "module.nuker.general.rotate": "Rotate", + "module.nuker.general.rotate.description": "Rotates server-side to the block being mined.", + "module.nuker.whitelist.list-mode": "List Mode", + "module.nuker.whitelist.list-mode.description": "Selection mode.", + "module.nuker.whitelist.blacklist": "Blacklist", + "module.nuker.whitelist.blacklist.description": "The blocks you don't want to mine.", + "module.nuker.whitelist.whitelist": "Whitelist", + "module.nuker.whitelist.whitelist.description": "The blocks you want to mine.", + "module.nuker.whitelist.select-block-bind": "Select Block Bind", + "module.nuker.whitelist.select-block-bind.description": "Adds targeted block to list when this button is pressed.", + "module.nuker.render.swing": "Swing", + "module.nuker.render.swing.description": "Whether to swing hand client-side.", + "module.nuker.render.bounding-box": "Bounding Box", + "module.nuker.render.bounding-box.description": "Enable rendering bounding box for Cube and Uniform Cube.", + "module.nuker.render.nuke-box-mode": "Nuke Box Mode", + "module.nuker.render.nuke-box-mode.description": "How the shape for the bounding box is rendered.", + "module.nuker.render.side-color": "Side Color", + "module.nuker.render.side-color.description": "The side color of the bounding box.", + "module.nuker.render.line-color": "Line Color", + "module.nuker.render.line-color.description": "The line color of the bounding box.", + "module.nuker.render.broken-blocks": "Broken Blocks", + "module.nuker.render.broken-blocks.description": "Enable rendering bounding box for Cube and Uniform Cube.", + "module.nuker.render.nuke-block-mode": "Nuke Block Mode", + "module.nuker.render.nuke-block-mode.description": "How the shapes for broken blocks are rendered.", + "module.nuker.render.breaking-side-color": "Breaking Side Color", + "module.nuker.render.breaking-side-color.description": "The side color of the target block rendering.", + "module.nuker.render.breaking-line-color": "Breaking Line Color", + "module.nuker.render.breaking-line-color.description": "The line color of the target block rendering.", + + "module.auto-trap": "Auto Trap", + "module.auto-trap.description": "Traps people in a box to prevent them from moving.", + "module.auto-trap.general.whitelist": "Whitelist", + "module.auto-trap.general.whitelist.description": "Which blocks to use.", + "module.auto-trap.general.place-range": "Place Range", + "module.auto-trap.general.place-range.description": "The range at which blocks can be placed.", + "module.auto-trap.general.walls-range": "Walls Range", + "module.auto-trap.general.walls-range.description": "Range in which to place when behind blocks.", + "module.auto-trap.general.target-priority": "Target Priority", + "module.auto-trap.general.target-priority.description": "How to select the player to target.", + "module.auto-trap.general.target-range": "Target Range", + "module.auto-trap.general.target-range.description": "The maximum distance to target players.", + "module.auto-trap.general.place-delay": "Place Delay", + "module.auto-trap.general.place-delay.description": "How many ticks between block placements.", + "module.auto-trap.general.blocks-per-tick": "Blocks Per Tick", + "module.auto-trap.general.blocks-per-tick.description": "How many blocks to place in one tick.", + "module.auto-trap.general.top-blocks": "Top Blocks", + "module.auto-trap.general.top-blocks.description": "Which blocks to place on the top half of the target.", + "module.auto-trap.general.bottom-blocks": "Bottom Blocks", + "module.auto-trap.general.bottom-blocks.description": "Which blocks to place on the bottom half of the target.", + "module.auto-trap.general.self-toggle": "Self Toggle", + "module.auto-trap.general.self-toggle.description": "Turns off after placing all blocks.", + "module.auto-trap.general.rotate": "Rotate", + "module.auto-trap.general.rotate.description": "Rotates towards blocks when placing.", + "module.auto-trap.render.render": "Render", + "module.auto-trap.render.render.description": "Renders an overlay where blocks will be placed.", + "module.auto-trap.render.shape-mode": "Shape Mode", + "module.auto-trap.render.shape-mode.description": "How the shapes are rendered.", + "module.auto-trap.render.side-color": "Side Color", + "module.auto-trap.render.side-color.description": "The side color of the target block rendering.", + "module.auto-trap.render.line-color": "Line Color", + "module.auto-trap.render.line-color.description": "The line color of the target block rendering.", + "module.auto-trap.render.next-side-color": "Next Side Color", + "module.auto-trap.render.next-side-color.description": "The side color of the next block to be placed.", + "module.auto-trap.render.next-line-color": "Next Line Color", + "module.auto-trap.render.next-line-color.description": "The line color of the next block to be placed.", + + "module.wall-hack": "Wall Hack", + "module.wall-hack.description": "Makes blocks translucent.", + "module.wall-hack.general.opacity": "Opacity", + "module.wall-hack.general.opacity.description": "The opacity for rendered blocks.", + "module.wall-hack.general.blocks": "Blocks", + "module.wall-hack.general.blocks.description": "What blocks should be targeted for Wall Hack.", + "module.wall-hack.general.occlude-chunks": "Occlude Chunks", + "module.wall-hack.general.occlude-chunks.description": "Whether caves should occlude underground (may look wonky when on).", + + "module.no-render": "No Render", + "module.no-render.description": "Disables certain animations or overlays from rendering.", + "module.no-render.overlay.portal-overlay": "Portal Overlay", + "module.no-render.overlay.portal-overlay.description": "Disables rendering of the nether portal overlay.", + "module.no-render.overlay.spyglass-overlay": "Spyglass Overlay", + "module.no-render.overlay.spyglass-overlay.description": "Disables rendering of the spyglass overlay.", + "module.no-render.overlay.nausea": "Nausea", + "module.no-render.overlay.nausea.description": "Disables rendering of the nausea overlay.", + "module.no-render.overlay.pumpkin-overlay": "Pumpkin Overlay", + "module.no-render.overlay.pumpkin-overlay.description": "Disables rendering of the pumpkin head overlay", + "module.no-render.overlay.powdered-snow-overlay": "Powdered Snow Overlay", + "module.no-render.overlay.powdered-snow-overlay.description": "Disables rendering of the powdered snow overlay.", + "module.no-render.overlay.fire-overlay": "Fire Overlay", + "module.no-render.overlay.fire-overlay.description": "Disables rendering of the fire overlay.", + "module.no-render.overlay.liquid-overlay": "Liquid Overlay", + "module.no-render.overlay.liquid-overlay.description": "Disables rendering of the liquid overlay.", + "module.no-render.overlay.in-wall-overlay": "In Wall Overlay", + "module.no-render.overlay.in-wall-overlay.description": "Disables rendering of the overlay when inside blocks.", + "module.no-render.overlay.vignette": "Vignette", + "module.no-render.overlay.vignette.description": "Disables rendering of the vignette overlay.", + "module.no-render.overlay.gui-background": "Gui Background", + "module.no-render.overlay.gui-background.description": "Disables rendering of the GUI background overlay.", + "module.no-render.overlay.totem-animation": "Totem Animation", + "module.no-render.overlay.totem-animation.description": "Disables rendering of the totem animation when you pop a totem.", + "module.no-render.overlay.eating-particles": "Eating Particles", + "module.no-render.overlay.eating-particles.description": "Disables rendering of eating particles.", + "module.no-render.overlay.enchantment-glint": "Enchantment Glint", + "module.no-render.overlay.enchantment-glint.description": "Disables rending of the enchantment glint.", + "module.no-render.hud.boss-bar": "Boss Bar", + "module.no-render.hud.boss-bar.description": "Disable rendering of boss bars.", + "module.no-render.hud.scoreboard": "Scoreboard", + "module.no-render.hud.scoreboard.description": "Disable rendering of the scoreboard.", + "module.no-render.hud.crosshair": "Crosshair", + "module.no-render.hud.crosshair.description": "Disables rendering of the crosshair.", + "module.no-render.hud.title": "Title", + "module.no-render.hud.title.description": "Disables rendering of the title.", + "module.no-render.hud.held-item-name": "Held Item Name", + "module.no-render.hud.held-item-name.description": "Disables rendering of the held item name.", + "module.no-render.hud.obfuscation": "Obfuscation", + "module.no-render.hud.obfuscation.description": "Disables obfuscation styling of characters.", + "module.no-render.hud.potion-icons": "Potion Icons", + "module.no-render.hud.potion-icons.description": "Disables rendering of status effect icons.", + "module.no-render.hud.message-signature-indicator": "Message Signature Indicator", + "module.no-render.hud.message-signature-indicator.description": "Disables chat message signature indicator on the left of the message.", + "module.no-render.world.weather": "Weather", + "module.no-render.world.weather.description": "Disables rendering of weather.", + "module.no-render.world.world-border": "World Border", + "module.no-render.world.world-border.description": "Disables rendering of the world border.", + "module.no-render.world.blindness": "Blindness", + "module.no-render.world.blindness.description": "Disables rendering of blindness.", + "module.no-render.world.darkness": "Darkness", + "module.no-render.world.darkness.description": "Disables rendering of darkness.", + "module.no-render.world.fog": "Fog", + "module.no-render.world.fog.description": "Disables rendering of fog.", + "module.no-render.world.enchantment-table-book": "Enchantment Table Book", + "module.no-render.world.enchantment-table-book.description": "Disables rendering of books above enchanting tables.", + "module.no-render.world.sign-text": "Sign Text", + "module.no-render.world.sign-text.description": "Disables rendering of text on signs.", + "module.no-render.world.block-break-particles": "Block Break Particles", + "module.no-render.world.block-break-particles.description": "Disables rendering of block-break particles.", + "module.no-render.world.block-break-overlay": "Block Break Overlay", + "module.no-render.world.block-break-overlay.description": "Disables rendering of block-break overlay.", + "module.no-render.world.beacon-beams": "Beacon Beams", + "module.no-render.world.beacon-beams.description": "Disables rendering of beacon beams.", + "module.no-render.world.falling-blocks": "Falling Blocks", + "module.no-render.world.falling-blocks.description": "Disables rendering of falling blocks.", + "module.no-render.world.cave-culling": "Cave Culling", + "module.no-render.world.cave-culling.description": "Disables Minecraft's cave culling algorithm.", + "module.no-render.world.map-markers": "Map Markers", + "module.no-render.world.map-markers.description": "Disables markers on maps.", + "module.no-render.world.map-contents": "Map Contents", + "module.no-render.world.map-contents.description": "Disable rendering of maps.", + "module.no-render.world.banners": "Banners", + "module.no-render.world.banners.description": "Changes rendering of banners.", + "module.no-render.world.firework-explosions": "Firework Explosions", + "module.no-render.world.firework-explosions.description": "Disables rendering of firework explosions.", + "module.no-render.world.particles": "Particles", + "module.no-render.world.particles.description": "Particles to not render.", + "module.no-render.world.barrier-invisibility": "Barrier Invisibility", + "module.no-render.world.barrier-invisibility.description": "Disables barriers being invisible when not holding one.", + "module.no-render.world.texture-rotations": "Texture Rotations", + "module.no-render.world.texture-rotations.description": "Changes texture rotations and model offsets to use a constant value instead of the block position.", + "module.no-render.world.block-entities": "Block Entities", + "module.no-render.world.block-entities.description": "Block entities (chest, shulker block, etc.) to not render.", + "module.no-render.entity.entities": "Entities", + "module.no-render.entity.entities.description": "Disables rendering of selected entities.", + "module.no-render.entity.drop-spawn-packets": "Drop Spawn Packets", + "module.no-render.entity.drop-spawn-packets.description": "WARNING! Drops all spawn packets of entities selected in the above list.", + "module.no-render.entity.armor": "Armor", + "module.no-render.entity.armor.description": "Disables rendering of armor on entities.", + "module.no-render.entity.invisibility": "Invisibility", + "module.no-render.entity.invisibility.description": "Shows invisible entities.", + "module.no-render.entity.glowing": "Glowing", + "module.no-render.entity.glowing.description": "Disables rendering of the glowing effect", + "module.no-render.entity.spawner-entities": "Spawner Entities", + "module.no-render.entity.spawner-entities.description": "Disables rendering of spinning mobs inside of mob spawners", + "module.no-render.entity.dead-entities": "Dead Entities", + "module.no-render.entity.dead-entities.description": "Disables rendering of dead entities", + "module.no-render.entity.nametags": "Nametags", + "module.no-render.entity.nametags.description": "Disables rendering of entity nametags", + + "module.hand-view": "Hand View", + "module.hand-view.description": "Alters the way items are rendered in your hands.", + "module.hand-view.general.server-rotations": "Server Rotations", + "module.hand-view.general.server-rotations.description": "Makes your hands follow your serverside rotations.", + "module.hand-view.general.old-animations": "Old Animations", + "module.hand-view.general.old-animations.description": "Changes hit animations to those like 1.8", + "module.hand-view.general.skip-swapping-animation": "Skip Swapping Animation", + "module.hand-view.general.skip-swapping-animation.description": "Whether or not to skip the item swapping animation", + "module.hand-view.general.disable-eating-animation": "Disable Eating Animation", + "module.hand-view.general.disable-eating-animation.description": "Disables the eating animation. Potentially desirable if it goes offscreen.", + "module.hand-view.general.swing-mode": "Swing Mode", + "module.hand-view.general.swing-mode.description": "Modifies your client & server hand swinging.", + "module.hand-view.general.swing-speed": "Swing Speed", + "module.hand-view.general.swing-speed.description": "The swing speed of your hands.", + "module.hand-view.general.main-hand-progress": "Main Hand Progress", + "module.hand-view.general.main-hand-progress.description": "The swing progress of your main hand.", + "module.hand-view.general.off-hand-progress": "Off Hand Progress", + "module.hand-view.general.off-hand-progress.description": "The swing progress of your off hand.", + "module.hand-view.main-hand.scale": "Scale", + "module.hand-view.main-hand.scale.description": "The scale of your main hand.", + "module.hand-view.main-hand.position": "Position", + "module.hand-view.main-hand.position.description": "The position of your main hand.", + "module.hand-view.main-hand.rotation": "Rotation", + "module.hand-view.main-hand.rotation.description": "The rotation of your main hand.", + "module.hand-view.off-hand.scale": "Scale", + "module.hand-view.off-hand.scale.description": "The scale of your off hand.", + "module.hand-view.off-hand.position": "Position", + "module.hand-view.off-hand.position.description": "The position of your off hand.", + "module.hand-view.off-hand.rotation": "Rotation", + "module.hand-view.off-hand.rotation.description": "The rotation of your off hand.", + "module.hand-view.arm.scale": "Scale", + "module.hand-view.arm.position": "Position", + "module.hand-view.arm.rotation": "Rotation", + + "module.instant-rebreak": "Instant Rebreak", + "module.instant-rebreak.description": "Instantly re-breaks blocks in the same position.", + "module.instant-rebreak.general.delay": "Delay", + "module.instant-rebreak.general.delay.description": "The delay between break attempts.", + "module.instant-rebreak.general.only-pick": "Only Pick", + "module.instant-rebreak.general.only-pick.description": "Only tries to mine the block if you are holding a pickaxe.", + "module.instant-rebreak.general.rotate": "Rotate", + "module.instant-rebreak.general.rotate.description": "Faces the block being mined server side.", + "module.instant-rebreak.render.render": "Render", + "module.instant-rebreak.render.render.description": "Renders an overlay on the block being broken.", + "module.instant-rebreak.render.shape-mode": "Shape Mode", + "module.instant-rebreak.render.shape-mode.description": "How the shapes are rendered.", + "module.instant-rebreak.render.side-color": "Side Color", + "module.instant-rebreak.render.side-color.description": "The color of the sides of the blocks being rendered.", + "module.instant-rebreak.render.line-color": "Line Color", + "module.instant-rebreak.render.line-color.description": "The color of the lines of the blocks being rendered.", + + "module.liquid-interact": "Liquid Interact", + "module.liquid-interact.description": "Allows you to interact with liquids.", + + "module.crystal-aura": "Crystal Aura", + "module.crystal-aura.description": "Automatically places and attacks crystals.", + "module.crystal-aura.general.target-range": "Target Range", + "module.crystal-aura.general.target-range.description": "Range in which to target players.", + "module.crystal-aura.general.predict-movement": "Predict Movement", + "module.crystal-aura.general.predict-movement.description": "Predicts target movement.", + "module.crystal-aura.general.min-damage": "Min Damage", + "module.crystal-aura.general.min-damage.description": "Minimum damage the crystal needs to deal to your target.", + "module.crystal-aura.general.max-damage": "Max Damage", + "module.crystal-aura.general.max-damage.description": "Maximum damage crystals can deal to yourself.", + "module.crystal-aura.general.anti-suicide": "Anti Suicide", + "module.crystal-aura.general.anti-suicide.description": "Will not place and break crystals if they will kill you.", + "module.crystal-aura.general.ignore-nakeds": "Ignore Nakeds", + "module.crystal-aura.general.ignore-nakeds.description": "Ignore players with no items.", + "module.crystal-aura.general.rotate": "Rotate", + "module.crystal-aura.general.rotate.description": "Rotates server-side towards the crystals being hit/placed.", + "module.crystal-aura.general.yaw-steps-mode": "Yaw Steps Mode", + "module.crystal-aura.general.yaw-steps-mode.description": "When to run the yaw steps check.", + "module.crystal-aura.general.yaw-steps": "Yaw Steps", + "module.crystal-aura.general.yaw-steps.description": "Maximum number of degrees its allowed to rotate in one tick.", + "module.crystal-aura.general.entities": "Entities", + "module.crystal-aura.general.entities.description": "Entities to attack.", + "module.crystal-aura.switch.auto-switch": "Auto Switch", + "module.crystal-aura.switch.auto-switch.description": "Switches to crystals in your hotbar once a target is found.", + "module.crystal-aura.switch.switch-delay": "Switch Delay", + "module.crystal-aura.switch.switch-delay.description": "The delay in ticks to wait to break a crystal after switching hotbar slot.", + "module.crystal-aura.switch.no-gap-switch": "No Gap Switch", + "module.crystal-aura.switch.no-gap-switch.description": "Won't auto switch if you're holding a gapple.", + "module.crystal-aura.switch.no-bow-switch": "No Bow Switch", + "module.crystal-aura.switch.no-bow-switch.description": "Won't auto switch if you're holding a bow.", + "module.crystal-aura.switch.anti-weakness": "Anti Weakness", + "module.crystal-aura.switch.anti-weakness.description": "Switches to tools with so you can break crystals with the weakness effect.", + "module.crystal-aura.place.place": "Place", + "module.crystal-aura.place.place.description": "If the CA should place crystals.", + "module.crystal-aura.place.place-delay": "Place Delay", + "module.crystal-aura.place.place-delay.description": "The delay in ticks to wait to place a crystal after it's exploded.", + "module.crystal-aura.place.place-range": "Place Range", + "module.crystal-aura.place.place-range.description": "Range in which to place crystals.", + "module.crystal-aura.place.walls-range": "Walls Range", + "module.crystal-aura.place.walls-range.description": "Range in which to place crystals when behind blocks.", + "module.crystal-aura.place.1.12-placement": "1.12 Placement", + "module.crystal-aura.place.1.12-placement.description": "Uses 1.12 crystal placement.", + "module.crystal-aura.place.support": "Support", + "module.crystal-aura.place.support.description": "Places a support block in air if no other position have been found.", + "module.crystal-aura.place.support-delay": "Support Delay", + "module.crystal-aura.place.support-delay.description": "Delay in ticks after placing support block.", + "module.crystal-aura.face-place.face-place": "Face Place", + "module.crystal-aura.face-place.face-place.description": "Will face-place when target is below a certain health or armor durability threshold.", + "module.crystal-aura.face-place.face-place-health": "Face Place Health", + "module.crystal-aura.face-place.face-place-health.description": "The health the target has to be at to start face placing.", + "module.crystal-aura.face-place.face-place-durability": "Face Place Durability", + "module.crystal-aura.face-place.face-place-durability.description": "The durability threshold percentage to be able to face-place.", + "module.crystal-aura.face-place.face-place-missing-armor": "Face Place Missing Armor", + "module.crystal-aura.face-place.face-place-missing-armor.description": "Automatically starts face placing when a target misses a piece of armor.", + "module.crystal-aura.face-place.force-face-place": "Force Face Place", + "module.crystal-aura.face-place.force-face-place.description": "Starts face place when this button is pressed.", + "module.crystal-aura.break.break": "Break", + "module.crystal-aura.break.break.description": "If the CA should break crystals.", + "module.crystal-aura.break.break-delay": "Break Delay", + "module.crystal-aura.break.break-delay.description": "The delay in ticks to wait to break a crystal after it's placed.", + "module.crystal-aura.break.smart-delay": "Smart Delay", + "module.crystal-aura.break.smart-delay.description": "Only breaks crystals when the target can receive damage.", + "module.crystal-aura.break.break-range": "Break Range", + "module.crystal-aura.break.break-range.description": "Range in which to break crystals.", + "module.crystal-aura.break.walls-range": "Walls Range", + "module.crystal-aura.break.walls-range.description": "Range in which to break crystals when behind blocks.", + "module.crystal-aura.break.only-own": "Only Own", + "module.crystal-aura.break.only-own.description": "Only breaks own crystals.", + "module.crystal-aura.break.break-attempts": "Break Attempts", + "module.crystal-aura.break.break-attempts.description": "How many times to hit a crystal before stopping to target it.", + "module.crystal-aura.break.ticks-existed": "Ticks Existed", + "module.crystal-aura.break.ticks-existed.description": "Amount of ticks a crystal needs to have lived for it to be attacked by CrystalAura.", + "module.crystal-aura.break.attack-frequency": "Attack Frequency", + "module.crystal-aura.break.attack-frequency.description": "Maximum hits to do per second.", + "module.crystal-aura.break.fast-break": "Fast Break", + "module.crystal-aura.break.fast-break.description": "Ignores break delay and tries to break the crystal as soon as it's spawned in the world.", + "module.crystal-aura.pause.pause-on-use": "Pause On Use", + "module.crystal-aura.pause.pause-on-use.description": "Which processes should be paused while using an item.", + "module.crystal-aura.pause.pause-on-mine": "Pause On Mine", + "module.crystal-aura.pause.pause-on-mine.description": "Which processes should be paused while mining a block.", + "module.crystal-aura.pause.pause-on-lag": "Pause On Lag", + "module.crystal-aura.pause.pause-on-lag.description": "Whether to pause if the server is not responding.", + "module.crystal-aura.pause.pause-modules": "Pause Modules", + "module.crystal-aura.pause.pause-modules.description": "Pauses while any of the selected modules are active.", + "module.crystal-aura.pause.pause-health": "Pause Health", + "module.crystal-aura.pause.pause-health.description": "Pauses when you go below a certain health.", + "module.crystal-aura.render.swing-mode": "Swing Mode", + "module.crystal-aura.render.swing-mode.description": "How to swing when placing.", + "module.crystal-aura.render.render-mode": "Render Mode", + "module.crystal-aura.render.render-mode.description": "The mode to render in.", + "module.crystal-aura.render.render-place": "Render Place", + "module.crystal-aura.render.render-place.description": "Renders a block overlay over the block the crystals are being placed on.", + "module.crystal-aura.render.place-time": "Place Time", + "module.crystal-aura.render.place-time.description": "How long to render placements.", + "module.crystal-aura.render.render-break": "Render Break", + "module.crystal-aura.render.render-break.description": "Renders a block overlay over the block the crystals are broken on.", + "module.crystal-aura.render.break-time": "Break Time", + "module.crystal-aura.render.break-time.description": "How long to render breaking for.", + "module.crystal-aura.render.smoothness": "Smoothness", + "module.crystal-aura.render.smoothness.description": "How smoothly the render should move around.", + "module.crystal-aura.render.height": "Height", + "module.crystal-aura.render.height.description": "How tall the gradient should be.", + "module.crystal-aura.render.render-time": "Render Time", + "module.crystal-aura.render.render-time.description": "How long to render placements.", + "module.crystal-aura.render.shape-mode": "Shape Mode", + "module.crystal-aura.render.shape-mode.description": "How the shapes are rendered.", + "module.crystal-aura.render.side-color": "Side Color", + "module.crystal-aura.render.side-color.description": "The side color of the block overlay.", + "module.crystal-aura.render.line-color": "Line Color", + "module.crystal-aura.render.line-color.description": "The line color of the block overlay.", + "module.crystal-aura.render.damage": "Damage", + "module.crystal-aura.render.damage.description": "Renders crystal damage text in the block overlay.", + "module.crystal-aura.render.damage-color": "Damage Color", + "module.crystal-aura.render.damage-color.description": "The color of the damage text.", + "module.crystal-aura.render.damage-scale": "Damage Scale", + "module.crystal-aura.render.damage-scale.description": "How big the damage text should be.", + + "module.spider": "Spider", + "module.spider.description": "Allows you to climb walls like a spider.", + "module.spider.general.climb-speed": "Climb Speed", + "module.spider.general.climb-speed.description": "The speed you go up blocks.", + + "module.auto-log": "Auto Log", + "module.auto-log.description": "Automatically disconnects you when certain requirements are met.", + "module.auto-log.general.health": "Health", + "module.auto-log.general.health.description": "Automatically disconnects when health is lower or equal to this value. Set to 0 to disable.", + "module.auto-log.general.predict-incoming-damage": "Predict Incoming Damage", + "module.auto-log.general.predict-incoming-damage.description": "Disconnects when it detects you're about to take enough damage to set you under the 'health' setting.", + "module.auto-log.general.totem-pops": "Totem Pops", + "module.auto-log.general.totem-pops.description": "Disconnects when you have popped this many totems. Set to 0 to disable.", + "module.auto-log.general.only-trusted": "Only Trusted", + "module.auto-log.general.only-trusted.description": "Disconnects when a player not on your friends list appears in render distance.", + "module.auto-log.general.32K": "32K", + "module.auto-log.general.32K.description": "Disconnects when a player near you can instantly kill you.", + "module.auto-log.general.smart-toggle": "Smart Toggle", + "module.auto-log.general.smart-toggle.description": "Disables Auto Log after a low-health logout. WILL re-enable once you heal.", + "module.auto-log.general.toggle-off": "Toggle Off", + "module.auto-log.general.toggle-off.description": "Disables Auto Log after usage.", + "module.auto-log.general.toggle-auto-reconnect": "Toggle Auto Reconnect", + "module.auto-log.general.toggle-auto-reconnect.description": "Whether to disable Auto Reconnect after a logout.", + "module.auto-log.entities.entities": "Entities", + "module.auto-log.entities.entities.description": "Disconnects when a specified entity is present within a specified range.", + "module.auto-log.entities.use-total-count": "Use Total Count", + "module.auto-log.entities.use-total-count.description": "Toggle between counting the total number of all selected entities or each entity individually.", + "module.auto-log.entities.combined-entity-threshold": "Combined Entity Threshold", + "module.auto-log.entities.combined-entity-threshold.description": "The minimum total number of selected entities that must be near you before disconnection occurs.", + "module.auto-log.entities.individual-entity-threshold": "Individual Entity Threshold", + "module.auto-log.entities.individual-entity-threshold.description": "The minimum number of entities individually that must be near you before disconnection occurs.", + "module.auto-log.entities.range": "Range", + "module.auto-log.entities.range.description": "How close an entity has to be to you before you disconnect.", + + "module.high-jump": "High Jump", + "module.high-jump.description": "Makes you jump higher than normal.", + "module.high-jump.general.jump-multiplier": "Jump Multiplier", + "module.high-jump.general.jump-multiplier.description": "Jump height multiplier.", + + "module.speed": "Speed", + "module.speed.description": "Modifies your movement speed when moving on the ground.", + "module.speed.general.mode": "Mode", + "module.speed.general.mode.description": "The method of applying speed.", + "module.speed.general.vanilla-speed": "Vanilla Speed", + "module.speed.general.vanilla-speed.description": "The speed in blocks per second.", + "module.speed.general.strafe-speed": "Strafe Speed", + "module.speed.general.strafe-speed.description": "The speed.", + "module.speed.general.speed-limit": "Speed Limit", + "module.speed.general.speed-limit.description": "Limits your speed on servers with very strict anticheats.", + "module.speed.general.timer": "Timer", + "module.speed.general.timer.description": "Timer override.", + "module.speed.general.in-liquids": "In Liquids", + "module.speed.general.in-liquids.description": "Uses speed when in lava or water.", + "module.speed.general.when-sneaking": "When Sneaking", + "module.speed.general.when-sneaking.description": "Uses speed when sneaking.", + "module.speed.general.only-on-ground": "Only On Ground", + "module.speed.general.only-on-ground.description": "Uses speed only when standing on a block.", + + "module.offhand": "Offhand", + "module.offhand.description": "Allows you to hold specified items in your offhand.", + "module.offhand.combat.item-switch-delay": "Item Switch Delay", + "module.offhand.combat.item-switch-delay.description": "The delay in ticks between slot movements.", + "module.offhand.combat.item": "Item", + "module.offhand.combat.item.description": "Which item to hold in your offhand.", + "module.offhand.combat.hotbar": "Hotbar", + "module.offhand.combat.hotbar.description": "Whether to use items from your hotbar.", + "module.offhand.combat.right-gapple": "Right Gapple", + "module.offhand.combat.right-gapple.description": "Will switch to a gapple when holding right click.(DO NOT USE WITH POTION ON)", + "module.offhand.combat.sword-gapple": "Sword Gapple", + "module.offhand.combat.sword-gapple.description": "Will switch to a gapple when holding a sword and right click.", + "module.offhand.combat.always-gap-on-sword": "Always Gap On Sword", + "module.offhand.combat.always-gap-on-sword.description": "Holds an Enchanted Golden Apple when you are holding a sword.", + "module.offhand.combat.always-pot-on-sword": "Always Pot On Sword", + "module.offhand.combat.always-pot-on-sword.description": "Will switch to a potion when holding a sword", + "module.offhand.combat.sword-pot": "Sword Pot", + "module.offhand.combat.sword-pot.description": "Will switch to a potion when holding a sword and right click.", + "module.offhand.totem.min-health": "Min Health", + "module.offhand.totem.min-health.description": "Will hold a totem when below this amount of health.", + "module.offhand.totem.elytra": "Elytra", + "module.offhand.totem.elytra.description": "Will always hold a totem while flying with an elytra.", + "module.offhand.totem.falling": "Falling", + "module.offhand.totem.falling.description": "Will hold a totem if fall damage could kill you.", + "module.offhand.totem.explosion": "Explosion", + "module.offhand.totem.explosion.description": "Will hold a totem when explosion damage could kill you.", + + "module.arrow-dodge": "Arrow Dodge", + "module.arrow-dodge.description": "Tries to dodge arrows coming at you.", + "module.arrow-dodge.general.ground-check": "Ground Check", + "module.arrow-dodge.general.ground-check.description": "Tries to prevent you from falling to your death.", + "module.arrow-dodge.general.all-projectiles": "All Projectiles", + "module.arrow-dodge.general.all-projectiles.description": "Dodge all projectiles, not only arrows.", + "module.arrow-dodge.general.ignore-own": "Ignore Own", + "module.arrow-dodge.general.ignore-own.description": "Ignore your own projectiles.", + "module.arrow-dodge.general.simulation-steps": "Simulation Steps", + "module.arrow-dodge.general.simulation-steps.description": "How many steps to simulate projectiles. Zero for no limit.", + "module.arrow-dodge.movement.move-type": "Move Type", + "module.arrow-dodge.movement.move-type.description": "The way you are moved by this module.", + "module.arrow-dodge.movement.move-speed": "Move Speed", + "module.arrow-dodge.movement.move-speed.description": "How fast should you be when dodging arrow.", + "module.arrow-dodge.movement.distance-check": "Distance Check", + "module.arrow-dodge.movement.distance-check.description": "How far should an arrow be from the player to be considered not hitting.", + + "module.multitask": "Multitask", + "module.multitask.description": "Lets you use items and attack at the same time.", + "module.multitask.general.attacking-entities": "Attacking Entities", + "module.multitask.general.attacking-entities.description": "Lets you attack entities while using an item.", + + "module.auto-replenish": "Auto Replenish", + "module.auto-replenish.description": "Automatically refills items in your hotbar, main hand, or offhand.", + "module.auto-replenish.general.min-count": "Min Count", + "module.auto-replenish.general.min-count.description": "Replenish a slot when it reaches this item count.", + "module.auto-replenish.general.delay": "Delay", + "module.auto-replenish.general.delay.description": "How long in ticks to wait between replenishing your hotbar.", + "module.auto-replenish.general.offhand": "Offhand", + "module.auto-replenish.general.offhand.description": "Whether or not to replenish items in your offhand.", + "module.auto-replenish.general.unstackable": "Unstackable", + "module.auto-replenish.general.unstackable.description": "Replenish unstackable items.", + "module.auto-replenish.general.same-enchants": "Same Enchants", + "module.auto-replenish.general.same-enchants.description": "Only replace unstackables with items that have the same enchants.", + "module.auto-replenish.general.search-hotbar": "Search Hotbar", + "module.auto-replenish.general.search-hotbar.description": "Combine stacks in your hotbar/offhand as a last resort.", + "module.auto-replenish.general.excluded-items": "Excluded Items", + "module.auto-replenish.general.excluded-items.description": "Items that won't be replenished.", + + "module.break-indicators": "Break Indicators", + "module.break-indicators.description": "Renders the progress of a block being broken.", + "module.break-indicators.general.shape-mode": "Shape Mode", + "module.break-indicators.general.shape-mode.description": "How the shapes are rendered.", + "module.break-indicators.general.packet-mine": "Packet Mine", + "module.break-indicators.general.packet-mine.description": "Whether or not to render blocks being packet mined.", + "module.break-indicators.general.start-color": "Start Color", + "module.break-indicators.general.start-color.description": "The color for the non-broken block.", + "module.break-indicators.general.end-color": "End Color", + "module.break-indicators.general.end-color.description": "The color for the fully-broken block.", + + "module.potion-saver": "Potion Saver", + "module.potion-saver.description": "Stops potion effects ticking when you stand still.", + "module.potion-saver.general.effects": "Effects", + "module.potion-saver.general.effects.description": "The effects to preserve.", + "module.potion-saver.general.only-when-stationary": "Only When Stationary", + "module.potion-saver.general.only-when-stationary.description": "Only freezes effects when you aren't moving.", + + "module.block-esp": "Block Esp", + "module.block-esp.description": "Renders specified blocks through walls.", + "module.block-esp.general.blocks": "Blocks", + "module.block-esp.general.blocks.description": "Blocks to search for.", + "module.block-esp.general.default-block-config": "Default Block Config", + "module.block-esp.general.default-block-config.description": "Default block config.", + "module.block-esp.general.block-configs": "Block Configs", + "module.block-esp.general.block-configs.description": "Config for each block.", + "module.block-esp.general.tracers": "Tracers", + "module.block-esp.general.tracers.description": "Render tracer lines.", + + "module.block-esp.data.shape-mode": "Shape Mode", + "module.block-esp.data.shape-mode.description": "How the shape is rendered.", + "module.block-esp.data.line-color": "Line Color", + "module.block-esp.data.line-color.description": "Color of lines.", + "module.block-esp.data.side-color": "Side Color", + "module.block-esp.data.side-color.description": "Color of sides.", + "module.block-esp.data.tracer": "Tracer", + "module.block-esp.data.tracer.description": "If tracer line should be drawn to this block.", + "module.block-esp.data.tracer-color": "Tracer Color", + "module.block-esp.data.tracer-color.description": "Color of the tracer line.", + + "module.packet-mine": "Packet Mine", + "module.packet-mine.description": "Sends packets to mine blocks without the mining animation.", + "module.packet-mine.general.delay": "Delay", + "module.packet-mine.general.delay.description": "Delay between mining blocks in ticks.", + "module.packet-mine.general.rotate": "Rotate", + "module.packet-mine.general.rotate.description": "Sends rotation packets to the server when mining.", + "module.packet-mine.general.auto-switch": "Auto Switch", + "module.packet-mine.general.auto-switch.description": "Automatically switches to the best tool when the block is ready to be mined instantly.", + "module.packet-mine.general.not-on-use": "Not On Use", + "module.packet-mine.general.not-on-use.description": "Won't auto switch if you're using an item.", + "module.packet-mine.general.obscure-breaking-progress": "Obscure Breaking Progress", + "module.packet-mine.general.obscure-breaking-progress.description": "Spams abort breaking packets to obscure the block mining progress from other players. Does not hide it perfectly.", + "module.packet-mine.render.render": "Render", + "module.packet-mine.render.render.description": "Whether or not to render the block being mined.", + "module.packet-mine.render.shape-mode": "Shape Mode", + "module.packet-mine.render.shape-mode.description": "How the shapes are rendered.", + "module.packet-mine.render.ready-side-color": "Ready Side Color", + "module.packet-mine.render.ready-side-color.description": "The color of the sides of the blocks that can be broken.", + "module.packet-mine.render.ready-line-color": "Ready Line Color", + "module.packet-mine.render.ready-line-color.description": "The color of the lines of the blocks that can be broken.", + "module.packet-mine.render.side-color": "Side Color", + "module.packet-mine.render.side-color.description": "The color of the sides of the blocks being rendered.", + "module.packet-mine.render.line-color": "Line Color", + "module.packet-mine.render.line-color.description": "The color of the lines of the blocks being rendered.", + + "module.liquid-filler": "Liquid Filler", + "module.liquid-filler.description": "Places blocks inside of liquid source blocks within range of you.", + "module.liquid-filler.general.place-in": "Place In", + "module.liquid-filler.general.place-in.description": "What type of liquids to place in.", + "module.liquid-filler.general.shape": "Shape", + "module.liquid-filler.general.shape.description": "The shape of placing algorithm.", + "module.liquid-filler.general.place-range": "Place Range", + "module.liquid-filler.general.place-range.description": "The range at which blocks can be placed.", + "module.liquid-filler.general.walls-range": "Walls Range", + "module.liquid-filler.general.walls-range.description": "Range in which to place when behind blocks.", + "module.liquid-filler.general.delay": "Delay", + "module.liquid-filler.general.delay.description": "Delay between actions in ticks.", + "module.liquid-filler.general.max-blocks-per-tick": "Max Blocks Per Tick", + "module.liquid-filler.general.max-blocks-per-tick.description": "Maximum blocks to try to place per tick.", + "module.liquid-filler.general.sort-mode": "Sort Mode", + "module.liquid-filler.general.sort-mode.description": "The blocks you want to place first.", + "module.liquid-filler.general.rotate": "Rotate", + "module.liquid-filler.general.rotate.description": "Automatically rotates towards the space targeted for filling.", + "module.liquid-filler.whitelist.list-mode": "List Mode", + "module.liquid-filler.whitelist.list-mode.description": "Selection mode.", + "module.liquid-filler.whitelist.whitelist": "Whitelist", + "module.liquid-filler.whitelist.whitelist.description": "The allowed blocks that it will use to fill up the liquid.", + "module.liquid-filler.whitelist.blacklist": "Blacklist", + "module.liquid-filler.whitelist.blacklist.description": "The denied blocks that it not will use to fill up the liquid.", + + "module.quiver": "Quiver", + "module.quiver.description": "Shoots arrows at yourself.", + "module.quiver.general.effects": "Effects", + "module.quiver.general.effects.description": "Which effects to shoot you with.", + "module.quiver.general.cooldown": "Cooldown", + "module.quiver.general.cooldown.description": "How many ticks between shooting effects (19 minimum for NCP).", + "module.quiver.general.check-effects": "Check Effects", + "module.quiver.general.check-effects.description": "Won't shoot you with effects you already have.", + "module.quiver.general.silent-bow": "Silent Bow", + "module.quiver.general.silent-bow.description": "Takes a bow from your inventory to quiver.", + "module.quiver.general.chat-info": "Chat Info", + "module.quiver.general.chat-info.description": "Sends info about quiver checks in chat.", + "module.quiver.safety.only-in-holes": "Only In Holes", + "module.quiver.safety.only-in-holes.description": "Only quiver when you're in a hole.", + "module.quiver.safety.only-on-ground": "Only On Ground", + "module.quiver.safety.only-on-ground.description": "Only quiver when you're on the ground.", + "module.quiver.safety.min-health": "Min Health", + "module.quiver.safety.min-health.description": "How much health you must have to quiver.", + + "module.chest-swap": "Chest Swap", + "module.chest-swap.description": "Automatically swaps between a chestplate and an elytra.", + "module.chest-swap.general.chestplate": "Chestplate", + "module.chest-swap.general.chestplate.description": "Which type of chestplate to swap to.", + "module.chest-swap.general.stay-on": "Stay On", + "module.chest-swap.general.stay-on.description": "Stays on and activates when you turn it off.", + "module.chest-swap.general.close-inventory": "Close Inventory", + "module.chest-swap.general.close-inventory.description": "Sends inventory close after swap.", + + "module.fast-use": "Fast Use", + "module.fast-use.description": "Allows you to use items at very high speeds.", + "module.fast-use.general.mode": "Mode", + "module.fast-use.general.mode.description": "Which items to fast use.", + "module.fast-use.general.items": "Items", + "module.fast-use.general.items.description": "Which items should fast place work on in \"Some\" mode.", + "module.fast-use.general.blocks": "Blocks", + "module.fast-use.general.blocks.description": "Fast-places blocks if the mode is \"Some\" mode.", + "module.fast-use.general.cooldown": "Cooldown", + "module.fast-use.general.cooldown.description": "Fast-use cooldown in ticks.", + + "module.anchor": "Anchor", + "module.anchor.description": "Helps you get into holes by stopping your movement completely over a hole.", + "module.anchor.general.max-height": "Max Height", + "module.anchor.general.max-height.description": "The maximum height Anchor will work at.", + "module.anchor.general.min-pitch": "Min Pitch", + "module.anchor.general.min-pitch.description": "The minimum pitch at which anchor will work.", + "module.anchor.general.cancel-jump-in-hole": "Cancel Jump In Hole", + "module.anchor.general.cancel-jump-in-hole.description": "Prevents you from jumping when Anchor is active and Min Pitch is met.", + "module.anchor.general.pull": "Pull", + "module.anchor.general.pull.description": "The pull strength of Anchor.", + "module.anchor.general.pull-speed": "Pull Speed", + "module.anchor.general.pull-speed.description": "How fast to pull towards the hole in blocks per second.", + + "module.anti-anvil": "Anti Anvil", + "module.anti-anvil.description": "Automatically prevents Auto Anvil by placing between you and the anvil.", + "module.anti-anvil.general.swing": "Swing", + "module.anti-anvil.general.swing.description": "Swings your hand client-side when placing.", + "module.anti-anvil.general.rotate": "Rotate", + "module.anti-anvil.general.rotate.description": "Makes you rotate when placing.", + + "module.highway-builder": "Highway Builder", + "module.highway-builder.description": "Automatically builds highways.", + "module.highway-builder.general.width": "Width", + "module.highway-builder.general.width.description": "Width of the highway.", + "module.highway-builder.general.height": "Height", + "module.highway-builder.general.height.description": "Height of the highway.", + "module.highway-builder.general.floor": "Floor", + "module.highway-builder.general.floor.description": "What floor placement mode to use.", + "module.highway-builder.general.railings": "Railings", + "module.highway-builder.general.railings.description": "Builds railings next to the highway.", + "module.highway-builder.general.corner-support-block": "Corner Support Block", + "module.highway-builder.general.corner-support-block.description": "Places a support block underneath the railings, to prevent air placing.", + "module.highway-builder.general.mine-above-railings": "Mine Above Railings", + "module.highway-builder.general.mine-above-railings.description": "Mines blocks above railings.", + "module.highway-builder.general.rotation": "Rotation", + "module.highway-builder.general.rotation.description": "Mode of rotation.", + "module.highway-builder.general.disconnect-on-toggle": "Disconnect On Toggle", + "module.highway-builder.general.disconnect-on-toggle.description": "Automatically disconnects when the module is turned off, for example for not having enough blocks.", + "module.highway-builder.general.pause-on-lag": "Pause On Lag", + "module.highway-builder.general.pause-on-lag.description": "Pauses the current process while the server stops responding.", + "module.highway-builder.general.destroy-crystal-traps": "Destroy Crystal Traps", + "module.highway-builder.general.destroy-crystal-traps.description": "Use a bow to defuse crystal traps safely from a distance. An infinity bow is recommended.", + "module.highway-builder.digging.double-mine": "Double Mine", + "module.highway-builder.digging.double-mine.description": "Whether to double mine blocks when applicable (normal mine and packet mine simultaneously).", + "module.highway-builder.digging.fast-break": "Fast Break", + "module.highway-builder.digging.fast-break.description": "Whether to finish breaking blocks faster than normal while double mining.", + "module.highway-builder.digging.dont-break-tools": "Dont Break Tools", + "module.highway-builder.digging.dont-break-tools.description": "Don't break tools.", + "module.highway-builder.digging.durability-percentage": "Durability Percentage", + "module.highway-builder.digging.durability-percentage.description": "The durability percentage at which to stop using a tool.", + "module.highway-builder.digging.save-pickaxes": "Save Pickaxes", + "module.highway-builder.digging.save-pickaxes.description": "How many pickaxes to ensure are saved. Hitting this number in your inventory will trigger a restock or the module toggling off.", + "module.highway-builder.digging.break-delay": "Break Delay", + "module.highway-builder.digging.break-delay.description": "The delay between breaking blocks.", + "module.highway-builder.digging.blocks-per-tick": "Blocks Per Tick", + "module.highway-builder.digging.blocks-per-tick.description": "The maximum amount of blocks that can be mined in a tick. Only applies to blocks instantly breakable.", + "module.highway-builder.paving.blocks-to-place": "Blocks To Place", + "module.highway-builder.paving.blocks-to-place.description": "Blocks it is allowed to place.", + "module.highway-builder.paving.place-range": "Place Range", + "module.highway-builder.paving.place-range.description": "The maximum distance at which you can place blocks.", + "module.highway-builder.paving.place-delay": "Place Delay", + "module.highway-builder.paving.place-delay.description": "The delay between placing blocks.", + "module.highway-builder.paving.placements-per-tick": "Placements Per Tick", + "module.highway-builder.paving.placements-per-tick.description": "The maximum amount of blocks that can be placed in a tick.", + "module.highway-builder.inventory.trash-items": "Trash Items", + "module.highway-builder.inventory.trash-items.description": "Items that are considered trash and can be thrown out.", + "module.highway-builder.inventory.inventory-delay": "Inventory Delay", + "module.highway-builder.inventory.inventory-delay.description": "Delay in ticks on inventory interactions.", + "module.highway-builder.inventory.eject-useless-shulkers": "Eject Useless Shulkers", + "module.highway-builder.inventory.eject-useless-shulkers.description": "Whether you should eject useless shulkers. Warning - will throw out any shulkers that don't contain blocks to place, pickaxes, or food. Be careful with your kits.", + "module.highway-builder.inventory.search-ender-chest": "Search Ender Chest", + "module.highway-builder.inventory.search-ender-chest.description": "Searches your ender chest to find items to use. Be careful with this one, especially if you let it search through shulkers.", + "module.highway-builder.inventory.search-shulkers": "Search Shulkers", + "module.highway-builder.inventory.search-shulkers.description": "Searches through shulkers to find items to use.", + "module.highway-builder.inventory.minimum-empty-slots": "Minimum Empty Slots", + "module.highway-builder.inventory.minimum-empty-slots.description": "The minimum amount of empty slots you want left after mining obsidian.", + "module.highway-builder.inventory.mine-ender-chests": "Mine Ender Chests", + "module.highway-builder.inventory.mine-ender-chests.description": "Mines ender chests for obsidian.", + "module.highway-builder.inventory.echest-blockade-type": "Echest Blockade Type", + "module.highway-builder.inventory.echest-blockade-type.description": "What blockade type to use (the structure placed when mining echests).", + "module.highway-builder.inventory.save-ender-chests": "Save Ender Chests", + "module.highway-builder.inventory.save-ender-chests.description": "How many ender chests to ensure are saved. Hitting this number in your inventory will trigger a restock or the module toggling off.", + "module.highway-builder.inventory.instantly-rebreak-echests": "Instantly Rebreak Echests", + "module.highway-builder.inventory.instantly-rebreak-echests.description": "Whether or not to use the instant rebreak exploit to break echests.", + "module.highway-builder.inventory.rebreak-delay": "Rebreak Delay", + "module.highway-builder.inventory.rebreak-delay.description": "Delay between rebreak attempts.", + "module.highway-builder.render-digging.render-blocks-to-mine": "Render Blocks To Mine", + "module.highway-builder.render-digging.render-blocks-to-mine.description": "Render blocks to be mined.", + "module.highway-builder.render-digging.blocks-to-mine-shape-mode": "Blocks To Mine Shape Mode", + "module.highway-builder.render-digging.blocks-to-mine-shape-mode.description": "How the blocks to be mined are rendered.", + "module.highway-builder.render-digging.blocks-to-mine-side-color": "Blocks To Mine Side Color", + "module.highway-builder.render-digging.blocks-to-mine-side-color.description": "Color of blocks to be mined.", + "module.highway-builder.render-digging.blocks-to-mine-line-color": "Blocks To Mine Line Color", + "module.highway-builder.render-digging.blocks-to-mine-line-color.description": "Color of blocks to be mined.", + "module.highway-builder.render-paving.render-blocks-to-place": "Render Blocks To Place", + "module.highway-builder.render-paving.render-blocks-to-place.description": "Render blocks to be placed.", + "module.highway-builder.render-paving.blocks-to-place-shape-mode": "Blocks To Place Shape Mode", + "module.highway-builder.render-paving.blocks-to-place-shape-mode.description": "How the blocks to be placed are rendered.", + "module.highway-builder.render-paving.blocks-to-place-side-color": "Blocks To Place Side Color", + "module.highway-builder.render-paving.blocks-to-place-side-color.description": "Color of blocks to be placed.", + "module.highway-builder.render-paving.blocks-to-place-line-color": "Blocks To Place Line Color", + "module.highway-builder.render-paving.blocks-to-place-line-color.description": "Color of blocks to be placed.", + + "module.infinity-miner": "Infinity Miner", + "module.infinity-miner.description": "Allows you to essentially mine forever by mining repair blocks when the durability gets low. Needs a mending pickaxe.", + "module.infinity-miner.general.target-blocks": "Target Blocks", + "module.infinity-miner.general.target-blocks.description": "The target blocks to mine.", + "module.infinity-miner.general.target-items": "Target Items", + "module.infinity-miner.general.target-items.description": "The target items to collect.", + "module.infinity-miner.general.repair-blocks": "Repair Blocks", + "module.infinity-miner.general.repair-blocks.description": "The repair blocks to mine.", + "module.infinity-miner.general.start-repairing": "Start Repairing", + "module.infinity-miner.general.start-repairing.description": "The durability percentage at which to start repairing.", + "module.infinity-miner.general.start-mining": "Start Mining", + "module.infinity-miner.general.start-mining.description": "The durability percentage at which to start mining.", + "module.infinity-miner.when-full": "When Full", + "module.infinity-miner.when-full.walk-home": "Walk Home", + "module.infinity-miner.when-full.walk-home.description": "Will walk 'home' when your inventory is full.", + "module.infinity-miner.when-full.log-out": "Log Out", + "module.infinity-miner.when-full.log-out.description": "Logs out when your inventory is full. Will walk home FIRST if walk home is enabled.", + + "module.breadcrumbs": "Breadcrumbs", + "module.breadcrumbs.description": "Displays a trail behind where you have walked.", + "module.breadcrumbs.general.color": "Color", + "module.breadcrumbs.general.color.description": "The color of the Breadcrumbs trail.", + "module.breadcrumbs.general.max-sections": "Max Sections", + "module.breadcrumbs.general.max-sections.description": "The maximum number of sections.", + "module.breadcrumbs.general.section-length": "Section Length", + "module.breadcrumbs.general.section-length.description": "The section length in blocks.", + + "module.auto-brewer": "Auto Brewer", + "module.auto-brewer.description": "Automatically brews the specified potion.", + "module.auto-brewer.general.potion": "Potion", + "module.auto-brewer.general.potion.description": "The type of potion to brew.", + + "module.storage-esp": "Storage Esp", + "module.storage-esp.description": "Renders all specified storage blocks.", + "module.storage-esp.general.mode": "Mode", + "module.storage-esp.general.mode.description": "Rendering mode.", + "module.storage-esp.general.storage-blocks": "Storage Blocks", + "module.storage-esp.general.storage-blocks.description": "Select the storage blocks to display.", + "module.storage-esp.general.tracers": "Tracers", + "module.storage-esp.general.tracers.description": "Draws tracers to storage blocks.", + "module.storage-esp.general.shape-mode": "Shape Mode", + "module.storage-esp.general.shape-mode.description": "How the shapes are rendered.", + "module.storage-esp.general.fill-opacity": "Fill Opacity", + "module.storage-esp.general.fill-opacity.description": "The opacity of the shape fill.", + "module.storage-esp.general.width": "Width", + "module.storage-esp.general.width.description": "The width of the shader outline.", + "module.storage-esp.general.glow-multiplier": "Glow Multiplier", + "module.storage-esp.general.glow-multiplier.description": "Multiplier for glow effect", + "module.storage-esp.general.chest": "Chest", + "module.storage-esp.general.chest.description": "The color of chests.", + "module.storage-esp.general.trapped-chest": "Trapped Chest", + "module.storage-esp.general.trapped-chest.description": "The color of trapped chests.", + "module.storage-esp.general.barrel": "Barrel", + "module.storage-esp.general.barrel.description": "The color of barrels.", + "module.storage-esp.general.shulker": "Shulker", + "module.storage-esp.general.shulker.description": "The color of Shulker Boxes.", + "module.storage-esp.general.ender-chest": "Ender Chest", + "module.storage-esp.general.ender-chest.description": "The color of Ender Chests.", + "module.storage-esp.general.other": "Other", + "module.storage-esp.general.other.description": "The color of furnaces, dispensers, droppers and hoppers.", + "module.storage-esp.general.fade-distance": "Fade Distance", + "module.storage-esp.general.fade-distance.description": "The distance at which the color will fade.", + "module.storage-esp.opened-rendering.hide-opened": "Hide Opened", + "module.storage-esp.opened-rendering.hide-opened.description": "Hides opened containers.", + "module.storage-esp.opened-rendering.opened-color": "Opened Color", + "module.storage-esp.opened-rendering.opened-color.description": "Optional setting to change colors of opened chests, as opposed to not rendering. Disabled at zero opacity.", + + "module.no-status-effects": "No Status Effects", + "module.no-status-effects.description": "Blocks specified status effects.", + "module.no-status-effects.general.blocked-effects": "Blocked Effects", + "module.no-status-effects.general.blocked-effects.description": "Effects to block.", + + "module.attribute-swap": "Attribute Swap", + "module.attribute-swap.description": "Swaps to a target slot when you attack.", + "module.attribute-swap.general.mode": "Mode", + "module.attribute-swap.general.mode.description": "The mode to use.", + "module.attribute-swap.general.target-slot": "Target Slot", + "module.attribute-swap.general.target-slot.description": "Hotbar slot to swap to (1-9).", + "module.attribute-swap.general.swap-back": "Swap Back", + "module.attribute-swap.general.swap-back.description": "Swap back to the original slot after a delay.", + "module.attribute-swap.general.swap-back-delay": "Swap Back Delay", + "module.attribute-swap.general.swap-back-delay.description": "Delay in ticks before swapping back.", + "module.attribute-swap.swapping-options.shield-breaker": "Shield Breaker", + "module.attribute-swap.swapping-options.shield-breaker.description": "Automatically swaps to an axe if the target is blocking.", + "module.attribute-swap.swapping-options.durability-saver": "Durability Saver", + "module.attribute-swap.swapping-options.durability-saver.description": "Swaps to a non-damageable item to save durability on the main weapon.", + "module.attribute-swap.swapping-options.sword-swapping": "Sword Swapping", + "module.attribute-swap.swapping-options.sword-swapping.description": "Enables smart swapping for sword enchantments.", + "module.attribute-swap.swapping-options.mace-swapping": "Mace Swapping", + "module.attribute-swap.swapping-options.mace-swapping.description": "Enables smart swapping for mace enchantments.", + "module.attribute-swap.swapping-options.other-swapping": "Other Swapping", + "module.attribute-swap.swapping-options.other-swapping.description": "Enables smart swapping for other enchantments like Impaling.", + "module.attribute-swap.sword-enchants.fire-aspect": "Fire Aspect", + "module.attribute-swap.sword-enchants.fire-aspect.description": "Swaps to an item with Fire Aspect to set the target on fire, if target isn't already on fire", + "module.attribute-swap.sword-enchants.looting": "Looting", + "module.attribute-swap.sword-enchants.looting.description": "Swaps to an item with Looting for better drops or more experience. Only prefers for mobs (but fire aspect is priority)", + "module.attribute-swap.sword-enchants.sharpness": "Sharpness", + "module.attribute-swap.sword-enchants.sharpness.description": "Swaps to an item with Sharpness for increased damage against all entities.", + "module.attribute-swap.sword-enchants.smite": "Smite", + "module.attribute-swap.sword-enchants.smite.description": "Swaps to an item with Smite for increased damage against undead mobs.", + "module.attribute-swap.sword-enchants.bane-of-arthropods": "Bane Of Arthropods", + "module.attribute-swap.sword-enchants.bane-of-arthropods.description": "Swaps to an item with Bane of Arthropods for increased damage against arthropods.", + "module.attribute-swap.sword-enchants.sweeping-edge": "Sweeping Edge", + "module.attribute-swap.sword-enchants.sweeping-edge.description": "Swaps to an item with Sweeping Edge for increased sweeping attack damage.", + "module.attribute-swap.mace-enchants.regular-mace": "Regular Mace", + "module.attribute-swap.mace-enchants.regular-mace.description": "Swaps to a regular Mace when falling if no better option is available.", + "module.attribute-swap.mace-enchants.density": "Density", + "module.attribute-swap.mace-enchants.density.description": "Swaps to a Mace with Density to deal increased damage when falling.", + "module.attribute-swap.mace-enchants.breach": "Breach", + "module.attribute-swap.mace-enchants.breach.description": "Swaps to a Mace with Breach to reduce the target's armor effectiveness.", + "module.attribute-swap.mace-enchants.wind-burst": "Wind Burst", + "module.attribute-swap.mace-enchants.wind-burst.description": "Swaps to a Mace with Wind Burst to launch up when hitting while falling.", + "module.attribute-swap.other-enchants.impaling": "Impaling", + "module.attribute-swap.other-enchants.impaling.description": "Swaps to an item with Impaling for increased damage against aquatic mobs.", + "module.attribute-swap.weapon-options.only-on-weapon": "Only On Weapon", + "module.attribute-swap.weapon-options.only-on-weapon.description": "Only swaps when holding a selected weapon in hand.", + "module.attribute-swap.weapon-options.sword": "Sword", + "module.attribute-swap.weapon-options.sword.description": "Works while holding a sword.", + "module.attribute-swap.weapon-options.axe": "Axe", + "module.attribute-swap.weapon-options.axe.description": "Works while holding an axe.", + "module.attribute-swap.weapon-options.pickaxe": "Pickaxe", + "module.attribute-swap.weapon-options.pickaxe.description": "Works while holding a pickaxe.", + "module.attribute-swap.weapon-options.shovel": "Shovel", + "module.attribute-swap.weapon-options.shovel.description": "Works while holding a shovel.", + "module.attribute-swap.weapon-options.hoe": "Hoe", + "module.attribute-swap.weapon-options.hoe.description": "Works while holding a hoe.", + "module.attribute-swap.weapon-options.mace": "Mace", + "module.attribute-swap.weapon-options.mace.description": "Works while holding a mace.", + "module.attribute-swap.weapon-options.trident": "Trident", + "module.attribute-swap.weapon-options.trident.description": "Works while holding a trident.", + + "module.echest-farmer": "Echest Farmer", + "module.echest-farmer.description": "Places and breaks EChests to farm obsidian.", + "module.echest-farmer.general.self-toggle": "Self Toggle", + "module.echest-farmer.general.self-toggle.description": "Disables when you reach the desired amount of obsidian.", + "module.echest-farmer.general.ignore-existing": "Ignore Existing", + "module.echest-farmer.general.ignore-existing.description": "Ignores existing obsidian in your inventory and mines the total target amount.", + "module.echest-farmer.general.amount": "Amount", + "module.echest-farmer.general.amount.description": "The amount of obsidian to farm.", + "module.echest-farmer.render.swing-hand": "Swing Hand", + "module.echest-farmer.render.swing-hand.description": "Swing hand client-side.", + "module.echest-farmer.render.render": "Render", + "module.echest-farmer.render.render.description": "Renders a block overlay where the obsidian will be placed.", + "module.echest-farmer.render.shape-mode": "Shape Mode", + "module.echest-farmer.render.shape-mode.description": "How the shapes are rendered.", + "module.echest-farmer.render.side-color": "Side Color", + "module.echest-farmer.render.side-color.description": "The color of the sides of the blocks being rendered.", + "module.echest-farmer.render.line-color": "Line Color", + "module.echest-farmer.render.line-color.description": "The color of the lines of the blocks being rendered.", + + "module.self-anvil": "Self Anvil", + "module.self-anvil.description": "Automatically places an anvil on you to prevent other players from going into your hole.", + + "module.flamethrower": "Flamethrower", + "module.flamethrower.description": "Ignites every alive piece of food.", + "module.flamethrower.general.distance": "Distance", + "module.flamethrower.general.distance.description": "The maximum distance the animal has to be to be roasted.", + "module.flamethrower.general.anti-break": "Anti Break", + "module.flamethrower.general.anti-break.description": "Prevents flint and steel from being broken.", + "module.flamethrower.general.put-out-fire": "Put Out Fire", + "module.flamethrower.general.put-out-fire.description": "Tries to put out the fire when animal is low health, so the items don't burn.", + "module.flamethrower.general.target-babies": "Target Babies", + "module.flamethrower.general.target-babies.description": "If checked babies will also be killed.", + "module.flamethrower.general.tick-interval": "Tick Interval", + "module.flamethrower.general.rotate": "Rotate", + "module.flamethrower.general.rotate.description": "Automatically faces towards the animal roasted.", + "module.flamethrower.general.entities": "Entities", + "module.flamethrower.general.entities.description": "Entities to cook.", + + "module.anti-bed": "Anti Bed", + "module.anti-bed.description": "Places string to prevent beds being placed on you.", + "module.anti-bed.general.place-string-top": "Place String Top", + "module.anti-bed.general.place-string-top.description": "Places string above you.", + "module.anti-bed.general.place-string-middle": "Place String Middle", + "module.anti-bed.general.place-string-middle.description": "Places string in your upper hitbox.", + "module.anti-bed.general.place-string-bottom": "Place String Bottom", + "module.anti-bed.general.place-string-bottom.description": "Places string at your feet.", + "module.anti-bed.general.only-in-hole": "Only In Hole", + "module.anti-bed.general.only-in-hole.description": "Only functions when you are standing in a hole.", + + "module.auto-mend": "Auto Mend", + "module.auto-mend.description": "Automatically replaces items in your offhand with mending when fully repaired.", + "module.auto-mend.general.blacklist": "Blacklist", + "module.auto-mend.general.blacklist.description": "Item blacklist.", + "module.auto-mend.general.force": "Force", + "module.auto-mend.general.force.description": "Replaces item in offhand even if there is some other non-repairable item.", + "module.auto-mend.general.auto-disable": "Auto Disable", + "module.auto-mend.general.auto-disable.description": "Automatically disables when there are no more items to repair.", + + "module.auto-anvil": "Auto Anvil", + "module.auto-anvil.description": "Automatically places anvils above players to destroy helmets.", + "module.auto-anvil.general.target-range": "Target Range", + "module.auto-anvil.general.target-range.description": "The radius in which players get targeted.", + "module.auto-anvil.general.target-priority": "Target Priority", + "module.auto-anvil.general.target-priority.description": "How to select the player to target.", + "module.auto-anvil.general.height": "Height", + "module.auto-anvil.general.height.description": "The height to place anvils at.", + "module.auto-anvil.general.delay": "Delay", + "module.auto-anvil.general.delay.description": "The delay in between anvil placements.", + "module.auto-anvil.general.place-at-feet": "Place At Feet", + "module.auto-anvil.general.place-at-feet.description": "Automatically places a button or pressure plate at the targets feet to break the anvils.", + "module.auto-anvil.general.multi-place": "Multi Place", + "module.auto-anvil.general.multi-place.description": "Places multiple anvils at once.", + "module.auto-anvil.general.toggle-on-break": "Toggle On Break", + "module.auto-anvil.general.toggle-on-break.description": "Toggles when the target's helmet slot is empty.", + "module.auto-anvil.general.rotate": "Rotate", + "module.auto-anvil.general.rotate.description": "Automatically rotates towards the position anvils/pressure plates/buttons are placed.", + + "module.burrow": "Burrow", + "module.burrow.description": "Attempts to clip you into a block.", + "module.burrow.general.block-to-use": "Block To Use", + "module.burrow.general.block-to-use.description": "The block to use for Burrow.", + "module.burrow.general.instant": "Instant", + "module.burrow.general.instant.description": "Jumps with packets rather than vanilla jump.", + "module.burrow.general.automatic": "Automatic", + "module.burrow.general.automatic.description": "Automatically burrows on activate rather than waiting for jump.", + "module.burrow.general.trigger-height": "Trigger Height", + "module.burrow.general.trigger-height.description": "How high you have to jump before a rubberband is triggered.", + "module.burrow.general.rubberband-height": "Rubberband Height", + "module.burrow.general.rubberband-height.description": "How far to attempt to cause rubberband.", + "module.burrow.general.timer": "Timer", + "module.burrow.general.timer.description": "Timer override.", + "module.burrow.general.only-in-holes": "Only In Holes", + "module.burrow.general.only-in-holes.description": "Stops you from burrowing when not in a hole.", + "module.burrow.general.center": "Center", + "module.burrow.general.center.description": "Centers you to the middle of the block before burrowing.", + "module.burrow.general.rotate": "Rotate", + "module.burrow.general.rotate.description": "Faces the block you place server-side.", + + "module.auto-sign": "Auto Sign", + "module.auto-sign.description": "Automatically writes signs. The first sign's text will be used.", + "module.auto-sign.general.delay": "Delay", + "module.auto-sign.general.delay.description": "The tick delay between sign update packets.", + + "module.swarm": "Swarm", + "module.swarm.description": "Allows you to control multiple instances of Meteor from one central host.", + "module.swarm.general.mode": "Mode", + "module.swarm.general.mode.description": "What type of client to run.", + "module.swarm.general.ip": "Ip", + "module.swarm.general.ip.description": "The IP address of the host server.", + "module.swarm.general.port": "Port", + "module.swarm.general.port.description": "The port used for connections.", + + "module.auto-reconnect": "Auto Reconnect", + "module.auto-reconnect.description": "Automatically reconnects when disconnected from a server.", + "module.auto-reconnect.general.delay": "Delay", + "module.auto-reconnect.general.delay.description": "The amount of seconds to wait before reconnecting to the server.", + "module.auto-reconnect.general.hide-buttons": "Hide Buttons", + "module.auto-reconnect.general.hide-buttons.description": "Will hide the buttons related to Auto Reconnect.", + + "module.build-height": "Build Height", + "module.build-height.description": "Allows you to interact with objects at the build limit.", + + "module.time-changer": "Time Changer", + "module.time-changer.description": "Makes you able to set a custom time.", + "module.time-changer.general.time": "Time", + "module.time-changer.general.time.description": "The specified time to be set.", + + "module.hole-esp": "Hole Esp", + "module.hole-esp.description": "Displays holes that you will take less damage in.", + "module.hole-esp.general.horizontal-radius": "Horizontal Radius", + "module.hole-esp.general.horizontal-radius.description": "Horizontal radius in which to search for holes.", + "module.hole-esp.general.vertical-radius": "Vertical Radius", + "module.hole-esp.general.vertical-radius.description": "Vertical radius in which to search for holes.", + "module.hole-esp.general.min-height": "Min Height", + "module.hole-esp.general.min-height.description": "Minimum hole height required to be rendered.", + "module.hole-esp.general.doubles": "Doubles", + "module.hole-esp.general.doubles.description": "Highlights double holes that can be stood across.", + "module.hole-esp.general.ignore-own": "Ignore Own", + "module.hole-esp.general.ignore-own.description": "Ignores rendering the hole you are currently standing in.", + "module.hole-esp.general.webs": "Webs", + "module.hole-esp.general.webs.description": "Whether to show holes that have webs inside of them.", + "module.hole-esp.render.shape-mode": "Shape Mode", + "module.hole-esp.render.shape-mode.description": "How the shapes are rendered.", + "module.hole-esp.render.height": "Height", + "module.hole-esp.render.height.description": "The height of rendering.", + "module.hole-esp.render.top-quad": "Top Quad", + "module.hole-esp.render.top-quad.description": "Whether to render a quad at the top of the hole.", + "module.hole-esp.render.bottom-quad": "Bottom Quad", + "module.hole-esp.render.bottom-quad.description": "Whether to render a quad at the bottom of the hole.", + "module.hole-esp.render.bedrock-top": "Bedrock Top", + "module.hole-esp.render.bedrock-top.description": "The top color for holes that are completely bedrock.", + "module.hole-esp.render.bedrock-bottom": "Bedrock Bottom", + "module.hole-esp.render.bedrock-bottom.description": "The bottom color for holes that are completely bedrock.", + "module.hole-esp.render.obsidian-top": "Obsidian Top", + "module.hole-esp.render.obsidian-top.description": "The top color for holes that are completely obsidian.", + "module.hole-esp.render.obsidian-bottom": "Obsidian Bottom", + "module.hole-esp.render.obsidian-bottom.description": "The bottom color for holes that are completely obsidian.", + "module.hole-esp.render.mixed-top": "Mixed Top", + "module.hole-esp.render.mixed-top.description": "The top color for holes that have mixed bedrock and obsidian.", + "module.hole-esp.render.mixed-bottom": "Mixed Bottom", + "module.hole-esp.render.mixed-bottom.description": "The bottom color for holes that have mixed bedrock and obsidian.", + + "module.city-esp": "City Esp", + "module.city-esp.description": "Displays blocks that can be broken in order to city another player.", + "module.city-esp.render.shape-mode": "Shape Mode", + "module.city-esp.render.shape-mode.description": "How the shapes are rendered.", + "module.city-esp.render.side-color": "Side Color", + "module.city-esp.render.side-color.description": "The side color of the rendering.", + "module.city-esp.render.line-color": "Line Color", + "module.city-esp.render.line-color.description": "The line color of the rendering.", + + "module.anti-afk": "Anti Afk", + "module.anti-afk.description": "Performs different actions to prevent getting kicked while AFK.", + "module.anti-afk.actions.jump": "Jump", + "module.anti-afk.actions.jump.description": "Jump randomly.", + "module.anti-afk.actions.swing": "Swing", + "module.anti-afk.actions.swing.description": "Swings your hand.", + "module.anti-afk.actions.sneak": "Sneak", + "module.anti-afk.actions.sneak.description": "Sneaks and unsneaks quickly.", + "module.anti-afk.actions.sneak-time": "Sneak Time", + "module.anti-afk.actions.sneak-time.description": "How many ticks to stay sneaked.", + "module.anti-afk.actions.strafe": "Strafe", + "module.anti-afk.actions.strafe.description": "Strafe right and left.", + "module.anti-afk.actions.spin": "Spin", + "module.anti-afk.actions.spin.description": "Spins the player in place.", + "module.anti-afk.actions.spin-mode": "Spin Mode", + "module.anti-afk.actions.spin-mode.description": "The method of rotating.", + "module.anti-afk.actions.speed": "Speed", + "module.anti-afk.actions.speed.description": "The speed to spin you.", + "module.anti-afk.actions.pitch": "Pitch", + "module.anti-afk.actions.pitch.description": "The pitch to send to the server.", + "module.anti-afk.messages.send-messages": "Send Messages", + "module.anti-afk.messages.send-messages.description": "Sends messages to prevent getting kicked for AFK.", + "module.anti-afk.messages.random": "Random", + "module.anti-afk.messages.random.description": "Selects a random message from your message list.", + "module.anti-afk.messages.delay": "Delay", + "module.anti-afk.messages.delay.description": "The delay between specified messages in seconds.", + "module.anti-afk.messages.messages": "Messages", + "module.anti-afk.messages.messages.description": "The messages to choose from.", + + "module.gui-move": "Gui Move", + "module.gui-move.description": "Allows you to perform various actions while in GUIs.", + "module.gui-move.general.guis": "Guis", + "module.gui-move.general.guis.description": "Which GUIs to move in.", + "module.gui-move.general.jump": "Jump", + "module.gui-move.general.jump.description": "Allows you to jump while in GUIs.", + "module.gui-move.general.sneak": "Sneak", + "module.gui-move.general.sneak.description": "Allows you to sneak while in GUIs.", + "module.gui-move.general.sprint": "Sprint", + "module.gui-move.general.sprint.description": "Allows you to sprint while in GUIs.", + "module.gui-move.general.arrows-rotate": "Arrows Rotate", + "module.gui-move.general.arrows-rotate.description": "Allows you to use your arrow keys to rotate while in GUIs.", + "module.gui-move.general.rotate-speed": "Rotate Speed", + "module.gui-move.general.rotate-speed.description": "Rotation speed while in GUIs.", + + "module.trident-boost": "Trident Boost", + "module.trident-boost.description": "Boosts you when using riptide with a trident.", + "module.trident-boost.general.boost": "Boost", + "module.trident-boost.general.boost.description": "How much your velocity is multiplied by when using riptide.", + "module.trident-boost.general.out-of-water": "Out Of Water", + "module.trident-boost.general.out-of-water.description": "Whether riptide should work out of water", + + "module.better-tab": "Better Tab", + "module.better-tab.description": "Various improvements to the tab list.", + "module.better-tab.general.tablist-size": "Tablist Size", + "module.better-tab.general.tablist-size.description": "How many players in total to display in the tablist.", + "module.better-tab.general.column-height": "Column Height", + "module.better-tab.general.column-height.description": "How many players to display in each column.", + "module.better-tab.general.highlight-self": "Highlight Self", + "module.better-tab.general.highlight-self.description": "Highlights yourself in the tablist.", + "module.better-tab.general.self-color": "Self Color", + "module.better-tab.general.self-color.description": "The color to highlight your name with.", + "module.better-tab.general.highlight-friends": "Highlight Friends", + "module.better-tab.general.highlight-friends.description": "Highlights friends in the tablist.", + "module.better-tab.general.accurate-latency": "Accurate Latency", + "module.better-tab.general.accurate-latency.description": "Shows latency as a number in the tablist.", + "module.better-tab.general.gamemode": "Gamemode", + "module.better-tab.general.gamemode.description": "Display gamemode next to the nick.", + + "module.mount-bypass": "Mount Bypass", + "module.mount-bypass.description": "Allows you to bypass the IllegalStacks plugin and put chests on entities.", + + "module.anti-packet-kick": "Anti Packet Kick", + "module.anti-packet-kick.description": "Attempts to prevent you from being disconnected by large packets.", + "module.anti-packet-kick.general.catch-exceptions": "Catch Exceptions", + "module.anti-packet-kick.general.catch-exceptions.description": "Drops corrupted packets.", + "module.anti-packet-kick.general.log-exceptions": "Log Exceptions", + "module.anti-packet-kick.general.log-exceptions.description": "Logs caught exceptions.", + + "module.light-overlay": "Light Overlay", + "module.light-overlay.description": "Shows blocks where mobs can spawn.", + "module.light-overlay.general.horizontal-range": "Horizontal Range", + "module.light-overlay.general.horizontal-range.description": "Horizontal range in blocks.", + "module.light-overlay.general.vertical-range": "Vertical Range", + "module.light-overlay.general.vertical-range.description": "Vertical range in blocks.", + "module.light-overlay.general.see-through-blocks": "See Through Blocks", + "module.light-overlay.general.see-through-blocks.description": "Allows you to see the lines through blocks.", + "module.light-overlay.general.light-level": "Light Level", + "module.light-overlay.general.light-level.description": "Which light levels to render. Old spawning light: 7.", + "module.light-overlay.colors.color": "Color", + "module.light-overlay.colors.color.description": "Color of places where mobs can currently spawn.", + "module.light-overlay.colors.potential-color": "Potential Color", + "module.light-overlay.colors.potential-color.description": "Color of places where mobs can potentially spawn (eg at night).", + + "module.hole-filler": "Hole Filler", + "module.hole-filler.description": "Fills holes with specified blocks.", + "module.hole-filler.general.blocks": "Blocks", + "module.hole-filler.general.blocks.description": "Which blocks can be used to fill holes.", + "module.hole-filler.general.search-radius": "Search Radius", + "module.hole-filler.general.search-radius.description": "Horizontal radius in which to search for holes.", + "module.hole-filler.general.place-range": "Place Range", + "module.hole-filler.general.place-range.description": "How far away from the player you can place a block.", + "module.hole-filler.general.walls-range": "Walls Range", + "module.hole-filler.general.walls-range.description": "How far away from the player you can place a block behind walls.", + "module.hole-filler.general.doubles": "Doubles", + "module.hole-filler.general.doubles.description": "Fills double holes.", + "module.hole-filler.general.rotate": "Rotate", + "module.hole-filler.general.rotate.description": "Automatically rotates towards the holes being filled.", + "module.hole-filler.general.place-delay": "Place Delay", + "module.hole-filler.general.place-delay.description": "The ticks delay between placement.", + "module.hole-filler.general.blocks-per-tick": "Blocks Per Tick", + "module.hole-filler.general.blocks-per-tick.description": "How many blocks to place in one tick.", + "module.hole-filler.smart.smart": "Smart", + "module.hole-filler.smart.smart.description": "Take more factors into account before filling a hole.", + "module.hole-filler.smart.force-fill": "Force Fill", + "module.hole-filler.smart.force-fill.description": "Fills all holes around you regardless of target checks.", + "module.hole-filler.smart.predict-movement": "Predict Movement", + "module.hole-filler.smart.predict-movement.description": "Predict target movement to account for ping.", + "module.hole-filler.smart.ticks-to-predict": "Ticks To Predict", + "module.hole-filler.smart.ticks-to-predict.description": "How many ticks ahead we should predict for.", + "module.hole-filler.smart.ignore-safe": "Ignore Safe", + "module.hole-filler.smart.ignore-safe.description": "Ignore players in safe holes.", + "module.hole-filler.smart.only-moving": "Only Moving", + "module.hole-filler.smart.only-moving.description": "Ignore players if they're standing still.", + "module.hole-filler.smart.target-range": "Target Range", + "module.hole-filler.smart.target-range.description": "How far away to target players.", + "module.hole-filler.smart.feet-range": "Feet Range", + "module.hole-filler.smart.feet-range.description": "How far from a hole a player's feet must be to fill it.", + "module.hole-filler.render.swing": "Swing", + "module.hole-filler.render.swing.description": "Swing the player's hand when placing.", + "module.hole-filler.render.render": "Render", + "module.hole-filler.render.render.description": "Renders an overlay where blocks will be placed.", + "module.hole-filler.render.shape-mode": "Shape Mode", + "module.hole-filler.render.shape-mode.description": "How the shapes are rendered.", + "module.hole-filler.render.side-color": "Side Color", + "module.hole-filler.render.side-color.description": "The side color of the target block rendering.", + "module.hole-filler.render.line-color": "Line Color", + "module.hole-filler.render.line-color.description": "The line color of the target block rendering.", + "module.hole-filler.render.next-side-color": "Next Side Color", + "module.hole-filler.render.next-side-color.description": "The side color of the next block to be placed.", + "module.hole-filler.render.next-line-color": "Next Line Color", + "module.hole-filler.render.next-line-color.description": "The line color of the next block to be placed.", + + "module.message-aura": "Message Aura", + "module.message-aura.description": "Sends a specified message to any player that enters render distance.", + "module.message-aura.general.message": "Message", + "module.message-aura.general.message.description": "The specified message sent to the player.", + "module.message-aura.general.ignore-friends": "Ignore Friends", + "module.message-aura.general.ignore-friends.description": "Will not send any messages to people friended.", + + "module.fast-climb": "Fast Climb", + "module.fast-climb.description": "Allows you to climb faster.", + "module.fast-climb.general.timer-mode": "Timer Mode", + "module.fast-climb.general.timer-mode.description": "Use timer.", + "module.fast-climb.general.climb-speed": "Climb Speed", + "module.fast-climb.general.climb-speed.description": "Your climb speed.", + "module.fast-climb.general.timer": "Timer", + "module.fast-climb.general.timer.description": "The timer value for Timer.", + + "module.sprint": "Sprint", + "module.sprint.description": "Automatically sprints.", + "module.sprint.general.sprint-mode": "Sprint Mode", + "module.sprint.general.sprint-mode.description": "What mode of sprinting.", + "module.sprint.general.keep-sprint": "Keep Sprint", + "module.sprint.general.keep-sprint.description": "Whether to keep sprinting after attacking.", + "module.sprint.general.unsprint-on-hit": "Unsprint On Hit", + "module.sprint.general.unsprint-on-hit.description": "Whether to stop sprinting before attacking, to ensure you get crits and sweep attacks.", + "module.sprint.general.unsprint-in-water": "Unsprint In Water", + "module.sprint.general.unsprint-in-water.description": "Whether to stop sprinting when in water.", + "module.sprint.general.sprint-while-stationary": "Sprint While Stationary", + "module.sprint.general.sprint-while-stationary.description": "Sprint even when not moving.", + + "module.xray": "Xray", + "module.xray.description": "Only renders specified blocks. Good for mining.", + "module.xray.general.whitelist": "Whitelist", + "module.xray.general.whitelist.description": "Which blocks to show x-rayed.", + "module.xray.general.opacity": "Opacity", + "module.xray.general.opacity.description": "The opacity for all other blocks.", + "module.xray.general.exposed-only": "Exposed Only", + "module.xray.general.exposed-only.description": "Show only exposed ores.", + + "module.notebot": "Notebot", + "module.notebot.description": "Plays noteblock nicely", + "module.notebot.general.tick-delay": "Tick Delay", + "module.notebot.general.tick-delay.description": "The delay when loading a song.", + "module.notebot.general.concurrent-tune-blocks": "Concurrent Tune Blocks", + "module.notebot.general.concurrent-tune-blocks.description": "How many noteblocks can be tuned at the same time. On Paper it is recommended to set it to 1 to avoid bugs.", + "module.notebot.general.mode": "Mode", + "module.notebot.general.mode.description": "Select mode of notebot", + "module.notebot.general.instrument-detect-mode": "Instrument Detect Mode", + "module.notebot.general.instrument-detect-mode.description": "Select an instrument detect mode. Can be useful when server has a plugin that modifies noteblock state (e.g ItemsAdder) but noteblock can still play the right note", + "module.notebot.general.polyphonic": "Polyphonic", + "module.notebot.general.polyphonic.description": "Whether or not to allow multiple notes to be played at the same time", + "module.notebot.general.auto-rotate": "Auto Rotate", + "module.notebot.general.auto-rotate.description": "Should client look at note block when it wants to hit it", + "module.notebot.general.auto-play": "Auto Play", + "module.notebot.general.auto-play.description": "Auto plays random songs", + "module.notebot.general.round-out-of-range": "Round Out Of Range", + "module.notebot.general.round-out-of-range.description": "Rounds out of range notes", + "module.notebot.general.swing-arm": "Swing Arm", + "module.notebot.general.swing-arm.description": "Should swing arm on hit", + "module.notebot.general.check-noteblocks-again-delay": "Check Noteblocks Again Delay", + "module.notebot.general.check-noteblocks-again-delay.description": "How much delay should be between end of tuning and checking again", + "module.notebot.note-map.Harp": "Harp", + "module.notebot.note-map.Basedrum": "Basedrum", + "module.notebot.note-map.Snare": "Snare", + "module.notebot.note-map.Hat": "Hat", + "module.notebot.note-map.Bass": "Bass", + "module.notebot.note-map.Flute": "Flute", + "module.notebot.note-map.Bell": "Bell", + "module.notebot.note-map.Guitar": "Guitar", + "module.notebot.note-map.Chime": "Chime", + "module.notebot.note-map.Xylophone": "Xylophone", + "module.notebot.note-map.IronXylophone": "IronXylophone", + "module.notebot.note-map.CowBell": "CowBell", + "module.notebot.note-map.Didgeridoo": "Didgeridoo", + "module.notebot.note-map.Bit": "Bit", + "module.notebot.note-map.Banjo": "Banjo", + "module.notebot.note-map.Pling": "Pling", + + "module.notebot.render.render-text": "Render Text", + "module.notebot.render.render-text.description": "Whether or not to render the text above noteblocks.", + "module.notebot.render.render-boxes": "Render Boxes", + "module.notebot.render.render-boxes.description": "Whether or not to render the outline around the noteblocks.", + "module.notebot.render.shape-mode": "Shape Mode", + "module.notebot.render.shape-mode.description": "How the shapes are rendered.", + "module.notebot.render.untuned-side-color": "Untuned Side Color", + "module.notebot.render.untuned-side-color.description": "The color of the sides of the untuned blocks being rendered.", + "module.notebot.render.untuned-line-color": "Untuned Line Color", + "module.notebot.render.untuned-line-color.description": "The color of the lines of the untuned blocks being rendered.", + "module.notebot.render.tuned-side-color": "Tuned Side Color", + "module.notebot.render.tuned-side-color.description": "The color of the sides of the tuned blocks being rendered.", + "module.notebot.render.tuned-line-color": "Tuned Line Color", + "module.notebot.render.tuned-line-color.description": "The color of the lines of the tuned blocks being rendered.", + "module.notebot.render.hit-side-color": "Hit Side Color", + "module.notebot.render.hit-side-color.description": "The color of the sides being rendered on noteblock tune hit.", + "module.notebot.render.hit-line-color": "Hit Line Color", + "module.notebot.render.hit-line-color.description": "The color of the lines being rendered on noteblock tune hit.", + "module.notebot.render.scanned-noteblock-side-color": "Scanned Noteblock Side Color", + "module.notebot.render.scanned-noteblock-side-color.description": "The color of the sides of the scanned noteblocks being rendered.", + "module.notebot.render.scanned-noteblock-line-color": "Scanned Noteblock Line Color", + "module.notebot.render.scanned-noteblock-line-color.description": "The color of the lines of the scanned noteblocks being rendered.", + "module.notebot.render.note-text-scale": "Note Text Scale", + "module.notebot.render.note-text-scale.description": "The scale.", + "module.notebot.render.show-scanned-noteblocks": "Show Scanned Noteblocks", + "module.notebot.render.show-scanned-noteblocks.description": "Show scanned Noteblocks", + + "module.item-highlight": "Item Highlight", + "module.item-highlight.description": "Highlights selected items when in guis", + "module.item-highlight.general.items": "Items", + "module.item-highlight.general.items.description": "Items to highlight.", + "module.item-highlight.general.color": "Color", + "module.item-highlight.general.color.description": "The color to highlight the items with.", + + "module.auto-mount": "Auto Mount", + "module.auto-mount.description": "Automatically mounts entities.", + "module.auto-mount.general.check-saddle": "Check Saddle", + "module.auto-mount.general.check-saddle.description": "Checks if the entity contains a saddle before mounting.", + "module.auto-mount.general.rotate": "Rotate", + "module.auto-mount.general.rotate.description": "Faces the entity you mount.", + "module.auto-mount.general.entities": "Entities", + "module.auto-mount.general.entities.description": "Rideable entities.", + + "module.zoom": "Zoom", + "module.zoom.description": "Zooms your view.", + "module.zoom.general.zoom": "Zoom", + "module.zoom.general.zoom.description": "How much to zoom.", + "module.zoom.general.scroll-sensitivity": "Scroll Sensitivity", + "module.zoom.general.scroll-sensitivity.description": "Allows you to change zoom value using scroll wheel. 0 to disable.", + "module.zoom.general.smooth": "Smooth", + "module.zoom.general.smooth.description": "Smooth transition.", + "module.zoom.general.cinematic": "Cinematic", + "module.zoom.general.cinematic.description": "Enables cinematic camera.", + "module.zoom.general.hide-HUD": "Hide HUD", + "module.zoom.general.hide-HUD.description": "Whether or not to hide the Minecraft HUD.", + "module.zoom.general.show-hands": "Show Hands", + "module.zoom.general.show-hands.description": "Whether or not to render your hands.", + + "module.bow-spam": "Bow Spam", + "module.bow-spam.description": "Spams bows and crossbows.", + "module.bow-spam.general.charge": "Charge", + "module.bow-spam.general.charge.description": "How long to charge the bow before releasing in ticks.", + "module.bow-spam.general.when-holding-right-click": "When Holding Right Click", + "module.bow-spam.general.when-holding-right-click.description": "Works only when holding right click.", + "module.bow-spam.crossbows.spam-crossbows": "Spam Crossbows", + "module.bow-spam.crossbows.spam-crossbows.description": "Whether to spam loaded crossbows; takes priority over charging bows.", + "module.bow-spam.crossbows.crossbow-delay": "Crossbow Delay", + "module.bow-spam.crossbows.crossbow-delay.description": "Delay between shooting crossbows in ticks.", + "module.bow-spam.crossbows.search-inventory": "Search Inventory", + "module.bow-spam.crossbows.search-inventory.description": "Whether to search your inventory to find loaded crossbows.", + + "module.free-look": "Free Look", + "module.free-look.description": "Allows more rotation options in third person.", + "module.free-look.general.mode": "Mode", + "module.free-look.general.mode.description": "Which entity to rotate.", + "module.free-look.general.toggle-perspective": "Toggle Perspective", + "module.free-look.general.toggle-perspective.description": "Changes your perspective on toggle.", + "module.free-look.general.camera-sensitivity": "Camera Sensitivity", + "module.free-look.general.camera-sensitivity.description": "How fast the camera moves in camera mode.", + "module.free-look.arrows.arrows-control-opposite": "Arrows Control Opposite", + "module.free-look.arrows.arrows-control-opposite.description": "Allows you to control the other entities rotation with the arrow keys.", + "module.free-look.arrows.arrow-speed": "Arrow Speed", + "module.free-look.arrows.arrow-speed.description": "Rotation speed with arrow keys.", + + "module.auto-walk": "Auto Walk", + "module.auto-walk.description": "Automatically walks forward.", + "module.auto-walk.general.mode": "Mode", + "module.auto-walk.general.mode.description": "Walking mode.", + "module.auto-walk.general.simple-direction": "Simple Direction", + "module.auto-walk.general.simple-direction.description": "The direction to walk in simple mode.", + "module.auto-walk.general.disable-on-input": "Disable On Input", + "module.auto-walk.general.disable-on-input.description": "Disable module on manual movement input", + "module.auto-walk.general.disable-on-y-change": "Disable On Y Change", + "module.auto-walk.general.disable-on-y-change.description": "Disable module if player moves vertically", + "module.auto-walk.general.no-unloaded-chunks": "No Unloaded Chunks", + "module.auto-walk.general.no-unloaded-chunks.description": "Do not allow movement into unloaded chunks", + + "module.self-trap": "Self Trap", + "module.self-trap.description": "Places blocks above your head.", + "module.self-trap.general.whitelist": "Whitelist", + "module.self-trap.general.whitelist.description": "Which blocks to use.", + "module.self-trap.general.top-mode": "Top Mode", + "module.self-trap.general.top-mode.description": "Which positions to place on your top half.", + "module.self-trap.general.bottom-mode": "Bottom Mode", + "module.self-trap.general.bottom-mode.description": "Which positions to place on your bottom half.", + "module.self-trap.general.place-delay": "Place Delay", + "module.self-trap.general.place-delay.description": "How many ticks between block placements.", + "module.self-trap.general.center": "Center", + "module.self-trap.general.center.description": "Centers you on the block you are standing on before placing.", + "module.self-trap.general.turn-off": "Turn Off", + "module.self-trap.general.turn-off.description": "Turns off after placing.", + "module.self-trap.general.rotate": "Rotate", + "module.self-trap.general.rotate.description": "Sends rotation packets to the server when placing.", + "module.self-trap.render.render": "Render", + "module.self-trap.render.render.description": "Renders a block overlay where the blocks will be placed.", + "module.self-trap.render.shape-mode": "Shape Mode", + "module.self-trap.render.shape-mode.description": "How the shapes are rendered.", + "module.self-trap.render.side-color": "Side Color", + "module.self-trap.render.side-color.description": "The color of the sides of the blocks being rendered.", + "module.self-trap.render.line-color": "Line Color", + "module.self-trap.render.line-color.description": "The color of the lines of the blocks being rendered.", + + "module.safe-walk": "Safe Walk", + "module.safe-walk.description": "Prevents you from walking off blocks.", + "module.safe-walk.general.minimum-fall-distance": "Minimum Fall Distance", + "module.safe-walk.general.minimum-fall-distance.description": "The minimum number of blocks you are expected to fall before the module activates.", + "module.safe-walk.general.sneak": "Sneak", + "module.safe-walk.general.sneak.description": "Sneak when approaching edge of block.", + "module.safe-walk.general.safe-sneak": "Safe Sneak", + "module.safe-walk.general.safe-sneak.description": "Prevent you from falling if sneak doesn't trigger correctly.", + "module.safe-walk.general.sneak-on-sprint": "Sneak On Sprint", + "module.safe-walk.general.sneak-on-sprint.description": "Sneak even when sprinting at the block edge.", + "module.safe-walk.general.edge-distance": "Edge Distance", + "module.safe-walk.general.edge-distance.description": "Distance offset before reaching an edge.", + "module.safe-walk.render.render": "Render", + "module.safe-walk.render.render.description": "Render edge distance helper.", + "module.safe-walk.render.render-player-box": "Render Player Box", + "module.safe-walk.render.render-player-box.description": "Render player box helper.", + + "module.auto-wasp": "Auto Wasp", + "module.auto-wasp.description": "Wasps for you. Unable to traverse around blocks, assumes a clear straight line to the target.", + "module.auto-wasp.general.horizontal-speed": "Horizontal Speed", + "module.auto-wasp.general.horizontal-speed.description": "Horizontal elytra speed.", + "module.auto-wasp.general.vertical-speed": "Vertical Speed", + "module.auto-wasp.general.vertical-speed.description": "Vertical elytra speed.", + "module.auto-wasp.general.avoid-landing": "Avoid Landing", + "module.auto-wasp.general.avoid-landing.description": "Will try to avoid landing if your target is on the ground.", + "module.auto-wasp.general.predict-movement": "Predict Movement", + "module.auto-wasp.general.predict-movement.description": "Tries to predict the targets position according to their movement.", + "module.auto-wasp.general.only-friends": "Only Friends", + "module.auto-wasp.general.only-friends.description": "Will only follow friends.", + "module.auto-wasp.general.action-on-target-loss": "Action On Target Loss", + "module.auto-wasp.general.action-on-target-loss.description": "What to do if you lose the target.", + "module.auto-wasp.general.offset": "Offset", + "module.auto-wasp.general.offset.description": "How many blocks offset to wasp at from the target.", + + "module.break-delay": "Break Delay", + "module.break-delay.description": "Changes the delay between breaking blocks.", + "module.break-delay.general.cooldown": "Cooldown", + "module.break-delay.general.cooldown.description": "Block break cooldown in ticks.", + "module.break-delay.general.no-insta-break": "No Insta Break", + "module.break-delay.general.no-insta-break.description": "Prevents you from misbreaking blocks if you can instantly break them.", + + "module.auto-armor": "Auto Armor", + "module.auto-armor.description": "Automatically equips armor.", + "module.auto-armor.general.preferred-protection": "Preferred Protection", + "module.auto-armor.general.preferred-protection.description": "Which type of protection to prefer.", + "module.auto-armor.general.swap-delay": "Swap Delay", + "module.auto-armor.general.swap-delay.description": "The delay between equipping armor pieces.", + "module.auto-armor.general.avoided-enchantments": "Avoided Enchantments", + "module.auto-armor.general.avoided-enchantments.description": "Enchantments that should be avoided.", + "module.auto-armor.general.blast-prot-leggings": "Blast Prot Leggings", + "module.auto-armor.general.blast-prot-leggings.description": "Uses blast protection for leggings regardless of preferred protection.", + "module.auto-armor.general.anti-break": "Anti Break", + "module.auto-armor.general.anti-break.description": "Takes off armor if it is about to break.", + "module.auto-armor.general.ignore-elytra": "Ignore Elytra", + "module.auto-armor.general.ignore-elytra.description": "Will not replace your elytra if you have it equipped.", + + "module.pop-chams": "Pop Chams", + "module.pop-chams.description": "Renders a ghost where players pop totem.", + "module.pop-chams.general.only-one": "Only One", + "module.pop-chams.general.only-one.description": "Only allow one ghost per player.", + "module.pop-chams.general.render-time": "Render Time", + "module.pop-chams.general.render-time.description": "How long the ghost is rendered in seconds.", + "module.pop-chams.general.y-modifier": "Y Modifier", + "module.pop-chams.general.y-modifier.description": "How much should the Y position of the ghost change per second.", + "module.pop-chams.general.scale-modifier": "Scale Modifier", + "module.pop-chams.general.scale-modifier.description": "How much should the scale of the ghost change per second.", + "module.pop-chams.general.fade-out": "Fade Out", + "module.pop-chams.general.fade-out.description": "Fades out the color.", + "module.pop-chams.general.shape-mode": "Shape Mode", + "module.pop-chams.general.shape-mode.description": "How the shapes are rendered.", + "module.pop-chams.general.side-color": "Side Color", + "module.pop-chams.general.side-color.description": "The side color.", + "module.pop-chams.general.line-color": "Line Color", + "module.pop-chams.general.line-color.description": "The line color.", + + "module.ghost-hand": "Ghost Hand", + "module.ghost-hand.description": "Opens containers through walls.", + + "module.slippy": "Slippy", + "module.slippy.description": "Changes the base friction level of blocks.", + "module.slippy.general.friction": "Friction", + "module.slippy.general.friction.description": "The base friction level.", + "module.slippy.general.list-mode": "List Mode", + "module.slippy.general.list-mode.description": "The mode to select blocks.", + "module.slippy.general.ignored-blocks": "Ignored Blocks", + "module.slippy.general.ignored-blocks.description": "Decide which blocks not to slip on", + "module.slippy.general.allowed-blocks": "Allowed Blocks", + "module.slippy.general.allowed-blocks.description": "Decide which blocks to slip on", + + "module.auto-tool": "Auto Tool", + "module.auto-tool.description": "Automatically switches to the most effective tool when performing an action.", + "module.auto-tool.general.prefer": "Prefer", + "module.auto-tool.general.prefer.description": "Either to prefer Silk Touch, Fortune, or none.", + "module.auto-tool.general.silk-touch-for-ender-chest": "Silk Touch For Ender Chest", + "module.auto-tool.general.silk-touch-for-ender-chest.description": "Mines Ender Chests only with the Silk Touch enchantment.", + "module.auto-tool.general.fortune-for-ores-and-crops": "Fortune For Ores And Crops", + "module.auto-tool.general.fortune-for-ores-and-crops.description": "Mines Ores and crops only with the Fortune enchantment.", + "module.auto-tool.general.anti-break": "Anti Break", + "module.auto-tool.general.anti-break.description": "Stops you from breaking your tool.", + "module.auto-tool.general.anti-break-percentage": "Anti Break Percentage", + "module.auto-tool.general.anti-break-percentage.description": "The durability percentage to stop using a tool.", + "module.auto-tool.general.switch-back": "Switch Back", + "module.auto-tool.general.switch-back.description": "Switches your hand to whatever was selected when releasing your attack key.", + "module.auto-tool.general.switch-delay": "Switch Delay", + "module.auto-tool.general.switch-delay.description": "Delay in ticks before switching tools.", + "module.auto-tool.whitelist.list-mode": "List Mode", + "module.auto-tool.whitelist.list-mode.description": "Selection mode.", + "module.auto-tool.whitelist.whitelist": "Whitelist", + "module.auto-tool.whitelist.whitelist.description": "The tools you want to use.", + "module.auto-tool.whitelist.blacklist": "Blacklist", + "module.auto-tool.whitelist.blacklist.description": "The tools you don't want to use.", + + "module.anti-hunger": "Anti Hunger", + "module.anti-hunger.description": "Reduces (does NOT remove) hunger consumption.", + "module.anti-hunger.general.sprint": "Sprint", + "module.anti-hunger.general.sprint.description": "Spoofs sprinting packets.", + "module.anti-hunger.general.on-ground": "On Ground", + "module.anti-hunger.general.on-ground.description": "Spoofs the onGround flag.", + + "module.auto-clicker": "Auto Clicker", + "module.auto-clicker.description": "Automatically clicks.", + "module.auto-clicker.general.while-in-screens": "While In Screens", + "module.auto-clicker.general.while-in-screens.description": "Whether to click while a screen is open.", + "module.auto-clicker.general.mode-left": "Mode Left", + "module.auto-clicker.general.mode-left.description": "The method of clicking for left clicks.", + "module.auto-clicker.general.delay-left": "Delay Left", + "module.auto-clicker.general.delay-left.description": "The amount of delay between left clicks in ticks.", + "module.auto-clicker.general.mode-right": "Mode Right", + "module.auto-clicker.general.mode-right.description": "The method of clicking for right clicks.", + "module.auto-clicker.general.delay-right": "Delay Right", + "module.auto-clicker.general.delay-right.description": "The amount of delay between right clicks in ticks.", + + "module.auto-shearer": "Auto Shearer", + "module.auto-shearer.description": "Automatically shears sheep.", + "module.auto-shearer.general.distance": "Distance", + "module.auto-shearer.general.distance.description": "The maximum distance the sheep have to be to be sheared.", + "module.auto-shearer.general.anti-break": "Anti Break", + "module.auto-shearer.general.anti-break.description": "Prevents shears from being broken.", + "module.auto-shearer.general.rotate": "Rotate", + "module.auto-shearer.general.rotate.description": "Automatically faces towards the animal being sheared.", + + "module.boss-stack": "Boss Stack", + "module.boss-stack.description": "Stacks boss bars to make your HUD less cluttered.", + "module.boss-stack.general.stack": "Stack", + "module.boss-stack.general.stack.description": "Stacks boss bars and adds a counter to the text.", + "module.boss-stack.general.hide-name": "Hide Name", + "module.boss-stack.general.hide-name.description": "Hides the names of boss bars.", + "module.boss-stack.general.bar-spacing": "Bar Spacing", + "module.boss-stack.general.bar-spacing.description": "The spacing reduction between each boss bar.", + + "module.camera-tweaks": "Camera Tweaks", + "module.camera-tweaks.description": "Allows modification of the third person camera.", + "module.camera-tweaks.general.clip": "Clip", + "module.camera-tweaks.general.clip.description": "Allows the camera to clip through blocks.", + "module.camera-tweaks.general.camera-distance": "Camera Distance", + "module.camera-tweaks.general.camera-distance.description": "The distance the third person camera is from the player.", + "module.camera-tweaks.scrolling.scrolling": "Scrolling", + "module.camera-tweaks.scrolling.scrolling.description": "Allows you to scroll to change camera distance.", + "module.camera-tweaks.scrolling.bind": "Bind", + "module.camera-tweaks.scrolling.bind.description": "Binds camera distance scrolling to a key.", + "module.camera-tweaks.scrolling.sensitivity": "Sensitivity", + "module.camera-tweaks.scrolling.sensitivity.description": "Sensitivity of the scroll wheel when changing the cameras distance.", + + "module.auto-weapon": "Auto Weapon", + "module.auto-weapon.description": "Finds the best weapon to use in your hotbar.", + "module.auto-weapon.general.weapon": "Weapon", + "module.auto-weapon.general.weapon.description": "What type of weapon to use.", + "module.auto-weapon.general.threshold": "Threshold", + "module.auto-weapon.general.threshold.description": "If the non-preferred weapon produces this much damage this will favor it over your preferred weapon.", + "module.auto-weapon.general.anti-break": "Anti Break", + "module.auto-weapon.general.anti-break.description": "Prevents you from breaking your weapon.", + + "module.better-chat": "Better Chat", + "module.better-chat.description": "Improves your chat experience in various ways.", + "module.better-chat.general.annoy": "Annoy", + "module.better-chat.general.annoy.description": "Makes your messages aNnOyInG.", + "module.better-chat.general.fancy-chat": "Fancy Chat", + "module.better-chat.general.fancy-chat.description": "Makes your messages ғᴀɴᴄʏ!", + "module.better-chat.general.timestamps": "Timestamps", + "module.better-chat.general.timestamps.description": "Adds client-side time stamps to the beginning of chat messages.", + "module.better-chat.general.show-seconds": "Show Seconds", + "module.better-chat.general.show-seconds.description": "Shows seconds in the chat message timestamps", + "module.better-chat.general.player-heads": "Player Heads", + "module.better-chat.general.player-heads.description": "Displays player heads next to their messages.", + "module.better-chat.general.coords-protection": "Coords Protection", + "module.better-chat.general.coords-protection.description": "Prevents you from sending messages in chat that may contain coordinates.", + "module.better-chat.general.keep-history": "Keep History", + "module.better-chat.general.keep-history.description": "Prevents the chat history from being cleared when disconnecting.", + "module.better-chat.filter.anti-spam": "Anti Spam", + "module.better-chat.filter.anti-spam.description": "Blocks duplicate messages from filling your chat.", + "module.better-chat.filter.depth": "Depth", + "module.better-chat.filter.depth.description": "How many messages to filter.", + "module.better-chat.filter.anti-clear": "Anti Clear", + "module.better-chat.filter.anti-clear.description": "Prevents servers from clearing chat.", + "module.better-chat.filter.filter-regex": "Filter Regex", + "module.better-chat.filter.filter-regex.description": "Filter out chat messages that match the regex filter.", + "module.better-chat.filter.regex-filter": "Regex Filter", + "module.better-chat.filter.regex-filter.description": "Regex filter used for filtering chat messages.", + "module.better-chat.longer-chat.infinite-chat-box": "Infinite Chat Box", + "module.better-chat.longer-chat.infinite-chat-box.description": "Lets you type infinitely long messages.", + "module.better-chat.longer-chat.longer-chat-history": "Longer Chat History", + "module.better-chat.longer-chat.longer-chat-history.description": "Extends chat length.", + "module.better-chat.longer-chat.extra-lines": "Extra Lines", + "module.better-chat.longer-chat.extra-lines.description": "The amount of extra chat lines.", + "module.better-chat.prefix.prefix": "Prefix", + "module.better-chat.prefix.prefix.description": "Adds a prefix to your chat messages.", + "module.better-chat.prefix.random": "Random", + "module.better-chat.prefix.random.description": "Uses a random number as your prefix.", + "module.better-chat.prefix.text": "Text", + "module.better-chat.prefix.text.description": "The text to add as your prefix.", + "module.better-chat.prefix.small-caps": "Small Caps", + "module.better-chat.prefix.small-caps.description": "Uses small caps in the prefix.", + "module.better-chat.suffix.suffix": "Suffix", + "module.better-chat.suffix.suffix.description": "Adds a suffix to your chat messages.", + "module.better-chat.suffix.random": "Random", + "module.better-chat.suffix.random.description": "Uses a random number as your suffix.", + "module.better-chat.suffix.text": "Text", + "module.better-chat.suffix.text.description": "The text to add as your suffix.", + "module.better-chat.suffix.small-caps": "Small Caps", + "module.better-chat.suffix.small-caps.description": "Uses small caps in the suffix.", + + "module.offhand-crash": "Offhand Crash", + "module.offhand-crash.description": "An exploit that can crash other players by swapping back and forth between your main hand and offhand.", + "module.offhand-crash.general.do-crash": "Do Crash", + "module.offhand-crash.general.do-crash.description": "Sends X number of offhand swap sound packets to the server per tick.", + "module.offhand-crash.general.speed": "Speed", + "module.offhand-crash.general.speed.description": "The amount of swaps per tick.", + "module.offhand-crash.general.anti-crash": "Anti Crash", + "module.offhand-crash.general.anti-crash.description": "Attempts to prevent you from crashing yourself.", + + "module.auto-breed": "Auto Breed", + "module.auto-breed.description": "Automatically breeds specified animals.", + "module.auto-breed.general.entities": "Entities", + "module.auto-breed.general.entities.description": "Entities to breed.", + "module.auto-breed.general.range": "Range", + "module.auto-breed.general.range.description": "How far away the animals can be to be bred.", + "module.auto-breed.general.hand-for-breeding": "Hand For Breeding", + "module.auto-breed.general.hand-for-breeding.description": "The hand to use for breeding.", + "module.auto-breed.general.mob-age-filter": "Mob Age Filter", + "module.auto-breed.general.mob-age-filter.description": "Determines the age of the mobs to target (baby, adult, or both).", + + "module.spawn-proofer": "Spawn Proofer", + "module.spawn-proofer.description": "Automatically spawnproofs unlit areas.", + "module.spawn-proofer.general.place-delay": "Place Delay", + "module.spawn-proofer.general.place-delay.description": "The tick delay between placing blocks.", + "module.spawn-proofer.general.place-range": "Place Range", + "module.spawn-proofer.general.place-range.description": "How far away from the player you can place a block.", + "module.spawn-proofer.general.walls-range": "Walls Range", + "module.spawn-proofer.general.walls-range.description": "How far away from the player you can place a block behind walls.", + "module.spawn-proofer.general.blocks-per-tick": "Blocks Per Tick", + "module.spawn-proofer.general.blocks-per-tick.description": "How many blocks to place in one tick.", + "module.spawn-proofer.general.light-level": "Light Level", + "module.spawn-proofer.general.light-level.description": "Light levels to spawn proof. Old spawning light: 7.", + "module.spawn-proofer.general.blocks": "Blocks", + "module.spawn-proofer.general.blocks.description": "Block to use for spawn proofing.", + "module.spawn-proofer.general.mode": "Mode", + "module.spawn-proofer.general.mode.description": "Which spawn types should be spawn proofed.", + "module.spawn-proofer.general.rotate": "Rotate", + "module.spawn-proofer.general.rotate.description": "Rotates towards the blocks being placed.", + + "module.step": "Step", + "module.step.description": "Allows you to walk up full blocks instantly.", + "module.step.general.height": "Height", + "module.step.general.height.description": "Step height.", + "module.step.general.active-when": "Active When", + "module.step.general.active-when.description": "Step is active when you meet these requirements.", + "module.step.general.safe-step": "Safe Step", + "module.step.general.safe-step.description": "Doesn't let you step out of a hole if you are low on health or there is a crystal nearby.", + "module.step.general.step-health": "Step Health", + "module.step.general.step-health.description": "The health you stop being able to step at.", + + "module.entity-owner": "Entity Owner", + "module.entity-owner.description": "Displays the name of the player who owns the entity you're looking at.", + "module.entity-owner.general.scale": "Scale", + "module.entity-owner.general.scale.description": "The scale of the text.", + + "module.scaffold": "Scaffold", + "module.scaffold.description": "Automatically places blocks under you.", + "module.scaffold.general.blocks": "Blocks", + "module.scaffold.general.blocks.description": "Selected blocks.", + "module.scaffold.general.blocks-filter": "Blocks Filter", + "module.scaffold.general.blocks-filter.description": "How to use the block list setting", + "module.scaffold.general.fast-tower": "Fast Tower", + "module.scaffold.general.fast-tower.description": "Whether or not to scaffold upwards faster.", + "module.scaffold.general.tower-speed": "Tower Speed", + "module.scaffold.general.tower-speed.description": "The speed at which to tower.", + "module.scaffold.general.while-moving": "While Moving", + "module.scaffold.general.while-moving.description": "Allows you to tower while moving.", + "module.scaffold.general.only-on-click": "Only On Click", + "module.scaffold.general.only-on-click.description": "Only places blocks when holding right click.", + "module.scaffold.general.swing": "Swing", + "module.scaffold.general.swing.description": "Renders your client-side swing.", + "module.scaffold.general.auto-switch": "Auto Switch", + "module.scaffold.general.auto-switch.description": "Automatically swaps to a block before placing.", + "module.scaffold.general.rotate": "Rotate", + "module.scaffold.general.rotate.description": "Rotates towards the blocks being placed.", + "module.scaffold.general.air-place": "Air Place", + "module.scaffold.general.air-place.description": "Allow air place. This also allows you to modify scaffold radius.", + "module.scaffold.general.ahead-distance": "Ahead Distance", + "module.scaffold.general.ahead-distance.description": "How far ahead to place blocks.", + "module.scaffold.general.closest-block-range": "Closest Block Range", + "module.scaffold.general.closest-block-range.description": "How far can scaffold place blocks when you are in air.", + "module.scaffold.general.radius": "Radius", + "module.scaffold.general.radius.description": "Scaffold radius.", + "module.scaffold.general.blocks-per-tick": "Blocks Per Tick", + "module.scaffold.general.blocks-per-tick.description": "How many blocks to place in one tick.", + "module.scaffold.render.render": "Render", + "module.scaffold.render.render.description": "Whether to render blocks that have been placed.", + "module.scaffold.render.shape-mode": "Shape Mode", + "module.scaffold.render.shape-mode.description": "How the shapes are rendered.", + "module.scaffold.render.side-color": "Side Color", + "module.scaffold.render.side-color.description": "The side color of the target block rendering.", + "module.scaffold.render.line-color": "Line Color", + "module.scaffold.render.line-color.description": "The line color of the target block rendering.", + + "module.sneak": "Sneak", + "module.sneak.description": "Sneaks for you", + "module.sneak.general.mode": "Mode", + "module.sneak.general.mode.description": "Which method to sneak.", + + "module.no-slow": "No Slow", + "module.no-slow.description": "Allows you to move normally when using objects that will slow you.", + "module.no-slow.general.items": "Items", + "module.no-slow.general.items.description": "Whether or not using items will slow you.", + "module.no-slow.general.web": "Web", + "module.no-slow.general.web.description": "Whether or not cobwebs will not slow you down.", + "module.no-slow.general.web-timer": "Web Timer", + "module.no-slow.general.web-timer.description": "The timer value for WebMode Timer.", + "module.no-slow.general.honey-block": "Honey Block", + "module.no-slow.general.honey-block.description": "Whether or not honey blocks will not slow you down.", + "module.no-slow.general.soul-sand": "Soul Sand", + "module.no-slow.general.soul-sand.description": "Whether or not soul sand will not slow you down.", + "module.no-slow.general.slime-block": "Slime Block", + "module.no-slow.general.slime-block.description": "Whether or not slime blocks will not slow you down.", + "module.no-slow.general.berry-bush": "Berry Bush", + "module.no-slow.general.berry-bush.description": "Whether or not berry bushes will not slow you down.", + "module.no-slow.general.air-strict": "Air Strict", + "module.no-slow.general.air-strict.description": "Will attempt to bypass anti-cheats like 2b2t's. Only works while in air.", + "module.no-slow.general.fluid-drag": "Fluid Drag", + "module.no-slow.general.fluid-drag.description": "Whether or not fluid drag will not slow you down.", + "module.no-slow.general.sneaking": "Sneaking", + "module.no-slow.general.sneaking.description": "Whether or not sneaking will not slow you down.", + "module.no-slow.general.hunger": "Hunger", + "module.no-slow.general.hunger.description": "Whether or not hunger will not slow you down.", + "module.no-slow.general.slowness": "Slowness", + "module.no-slow.general.slowness.description": "Whether or not slowness will not slow you down.", + + "module.fake-player": "Fake Player", + "module.fake-player.description": "Spawns a client-side fake player for testing usages. No need to be active.", + "module.fake-player.general.name": "Name", + "module.fake-player.general.name.description": "The name of the fake player.", + "module.fake-player.general.copy-inv": "Copy Inv", + "module.fake-player.general.copy-inv.description": "Copies your inventory to the fake player.", + "module.fake-player.general.health": "Health", + "module.fake-player.general.health.description": "The fake player's default health.", + + "module.nametags": "Nametags", + "module.nametags.description": "Displays customizable nametags above players, items and other entities.", + "module.nametags.general.entities": "Entities", + "module.nametags.general.entities.description": "Select entities to draw nametags on.", + "module.nametags.general.scale": "Scale", + "module.nametags.general.scale.description": "The scale of the nametag.", + "module.nametags.general.ignore-self": "Ignore Self", + "module.nametags.general.ignore-self.description": "Ignore yourself when in third person or freecam.", + "module.nametags.general.ignore-friends": "Ignore Friends", + "module.nametags.general.ignore-friends.description": "Ignore rendering nametags for friends.", + "module.nametags.general.ignore-bots": "Ignore Bots", + "module.nametags.general.ignore-bots.description": "Only render non-bot nametags.", + "module.nametags.general.culling": "Culling", + "module.nametags.general.culling.description": "Only render a certain number of nametags at a certain distance.", + "module.nametags.general.culling-range": "Culling Range", + "module.nametags.general.culling-range.description": "Only render nametags within this distance of your player.", + "module.nametags.general.culling-count": "Culling Count", + "module.nametags.general.culling-count.description": "Only render this many nametags.", + "module.nametags.players.health": "Health", + "module.nametags.players.health.description": "Shows the player's health.", + "module.nametags.players.gamemode": "Gamemode", + "module.nametags.players.gamemode.description": "Shows the player's GameMode.", + "module.nametags.players.distance": "Distance", + "module.nametags.players.distance.description": "Shows the distance between you and the player.", + "module.nametags.players.ping": "Ping", + "module.nametags.players.ping.description": "Shows the player's ping.", + "module.nametags.players.items": "Items", + "module.nametags.players.items.description": "Displays armor and hand items above the name tags.", + "module.nametags.players.item-spacing": "Item Spacing", + "module.nametags.players.item-spacing.description": "The spacing between items.", + "module.nametags.players.ignore-empty-slots": "Ignore Empty Slots", + "module.nametags.players.ignore-empty-slots.description": "Doesn't add spacing where an empty item stack would be.", + "module.nametags.players.durability": "Durability", + "module.nametags.players.durability.description": "Displays item durability as either a total, percentage, or neither.", + "module.nametags.players.display-enchants": "Display Enchants", + "module.nametags.players.display-enchants.description": "Displays item enchantments on the items.", + "module.nametags.players.shown-enchantments": "Shown Enchantments", + "module.nametags.players.shown-enchantments.description": "The enchantments that are shown on nametags.", + "module.nametags.players.enchantment-position": "Enchantment Position", + "module.nametags.players.enchantment-position.description": "Where the enchantments are rendered.", + "module.nametags.players.enchant-name-length": "Enchant Name Length", + "module.nametags.players.enchant-name-length.description": "The length enchantment names are trimmed to.", + "module.nametags.players.enchant-text-scale": "Enchant Text Scale", + "module.nametags.players.enchant-text-scale.description": "The scale of the enchantment text.", + "module.nametags.items.show-count": "Show Count", + "module.nametags.items.show-count.description": "Displays the number of items in the stack.", + "module.nametags.render.background-color": "Background Color", + "module.nametags.render.background-color.description": "The color of the nametag background.", + "module.nametags.render.name-color": "Name Color", + "module.nametags.render.name-color.description": "The color of the nametag names.", + "module.nametags.render.ping-color": "Ping Color", + "module.nametags.render.ping-color.description": "The color of the nametag ping.", + "module.nametags.render.gamemode-color": "Gamemode Color", + "module.nametags.render.gamemode-color.description": "The color of the nametag gamemode.", + "module.nametags.render.distance-color-mode": "Distance Color Mode", + "module.nametags.render.distance-color-mode.description": "The mode to color the nametag distance with.", + "module.nametags.render.distance-color": "Distance Color", + "module.nametags.render.distance-color.description": "The color of the nametag distance.", + + "module.esp": "Esp", + "module.esp.description": "Renders entities through walls.", + "module.esp.general.mode": "Mode", + "module.esp.general.mode.description": "Rendering mode.", + "module.esp.general.highlight-target": "Highlight Target", + "module.esp.general.highlight-target.description": "highlights the currently targeted entity differently", + "module.esp.general.target-hitbox": "Target Hitbox", + "module.esp.general.target-hitbox.description": "draw the hitbox of the target entity", + "module.esp.general.outline-width": "Outline Width", + "module.esp.general.outline-width.description": "The width of the shader outline.", + "module.esp.general.glow-multiplier": "Glow Multiplier", + "module.esp.general.glow-multiplier.description": "Multiplier for glow effect", + "module.esp.general.ignore-self": "Ignore Self", + "module.esp.general.ignore-self.description": "Ignores yourself drawing the shader.", + "module.esp.general.shape-mode": "Shape Mode", + "module.esp.general.shape-mode.description": "How the shapes are rendered.", + "module.esp.general.fill-opacity": "Fill Opacity", + "module.esp.general.fill-opacity.description": "The opacity of the shape fill.", + "module.esp.general.fade-distance": "Fade Distance", + "module.esp.general.fade-distance.description": "The distance from an entity where the color begins to fade.", + "module.esp.general.entities": "Entities", + "module.esp.general.entities.description": "Select specific entities.", + "module.esp.colors.distance-colors": "Distance Colors", + "module.esp.colors.distance-colors.description": "Changes the color of tracers depending on distance.", + "module.esp.colors.show-friend-colors": "Show Friend Colors", + "module.esp.colors.show-friend-colors.description": "Whether or not to override the distance color of friends with the friend color.", + "module.esp.colors.players-color": "Players Color", + "module.esp.colors.players-color.description": "The other player's color.", + "module.esp.colors.animals-color": "Animals Color", + "module.esp.colors.animals-color.description": "The animal's color.", + "module.esp.colors.water-animals-color": "Water Animals Color", + "module.esp.colors.water-animals-color.description": "The water animal's color.", + "module.esp.colors.monsters-color": "Monsters Color", + "module.esp.colors.monsters-color.description": "The monster's color.", + "module.esp.colors.ambient-color": "Ambient Color", + "module.esp.colors.ambient-color.description": "The ambient's color.", + "module.esp.colors.misc-color": "Misc Color", + "module.esp.colors.misc-color.description": "The misc color.", + "module.esp.colors.target-color": "Target Color", + "module.esp.colors.target-color.description": "The target color.", + "module.esp.colors.target-hitbox-color": "Target Hitbox Color", + "module.esp.colors.target-hitbox-color.description": "The target hitbox color.", + + "module.rotation": "Rotation", + "module.rotation.description": "Changes/locks your yaw and pitch.", + "module.rotation.yaw.yaw-lock-mode": "Yaw Lock Mode", + "module.rotation.yaw.yaw-lock-mode.description": "The way in which your yaw is locked.", + "module.rotation.yaw.yaw-angle": "Yaw Angle", + "module.rotation.yaw.yaw-angle.description": "Yaw angle in degrees.", + "module.rotation.pitch.pitch-lock-mode": "Pitch Lock Mode", + "module.rotation.pitch.pitch-lock-mode.description": "The way in which your pitch is locked.", + "module.rotation.pitch.pitch-angle": "Pitch Angle", + "module.rotation.pitch.pitch-angle.description": "Pitch angle in degrees.", + + "module.elytra-fly": "Elytra Fly", + "module.elytra-fly.description": "Gives you more control over your elytra.", + "module.elytra-fly.general.mode": "Mode", + "module.elytra-fly.general.mode.description": "The mode of flying.", + "module.elytra-fly.general.auto-take-off": "Auto Take Off", + "module.elytra-fly.general.auto-take-off.description": "Automatically takes off when you hold jump without needing to double jump.", + "module.elytra-fly.general.fall-multiplier": "Fall Multiplier", + "module.elytra-fly.general.fall-multiplier.description": "Controls how fast will you go down naturally.", + "module.elytra-fly.general.horizontal-speed": "Horizontal Speed", + "module.elytra-fly.general.horizontal-speed.description": "How fast you go forward and backward.", + "module.elytra-fly.general.vertical-speed": "Vertical Speed", + "module.elytra-fly.general.vertical-speed.description": "How fast you go up and down.", + "module.elytra-fly.general.acceleration": "Acceleration", + + "module.elytra-fly.general.acceleration-step": "Acceleration Step", + + "module.elytra-fly.general.acceleration-start": "Acceleration Start", + + "module.elytra-fly.general.stop-in-water": "Stop In Water", + "module.elytra-fly.general.stop-in-water.description": "Stops flying in water.", + "module.elytra-fly.general.no-unloaded-chunks": "No Unloaded Chunks", + "module.elytra-fly.general.no-unloaded-chunks.description": "Stops you from going into unloaded chunks.", + "module.elytra-fly.general.auto-hover": "Auto Hover", + "module.elytra-fly.general.auto-hover.description": "Automatically hover .3 blocks off ground when holding shift.", + "module.elytra-fly.general.no-crash": "No Crash", + "module.elytra-fly.general.no-crash.description": "Stops you from going into walls.", + "module.elytra-fly.general.crash-look-ahead": "Crash Look Ahead", + "module.elytra-fly.general.crash-look-ahead.description": "Distance to look ahead when flying.", + "module.elytra-fly.general.insta-drop": "Insta Drop", + "module.elytra-fly.general.insta-drop.description": "Makes you drop out of flight instantly.", + "module.elytra-fly.general.pitch40-lower-bounds": "Pitch40 Lower Bounds", + "module.elytra-fly.general.pitch40-lower-bounds.description": "The bottom height boundary for pitch40. You must be at least 40 blocks above this boundary when starting the module.\nAfter descending below this boundary you will start pitching upwards.", + "module.elytra-fly.general.pitch40-upper-bounds": "Pitch40 Upper Bounds", + "module.elytra-fly.general.pitch40-upper-bounds.description": "The upper height boundary for pitch40. You must be above this boundary when starting the module.\nWhen ascending above this boundary, if you are not already, you will start pitching downwards.", + "module.elytra-fly.general.pitch40-rotate-speed-up": "Pitch40 Rotate Speed Up", + "module.elytra-fly.general.pitch40-rotate-speed-up.description": "The speed for pitch rotation upwards (degrees per tick).", + "module.elytra-fly.general.pitch40-rotate-speed-down": "Pitch40 Rotate Speed Down", + "module.elytra-fly.general.pitch40-rotate-speed-down.description": "The speed for pitch rotation downwards (degrees per tick).", + "module.elytra-fly.general.auto-jump": "Auto Jump", + "module.elytra-fly.general.auto-jump.description": "Automatically jumps for you.", + "module.elytra-fly.general.yaw-lock": "Yaw Lock", + "module.elytra-fly.general.yaw-lock.description": "Whether to enable yaw lock or not", + "module.elytra-fly.general.yaw": "Yaw", + "module.elytra-fly.general.yaw.description": "The yaw angle to look at when using simple rotation lock in bounce mode.", + "module.elytra-fly.general.pitch-lock": "Pitch Lock", + "module.elytra-fly.general.pitch-lock.description": "Whether to lock your pitch angle.", + "module.elytra-fly.general.pitch": "Pitch", + "module.elytra-fly.general.pitch.description": "The pitch angle to look at when using the bounce mode.", + "module.elytra-fly.general.restart": "Restart", + "module.elytra-fly.general.restart.description": "Restarts flying with the elytra when rubberbanding.", + "module.elytra-fly.general.restart-delay": "Restart Delay", + "module.elytra-fly.general.restart-delay.description": "How many ticks to wait before restarting the elytra again after rubberbanding.", + "module.elytra-fly.general.sprint-constantly": "Sprint Constantly", + "module.elytra-fly.general.sprint-constantly.description": "Sprints all the time. If turned off, it will only sprint when the player is touching the ground.", + "module.elytra-fly.general.manual-takeoff": "Manual Takeoff", + "module.elytra-fly.general.manual-takeoff.description": "Does not automatically take off.", + "module.elytra-fly.inventory.elytra-replace": "Elytra Replace", + "module.elytra-fly.inventory.elytra-replace.description": "Replaces broken elytra with a new elytra.", + "module.elytra-fly.inventory.replace-durability": "Replace Durability", + "module.elytra-fly.inventory.replace-durability.description": "The durability threshold your elytra will be replaced at.", + "module.elytra-fly.inventory.chest-swap": "Chest Swap", + "module.elytra-fly.inventory.chest-swap.description": "Enables ChestSwap when toggling this module.", + "module.elytra-fly.inventory.replenish-fireworks": "Replenish Fireworks", + "module.elytra-fly.inventory.replenish-fireworks.description": "Moves fireworks into a selected hotbar slot.", + "module.elytra-fly.inventory.replenish-slot": "Replenish Slot", + "module.elytra-fly.inventory.replenish-slot.description": "The slot auto move moves fireworks to.", + "module.elytra-fly.autopilot.auto-pilot": "Auto Pilot", + "module.elytra-fly.autopilot.auto-pilot.description": "Moves forward while elytra flying.", + "module.elytra-fly.autopilot.use-fireworks": "Use Fireworks", + "module.elytra-fly.autopilot.use-fireworks.description": "Uses firework rockets every second of your choice.", + "module.elytra-fly.autopilot.firework-delay": "Firework Delay", + "module.elytra-fly.autopilot.firework-delay.description": "The delay in seconds in between using fireworks if \"Use Fireworks\" is enabled.", + "module.elytra-fly.autopilot.minimum-height": "Minimum Height", + "module.elytra-fly.autopilot.minimum-height.description": "The minimum height for autopilot.", + + "module.auto-respawn": "Auto Respawn", + "module.auto-respawn.description": "Automatically respawns after death.", + + "module.entity-control": "Entity Control", + "module.entity-control.description": "Lets you control rideable entities without a saddle.", + "module.entity-control.control.entities": "Entities", + "module.entity-control.control.entities.description": "Target entities.", + "module.entity-control.control.spoof-saddle*": "Spoof Saddle*", + "module.entity-control.control.spoof-saddle*.description": "Lets you control rideable entities without them being saddled. Only works on older server versions.", + "module.entity-control.control.max-jump": "Max Jump", + "module.entity-control.control.max-jump.description": "Sets jump power to maximum.", + "module.entity-control.control.lock-yaw": "Lock Yaw", + "module.entity-control.control.lock-yaw.description": "Locks the Entity's yaw.", + "module.entity-control.control.cancel-server-packets": "Cancel Server Packets", + "module.entity-control.control.cancel-server-packets.description": "Cancels incoming vehicle move packets. WILL desync you from the server if you make an invalid movement.", + "module.entity-control.speed.speed": "Speed", + "module.entity-control.speed.speed.description": "Makes you go faster horizontally when riding entities.", + "module.entity-control.speed.horizontal-speed": "Horizontal Speed", + "module.entity-control.speed.horizontal-speed.description": "Horizontal speed in blocks per second.", + "module.entity-control.speed.only-on-ground": "Only On Ground", + "module.entity-control.speed.only-on-ground.description": "Use speed only when standing on a block.", + "module.entity-control.speed.in-water": "In Water", + "module.entity-control.speed.in-water.description": "Use speed when in water.", + "module.entity-control.flight.fly": "Fly", + "module.entity-control.flight.fly.description": "Allows you to fly with entities.", + "module.entity-control.flight.vertical-speed": "Vertical Speed", + "module.entity-control.flight.vertical-speed.description": "Vertical speed in blocks per second.", + "module.entity-control.flight.fall-speed": "Fall Speed", + "module.entity-control.flight.fall-speed.description": "How fast you will fall in blocks per second. Set to a small value to prevent fly kicks.", + "module.entity-control.flight.anti-fly-kick": "Anti Fly Kick", + "module.entity-control.flight.anti-fly-kick.description": "Whether to prevent the server from kicking you for flying.", + "module.entity-control.flight.delay": "Delay", + "module.entity-control.flight.delay.description": "The amount of delay, in ticks, between flying down a bit and return to original position", + + "module.stash-finder": "Stash Finder", + "module.stash-finder.description": "Searches loaded chunks for storage blocks. Saves to /meteor-client", + "module.stash-finder.general.storage-blocks": "Storage Blocks", + "module.stash-finder.general.storage-blocks.description": "Select the storage blocks to search for.", + "module.stash-finder.general.minimum-storage-count": "Minimum Storage Count", + "module.stash-finder.general.minimum-storage-count.description": "The minimum amount of storage blocks in a chunk to record the chunk.", + "module.stash-finder.general.blacklisted-support-blocks": "Blacklisted Support Blocks", + "module.stash-finder.general.blacklisted-support-blocks.description": "Blocks that prevent counting a storage block entity when it sits on them.", + "module.stash-finder.general.minimum-distance": "Minimum Distance", + "module.stash-finder.general.minimum-distance.description": "The minimum distance you must be from spawn to record a certain chunk.", + "module.stash-finder.general.notifications": "Notifications", + "module.stash-finder.general.notifications.description": "Sends Minecraft notifications when new stashes are found.", + "module.stash-finder.general.notification-mode": "Notification Mode", + "module.stash-finder.general.notification-mode.description": "The mode to use for notifications.", + "module.stash-finder.render.render-tracer": "Render Tracer", + "module.stash-finder.render.render-tracer.description": "Renders a tracer to the last found stash.", + "module.stash-finder.render.tracer-color": "Tracer Color", + "module.stash-finder.render.tracer-color.description": "Color of the stash tracer.", + "module.stash-finder.render.tracer-hide-at-distance": "Tracer Hide At Distance", + "module.stash-finder.render.tracer-hide-at-distance.description": "Hide the trace when you are this close to the stash.", + "module.stash-finder.render.tracer-max-distance": "Tracer Max Distance", + "module.stash-finder.render.tracer-max-distance.description": "Hide the trace when you are farther than this distance from the stash.", + "module.stash-finder.render.render-chunk-column": "Render Chunk Column", + "module.stash-finder.render.render-chunk-column.description": "Renders a vertical column at the center of traced chunks.", + "module.stash-finder.render.chunk-column-color": "Chunk Column Color", + "module.stash-finder.render.chunk-column-color.description": "Color of the stash tracer column.", + "module.stash-finder.render.clear-traces-bind": "Clear Traces Bind", + "module.stash-finder.render.clear-traces-bind.description": "Keybind to clear all stash traces.", + + "module.better-beacons": "Better Beacons", + "module.better-beacons.description": "Select effects unaffected by beacon level.", + + "module.auto-nametag": "Auto Nametag", + "module.auto-nametag.description": "Automatically uses nametags on entities without a nametag. WILL nametag ALL entities in the specified distance.", + "module.auto-nametag.general.entities": "Entities", + "module.auto-nametag.general.entities.description": "Which entities to nametag.", + "module.auto-nametag.general.range": "Range", + "module.auto-nametag.general.range.description": "The maximum range an entity can be to be nametagged.", + "module.auto-nametag.general.priority": "Priority", + "module.auto-nametag.general.priority.description": "Priority sort", + "module.auto-nametag.general.renametag": "Renametag", + "module.auto-nametag.general.renametag.description": "Allows already nametagged entities to be renamed.", + "module.auto-nametag.general.rotate": "Rotate", + "module.auto-nametag.general.rotate.description": "Automatically faces towards the mob being nametagged.", + + "module.elytra-boost": "Elytra Boost", + "module.elytra-boost.description": "Boosts your elytra as if you used a firework.", + "module.elytra-boost.general.anti-consume": "Anti Consume", + "module.elytra-boost.general.anti-consume.description": "Prevents fireworks from being consumed when using Elytra Boost.", + "module.elytra-boost.general.firework-duration": "Firework Duration", + "module.elytra-boost.general.firework-duration.description": "The duration of the firework.", + "module.elytra-boost.general.play-sound": "Play Sound", + "module.elytra-boost.general.play-sound.description": "Plays the firework sound when a boost is triggered.", + "module.elytra-boost.general.keybind": "Keybind", + "module.elytra-boost.general.keybind.description": "The keybind to boost.", + + "module.blink": "Blink", + "module.blink.description": "Allows you to essentially teleport while suspending motion updates.", + "module.blink.general.render-original": "Render Original", + "module.blink.general.render-original.description": "Renders your player model at the original position.", + "module.blink.general.pulse-delay": "Pulse Delay", + "module.blink.general.pulse-delay.description": "After the duration in ticks has elapsed, send all packets and start blinking again. 0 to disable.", + "module.blink.general.cancel-blink": "Cancel Blink", + "module.blink.general.cancel-blink.description": "Cancels sending packets and sends you back to your original position.", + + "module.block-selection": "Block Selection", + "module.block-selection.description": "Modifies how your block selection is rendered.", + "module.block-selection.general.advanced": "Advanced", + "module.block-selection.general.advanced.description": "Shows a more advanced outline on different types of shape blocks.", + "module.block-selection.general.single-side": "Single Side", + "module.block-selection.general.single-side.description": "Only renders the side you are looking at.", + "module.block-selection.general.shape-mode": "Shape Mode", + "module.block-selection.general.shape-mode.description": "How the shapes are rendered.", + "module.block-selection.general.side-color": "Side Color", + "module.block-selection.general.side-color.description": "The side color.", + "module.block-selection.general.line-color": "Line Color", + "module.block-selection.general.line-color.description": "The line color.", + "module.block-selection.general.hide-when-inside-block": "Hide When Inside Block", + "module.block-selection.general.hide-when-inside-block.description": "Hide selection when inside target block.", + + "module.auto-city": "Auto City", + "module.auto-city.description": "Automatically mine blocks next to someone's feet.", + "module.auto-city.general.target-range": "Target Range", + "module.auto-city.general.target-range.description": "The radius in which players get targeted.", + "module.auto-city.general.break-range": "Break Range", + "module.auto-city.general.break-range.description": "How close a block must be to you to be considered.", + "module.auto-city.general.switch-mode": "Switch Mode", + "module.auto-city.general.switch-mode.description": "How to switch to a pickaxe.", + "module.auto-city.general.support": "Support", + "module.auto-city.general.support.description": "If there is no block below a city block it will place one before mining.", + "module.auto-city.general.place-range": "Place Range", + "module.auto-city.general.place-range.description": "How far away to try and place a block.", + "module.auto-city.general.rotate": "Rotate", + "module.auto-city.general.rotate.description": "Automatically rotates you towards the city block.", + "module.auto-city.general.chat-info": "Chat Info", + "module.auto-city.general.chat-info.description": "Whether the module should send messages in chat.", + "module.auto-city.render.swing-hand": "Swing Hand", + "module.auto-city.render.swing-hand.description": "Whether to render your hand swinging.", + "module.auto-city.render.render-block": "Render Block", + "module.auto-city.render.render-block.description": "Whether to render the block being broken.", + "module.auto-city.render.shape-mode": "Shape Mode", + "module.auto-city.render.shape-mode.description": "How the shapes are rendered.", + "module.auto-city.render.side-color": "Side Color", + "module.auto-city.render.side-color.description": "The side color of the rendering.", + "module.auto-city.render.line-color": "Line Color", + "module.auto-city.render.line-color.description": "The line color of the rendering.", + + "module.waypoints": "Waypoints", + "module.waypoints.description": "Allows you to create waypoints.", + "module.waypoints.general.text-render-distance": "Text Render Distance", + "module.waypoints.general.text-render-distance.description": "Maximum distance from the center of the screen at which text will be rendered.", + "module.waypoints.general.waypoint-fade-distance": "Waypoint Fade Distance", + "module.waypoints.general.waypoint-fade-distance.description": "The distance to a waypoint at which it begins to start fading.", + "module.waypoints.death-position.max-death-positions": "Max Death Positions", + "module.waypoints.death-position.max-death-positions.description": "The amount of death positions to save, 0 to disable", + "module.waypoints.death-position.chat": "Chat", + "module.waypoints.death-position.chat.description": "Send a chat message with your position once you die", + + "module.auto-web": "Auto Web", + "module.auto-web.description": "Automatically places webs on other players.", + "module.auto-web.general.place-range": "Place Range", + "module.auto-web.general.place-range.description": "The range at which webs can be placed.", + "module.auto-web.general.walls-range": "Walls Range", + "module.auto-web.general.walls-range.description": "Range in which to place webs when behind blocks.", + "module.auto-web.general.target-priority": "Target Priority", + "module.auto-web.general.target-priority.description": "How to filter targets within range.", + "module.auto-web.general.target-range": "Target Range", + "module.auto-web.general.target-range.description": "The maximum distance to target players.", + "module.auto-web.general.predict-movement": "Predict Movement", + "module.auto-web.general.predict-movement.description": "Predict target movement to account for ping.", + "module.auto-web.general.ticks-to-predict": "Ticks To Predict", + "module.auto-web.general.ticks-to-predict.description": "How many ticks ahead we should predict for.", + "module.auto-web.general.doubles": "Doubles", + "module.auto-web.general.doubles.description": "Places webs in the target's upper hitbox as well as the lower hitbox.", + "module.auto-web.general.rotate": "Rotate", + "module.auto-web.general.rotate.description": "Rotates towards the webs when placing.", + "module.auto-web.render.render": "Render", + "module.auto-web.render.render.description": "Renders an overlay where webs are placed.", + "module.auto-web.render.shape-mode": "Shape Mode", + "module.auto-web.render.shape-mode.description": "How the shapes are rendered.", + "module.auto-web.render.side-color": "Side Color", + "module.auto-web.render.side-color.description": "The side color of the placed web rendering.", + "module.auto-web.render.line-color": "Line Color", + "module.auto-web.render.line-color.description": "The line color of the placed web rendering.", + + "module.auto-eat": "Auto Eat", + "module.auto-eat.description": "Automatically eats food.", + "module.auto-eat.general.blacklist": "Blacklist", + "module.auto-eat.general.blacklist.description": "Which items to not eat.", + "module.auto-eat.general.pause-auras": "Pause Auras", + "module.auto-eat.general.pause-auras.description": "Pauses all auras when eating.", + "module.auto-eat.general.pause-baritone": "Pause Baritone", + "module.auto-eat.general.pause-baritone.description": "Pause baritone when eating.", + "module.auto-eat.threshold.threshold-mode": "Threshold Mode", + "module.auto-eat.threshold.threshold-mode.description": "The threshold mode to trigger auto eat.", + "module.auto-eat.threshold.health-threshold": "Health Threshold", + "module.auto-eat.threshold.health-threshold.description": "The level of health you eat at.", + "module.auto-eat.threshold.hunger-threshold": "Hunger Threshold", + "module.auto-eat.threshold.hunger-threshold.description": "The level of hunger you eat at.", + + "module.hitboxes": "Hitboxes", + "module.hitboxes.description": "Expands an entity's hitboxes.", + "module.hitboxes.general.entities": "Entities", + "module.hitboxes.general.entities.description": "Which entities to target.", + "module.hitboxes.general.expand": "Expand", + "module.hitboxes.general.expand.description": "How much to expand the hitbox of the entity.", + "module.hitboxes.general.ignore-friends": "Ignore Friends", + "module.hitboxes.general.ignore-friends.description": "Doesn't expand the hitboxes of friends.", + "module.hitboxes.weapon-options.only-on-weapon": "Only On Weapon", + "module.hitboxes.weapon-options.only-on-weapon.description": "Only modifies hitbox when holding a weapon in hand.", + "module.hitboxes.weapon-options.sword": "Sword", + "module.hitboxes.weapon-options.sword.description": "Enable when holding a sword.", + "module.hitboxes.weapon-options.axe": "Axe", + "module.hitboxes.weapon-options.axe.description": "Enable when holding an axe.", + "module.hitboxes.weapon-options.pickaxe": "Pickaxe", + "module.hitboxes.weapon-options.pickaxe.description": "Enable when holding a pickaxe.", + "module.hitboxes.weapon-options.shovel": "Shovel", + "module.hitboxes.weapon-options.shovel.description": "Enable when holding a shovel.", + "module.hitboxes.weapon-options.hoe": "Hoe", + "module.hitboxes.weapon-options.hoe.description": "Enable when holding a hoe.", + "module.hitboxes.weapon-options.mace": "Mace", + "module.hitboxes.weapon-options.mace.description": "Enable when holding a mace.", + "module.hitboxes.weapon-options.spear": "Spear", + "module.hitboxes.weapon-options.spear.description": "Enable when holding a spear.", + "module.hitboxes.weapon-options.trident": "Trident", + "module.hitboxes.weapon-options.trident.description": "Enable when holding a trident.", + + "module.trail": "Trail", + "module.trail.description": "Renders a customizable trail behind your player.", + "module.trail.general.particles": "Particles", + "module.trail.general.particles.description": "Particles to draw.", + "module.trail.general.pause-when-stationary": "Pause When Stationary", + "module.trail.general.pause-when-stationary.description": "Whether or not to add particles when you are not moving.", + + "module.self-web": "Self Web", + "module.self-web.description": "Automatically places webs on you.", + "module.self-web.general.mode": "Mode", + "module.self-web.general.mode.description": "The mode to use for selfweb.", + "module.self-web.general.range": "Range", + "module.self-web.general.range.description": "How far away the player has to be from you to place webs. Requires Mode to Smart.", + "module.self-web.general.double-place": "Double Place", + "module.self-web.general.double-place.description": "Places webs in your upper hitbox as well.", + "module.self-web.general.auto-toggle": "Auto Toggle", + "module.self-web.general.auto-toggle.description": "Toggles off after placing the webs.", + "module.self-web.general.rotate": "Rotate", + "module.self-web.general.rotate.description": "Forces you to rotate downwards when placing webs.", + + "module.flight": "Flight", + "module.flight.description": "FLYYYY! No Fall is recommended with this module.", + "module.flight.general.mode": "Mode", + "module.flight.general.mode.description": "The mode for Flight.", + "module.flight.general.speed": "Speed", + "module.flight.general.speed.description": "Your speed when flying.", + "module.flight.general.vertical-speed-match": "Vertical Speed Match", + "module.flight.general.vertical-speed-match.description": "Matches your vertical speed to your horizontal speed, otherwise uses vanilla ratio.", + "module.flight.general.no-sneak": "No Sneak", + "module.flight.general.no-sneak.description": "Prevents you from sneaking while flying.", + "module.flight.anti-kick.mode": "Mode", + "module.flight.anti-kick.mode.description": "The mode for anti kick.", + "module.flight.anti-kick.delay": "Delay", + "module.flight.anti-kick.delay.description": "The amount of delay, in ticks, between flying down a bit and return to original position", + "module.flight.anti-kick.off-time": "Off Time", + "module.flight.anti-kick.off-time.description": "The amount of delay, in ticks, to fly down a bit to reset floating ticks.", + + "module.reverse-step": "Reverse Step", + "module.reverse-step.description": "Allows you to fall down blocks at a greater speed.", + "module.reverse-step.general.fall-speed": "Fall Speed", + "module.reverse-step.general.fall-speed.description": "How fast to fall in blocks per second.", + "module.reverse-step.general.fall-distance": "Fall Distance", + "module.reverse-step.general.fall-distance.description": "The maximum fall distance this setting will activate at.", + "module.reverse-step.general.vehicles": "Vehicles", + "module.reverse-step.general.vehicles.description": "Whether or not reverse step should affect vehicles.", + + "module.blur": "Blur", + "module.blur.description": "Blurs background when in GUI screens.", + "module.blur.general.strength": "Strength", + "module.blur.general.strength.description": "How strong the blur should be.", + "module.blur.general.fade-time": "Fade Time", + "module.blur.general.fade-time.description": "How long the fade will last in milliseconds.", + "module.blur.screens.meteor": "Meteor", + "module.blur.screens.meteor.description": "Applies blur to Meteor screens.", + "module.blur.screens.inventories": "Inventories", + "module.blur.screens.inventories.description": "Applies blur to inventory screens.", + "module.blur.screens.chat": "Chat", + "module.blur.screens.chat.description": "Applies blur when in chat.", + "module.blur.screens.other": "Other", + "module.blur.screens.other.description": "Applies blur to all other screen types.", + + "module.discord-presence": "Discord Presence", + "module.discord-presence.description": "Displays Meteor as your presence on Discord.", + "module.discord-presence.line-1.line-1-messages": "Line 1 Messages", + "module.discord-presence.line-1.line-1-messages.description": "Messages used for the first line.", + "module.discord-presence.line-1.line-1-update-delay": "Line 1 Update Delay", + "module.discord-presence.line-1.line-1-update-delay.description": "How fast to update the first line in ticks.", + "module.discord-presence.line-1.line-1-select-mode": "Line 1 Select Mode", + "module.discord-presence.line-1.line-1-select-mode.description": "How to select messages for the first line.", + "module.discord-presence.line-2.line-2-messages": "Line 2 Messages", + "module.discord-presence.line-2.line-2-messages.description": "Messages used for the second line.", + "module.discord-presence.line-2.line-2-update-delay": "Line 2 Update Delay", + "module.discord-presence.line-2.line-2-update-delay.description": "How fast to update the second line in ticks.", + "module.discord-presence.line-2.line-2-select-mode": "Line 2 Select Mode", + "module.discord-presence.line-2.line-2-select-mode.description": "How to select messages for the second line.", + + "module.void-esp": "Void Esp", + "module.void-esp.description": "Renders holes in bedrock layers that lead to the void.", + "module.void-esp.general.air-only": "Air Only", + "module.void-esp.general.air-only.description": "Checks bedrock only for air blocks.", + "module.void-esp.general.horizontal-radius": "Horizontal Radius", + "module.void-esp.general.horizontal-radius.description": "Horizontal radius in which to search for holes.", + "module.void-esp.general.hole-height": "Hole Height", + "module.void-esp.general.hole-height.description": "The minimum hole height to be rendered.", + "module.void-esp.general.nether-roof": "Nether Roof", + "module.void-esp.general.nether-roof.description": "Check for holes in nether roof.", + "module.void-esp.render.shape-mode": "Shape Mode", + "module.void-esp.render.shape-mode.description": "How the shapes are rendered.", + "module.void-esp.render.fill-color": "Fill Color", + "module.void-esp.render.fill-color.description": "The color that fills holes in the void.", + "module.void-esp.render.line-color": "Line Color", + "module.void-esp.render.line-color.description": "The color to draw lines of holes to the void.", + + "module.reach": "Reach", + "module.reach.description": "Gives you super long arms.", + "module.reach.general.extra-block-reach": "Extra Block Reach", + "module.reach.general.extra-block-reach.description": "The distance to add to your block reach.", + "module.reach.general.extra-entity-reach": "Extra Entity Reach", + "module.reach.general.extra-entity-reach.description": "The distance to add to your entity reach.", + + "module.speed-mine": "Speed Mine", + "module.speed-mine.description": "Allows you to quickly mine blocks.", + "module.speed-mine.general.mode": "Mode", + + "module.speed-mine.general.blocks": "Blocks", + "module.speed-mine.general.blocks.description": "Selected blocks.", + "module.speed-mine.general.blocks-filter": "Blocks Filter", + "module.speed-mine.general.blocks-filter.description": "How to use the blocks setting.", + "module.speed-mine.general.modifier": "Modifier", + "module.speed-mine.general.modifier.description": "Mining speed modifier. An additional value of 0.2 is equivalent to one haste level (1.2 = haste 1).", + "module.speed-mine.general.haste-amplifier": "Haste Amplifier", + "module.speed-mine.general.haste-amplifier.description": "What value of haste to give you. Above 2 not recommended.", + "module.speed-mine.general.instamine": "Instamine", + "module.speed-mine.general.instamine.description": "Whether or not to instantly mine blocks under certain conditions.", + "module.speed-mine.general.grim-bypass": "Grim Bypass", + "module.speed-mine.general.grim-bypass.description": "Bypasses Grim's fastbreak check, working as of 2.3.58", + + "module.inventory-tweaks": "Inventory Tweaks", + "module.inventory-tweaks.description": "Various inventory related utilities.", + "module.inventory-tweaks.general.mouse-drag-item-move": "Mouse Drag Item Move", + "module.inventory-tweaks.general.mouse-drag-item-move.description": "Moving mouse over items while holding shift will transfer it to the other container.", + "module.inventory-tweaks.general.xcarry": "Xcarry", + "module.inventory-tweaks.general.xcarry.description": "Allows you to store four extra item stacks in your crafting grid.", + "module.inventory-tweaks.general.uncap-bundle-scrolling": "Uncap Bundle Scrolling", + "module.inventory-tweaks.general.uncap-bundle-scrolling.description": "Whether to uncap the bundle scrolling feature to let you select any item.", + "module.inventory-tweaks.sorting.sorting-enabled": "Sorting Enabled", + "module.inventory-tweaks.sorting.sorting-enabled.description": "Automatically sorts stacks in inventory.", + "module.inventory-tweaks.sorting.sorting-key": "Sorting Key", + "module.inventory-tweaks.sorting.sorting-key.description": "Key to trigger the sort.", + "module.inventory-tweaks.sorting.sorting-delay": "Sorting Delay", + "module.inventory-tweaks.sorting.sorting-delay.description": "Delay in ticks between moving items when sorting.", + "module.inventory-tweaks.sorting.disable-in-creative": "Disable In Creative", + "module.inventory-tweaks.sorting.disable-in-creative.description": "Disables the inventory sorter when in creative mode.", + "module.inventory-tweaks.anti-drop.anti-drop-items": "Anti Drop Items", + "module.inventory-tweaks.anti-drop.anti-drop-items.description": "Items to prevent dropping. Doesn't work in creative inventory screen.", + "module.inventory-tweaks.anti-drop.item-frames": "Item Frames", + "module.inventory-tweaks.anti-drop.item-frames.description": "Prevent anti-drop items from being placed in item frames or pots", + "module.inventory-tweaks.anti-drop.override-bind": "Override Bind", + "module.inventory-tweaks.anti-drop.override-bind.description": "Hold this bind to temporarily bypass anti-drop", + "module.inventory-tweaks.auto-drop.auto-drop-items": "Auto Drop Items", + "module.inventory-tweaks.auto-drop.auto-drop-items.description": "Items to drop.", + "module.inventory-tweaks.auto-drop.exclude-equipped": "Exclude Equipped", + "module.inventory-tweaks.auto-drop.exclude-equipped.description": "Whether or not to drop items equipped in armor slots.", + "module.inventory-tweaks.auto-drop.exclude-hotbar": "Exclude Hotbar", + "module.inventory-tweaks.auto-drop.exclude-hotbar.description": "Whether or not to drop items from your hotbar.", + "module.inventory-tweaks.auto-drop.only-full-stacks": "Only Full Stacks", + "module.inventory-tweaks.auto-drop.only-full-stacks.description": "Only drops the items if the stack is full.", + "module.inventory-tweaks.steal-and-dump.steal-screens": "Steal Screens", + "module.inventory-tweaks.steal-and-dump.steal-screens.description": "Select the screens to display buttons and auto steal.", + "module.inventory-tweaks.steal-and-dump.inventory-buttons": "Inventory Buttons", + "module.inventory-tweaks.steal-and-dump.inventory-buttons.description": "Shows steal and dump buttons in container guis.", + "module.inventory-tweaks.steal-and-dump.steal-drop": "Steal Drop", + "module.inventory-tweaks.steal-and-dump.steal-drop.description": "Drop items to the ground instead of stealing them.", + "module.inventory-tweaks.steal-and-dump.drop-backwards": "Drop Backwards", + "module.inventory-tweaks.steal-and-dump.drop-backwards.description": "Drop items behind you.", + "module.inventory-tweaks.steal-and-dump.dump-filter": "Dump Filter", + "module.inventory-tweaks.steal-and-dump.dump-filter.description": "Dump mode.", + "module.inventory-tweaks.steal-and-dump.dump-items": "Dump Items", + "module.inventory-tweaks.steal-and-dump.dump-items.description": "Items to dump.", + "module.inventory-tweaks.steal-and-dump.steal-filter": "Steal Filter", + "module.inventory-tweaks.steal-and-dump.steal-filter.description": "Steal mode.", + "module.inventory-tweaks.steal-and-dump.steal-items": "Steal Items", + "module.inventory-tweaks.steal-and-dump.steal-items.description": "Items to steal.", + "module.inventory-tweaks.auto-steal.auto-steal": "Auto Steal", + "module.inventory-tweaks.auto-steal.auto-steal.description": "Automatically removes all possible items when you open a container.", + "module.inventory-tweaks.auto-steal.auto-dump": "Auto Dump", + "module.inventory-tweaks.auto-steal.auto-dump.description": "Automatically dumps all possible items when you open a container.", + "module.inventory-tweaks.auto-steal.delay": "Delay", + "module.inventory-tweaks.auto-steal.delay.description": "The minimum delay between stealing the next stack in milliseconds.", + "module.inventory-tweaks.auto-steal.initial-delay": "Initial Delay", + "module.inventory-tweaks.auto-steal.initial-delay.description": "The initial delay before stealing in milliseconds. 0 to use normal delay instead.", + "module.inventory-tweaks.auto-steal.random": "Random", + "module.inventory-tweaks.auto-steal.random.description": "Randomly adds a delay of up to the specified time in milliseconds.", + + "module.no-fall": "No Fall", + "module.no-fall.description": "Attempts to prevent you from taking fall damage.", + "module.no-fall.general.mode": "Mode", + "module.no-fall.general.mode.description": "The way you are saved from fall damage.", + "module.no-fall.general.placed-item": "Placed Item", + "module.no-fall.general.placed-item.description": "Which block to place.", + "module.no-fall.general.air-place-mode": "Air Place Mode", + "module.no-fall.general.air-place-mode.description": "Whether place mode places before you die or before you take damage.", + "module.no-fall.general.anchor": "Anchor", + "module.no-fall.general.anchor.description": "Centers the player and reduces movement when using bucket or air place mode.", + "module.no-fall.general.anti-bounce": "Anti Bounce", + "module.no-fall.general.anti-bounce.description": "Disables bouncing on slime-block and bed upon landing.", + "module.no-fall.general.pause-on-mace": "Pause On Mace", + "module.no-fall.general.pause-on-mace.description": "Pauses NoFall when using a mace.", + + "module.no-interact": "No Interact", + "module.no-interact.description": "Blocks interactions with certain types of inputs.", + "module.no-interact.blocks.block-mine": "Block Mine", + "module.no-interact.blocks.block-mine.description": "Cancels block mining.", + "module.no-interact.blocks.block-mine-mode": "Block Mine Mode", + "module.no-interact.blocks.block-mine-mode.description": "List mode to use for block mine.", + "module.no-interact.blocks.block-interact": "Block Interact", + "module.no-interact.blocks.block-interact.description": "Cancels block interaction.", + "module.no-interact.blocks.block-interact-mode": "Block Interact Mode", + "module.no-interact.blocks.block-interact-mode.description": "List mode to use for block interact.", + "module.no-interact.blocks.block-interact-hand": "Block Interact Hand", + "module.no-interact.blocks.block-interact-hand.description": "Cancels block interaction if performed by this hand.", + "module.no-interact.entities.entity-hit": "Entity Hit", + "module.no-interact.entities.entity-hit.description": "Cancel entity hitting.", + "module.no-interact.entities.entity-hit-mode": "Entity Hit Mode", + "module.no-interact.entities.entity-hit-mode.description": "List mode to use for entity hit.", + "module.no-interact.entities.entity-interact": "Entity Interact", + "module.no-interact.entities.entity-interact.description": "Cancel entity interaction.", + "module.no-interact.entities.entity-interact-mode": "Entity Interact Mode", + "module.no-interact.entities.entity-interact-mode.description": "List mode to use for entity interact.", + "module.no-interact.entities.entity-interact-hand": "Entity Interact Hand", + "module.no-interact.entities.entity-interact-hand.description": "Cancels entity interaction if performed by this hand.", + "module.no-interact.entities.friends": "Friends", + "module.no-interact.entities.friends.description": "Friends cancel mode.", + "module.no-interact.entities.babies": "Babies", + "module.no-interact.entities.babies.description": "Baby entity cancel mode.", + "module.no-interact.entities.nametagged": "Nametagged", + "module.no-interact.entities.nametagged.description": "Nametagged entity cancel mode.", + + "module.portals": "Portals", + "module.portals.description": "Allows you to use GUIs normally while in a Nether Portal.", + + "module.marker": "Marker", + "module.marker.description": "Renders shapes. Useful for large scale projects", + + "marker.sphere-2d.base.name": "Name", + "marker.sphere-2d.base.name.description": "Custom name for this marker.", + "marker.sphere-2d.base.description": "Description", + "marker.sphere-2d.base.description.description": "Custom description for this marker.", + "marker.sphere-2d.base.dimension": "Dimension", + "marker.sphere-2d.base.dimension.description": "In which dimension this marker should be visible.", + "marker.sphere-2d.base.active": "Active", + "marker.sphere-2d.base.active.description": "Is this marker visible.", + "marker.sphere-2d.general.center": "Center", + "marker.sphere-2d.general.center.description": "Center of the sphere", + "marker.sphere-2d.general.radius": "Radius", + "marker.sphere-2d.general.radius.description": "Radius of the sphere", + "marker.sphere-2d.general.layer": "Layer", + "marker.sphere-2d.general.layer.description": "Which layer to render", + "marker.sphere-2d.render.limit-render-range": "Limit Render Range", + "marker.sphere-2d.render.limit-render-range.description": "Whether to limit rendering range (useful in very large circles)", + "marker.sphere-2d.render.render-range": "Render Range", + "marker.sphere-2d.render.render-range.description": "Rendering range", + "marker.sphere-2d.render.shape-mode": "Shape Mode", + "marker.sphere-2d.render.shape-mode.description": "How the shapes are rendered.", + "marker.sphere-2d.render.side-color": "Side Color", + "marker.sphere-2d.render.side-color.description": "The color of the sides of the blocks being rendered.", + "marker.sphere-2d.render.line-color": "Line Color", + "marker.sphere-2d.render.line-color.description": "The color of the lines of the blocks being rendered.", + "marker.sphere-2d.keybinding.next-layer-keybind": "Next Layer Keybind", + "marker.sphere-2d.keybinding.next-layer-keybind.description": "Keybind to increment layer", + "marker.sphere-2d.keybinding.prev-layer-keybind": "Prev Layer Keybind", + "marker.sphere-2d.keybinding.prev-layer-keybind.description": "Keybind to increment layer", + "marker.cuboid.base.name": "Name", + "marker.cuboid.base.name.description": "Custom name for this marker.", + "marker.cuboid.base.description": "Description", + "marker.cuboid.base.description.description": "Custom description for this marker.", + "marker.cuboid.base.dimension": "Dimension", + "marker.cuboid.base.dimension.description": "In which dimension this marker should be visible.", + "marker.cuboid.base.active": "Active", + "marker.cuboid.base.active.description": "Is this marker visible.", + "marker.cuboid.general.pos-1": "Pos 1", + "marker.cuboid.general.pos-1.description": "1st corner of the cuboid", + "marker.cuboid.general.pos-2": "Pos 2", + "marker.cuboid.general.pos-2.description": "2nd corner of the cuboid", + "marker.cuboid.render.mode": "Mode", + "marker.cuboid.render.mode.description": "What mode to use for this marker.", + "marker.cuboid.render.shape-mode": "Shape Mode", + "marker.cuboid.render.shape-mode.description": "How the shapes are rendered.", + "marker.cuboid.render.side-color": "Side Color", + "marker.cuboid.render.side-color.description": "The color of the sides of the blocks being rendered.", + "marker.cuboid.render.line-color": "Line Color", + "marker.cuboid.render.line-color.description": "The color of the lines of the blocks being rendered.", + + + "module.criticals": "Criticals", + "module.criticals.description": "Performs critical attacks when you hit your target.", + "module.criticals.general.mode": "Mode", + "module.criticals.general.mode.description": "The mode on how Criticals will function.", + "module.criticals.general.only-killaura": "Only Killaura", + "module.criticals.general.only-killaura.description": "Only performs crits when using killaura.", + "module.criticals.mace.smash-attack": "Smash Attack", + "module.criticals.mace.smash-attack.description": "Will always perform smash attacks when using a mace.", + "module.criticals.mace.additional-height": "Additional Height", + "module.criticals.mace.additional-height.description": "The amount of additional height to spoof. More height means more damage.", + + "module.tunnel-esp": "Tunnel Esp", + "module.tunnel-esp.description": "Highlights tunnels.", + "module.tunnel-esp.general.height": "Height", + "module.tunnel-esp.general.height.description": "Height of the rendered box.", + "module.tunnel-esp.general.connected": "Connected", + "module.tunnel-esp.general.connected.description": "If neighbouring holes should be connected.", + "module.tunnel-esp.general.shape-mode": "Shape Mode", + "module.tunnel-esp.general.shape-mode.description": "How the shapes are rendered.", + "module.tunnel-esp.general.side-color": "Side Color", + "module.tunnel-esp.general.side-color.description": "The side color.", + "module.tunnel-esp.general.line-color": "Line Color", + "module.tunnel-esp.general.line-color.description": "The line color.", + + "module.auto-smelter": "Auto Smelter", + "module.auto-smelter.description": "Automatically smelts items from your inventory", + "module.auto-smelter.general.fuel-items": "Fuel Items", + "module.auto-smelter.general.fuel-items.description": "Items to use as fuel", + "module.auto-smelter.general.smeltable-items": "Smeltable Items", + "module.auto-smelter.general.smeltable-items.description": "Items to smelt", + "module.auto-smelter.general.disable-when-out-of-items": "Disable When Out Of Items", + "module.auto-smelter.general.disable-when-out-of-items.description": "Disable the module when you run out of items", + + "module.anchor-aura": "Anchor Aura", + "module.anchor-aura.description": "Automatically places and breaks Respawn Anchors to harm entities.", + "module.anchor-aura.general.target-range": "Target Range", + "module.anchor-aura.general.target-range.description": "Range in which to target players.", + "module.anchor-aura.general.target-priority": "Target Priority", + "module.anchor-aura.general.target-priority.description": "How to select the player to target.", + "module.anchor-aura.general.min-damage": "Min Damage", + "module.anchor-aura.general.min-damage.description": "The minimum damage to inflict on your target.", + "module.anchor-aura.general.max-self-damage": "Max Self Damage", + "module.anchor-aura.general.max-self-damage.description": "The maximum damage to inflict on yourself.", + "module.anchor-aura.general.anti-suicide": "Anti Suicide", + "module.anchor-aura.general.anti-suicide.description": "Will not place and break anchors if they will kill you.", + "module.anchor-aura.general.swap-back": "Swap Back", + "module.anchor-aura.general.swap-back.description": "Switches to your previous slot after using anchors.", + "module.anchor-aura.general.rotate": "Rotate", + "module.anchor-aura.general.rotate.description": "Rotates server-side towards the anchors being placed/broken.", + "module.anchor-aura.place.place": "Place", + "module.anchor-aura.place.place.description": "Allows Anchor Aura to place anchors.", + "module.anchor-aura.place.place-delay": "Place Delay", + "module.anchor-aura.place.place-delay.description": "The tick delay between placing anchors.", + "module.anchor-aura.place.place-range": "Place Range", + "module.anchor-aura.place.place-range.description": "The range at which anchors can be placed.", + "module.anchor-aura.place.walls-range": "Walls Range", + "module.anchor-aura.place.walls-range.description": "Range in which to place anchors when behind blocks.", + "module.anchor-aura.place.air-place": "Air Place", + "module.anchor-aura.place.air-place.description": "Allows Anchor Aura to place anchors in the air.", + "module.anchor-aura.break.charge-delay": "Charge Delay", + "module.anchor-aura.break.charge-delay.description": "The tick delay it takes to charge anchors.", + "module.anchor-aura.break.break-delay": "Break Delay", + "module.anchor-aura.break.break-delay.description": "The tick delay it takes to break anchors.", + "module.anchor-aura.break.break-range": "Break Range", + "module.anchor-aura.break.break-range.description": "Range in which to break anchors.", + "module.anchor-aura.break.walls-range": "Walls Range", + "module.anchor-aura.break.walls-range.description": "Range in which to break anchors when behind blocks.", + "module.anchor-aura.pause.pause-on-use": "Pause On Use", + "module.anchor-aura.pause.pause-on-use.description": "Pauses while using an item.", + "module.anchor-aura.pause.pause-on-mine": "Pause On Mine", + "module.anchor-aura.pause.pause-on-mine.description": "Pauses while mining blocks.", + "module.anchor-aura.pause.pause-on-CA": "Pause On CA", + "module.anchor-aura.pause.pause-on-CA.description": "Pauses while Crystal Aura is placing.", + "module.anchor-aura.render.swing": "Swing", + "module.anchor-aura.render.swing.description": "Whether to swing your hand client-side.", + "module.anchor-aura.render.render": "Render", + "module.anchor-aura.render.render.description": "Renders the block where it is placing an anchor.", + "module.anchor-aura.render.shape-mode": "Shape Mode", + "module.anchor-aura.render.shape-mode.description": "How the shapes are rendered.", + "module.anchor-aura.render.side-color": "Side Color", + "module.anchor-aura.render.side-color.description": "The side color for positions to be placed.", + "module.anchor-aura.render.line-color": "Line Color", + "module.anchor-aura.render.line-color.description": "The line color for positions to be placed.", + + "module.anti-void": "Anti Void", + "module.anti-void.description": "Attempts to prevent you from falling into the void.", + "module.anti-void.general.mode": "Mode", + "module.anti-void.general.mode.description": "The method to prevent you from falling into the void.", + + "module.kill-aura": "Kill Aura", + "module.kill-aura.description": "Attacks specified entities around you.", + "module.kill-aura.general.attack-when-holding": "Attack When Holding", + "module.kill-aura.general.attack-when-holding.description": "Only attacks an entity when a specified item is in your hand.", + "module.kill-aura.general.selected-weapon-types": "Selected Weapon Types", + "module.kill-aura.general.selected-weapon-types.description": "Which types of weapons to attack with (if you select the diamond sword, any type of sword may be used to attack).", + "module.kill-aura.general.rotate": "Rotate", + "module.kill-aura.general.rotate.description": "Determines when you should rotate towards the target.", + "module.kill-aura.general.auto-switch": "Auto Switch", + "module.kill-aura.general.auto-switch.description": "Switches to an acceptable weapon when attacking the target.", + "module.kill-aura.general.swap-back": "Swap Back", + "module.kill-aura.general.swap-back.description": "Switches to your previous slot when done attacking the target.", + "module.kill-aura.general.shield-mode": "Shield Mode", + "module.kill-aura.general.shield-mode.description": "Will try and use an axe to break target shields.", + "module.kill-aura.general.only-on-click": "Only On Click", + "module.kill-aura.general.only-on-click.description": "Only attacks when holding left click.", + "module.kill-aura.general.only-on-look": "Only On Look", + "module.kill-aura.general.only-on-look.description": "Only attacks when looking at an entity.", + "module.kill-aura.general.pause-baritone": "Pause Baritone", + "module.kill-aura.general.pause-baritone.description": "Freezes Baritone temporarily until you are finished attacking the entity.", + "module.kill-aura.targeting.entities": "Entities", + "module.kill-aura.targeting.entities.description": "Entities to attack.", + "module.kill-aura.targeting.priority": "Priority", + "module.kill-aura.targeting.priority.description": "How to filter targets within range.", + "module.kill-aura.targeting.max-targets": "Max Targets", + "module.kill-aura.targeting.max-targets.description": "How many entities to target at once.", + "module.kill-aura.targeting.range": "Range", + "module.kill-aura.targeting.range.description": "The maximum range the entity can be to attack it.", + "module.kill-aura.targeting.walls-range": "Walls Range", + "module.kill-aura.targeting.walls-range.description": "The maximum range the entity can be attacked through walls.", + "module.kill-aura.targeting.mob-age-filter": "Mob Age Filter", + "module.kill-aura.targeting.mob-age-filter.description": "Determines the age of the mobs to target (baby, adult, or both).", + "module.kill-aura.targeting.ignore-named": "Ignore Named", + "module.kill-aura.targeting.ignore-named.description": "Whether or not to attack mobs with a name.", + "module.kill-aura.targeting.ignore-passive": "Ignore Passive", + "module.kill-aura.targeting.ignore-passive.description": "Will only attack sometimes passive mobs if they are targeting you.", + "module.kill-aura.targeting.ignore-tamed": "Ignore Tamed", + "module.kill-aura.targeting.ignore-tamed.description": "Will avoid attacking mobs you tamed.", + "module.kill-aura.timing.pause-on-lag": "Pause On Lag", + "module.kill-aura.timing.pause-on-lag.description": "Pauses if the server is lagging.", + "module.kill-aura.timing.pause-on-use": "Pause On Use", + "module.kill-aura.timing.pause-on-use.description": "Does not attack while using an item.", + "module.kill-aura.timing.pause-on-CA": "Pause On CA", + "module.kill-aura.timing.pause-on-CA.description": "Does not attack while CA is placing.", + "module.kill-aura.timing.TPS-sync": "TPS Sync", + "module.kill-aura.timing.TPS-sync.description": "Tries to sync attack delay with the server's TPS.", + "module.kill-aura.timing.custom-delay": "Custom Delay", + "module.kill-aura.timing.custom-delay.description": "Use a custom delay instead of the vanilla cooldown.", + "module.kill-aura.timing.hit-delay": "Hit Delay", + "module.kill-aura.timing.hit-delay.description": "How fast you hit the entity in ticks.", + "module.kill-aura.timing.switch-delay": "Switch Delay", + "module.kill-aura.timing.switch-delay.description": "How many ticks to wait before hitting an entity after switching hotbar slots.", + + "module.parkour": "Parkour", + "module.parkour.description": "Automatically jumps at the edges of blocks.", + "module.parkour.general.edge-distance": "Edge Distance", + "module.parkour.general.edge-distance.description": "How far from the edge should you jump.", + + "module.spam": "Spam", + "module.spam.description": "Spams specified messages in chat.", + "module.spam.general.messages": "Messages", + "module.spam.general.messages.description": "Messages to use for spam.", + "module.spam.general.delay": "Delay", + "module.spam.general.delay.description": "The delay between specified messages in ticks.", + "module.spam.general.disable-on-leave": "Disable On Leave", + "module.spam.general.disable-on-leave.description": "Disables spam when you leave a server.", + "module.spam.general.disable-on-disconnect": "Disable On Disconnect", + "module.spam.general.disable-on-disconnect.description": "Disables spam when you are disconnected from a server.", + "module.spam.general.randomise": "Randomise", + "module.spam.general.randomise.description": "Selects a random message from your spam message list.", + "module.spam.general.auto-split-messages": "Auto Split Messages", + "module.spam.general.auto-split-messages.description": "Automatically split up large messages after a certain length", + "module.spam.general.split-length": "Split Length", + "module.spam.general.split-length.description": "The length after which to split messages in chat", + "module.spam.general.split-delay": "Split Delay", + "module.spam.general.split-delay.description": "The delay between split messages in ticks.", + "module.spam.general.bypass": "Bypass", + "module.spam.general.bypass.description": "Add random text at the end of the message to try to bypass anti spams.", + "module.spam.general.include-uppercase-characters": "Include Uppercase Characters", + "module.spam.general.include-uppercase-characters.description": "Whether the bypass text should include uppercase characters.", + "module.spam.general.length": "Length", + "module.spam.general.length.description": "Number of characters used to bypass anti spam.", + + "module.collisions": "Collisions", + "module.collisions.description": "Adds collision boxes to certain blocks/areas.", + "module.collisions.general.blocks": "Blocks", + "module.collisions.general.blocks.description": "What blocks should be added collision box.", + "module.collisions.general.magma": "Magma", + "module.collisions.general.magma.description": "Prevents you from walking over magma blocks.", + "module.collisions.general.unloaded-chunks": "Unloaded Chunks", + "module.collisions.general.unloaded-chunks.description": "Stops you from going into unloaded chunks.", + "module.collisions.general.ignore-border": "Ignore Border", + "module.collisions.general.ignore-border.description": "Removes world border collision.", + + "module.click-tp": "Click Tp", + "module.click-tp.description": "Teleports you to the block you click on.", + + "module.packet-canceller": "Packet Canceller", + "module.packet-canceller.description": "Allows you to cancel certain packets.", + "module.packet-canceller.general.S2C-packets": "S2C Packets", + "module.packet-canceller.general.S2C-packets.description": "Server-to-client packets to cancel.", + "module.packet-canceller.general.C2S-packets": "C2S Packets", + "module.packet-canceller.general.C2S-packets.description": "Client-to-server packets to cancel.", + + "module.tracers": "Tracers", + "module.tracers.description": "Displays tracer lines to specified entities.", + "module.tracers.general.entities": "Entities", + "module.tracers.general.entities.description": "Select specific entities.", + "module.tracers.general.ignore-self": "Ignore Self", + "module.tracers.general.ignore-self.description": "Doesn't draw tracers to yourself when in third person or freecam.", + "module.tracers.general.ignore-friends": "Ignore Friends", + "module.tracers.general.ignore-friends.description": "Doesn't draw tracers to friends.", + "module.tracers.general.show-invisible": "Show Invisible", + "module.tracers.general.show-invisible.description": "Shows invisible entities.", + "module.tracers.appearance.style": "Style", + "module.tracers.appearance.style.description": "What display mode should be used", + "module.tracers.appearance.target": "Target", + "module.tracers.appearance.target.description": "What part of the entity to target.", + "module.tracers.appearance.stem": "Stem", + "module.tracers.appearance.stem.description": "Draw a line through the center of the tracer target.", + "module.tracers.appearance.max-distance": "Max Distance", + "module.tracers.appearance.max-distance.description": "Maximum distance for tracers to show.", + "module.tracers.appearance.distance-offscreen": "Distance Offscreen", + "module.tracers.appearance.distance-offscreen.description": "Offscreen's distance from center.", + "module.tracers.appearance.size-offscreen": "Size Offscreen", + "module.tracers.appearance.size-offscreen.description": "Offscreen's size.", + "module.tracers.appearance.blink-offscreen": "Blink Offscreen", + "module.tracers.appearance.blink-offscreen.description": "Make offscreen Blink.", + "module.tracers.appearance.blink-offscreen-speed": "Blink Offscreen Speed", + "module.tracers.appearance.blink-offscreen-speed.description": "Offscreen's blink speed.", + "module.tracers.colors.distance-colors": "Distance Colors", + "module.tracers.colors.distance-colors.description": "Changes the color of tracers depending on distance.", + "module.tracers.colors.show-friend-colors": "Show Friend Colors", + "module.tracers.colors.show-friend-colors.description": "Whether or not to override the distance color of friends with the friend color.", + "module.tracers.colors.players-colors": "Players Colors", + "module.tracers.colors.players-colors.description": "The player's color.", + "module.tracers.colors.animals-color": "Animals Color", + "module.tracers.colors.animals-color.description": "The animal's color.", + "module.tracers.colors.water-animals-color": "Water Animals Color", + "module.tracers.colors.water-animals-color.description": "The water animal's color.", + "module.tracers.colors.monsters-color": "Monsters Color", + "module.tracers.colors.monsters-color.description": "The monster's color.", + "module.tracers.colors.ambient-color": "Ambient Color", + "module.tracers.colors.ambient-color.description": "The ambient color.", + "module.tracers.colors.misc-color": "Misc Color", + "module.tracers.colors.misc-color.description": "The misc color.", + + "module.auto-exp": "Auto Exp", + "module.auto-exp.description": "Automatically repairs your armor and tools in pvp.", + "module.auto-exp.general.mode": "Mode", + "module.auto-exp.general.mode.description": "Which items to repair.", + "module.auto-exp.general.replenish": "Replenish", + "module.auto-exp.general.replenish.description": "Automatically replenishes exp into a selected hotbar slot.", + "module.auto-exp.general.only-on-ground": "Only On Ground", + "module.auto-exp.general.only-on-ground.description": "Only throw when the player is on the ground.", + "module.auto-exp.general.exp-slot": "Exp Slot", + "module.auto-exp.general.exp-slot.description": "The slot to replenish exp into.", + "module.auto-exp.general.min-threshold": "Min Threshold", + "module.auto-exp.general.min-threshold.description": "The minimum durability percentage that an item needs to fall to, to be repaired.", + "module.auto-exp.general.max-threshold": "Max Threshold", + "module.auto-exp.general.max-threshold.description": "The maximum durability percentage to repair items to.", + + "module.jesus": "Jesus", + "module.jesus.description": "Walk on liquids and powder snow like Jesus.", + "module.jesus.general.powder-snow": "Powder Snow", + "module.jesus.general.powder-snow.description": "Walk on powder snow.", + "module.jesus.water.mode": "Mode", + "module.jesus.water.mode.description": "How to treat the water.", + "module.jesus.water.dip-if-burning": "Dip If Burning", + "module.jesus.water.dip-if-burning.description": "Lets you go into the water when you are burning.", + "module.jesus.water.dip-on-sneak": "Dip On Sneak", + "module.jesus.water.dip-on-sneak.description": "Lets you go into the water when your sneak key is held.", + "module.jesus.water.dip-on-fall": "Dip On Fall", + "module.jesus.water.dip-on-fall.description": "Lets you go into the water when you fall over a certain height.", + "module.jesus.water.dip-fall-height": "Dip Fall Height", + "module.jesus.water.dip-fall-height.description": "The fall height at which you will go into the water.", + "module.jesus.lava.mode": "Mode", + "module.jesus.lava.mode.description": "How to treat the lava.", + "module.jesus.lava.dip-if-resistant": "Dip If Resistant", + "module.jesus.lava.dip-if-resistant.description": "Lets you go into the lava if you have Fire Resistance effect.", + "module.jesus.lava.dip-on-sneak": "Dip On Sneak", + "module.jesus.lava.dip-on-sneak.description": "Lets you go into the lava when your sneak key is held.", + "module.jesus.lava.dip-on-fall": "Dip On Fall", + "module.jesus.lava.dip-on-fall.description": "Lets you go into the lava when you fall over a certain height.", + "module.jesus.lava.dip-fall-height": "Dip Fall Height", + "module.jesus.lava.dip-fall-height.description": "The fall height at which you will go into the lava.", + + "module.no-mining-trace": "No Mining Trace", + "module.no-mining-trace.description": "Allows you to mine blocks through entities.", + "module.no-mining-trace.general.blacklisted-entities": "Blacklisted Entities", + "module.no-mining-trace.general.blacklisted-entities.description": "Entities you will interact with as normal.", + "module.no-mining-trace.general.only-when-holding-a-pickaxe": "Only When Holding A Pickaxe", + "module.no-mining-trace.general.only-when-holding-a-pickaxe.description": "Whether or not to work only when holding a pickaxe.", + + "module.bow-aimbot": "Bow Aimbot", + "module.bow-aimbot.description": "Automatically aims your bow for you.", + "module.bow-aimbot.general.range": "Range", + "module.bow-aimbot.general.range.description": "The maximum range the entity can be to aim at it.", + "module.bow-aimbot.general.entities": "Entities", + "module.bow-aimbot.general.entities.description": "Entities to attack.", + "module.bow-aimbot.general.priority": "Priority", + "module.bow-aimbot.general.priority.description": "What type of entities to target.", + "module.bow-aimbot.general.babies": "Babies", + "module.bow-aimbot.general.babies.description": "Whether or not to attack baby variants of the entity.", + "module.bow-aimbot.general.nametagged": "Nametagged", + "module.bow-aimbot.general.nametagged.description": "Whether or not to attack mobs with a name tag.", + "module.bow-aimbot.general.pause-on-combat": "Pause On Combat", + "module.bow-aimbot.general.pause-on-combat.description": "Freezes Baritone temporarily until you released the bow." +} diff --git a/src/main/resources/assets/meteor-client/language/en_us.json b/src/main/resources/assets/meteor-client/language/en_us.json new file mode 100644 index 0000000000..bc9f17c8bd --- /dev/null +++ b/src/main/resources/assets/meteor-client/language/en_us.json @@ -0,0 +1,4032 @@ +{ + "meteor.lang.translators": "MeteorDevelopment", + + "meteor.key.category": "Meteor Client", + "meteor.key.open-commands": "Open Commands", + "meteor.key.open-gui": "Open GUI", + + "command.bind.description": "Binds a specified module to the next pressed key.", + "command.binds.description": "List of all bound modules.", + "command.commands.description": "List of all commands.", + "command.damage.description": "Damages self.", + "command.disconnect.description": "Disconnect from the server", + "command.disconnect.disconnection_message": "%s[%sDisconnectCommand%s] Disconnected by user.", + "command.dismount.description": "Dismounts you from entity you are riding.", + "command.drop.description": "Automatically drops specified items.", + "command.drop.exception.no_such_item": "Could not find an item with that name!", + "command.drop.exception.not_spectator": "Can't drop items while in spectator.", + "command.enchant.description": "Enchants the item in your hand. REQUIRES Creative mode.", + "command.enchant.exception.not_holding_item": "You need to hold some item to enchant.", + "command.enchant.exception.not_in_creative": "You must be in creative mode to use this.", + "command.ender-chest.description": "Allows you to preview memory of your ender chest.", + "command.fake-player.description": "Manages fake players that you can use for testing.", + "command.fake-player.error.not_found": "Couldn't find a Fake Player with that name.", + "command.fake-player.info.removed": "Removed Fake Player %s.", + "command.fov.description": "Changes your fov.", + "command.friends.description": "Manages friends.", + "command.gamemode.description": "Changes your gamemode client-side.", + "command.give.description": "Gives you any item.", + "command.give.exception.not_in_creative": "You must be in creative mode to use this.", + "command.give.exception.no_space": "No space in hotbar.", + "command.hclip.description": "Lets you clip through blocks horizontally.", + "command.input.description": "Keyboard input simulation.", + "command.input.info.cleared_handlers": "Cleared all keypress handlers.", + "command.input.info.active_handlers": "Active keypress handlers: ", + "command.input.info.keypress_handler": "(highlight)%d(default) - (highlight)%s %d(default) ticks left out of (highlight)%d(default).", + "command.input.info.removed_handler": "Removed keypress handler.", + "command.input.warning.no_handlers": "No active keypress handlers.", + "command.input.warning.out_of_range": "Index out of range.", + "command.inventory.description": "Allows you to see parts of another player's inventory.", + "command.locate.description": "Locates structures", + "command.macro.description": "Allows you to execute macros.", + "command.macro.error.none_scheduled": "No macros are currently scheduled.", + "command.macro.error.not_scheduled": "This macro is not currently scheduled.", + "command.macro.info.cleared_all": "Cleared all scheduled macros.", + "command.macro.info.cleared": "Cleared scheduled macro.", + "command.modules.description": "Displays a list of all modules.", + "command.name-history.description": "Provides a list of a players previous names from the laby.net api", + "command.name-history.error.error_fetching_name": "There was an error fetching that users name history.", + "command.name-history.inaccurate": "This name history entry is not accurate according to laby.net", + "command.nbt.description": "Modifies NBT data for an item, example: .nbt add {display:{Name:'{\"text\":\"$cRed Name\"}'}}", + "command.notebot.description": "Allows you load notebot files", + "command.peek.description": "Lets you see what's inside storage block items.", + "command.profiles.description": "Loads and saves profiles.", + "command.profiles.info.loaded": "Loaded profile (highlight)%s(default).", + "command.profiles.info.saved": "Saved profile (highlight)%s(default).", + "command.profiles.info.deleted": "Deleted profile (highlight)%s(default).", + "command.reload.description": "Reloads many systems.", + "command.reload.warning.reloading": "Reloading systems, this may take a while.", + "command.reset.description": "Resets specified settings.", + "command.rotation.description": "Modifies your rotation.", + "command.save-map.description": "Saves a map to an image.", + "command.save-map.error.error_writing_texture": "Error writing map texture", + "command.save-map.exception.map_not_found": "You must be holding a filled map.", + "command.save-map.exception.oops": "Something went wrong.", + "command.say.description": "Sends messages in chat.", + "command.server.description": "Prints server information", + "command.settings.description": "Allows you to view and change module settings.", + "command.spectate.description": "Allows you to spectate nearby players", + "command.swarm.description": "Sends commands to connected swarm workers.", + "command.toggle.description": "Toggles a module.", + "command.vclip.description": "Lets you clip through blocks vertically.", + "command.wasp.description": "Sets the auto wasp target.", + "command.wasp.exception.cant_wasp_self": "You cannot target yourself!", + "command.wasp.info.target": "%s set as target.", + "command.waypoint.description": "Manages waypoints.", + + "config.visual.custom-font": "Custom Font", + "config.visual.custom-font.description": "Use a custom font.", + "config.visual.font": "Font", + "config.visual.font.description": "Custom font to use.", + "config.visual.rainbow-speed": "Rainbow Speed", + "config.visual.rainbow-speed.description": "The global rainbow speed.", + "config.visual.title-screen-credits": "Title Screen Credits", + "config.visual.title-screen-credits.description": "Show Meteor credits on title screen", + "config.visual.title-screen-splashes": "Title Screen Splashes", + "config.visual.title-screen-splashes.description": "Show Meteor splash texts on title screen", + "config.visual.custom-window-title": "Custom Window Title", + "config.visual.custom-window-title.description": "Show custom text in the window title.", + "config.visual.window-title-text": "Window Title Text", + "config.visual.window-title-text.description": "The text it displays in the window title.", + "config.visual.friend-color": "Friend Color", + "config.visual.friend-color.description": "The color used to show friends.", + "config.visual.sync-list-setting-widths": "Sync List Setting Widths", + "config.visual.sync-list-setting-widths.description": "Prevents the list setting screens from moving around as you add & remove elements.", + "config.modules.hidden-modules": "Hidden Modules", + "config.modules.hidden-modules.description": "Prevent these modules from being rendered as options in the clickgui.", + "config.modules.module-search-count": "Module Search Count", + "config.modules.module-search-count.description": "Amount of modules and settings to be shown in the module search bar.", + "config.modules.search-module-aliases": "Search Module Aliases", + "config.modules.search-module-aliases.description": "Whether or not module aliases will be used in the module search bar.", + "config.chat.prefix": "Prefix", + "config.chat.prefix.description": "Prefix.", + "config.chat.chat-feedback": "Chat Feedback", + "config.chat.chat-feedback.description": "Sends chat feedback when meteor performs certain actions.", + "config.chat.delete-chat-feedback": "Delete Chat Feedback", + "config.chat.delete-chat-feedback.description": "Delete previous matching chat feedback to keep chat clear.", + "config.misc.rotation-hold": "Rotation Hold", + "config.misc.rotation-hold.description": "Hold long to hold server side rotation when not sending any packets.", + "config.misc.use-team-color": "Use Team Color", + "config.misc.use-team-color.description": "Uses player's team color for rendering things like esp and tracers.", + + "hud.general.custom-font": "Custom Font", + "hud.general.custom-font.description": "Text will use custom font.", + "hud.general.hide-in-menus": "Hide In Menus", + "hud.general.hide-in-menus.description": "Hides the meteor hud when in inventory screens or game menus.", + "hud.general.text-scale": "Text Scale", + "hud.general.text-scale.description": "Scale of text if not overridden by the element.", + "hud.general.text-colors": "Text Colors", + "hud.general.text-colors.description": "Colors used for the Text element.", + "hud.editor.border": "Border", + "hud.editor.border.description": "Space around the edges of the screen.", + "hud.editor.snapping-range": "Snapping Range", + "hud.editor.snapping-range.description": "Snapping range in editor.", + "hud.bind.bind": "Bind", + "hud.bind.bind.description": "Keybind for toggling the hud", + + "hud.base.anchors.auto-anchors": "Automatically assigns anchors based on the position.", + "hud.base.anchors.x-anchor": "Horizontal anchor.", + "hud.base.anchors.y-anchor": "Vertical anchor.", + + "hud.active-modules.general.sort": "Sort", + "hud.active-modules.general.sort.description": "How to sort active modules.", + "hud.active-modules.general.hidden-modules": "Hidden Modules", + "hud.active-modules.general.hidden-modules.description": "Which modules not to show in the list.", + "hud.active-modules.general.module-info": "Module Info", + "hud.active-modules.general.module-info.description": "Shows info from the module next to the name in the active modules list.", + "hud.active-modules.general.show-keybind": "Show Keybind", + "hud.active-modules.general.show-keybind.description": "Shows the module's keybind next to its name.", + "hud.active-modules.general.shadow": "Shadow", + "hud.active-modules.general.shadow.description": "Renders shadow behind text.", + "hud.active-modules.general.outlines": "Outlines", + "hud.active-modules.general.outlines.description": "Whether or not to render outlines", + "hud.active-modules.general.outline-width": "Outline Width", + "hud.active-modules.general.outline-width.description": "Outline width", + "hud.active-modules.general.alignment": "Alignment", + "hud.active-modules.general.alignment.description": "Horizontal alignment.", + "hud.active-modules.color.color-mode": "Color Mode", + "hud.active-modules.color.color-mode.description": "What color to use for active modules.", + "hud.active-modules.color.flat-color": "Flat Color", + "hud.active-modules.color.flat-color.description": "Color for flat color mode.", + "hud.active-modules.color.rainbow-speed": "Rainbow Speed", + "hud.active-modules.color.rainbow-speed.description": "Rainbow speed of rainbow color mode.", + "hud.active-modules.color.rainbow-spread": "Rainbow Spread", + "hud.active-modules.color.rainbow-spread.description": "Rainbow spread of rainbow color mode.", + "hud.active-modules.color.rainbow-saturation": "Rainbow Saturation", + "hud.active-modules.color.rainbow-saturation.description": "", + "hud.active-modules.color.rainbow-brightness": "Rainbow Brightness", + "hud.active-modules.color.rainbow-brightness.description": "", + "hud.active-modules.color.module-info-color": "Module Info Color", + "hud.active-modules.color.module-info-color.description": "Color of module info text.", + "hud.active-modules.scale.custom-scale": "Custom Scale", + "hud.active-modules.scale.custom-scale.description": "Applies a custom scale to this hud element.", + "hud.active-modules.scale.scale": "Scale", + "hud.active-modules.scale.scale.description": "Custom scale.", + "hud.active-modules.background.background": "Background", + "hud.active-modules.background.background.description": "Displays background.", + "hud.active-modules.background.background-color": "Background Color", + "hud.active-modules.background.background-color.description": "Color used for the background.", + "hud.armor.general.orientation": "Orientation", + "hud.armor.general.orientation.description": "How to display armor.", + "hud.armor.general.flip-order": "Flip Order", + "hud.armor.general.flip-order.description": "Flips the order of armor items.", + "hud.armor.general.show-empty": "Show Empty", + "hud.armor.general.show-empty.description": "Renders barrier icons for empty slots.", + "hud.armor.durability.durability": "Durability", + "hud.armor.durability.durability.description": "How to display armor durability.", + "hud.armor.durability.durability-color": "Durability Color", + "hud.armor.durability.durability-color.description": "Color of the text.", + "hud.armor.durability.durability-shadow": "Durability Shadow", + "hud.armor.durability.durability-shadow.description": "Text shadow.", + "hud.armor.scale.custom-scale": "Custom Scale", + "hud.armor.scale.custom-scale.description": "Applies a custom scale to this hud element.", + "hud.armor.scale.scale": "Scale", + "hud.armor.scale.scale.description": "Custom scale.", + "hud.armor.background.background": "Background", + "hud.armor.background.background.description": "Displays background.", + "hud.armor.background.background-color": "Background Color", + "hud.armor.background.background-color.description": "Color used for the background.", + "hud.combat.general.range": "Range", + "hud.combat.general.range.description": "The range to target players.", + "hud.combat.enchantments.displayed-enchantments": "Displayed Enchantments", + "hud.combat.enchantments.displayed-enchantments.description": "The enchantments that are shown on nametags.", + "hud.combat.enchantments.enchantment-color": "Enchantment Color", + "hud.combat.enchantments.enchantment-color.description": "Color of enchantment text.", + "hud.combat.health.health-stage-1": "Health Stage 1", + "hud.combat.health.health-stage-1.description": "The color on the left of the health gradient.", + "hud.combat.health.health-stage-2": "Health Stage 2", + "hud.combat.health.health-stage-2.description": "The color in the middle of the health gradient.", + "hud.combat.health.health-stage-3": "Health Stage 3", + "hud.combat.health.health-stage-3.description": "The color on the right of the health gradient.", + "hud.combat.distance.distance": "Distance", + "hud.combat.distance.distance.description": "Shows the distance between you and the player.", + "hud.combat.distance.distance-stage-1": "Distance Stage 1", + "hud.combat.distance.distance-stage-1.description": "The color when a player is within 10 blocks of you.", + "hud.combat.distance.distance-stage-2": "Distance Stage 2", + "hud.combat.distance.distance-stage-2.description": "The color when a player is within 50 blocks of you.", + "hud.combat.distance.distance-stage-3": "Distance Stage 3", + "hud.combat.distance.distance-stage-3.description": "The color when a player is greater then 50 blocks away from you.", + "hud.combat.ping.ping": "Ping", + "hud.combat.ping.ping.description": "Shows the player's ping.", + "hud.combat.ping.ping-stage-1": "Ping Stage 1", + "hud.combat.ping.ping-stage-1.description": "Color of ping text when under 75.", + "hud.combat.ping.ping-stage-2": "Ping Stage 2", + "hud.combat.ping.ping-stage-2.description": "Color of ping text when between 75 and 200.", + "hud.combat.ping.ping-stage-3": "Ping Stage 3", + "hud.combat.ping.ping-stage-3.description": "Color of ping text when over 200.", + "hud.combat.scale.custom-scale": "Custom Scale", + "hud.combat.scale.custom-scale.description": "Applies a custom scale to this hud element.", + "hud.combat.scale.scale": "Scale", + "hud.combat.scale.scale.description": "Custom scale.", + "hud.combat.background.background": "Background", + "hud.combat.background.background.description": "Displays background.", + "hud.combat.background.background-color": "Background Color", + "hud.combat.background.background-color.description": "Color used for the background.", + "hud.compass.general.type": "Type", + "hud.compass.general.type.description": "Which type of direction information to show.", + "hud.compass.general.color-north": "Color North", + "hud.compass.general.color-north.description": "Color of north.", + "hud.compass.general.color-other": "Color Other", + "hud.compass.general.color-other.description": "Color of other directions.", + "hud.compass.general.shadow": "Shadow", + "hud.compass.general.shadow.description": "Text shadow.", + "hud.compass.scale.custom-scale": "Custom Scale", + "hud.compass.scale.custom-scale.description": "Apply custom scales to this hud element.", + "hud.compass.scale.text-scale": "Text Scale", + "hud.compass.scale.text-scale.description": "Scale to use for the letters.", + "hud.compass.scale.compass-scale": "Compass Scale", + "hud.compass.scale.compass-scale.description": "Scale of the whole HUD element.", + "hud.compass.background.background": "Background", + "hud.compass.background.background.description": "Displays background.", + "hud.compass.background.background-color": "Background Color", + "hud.compass.background.background-color.description": "Color used for the background.", + "hud.hole.general.safe-blocks": "Safe Blocks", + "hud.hole.general.safe-blocks.description": "Which blocks to consider safe.", + "hud.hole.scale.custom-scale": "Custom Scale", + "hud.hole.scale.custom-scale.description": "Applies a custom scale to this hud element.", + "hud.hole.scale.scale": "Scale", + "hud.hole.scale.scale.description": "Custom scale.", + "hud.hole.background.background": "Background", + "hud.hole.background.background.description": "Displays background.", + "hud.hole.background.background-color": "Background Color", + "hud.hole.background.background-color.description": "Color used for the background.", + "hud.inventory.general.containers": "Containers", + "hud.inventory.general.containers.description": "Shows the contents of a container when holding them.", + "hud.inventory.scale.custom-scale": "Custom Scale", + "hud.inventory.scale.custom-scale.description": "Applies a custom scale to this hud element.", + "hud.inventory.scale.scale": "Scale", + "hud.inventory.scale.scale.description": "Custom scale.", + "hud.inventory.background.background": "Background", + "hud.inventory.background.background.description": "Background of inventory viewer.", + "hud.inventory.background.background-color": "Background Color", + "hud.inventory.background.background-color.description": "Color used for the background.", + "hud.item.general.item": "Item", + "hud.item.general.item.description": "Item to display", + "hud.item.general.none-mode": "None Mode", + "hud.item.general.none-mode.description": "How to render the item when you don't have the specified item in your inventory.", + "hud.item.scale.custom-scale": "Custom Scale", + "hud.item.scale.`custom-scale`.description": "Applies a custom scale to this hud element.", + "hud.item.scale.scale": "Scale", + "hud.item.scale.scale.description": "Custom scale.", + "hud.item.background.background": "Background", + "hud.item.background.background.description": "Displays background.", + "hud.item.background.background-color": "Background Color", + "hud.item.background.background-color.description": "Color used for the background.", + "hud.lag-notifier.general.shadow": "Shadow", + "hud.lag-notifier.general.shadow.description": "Text shadow.", + "hud.lag-notifier.general.text-color": "Text Color", + "hud.lag-notifier.general.text-color.description": "A.", + "hud.lag-notifier.general.color-1": "Color 1", + "hud.lag-notifier.general.color-1.description": "First color.", + "hud.lag-notifier.general.color-2": "Color 2", + "hud.lag-notifier.general.color-2.description": "Second color.", + "hud.lag-notifier.general.color-3": "Color 3", + "hud.lag-notifier.general.color-3.description": "Third color.", + "hud.lag-notifier.scale.custom-scale": "Custom Scale", + "hud.lag-notifier.scale.custom-scale.description": "Applies a custom scale to this hud element.", + "hud.lag-notifier.scale.scale": "Scale", + "hud.lag-notifier.scale.scale.description": "Custom scale.", + "hud.lag-notifier.background.background": "Background", + "hud.lag-notifier.background.background.description": "Displays background.", + "hud.lag-notifier.background.background-color": "Background Color", + "hud.lag-notifier.background.background-color.description": "Color used for the background.", + "hud.map.general.mode": "Mode", + "hud.map.general.mode.description": "How to determine which map to render.", + "hud.map.general.slot-index": "Slot Index", + "hud.map.general.slot-index.description": "Which slot to grab the map from.", + "hud.map.general.map-id": "Map Id", + "hud.map.general.map-id.description": "Which map id to render from. Must be in your inventory!", + "hud.map.visual.scale": "Scale", + "hud.map.visual.scale.description": "How big to render the map.", + "hud.map.visual.background": "Background", + "hud.map.visual.background.description": "Displays background.", + "hud.map.visual.background-color": "Background Color", + "hud.map.visual.background-color.description": "Color used for the background.", + "hud.module-infos.general.modules": "Modules", + "hud.module-infos.general.modules.description": "Which modules to display", + "hud.module-infos.general.additional-info": "Additional Info", + "hud.module-infos.general.additional-info.description": "Shows additional info from the module next to the name in the module info list.", + "hud.module-infos.general.text-shadow": "Text Shadow", + "hud.module-infos.general.text-shadow.description": "Renders shadow behind text.", + "hud.module-infos.general.module-color": "Module Color", + "hud.module-infos.general.module-color.description": "Module color.", + "hud.module-infos.general.on-color": "On Color", + "hud.module-infos.general.on-color.description": "Color when module is on.", + "hud.module-infos.general.off-color": "Off Color", + "hud.module-infos.general.off-color.description": "Color when module is off.", + "hud.module-infos.general.alignment": "Alignment", + "hud.module-infos.general.alignment.description": "Horizontal alignment.", + "hud.player-model.general.copy-yaw": "Copy Yaw", + "hud.player-model.general.copy-yaw.description": "Makes the player model's yaw equal to yours.", + "hud.player-model.general.custom-yaw": "Custom Yaw", + "hud.player-model.general.custom-yaw.description": "Custom yaw for when copy yaw is off.", + "hud.player-model.general.copy-pitch": "Copy Pitch", + "hud.player-model.general.copy-pitch.description": "Makes the player model's pitch equal to yours.", + "hud.player-model.general.custom-pitch": "Custom Pitch", + "hud.player-model.general.custom-pitch.description": "Custom pitch for when copy pitch is off.", + "hud.player-model.general.center-orientation": "Center Orientation", + "hud.player-model.general.center-orientation.description": "Which direction the player faces when the HUD model faces directly forward.", + "hud.player-model.scale.custom-scale": "Custom Scale", + "hud.player-model.scale.custom-scale.description": "Applies a custom scale to this hud element.", + "hud.player-model.scale.scale": "Scale", + "hud.player-model.scale.scale.description": "Custom scale.", + "hud.player-model.background.background": "Background", + "hud.player-model.background.background.description": "Displays background.", + "hud.player-model.background.background-color": "Background Color", + "hud.player-model.background.background-color.description": "Color used for the background.", + "hud.player-radar.general.limit": "Limit", + "hud.player-radar.general.limit.description": "The max number of players to show.", + "hud.player-radar.general.distance": "Distance", + "hud.player-radar.general.distance.description": "Shows the distance to the player next to their name.", + "hud.player-radar.general.display-friends": "Display Friends", + "hud.player-radar.general.display-friends.description": "Whether to show friends or not.", + "hud.player-radar.general.shadow": "Shadow", + "hud.player-radar.general.shadow.description": "Renders shadow behind text.", + "hud.player-radar.general.primary-color": "Primary Color", + "hud.player-radar.general.primary-color.description": "Primary color.", + "hud.player-radar.general.secondary-color": "Secondary Color", + "hud.player-radar.general.secondary-color.description": "Secondary color.", + "hud.player-radar.general.alignment": "Alignment", + "hud.player-radar.general.alignment.description": "Horizontal alignment.", + "hud.player-radar.general.border": "Border", + "hud.player-radar.general.border.description": "How much space to add around the element.", + "hud.player-radar.scale.custom-scale": "Custom Scale", + "hud.player-radar.scale.custom-scale.description": "Applies a custom scale to this hud element.", + "hud.player-radar.scale.scale": "Scale", + "hud.player-radar.scale.scale.description": "Custom scale.", + "hud.player-radar.background.background": "Background", + "hud.player-radar.background.background.description": "Displays background.", + "hud.player-radar.background.background-color": "Background Color", + "hud.player-radar.background.background-color.description": "Color used for the background.", + "hud.potion-timers.general.hidden-effects": "Hidden Effects", + "hud.potion-timers.general.hidden-effects.description": "Which effects not to show in the list.", + "hud.potion-timers.general.show-ambient": "Show Ambient", + "hud.potion-timers.general.show-ambient.description": "Whether to show ambient effects like from beacons and conduits.", + "hud.potion-timers.general.color-mode": "Color Mode", + "hud.potion-timers.general.color-mode.description": "What color to use for effects.", + "hud.potion-timers.general.flat-color": "Flat Color", + "hud.potion-timers.general.flat-color.description": "Color for flat color mode.", + "hud.potion-timers.general.rainbow-speed": "Rainbow Speed", + "hud.potion-timers.general.rainbow-speed.description": "Rainbow speed of rainbow color mode.", + "hud.potion-timers.general.rainbow-spread": "Rainbow Spread", + "hud.potion-timers.general.rainbow-spread.description": "Rainbow spread of rainbow color mode.", + "hud.potion-timers.general.rainbow-saturation": "Rainbow Saturation", + "hud.potion-timers.general.rainbow-saturation.description": "Saturation of rainbow color mode.", + "hud.potion-timers.general.rainbow-brightness": "Rainbow Brightness", + "hud.potion-timers.general.rainbow-brightness.description": "Brightness of rainbow color mode.", + "hud.potion-timers.general.shadow": "Shadow", + "hud.potion-timers.general.shadow.description": "Renders shadow behind text.", + "hud.potion-timers.general.alignment": "Alignment", + "hud.potion-timers.general.alignment.description": "Horizontal alignment.", + "hud.potion-timers.general.border": "Border", + "hud.potion-timers.general.border.description": "How much space to add around the element.", + "hud.potion-timers.scale.custom-scale": "Custom Scale", + "hud.potion-timers.scale.custom-scale.description": "Applies a custom scale to this hud element.", + "hud.potion-timers.scale.scale": "Scale", + "hud.potion-timers.scale.scale.description": "Custom scale.", + "hud.potion-timers.background.background": "Background", + "hud.potion-timers.background.background.description": "Displays background.", + "hud.potion-timers.background.background-color": "Background Color", + "hud.potion-timers.background.background-color.description": "Color used for the background.", + "hud.text.general.text": "Text", + "hud.text.general.text.description": "Text to display with Starscript.", + "hud.text.general.update-delay": "Update Delay", + "hud.text.general.update-delay.description": "Update delay in ticks", + "hud.text.general.shadow": "Shadow", + "hud.text.general.shadow.description": "Renders shadow behind text.", + "hud.text.general.border": "Border", + "hud.text.general.border.description": "How much space to add around the text.", + "hud.text.shown.shown": "Shown", + "hud.text.shown.shown.description": "When this text element is shown.", + "hud.text.shown.condition": "Condition", + "hud.text.shown.condition.description": "Condition to check when shown is not Always.", + "hud.text.scale.custom-scale": "Custom Scale", + "hud.text.scale.custom-scale.description": "Applies a custom scale to this hud element.", + "hud.text.scale.scale": "Scale", + "hud.text.scale.scale.description": "Custom scale.", + "hud.text.background.background": "Background", + "hud.text.background.background.description": "Displays background.", + "hud.text.background.background-color": "Background Color", + "hud.text.background.background-color.description": "Color used for the background.", + + "macro.general.name": "Name", + "macro.general.name.description": "The name of the macro.", + "macro.general.messages": "Messages", + "macro.general.messages.description": "The messages for the macro to send.", + "macro.general.keybind": "Keybind", + "macro.general.keybind.description": "The bind to run the macro.", + + "profile.general.name": "Name", + "profile.general.name.description": "The name of the profile.", + "profile.general.load-on-join": "Load On Join", + "profile.general.load-on-join.description": "Which servers to set this profile as active when joining.", + "profile.save.hud": "Hud", + "profile.save.hud.description": "Whether the profile should save hud.", + "profile.save.macros": "Macros", + "profile.save.macros.description": "Whether the profile should save macros.", + "profile.save.modules": "Modules", + "profile.save.modules.description": "Whether the profile should save modules.", + "profile.save.waypoints": "Waypoints", + "profile.save.waypoints.description": "Whether the profile should save waypoints.", + + "proxies.refreshing.threads": "Threads", + "proxies.refreshing.threads.description": "The number of concurrent threads to check proxies with.", + "proxies.refreshing.timeout": "Timeout", + "proxies.refreshing.timeout.description": "The timeout in milliseconds for checking proxies.", + "proxies.refreshing.retries-on-timeout": "Retries On Timeout", + "proxies.refreshing.retries-on-timeout.description": "How many additional times to check a proxy if the check times out.", + "proxies.cleanup.sort-by-latency": "Sort By Latency", + "proxies.cleanup.sort-by-latency.description": "Whether to sort the proxy list by latency.", + "proxies.cleanup.prune-dead": "Prune Dead", + "proxies.cleanup.prune-dead.description": "Whether to prune dead proxies.", + "proxies.cleanup.prune-by-latency": "Prune By Latency", + "proxies.cleanup.prune-by-latency.description": "Prune proxies at or above this latency in ms. 0 to disable.", + "proxies.cleanup.prune-to-count": "Prune To Count", + "proxies.cleanup.prune-to-count.description": "If in excess, prune the number of proxies to this count. 0 to disable. Prioritises by latency.", + + "proxy.general.name": "Name", + "proxy.general.name.description": "The name of the proxy.", + "proxy.general.type": "Type", + "proxy.general.type.description": "The type of proxy.", + "proxy.general.address": "Address", + "proxy.general.address.description": "The ip address of the proxy.", + "proxy.general.port": "Port", + "proxy.general.port.description": "The port of the proxy.", + "proxy.general.enabled": "Enabled", + "proxy.general.enabled.description": "Whether the proxy is enabled.", + "proxy.optional.username": "Username", + "proxy.optional.username.description": "The username of the proxy.", + "proxy.optional.password": "Password", + "proxy.optional.password.description": "The password of the proxy.", + + "waypoint.visual.name": "Name", + "waypoint.visual.name.description": "The name of the waypoint.", + "waypoint.visual.icon": "Icon", + "waypoint.visual.icon.description": "The icon of the waypoint.", + "waypoint.visual.color": "Color", + "waypoint.visual.color.description": "The color of the waypoint.", + "waypoint.visual.visible": "Visible", + "waypoint.visual.visible.description": "Whether to show the waypoint.", + "waypoint.visual.max-visible-distance": "Max Visible Distance", + "waypoint.visual.max-visible-distance.description": "How far away to render the waypoint.", + "waypoint.visual.scale": "Scale", + "waypoint.visual.scale.description": "The scale of the waypoint.", + "waypoint.position.location": "Location", + "waypoint.position.location.description": "The location of the waypoint.", + "waypoint.position.dimension": "Dimension", + "waypoint.position.dimension.description": "Which dimension the waypoint is in.", + "waypoint.position.opposite-dimension": "Opposite Dimension", + "waypoint.position.opposite-dimension.description": "Whether to show the waypoint in the opposite dimension.", + "waypoint.position.action-when-near": "Action When Near", + "waypoint.position.action-when-near.description": "Action to be performed when the player is near.", + "waypoint.position.action-when-near-distance": "Action When Near Distance", + "waypoint.position.action-when-near-distance.description": "How close (in blocks) the player has to be for the near action to be performed.", + + "theme.meteor.general.scale": "Scale", + "theme.meteor.general.scale.description": "Scale of the GUI.", + "theme.meteor.general.module-alignment": "Module Alignment", + "theme.meteor.general.module-alignment.description": "How module titles are aligned.", + "theme.meteor.general.category-icons": "Category Icons", + "theme.meteor.general.category-icons.description": "Adds item icons to module categories.", + "theme.meteor.general.hide-HUD": "Hide HUD", + "theme.meteor.general.hide-HUD.description": "Hide HUD when in GUI.", + "theme.meteor.colors.accent-color": "Accent Color", + "theme.meteor.colors.accent-color.description": "Main color of the GUI.", + "theme.meteor.colors.checkbox-color": "Checkbox Color", + "theme.meteor.colors.checkbox-color.description": "Color of checkbox.", + "theme.meteor.colors.plus-color": "Plus Color", + "theme.meteor.colors.plus-color.description": "Color of plus button.", + "theme.meteor.colors.minus-color": "Minus Color", + "theme.meteor.colors.minus-color.description": "Color of minus button.", + "theme.meteor.colors.favorite-color": "Favorite Color", + "theme.meteor.colors.favorite-color.description": "Color of checked favorite button.", + "theme.meteor.text.text-color": "Text Color", + "theme.meteor.text.text-color.description": "Color of text.", + "theme.meteor.text.text-secondary-text-color": "Text Secondary Text Color", + "theme.meteor.text.text-secondary-text-color.description": "Color of secondary text.", + "theme.meteor.text.text-highlight-color": "Text Highlight Color", + "theme.meteor.text.text-highlight-color.description": "Color of text highlighting.", + "theme.meteor.text.title-text-color": "Title Text Color", + "theme.meteor.text.title-text-color.description": "Color of title text.", + "theme.meteor.text.logged-in-text-color": "Logged In Text Color", + "theme.meteor.text.logged-in-text-color.description": "Color of logged in account name.", + "theme.meteor.text.placeholder-color": "Placeholder Color", + "theme.meteor.text.placeholder-color.description": "Color of placeholder text.", + "theme.meteor.background.background-color": "Background Color", + "theme.meteor.background.background-color.description": "Color of background.", + "theme.meteor.background.hovered-background-color": "Hovered Background Color", + "theme.meteor.background.hovered-background-color.description": "Color of background when hovered.", + "theme.meteor.background.pressed-background-color": "Pressed Background Color", + "theme.meteor.background.pressed-background-color.description": "Color of background when pressed.", + "theme.meteor.background.module-background-color": "Module Background Color", + "theme.meteor.background.module-background-color.description": "Color of module background when active.", + "theme.meteor.outline.outline-color": "Outline Color", + "theme.meteor.outline.outline-color.description": "Color of outline.", + "theme.meteor.outline.hovered-outline-color": "Hovered Outline Color", + "theme.meteor.outline.hovered-outline-color.description": "Color of outline when hovered.", + "theme.meteor.outline.pressed-outline-color": "Pressed Outline Color", + "theme.meteor.outline.pressed-outline-color.description": "Color of outline when pressed.", + "theme.meteor.separator.separator-text-color": "Separator Text Color", + "theme.meteor.separator.separator-text-color.description": "Color of separator text", + "theme.meteor.separator.separator-center-color": "Separator Center Color", + "theme.meteor.separator.separator-center-color.description": "Center color of separators.", + "theme.meteor.separator.separator-edges-color": "Separator Edges Color", + "theme.meteor.separator.separator-edges-color.description": "Color of separator edges.", + "theme.meteor.scrollbar.Scrollbar-color": "Scrollbar Color", + "theme.meteor.scrollbar.Scrollbar-color.description": "Color of Scrollbar.", + "theme.meteor.scrollbar.hovered-Scrollbar-color": "Hovered Scrollbar Color", + "theme.meteor.scrollbar.hovered-Scrollbar-color.description": "Color of Scrollbar when hovered.", + "theme.meteor.scrollbar.pressed-Scrollbar-color": "Pressed Scrollbar Color", + "theme.meteor.scrollbar.pressed-Scrollbar-color.description": "Color of Scrollbar when pressed.", + "theme.meteor.slider.slider-handle-color": "Slider Handle Color", + "theme.meteor.slider.slider-handle-color.description": "Color of slider-handle.", + "theme.meteor.slider.hovered-slider-handle-color": "Hovered Slider Handle Color", + "theme.meteor.slider.hovered-slider-handle-color.description": "Color of slider-handle when hovered.", + "theme.meteor.slider.pressed-slider-handle-color": "Pressed Slider Handle Color", + "theme.meteor.slider.pressed-slider-handle-color.description": "Color of slider-handle when pressed.", + "theme.meteor.slider.slider-left-color": "Slider Left Color", + "theme.meteor.slider.slider-left-color.description": "Color of slider left part.", + "theme.meteor.slider.slider-right-color": "Slider Right Color", + "theme.meteor.slider.slider-right-color.description": "Color of slider right part.", + "theme.meteor.starscript.starscript-text-color": "Starscript Text Color", + "theme.meteor.starscript.starscript-text-color.description": "Color of text in Starscript code.", + "theme.meteor.starscript.starscript-braces-color": "Starscript Braces Color", + "theme.meteor.starscript.starscript-braces-color.description": "Color of braces in Starscript code.", + "theme.meteor.starscript.starscript-parenthesis-color": "Starscript Parenthesis Color", + "theme.meteor.starscript.starscript-parenthesis-color.description": "Color of parenthesis in Starscript code.", + "theme.meteor.starscript.starscript-dots-color": "Starscript Dots Color", + "theme.meteor.starscript.starscript-dots-color.description": "Color of dots in starscript code.", + "theme.meteor.starscript.starscript-commas-color": "Starscript Commas Color", + "theme.meteor.starscript.starscript-commas-color.description": "Color of commas in starscript code.", + "theme.meteor.starscript.starscript-operators-color": "Starscript Operators Color", + "theme.meteor.starscript.starscript-operators-color.description": "Color of operators in Starscript code.", + "theme.meteor.starscript.starscript-strings-color": "Starscript Strings Color", + "theme.meteor.starscript.starscript-strings-color.description": "Color of strings in Starscript code.", + "theme.meteor.starscript.starscript-numbers-color": "Starscript Numbers Color", + "theme.meteor.starscript.starscript-numbers-color.description": "Color of numbers in Starscript code.", + "theme.meteor.starscript.starscript-keywords-color": "Starscript Keywords Color", + "theme.meteor.starscript.starscript-keywords-color.description": "Color of keywords in Starscript code.", + "theme.meteor.starscript.starscript-accessed-objects-color": "Starscript Accessed Objects Color", + "theme.meteor.starscript.starscript-accessed-objects-color.description": "Color of accessed objects (before a dot) in Starscript code.", + + "category.combat": "Combat", + "category.player": "Player", + "category.movement": "Movement", + "category.render": "Render", + "category.world": "World", + "category.misc": "Misc", + + "setting.group.general": "General", + "setting.group.entities": "Entities", + "setting.group.whitelist": "Whitelist", + "setting.group.visual": "Visual", + "setting.group.arrows": "Arrows", + "setting.group.movement": "Movement", + "setting.group.pathing": "Pathing", + "setting.group.screens": "Screens", + "setting.group.yaw": "Yaw", + "setting.group.pitch": "Pitch", + "setting.group.threshold": "Threshold", + "setting.group.players": "Players", + "setting.group.items": "Items", + "setting.group.colors": "Colors", + "setting.group.water": "Water", + "setting.group.lava": "Lava", + "setting.group.targeting": "Targeting", + "setting.group.inventory": "Inventory", + "setting.group.pause": "Pause", + "setting.group.filter": "Filter", + "setting.group.longer-chat": "Longer Chat", + "setting.group.prefix": "Prefix", + "setting.group.suffix": "Suffix", + "setting.group.toggles": "Toggles", + "setting.group.note-map": "Note Map", + "setting.group.render": "Render", + "setting.group.scrolling": "Scrolling", + "setting.group.main-hand": "Main Hand", + "setting.group.off-hand": "Off Hand", + "setting.group.arm": "Arm", + "setting.group.opened-rendering": "Opened Rendering", + "setting.group.potions": "Potions", + "setting.group.health": "Health", + "setting.group.death-position": "Death Position", + "setting.group.overlay": "Overlay", + "setting.group.hud": "Hud", + "setting.group.world": "World", + "setting.group.entity": "Entity", + "setting.group.swapping-options": "Swapping Options", + "setting.group.sword-enchants": "Sword Enchants", + "setting.group.mace-enchants": "Mace Enchants", + "setting.group.other-enchants": "Other Enchants", + "setting.group.weapon-options": "Weapon Options", + "setting.group.blocks": "Blocks", + "setting.group.through-walls": "Through Walls", + "setting.group.crystals": "Crystals", + "setting.group.hand": "Hand", + "setting.group.sky": "Sky", + "setting.group.place": "Place", + "setting.group.break": "Break", + "setting.group.combat": "Combat", + "setting.group.totem": "Totem", + "setting.group.previews": "Previews", + "setting.group.other": "Other", + "setting.group.hide-flags": "Hide Flags", + "setting.group.safety": "Safety", + "setting.group.mace": "Mace", + "setting.group.switch": "Switch", + "setting.group.face-place": "Face Place", + "setting.group.digging": "Digging", + "setting.group.paving": "Paving", + "setting.group.render-digging": "Render Digging", + "setting.group.render-paving": "Render Paving", + "setting.group.crossbows": "Crossbows", + "setting.group.timing": "Timing", + "setting.group.sorting": "Sorting", + "setting.group.anti-drop": "Anti Drop", + "setting.group.auto-drop": "Auto Drop", + "setting.group.steal-and-dump": "Steal And Dump", + "setting.group.auto-steal": "Auto Steal", + "setting.group.line-1": "Line 1", + "setting.group.line-2": "Line 2", + "setting.group.anti-kick": "Anti Kick", + "setting.group.appearance": "Appearance", + "setting.group.autopilot": "Autopilot", + "setting.group.totem-pops": "Totem Pops", + "setting.group.visual-range": "Visual Range", + "setting.group.pearl": "Pearl", + "setting.group.joins/leaves": "Joins/leaves", + "setting.group.actions": "Actions", + "setting.group.messages": "Messages", + "setting.group.control": "Control", + "setting.group.speed": "Speed", + "setting.group.flight": "Flight", + "setting.group.range": "Range", + "setting.group.smart": "Smart", + "setting.group.editor": "Editor", + "setting.group.bind": "Bind", + "setting.group.modules": "Modules", + "setting.group.chat": "Chat", + "setting.group.misc": "Misc", + "setting.group.save": "Save", + "setting.group.refreshing": "Refreshing", + "setting.group.cleanup": "Cleanup", + "setting.group.optional": "Optional", + "setting.group.position": "Position", + "setting.group.text": "Text", + "setting.group.background": "Background", + "setting.group.outline": "Outline", + "setting.group.separator": "Separator", + "setting.group.scrollbar": "Scrollbar", + "setting.group.slider": "Slider", + "setting.group.starscript": "Starscript", + "setting.group.scale": "Scale", + "setting.group.shown": "Shown", + "setting.group.durability": "Durability", + "setting.group.enchantments": "Enchantments", + "setting.group.distance": "Distance", + "setting.group.ping": "Ping", + "setting.group.anchors": "Anchors", + "setting.group.tracer": "Tracer", + "setting.group.base": "Base", + "setting.group.strings": "Strings", + "setting.group.whole-numbers": "Whole Numbers", + "setting.group.numbers": "Numbers", + "setting.group.checkboxes": "Checkboxes", + "setting.group.block-lists": "Block Lists", + "setting.group.item-lists": "Item Lists", + + "module.base.bind": "Bind", + "module.base.bind.bind": "Bind: ", + "module.base.bind.toggle-on-release": "Toggle on bind release: ", + "module.base.bind.chat-feedback": "Chat Feedback: ", + "module.base.active": "Active: ", + "module.base.copy-config": "Copy config", + "module.base.paste-config": "Paste config", + "module.base.from": "From: ", + + "module.air-jump": "Air Jump", + "module.air-jump.description": "Lets you jump in the air.", + "module.air-jump.general.maintain-level": "Maintain Level", + "module.air-jump.general.maintain-level.description": "Maintains your current Y level when holding the jump key.", + + "module.auto-fish": "Auto Fish", + "module.auto-fish.description": "Automatically fishes for you.", + "module.auto-fish.general.auto-switch": "Auto Switch", + "module.auto-fish.general.auto-switch.description": "Automatically switch to a fishing rod.", + "module.auto-fish.general.anti-break": "Anti Break", + "module.auto-fish.general.anti-break.description": "Avoid using rods that would break if they were cast.", + "module.auto-fish.general.auto-cast": "Auto Cast", + "module.auto-fish.general.auto-cast.description": "Automatically cast the fishing rod.", + "module.auto-fish.general.cast-delay": "Cast Delay", + "module.auto-fish.general.cast-delay.description": "How long to wait between recasts if the bobber fails to land in water.", + "module.auto-fish.general.cast-delay-variance": "Cast Delay Variance", + "module.auto-fish.general.cast-delay-variance.description": "Maximum amount of randomness added to cast delay.", + "module.auto-fish.general.catch-delay": "Catch Delay", + "module.auto-fish.general.catch-delay.description": "How long to wait after hooking a fish to reel it in.", + "module.auto-fish.general.catch-delay-variance": "Catch Delay Variance", + "module.auto-fish.general.catch-delay-variance.description": "Maximum amount of randomness added to catch delay.", + + "module.name-protect": "Name Protect", + "module.name-protect.description": "Hide player names and skins.", + "module.name-protect.general.name-protect": "Name Protect", + "module.name-protect.general.name-protect.description": "Hides your name client-side.", + "module.name-protect.general.name": "Name", + "module.name-protect.general.name.description": "Name to be replaced with.", + "module.name-protect.general.skin-protect": "Skin Protect", + "module.name-protect.general.skin-protect.description": "Make players become Steves.", + + "module.velocity": "Velocity", + "module.velocity.description": "Prevents you from being moved by external forces.", + "module.velocity.general.knockback": "Knockback", + "module.velocity.general.knockback.description": "Modifies the amount of knockback you take from attacks.", + "module.velocity.general.knockback-horizontal": "Knockback Horizontal", + "module.velocity.general.knockback-horizontal.description": "How much horizontal knockback you will take.", + "module.velocity.general.knockback-vertical": "Knockback Vertical", + "module.velocity.general.knockback-vertical.description": "How much vertical knockback you will take.", + "module.velocity.general.explosions": "Explosions", + "module.velocity.general.explosions.description": "Modifies your knockback from explosions.", + "module.velocity.general.explosions-horizontal": "Explosions Horizontal", + "module.velocity.general.explosions-horizontal.description": "How much velocity you will take from explosions horizontally.", + "module.velocity.general.explosions-vertical": "Explosions Vertical", + "module.velocity.general.explosions-vertical.description": "How much velocity you will take from explosions vertically.", + "module.velocity.general.liquids": "Liquids", + "module.velocity.general.liquids.description": "Modifies the amount you are pushed by flowing liquids.", + "module.velocity.general.liquids-horizontal": "Liquids Horizontal", + "module.velocity.general.liquids-horizontal.description": "How much velocity you will take from liquids horizontally.", + "module.velocity.general.liquids-vertical": "Liquids Vertical", + "module.velocity.general.liquids-vertical.description": "How much velocity you will take from liquids vertically.", + "module.velocity.general.entity-push": "Entity Push", + "module.velocity.general.entity-push.description": "Modifies the amount you are pushed by entities.", + "module.velocity.general.entity-push-amount": "Entity Push Amount", + "module.velocity.general.entity-push-amount.description": "How much you will be pushed.", + "module.velocity.general.blocks": "Blocks", + "module.velocity.general.blocks.description": "Prevents you from being pushed out of blocks.", + "module.velocity.general.sinking": "Sinking", + "module.velocity.general.sinking.description": "Prevents you from sinking in liquids.", + "module.velocity.general.fishing": "Fishing", + "module.velocity.general.fishing.description": "Prevents you from being pulled by fishing rods.", + + "module.no-ghost-blocks": "No Ghost Blocks", + "module.no-ghost-blocks.description": "Attempts to prevent ghost blocks arising.", + "module.no-ghost-blocks.general.breaking": "Breaking", + "module.no-ghost-blocks.general.breaking.description": "Whether to apply for block breaking actions.", + "module.no-ghost-blocks.general.placing": "Placing", + "module.no-ghost-blocks.general.placing.description": "Whether to apply for block placement actions.", + + "module.bed-aura": "Bed Aura", + "module.bed-aura.description": "Automatically places and explodes beds in the Nether and End.", + "module.bed-aura.general.delay": "Delay", + "module.bed-aura.general.delay.description": "The delay between placing beds in ticks.", + "module.bed-aura.general.strict-direction": "Strict Direction", + "module.bed-aura.general.strict-direction.description": "Only places beds in the direction you are facing.", + "module.bed-aura.targeting.target-range": "Target Range", + "module.bed-aura.targeting.target-range.description": "The range at which players can be targeted.", + "module.bed-aura.targeting.target-priority": "Target Priority", + "module.bed-aura.targeting.target-priority.description": "How to filter targets within range.", + "module.bed-aura.targeting.min-damage": "Min Damage", + "module.bed-aura.targeting.min-damage.description": "The minimum damage to inflict on your target.", + "module.bed-aura.targeting.max-self-damage": "Max Self Damage", + "module.bed-aura.targeting.max-self-damage.description": "The maximum damage to inflict on yourself.", + "module.bed-aura.targeting.anti-suicide": "Anti Suicide", + "module.bed-aura.targeting.anti-suicide.description": "Will not place and break beds if they will kill you.", + "module.bed-aura.inventory.auto-move": "Auto Move", + "module.bed-aura.inventory.auto-move.description": "Moves beds into a selected hotbar slot.", + "module.bed-aura.inventory.auto-move-slot": "Auto Move Slot", + "module.bed-aura.inventory.auto-move-slot.description": "The slot auto move moves beds to.", + "module.bed-aura.inventory.auto-switch": "Auto Switch", + "module.bed-aura.inventory.auto-switch.description": "Switches to and from beds automatically.", + "module.bed-aura.pause.pause-on-eat": "Pause On Eat", + "module.bed-aura.pause.pause-on-eat.description": "Pauses while eating.", + "module.bed-aura.pause.pause-on-drink": "Pause On Drink", + "module.bed-aura.pause.pause-on-drink.description": "Pauses while drinking.", + "module.bed-aura.pause.pause-on-mine": "Pause On Mine", + "module.bed-aura.pause.pause-on-mine.description": "Pauses while mining.", + "module.bed-aura.render.swing": "Swing", + "module.bed-aura.render.swing.description": "Whether to swing hand client-side.", + "module.bed-aura.render.render": "Render", + "module.bed-aura.render.render.description": "Renders the block where it is placing a bed.", + "module.bed-aura.render.shape-mode": "Shape Mode", + "module.bed-aura.render.shape-mode.description": "How the shapes are rendered.", + "module.bed-aura.render.side-color": "Side Color", + "module.bed-aura.render.side-color.description": "The side color for positions to be placed.", + "module.bed-aura.render.line-color": "Line Color", + "module.bed-aura.render.line-color.description": "The line color for positions to be placed.", + + "module.auto-jump": "Auto Jump", + "module.auto-jump.description": "Automatically jumps.", + "module.auto-jump.general.mode": "Mode", + "module.auto-jump.general.mode.description": "The method of jumping.", + "module.auto-jump.general.jump-if": "Jump If", + "module.auto-jump.general.jump-if.description": "Jump if.", + "module.auto-jump.general.velocity-height": "Velocity Height", + "module.auto-jump.general.velocity-height.description": "The distance that velocity mode moves you.", + + "module.ambience": "Ambience", + "module.ambience.description": "Change the color of various pieces of the environment.", + "module.ambience.sky.end-sky": "End Sky", + "module.ambience.sky.end-sky.description": "Makes the sky like the end.", + "module.ambience.sky.custom-sky-color": "Custom Sky Color", + "module.ambience.sky.custom-sky-color.description": "Whether the sky color should be changed.", + "module.ambience.sky.overworld-sky-color": "Overworld Sky Color", + "module.ambience.sky.overworld-sky-color.description": "The color of the overworld sky.", + "module.ambience.sky.nether-sky-color": "Nether Sky Color", + "module.ambience.sky.nether-sky-color.description": "The color of the nether sky.", + "module.ambience.sky.end-sky-color": "End Sky Color", + "module.ambience.sky.end-sky-color.description": "The color of the end sky.", + "module.ambience.sky.custom-cloud-color": "Custom Cloud Color", + "module.ambience.sky.custom-cloud-color.description": "Whether the clouds color should be changed.", + "module.ambience.sky.cloud-color": "Cloud Color", + "module.ambience.sky.cloud-color.description": "The color of the clouds.", + "module.ambience.sky.custom-lightning-color": "Custom Lightning Color", + "module.ambience.sky.custom-lightning-color.description": "Whether the lightning color should be changed.", + "module.ambience.sky.lightning-color": "Lightning Color", + "module.ambience.sky.lightning-color.description": "The color of the lightning.", + "module.ambience.world.custom-grass-color": "Custom Grass Color", + "module.ambience.world.custom-grass-color.description": "Whether the grass color should be changed.", + "module.ambience.world.grass-color": "Grass Color", + "module.ambience.world.grass-color.description": "The color of the grass.", + "module.ambience.world.custom-foliage-color": "Custom Foliage Color", + "module.ambience.world.custom-foliage-color.description": "Whether the foliage color should be changed.", + "module.ambience.world.foliage-color": "Foliage Color", + "module.ambience.world.foliage-color.description": "The color of the foliage.", + "module.ambience.world.custom-water-color": "Custom Water Color", + "module.ambience.world.custom-water-color.description": "Whether the water color should be changed.", + "module.ambience.world.water-color": "Water Color", + "module.ambience.world.water-color.description": "The color of the water.", + "module.ambience.world.custom-lava-color": "Custom Lava Color", + "module.ambience.world.custom-lava-color.description": "Whether the lava color should be changed.", + "module.ambience.world.lava-color": "Lava Color", + "module.ambience.world.lava-color.description": "The color of the lava.", + "module.ambience.world.custom-fog-color": "Custom Fog Color", + "module.ambience.world.custom-fog-color.description": "Whether the fog color should be changed.", + "module.ambience.world.fog-color": "Fog Color", + "module.ambience.world.fog-color.description": "The color of the fog.", + + "module.better-tooltips": "Better Tooltips", + "module.better-tooltips.description": "Displays more useful tooltips for certain items.", + "module.better-tooltips.general.display-when": "Display When", + "module.better-tooltips.general.display-when.description": "When to display previews.", + "module.better-tooltips.general.keybind": "Keybind", + "module.better-tooltips.general.keybind.description": "The bind for keybind mode.", + "module.better-tooltips.general.open-contents": "Open Contents", + "module.better-tooltips.general.open-contents.description": "Opens a GUI window with the inventory of the storage block or book when you click the item.", + "module.better-tooltips.general.open-contents-keybind": "Open Contents Keybind", + "module.better-tooltips.general.open-contents-keybind.description": "Key to open contents (containers, books, etc.) when pressed on items.", + "module.better-tooltips.general.pause-in-creative": "Pause In Creative", + "module.better-tooltips.general.pause-in-creative.description": "Pauses middle click open while the player is in creative mode.", + "module.better-tooltips.previews.containers": "Containers", + "module.better-tooltips.previews.containers.description": "Shows a preview of a containers when hovering over it in an inventory.", + "module.better-tooltips.previews.compact-shulker-tooltip": "Compact Shulker Tooltip", + "module.better-tooltips.previews.compact-shulker-tooltip.description": "Compacts the lines of the shulker tooltip.", + "module.better-tooltips.previews.echests": "Echests", + "module.better-tooltips.previews.echests.description": "Shows a preview of your echest when hovering over it in an inventory.", + "module.better-tooltips.previews.maps": "Maps", + "module.better-tooltips.previews.maps.description": "Shows a preview of a map when hovering over it in an inventory.", + "module.better-tooltips.previews.map-scale": "Map Scale", + "module.better-tooltips.previews.map-scale.description": "The scale of the map preview.", + "module.better-tooltips.previews.books": "Books", + "module.better-tooltips.previews.books.description": "Shows contents of a book when hovering over it in an inventory.", + "module.better-tooltips.previews.banners": "Banners", + "module.better-tooltips.previews.banners.description": "Shows banners' patterns when hovering over it in an inventory. Also works with shields.", + "module.better-tooltips.previews.entities-in-buckets": "Entities In Buckets", + "module.better-tooltips.previews.entities-in-buckets.description": "Shows entities in buckets when hovering over it in an inventory.", + "module.better-tooltips.previews.bundles": "Bundles", + "module.better-tooltips.previews.bundles.description": "Shows a preview of bundle contents when hovering over it in an inventory.", + "module.better-tooltips.previews.food-info": "Food Info", + "module.better-tooltips.previews.food-info.description": "Shows hunger and saturation values for food items.", + "module.better-tooltips.other.byte-size": "Byte Size", + "module.better-tooltips.other.byte-size.description": "Displays an item's size in bytes in the tooltip.", + "module.better-tooltips.other.byte-size-format": "Byte Size Format", + "module.better-tooltips.other.byte-size-format.description": "The format by which to display the item's byte size.", + "module.better-tooltips.other.status-effects": "Status Effects", + "module.better-tooltips.other.status-effects.description": "Adds list of status effects to tooltips of food items.", + "module.better-tooltips.hide-flags.tooltip": "Tooltip", + "module.better-tooltips.hide-flags.tooltip.description": "Show the tooltip when it's hidden.", + "module.better-tooltips.hide-flags.tooltip-components": "Tooltip Components", + "module.better-tooltips.hide-flags.tooltip-components.description": "Shows tooltip components when they're hidden - e.g. enchantments, attributes, lore, etc.", + + "module.notifier": "Notifier", + "module.notifier.description": "Notifies you of different events.", + "module.notifier.totem-pops.totem-pops": "Totem Pops", + "module.notifier.totem-pops.totem-pops.description": "Notifies you when a player pops a totem.", + "module.notifier.totem-pops.distance-check": "Distance Check", + "module.notifier.totem-pops.distance-check.description": "Limits the distance in which the pops are recognized.", + "module.notifier.totem-pops.player-radius": "Player Radius", + "module.notifier.totem-pops.player-radius.description": "The radius in which to log totem pops.", + "module.notifier.totem-pops.ignore-own": "Ignore Own", + "module.notifier.totem-pops.ignore-own.description": "Ignores your own totem pops.", + "module.notifier.totem-pops.ignore-friends": "Ignore Friends", + "module.notifier.totem-pops.ignore-friends.description": "Ignores friends totem pops.", + "module.notifier.totem-pops.ignore-others": "Ignore Others", + "module.notifier.totem-pops.ignore-others.description": "Ignores other players totem pops.", + "module.notifier.visual-range.visual-range": "Visual Range", + "module.notifier.visual-range.visual-range.description": "Notifies you when an entity enters your render distance.", + "module.notifier.visual-range.event": "Event", + "module.notifier.visual-range.event.description": "When to log the entities.", + "module.notifier.visual-range.entities": "Entities", + "module.notifier.visual-range.entities.description": "Which entities to notify about.", + "module.notifier.visual-range.ignore-friends": "Ignore Friends", + "module.notifier.visual-range.ignore-friends.description": "Ignores friends.", + "module.notifier.visual-range.ignore-fake-players": "Ignore Fake Players", + "module.notifier.visual-range.ignore-fake-players.description": "Ignores fake players.", + "module.notifier.visual-range.sound": "Sound", + "module.notifier.visual-range.sound.description": "Emits a sound effect on enter / leave", + "module.notifier.pearl.pearl": "Pearl", + "module.notifier.pearl.pearl.description": "Notifies you when a player is teleported using an ender pearl.", + "module.notifier.pearl.ignore-own": "Ignore Own", + "module.notifier.pearl.ignore-own.description": "Ignores your own pearls.", + "module.notifier.pearl.ignore-friends": "Ignore Friends", + "module.notifier.pearl.ignore-friends.description": "Ignores friends pearls.", + "module.notifier.joins/leaves.player-joins-leaves": "Player Joins Leaves", + "module.notifier.joins/leaves.player-joins-leaves.description": "How to handle player join/leave notifications.", + "module.notifier.joins/leaves.notification-delay": "Notification Delay", + "module.notifier.joins/leaves.notification-delay.description": "How long to wait in ticks before posting the next join/leave notification in your chat.", + "module.notifier.joins/leaves.simple-notifications": "Simple Notifications", + "module.notifier.joins/leaves.simple-notifications.description": "Display join/leave notifications without a prefix, to reduce chat clutter.", + + "module.item-physics": "Item Physics", + "module.item-physics.description": "Applies physics to items on the ground.", + "module.item-physics.general.random-rotation": "Random Rotation", + "module.item-physics.general.random-rotation.description": "Adds a random rotation to every item.", + + "module.air-place": "Air Place", + "module.air-place.description": "Places a block where your crosshair is pointing at.", + "module.air-place.general.render": "Render", + "module.air-place.general.render.description": "Renders a block overlay where the obsidian will be placed.", + "module.air-place.general.shape-mode": "Shape Mode", + "module.air-place.general.shape-mode.description": "How the shapes are rendered.", + "module.air-place.general.side-color": "Side Color", + "module.air-place.general.side-color.description": "The color of the sides of the blocks being rendered.", + "module.air-place.general.line-color": "Line Color", + "module.air-place.general.line-color.description": "The color of the lines of the blocks being rendered.", + "module.air-place.range.custom-range": "Custom Range", + "module.air-place.range.custom-range.description": "Use custom range for air place.", + "module.air-place.range.range": "Range", + "module.air-place.range.range.description": "Custom range to place at.", + + "module.enderman-look": "Enderman Look", + "module.enderman-look.description": "Either looks at all Endermen or prevents you from looking at Endermen.", + "module.enderman-look.general.look-mode": "Look Mode", + "module.enderman-look.general.look-mode.description": "How this module behaves.", + "module.enderman-look.general.stun-hostiles": "Stun Hostiles", + "module.enderman-look.general.stun-hostiles.description": "Automatically stares at hostile endermen to stun them in place.", + + "module.excavator": "Excavator", + "module.excavator.description": "Excavate a selection area.", + "module.excavator.general.selection-bind": "Selection Bind", + "module.excavator.general.selection-bind.description": "Bind to draw selection.", + "module.excavator.general.log-selection": "Log Selection", + "module.excavator.general.log-selection.description": "Logs the selection coordinates to the chat.", + "module.excavator.general.keep-active": "Keep Active", + "module.excavator.general.keep-active.description": "Keep the module active after finishing the excavation.", + "module.excavator.rendering.shape-mode": "Shape Mode", + "module.excavator.rendering.shape-mode.description": "How the shapes are rendered.", + "module.excavator.rendering.side-color": "Side Color", + "module.excavator.rendering.side-color.description": "The side color.", + "module.excavator.rendering.line-color": "Line Color", + "module.excavator.rendering.line-color.description": "The line color.", + + "module.timer": "Timer", + "module.timer.description": "Changes the speed of everything in your game.", + "module.timer.general.multiplier": "Multiplier", + "module.timer.general.multiplier.description": "The timer multiplier amount.", + + "module.surround": "Surround", + "module.surround.description": "Surrounds you in blocks to prevent massive crystal damage.", + "module.surround.general.blocks": "Blocks", + "module.surround.general.blocks.description": "What blocks to use for surround.", + "module.surround.general.delay": "Delay", + "module.surround.general.delay.description": "Delay, in ticks, between block placements.", + "module.surround.general.blocks-per-tick": "Blocks Per Tick", + "module.surround.general.blocks-per-tick.description": "How many blocks to place in one tick.", + "module.surround.general.center": "Center", + "module.surround.general.center.description": "Teleports you to the center of the block.", + "module.surround.general.double-height": "Double Height", + "module.surround.general.double-height.description": "Places obsidian on top of the original surround blocks to prevent people from face-placing you.", + "module.surround.general.only-on-ground": "Only On Ground", + "module.surround.general.only-on-ground.description": "Works only when you are standing on blocks.", + "module.surround.general.air-place": "Air Place", + "module.surround.general.air-place.description": "Allows Surround to place blocks in the air.", + "module.surround.general.toggle-modules": "Toggle Modules", + "module.surround.general.toggle-modules.description": "Turn off other modules when surround is activated.", + "module.surround.general.toggle-back-on": "Toggle Back On", + "module.surround.general.toggle-back-on.description": "Turn the other modules back on when surround is deactivated.", + "module.surround.general.modules": "Modules", + "module.surround.general.modules.description": "Which modules to disable on activation.", + "module.surround.general.rotate": "Rotate", + "module.surround.general.rotate.description": "Automatically faces towards the obsidian being placed.", + "module.surround.general.protect": "Protect", + "module.surround.general.protect.description": "Attempts to break crystals around surround positions to prevent surround break.", + "module.surround.toggles.toggle-on-y-change": "Toggle On Y Change", + "module.surround.toggles.toggle-on-y-change.description": "Automatically disables when your y level changes (step, jumping, etc).", + "module.surround.toggles.toggle-on-complete": "Toggle On Complete", + "module.surround.toggles.toggle-on-complete.description": "Toggles off when all blocks are placed.", + "module.surround.toggles.toggle-on-death": "Toggle On Death", + "module.surround.toggles.toggle-on-death.description": "Toggles off when you die.", + "module.surround.render.swing": "Swing", + "module.surround.render.swing.description": "Render your hand swinging when placing surround blocks.", + "module.surround.render.render": "Render", + "module.surround.render.render.description": "Renders a block overlay where the obsidian will be placed.", + "module.surround.render.below": "Below", + "module.surround.render.below.description": "Renders the block below you.", + "module.surround.render.shape-mode": "Shape Mode", + "module.surround.render.shape-mode.description": "How the shapes are rendered.", + "module.surround.render.safe-side-color": "Safe Side Color", + "module.surround.render.safe-side-color.description": "The side color for safe blocks.", + "module.surround.render.safe-line-color": "Safe Line Color", + "module.surround.render.safe-line-color.description": "The line color for safe blocks.", + "module.surround.render.normal-side-color": "Normal Side Color", + "module.surround.render.normal-side-color.description": "The side color for normal blocks.", + "module.surround.render.normal-line-color": "Normal Line Color", + "module.surround.render.normal-line-color.description": "The line color for normal blocks.", + "module.surround.render.unsafe-side-color": "Unsafe Side Color", + "module.surround.render.unsafe-side-color.description": "The side color for unsafe blocks.", + "module.surround.render.unsafe-line-color": "Unsafe Line Color", + "module.surround.render.unsafe-line-color.description": "The line color for unsafe blocks.", + + "module.no-rotate": "No Rotate", + "module.no-rotate.description": "Attempts to block rotations sent from server to client.", + + "module.long-jump": "Long Jump", + "module.long-jump.description": "Allows you to jump further than normal.", + "module.long-jump.general.mode": "Mode", + "module.long-jump.general.mode.description": "The method of jumping.", + "module.long-jump.general.vanilla-boost-factor": "Vanilla Boost Factor", + "module.long-jump.general.vanilla-boost-factor.description": "The amount by which to boost the jump.", + "module.long-jump.general.burst-initial-speed": "Burst Initial Speed", + "module.long-jump.general.burst-initial-speed.description": "The initial speed of the runup.", + "module.long-jump.general.burst-boost-factor": "Burst Boost Factor", + "module.long-jump.general.burst-boost-factor.description": "The amount by which to boost the jump.", + "module.long-jump.general.only-on-ground": "Only On Ground", + "module.long-jump.general.only-on-ground.description": "Only performs the jump if you are on the ground.", + "module.long-jump.general.on-jump": "On Jump", + "module.long-jump.general.on-jump.description": "Whether the player needs to jump first or not.", + "module.long-jump.general.glide-multiplier": "Glide Multiplier", + "module.long-jump.general.glide-multiplier.description": "The amount by to multiply the glide velocity.", + "module.long-jump.general.timer": "Timer", + "module.long-jump.general.timer.description": "Timer override.", + "module.long-jump.general.auto-disable": "Auto Disable", + "module.long-jump.general.auto-disable.description": "Automatically disabled the module after jumping.", + "module.long-jump.general.disable-on-rubberband": "Disable On Rubberband", + "module.long-jump.general.disable-on-rubberband.description": "Disables the module when you get lagged back.", + + "module.trajectories": "Trajectories", + "module.trajectories.description": "Predicts the trajectory of throwable items.", + "module.trajectories.general.items": "Items", + "module.trajectories.general.items.description": "Items to display trajectories for.", + "module.trajectories.general.other-players": "Other Players", + "module.trajectories.general.other-players.description": "Calculates trajectories for other players.", + "module.trajectories.general.fired-projectiles": "Fired Projectiles", + "module.trajectories.general.fired-projectiles.description": "Calculates trajectories for already fired projectiles.", + "module.trajectories.general.ignore-wither-skulls": "Ignore Wither Skulls", + "module.trajectories.general.ignore-wither-skulls.description": "Whether to ignore fired wither skulls.", + "module.trajectories.general.accurate": "Accurate", + "module.trajectories.general.accurate.description": "Whether or not to calculate more accurate.", + "module.trajectories.general.simulation-steps": "Simulation Steps", + "module.trajectories.general.simulation-steps.description": "How many steps to simulate projectiles. Zero for no limit", + "module.trajectories.render.ignore-rendering-first-ticks": "Ignore Rendering First Ticks", + "module.trajectories.render.ignore-rendering-first-ticks.description": "Ignores rendering the first given ticks, to make the rest of the path more visible.", + "module.trajectories.render.shape-mode": "Shape Mode", + "module.trajectories.render.shape-mode.description": "How the shapes are rendered.", + "module.trajectories.render.side-color": "Side Color", + "module.trajectories.render.side-color.description": "The side color.", + "module.trajectories.render.line-color": "Line Color", + "module.trajectories.render.line-color.description": "The line color.", + "module.trajectories.render.render-position-boxes": "Render Position Boxes", + "module.trajectories.render.render-position-boxes.description": "Renders the actual position the projectile will be at each tick along it's trajectory.", + "module.trajectories.render.position-box-size": "Position Box Size", + "module.trajectories.render.position-box-size.description": "The size of the box drawn at the simulated positions.", + "module.trajectories.render.position-side-color": "Position Side Color", + "module.trajectories.render.position-side-color.description": "The side color.", + "module.trajectories.render.position-line-color": "Position Line Color", + "module.trajectories.render.position-line-color.description": "The line color.", + + "module.chams": "Chams", + "module.chams.description": "Tweaks rendering of entities.", + "module.chams.through-walls.entities": "Entities", + "module.chams.through-walls.entities.description": "Select entities to show through walls.", + "module.chams.through-walls.shader": "Shader", + "module.chams.through-walls.shader.description": "Renders a shader over of the entities.", + "module.chams.through-walls.color": "Color", + "module.chams.through-walls.color.description": "The color that the shader is drawn with.", + "module.chams.through-walls.ignore-self": "Ignore Self", + "module.chams.through-walls.ignore-self.description": "Ignores yourself drawing the player.", + "module.chams.players.players": "Players", + "module.chams.players.players.description": "Enables model tweaks for players.", + "module.chams.players.ignore-self": "Ignore Self", + "module.chams.players.ignore-self.description": "Ignores yourself when tweaking player models.", + "module.chams.players.texture": "Texture", + "module.chams.players.texture.description": "Enables player model textures.", + "module.chams.players.color": "Color", + "module.chams.players.color.description": "The color of player models.", + "module.chams.players.scale": "Scale", + "module.chams.players.scale.description": "Players scale.", + "module.chams.crystals.crystals": "Crystals", + "module.chams.crystals.crystals.description": "Enables model tweaks for end crystals.", + "module.chams.crystals.scale": "Scale", + "module.chams.crystals.scale.description": "Crystal scale.", + "module.chams.crystals.bounce": "Bounce", + "module.chams.crystals.bounce.description": "How high crystals bounce.", + "module.chams.crystals.rotation-speed": "Rotation Speed", + "module.chams.crystals.rotation-speed.description": "Multiplies the rotation speed of the crystal.", + "module.chams.crystals.texture": "Texture", + "module.chams.crystals.texture.description": "Whether to render crystal model textures.", + "module.chams.crystals.crystal-color": "Crystal Color", + "module.chams.crystals.crystal-color.description": "The color of the of the crystal.", + "module.chams.hand.enabled": "Enabled", + "module.chams.hand.enabled.description": "Enables tweaks of hand rendering.", + "module.chams.hand.texture": "Texture", + "module.chams.hand.texture.description": "Whether to render hand textures.", + "module.chams.hand.hand-color": "Hand Color", + "module.chams.hand.hand-color.description": "The color of your hand.", + + "module.server-spoof": "Server Spoof", + "module.server-spoof.description": "Spoof client brand, resource pack and channels.", + "module.server-spoof.general.spoof-brand": "Spoof Brand", + "module.server-spoof.general.spoof-brand.description": "Whether or not to spoof the brand.", + "module.server-spoof.general.brand": "Brand", + "module.server-spoof.general.brand.description": "Specify the brand that will be send to the server.", + "module.server-spoof.general.resource-pack": "Resource Pack", + "module.server-spoof.general.resource-pack.description": "Spoof accepting server resource pack.", + "module.server-spoof.general.block-channels": "Block Channels", + "module.server-spoof.general.block-channels.description": "Whether or not to block some channels.", + "module.server-spoof.general.channels": "Channels", + "module.server-spoof.general.channels.description": "If the channel contains the keyword, this outgoing channel will be blocked.", + + "module.fullbright": "Fullbright", + "module.fullbright.description": "Lights up your world!", + "module.fullbright.general.mode": "Mode", + "module.fullbright.general.mode.description": "The mode to use for Fullbright.", + "module.fullbright.general.light-type": "Light Type", + "module.fullbright.general.light-type.description": "Which type of light to use for Luminance mode.", + "module.fullbright.general.minimum-light-level": "Minimum Light Level", + "module.fullbright.general.minimum-light-level.description": "Minimum light level when using Luminance mode.", + + "module.freecam": "Freecam", + "module.freecam.description": "Allows the camera to move away from the player.", + "module.freecam.general.speed": "Speed", + "module.freecam.general.speed.description": "Your speed while in freecam.", + "module.freecam.general.speed-scroll-sensitivity": "Speed Scroll Sensitivity", + "module.freecam.general.speed-scroll-sensitivity.description": "Allows you to change speed value using scroll wheel. 0 to disable.", + "module.freecam.general.stay-sneaking": "Stay Sneaking", + "module.freecam.general.stay-sneaking.description": "If you are sneaking when you enter freecam, whether your player should remain sneaking.", + "module.freecam.general.toggle-on-damage": "Toggle On Damage", + "module.freecam.general.toggle-on-damage.description": "Disables freecam when you take damage.", + "module.freecam.general.toggle-on-death": "Toggle On Death", + "module.freecam.general.toggle-on-death.description": "Disables freecam when you die.", + "module.freecam.general.toggle-on-log": "Toggle On Log", + "module.freecam.general.toggle-on-log.description": "Disables freecam when you disconnect from a server.", + "module.freecam.general.reload-chunks": "Reload Chunks", + "module.freecam.general.reload-chunks.description": "Disables cave culling.", + "module.freecam.general.show-hands": "Show Hands", + "module.freecam.general.show-hands.description": "Whether or not to render your hands in freecam.", + "module.freecam.general.rotate": "Rotate", + "module.freecam.general.rotate.description": "Rotates to the block or entity you are looking at.", + "module.freecam.general.static": "Static", + "module.freecam.general.static.description": "Disables settings that move the view.", + "module.freecam.pathing.click-to-path": "Click To Path", + "module.freecam.pathing.click-to-path.description": "Sets a pathfinding goal to any block/entity you click at.", + "module.freecam.pathing.double-click": "Double Click", + "module.freecam.pathing.double-click.description": "Require two clicks to start pathing.", + + "module.exp-thrower": "Exp Thrower", + "module.exp-thrower.description": "Automatically throws XP bottles from your hotbar.", + + "module.auto-totem": "Auto Totem", + "module.auto-totem.description": "Automatically equips a totem in your offhand.", + "module.auto-totem.general.mode": "Mode", + "module.auto-totem.general.mode.description": "Determines when to hold a totem, strict will always hold.", + "module.auto-totem.general.delay": "Delay", + "module.auto-totem.general.delay.description": "The ticks between slot movements.", + "module.auto-totem.general.health": "Health", + "module.auto-totem.general.health.description": "The health to hold a totem at.", + "module.auto-totem.general.elytra": "Elytra", + "module.auto-totem.general.elytra.description": "Will always hold a totem when flying with elytra.", + "module.auto-totem.general.fall": "Fall", + "module.auto-totem.general.fall.description": "Will hold a totem when fall damage could kill you.", + "module.auto-totem.general.explosion": "Explosion", + "module.auto-totem.general.explosion.description": "Will hold a totem when explosion damage could kill you.", + + "module.book-bot": "Book Bot", + "module.book-bot.description": "Automatically writes in books.", + "module.book-bot.general.mode": "Mode", + "module.book-bot.general.mode.description": "What kind of text to write.", + "module.book-bot.general.pages": "Pages", + "module.book-bot.general.pages.description": "The number of pages to write per book.", + "module.book-bot.general.ascii-only": "Ascii Only", + "module.book-bot.general.ascii-only.description": "Only uses the characters in the ASCII charset.", + "module.book-bot.general.delay": "Delay", + "module.book-bot.general.delay.description": "The amount of delay between writing books.", + "module.book-bot.general.sign": "Sign", + "module.book-bot.general.sign.description": "Whether to sign the book.", + "module.book-bot.general.name": "Name", + "module.book-bot.general.name.description": "The name you want to give your books.", + "module.book-bot.general.append-count": "Append Count", + "module.book-bot.general.append-count.description": "Whether to append the number of the book to the title.", + "module.book-bot.general.word-wrap": "Word Wrap", + "module.book-bot.general.word-wrap.description": "Prevents words from being cut in the middle of lines.", + + "module.auto-gap": "Auto Gap", + "module.auto-gap.description": "Automatically eats Gaps or E-Gaps.", + "module.auto-gap.general.allow-egap": "Allow Egap", + "module.auto-gap.general.allow-egap.description": "Allow eating E-Gaps over Gaps if found.", + "module.auto-gap.general.always": "Always", + "module.auto-gap.general.always.description": "If it should always eat.", + "module.auto-gap.general.pause-auras": "Pause Auras", + "module.auto-gap.general.pause-auras.description": "Pauses all auras when eating.", + "module.auto-gap.general.pause-baritone": "Pause Baritone", + "module.auto-gap.general.pause-baritone.description": "Pause baritone when eating.", + "module.auto-gap.potions.before-expiry": "Before Expiry", + "module.auto-gap.potions.before-expiry.description": "If it should eat before potion effects expire.", + "module.auto-gap.potions.expiry-threshold": "Expiry Threshold", + "module.auto-gap.potions.expiry-threshold.description": "Time in ticks before the potion effect expires to start eating.", + "module.auto-gap.potions.potions-regeneration": "Potions Regeneration", + "module.auto-gap.potions.potions-regeneration.description": "If it should eat when Regeneration runs out.", + "module.auto-gap.potions.potions-fire-resistance": "Potions Fire Resistance", + "module.auto-gap.potions.potions-fire-resistance.description": "If it should eat when Fire Resistance runs out. Requires E-Gaps.", + "module.auto-gap.potions.potions-absorption": "Potions Absorption", + "module.auto-gap.potions.potions-absorption.description": "If it should eat when Absorption runs out. Requires E-Gaps.", + "module.auto-gap.health.health-enabled": "Health Enabled", + "module.auto-gap.health.health-enabled.description": "If it should eat when health drops below threshold.", + "module.auto-gap.health.health-threshold": "Health Threshold", + "module.auto-gap.health.health-threshold.description": "Health threshold to eat at. Includes absorption.", + + "module.middle-click-extra": "Middle Click Extra", + "module.middle-click-extra.description": "Perform various actions when you middle click.", + "module.middle-click-extra.general.mode": "Mode", + "module.middle-click-extra.general.mode.description": "Which item to use when you middle click.", + "module.middle-click-extra.general.send-message": "Send Message", + "module.middle-click-extra.general.send-message.description": "Sends a message when you add a player as a friend.", + "module.middle-click-extra.general.message-to-send": "Message To Send", + "module.middle-click-extra.general.message-to-send.description": "Message to send when you add a player as a friend (use %player for the player's name)", + "module.middle-click-extra.general.quick-swap": "Quick Swap", + "module.middle-click-extra.general.quick-swap.description": "Allows you to use items in your inventory by simulating hotbar key presses. May get flagged by anticheats.", + "module.middle-click-extra.general.swap-back": "Swap Back", + "module.middle-click-extra.general.swap-back.description": "Swap back to your original slot when you finish using an item.", + "module.middle-click-extra.general.disable-in-creative": "Disable In Creative", + "module.middle-click-extra.general.disable-in-creative.description": "Middle click action is disabled in Creative mode.", + "module.middle-click-extra.general.notify": "Notify", + "module.middle-click-extra.general.notify.description": "Notifies you when you do not have the specified item in your hotbar.", + + "module.logout-spots": "Logout Spots", + "module.logout-spots.description": "Displays a box where another player has logged out at.", + "module.logout-spots.general.scale": "Scale", + "module.logout-spots.general.scale.description": "The scale.", + "module.logout-spots.general.full-height": "Full Height", + "module.logout-spots.general.full-height.description": "Displays the height as the player's full height.", + "module.logout-spots.render.shape-mode": "Shape Mode", + "module.logout-spots.render.shape-mode.description": "How the shapes are rendered.", + "module.logout-spots.render.side-color": "Side Color", + "module.logout-spots.render.side-color.description": "The side color.", + "module.logout-spots.render.line-color": "Line Color", + "module.logout-spots.render.line-color.description": "The line color.", + "module.logout-spots.render.name-color": "Name Color", + "module.logout-spots.render.name-color.description": "The name color.", + "module.logout-spots.render.name-background-color": "Name Background Color", + "module.logout-spots.render.name-background-color.description": "The name background color.", + + "module.sound-blocker": "Sound Blocker", + "module.sound-blocker.description": "Cancels out selected sounds.", + "module.sound-blocker.general.sounds": "Sounds", + "module.sound-blocker.general.sounds.description": "Sounds to block.", + + "module.vein-miner": "Vein Miner", + "module.vein-miner.description": "Mines all nearby blocks with this type", + "module.vein-miner.general.blocks": "Blocks", + "module.vein-miner.general.blocks.description": "Which blocks to select.", + "module.vein-miner.general.mode": "Mode", + "module.vein-miner.general.mode.description": "Selection mode.", + "module.vein-miner.general.depth": "Depth", + "module.vein-miner.general.depth.description": "Amount of iterations used to scan for similar blocks.", + "module.vein-miner.general.delay": "Delay", + "module.vein-miner.general.delay.description": "Delay between mining blocks.", + "module.vein-miner.general.rotate": "Rotate", + "module.vein-miner.general.rotate.description": "Sends rotation packets to the server when mining.", + "module.vein-miner.render.swing-hand": "Swing Hand", + "module.vein-miner.render.swing-hand.description": "Swing hand client-side.", + "module.vein-miner.render.render": "Render", + "module.vein-miner.render.render.description": "Whether or not to render the block being mined.", + "module.vein-miner.render.shape-mode": "Shape Mode", + "module.vein-miner.render.shape-mode.description": "How the shapes are rendered.", + "module.vein-miner.render.side-color": "Side Color", + "module.vein-miner.render.side-color.description": "The color of the sides of the blocks being rendered.", + "module.vein-miner.render.line-color": "Line Color", + "module.vein-miner.render.line-color.description": "The color of the lines of the blocks being rendered.", + + "module.nuker": "Nuker", + "module.nuker.description": "Breaks blocks around you.", + "module.nuker.general.shape": "Shape", + "module.nuker.general.shape.description": "The shape of nuking algorithm.", + "module.nuker.general.mode": "Mode", + "module.nuker.general.mode.description": "The way the blocks are broken.", + "module.nuker.general.range": "Range", + "module.nuker.general.range.description": "The break range.", + "module.nuker.general.up": "Up", + "module.nuker.general.up.description": "The break range.", + "module.nuker.general.down": "Down", + "module.nuker.general.down.description": "The break range.", + "module.nuker.general.left": "Left", + "module.nuker.general.left.description": "The break range.", + "module.nuker.general.right": "Right", + "module.nuker.general.right.description": "The break range.", + "module.nuker.general.forward": "Forward", + "module.nuker.general.forward.description": "The break range.", + "module.nuker.general.back": "Back", + "module.nuker.general.back.description": "The break range.", + "module.nuker.general.walls-range": "Walls Range", + "module.nuker.general.walls-range.description": "Range in which to break when behind blocks.", + "module.nuker.general.delay": "Delay", + "module.nuker.general.delay.description": "Delay in ticks between breaking blocks.", + "module.nuker.general.max-blocks-per-tick": "Max Blocks Per Tick", + "module.nuker.general.max-blocks-per-tick.description": "Maximum blocks to try to break per tick. Useful when insta mining.", + "module.nuker.general.sort-mode": "Sort Mode", + "module.nuker.general.sort-mode.description": "The blocks you want to mine first.", + "module.nuker.general.packet-mine": "Packet Mine", + "module.nuker.general.packet-mine.description": "Attempt to instamine everything at once.", + "module.nuker.general.only-suitable-tools": "Only Suitable Tools", + "module.nuker.general.only-suitable-tools.description": "Only mines when using an appropriate for the block.", + "module.nuker.general.interact": "Interact", + "module.nuker.general.interact.description": "Interacts with the block instead of mining.", + "module.nuker.general.rotate": "Rotate", + "module.nuker.general.rotate.description": "Rotates server-side to the block being mined.", + "module.nuker.whitelist.list-mode": "List Mode", + "module.nuker.whitelist.list-mode.description": "Selection mode.", + "module.nuker.whitelist.blacklist": "Blacklist", + "module.nuker.whitelist.blacklist.description": "The blocks you don't want to mine.", + "module.nuker.whitelist.whitelist": "Whitelist", + "module.nuker.whitelist.whitelist.description": "The blocks you want to mine.", + "module.nuker.whitelist.select-block-bind": "Select Block Bind", + "module.nuker.whitelist.select-block-bind.description": "Adds targeted block to list when this button is pressed.", + "module.nuker.render.swing": "Swing", + "module.nuker.render.swing.description": "Whether to swing hand client-side.", + "module.nuker.render.bounding-box": "Bounding Box", + "module.nuker.render.bounding-box.description": "Enable rendering bounding box for Cube and Uniform Cube.", + "module.nuker.render.nuke-box-mode": "Nuke Box Mode", + "module.nuker.render.nuke-box-mode.description": "How the shape for the bounding box is rendered.", + "module.nuker.render.side-color": "Side Color", + "module.nuker.render.side-color.description": "The side color of the bounding box.", + "module.nuker.render.line-color": "Line Color", + "module.nuker.render.line-color.description": "The line color of the bounding box.", + "module.nuker.render.broken-blocks": "Broken Blocks", + "module.nuker.render.broken-blocks.description": "Enable rendering bounding box for Cube and Uniform Cube.", + "module.nuker.render.nuke-block-mode": "Nuke Block Mode", + "module.nuker.render.nuke-block-mode.description": "How the shapes for broken blocks are rendered.", + "module.nuker.render.breaking-side-color": "Breaking Side Color", + "module.nuker.render.breaking-side-color.description": "The side color of the target block rendering.", + "module.nuker.render.breaking-line-color": "Breaking Line Color", + "module.nuker.render.breaking-line-color.description": "The line color of the target block rendering.", + + "module.auto-trap": "Auto Trap", + "module.auto-trap.description": "Traps people in a box to prevent them from moving.", + "module.auto-trap.general.whitelist": "Whitelist", + "module.auto-trap.general.whitelist.description": "Which blocks to use.", + "module.auto-trap.general.place-range": "Place Range", + "module.auto-trap.general.place-range.description": "The range at which blocks can be placed.", + "module.auto-trap.general.walls-range": "Walls Range", + "module.auto-trap.general.walls-range.description": "Range in which to place when behind blocks.", + "module.auto-trap.general.target-priority": "Target Priority", + "module.auto-trap.general.target-priority.description": "How to select the player to target.", + "module.auto-trap.general.target-range": "Target Range", + "module.auto-trap.general.target-range.description": "The maximum distance to target players.", + "module.auto-trap.general.place-delay": "Place Delay", + "module.auto-trap.general.place-delay.description": "How many ticks between block placements.", + "module.auto-trap.general.blocks-per-tick": "Blocks Per Tick", + "module.auto-trap.general.blocks-per-tick.description": "How many blocks to place in one tick.", + "module.auto-trap.general.top-blocks": "Top Blocks", + "module.auto-trap.general.top-blocks.description": "Which blocks to place on the top half of the target.", + "module.auto-trap.general.bottom-blocks": "Bottom Blocks", + "module.auto-trap.general.bottom-blocks.description": "Which blocks to place on the bottom half of the target.", + "module.auto-trap.general.self-toggle": "Self Toggle", + "module.auto-trap.general.self-toggle.description": "Turns off after placing all blocks.", + "module.auto-trap.general.rotate": "Rotate", + "module.auto-trap.general.rotate.description": "Rotates towards blocks when placing.", + "module.auto-trap.render.render": "Render", + "module.auto-trap.render.render.description": "Renders an overlay where blocks will be placed.", + "module.auto-trap.render.shape-mode": "Shape Mode", + "module.auto-trap.render.shape-mode.description": "How the shapes are rendered.", + "module.auto-trap.render.side-color": "Side Color", + "module.auto-trap.render.side-color.description": "The side color of the target block rendering.", + "module.auto-trap.render.line-color": "Line Color", + "module.auto-trap.render.line-color.description": "The line color of the target block rendering.", + "module.auto-trap.render.next-side-color": "Next Side Color", + "module.auto-trap.render.next-side-color.description": "The side color of the next block to be placed.", + "module.auto-trap.render.next-line-color": "Next Line Color", + "module.auto-trap.render.next-line-color.description": "The line color of the next block to be placed.", + + "module.wall-hack": "Wall Hack", + "module.wall-hack.description": "Makes blocks translucent.", + "module.wall-hack.general.opacity": "Opacity", + "module.wall-hack.general.opacity.description": "The opacity for rendered blocks.", + "module.wall-hack.general.blocks": "Blocks", + "module.wall-hack.general.blocks.description": "What blocks should be targeted for Wall Hack.", + "module.wall-hack.general.occlude-chunks": "Occlude Chunks", + "module.wall-hack.general.occlude-chunks.description": "Whether caves should occlude underground (may look wonky when on).", + + "module.no-render": "No Render", + "module.no-render.description": "Disables certain animations or overlays from rendering.", + "module.no-render.overlay.portal-overlay": "Portal Overlay", + "module.no-render.overlay.portal-overlay.description": "Disables rendering of the nether portal overlay.", + "module.no-render.overlay.spyglass-overlay": "Spyglass Overlay", + "module.no-render.overlay.spyglass-overlay.description": "Disables rendering of the spyglass overlay.", + "module.no-render.overlay.nausea": "Nausea", + "module.no-render.overlay.nausea.description": "Disables rendering of the nausea overlay.", + "module.no-render.overlay.pumpkin-overlay": "Pumpkin Overlay", + "module.no-render.overlay.pumpkin-overlay.description": "Disables rendering of the pumpkin head overlay", + "module.no-render.overlay.powdered-snow-overlay": "Powdered Snow Overlay", + "module.no-render.overlay.powdered-snow-overlay.description": "Disables rendering of the powdered snow overlay.", + "module.no-render.overlay.fire-overlay": "Fire Overlay", + "module.no-render.overlay.fire-overlay.description": "Disables rendering of the fire overlay.", + "module.no-render.overlay.liquid-overlay": "Liquid Overlay", + "module.no-render.overlay.liquid-overlay.description": "Disables rendering of the liquid overlay.", + "module.no-render.overlay.in-wall-overlay": "In Wall Overlay", + "module.no-render.overlay.in-wall-overlay.description": "Disables rendering of the overlay when inside blocks.", + "module.no-render.overlay.vignette": "Vignette", + "module.no-render.overlay.vignette.description": "Disables rendering of the vignette overlay.", + "module.no-render.overlay.gui-background": "Gui Background", + "module.no-render.overlay.gui-background.description": "Disables rendering of the GUI background overlay.", + "module.no-render.overlay.totem-animation": "Totem Animation", + "module.no-render.overlay.totem-animation.description": "Disables rendering of the totem animation when you pop a totem.", + "module.no-render.overlay.eating-particles": "Eating Particles", + "module.no-render.overlay.eating-particles.description": "Disables rendering of eating particles.", + "module.no-render.overlay.enchantment-glint": "Enchantment Glint", + "module.no-render.overlay.enchantment-glint.description": "Disables rending of the enchantment glint.", + "module.no-render.hud.boss-bar": "Boss Bar", + "module.no-render.hud.boss-bar.description": "Disable rendering of boss bars.", + "module.no-render.hud.scoreboard": "Scoreboard", + "module.no-render.hud.scoreboard.description": "Disable rendering of the scoreboard.", + "module.no-render.hud.crosshair": "Crosshair", + "module.no-render.hud.crosshair.description": "Disables rendering of the crosshair.", + "module.no-render.hud.title": "Title", + "module.no-render.hud.title.description": "Disables rendering of the title.", + "module.no-render.hud.held-item-name": "Held Item Name", + "module.no-render.hud.held-item-name.description": "Disables rendering of the held item name.", + "module.no-render.hud.obfuscation": "Obfuscation", + "module.no-render.hud.obfuscation.description": "Disables obfuscation styling of characters.", + "module.no-render.hud.potion-icons": "Potion Icons", + "module.no-render.hud.potion-icons.description": "Disables rendering of status effect icons.", + "module.no-render.hud.message-signature-indicator": "Message Signature Indicator", + "module.no-render.hud.message-signature-indicator.description": "Disables chat message signature indicator on the left of the message.", + "module.no-render.world.weather": "Weather", + "module.no-render.world.weather.description": "Disables rendering of weather.", + "module.no-render.world.world-border": "World Border", + "module.no-render.world.world-border.description": "Disables rendering of the world border.", + "module.no-render.world.blindness": "Blindness", + "module.no-render.world.blindness.description": "Disables rendering of blindness.", + "module.no-render.world.darkness": "Darkness", + "module.no-render.world.darkness.description": "Disables rendering of darkness.", + "module.no-render.world.fog": "Fog", + "module.no-render.world.fog.description": "Disables rendering of fog.", + "module.no-render.world.enchantment-table-book": "Enchantment Table Book", + "module.no-render.world.enchantment-table-book.description": "Disables rendering of books above enchanting tables.", + "module.no-render.world.sign-text": "Sign Text", + "module.no-render.world.sign-text.description": "Disables rendering of text on signs.", + "module.no-render.world.block-break-particles": "Block Break Particles", + "module.no-render.world.block-break-particles.description": "Disables rendering of block-break particles.", + "module.no-render.world.block-break-overlay": "Block Break Overlay", + "module.no-render.world.block-break-overlay.description": "Disables rendering of block-break overlay.", + "module.no-render.world.beacon-beams": "Beacon Beams", + "module.no-render.world.beacon-beams.description": "Disables rendering of beacon beams.", + "module.no-render.world.falling-blocks": "Falling Blocks", + "module.no-render.world.falling-blocks.description": "Disables rendering of falling blocks.", + "module.no-render.world.cave-culling": "Cave Culling", + "module.no-render.world.cave-culling.description": "Disables Minecraft's cave culling algorithm.", + "module.no-render.world.map-markers": "Map Markers", + "module.no-render.world.map-markers.description": "Disables markers on maps.", + "module.no-render.world.map-contents": "Map Contents", + "module.no-render.world.map-contents.description": "Disable rendering of maps.", + "module.no-render.world.banners": "Banners", + "module.no-render.world.banners.description": "Changes rendering of banners.", + "module.no-render.world.firework-explosions": "Firework Explosions", + "module.no-render.world.firework-explosions.description": "Disables rendering of firework explosions.", + "module.no-render.world.particles": "Particles", + "module.no-render.world.particles.description": "Particles to not render.", + "module.no-render.world.barrier-invisibility": "Barrier Invisibility", + "module.no-render.world.barrier-invisibility.description": "Disables barriers being invisible when not holding one.", + "module.no-render.world.texture-rotations": "Texture Rotations", + "module.no-render.world.texture-rotations.description": "Changes texture rotations and model offsets to use a constant value instead of the block position.", + "module.no-render.world.block-entities": "Block Entities", + "module.no-render.world.block-entities.description": "Block entities (chest, shulker block, etc.) to not render.", + "module.no-render.entity.entities": "Entities", + "module.no-render.entity.entities.description": "Disables rendering of selected entities.", + "module.no-render.entity.drop-spawn-packets": "Drop Spawn Packets", + "module.no-render.entity.drop-spawn-packets.description": "WARNING! Drops all spawn packets of entities selected in the above list.", + "module.no-render.entity.armor": "Armor", + "module.no-render.entity.armor.description": "Disables rendering of armor on entities.", + "module.no-render.entity.invisibility": "Invisibility", + "module.no-render.entity.invisibility.description": "Shows invisible entities.", + "module.no-render.entity.glowing": "Glowing", + "module.no-render.entity.glowing.description": "Disables rendering of the glowing effect", + "module.no-render.entity.spawner-entities": "Spawner Entities", + "module.no-render.entity.spawner-entities.description": "Disables rendering of spinning mobs inside of mob spawners", + "module.no-render.entity.dead-entities": "Dead Entities", + "module.no-render.entity.dead-entities.description": "Disables rendering of dead entities", + "module.no-render.entity.nametags": "Nametags", + "module.no-render.entity.nametags.description": "Disables rendering of entity nametags", + + "module.hand-view": "Hand View", + "module.hand-view.description": "Alters the way items are rendered in your hands.", + "module.hand-view.general.server-rotations": "Server Rotations", + "module.hand-view.general.server-rotations.description": "Makes your hands follow your serverside rotations.", + "module.hand-view.general.old-animations": "Old Animations", + "module.hand-view.general.old-animations.description": "Changes hit animations to those like 1.8", + "module.hand-view.general.skip-swapping-animation": "Skip Swapping Animation", + "module.hand-view.general.skip-swapping-animation.description": "Whether or not to skip the item swapping animation", + "module.hand-view.general.disable-eating-animation": "Disable Eating Animation", + "module.hand-view.general.disable-eating-animation.description": "Disables the eating animation. Potentially desirable if it goes offscreen.", + "module.hand-view.general.swing-mode": "Swing Mode", + "module.hand-view.general.swing-mode.description": "Modifies your client & server hand swinging.", + "module.hand-view.general.swing-speed": "Swing Speed", + "module.hand-view.general.swing-speed.description": "The swing speed of your hands.", + "module.hand-view.general.main-hand-progress": "Main Hand Progress", + "module.hand-view.general.main-hand-progress.description": "The swing progress of your main hand.", + "module.hand-view.general.off-hand-progress": "Off Hand Progress", + "module.hand-view.general.off-hand-progress.description": "The swing progress of your off hand.", + "module.hand-view.main-hand.scale": "Scale", + "module.hand-view.main-hand.scale.description": "The scale of your main hand.", + "module.hand-view.main-hand.position": "Position", + "module.hand-view.main-hand.position.description": "The position of your main hand.", + "module.hand-view.main-hand.rotation": "Rotation", + "module.hand-view.main-hand.rotation.description": "The rotation of your main hand.", + "module.hand-view.off-hand.scale": "Scale", + "module.hand-view.off-hand.scale.description": "The scale of your off hand.", + "module.hand-view.off-hand.position": "Position", + "module.hand-view.off-hand.position.description": "The position of your off hand.", + "module.hand-view.off-hand.rotation": "Rotation", + "module.hand-view.off-hand.rotation.description": "The rotation of your off hand.", + "module.hand-view.arm.scale": "Scale", + "module.hand-view.arm.position": "Position", + "module.hand-view.arm.rotation": "Rotation", + + "module.instant-rebreak": "Instant Rebreak", + "module.instant-rebreak.description": "Instantly re-breaks blocks in the same position.", + "module.instant-rebreak.general.delay": "Delay", + "module.instant-rebreak.general.delay.description": "The delay between break attempts.", + "module.instant-rebreak.general.only-pick": "Only Pick", + "module.instant-rebreak.general.only-pick.description": "Only tries to mine the block if you are holding a pickaxe.", + "module.instant-rebreak.general.rotate": "Rotate", + "module.instant-rebreak.general.rotate.description": "Faces the block being mined server side.", + "module.instant-rebreak.render.render": "Render", + "module.instant-rebreak.render.render.description": "Renders an overlay on the block being broken.", + "module.instant-rebreak.render.shape-mode": "Shape Mode", + "module.instant-rebreak.render.shape-mode.description": "How the shapes are rendered.", + "module.instant-rebreak.render.side-color": "Side Color", + "module.instant-rebreak.render.side-color.description": "The color of the sides of the blocks being rendered.", + "module.instant-rebreak.render.line-color": "Line Color", + "module.instant-rebreak.render.line-color.description": "The color of the lines of the blocks being rendered.", + + "module.liquid-interact": "Liquid Interact", + "module.liquid-interact.description": "Allows you to interact with liquids.", + + "module.crystal-aura": "Crystal Aura", + "module.crystal-aura.description": "Automatically places and attacks crystals.", + "module.crystal-aura.general.target-range": "Target Range", + "module.crystal-aura.general.target-range.description": "Range in which to target players.", + "module.crystal-aura.general.predict-movement": "Predict Movement", + "module.crystal-aura.general.predict-movement.description": "Predicts target movement.", + "module.crystal-aura.general.min-damage": "Min Damage", + "module.crystal-aura.general.min-damage.description": "Minimum damage the crystal needs to deal to your target.", + "module.crystal-aura.general.max-damage": "Max Damage", + "module.crystal-aura.general.max-damage.description": "Maximum damage crystals can deal to yourself.", + "module.crystal-aura.general.anti-suicide": "Anti Suicide", + "module.crystal-aura.general.anti-suicide.description": "Will not place and break crystals if they will kill you.", + "module.crystal-aura.general.ignore-nakeds": "Ignore Nakeds", + "module.crystal-aura.general.ignore-nakeds.description": "Ignore players with no items.", + "module.crystal-aura.general.rotate": "Rotate", + "module.crystal-aura.general.rotate.description": "Rotates server-side towards the crystals being hit/placed.", + "module.crystal-aura.general.yaw-steps-mode": "Yaw Steps Mode", + "module.crystal-aura.general.yaw-steps-mode.description": "When to run the yaw steps check.", + "module.crystal-aura.general.yaw-steps": "Yaw Steps", + "module.crystal-aura.general.yaw-steps.description": "Maximum number of degrees its allowed to rotate in one tick.", + "module.crystal-aura.general.entities": "Entities", + "module.crystal-aura.general.entities.description": "Entities to attack.", + "module.crystal-aura.switch.auto-switch": "Auto Switch", + "module.crystal-aura.switch.auto-switch.description": "Switches to crystals in your hotbar once a target is found.", + "module.crystal-aura.switch.switch-delay": "Switch Delay", + "module.crystal-aura.switch.switch-delay.description": "The delay in ticks to wait to break a crystal after switching hotbar slot.", + "module.crystal-aura.switch.no-gap-switch": "No Gap Switch", + "module.crystal-aura.switch.no-gap-switch.description": "Won't auto switch if you're holding a gapple.", + "module.crystal-aura.switch.no-bow-switch": "No Bow Switch", + "module.crystal-aura.switch.no-bow-switch.description": "Won't auto switch if you're holding a bow.", + "module.crystal-aura.switch.anti-weakness": "Anti Weakness", + "module.crystal-aura.switch.anti-weakness.description": "Switches to tools with so you can break crystals with the weakness effect.", + "module.crystal-aura.place.place": "Place", + "module.crystal-aura.place.place.description": "If the CA should place crystals.", + "module.crystal-aura.place.place-delay": "Place Delay", + "module.crystal-aura.place.place-delay.description": "The delay in ticks to wait to place a crystal after it's exploded.", + "module.crystal-aura.place.place-range": "Place Range", + "module.crystal-aura.place.place-range.description": "Range in which to place crystals.", + "module.crystal-aura.place.walls-range": "Walls Range", + "module.crystal-aura.place.walls-range.description": "Range in which to place crystals when behind blocks.", + "module.crystal-aura.place.1.12-placement": "1.12 Placement", + "module.crystal-aura.place.1.12-placement.description": "Uses 1.12 crystal placement.", + "module.crystal-aura.place.support": "Support", + "module.crystal-aura.place.support.description": "Places a support block in air if no other position have been found.", + "module.crystal-aura.place.support-delay": "Support Delay", + "module.crystal-aura.place.support-delay.description": "Delay in ticks after placing support block.", + "module.crystal-aura.face-place.face-place": "Face Place", + "module.crystal-aura.face-place.face-place.description": "Will face-place when target is below a certain health or armor durability threshold.", + "module.crystal-aura.face-place.face-place-health": "Face Place Health", + "module.crystal-aura.face-place.face-place-health.description": "The health the target has to be at to start face placing.", + "module.crystal-aura.face-place.face-place-durability": "Face Place Durability", + "module.crystal-aura.face-place.face-place-durability.description": "The durability threshold percentage to be able to face-place.", + "module.crystal-aura.face-place.face-place-missing-armor": "Face Place Missing Armor", + "module.crystal-aura.face-place.face-place-missing-armor.description": "Automatically starts face placing when a target misses a piece of armor.", + "module.crystal-aura.face-place.force-face-place": "Force Face Place", + "module.crystal-aura.face-place.force-face-place.description": "Starts face place when this button is pressed.", + "module.crystal-aura.break.break": "Break", + "module.crystal-aura.break.break.description": "If the CA should break crystals.", + "module.crystal-aura.break.break-delay": "Break Delay", + "module.crystal-aura.break.break-delay.description": "The delay in ticks to wait to break a crystal after it's placed.", + "module.crystal-aura.break.smart-delay": "Smart Delay", + "module.crystal-aura.break.smart-delay.description": "Only breaks crystals when the target can receive damage.", + "module.crystal-aura.break.break-range": "Break Range", + "module.crystal-aura.break.break-range.description": "Range in which to break crystals.", + "module.crystal-aura.break.walls-range": "Walls Range", + "module.crystal-aura.break.walls-range.description": "Range in which to break crystals when behind blocks.", + "module.crystal-aura.break.only-own": "Only Own", + "module.crystal-aura.break.only-own.description": "Only breaks own crystals.", + "module.crystal-aura.break.break-attempts": "Break Attempts", + "module.crystal-aura.break.break-attempts.description": "How many times to hit a crystal before stopping to target it.", + "module.crystal-aura.break.ticks-existed": "Ticks Existed", + "module.crystal-aura.break.ticks-existed.description": "Amount of ticks a crystal needs to have lived for it to be attacked by CrystalAura.", + "module.crystal-aura.break.attack-frequency": "Attack Frequency", + "module.crystal-aura.break.attack-frequency.description": "Maximum hits to do per second.", + "module.crystal-aura.break.fast-break": "Fast Break", + "module.crystal-aura.break.fast-break.description": "Ignores break delay and tries to break the crystal as soon as it's spawned in the world.", + "module.crystal-aura.pause.pause-on-use": "Pause On Use", + "module.crystal-aura.pause.pause-on-use.description": "Which processes should be paused while using an item.", + "module.crystal-aura.pause.pause-on-mine": "Pause On Mine", + "module.crystal-aura.pause.pause-on-mine.description": "Which processes should be paused while mining a block.", + "module.crystal-aura.pause.pause-on-lag": "Pause On Lag", + "module.crystal-aura.pause.pause-on-lag.description": "Whether to pause if the server is not responding.", + "module.crystal-aura.pause.pause-modules": "Pause Modules", + "module.crystal-aura.pause.pause-modules.description": "Pauses while any of the selected modules are active.", + "module.crystal-aura.pause.pause-health": "Pause Health", + "module.crystal-aura.pause.pause-health.description": "Pauses when you go below a certain health.", + "module.crystal-aura.render.swing-mode": "Swing Mode", + "module.crystal-aura.render.swing-mode.description": "How to swing when placing.", + "module.crystal-aura.render.render-mode": "Render Mode", + "module.crystal-aura.render.render-mode.description": "The mode to render in.", + "module.crystal-aura.render.render-place": "Render Place", + "module.crystal-aura.render.render-place.description": "Renders a block overlay over the block the crystals are being placed on.", + "module.crystal-aura.render.place-time": "Place Time", + "module.crystal-aura.render.place-time.description": "How long to render placements.", + "module.crystal-aura.render.render-break": "Render Break", + "module.crystal-aura.render.render-break.description": "Renders a block overlay over the block the crystals are broken on.", + "module.crystal-aura.render.break-time": "Break Time", + "module.crystal-aura.render.break-time.description": "How long to render breaking for.", + "module.crystal-aura.render.smoothness": "Smoothness", + "module.crystal-aura.render.smoothness.description": "How smoothly the render should move around.", + "module.crystal-aura.render.height": "Height", + "module.crystal-aura.render.height.description": "How tall the gradient should be.", + "module.crystal-aura.render.render-time": "Render Time", + "module.crystal-aura.render.render-time.description": "How long to render placements.", + "module.crystal-aura.render.shape-mode": "Shape Mode", + "module.crystal-aura.render.shape-mode.description": "How the shapes are rendered.", + "module.crystal-aura.render.side-color": "Side Color", + "module.crystal-aura.render.side-color.description": "The side color of the block overlay.", + "module.crystal-aura.render.line-color": "Line Color", + "module.crystal-aura.render.line-color.description": "The line color of the block overlay.", + "module.crystal-aura.render.damage": "Damage", + "module.crystal-aura.render.damage.description": "Renders crystal damage text in the block overlay.", + "module.crystal-aura.render.damage-color": "Damage Color", + "module.crystal-aura.render.damage-color.description": "The color of the damage text.", + "module.crystal-aura.render.damage-scale": "Damage Scale", + "module.crystal-aura.render.damage-scale.description": "How big the damage text should be.", + + "module.spider": "Spider", + "module.spider.description": "Allows you to climb walls like a spider.", + "module.spider.general.climb-speed": "Climb Speed", + "module.spider.general.climb-speed.description": "The speed you go up blocks.", + + "module.auto-log": "Auto Log", + "module.auto-log.description": "Automatically disconnects you when certain requirements are met.", + "module.auto-log.general.health": "Health", + "module.auto-log.general.health.description": "Automatically disconnects when health is lower or equal to this value. Set to 0 to disable.", + "module.auto-log.general.predict-incoming-damage": "Predict Incoming Damage", + "module.auto-log.general.predict-incoming-damage.description": "Disconnects when it detects you're about to take enough damage to set you under the 'health' setting.", + "module.auto-log.general.totem-pops": "Totem Pops", + "module.auto-log.general.totem-pops.description": "Disconnects when you have popped this many totems. Set to 0 to disable.", + "module.auto-log.general.only-trusted": "Only Trusted", + "module.auto-log.general.only-trusted.description": "Disconnects when a player not on your friends list appears in render distance.", + "module.auto-log.general.32K": "32K", + "module.auto-log.general.32K.description": "Disconnects when a player near you can instantly kill you.", + "module.auto-log.general.smart-toggle": "Smart Toggle", + "module.auto-log.general.smart-toggle.description": "Disables Auto Log after a low-health logout. WILL re-enable once you heal.", + "module.auto-log.general.toggle-off": "Toggle Off", + "module.auto-log.general.toggle-off.description": "Disables Auto Log after usage.", + "module.auto-log.general.toggle-auto-reconnect": "Toggle Auto Reconnect", + "module.auto-log.general.toggle-auto-reconnect.description": "Whether to disable Auto Reconnect after a logout.", + "module.auto-log.entities.entities": "Entities", + "module.auto-log.entities.entities.description": "Disconnects when a specified entity is present within a specified range.", + "module.auto-log.entities.use-total-count": "Use Total Count", + "module.auto-log.entities.use-total-count.description": "Toggle between counting the total number of all selected entities or each entity individually.", + "module.auto-log.entities.combined-entity-threshold": "Combined Entity Threshold", + "module.auto-log.entities.combined-entity-threshold.description": "The minimum total number of selected entities that must be near you before disconnection occurs.", + "module.auto-log.entities.individual-entity-threshold": "Individual Entity Threshold", + "module.auto-log.entities.individual-entity-threshold.description": "The minimum number of entities individually that must be near you before disconnection occurs.", + "module.auto-log.entities.range": "Range", + "module.auto-log.entities.range.description": "How close an entity has to be to you before you disconnect.", + + "module.high-jump": "High Jump", + "module.high-jump.description": "Makes you jump higher than normal.", + "module.high-jump.general.jump-multiplier": "Jump Multiplier", + "module.high-jump.general.jump-multiplier.description": "Jump height multiplier.", + + "module.speed": "Speed", + "module.speed.description": "Modifies your movement speed when moving on the ground.", + "module.speed.general.mode": "Mode", + "module.speed.general.mode.description": "The method of applying speed.", + "module.speed.general.vanilla-speed": "Vanilla Speed", + "module.speed.general.vanilla-speed.description": "The speed in blocks per second.", + "module.speed.general.strafe-speed": "Strafe Speed", + "module.speed.general.strafe-speed.description": "The speed.", + "module.speed.general.speed-limit": "Speed Limit", + "module.speed.general.speed-limit.description": "Limits your speed on servers with very strict anticheats.", + "module.speed.general.timer": "Timer", + "module.speed.general.timer.description": "Timer override.", + "module.speed.general.in-liquids": "In Liquids", + "module.speed.general.in-liquids.description": "Uses speed when in lava or water.", + "module.speed.general.when-sneaking": "When Sneaking", + "module.speed.general.when-sneaking.description": "Uses speed when sneaking.", + "module.speed.general.only-on-ground": "Only On Ground", + "module.speed.general.only-on-ground.description": "Uses speed only when standing on a block.", + + "module.offhand": "Offhand", + "module.offhand.description": "Allows you to hold specified items in your offhand.", + "module.offhand.combat.item-switch-delay": "Item Switch Delay", + "module.offhand.combat.item-switch-delay.description": "The delay in ticks between slot movements.", + "module.offhand.combat.item": "Item", + "module.offhand.combat.item.description": "Which item to hold in your offhand.", + "module.offhand.combat.hotbar": "Hotbar", + "module.offhand.combat.hotbar.description": "Whether to use items from your hotbar.", + "module.offhand.combat.right-gapple": "Right Gapple", + "module.offhand.combat.right-gapple.description": "Will switch to a gapple when holding right click.(DO NOT USE WITH POTION ON)", + "module.offhand.combat.sword-gapple": "Sword Gapple", + "module.offhand.combat.sword-gapple.description": "Will switch to a gapple when holding a sword and right click.", + "module.offhand.combat.always-gap-on-sword": "Always Gap On Sword", + "module.offhand.combat.always-gap-on-sword.description": "Holds an Enchanted Golden Apple when you are holding a sword.", + "module.offhand.combat.always-pot-on-sword": "Always Pot On Sword", + "module.offhand.combat.always-pot-on-sword.description": "Will switch to a potion when holding a sword", + "module.offhand.combat.sword-pot": "Sword Pot", + "module.offhand.combat.sword-pot.description": "Will switch to a potion when holding a sword and right click.", + "module.offhand.totem.min-health": "Min Health", + "module.offhand.totem.min-health.description": "Will hold a totem when below this amount of health.", + "module.offhand.totem.elytra": "Elytra", + "module.offhand.totem.elytra.description": "Will always hold a totem while flying with an elytra.", + "module.offhand.totem.falling": "Falling", + "module.offhand.totem.falling.description": "Will hold a totem if fall damage could kill you.", + "module.offhand.totem.explosion": "Explosion", + "module.offhand.totem.explosion.description": "Will hold a totem when explosion damage could kill you.", + + "module.arrow-dodge": "Arrow Dodge", + "module.arrow-dodge.description": "Tries to dodge arrows coming at you.", + "module.arrow-dodge.general.ground-check": "Ground Check", + "module.arrow-dodge.general.ground-check.description": "Tries to prevent you from falling to your death.", + "module.arrow-dodge.general.all-projectiles": "All Projectiles", + "module.arrow-dodge.general.all-projectiles.description": "Dodge all projectiles, not only arrows.", + "module.arrow-dodge.general.ignore-own": "Ignore Own", + "module.arrow-dodge.general.ignore-own.description": "Ignore your own projectiles.", + "module.arrow-dodge.general.simulation-steps": "Simulation Steps", + "module.arrow-dodge.general.simulation-steps.description": "How many steps to simulate projectiles. Zero for no limit.", + "module.arrow-dodge.movement.move-type": "Move Type", + "module.arrow-dodge.movement.move-type.description": "The way you are moved by this module.", + "module.arrow-dodge.movement.move-speed": "Move Speed", + "module.arrow-dodge.movement.move-speed.description": "How fast should you be when dodging arrow.", + "module.arrow-dodge.movement.distance-check": "Distance Check", + "module.arrow-dodge.movement.distance-check.description": "How far should an arrow be from the player to be considered not hitting.", + + "module.multitask": "Multitask", + "module.multitask.description": "Lets you use items and attack at the same time.", + "module.multitask.general.attacking-entities": "Attacking Entities", + "module.multitask.general.attacking-entities.description": "Lets you attack entities while using an item.", + + "module.auto-replenish": "Auto Replenish", + "module.auto-replenish.description": "Automatically refills items in your hotbar, main hand, or offhand.", + "module.auto-replenish.general.min-count": "Min Count", + "module.auto-replenish.general.min-count.description": "Replenish a slot when it reaches this item count.", + "module.auto-replenish.general.delay": "Delay", + "module.auto-replenish.general.delay.description": "How long in ticks to wait between replenishing your hotbar.", + "module.auto-replenish.general.offhand": "Offhand", + "module.auto-replenish.general.offhand.description": "Whether or not to replenish items in your offhand.", + "module.auto-replenish.general.unstackable": "Unstackable", + "module.auto-replenish.general.unstackable.description": "Replenish unstackable items.", + "module.auto-replenish.general.same-enchants": "Same Enchants", + "module.auto-replenish.general.same-enchants.description": "Only replace unstackables with items that have the same enchants.", + "module.auto-replenish.general.search-hotbar": "Search Hotbar", + "module.auto-replenish.general.search-hotbar.description": "Combine stacks in your hotbar/offhand as a last resort.", + "module.auto-replenish.general.excluded-items": "Excluded Items", + "module.auto-replenish.general.excluded-items.description": "Items that won't be replenished.", + + "module.break-indicators": "Break Indicators", + "module.break-indicators.description": "Renders the progress of a block being broken.", + "module.break-indicators.general.shape-mode": "Shape Mode", + "module.break-indicators.general.shape-mode.description": "How the shapes are rendered.", + "module.break-indicators.general.packet-mine": "Packet Mine", + "module.break-indicators.general.packet-mine.description": "Whether or not to render blocks being packet mined.", + "module.break-indicators.general.start-color": "Start Color", + "module.break-indicators.general.start-color.description": "The color for the non-broken block.", + "module.break-indicators.general.end-color": "End Color", + "module.break-indicators.general.end-color.description": "The color for the fully-broken block.", + + "module.potion-saver": "Potion Saver", + "module.potion-saver.description": "Stops potion effects ticking when you stand still.", + "module.potion-saver.general.effects": "Effects", + "module.potion-saver.general.effects.description": "The effects to preserve.", + "module.potion-saver.general.only-when-stationary": "Only When Stationary", + "module.potion-saver.general.only-when-stationary.description": "Only freezes effects when you aren't moving.", + + "module.block-esp": "Block Esp", + "module.block-esp.description": "Renders specified blocks through walls.", + "module.block-esp.general.blocks": "Blocks", + "module.block-esp.general.blocks.description": "Blocks to search for.", + "module.block-esp.general.default-block-config": "Default Block Config", + "module.block-esp.general.default-block-config.description": "Default block config.", + "module.block-esp.general.block-configs": "Block Configs", + "module.block-esp.general.block-configs.description": "Config for each block.", + "module.block-esp.general.tracers": "Tracers", + "module.block-esp.general.tracers.description": "Render tracer lines.", + + "module.block-esp.data.shape-mode": "Shape Mode", + "module.block-esp.data.shape-mode.description": "How the shape is rendered.", + "module.block-esp.data.line-color": "Line Color", + "module.block-esp.data.line-color.description": "Color of lines.", + "module.block-esp.data.side-color": "Side Color", + "module.block-esp.data.side-color.description": "Color of sides.", + "module.block-esp.data.tracer": "Tracer", + "module.block-esp.data.tracer.description": "If tracer line should be drawn to this block.", + "module.block-esp.data.tracer-color": "Tracer Color", + "module.block-esp.data.tracer-color.description": "Color of the tracer line.", + + "module.packet-mine": "Packet Mine", + "module.packet-mine.description": "Sends packets to mine blocks without the mining animation.", + "module.packet-mine.general.delay": "Delay", + "module.packet-mine.general.delay.description": "Delay between mining blocks in ticks.", + "module.packet-mine.general.rotate": "Rotate", + "module.packet-mine.general.rotate.description": "Sends rotation packets to the server when mining.", + "module.packet-mine.general.auto-switch": "Auto Switch", + "module.packet-mine.general.auto-switch.description": "Automatically switches to the best tool when the block is ready to be mined instantly.", + "module.packet-mine.general.not-on-use": "Not On Use", + "module.packet-mine.general.not-on-use.description": "Won't auto switch if you're using an item.", + "module.packet-mine.general.obscure-breaking-progress": "Obscure Breaking Progress", + "module.packet-mine.general.obscure-breaking-progress.description": "Spams abort breaking packets to obscure the block mining progress from other players. Does not hide it perfectly.", + "module.packet-mine.render.render": "Render", + "module.packet-mine.render.render.description": "Whether or not to render the block being mined.", + "module.packet-mine.render.shape-mode": "Shape Mode", + "module.packet-mine.render.shape-mode.description": "How the shapes are rendered.", + "module.packet-mine.render.ready-side-color": "Ready Side Color", + "module.packet-mine.render.ready-side-color.description": "The color of the sides of the blocks that can be broken.", + "module.packet-mine.render.ready-line-color": "Ready Line Color", + "module.packet-mine.render.ready-line-color.description": "The color of the lines of the blocks that can be broken.", + "module.packet-mine.render.side-color": "Side Color", + "module.packet-mine.render.side-color.description": "The color of the sides of the blocks being rendered.", + "module.packet-mine.render.line-color": "Line Color", + "module.packet-mine.render.line-color.description": "The color of the lines of the blocks being rendered.", + + "module.liquid-filler": "Liquid Filler", + "module.liquid-filler.description": "Places blocks inside of liquid source blocks within range of you.", + "module.liquid-filler.general.place-in": "Place In", + "module.liquid-filler.general.place-in.description": "What type of liquids to place in.", + "module.liquid-filler.general.shape": "Shape", + "module.liquid-filler.general.shape.description": "The shape of placing algorithm.", + "module.liquid-filler.general.place-range": "Place Range", + "module.liquid-filler.general.place-range.description": "The range at which blocks can be placed.", + "module.liquid-filler.general.walls-range": "Walls Range", + "module.liquid-filler.general.walls-range.description": "Range in which to place when behind blocks.", + "module.liquid-filler.general.delay": "Delay", + "module.liquid-filler.general.delay.description": "Delay between actions in ticks.", + "module.liquid-filler.general.max-blocks-per-tick": "Max Blocks Per Tick", + "module.liquid-filler.general.max-blocks-per-tick.description": "Maximum blocks to try to place per tick.", + "module.liquid-filler.general.sort-mode": "Sort Mode", + "module.liquid-filler.general.sort-mode.description": "The blocks you want to place first.", + "module.liquid-filler.general.rotate": "Rotate", + "module.liquid-filler.general.rotate.description": "Automatically rotates towards the space targeted for filling.", + "module.liquid-filler.whitelist.list-mode": "List Mode", + "module.liquid-filler.whitelist.list-mode.description": "Selection mode.", + "module.liquid-filler.whitelist.whitelist": "Whitelist", + "module.liquid-filler.whitelist.whitelist.description": "The allowed blocks that it will use to fill up the liquid.", + "module.liquid-filler.whitelist.blacklist": "Blacklist", + "module.liquid-filler.whitelist.blacklist.description": "The denied blocks that it not will use to fill up the liquid.", + + "module.quiver": "Quiver", + "module.quiver.description": "Shoots arrows at yourself.", + "module.quiver.general.effects": "Effects", + "module.quiver.general.effects.description": "Which effects to shoot you with.", + "module.quiver.general.cooldown": "Cooldown", + "module.quiver.general.cooldown.description": "How many ticks between shooting effects (19 minimum for NCP).", + "module.quiver.general.check-effects": "Check Effects", + "module.quiver.general.check-effects.description": "Won't shoot you with effects you already have.", + "module.quiver.general.silent-bow": "Silent Bow", + "module.quiver.general.silent-bow.description": "Takes a bow from your inventory to quiver.", + "module.quiver.general.chat-info": "Chat Info", + "module.quiver.general.chat-info.description": "Sends info about quiver checks in chat.", + "module.quiver.safety.only-in-holes": "Only In Holes", + "module.quiver.safety.only-in-holes.description": "Only quiver when you're in a hole.", + "module.quiver.safety.only-on-ground": "Only On Ground", + "module.quiver.safety.only-on-ground.description": "Only quiver when you're on the ground.", + "module.quiver.safety.min-health": "Min Health", + "module.quiver.safety.min-health.description": "How much health you must have to quiver.", + + "module.chest-swap": "Chest Swap", + "module.chest-swap.description": "Automatically swaps between a chestplate and an elytra.", + "module.chest-swap.general.chestplate": "Chestplate", + "module.chest-swap.general.chestplate.description": "Which type of chestplate to swap to.", + "module.chest-swap.general.stay-on": "Stay On", + "module.chest-swap.general.stay-on.description": "Stays on and activates when you turn it off.", + "module.chest-swap.general.close-inventory": "Close Inventory", + "module.chest-swap.general.close-inventory.description": "Sends inventory close after swap.", + + "module.fast-use": "Fast Use", + "module.fast-use.description": "Allows you to use items at very high speeds.", + "module.fast-use.general.mode": "Mode", + "module.fast-use.general.mode.description": "Which items to fast use.", + "module.fast-use.general.items": "Items", + "module.fast-use.general.items.description": "Which items should fast place work on in \"Some\" mode.", + "module.fast-use.general.blocks": "Blocks", + "module.fast-use.general.blocks.description": "Fast-places blocks if the mode is \"Some\" mode.", + "module.fast-use.general.cooldown": "Cooldown", + "module.fast-use.general.cooldown.description": "Fast-use cooldown in ticks.", + + "module.anchor": "Anchor", + "module.anchor.description": "Helps you get into holes by stopping your movement completely over a hole.", + "module.anchor.general.max-height": "Max Height", + "module.anchor.general.max-height.description": "The maximum height Anchor will work at.", + "module.anchor.general.min-pitch": "Min Pitch", + "module.anchor.general.min-pitch.description": "The minimum pitch at which anchor will work.", + "module.anchor.general.cancel-jump-in-hole": "Cancel Jump In Hole", + "module.anchor.general.cancel-jump-in-hole.description": "Prevents you from jumping when Anchor is active and Min Pitch is met.", + "module.anchor.general.pull": "Pull", + "module.anchor.general.pull.description": "The pull strength of Anchor.", + "module.anchor.general.pull-speed": "Pull Speed", + "module.anchor.general.pull-speed.description": "How fast to pull towards the hole in blocks per second.", + + "module.anti-anvil": "Anti Anvil", + "module.anti-anvil.description": "Automatically prevents Auto Anvil by placing between you and the anvil.", + "module.anti-anvil.general.swing": "Swing", + "module.anti-anvil.general.swing.description": "Swings your hand client-side when placing.", + "module.anti-anvil.general.rotate": "Rotate", + "module.anti-anvil.general.rotate.description": "Makes you rotate when placing.", + + "module.highway-builder": "Highway Builder", + "module.highway-builder.description": "Automatically builds highways.", + "module.highway-builder.general.width": "Width", + "module.highway-builder.general.width.description": "Width of the highway.", + "module.highway-builder.general.height": "Height", + "module.highway-builder.general.height.description": "Height of the highway.", + "module.highway-builder.general.floor": "Floor", + "module.highway-builder.general.floor.description": "What floor placement mode to use.", + "module.highway-builder.general.railings": "Railings", + "module.highway-builder.general.railings.description": "Builds railings next to the highway.", + "module.highway-builder.general.corner-support-block": "Corner Support Block", + "module.highway-builder.general.corner-support-block.description": "Places a support block underneath the railings, to prevent air placing.", + "module.highway-builder.general.mine-above-railings": "Mine Above Railings", + "module.highway-builder.general.mine-above-railings.description": "Mines blocks above railings.", + "module.highway-builder.general.rotation": "Rotation", + "module.highway-builder.general.rotation.description": "Mode of rotation.", + "module.highway-builder.general.disconnect-on-toggle": "Disconnect On Toggle", + "module.highway-builder.general.disconnect-on-toggle.description": "Automatically disconnects when the module is turned off, for example for not having enough blocks.", + "module.highway-builder.general.pause-on-lag": "Pause On Lag", + "module.highway-builder.general.pause-on-lag.description": "Pauses the current process while the server stops responding.", + "module.highway-builder.general.destroy-crystal-traps": "Destroy Crystal Traps", + "module.highway-builder.general.destroy-crystal-traps.description": "Use a bow to defuse crystal traps safely from a distance. An infinity bow is recommended.", + "module.highway-builder.digging.double-mine": "Double Mine", + "module.highway-builder.digging.double-mine.description": "Whether to double mine blocks when applicable (normal mine and packet mine simultaneously).", + "module.highway-builder.digging.fast-break": "Fast Break", + "module.highway-builder.digging.fast-break.description": "Whether to finish breaking blocks faster than normal while double mining.", + "module.highway-builder.digging.dont-break-tools": "Dont Break Tools", + "module.highway-builder.digging.dont-break-tools.description": "Don't break tools.", + "module.highway-builder.digging.durability-percentage": "Durability Percentage", + "module.highway-builder.digging.durability-percentage.description": "The durability percentage at which to stop using a tool.", + "module.highway-builder.digging.save-pickaxes": "Save Pickaxes", + "module.highway-builder.digging.save-pickaxes.description": "How many pickaxes to ensure are saved. Hitting this number in your inventory will trigger a restock or the module toggling off.", + "module.highway-builder.digging.break-delay": "Break Delay", + "module.highway-builder.digging.break-delay.description": "The delay between breaking blocks.", + "module.highway-builder.digging.blocks-per-tick": "Blocks Per Tick", + "module.highway-builder.digging.blocks-per-tick.description": "The maximum amount of blocks that can be mined in a tick. Only applies to blocks instantly breakable.", + "module.highway-builder.paving.blocks-to-place": "Blocks To Place", + "module.highway-builder.paving.blocks-to-place.description": "Blocks it is allowed to place.", + "module.highway-builder.paving.place-range": "Place Range", + "module.highway-builder.paving.place-range.description": "The maximum distance at which you can place blocks.", + "module.highway-builder.paving.place-delay": "Place Delay", + "module.highway-builder.paving.place-delay.description": "The delay between placing blocks.", + "module.highway-builder.paving.placements-per-tick": "Placements Per Tick", + "module.highway-builder.paving.placements-per-tick.description": "The maximum amount of blocks that can be placed in a tick.", + "module.highway-builder.inventory.trash-items": "Trash Items", + "module.highway-builder.inventory.trash-items.description": "Items that are considered trash and can be thrown out.", + "module.highway-builder.inventory.inventory-delay": "Inventory Delay", + "module.highway-builder.inventory.inventory-delay.description": "Delay in ticks on inventory interactions.", + "module.highway-builder.inventory.eject-useless-shulkers": "Eject Useless Shulkers", + "module.highway-builder.inventory.eject-useless-shulkers.description": "Whether you should eject useless shulkers. Warning - will throw out any shulkers that don't contain blocks to place, pickaxes, or food. Be careful with your kits.", + "module.highway-builder.inventory.search-ender-chest": "Search Ender Chest", + "module.highway-builder.inventory.search-ender-chest.description": "Searches your ender chest to find items to use. Be careful with this one, especially if you let it search through shulkers.", + "module.highway-builder.inventory.search-shulkers": "Search Shulkers", + "module.highway-builder.inventory.search-shulkers.description": "Searches through shulkers to find items to use.", + "module.highway-builder.inventory.minimum-empty-slots": "Minimum Empty Slots", + "module.highway-builder.inventory.minimum-empty-slots.description": "The minimum amount of empty slots you want left after mining obsidian.", + "module.highway-builder.inventory.mine-ender-chests": "Mine Ender Chests", + "module.highway-builder.inventory.mine-ender-chests.description": "Mines ender chests for obsidian.", + "module.highway-builder.inventory.echest-blockade-type": "Echest Blockade Type", + "module.highway-builder.inventory.echest-blockade-type.description": "What blockade type to use (the structure placed when mining echests).", + "module.highway-builder.inventory.save-ender-chests": "Save Ender Chests", + "module.highway-builder.inventory.save-ender-chests.description": "How many ender chests to ensure are saved. Hitting this number in your inventory will trigger a restock or the module toggling off.", + "module.highway-builder.inventory.instantly-rebreak-echests": "Instantly Rebreak Echests", + "module.highway-builder.inventory.instantly-rebreak-echests.description": "Whether or not to use the instant rebreak exploit to break echests.", + "module.highway-builder.inventory.rebreak-delay": "Rebreak Delay", + "module.highway-builder.inventory.rebreak-delay.description": "Delay between rebreak attempts.", + "module.highway-builder.render-digging.render-blocks-to-mine": "Render Blocks To Mine", + "module.highway-builder.render-digging.render-blocks-to-mine.description": "Render blocks to be mined.", + "module.highway-builder.render-digging.blocks-to-mine-shape-mode": "Blocks To Mine Shape Mode", + "module.highway-builder.render-digging.blocks-to-mine-shape-mode.description": "How the blocks to be mined are rendered.", + "module.highway-builder.render-digging.blocks-to-mine-side-color": "Blocks To Mine Side Color", + "module.highway-builder.render-digging.blocks-to-mine-side-color.description": "Color of blocks to be mined.", + "module.highway-builder.render-digging.blocks-to-mine-line-color": "Blocks To Mine Line Color", + "module.highway-builder.render-digging.blocks-to-mine-line-color.description": "Color of blocks to be mined.", + "module.highway-builder.render-paving.render-blocks-to-place": "Render Blocks To Place", + "module.highway-builder.render-paving.render-blocks-to-place.description": "Render blocks to be placed.", + "module.highway-builder.render-paving.blocks-to-place-shape-mode": "Blocks To Place Shape Mode", + "module.highway-builder.render-paving.blocks-to-place-shape-mode.description": "How the blocks to be placed are rendered.", + "module.highway-builder.render-paving.blocks-to-place-side-color": "Blocks To Place Side Color", + "module.highway-builder.render-paving.blocks-to-place-side-color.description": "Color of blocks to be placed.", + "module.highway-builder.render-paving.blocks-to-place-line-color": "Blocks To Place Line Color", + "module.highway-builder.render-paving.blocks-to-place-line-color.description": "Color of blocks to be placed.", + + "module.infinity-miner": "Infinity Miner", + "module.infinity-miner.description": "Allows you to essentially mine forever by mining repair blocks when the durability gets low. Needs a mending pickaxe.", + "module.infinity-miner.general.target-blocks": "Target Blocks", + "module.infinity-miner.general.target-blocks.description": "The target blocks to mine.", + "module.infinity-miner.general.target-items": "Target Items", + "module.infinity-miner.general.target-items.description": "The target items to collect.", + "module.infinity-miner.general.repair-blocks": "Repair Blocks", + "module.infinity-miner.general.repair-blocks.description": "The repair blocks to mine.", + "module.infinity-miner.general.start-repairing": "Start Repairing", + "module.infinity-miner.general.start-repairing.description": "The durability percentage at which to start repairing.", + "module.infinity-miner.general.start-mining": "Start Mining", + "module.infinity-miner.general.start-mining.description": "The durability percentage at which to start mining.", + "module.infinity-miner.when-full": "When Full", + "module.infinity-miner.when-full.walk-home": "Walk Home", + "module.infinity-miner.when-full.walk-home.description": "Will walk 'home' when your inventory is full.", + "module.infinity-miner.when-full.log-out": "Log Out", + "module.infinity-miner.when-full.log-out.description": "Logs out when your inventory is full. Will walk home FIRST if walk home is enabled.", + + "module.breadcrumbs": "Breadcrumbs", + "module.breadcrumbs.description": "Displays a trail behind where you have walked.", + "module.breadcrumbs.general.color": "Color", + "module.breadcrumbs.general.color.description": "The color of the Breadcrumbs trail.", + "module.breadcrumbs.general.max-sections": "Max Sections", + "module.breadcrumbs.general.max-sections.description": "The maximum number of sections.", + "module.breadcrumbs.general.section-length": "Section Length", + "module.breadcrumbs.general.section-length.description": "The section length in blocks.", + + "module.auto-brewer": "Auto Brewer", + "module.auto-brewer.description": "Automatically brews the specified potion.", + "module.auto-brewer.general.potion": "Potion", + "module.auto-brewer.general.potion.description": "The type of potion to brew.", + + "module.storage-esp": "Storage Esp", + "module.storage-esp.description": "Renders all specified storage blocks.", + "module.storage-esp.general.mode": "Mode", + "module.storage-esp.general.mode.description": "Rendering mode.", + "module.storage-esp.general.storage-blocks": "Storage Blocks", + "module.storage-esp.general.storage-blocks.description": "Select the storage blocks to display.", + "module.storage-esp.general.tracers": "Tracers", + "module.storage-esp.general.tracers.description": "Draws tracers to storage blocks.", + "module.storage-esp.general.shape-mode": "Shape Mode", + "module.storage-esp.general.shape-mode.description": "How the shapes are rendered.", + "module.storage-esp.general.fill-opacity": "Fill Opacity", + "module.storage-esp.general.fill-opacity.description": "The opacity of the shape fill.", + "module.storage-esp.general.width": "Width", + "module.storage-esp.general.width.description": "The width of the shader outline.", + "module.storage-esp.general.glow-multiplier": "Glow Multiplier", + "module.storage-esp.general.glow-multiplier.description": "Multiplier for glow effect", + "module.storage-esp.general.chest": "Chest", + "module.storage-esp.general.chest.description": "The color of chests.", + "module.storage-esp.general.trapped-chest": "Trapped Chest", + "module.storage-esp.general.trapped-chest.description": "The color of trapped chests.", + "module.storage-esp.general.barrel": "Barrel", + "module.storage-esp.general.barrel.description": "The color of barrels.", + "module.storage-esp.general.shulker": "Shulker", + "module.storage-esp.general.shulker.description": "The color of Shulker Boxes.", + "module.storage-esp.general.ender-chest": "Ender Chest", + "module.storage-esp.general.ender-chest.description": "The color of Ender Chests.", + "module.storage-esp.general.other": "Other", + "module.storage-esp.general.other.description": "The color of furnaces, dispensers, droppers and hoppers.", + "module.storage-esp.general.fade-distance": "Fade Distance", + "module.storage-esp.general.fade-distance.description": "The distance at which the color will fade.", + "module.storage-esp.opened-rendering.hide-opened": "Hide Opened", + "module.storage-esp.opened-rendering.hide-opened.description": "Hides opened containers.", + "module.storage-esp.opened-rendering.opened-color": "Opened Color", + "module.storage-esp.opened-rendering.opened-color.description": "Optional setting to change colors of opened chests, as opposed to not rendering. Disabled at zero opacity.", + + "module.no-status-effects": "No Status Effects", + "module.no-status-effects.description": "Blocks specified status effects.", + "module.no-status-effects.general.blocked-effects": "Blocked Effects", + "module.no-status-effects.general.blocked-effects.description": "Effects to block.", + + "module.attribute-swap": "Attribute Swap", + "module.attribute-swap.description": "Swaps to a target slot when you attack.", + "module.attribute-swap.general.mode": "Mode", + "module.attribute-swap.general.mode.description": "The mode to use.", + "module.attribute-swap.general.target-slot": "Target Slot", + "module.attribute-swap.general.target-slot.description": "Hotbar slot to swap to (1-9).", + "module.attribute-swap.general.swap-back": "Swap Back", + "module.attribute-swap.general.swap-back.description": "Swap back to the original slot after a delay.", + "module.attribute-swap.general.swap-back-delay": "Swap Back Delay", + "module.attribute-swap.general.swap-back-delay.description": "Delay in ticks before swapping back.", + "module.attribute-swap.swapping-options.shield-breaker": "Shield Breaker", + "module.attribute-swap.swapping-options.shield-breaker.description": "Automatically swaps to an axe if the target is blocking.", + "module.attribute-swap.swapping-options.durability-saver": "Durability Saver", + "module.attribute-swap.swapping-options.durability-saver.description": "Swaps to a non-damageable item to save durability on the main weapon.", + "module.attribute-swap.swapping-options.sword-swapping": "Sword Swapping", + "module.attribute-swap.swapping-options.sword-swapping.description": "Enables smart swapping for sword enchantments.", + "module.attribute-swap.swapping-options.mace-swapping": "Mace Swapping", + "module.attribute-swap.swapping-options.mace-swapping.description": "Enables smart swapping for mace enchantments.", + "module.attribute-swap.swapping-options.other-swapping": "Other Swapping", + "module.attribute-swap.swapping-options.other-swapping.description": "Enables smart swapping for other enchantments like Impaling.", + "module.attribute-swap.sword-enchants.fire-aspect": "Fire Aspect", + "module.attribute-swap.sword-enchants.fire-aspect.description": "Swaps to an item with Fire Aspect to set the target on fire, if target isn't already on fire", + "module.attribute-swap.sword-enchants.looting": "Looting", + "module.attribute-swap.sword-enchants.looting.description": "Swaps to an item with Looting for better drops or more experience. Only prefers for mobs (but fire aspect is priority)", + "module.attribute-swap.sword-enchants.sharpness": "Sharpness", + "module.attribute-swap.sword-enchants.sharpness.description": "Swaps to an item with Sharpness for increased damage against all entities.", + "module.attribute-swap.sword-enchants.smite": "Smite", + "module.attribute-swap.sword-enchants.smite.description": "Swaps to an item with Smite for increased damage against undead mobs.", + "module.attribute-swap.sword-enchants.bane-of-arthropods": "Bane Of Arthropods", + "module.attribute-swap.sword-enchants.bane-of-arthropods.description": "Swaps to an item with Bane of Arthropods for increased damage against arthropods.", + "module.attribute-swap.sword-enchants.sweeping-edge": "Sweeping Edge", + "module.attribute-swap.sword-enchants.sweeping-edge.description": "Swaps to an item with Sweeping Edge for increased sweeping attack damage.", + "module.attribute-swap.mace-enchants.regular-mace": "Regular Mace", + "module.attribute-swap.mace-enchants.regular-mace.description": "Swaps to a regular Mace when falling if no better option is available.", + "module.attribute-swap.mace-enchants.density": "Density", + "module.attribute-swap.mace-enchants.density.description": "Swaps to a Mace with Density to deal increased damage when falling.", + "module.attribute-swap.mace-enchants.breach": "Breach", + "module.attribute-swap.mace-enchants.breach.description": "Swaps to a Mace with Breach to reduce the target's armor effectiveness.", + "module.attribute-swap.mace-enchants.wind-burst": "Wind Burst", + "module.attribute-swap.mace-enchants.wind-burst.description": "Swaps to a Mace with Wind Burst to launch up when hitting while falling.", + "module.attribute-swap.other-enchants.impaling": "Impaling", + "module.attribute-swap.other-enchants.impaling.description": "Swaps to an item with Impaling for increased damage against aquatic mobs.", + "module.attribute-swap.weapon-options.only-on-weapon": "Only On Weapon", + "module.attribute-swap.weapon-options.only-on-weapon.description": "Only swaps when holding a selected weapon in hand.", + "module.attribute-swap.weapon-options.sword": "Sword", + "module.attribute-swap.weapon-options.sword.description": "Works while holding a sword.", + "module.attribute-swap.weapon-options.axe": "Axe", + "module.attribute-swap.weapon-options.axe.description": "Works while holding an axe.", + "module.attribute-swap.weapon-options.pickaxe": "Pickaxe", + "module.attribute-swap.weapon-options.pickaxe.description": "Works while holding a pickaxe.", + "module.attribute-swap.weapon-options.shovel": "Shovel", + "module.attribute-swap.weapon-options.shovel.description": "Works while holding a shovel.", + "module.attribute-swap.weapon-options.hoe": "Hoe", + "module.attribute-swap.weapon-options.hoe.description": "Works while holding a hoe.", + "module.attribute-swap.weapon-options.mace": "Mace", + "module.attribute-swap.weapon-options.mace.description": "Works while holding a mace.", + "module.attribute-swap.weapon-options.trident": "Trident", + "module.attribute-swap.weapon-options.trident.description": "Works while holding a trident.", + + "module.echest-farmer": "Echest Farmer", + "module.echest-farmer.description": "Places and breaks EChests to farm obsidian.", + "module.echest-farmer.general.self-toggle": "Self Toggle", + "module.echest-farmer.general.self-toggle.description": "Disables when you reach the desired amount of obsidian.", + "module.echest-farmer.general.ignore-existing": "Ignore Existing", + "module.echest-farmer.general.ignore-existing.description": "Ignores existing obsidian in your inventory and mines the total target amount.", + "module.echest-farmer.general.amount": "Amount", + "module.echest-farmer.general.amount.description": "The amount of obsidian to farm.", + "module.echest-farmer.render.swing-hand": "Swing Hand", + "module.echest-farmer.render.swing-hand.description": "Swing hand client-side.", + "module.echest-farmer.render.render": "Render", + "module.echest-farmer.render.render.description": "Renders a block overlay where the obsidian will be placed.", + "module.echest-farmer.render.shape-mode": "Shape Mode", + "module.echest-farmer.render.shape-mode.description": "How the shapes are rendered.", + "module.echest-farmer.render.side-color": "Side Color", + "module.echest-farmer.render.side-color.description": "The color of the sides of the blocks being rendered.", + "module.echest-farmer.render.line-color": "Line Color", + "module.echest-farmer.render.line-color.description": "The color of the lines of the blocks being rendered.", + + "module.self-anvil": "Self Anvil", + "module.self-anvil.description": "Automatically places an anvil on you to prevent other players from going into your hole.", + + "module.flamethrower": "Flamethrower", + "module.flamethrower.description": "Ignites every alive piece of food.", + "module.flamethrower.general.distance": "Distance", + "module.flamethrower.general.distance.description": "The maximum distance the animal has to be to be roasted.", + "module.flamethrower.general.anti-break": "Anti Break", + "module.flamethrower.general.anti-break.description": "Prevents flint and steel from being broken.", + "module.flamethrower.general.put-out-fire": "Put Out Fire", + "module.flamethrower.general.put-out-fire.description": "Tries to put out the fire when animal is low health, so the items don't burn.", + "module.flamethrower.general.target-babies": "Target Babies", + "module.flamethrower.general.target-babies.description": "If checked babies will also be killed.", + "module.flamethrower.general.tick-interval": "Tick Interval", + "module.flamethrower.general.rotate": "Rotate", + "module.flamethrower.general.rotate.description": "Automatically faces towards the animal roasted.", + "module.flamethrower.general.entities": "Entities", + "module.flamethrower.general.entities.description": "Entities to cook.", + + "module.anti-bed": "Anti Bed", + "module.anti-bed.description": "Places string to prevent beds being placed on you.", + "module.anti-bed.general.place-string-top": "Place String Top", + "module.anti-bed.general.place-string-top.description": "Places string above you.", + "module.anti-bed.general.place-string-middle": "Place String Middle", + "module.anti-bed.general.place-string-middle.description": "Places string in your upper hitbox.", + "module.anti-bed.general.place-string-bottom": "Place String Bottom", + "module.anti-bed.general.place-string-bottom.description": "Places string at your feet.", + "module.anti-bed.general.only-in-hole": "Only In Hole", + "module.anti-bed.general.only-in-hole.description": "Only functions when you are standing in a hole.", + + "module.auto-mend": "Auto Mend", + "module.auto-mend.description": "Automatically replaces items in your offhand with mending when fully repaired.", + "module.auto-mend.general.blacklist": "Blacklist", + "module.auto-mend.general.blacklist.description": "Item blacklist.", + "module.auto-mend.general.force": "Force", + "module.auto-mend.general.force.description": "Replaces item in offhand even if there is some other non-repairable item.", + "module.auto-mend.general.auto-disable": "Auto Disable", + "module.auto-mend.general.auto-disable.description": "Automatically disables when there are no more items to repair.", + + "module.auto-anvil": "Auto Anvil", + "module.auto-anvil.description": "Automatically places anvils above players to destroy helmets.", + "module.auto-anvil.general.target-range": "Target Range", + "module.auto-anvil.general.target-range.description": "The radius in which players get targeted.", + "module.auto-anvil.general.target-priority": "Target Priority", + "module.auto-anvil.general.target-priority.description": "How to select the player to target.", + "module.auto-anvil.general.height": "Height", + "module.auto-anvil.general.height.description": "The height to place anvils at.", + "module.auto-anvil.general.delay": "Delay", + "module.auto-anvil.general.delay.description": "The delay in between anvil placements.", + "module.auto-anvil.general.place-at-feet": "Place At Feet", + "module.auto-anvil.general.place-at-feet.description": "Automatically places a button or pressure plate at the targets feet to break the anvils.", + "module.auto-anvil.general.multi-place": "Multi Place", + "module.auto-anvil.general.multi-place.description": "Places multiple anvils at once.", + "module.auto-anvil.general.toggle-on-break": "Toggle On Break", + "module.auto-anvil.general.toggle-on-break.description": "Toggles when the target's helmet slot is empty.", + "module.auto-anvil.general.rotate": "Rotate", + "module.auto-anvil.general.rotate.description": "Automatically rotates towards the position anvils/pressure plates/buttons are placed.", + + "module.burrow": "Burrow", + "module.burrow.description": "Attempts to clip you into a block.", + "module.burrow.general.block-to-use": "Block To Use", + "module.burrow.general.block-to-use.description": "The block to use for Burrow.", + "module.burrow.general.instant": "Instant", + "module.burrow.general.instant.description": "Jumps with packets rather than vanilla jump.", + "module.burrow.general.automatic": "Automatic", + "module.burrow.general.automatic.description": "Automatically burrows on activate rather than waiting for jump.", + "module.burrow.general.trigger-height": "Trigger Height", + "module.burrow.general.trigger-height.description": "How high you have to jump before a rubberband is triggered.", + "module.burrow.general.rubberband-height": "Rubberband Height", + "module.burrow.general.rubberband-height.description": "How far to attempt to cause rubberband.", + "module.burrow.general.timer": "Timer", + "module.burrow.general.timer.description": "Timer override.", + "module.burrow.general.only-in-holes": "Only In Holes", + "module.burrow.general.only-in-holes.description": "Stops you from burrowing when not in a hole.", + "module.burrow.general.center": "Center", + "module.burrow.general.center.description": "Centers you to the middle of the block before burrowing.", + "module.burrow.general.rotate": "Rotate", + "module.burrow.general.rotate.description": "Faces the block you place server-side.", + + "module.auto-sign": "Auto Sign", + "module.auto-sign.description": "Automatically writes signs. The first sign's text will be used.", + "module.auto-sign.general.delay": "Delay", + "module.auto-sign.general.delay.description": "The tick delay between sign update packets.", + + "module.swarm": "Swarm", + "module.swarm.description": "Allows you to control multiple instances of Meteor from one central host.", + "module.swarm.general.mode": "Mode", + "module.swarm.general.mode.description": "What type of client to run.", + "module.swarm.general.ip": "Ip", + "module.swarm.general.ip.description": "The IP address of the host server.", + "module.swarm.general.port": "Port", + "module.swarm.general.port.description": "The port used for connections.", + + "module.auto-reconnect": "Auto Reconnect", + "module.auto-reconnect.description": "Automatically reconnects when disconnected from a server.", + "module.auto-reconnect.general.delay": "Delay", + "module.auto-reconnect.general.delay.description": "The amount of seconds to wait before reconnecting to the server.", + "module.auto-reconnect.general.hide-buttons": "Hide Buttons", + "module.auto-reconnect.general.hide-buttons.description": "Will hide the buttons related to Auto Reconnect.", + + "module.build-height": "Build Height", + "module.build-height.description": "Allows you to interact with objects at the build limit.", + + "module.time-changer": "Time Changer", + "module.time-changer.description": "Makes you able to set a custom time.", + "module.time-changer.general.time": "Time", + "module.time-changer.general.time.description": "The specified time to be set.", + + "module.hole-esp": "Hole Esp", + "module.hole-esp.description": "Displays holes that you will take less damage in.", + "module.hole-esp.general.horizontal-radius": "Horizontal Radius", + "module.hole-esp.general.horizontal-radius.description": "Horizontal radius in which to search for holes.", + "module.hole-esp.general.vertical-radius": "Vertical Radius", + "module.hole-esp.general.vertical-radius.description": "Vertical radius in which to search for holes.", + "module.hole-esp.general.min-height": "Min Height", + "module.hole-esp.general.min-height.description": "Minimum hole height required to be rendered.", + "module.hole-esp.general.doubles": "Doubles", + "module.hole-esp.general.doubles.description": "Highlights double holes that can be stood across.", + "module.hole-esp.general.ignore-own": "Ignore Own", + "module.hole-esp.general.ignore-own.description": "Ignores rendering the hole you are currently standing in.", + "module.hole-esp.general.webs": "Webs", + "module.hole-esp.general.webs.description": "Whether to show holes that have webs inside of them.", + "module.hole-esp.render.shape-mode": "Shape Mode", + "module.hole-esp.render.shape-mode.description": "How the shapes are rendered.", + "module.hole-esp.render.height": "Height", + "module.hole-esp.render.height.description": "The height of rendering.", + "module.hole-esp.render.top-quad": "Top Quad", + "module.hole-esp.render.top-quad.description": "Whether to render a quad at the top of the hole.", + "module.hole-esp.render.bottom-quad": "Bottom Quad", + "module.hole-esp.render.bottom-quad.description": "Whether to render a quad at the bottom of the hole.", + "module.hole-esp.render.bedrock-top": "Bedrock Top", + "module.hole-esp.render.bedrock-top.description": "The top color for holes that are completely bedrock.", + "module.hole-esp.render.bedrock-bottom": "Bedrock Bottom", + "module.hole-esp.render.bedrock-bottom.description": "The bottom color for holes that are completely bedrock.", + "module.hole-esp.render.obsidian-top": "Obsidian Top", + "module.hole-esp.render.obsidian-top.description": "The top color for holes that are completely obsidian.", + "module.hole-esp.render.obsidian-bottom": "Obsidian Bottom", + "module.hole-esp.render.obsidian-bottom.description": "The bottom color for holes that are completely obsidian.", + "module.hole-esp.render.mixed-top": "Mixed Top", + "module.hole-esp.render.mixed-top.description": "The top color for holes that have mixed bedrock and obsidian.", + "module.hole-esp.render.mixed-bottom": "Mixed Bottom", + "module.hole-esp.render.mixed-bottom.description": "The bottom color for holes that have mixed bedrock and obsidian.", + + "module.city-esp": "City Esp", + "module.city-esp.description": "Displays blocks that can be broken in order to city another player.", + "module.city-esp.render.shape-mode": "Shape Mode", + "module.city-esp.render.shape-mode.description": "How the shapes are rendered.", + "module.city-esp.render.side-color": "Side Color", + "module.city-esp.render.side-color.description": "The side color of the rendering.", + "module.city-esp.render.line-color": "Line Color", + "module.city-esp.render.line-color.description": "The line color of the rendering.", + + "module.anti-afk": "Anti Afk", + "module.anti-afk.description": "Performs different actions to prevent getting kicked while AFK.", + "module.anti-afk.actions.jump": "Jump", + "module.anti-afk.actions.jump.description": "Jump randomly.", + "module.anti-afk.actions.swing": "Swing", + "module.anti-afk.actions.swing.description": "Swings your hand.", + "module.anti-afk.actions.sneak": "Sneak", + "module.anti-afk.actions.sneak.description": "Sneaks and unsneaks quickly.", + "module.anti-afk.actions.sneak-time": "Sneak Time", + "module.anti-afk.actions.sneak-time.description": "How many ticks to stay sneaked.", + "module.anti-afk.actions.strafe": "Strafe", + "module.anti-afk.actions.strafe.description": "Strafe right and left.", + "module.anti-afk.actions.spin": "Spin", + "module.anti-afk.actions.spin.description": "Spins the player in place.", + "module.anti-afk.actions.spin-mode": "Spin Mode", + "module.anti-afk.actions.spin-mode.description": "The method of rotating.", + "module.anti-afk.actions.speed": "Speed", + "module.anti-afk.actions.speed.description": "The speed to spin you.", + "module.anti-afk.actions.pitch": "Pitch", + "module.anti-afk.actions.pitch.description": "The pitch to send to the server.", + "module.anti-afk.messages.send-messages": "Send Messages", + "module.anti-afk.messages.send-messages.description": "Sends messages to prevent getting kicked for AFK.", + "module.anti-afk.messages.random": "Random", + "module.anti-afk.messages.random.description": "Selects a random message from your message list.", + "module.anti-afk.messages.delay": "Delay", + "module.anti-afk.messages.delay.description": "The delay between specified messages in seconds.", + "module.anti-afk.messages.messages": "Messages", + "module.anti-afk.messages.messages.description": "The messages to choose from.", + + "module.gui-move": "Gui Move", + "module.gui-move.description": "Allows you to perform various actions while in GUIs.", + "module.gui-move.general.guis": "Guis", + "module.gui-move.general.guis.description": "Which GUIs to move in.", + "module.gui-move.general.jump": "Jump", + "module.gui-move.general.jump.description": "Allows you to jump while in GUIs.", + "module.gui-move.general.sneak": "Sneak", + "module.gui-move.general.sneak.description": "Allows you to sneak while in GUIs.", + "module.gui-move.general.sprint": "Sprint", + "module.gui-move.general.sprint.description": "Allows you to sprint while in GUIs.", + "module.gui-move.general.arrows-rotate": "Arrows Rotate", + "module.gui-move.general.arrows-rotate.description": "Allows you to use your arrow keys to rotate while in GUIs.", + "module.gui-move.general.rotate-speed": "Rotate Speed", + "module.gui-move.general.rotate-speed.description": "Rotation speed while in GUIs.", + + "module.trident-boost": "Trident Boost", + "module.trident-boost.description": "Boosts you when using riptide with a trident.", + "module.trident-boost.general.boost": "Boost", + "module.trident-boost.general.boost.description": "How much your velocity is multiplied by when using riptide.", + "module.trident-boost.general.out-of-water": "Out Of Water", + "module.trident-boost.general.out-of-water.description": "Whether riptide should work out of water", + + "module.better-tab": "Better Tab", + "module.better-tab.description": "Various improvements to the tab list.", + "module.better-tab.general.tablist-size": "Tablist Size", + "module.better-tab.general.tablist-size.description": "How many players in total to display in the tablist.", + "module.better-tab.general.column-height": "Column Height", + "module.better-tab.general.column-height.description": "How many players to display in each column.", + "module.better-tab.general.highlight-self": "Highlight Self", + "module.better-tab.general.highlight-self.description": "Highlights yourself in the tablist.", + "module.better-tab.general.self-color": "Self Color", + "module.better-tab.general.self-color.description": "The color to highlight your name with.", + "module.better-tab.general.highlight-friends": "Highlight Friends", + "module.better-tab.general.highlight-friends.description": "Highlights friends in the tablist.", + "module.better-tab.general.accurate-latency": "Accurate Latency", + "module.better-tab.general.accurate-latency.description": "Shows latency as a number in the tablist.", + "module.better-tab.general.gamemode": "Gamemode", + "module.better-tab.general.gamemode.description": "Display gamemode next to the nick.", + + "module.mount-bypass": "Mount Bypass", + "module.mount-bypass.description": "Allows you to bypass the IllegalStacks plugin and put chests on entities.", + + "module.anti-packet-kick": "Anti Packet Kick", + "module.anti-packet-kick.description": "Attempts to prevent you from being disconnected by large packets.", + "module.anti-packet-kick.general.catch-exceptions": "Catch Exceptions", + "module.anti-packet-kick.general.catch-exceptions.description": "Drops corrupted packets.", + "module.anti-packet-kick.general.log-exceptions": "Log Exceptions", + "module.anti-packet-kick.general.log-exceptions.description": "Logs caught exceptions.", + + "module.light-overlay": "Light Overlay", + "module.light-overlay.description": "Shows blocks where mobs can spawn.", + "module.light-overlay.general.horizontal-range": "Horizontal Range", + "module.light-overlay.general.horizontal-range.description": "Horizontal range in blocks.", + "module.light-overlay.general.vertical-range": "Vertical Range", + "module.light-overlay.general.vertical-range.description": "Vertical range in blocks.", + "module.light-overlay.general.see-through-blocks": "See Through Blocks", + "module.light-overlay.general.see-through-blocks.description": "Allows you to see the lines through blocks.", + "module.light-overlay.general.light-level": "Light Level", + "module.light-overlay.general.light-level.description": "Which light levels to render. Old spawning light: 7.", + "module.light-overlay.colors.color": "Color", + "module.light-overlay.colors.color.description": "Color of places where mobs can currently spawn.", + "module.light-overlay.colors.potential-color": "Potential Color", + "module.light-overlay.colors.potential-color.description": "Color of places where mobs can potentially spawn (eg at night).", + + "module.hole-filler": "Hole Filler", + "module.hole-filler.description": "Fills holes with specified blocks.", + "module.hole-filler.general.blocks": "Blocks", + "module.hole-filler.general.blocks.description": "Which blocks can be used to fill holes.", + "module.hole-filler.general.search-radius": "Search Radius", + "module.hole-filler.general.search-radius.description": "Horizontal radius in which to search for holes.", + "module.hole-filler.general.place-range": "Place Range", + "module.hole-filler.general.place-range.description": "How far away from the player you can place a block.", + "module.hole-filler.general.walls-range": "Walls Range", + "module.hole-filler.general.walls-range.description": "How far away from the player you can place a block behind walls.", + "module.hole-filler.general.doubles": "Doubles", + "module.hole-filler.general.doubles.description": "Fills double holes.", + "module.hole-filler.general.rotate": "Rotate", + "module.hole-filler.general.rotate.description": "Automatically rotates towards the holes being filled.", + "module.hole-filler.general.place-delay": "Place Delay", + "module.hole-filler.general.place-delay.description": "The ticks delay between placement.", + "module.hole-filler.general.blocks-per-tick": "Blocks Per Tick", + "module.hole-filler.general.blocks-per-tick.description": "How many blocks to place in one tick.", + "module.hole-filler.smart.smart": "Smart", + "module.hole-filler.smart.smart.description": "Take more factors into account before filling a hole.", + "module.hole-filler.smart.force-fill": "Force Fill", + "module.hole-filler.smart.force-fill.description": "Fills all holes around you regardless of target checks.", + "module.hole-filler.smart.predict-movement": "Predict Movement", + "module.hole-filler.smart.predict-movement.description": "Predict target movement to account for ping.", + "module.hole-filler.smart.ticks-to-predict": "Ticks To Predict", + "module.hole-filler.smart.ticks-to-predict.description": "How many ticks ahead we should predict for.", + "module.hole-filler.smart.ignore-safe": "Ignore Safe", + "module.hole-filler.smart.ignore-safe.description": "Ignore players in safe holes.", + "module.hole-filler.smart.only-moving": "Only Moving", + "module.hole-filler.smart.only-moving.description": "Ignore players if they're standing still.", + "module.hole-filler.smart.target-range": "Target Range", + "module.hole-filler.smart.target-range.description": "How far away to target players.", + "module.hole-filler.smart.feet-range": "Feet Range", + "module.hole-filler.smart.feet-range.description": "How far from a hole a player's feet must be to fill it.", + "module.hole-filler.render.swing": "Swing", + "module.hole-filler.render.swing.description": "Swing the player's hand when placing.", + "module.hole-filler.render.render": "Render", + "module.hole-filler.render.render.description": "Renders an overlay where blocks will be placed.", + "module.hole-filler.render.shape-mode": "Shape Mode", + "module.hole-filler.render.shape-mode.description": "How the shapes are rendered.", + "module.hole-filler.render.side-color": "Side Color", + "module.hole-filler.render.side-color.description": "The side color of the target block rendering.", + "module.hole-filler.render.line-color": "Line Color", + "module.hole-filler.render.line-color.description": "The line color of the target block rendering.", + "module.hole-filler.render.next-side-color": "Next Side Color", + "module.hole-filler.render.next-side-color.description": "The side color of the next block to be placed.", + "module.hole-filler.render.next-line-color": "Next Line Color", + "module.hole-filler.render.next-line-color.description": "The line color of the next block to be placed.", + + "module.message-aura": "Message Aura", + "module.message-aura.description": "Sends a specified message to any player that enters render distance.", + "module.message-aura.general.message": "Message", + "module.message-aura.general.message.description": "The specified message sent to the player.", + "module.message-aura.general.ignore-friends": "Ignore Friends", + "module.message-aura.general.ignore-friends.description": "Will not send any messages to people friended.", + + "module.fast-climb": "Fast Climb", + "module.fast-climb.description": "Allows you to climb faster.", + "module.fast-climb.general.timer-mode": "Timer Mode", + "module.fast-climb.general.timer-mode.description": "Use timer.", + "module.fast-climb.general.climb-speed": "Climb Speed", + "module.fast-climb.general.climb-speed.description": "Your climb speed.", + "module.fast-climb.general.timer": "Timer", + "module.fast-climb.general.timer.description": "The timer value for Timer.", + + "module.sprint": "Sprint", + "module.sprint.description": "Automatically sprints.", + "module.sprint.general.sprint-mode": "Sprint Mode", + "module.sprint.general.sprint-mode.description": "What mode of sprinting.", + "module.sprint.general.keep-sprint": "Keep Sprint", + "module.sprint.general.keep-sprint.description": "Whether to keep sprinting after attacking.", + "module.sprint.general.unsprint-on-hit": "Unsprint On Hit", + "module.sprint.general.unsprint-on-hit.description": "Whether to stop sprinting before attacking, to ensure you get crits and sweep attacks.", + "module.sprint.general.unsprint-in-water": "Unsprint In Water", + "module.sprint.general.unsprint-in-water.description": "Whether to stop sprinting when in water.", + "module.sprint.general.sprint-while-stationary": "Sprint While Stationary", + "module.sprint.general.sprint-while-stationary.description": "Sprint even when not moving.", + + "module.xray": "Xray", + "module.xray.description": "Only renders specified blocks. Good for mining.", + "module.xray.general.whitelist": "Whitelist", + "module.xray.general.whitelist.description": "Which blocks to show x-rayed.", + "module.xray.general.opacity": "Opacity", + "module.xray.general.opacity.description": "The opacity for all other blocks.", + "module.xray.general.exposed-only": "Exposed Only", + "module.xray.general.exposed-only.description": "Show only exposed ores.", + + "module.notebot": "Notebot", + "module.notebot.description": "Plays noteblock nicely", + "module.notebot.general.tick-delay": "Tick Delay", + "module.notebot.general.tick-delay.description": "The delay when loading a song.", + "module.notebot.general.concurrent-tune-blocks": "Concurrent Tune Blocks", + "module.notebot.general.concurrent-tune-blocks.description": "How many noteblocks can be tuned at the same time. On Paper it is recommended to set it to 1 to avoid bugs.", + "module.notebot.general.mode": "Mode", + "module.notebot.general.mode.description": "Select mode of notebot", + "module.notebot.general.instrument-detect-mode": "Instrument Detect Mode", + "module.notebot.general.instrument-detect-mode.description": "Select an instrument detect mode. Can be useful when server has a plugin that modifies noteblock state (e.g ItemsAdder) but noteblock can still play the right note", + "module.notebot.general.polyphonic": "Polyphonic", + "module.notebot.general.polyphonic.description": "Whether or not to allow multiple notes to be played at the same time", + "module.notebot.general.auto-rotate": "Auto Rotate", + "module.notebot.general.auto-rotate.description": "Should client look at note block when it wants to hit it", + "module.notebot.general.auto-play": "Auto Play", + "module.notebot.general.auto-play.description": "Auto plays random songs", + "module.notebot.general.round-out-of-range": "Round Out Of Range", + "module.notebot.general.round-out-of-range.description": "Rounds out of range notes", + "module.notebot.general.swing-arm": "Swing Arm", + "module.notebot.general.swing-arm.description": "Should swing arm on hit", + "module.notebot.general.check-noteblocks-again-delay": "Check Noteblocks Again Delay", + "module.notebot.general.check-noteblocks-again-delay.description": "How much delay should be between end of tuning and checking again", + "module.notebot.note-map.Harp": "Harp", + "module.notebot.note-map.Basedrum": "Basedrum", + "module.notebot.note-map.Snare": "Snare", + "module.notebot.note-map.Hat": "Hat", + "module.notebot.note-map.Bass": "Bass", + "module.notebot.note-map.Flute": "Flute", + "module.notebot.note-map.Bell": "Bell", + "module.notebot.note-map.Guitar": "Guitar", + "module.notebot.note-map.Chime": "Chime", + "module.notebot.note-map.Xylophone": "Xylophone", + "module.notebot.note-map.IronXylophone": "IronXylophone", + "module.notebot.note-map.CowBell": "CowBell", + "module.notebot.note-map.Didgeridoo": "Didgeridoo", + "module.notebot.note-map.Bit": "Bit", + "module.notebot.note-map.Banjo": "Banjo", + "module.notebot.note-map.Pling": "Pling", + + "module.notebot.render.render-text": "Render Text", + "module.notebot.render.render-text.description": "Whether or not to render the text above noteblocks.", + "module.notebot.render.render-boxes": "Render Boxes", + "module.notebot.render.render-boxes.description": "Whether or not to render the outline around the noteblocks.", + "module.notebot.render.shape-mode": "Shape Mode", + "module.notebot.render.shape-mode.description": "How the shapes are rendered.", + "module.notebot.render.untuned-side-color": "Untuned Side Color", + "module.notebot.render.untuned-side-color.description": "The color of the sides of the untuned blocks being rendered.", + "module.notebot.render.untuned-line-color": "Untuned Line Color", + "module.notebot.render.untuned-line-color.description": "The color of the lines of the untuned blocks being rendered.", + "module.notebot.render.tuned-side-color": "Tuned Side Color", + "module.notebot.render.tuned-side-color.description": "The color of the sides of the tuned blocks being rendered.", + "module.notebot.render.tuned-line-color": "Tuned Line Color", + "module.notebot.render.tuned-line-color.description": "The color of the lines of the tuned blocks being rendered.", + "module.notebot.render.hit-side-color": "Hit Side Color", + "module.notebot.render.hit-side-color.description": "The color of the sides being rendered on noteblock tune hit.", + "module.notebot.render.hit-line-color": "Hit Line Color", + "module.notebot.render.hit-line-color.description": "The color of the lines being rendered on noteblock tune hit.", + "module.notebot.render.scanned-noteblock-side-color": "Scanned Noteblock Side Color", + "module.notebot.render.scanned-noteblock-side-color.description": "The color of the sides of the scanned noteblocks being rendered.", + "module.notebot.render.scanned-noteblock-line-color": "Scanned Noteblock Line Color", + "module.notebot.render.scanned-noteblock-line-color.description": "The color of the lines of the scanned noteblocks being rendered.", + "module.notebot.render.note-text-scale": "Note Text Scale", + "module.notebot.render.note-text-scale.description": "The scale.", + "module.notebot.render.show-scanned-noteblocks": "Show Scanned Noteblocks", + "module.notebot.render.show-scanned-noteblocks.description": "Show scanned Noteblocks", + + "module.item-highlight": "Item Highlight", + "module.item-highlight.description": "Highlights selected items when in guis", + "module.item-highlight.general.items": "Items", + "module.item-highlight.general.items.description": "Items to highlight.", + "module.item-highlight.general.color": "Color", + "module.item-highlight.general.color.description": "The color to highlight the items with.", + + "module.auto-mount": "Auto Mount", + "module.auto-mount.description": "Automatically mounts entities.", + "module.auto-mount.general.check-saddle": "Check Saddle", + "module.auto-mount.general.check-saddle.description": "Checks if the entity contains a saddle before mounting.", + "module.auto-mount.general.rotate": "Rotate", + "module.auto-mount.general.rotate.description": "Faces the entity you mount.", + "module.auto-mount.general.entities": "Entities", + "module.auto-mount.general.entities.description": "Rideable entities.", + + "module.zoom": "Zoom", + "module.zoom.description": "Zooms your view.", + "module.zoom.general.zoom": "Zoom", + "module.zoom.general.zoom.description": "How much to zoom.", + "module.zoom.general.scroll-sensitivity": "Scroll Sensitivity", + "module.zoom.general.scroll-sensitivity.description": "Allows you to change zoom value using scroll wheel. 0 to disable.", + "module.zoom.general.smooth": "Smooth", + "module.zoom.general.smooth.description": "Smooth transition.", + "module.zoom.general.cinematic": "Cinematic", + "module.zoom.general.cinematic.description": "Enables cinematic camera.", + "module.zoom.general.hide-HUD": "Hide HUD", + "module.zoom.general.hide-HUD.description": "Whether or not to hide the Minecraft HUD.", + "module.zoom.general.show-hands": "Show Hands", + "module.zoom.general.show-hands.description": "Whether or not to render your hands.", + + "module.bow-spam": "Bow Spam", + "module.bow-spam.description": "Spams bows and crossbows.", + "module.bow-spam.general.charge": "Charge", + "module.bow-spam.general.charge.description": "How long to charge the bow before releasing in ticks.", + "module.bow-spam.general.when-holding-right-click": "When Holding Right Click", + "module.bow-spam.general.when-holding-right-click.description": "Works only when holding right click.", + "module.bow-spam.crossbows.spam-crossbows": "Spam Crossbows", + "module.bow-spam.crossbows.spam-crossbows.description": "Whether to spam loaded crossbows; takes priority over charging bows.", + "module.bow-spam.crossbows.crossbow-delay": "Crossbow Delay", + "module.bow-spam.crossbows.crossbow-delay.description": "Delay between shooting crossbows in ticks.", + "module.bow-spam.crossbows.search-inventory": "Search Inventory", + "module.bow-spam.crossbows.search-inventory.description": "Whether to search your inventory to find loaded crossbows.", + + "module.free-look": "Free Look", + "module.free-look.description": "Allows more rotation options in third person.", + "module.free-look.general.mode": "Mode", + "module.free-look.general.mode.description": "Which entity to rotate.", + "module.free-look.general.toggle-perspective": "Toggle Perspective", + "module.free-look.general.toggle-perspective.description": "Changes your perspective on toggle.", + "module.free-look.general.camera-sensitivity": "Camera Sensitivity", + "module.free-look.general.camera-sensitivity.description": "How fast the camera moves in camera mode.", + "module.free-look.arrows.arrows-control-opposite": "Arrows Control Opposite", + "module.free-look.arrows.arrows-control-opposite.description": "Allows you to control the other entities rotation with the arrow keys.", + "module.free-look.arrows.arrow-speed": "Arrow Speed", + "module.free-look.arrows.arrow-speed.description": "Rotation speed with arrow keys.", + + "module.auto-walk": "Auto Walk", + "module.auto-walk.description": "Automatically walks forward.", + "module.auto-walk.general.mode": "Mode", + "module.auto-walk.general.mode.description": "Walking mode.", + "module.auto-walk.general.simple-direction": "Simple Direction", + "module.auto-walk.general.simple-direction.description": "The direction to walk in simple mode.", + "module.auto-walk.general.disable-on-input": "Disable On Input", + "module.auto-walk.general.disable-on-input.description": "Disable module on manual movement input", + "module.auto-walk.general.disable-on-y-change": "Disable On Y Change", + "module.auto-walk.general.disable-on-y-change.description": "Disable module if player moves vertically", + "module.auto-walk.general.no-unloaded-chunks": "No Unloaded Chunks", + "module.auto-walk.general.no-unloaded-chunks.description": "Do not allow movement into unloaded chunks", + + "module.self-trap": "Self Trap", + "module.self-trap.description": "Places blocks above your head.", + "module.self-trap.general.whitelist": "Whitelist", + "module.self-trap.general.whitelist.description": "Which blocks to use.", + "module.self-trap.general.top-mode": "Top Mode", + "module.self-trap.general.top-mode.description": "Which positions to place on your top half.", + "module.self-trap.general.bottom-mode": "Bottom Mode", + "module.self-trap.general.bottom-mode.description": "Which positions to place on your bottom half.", + "module.self-trap.general.place-delay": "Place Delay", + "module.self-trap.general.place-delay.description": "How many ticks between block placements.", + "module.self-trap.general.center": "Center", + "module.self-trap.general.center.description": "Centers you on the block you are standing on before placing.", + "module.self-trap.general.turn-off": "Turn Off", + "module.self-trap.general.turn-off.description": "Turns off after placing.", + "module.self-trap.general.rotate": "Rotate", + "module.self-trap.general.rotate.description": "Sends rotation packets to the server when placing.", + "module.self-trap.render.render": "Render", + "module.self-trap.render.render.description": "Renders a block overlay where the blocks will be placed.", + "module.self-trap.render.shape-mode": "Shape Mode", + "module.self-trap.render.shape-mode.description": "How the shapes are rendered.", + "module.self-trap.render.side-color": "Side Color", + "module.self-trap.render.side-color.description": "The color of the sides of the blocks being rendered.", + "module.self-trap.render.line-color": "Line Color", + "module.self-trap.render.line-color.description": "The color of the lines of the blocks being rendered.", + + "module.safe-walk": "Safe Walk", + "module.safe-walk.description": "Prevents you from walking off blocks.", + "module.safe-walk.general.minimum-fall-distance": "Minimum Fall Distance", + "module.safe-walk.general.minimum-fall-distance.description": "The minimum number of blocks you are expected to fall before the module activates.", + "module.safe-walk.general.sneak": "Sneak", + "module.safe-walk.general.sneak.description": "Sneak when approaching edge of block.", + "module.safe-walk.general.safe-sneak": "Safe Sneak", + "module.safe-walk.general.safe-sneak.description": "Prevent you from falling if sneak doesn't trigger correctly.", + "module.safe-walk.general.sneak-on-sprint": "Sneak On Sprint", + "module.safe-walk.general.sneak-on-sprint.description": "Sneak even when sprinting at the block edge.", + "module.safe-walk.general.edge-distance": "Edge Distance", + "module.safe-walk.general.edge-distance.description": "Distance offset before reaching an edge.", + "module.safe-walk.render.render": "Render", + "module.safe-walk.render.render.description": "Render edge distance helper.", + "module.safe-walk.render.render-player-box": "Render Player Box", + "module.safe-walk.render.render-player-box.description": "Render player box helper.", + + "module.auto-wasp": "Auto Wasp", + "module.auto-wasp.description": "Wasps for you. Unable to traverse around blocks, assumes a clear straight line to the target.", + "module.auto-wasp.general.horizontal-speed": "Horizontal Speed", + "module.auto-wasp.general.horizontal-speed.description": "Horizontal elytra speed.", + "module.auto-wasp.general.vertical-speed": "Vertical Speed", + "module.auto-wasp.general.vertical-speed.description": "Vertical elytra speed.", + "module.auto-wasp.general.avoid-landing": "Avoid Landing", + "module.auto-wasp.general.avoid-landing.description": "Will try to avoid landing if your target is on the ground.", + "module.auto-wasp.general.predict-movement": "Predict Movement", + "module.auto-wasp.general.predict-movement.description": "Tries to predict the targets position according to their movement.", + "module.auto-wasp.general.only-friends": "Only Friends", + "module.auto-wasp.general.only-friends.description": "Will only follow friends.", + "module.auto-wasp.general.action-on-target-loss": "Action On Target Loss", + "module.auto-wasp.general.action-on-target-loss.description": "What to do if you lose the target.", + "module.auto-wasp.general.offset": "Offset", + "module.auto-wasp.general.offset.description": "How many blocks offset to wasp at from the target.", + + "module.break-delay": "Break Delay", + "module.break-delay.description": "Changes the delay between breaking blocks.", + "module.break-delay.general.cooldown": "Cooldown", + "module.break-delay.general.cooldown.description": "Block break cooldown in ticks.", + "module.break-delay.general.no-insta-break": "No Insta Break", + "module.break-delay.general.no-insta-break.description": "Prevents you from misbreaking blocks if you can instantly break them.", + + "module.auto-armor": "Auto Armor", + "module.auto-armor.description": "Automatically equips armor.", + "module.auto-armor.general.preferred-protection": "Preferred Protection", + "module.auto-armor.general.preferred-protection.description": "Which type of protection to prefer.", + "module.auto-armor.general.swap-delay": "Swap Delay", + "module.auto-armor.general.swap-delay.description": "The delay between equipping armor pieces.", + "module.auto-armor.general.avoided-enchantments": "Avoided Enchantments", + "module.auto-armor.general.avoided-enchantments.description": "Enchantments that should be avoided.", + "module.auto-armor.general.blast-prot-leggings": "Blast Prot Leggings", + "module.auto-armor.general.blast-prot-leggings.description": "Uses blast protection for leggings regardless of preferred protection.", + "module.auto-armor.general.anti-break": "Anti Break", + "module.auto-armor.general.anti-break.description": "Takes off armor if it is about to break.", + "module.auto-armor.general.ignore-elytra": "Ignore Elytra", + "module.auto-armor.general.ignore-elytra.description": "Will not replace your elytra if you have it equipped.", + + "module.pop-chams": "Pop Chams", + "module.pop-chams.description": "Renders a ghost where players pop totem.", + "module.pop-chams.general.only-one": "Only One", + "module.pop-chams.general.only-one.description": "Only allow one ghost per player.", + "module.pop-chams.general.render-time": "Render Time", + "module.pop-chams.general.render-time.description": "How long the ghost is rendered in seconds.", + "module.pop-chams.general.y-modifier": "Y Modifier", + "module.pop-chams.general.y-modifier.description": "How much should the Y position of the ghost change per second.", + "module.pop-chams.general.scale-modifier": "Scale Modifier", + "module.pop-chams.general.scale-modifier.description": "How much should the scale of the ghost change per second.", + "module.pop-chams.general.fade-out": "Fade Out", + "module.pop-chams.general.fade-out.description": "Fades out the color.", + "module.pop-chams.general.shape-mode": "Shape Mode", + "module.pop-chams.general.shape-mode.description": "How the shapes are rendered.", + "module.pop-chams.general.side-color": "Side Color", + "module.pop-chams.general.side-color.description": "The side color.", + "module.pop-chams.general.line-color": "Line Color", + "module.pop-chams.general.line-color.description": "The line color.", + + "module.ghost-hand": "Ghost Hand", + "module.ghost-hand.description": "Opens containers through walls.", + + "module.slippy": "Slippy", + "module.slippy.description": "Changes the base friction level of blocks.", + "module.slippy.general.friction": "Friction", + "module.slippy.general.friction.description": "The base friction level.", + "module.slippy.general.list-mode": "List Mode", + "module.slippy.general.list-mode.description": "The mode to select blocks.", + "module.slippy.general.ignored-blocks": "Ignored Blocks", + "module.slippy.general.ignored-blocks.description": "Decide which blocks not to slip on", + "module.slippy.general.allowed-blocks": "Allowed Blocks", + "module.slippy.general.allowed-blocks.description": "Decide which blocks to slip on", + + "module.auto-tool": "Auto Tool", + "module.auto-tool.description": "Automatically switches to the most effective tool when performing an action.", + "module.auto-tool.general.prefer": "Prefer", + "module.auto-tool.general.prefer.description": "Either to prefer Silk Touch, Fortune, or none.", + "module.auto-tool.general.silk-touch-for-ender-chest": "Silk Touch For Ender Chest", + "module.auto-tool.general.silk-touch-for-ender-chest.description": "Mines Ender Chests only with the Silk Touch enchantment.", + "module.auto-tool.general.fortune-for-ores-and-crops": "Fortune For Ores And Crops", + "module.auto-tool.general.fortune-for-ores-and-crops.description": "Mines Ores and crops only with the Fortune enchantment.", + "module.auto-tool.general.anti-break": "Anti Break", + "module.auto-tool.general.anti-break.description": "Stops you from breaking your tool.", + "module.auto-tool.general.anti-break-percentage": "Anti Break Percentage", + "module.auto-tool.general.anti-break-percentage.description": "The durability percentage to stop using a tool.", + "module.auto-tool.general.switch-back": "Switch Back", + "module.auto-tool.general.switch-back.description": "Switches your hand to whatever was selected when releasing your attack key.", + "module.auto-tool.general.switch-delay": "Switch Delay", + "module.auto-tool.general.switch-delay.description": "Delay in ticks before switching tools.", + "module.auto-tool.whitelist.list-mode": "List Mode", + "module.auto-tool.whitelist.list-mode.description": "Selection mode.", + "module.auto-tool.whitelist.whitelist": "Whitelist", + "module.auto-tool.whitelist.whitelist.description": "The tools you want to use.", + "module.auto-tool.whitelist.blacklist": "Blacklist", + "module.auto-tool.whitelist.blacklist.description": "The tools you don't want to use.", + + "module.anti-hunger": "Anti Hunger", + "module.anti-hunger.description": "Reduces (does NOT remove) hunger consumption.", + "module.anti-hunger.general.sprint": "Sprint", + "module.anti-hunger.general.sprint.description": "Spoofs sprinting packets.", + "module.anti-hunger.general.on-ground": "On Ground", + "module.anti-hunger.general.on-ground.description": "Spoofs the onGround flag.", + + "module.auto-clicker": "Auto Clicker", + "module.auto-clicker.description": "Automatically clicks.", + "module.auto-clicker.general.while-in-screens": "While In Screens", + "module.auto-clicker.general.while-in-screens.description": "Whether to click while a screen is open.", + "module.auto-clicker.general.mode-left": "Mode Left", + "module.auto-clicker.general.mode-left.description": "The method of clicking for left clicks.", + "module.auto-clicker.general.delay-left": "Delay Left", + "module.auto-clicker.general.delay-left.description": "The amount of delay between left clicks in ticks.", + "module.auto-clicker.general.mode-right": "Mode Right", + "module.auto-clicker.general.mode-right.description": "The method of clicking for right clicks.", + "module.auto-clicker.general.delay-right": "Delay Right", + "module.auto-clicker.general.delay-right.description": "The amount of delay between right clicks in ticks.", + + "module.auto-shearer": "Auto Shearer", + "module.auto-shearer.description": "Automatically shears sheep.", + "module.auto-shearer.general.distance": "Distance", + "module.auto-shearer.general.distance.description": "The maximum distance the sheep have to be to be sheared.", + "module.auto-shearer.general.anti-break": "Anti Break", + "module.auto-shearer.general.anti-break.description": "Prevents shears from being broken.", + "module.auto-shearer.general.rotate": "Rotate", + "module.auto-shearer.general.rotate.description": "Automatically faces towards the animal being sheared.", + + "module.boss-stack": "Boss Stack", + "module.boss-stack.description": "Stacks boss bars to make your HUD less cluttered.", + "module.boss-stack.general.stack": "Stack", + "module.boss-stack.general.stack.description": "Stacks boss bars and adds a counter to the text.", + "module.boss-stack.general.hide-name": "Hide Name", + "module.boss-stack.general.hide-name.description": "Hides the names of boss bars.", + "module.boss-stack.general.bar-spacing": "Bar Spacing", + "module.boss-stack.general.bar-spacing.description": "The spacing reduction between each boss bar.", + + "module.camera-tweaks": "Camera Tweaks", + "module.camera-tweaks.description": "Allows modification of the third person camera.", + "module.camera-tweaks.general.clip": "Clip", + "module.camera-tweaks.general.clip.description": "Allows the camera to clip through blocks.", + "module.camera-tweaks.general.camera-distance": "Camera Distance", + "module.camera-tweaks.general.camera-distance.description": "The distance the third person camera is from the player.", + "module.camera-tweaks.scrolling.scrolling": "Scrolling", + "module.camera-tweaks.scrolling.scrolling.description": "Allows you to scroll to change camera distance.", + "module.camera-tweaks.scrolling.bind": "Bind", + "module.camera-tweaks.scrolling.bind.description": "Binds camera distance scrolling to a key.", + "module.camera-tweaks.scrolling.sensitivity": "Sensitivity", + "module.camera-tweaks.scrolling.sensitivity.description": "Sensitivity of the scroll wheel when changing the cameras distance.", + + "module.auto-weapon": "Auto Weapon", + "module.auto-weapon.description": "Finds the best weapon to use in your hotbar.", + "module.auto-weapon.general.weapon": "Weapon", + "module.auto-weapon.general.weapon.description": "What type of weapon to use.", + "module.auto-weapon.general.threshold": "Threshold", + "module.auto-weapon.general.threshold.description": "If the non-preferred weapon produces this much damage this will favor it over your preferred weapon.", + "module.auto-weapon.general.anti-break": "Anti Break", + "module.auto-weapon.general.anti-break.description": "Prevents you from breaking your weapon.", + + "module.better-chat": "Better Chat", + "module.better-chat.description": "Improves your chat experience in various ways.", + "module.better-chat.general.annoy": "Annoy", + "module.better-chat.general.annoy.description": "Makes your messages aNnOyInG.", + "module.better-chat.general.fancy-chat": "Fancy Chat", + "module.better-chat.general.fancy-chat.description": "Makes your messages ғᴀɴᴄʏ!", + "module.better-chat.general.timestamps": "Timestamps", + "module.better-chat.general.timestamps.description": "Adds client-side time stamps to the beginning of chat messages.", + "module.better-chat.general.show-seconds": "Show Seconds", + "module.better-chat.general.show-seconds.description": "Shows seconds in the chat message timestamps", + "module.better-chat.general.player-heads": "Player Heads", + "module.better-chat.general.player-heads.description": "Displays player heads next to their messages.", + "module.better-chat.general.coords-protection": "Coords Protection", + "module.better-chat.general.coords-protection.description": "Prevents you from sending messages in chat that may contain coordinates.", + "module.better-chat.general.keep-history": "Keep History", + "module.better-chat.general.keep-history.description": "Prevents the chat history from being cleared when disconnecting.", + "module.better-chat.filter.anti-spam": "Anti Spam", + "module.better-chat.filter.anti-spam.description": "Blocks duplicate messages from filling your chat.", + "module.better-chat.filter.depth": "Depth", + "module.better-chat.filter.depth.description": "How many messages to filter.", + "module.better-chat.filter.anti-clear": "Anti Clear", + "module.better-chat.filter.anti-clear.description": "Prevents servers from clearing chat.", + "module.better-chat.filter.filter-regex": "Filter Regex", + "module.better-chat.filter.filter-regex.description": "Filter out chat messages that match the regex filter.", + "module.better-chat.filter.regex-filter": "Regex Filter", + "module.better-chat.filter.regex-filter.description": "Regex filter used for filtering chat messages.", + "module.better-chat.longer-chat.infinite-chat-box": "Infinite Chat Box", + "module.better-chat.longer-chat.infinite-chat-box.description": "Lets you type infinitely long messages.", + "module.better-chat.longer-chat.longer-chat-history": "Longer Chat History", + "module.better-chat.longer-chat.longer-chat-history.description": "Extends chat length.", + "module.better-chat.longer-chat.extra-lines": "Extra Lines", + "module.better-chat.longer-chat.extra-lines.description": "The amount of extra chat lines.", + "module.better-chat.prefix.prefix": "Prefix", + "module.better-chat.prefix.prefix.description": "Adds a prefix to your chat messages.", + "module.better-chat.prefix.random": "Random", + "module.better-chat.prefix.random.description": "Uses a random number as your prefix.", + "module.better-chat.prefix.text": "Text", + "module.better-chat.prefix.text.description": "The text to add as your prefix.", + "module.better-chat.prefix.small-caps": "Small Caps", + "module.better-chat.prefix.small-caps.description": "Uses small caps in the prefix.", + "module.better-chat.suffix.suffix": "Suffix", + "module.better-chat.suffix.suffix.description": "Adds a suffix to your chat messages.", + "module.better-chat.suffix.random": "Random", + "module.better-chat.suffix.random.description": "Uses a random number as your suffix.", + "module.better-chat.suffix.text": "Text", + "module.better-chat.suffix.text.description": "The text to add as your suffix.", + "module.better-chat.suffix.small-caps": "Small Caps", + "module.better-chat.suffix.small-caps.description": "Uses small caps in the suffix.", + + "module.offhand-crash": "Offhand Crash", + "module.offhand-crash.description": "An exploit that can crash other players by swapping back and forth between your main hand and offhand.", + "module.offhand-crash.general.do-crash": "Do Crash", + "module.offhand-crash.general.do-crash.description": "Sends X number of offhand swap sound packets to the server per tick.", + "module.offhand-crash.general.speed": "Speed", + "module.offhand-crash.general.speed.description": "The amount of swaps per tick.", + "module.offhand-crash.general.anti-crash": "Anti Crash", + "module.offhand-crash.general.anti-crash.description": "Attempts to prevent you from crashing yourself.", + + "module.auto-breed": "Auto Breed", + "module.auto-breed.description": "Automatically breeds specified animals.", + "module.auto-breed.general.entities": "Entities", + "module.auto-breed.general.entities.description": "Entities to breed.", + "module.auto-breed.general.range": "Range", + "module.auto-breed.general.range.description": "How far away the animals can be to be bred.", + "module.auto-breed.general.hand-for-breeding": "Hand For Breeding", + "module.auto-breed.general.hand-for-breeding.description": "The hand to use for breeding.", + "module.auto-breed.general.mob-age-filter": "Mob Age Filter", + "module.auto-breed.general.mob-age-filter.description": "Determines the age of the mobs to target (baby, adult, or both).", + + "module.spawn-proofer": "Spawn Proofer", + "module.spawn-proofer.description": "Automatically spawnproofs unlit areas.", + "module.spawn-proofer.general.place-delay": "Place Delay", + "module.spawn-proofer.general.place-delay.description": "The tick delay between placing blocks.", + "module.spawn-proofer.general.place-range": "Place Range", + "module.spawn-proofer.general.place-range.description": "How far away from the player you can place a block.", + "module.spawn-proofer.general.walls-range": "Walls Range", + "module.spawn-proofer.general.walls-range.description": "How far away from the player you can place a block behind walls.", + "module.spawn-proofer.general.blocks-per-tick": "Blocks Per Tick", + "module.spawn-proofer.general.blocks-per-tick.description": "How many blocks to place in one tick.", + "module.spawn-proofer.general.light-level": "Light Level", + "module.spawn-proofer.general.light-level.description": "Light levels to spawn proof. Old spawning light: 7.", + "module.spawn-proofer.general.blocks": "Blocks", + "module.spawn-proofer.general.blocks.description": "Block to use for spawn proofing.", + "module.spawn-proofer.general.mode": "Mode", + "module.spawn-proofer.general.mode.description": "Which spawn types should be spawn proofed.", + "module.spawn-proofer.general.rotate": "Rotate", + "module.spawn-proofer.general.rotate.description": "Rotates towards the blocks being placed.", + + "module.step": "Step", + "module.step.description": "Allows you to walk up full blocks instantly.", + "module.step.general.height": "Height", + "module.step.general.height.description": "Step height.", + "module.step.general.active-when": "Active When", + "module.step.general.active-when.description": "Step is active when you meet these requirements.", + "module.step.general.safe-step": "Safe Step", + "module.step.general.safe-step.description": "Doesn't let you step out of a hole if you are low on health or there is a crystal nearby.", + "module.step.general.step-health": "Step Health", + "module.step.general.step-health.description": "The health you stop being able to step at.", + + "module.entity-owner": "Entity Owner", + "module.entity-owner.description": "Displays the name of the player who owns the entity you're looking at.", + "module.entity-owner.general.scale": "Scale", + "module.entity-owner.general.scale.description": "The scale of the text.", + + "module.scaffold": "Scaffold", + "module.scaffold.description": "Automatically places blocks under you.", + "module.scaffold.general.blocks": "Blocks", + "module.scaffold.general.blocks.description": "Selected blocks.", + "module.scaffold.general.blocks-filter": "Blocks Filter", + "module.scaffold.general.blocks-filter.description": "How to use the block list setting", + "module.scaffold.general.fast-tower": "Fast Tower", + "module.scaffold.general.fast-tower.description": "Whether or not to scaffold upwards faster.", + "module.scaffold.general.tower-speed": "Tower Speed", + "module.scaffold.general.tower-speed.description": "The speed at which to tower.", + "module.scaffold.general.while-moving": "While Moving", + "module.scaffold.general.while-moving.description": "Allows you to tower while moving.", + "module.scaffold.general.only-on-click": "Only On Click", + "module.scaffold.general.only-on-click.description": "Only places blocks when holding right click.", + "module.scaffold.general.swing": "Swing", + "module.scaffold.general.swing.description": "Renders your client-side swing.", + "module.scaffold.general.auto-switch": "Auto Switch", + "module.scaffold.general.auto-switch.description": "Automatically swaps to a block before placing.", + "module.scaffold.general.rotate": "Rotate", + "module.scaffold.general.rotate.description": "Rotates towards the blocks being placed.", + "module.scaffold.general.air-place": "Air Place", + "module.scaffold.general.air-place.description": "Allow air place. This also allows you to modify scaffold radius.", + "module.scaffold.general.ahead-distance": "Ahead Distance", + "module.scaffold.general.ahead-distance.description": "How far ahead to place blocks.", + "module.scaffold.general.closest-block-range": "Closest Block Range", + "module.scaffold.general.closest-block-range.description": "How far can scaffold place blocks when you are in air.", + "module.scaffold.general.radius": "Radius", + "module.scaffold.general.radius.description": "Scaffold radius.", + "module.scaffold.general.blocks-per-tick": "Blocks Per Tick", + "module.scaffold.general.blocks-per-tick.description": "How many blocks to place in one tick.", + "module.scaffold.render.render": "Render", + "module.scaffold.render.render.description": "Whether to render blocks that have been placed.", + "module.scaffold.render.shape-mode": "Shape Mode", + "module.scaffold.render.shape-mode.description": "How the shapes are rendered.", + "module.scaffold.render.side-color": "Side Color", + "module.scaffold.render.side-color.description": "The side color of the target block rendering.", + "module.scaffold.render.line-color": "Line Color", + "module.scaffold.render.line-color.description": "The line color of the target block rendering.", + + "module.sneak": "Sneak", + "module.sneak.description": "Sneaks for you", + "module.sneak.general.mode": "Mode", + "module.sneak.general.mode.description": "Which method to sneak.", + + "module.no-slow": "No Slow", + "module.no-slow.description": "Allows you to move normally when using objects that will slow you.", + "module.no-slow.general.items": "Items", + "module.no-slow.general.items.description": "Whether or not using items will slow you.", + "module.no-slow.general.web": "Web", + "module.no-slow.general.web.description": "Whether or not cobwebs will not slow you down.", + "module.no-slow.general.web-timer": "Web Timer", + "module.no-slow.general.web-timer.description": "The timer value for WebMode Timer.", + "module.no-slow.general.honey-block": "Honey Block", + "module.no-slow.general.honey-block.description": "Whether or not honey blocks will not slow you down.", + "module.no-slow.general.soul-sand": "Soul Sand", + "module.no-slow.general.soul-sand.description": "Whether or not soul sand will not slow you down.", + "module.no-slow.general.slime-block": "Slime Block", + "module.no-slow.general.slime-block.description": "Whether or not slime blocks will not slow you down.", + "module.no-slow.general.berry-bush": "Berry Bush", + "module.no-slow.general.berry-bush.description": "Whether or not berry bushes will not slow you down.", + "module.no-slow.general.air-strict": "Air Strict", + "module.no-slow.general.air-strict.description": "Will attempt to bypass anti-cheats like 2b2t's. Only works while in air.", + "module.no-slow.general.fluid-drag": "Fluid Drag", + "module.no-slow.general.fluid-drag.description": "Whether or not fluid drag will not slow you down.", + "module.no-slow.general.sneaking": "Sneaking", + "module.no-slow.general.sneaking.description": "Whether or not sneaking will not slow you down.", + "module.no-slow.general.hunger": "Hunger", + "module.no-slow.general.hunger.description": "Whether or not hunger will not slow you down.", + "module.no-slow.general.slowness": "Slowness", + "module.no-slow.general.slowness.description": "Whether or not slowness will not slow you down.", + + "module.fake-player": "Fake Player", + "module.fake-player.description": "Spawns a client-side fake player for testing usages. No need to be active.", + "module.fake-player.general.name": "Name", + "module.fake-player.general.name.description": "The name of the fake player.", + "module.fake-player.general.copy-inv": "Copy Inv", + "module.fake-player.general.copy-inv.description": "Copies your inventory to the fake player.", + "module.fake-player.general.health": "Health", + "module.fake-player.general.health.description": "The fake player's default health.", + + "module.nametags": "Nametags", + "module.nametags.description": "Displays customizable nametags above players, items and other entities.", + "module.nametags.general.entities": "Entities", + "module.nametags.general.entities.description": "Select entities to draw nametags on.", + "module.nametags.general.scale": "Scale", + "module.nametags.general.scale.description": "The scale of the nametag.", + "module.nametags.general.ignore-self": "Ignore Self", + "module.nametags.general.ignore-self.description": "Ignore yourself when in third person or freecam.", + "module.nametags.general.ignore-friends": "Ignore Friends", + "module.nametags.general.ignore-friends.description": "Ignore rendering nametags for friends.", + "module.nametags.general.ignore-bots": "Ignore Bots", + "module.nametags.general.ignore-bots.description": "Only render non-bot nametags.", + "module.nametags.general.culling": "Culling", + "module.nametags.general.culling.description": "Only render a certain number of nametags at a certain distance.", + "module.nametags.general.culling-range": "Culling Range", + "module.nametags.general.culling-range.description": "Only render nametags within this distance of your player.", + "module.nametags.general.culling-count": "Culling Count", + "module.nametags.general.culling-count.description": "Only render this many nametags.", + "module.nametags.players.health": "Health", + "module.nametags.players.health.description": "Shows the player's health.", + "module.nametags.players.gamemode": "Gamemode", + "module.nametags.players.gamemode.description": "Shows the player's GameMode.", + "module.nametags.players.distance": "Distance", + "module.nametags.players.distance.description": "Shows the distance between you and the player.", + "module.nametags.players.ping": "Ping", + "module.nametags.players.ping.description": "Shows the player's ping.", + "module.nametags.players.items": "Items", + "module.nametags.players.items.description": "Displays armor and hand items above the name tags.", + "module.nametags.players.item-spacing": "Item Spacing", + "module.nametags.players.item-spacing.description": "The spacing between items.", + "module.nametags.players.ignore-empty-slots": "Ignore Empty Slots", + "module.nametags.players.ignore-empty-slots.description": "Doesn't add spacing where an empty item stack would be.", + "module.nametags.players.durability": "Durability", + "module.nametags.players.durability.description": "Displays item durability as either a total, percentage, or neither.", + "module.nametags.players.display-enchants": "Display Enchants", + "module.nametags.players.display-enchants.description": "Displays item enchantments on the items.", + "module.nametags.players.shown-enchantments": "Shown Enchantments", + "module.nametags.players.shown-enchantments.description": "The enchantments that are shown on nametags.", + "module.nametags.players.enchantment-position": "Enchantment Position", + "module.nametags.players.enchantment-position.description": "Where the enchantments are rendered.", + "module.nametags.players.enchant-name-length": "Enchant Name Length", + "module.nametags.players.enchant-name-length.description": "The length enchantment names are trimmed to.", + "module.nametags.players.enchant-text-scale": "Enchant Text Scale", + "module.nametags.players.enchant-text-scale.description": "The scale of the enchantment text.", + "module.nametags.items.show-count": "Show Count", + "module.nametags.items.show-count.description": "Displays the number of items in the stack.", + "module.nametags.render.background-color": "Background Color", + "module.nametags.render.background-color.description": "The color of the nametag background.", + "module.nametags.render.name-color": "Name Color", + "module.nametags.render.name-color.description": "The color of the nametag names.", + "module.nametags.render.ping-color": "Ping Color", + "module.nametags.render.ping-color.description": "The color of the nametag ping.", + "module.nametags.render.gamemode-color": "Gamemode Color", + "module.nametags.render.gamemode-color.description": "The color of the nametag gamemode.", + "module.nametags.render.distance-color-mode": "Distance Color Mode", + "module.nametags.render.distance-color-mode.description": "The mode to color the nametag distance with.", + "module.nametags.render.distance-color": "Distance Color", + "module.nametags.render.distance-color.description": "The color of the nametag distance.", + + "module.esp": "Esp", + "module.esp.description": "Renders entities through walls.", + "module.esp.general.mode": "Mode", + "module.esp.general.mode.description": "Rendering mode.", + "module.esp.general.highlight-target": "Highlight Target", + "module.esp.general.highlight-target.description": "highlights the currently targeted entity differently", + "module.esp.general.target-hitbox": "Target Hitbox", + "module.esp.general.target-hitbox.description": "draw the hitbox of the target entity", + "module.esp.general.outline-width": "Outline Width", + "module.esp.general.outline-width.description": "The width of the shader outline.", + "module.esp.general.glow-multiplier": "Glow Multiplier", + "module.esp.general.glow-multiplier.description": "Multiplier for glow effect", + "module.esp.general.ignore-self": "Ignore Self", + "module.esp.general.ignore-self.description": "Ignores yourself drawing the shader.", + "module.esp.general.shape-mode": "Shape Mode", + "module.esp.general.shape-mode.description": "How the shapes are rendered.", + "module.esp.general.fill-opacity": "Fill Opacity", + "module.esp.general.fill-opacity.description": "The opacity of the shape fill.", + "module.esp.general.fade-distance": "Fade Distance", + "module.esp.general.fade-distance.description": "The distance from an entity where the color begins to fade.", + "module.esp.general.entities": "Entities", + "module.esp.general.entities.description": "Select specific entities.", + "module.esp.colors.distance-colors": "Distance Colors", + "module.esp.colors.distance-colors.description": "Changes the color of tracers depending on distance.", + "module.esp.colors.show-friend-colors": "Show Friend Colors", + "module.esp.colors.show-friend-colors.description": "Whether or not to override the distance color of friends with the friend color.", + "module.esp.colors.players-color": "Players Color", + "module.esp.colors.players-color.description": "The other player's color.", + "module.esp.colors.animals-color": "Animals Color", + "module.esp.colors.animals-color.description": "The animal's color.", + "module.esp.colors.water-animals-color": "Water Animals Color", + "module.esp.colors.water-animals-color.description": "The water animal's color.", + "module.esp.colors.monsters-color": "Monsters Color", + "module.esp.colors.monsters-color.description": "The monster's color.", + "module.esp.colors.ambient-color": "Ambient Color", + "module.esp.colors.ambient-color.description": "The ambient's color.", + "module.esp.colors.misc-color": "Misc Color", + "module.esp.colors.misc-color.description": "The misc color.", + "module.esp.colors.target-color": "Target Color", + "module.esp.colors.target-color.description": "The target color.", + "module.esp.colors.target-hitbox-color": "Target Hitbox Color", + "module.esp.colors.target-hitbox-color.description": "The target hitbox color.", + + "module.rotation": "Rotation", + "module.rotation.description": "Changes/locks your yaw and pitch.", + "module.rotation.yaw.yaw-lock-mode": "Yaw Lock Mode", + "module.rotation.yaw.yaw-lock-mode.description": "The way in which your yaw is locked.", + "module.rotation.yaw.yaw-angle": "Yaw Angle", + "module.rotation.yaw.yaw-angle.description": "Yaw angle in degrees.", + "module.rotation.pitch.pitch-lock-mode": "Pitch Lock Mode", + "module.rotation.pitch.pitch-lock-mode.description": "The way in which your pitch is locked.", + "module.rotation.pitch.pitch-angle": "Pitch Angle", + "module.rotation.pitch.pitch-angle.description": "Pitch angle in degrees.", + + "module.elytra-fly": "Elytra Fly", + "module.elytra-fly.description": "Gives you more control over your elytra.", + "module.elytra-fly.general.mode": "Mode", + "module.elytra-fly.general.mode.description": "The mode of flying.", + "module.elytra-fly.general.auto-take-off": "Auto Take Off", + "module.elytra-fly.general.auto-take-off.description": "Automatically takes off when you hold jump without needing to double jump.", + "module.elytra-fly.general.fall-multiplier": "Fall Multiplier", + "module.elytra-fly.general.fall-multiplier.description": "Controls how fast will you go down naturally.", + "module.elytra-fly.general.horizontal-speed": "Horizontal Speed", + "module.elytra-fly.general.horizontal-speed.description": "How fast you go forward and backward.", + "module.elytra-fly.general.vertical-speed": "Vertical Speed", + "module.elytra-fly.general.vertical-speed.description": "How fast you go up and down.", + "module.elytra-fly.general.acceleration": "Acceleration", + + "module.elytra-fly.general.acceleration-step": "Acceleration Step", + + "module.elytra-fly.general.acceleration-start": "Acceleration Start", + + "module.elytra-fly.general.stop-in-water": "Stop In Water", + "module.elytra-fly.general.stop-in-water.description": "Stops flying in water.", + "module.elytra-fly.general.no-unloaded-chunks": "No Unloaded Chunks", + "module.elytra-fly.general.no-unloaded-chunks.description": "Stops you from going into unloaded chunks.", + "module.elytra-fly.general.auto-hover": "Auto Hover", + "module.elytra-fly.general.auto-hover.description": "Automatically hover .3 blocks off ground when holding shift.", + "module.elytra-fly.general.no-crash": "No Crash", + "module.elytra-fly.general.no-crash.description": "Stops you from going into walls.", + "module.elytra-fly.general.crash-look-ahead": "Crash Look Ahead", + "module.elytra-fly.general.crash-look-ahead.description": "Distance to look ahead when flying.", + "module.elytra-fly.general.insta-drop": "Insta Drop", + "module.elytra-fly.general.insta-drop.description": "Makes you drop out of flight instantly.", + "module.elytra-fly.general.pitch40-lower-bounds": "Pitch40 Lower Bounds", + "module.elytra-fly.general.pitch40-lower-bounds.description": "The bottom height boundary for pitch40. You must be at least 40 blocks above this boundary when starting the module.\nAfter descending below this boundary you will start pitching upwards.", + "module.elytra-fly.general.pitch40-upper-bounds": "Pitch40 Upper Bounds", + "module.elytra-fly.general.pitch40-upper-bounds.description": "The upper height boundary for pitch40. You must be above this boundary when starting the module.\nWhen ascending above this boundary, if you are not already, you will start pitching downwards.", + "module.elytra-fly.general.pitch40-rotate-speed-up": "Pitch40 Rotate Speed Up", + "module.elytra-fly.general.pitch40-rotate-speed-up.description": "The speed for pitch rotation upwards (degrees per tick).", + "module.elytra-fly.general.pitch40-rotate-speed-down": "Pitch40 Rotate Speed Down", + "module.elytra-fly.general.pitch40-rotate-speed-down.description": "The speed for pitch rotation downwards (degrees per tick).", + "module.elytra-fly.general.auto-jump": "Auto Jump", + "module.elytra-fly.general.auto-jump.description": "Automatically jumps for you.", + "module.elytra-fly.general.yaw-lock": "Yaw Lock", + "module.elytra-fly.general.yaw-lock.description": "Whether to enable yaw lock or not", + "module.elytra-fly.general.yaw": "Yaw", + "module.elytra-fly.general.yaw.description": "The yaw angle to look at when using simple rotation lock in bounce mode.", + "module.elytra-fly.general.pitch-lock": "Pitch Lock", + "module.elytra-fly.general.pitch-lock.description": "Whether to lock your pitch angle.", + "module.elytra-fly.general.pitch": "Pitch", + "module.elytra-fly.general.pitch.description": "The pitch angle to look at when using the bounce mode.", + "module.elytra-fly.general.restart": "Restart", + "module.elytra-fly.general.restart.description": "Restarts flying with the elytra when rubberbanding.", + "module.elytra-fly.general.restart-delay": "Restart Delay", + "module.elytra-fly.general.restart-delay.description": "How many ticks to wait before restarting the elytra again after rubberbanding.", + "module.elytra-fly.general.sprint-constantly": "Sprint Constantly", + "module.elytra-fly.general.sprint-constantly.description": "Sprints all the time. If turned off, it will only sprint when the player is touching the ground.", + "module.elytra-fly.general.manual-takeoff": "Manual Takeoff", + "module.elytra-fly.general.manual-takeoff.description": "Does not automatically take off.", + "module.elytra-fly.inventory.elytra-replace": "Elytra Replace", + "module.elytra-fly.inventory.elytra-replace.description": "Replaces broken elytra with a new elytra.", + "module.elytra-fly.inventory.replace-durability": "Replace Durability", + "module.elytra-fly.inventory.replace-durability.description": "The durability threshold your elytra will be replaced at.", + "module.elytra-fly.inventory.chest-swap": "Chest Swap", + "module.elytra-fly.inventory.chest-swap.description": "Enables ChestSwap when toggling this module.", + "module.elytra-fly.inventory.replenish-fireworks": "Replenish Fireworks", + "module.elytra-fly.inventory.replenish-fireworks.description": "Moves fireworks into a selected hotbar slot.", + "module.elytra-fly.inventory.replenish-slot": "Replenish Slot", + "module.elytra-fly.inventory.replenish-slot.description": "The slot auto move moves fireworks to.", + "module.elytra-fly.autopilot.auto-pilot": "Auto Pilot", + "module.elytra-fly.autopilot.auto-pilot.description": "Moves forward while elytra flying.", + "module.elytra-fly.autopilot.use-fireworks": "Use Fireworks", + "module.elytra-fly.autopilot.use-fireworks.description": "Uses firework rockets every second of your choice.", + "module.elytra-fly.autopilot.firework-delay": "Firework Delay", + "module.elytra-fly.autopilot.firework-delay.description": "The delay in seconds in between using fireworks if \"Use Fireworks\" is enabled.", + "module.elytra-fly.autopilot.minimum-height": "Minimum Height", + "module.elytra-fly.autopilot.minimum-height.description": "The minimum height for autopilot.", + + "module.auto-respawn": "Auto Respawn", + "module.auto-respawn.description": "Automatically respawns after death.", + + "module.entity-control": "Entity Control", + "module.entity-control.description": "Lets you control rideable entities without a saddle.", + "module.entity-control.control.entities": "Entities", + "module.entity-control.control.entities.description": "Target entities.", + "module.entity-control.control.spoof-saddle*": "Spoof Saddle*", + "module.entity-control.control.spoof-saddle*.description": "Lets you control rideable entities without them being saddled. Only works on older server versions.", + "module.entity-control.control.max-jump": "Max Jump", + "module.entity-control.control.max-jump.description": "Sets jump power to maximum.", + "module.entity-control.control.lock-yaw": "Lock Yaw", + "module.entity-control.control.lock-yaw.description": "Locks the Entity's yaw.", + "module.entity-control.control.cancel-server-packets": "Cancel Server Packets", + "module.entity-control.control.cancel-server-packets.description": "Cancels incoming vehicle move packets. WILL desync you from the server if you make an invalid movement.", + "module.entity-control.speed.speed": "Speed", + "module.entity-control.speed.speed.description": "Makes you go faster horizontally when riding entities.", + "module.entity-control.speed.horizontal-speed": "Horizontal Speed", + "module.entity-control.speed.horizontal-speed.description": "Horizontal speed in blocks per second.", + "module.entity-control.speed.only-on-ground": "Only On Ground", + "module.entity-control.speed.only-on-ground.description": "Use speed only when standing on a block.", + "module.entity-control.speed.in-water": "In Water", + "module.entity-control.speed.in-water.description": "Use speed when in water.", + "module.entity-control.flight.fly": "Fly", + "module.entity-control.flight.fly.description": "Allows you to fly with entities.", + "module.entity-control.flight.vertical-speed": "Vertical Speed", + "module.entity-control.flight.vertical-speed.description": "Vertical speed in blocks per second.", + "module.entity-control.flight.fall-speed": "Fall Speed", + "module.entity-control.flight.fall-speed.description": "How fast you will fall in blocks per second. Set to a small value to prevent fly kicks.", + "module.entity-control.flight.anti-fly-kick": "Anti Fly Kick", + "module.entity-control.flight.anti-fly-kick.description": "Whether to prevent the server from kicking you for flying.", + "module.entity-control.flight.delay": "Delay", + "module.entity-control.flight.delay.description": "The amount of delay, in ticks, between flying down a bit and return to original position", + + "module.stash-finder": "Stash Finder", + "module.stash-finder.description": "Searches loaded chunks for storage blocks. Saves to /meteor-client", + "module.stash-finder.general.storage-blocks": "Storage Blocks", + "module.stash-finder.general.storage-blocks.description": "Select the storage blocks to search for.", + "module.stash-finder.general.minimum-storage-count": "Minimum Storage Count", + "module.stash-finder.general.minimum-storage-count.description": "The minimum amount of storage blocks in a chunk to record the chunk.", + "module.stash-finder.general.blacklisted-support-blocks": "Blacklisted Support Blocks", + "module.stash-finder.general.blacklisted-support-blocks.description": "Blocks that prevent counting a storage block entity when it sits on them.", + "module.stash-finder.general.minimum-distance": "Minimum Distance", + "module.stash-finder.general.minimum-distance.description": "The minimum distance you must be from spawn to record a certain chunk.", + "module.stash-finder.general.notifications": "Notifications", + "module.stash-finder.general.notifications.description": "Sends Minecraft notifications when new stashes are found.", + "module.stash-finder.general.notification-mode": "Notification Mode", + "module.stash-finder.general.notification-mode.description": "The mode to use for notifications.", + "module.stash-finder.render.render-tracer": "Render Tracer", + "module.stash-finder.render.render-tracer.description": "Renders a tracer to the last found stash.", + "module.stash-finder.render.tracer-color": "Tracer Color", + "module.stash-finder.render.tracer-color.description": "Color of the stash tracer.", + "module.stash-finder.render.tracer-hide-at-distance": "Tracer Hide At Distance", + "module.stash-finder.render.tracer-hide-at-distance.description": "Hide the trace when you are this close to the stash.", + "module.stash-finder.render.tracer-max-distance": "Tracer Max Distance", + "module.stash-finder.render.tracer-max-distance.description": "Hide the trace when you are farther than this distance from the stash.", + "module.stash-finder.render.render-chunk-column": "Render Chunk Column", + "module.stash-finder.render.render-chunk-column.description": "Renders a vertical column at the center of traced chunks.", + "module.stash-finder.render.chunk-column-color": "Chunk Column Color", + "module.stash-finder.render.chunk-column-color.description": "Color of the stash tracer column.", + "module.stash-finder.render.clear-traces-bind": "Clear Traces Bind", + "module.stash-finder.render.clear-traces-bind.description": "Keybind to clear all stash traces.", + + "module.better-beacons": "Better Beacons", + "module.better-beacons.description": "Select effects unaffected by beacon level.", + + "module.auto-nametag": "Auto Nametag", + "module.auto-nametag.description": "Automatically uses nametags on entities without a nametag. WILL nametag ALL entities in the specified distance.", + "module.auto-nametag.general.entities": "Entities", + "module.auto-nametag.general.entities.description": "Which entities to nametag.", + "module.auto-nametag.general.range": "Range", + "module.auto-nametag.general.range.description": "The maximum range an entity can be to be nametagged.", + "module.auto-nametag.general.priority": "Priority", + "module.auto-nametag.general.priority.description": "Priority sort", + "module.auto-nametag.general.renametag": "Renametag", + "module.auto-nametag.general.renametag.description": "Allows already nametagged entities to be renamed.", + "module.auto-nametag.general.rotate": "Rotate", + "module.auto-nametag.general.rotate.description": "Automatically faces towards the mob being nametagged.", + + "module.elytra-boost": "Elytra Boost", + "module.elytra-boost.description": "Boosts your elytra as if you used a firework.", + "module.elytra-boost.general.anti-consume": "Anti Consume", + "module.elytra-boost.general.anti-consume.description": "Prevents fireworks from being consumed when using Elytra Boost.", + "module.elytra-boost.general.firework-duration": "Firework Duration", + "module.elytra-boost.general.firework-duration.description": "The duration of the firework.", + "module.elytra-boost.general.play-sound": "Play Sound", + "module.elytra-boost.general.play-sound.description": "Plays the firework sound when a boost is triggered.", + "module.elytra-boost.general.keybind": "Keybind", + "module.elytra-boost.general.keybind.description": "The keybind to boost.", + + "module.blink": "Blink", + "module.blink.description": "Allows you to essentially teleport while suspending motion updates.", + "module.blink.general.render-original": "Render Original", + "module.blink.general.render-original.description": "Renders your player model at the original position.", + "module.blink.general.pulse-delay": "Pulse Delay", + "module.blink.general.pulse-delay.description": "After the duration in ticks has elapsed, send all packets and start blinking again. 0 to disable.", + "module.blink.general.cancel-blink": "Cancel Blink", + "module.blink.general.cancel-blink.description": "Cancels sending packets and sends you back to your original position.", + + "module.block-selection": "Block Selection", + "module.block-selection.description": "Modifies how your block selection is rendered.", + "module.block-selection.general.advanced": "Advanced", + "module.block-selection.general.advanced.description": "Shows a more advanced outline on different types of shape blocks.", + "module.block-selection.general.single-side": "Single Side", + "module.block-selection.general.single-side.description": "Only renders the side you are looking at.", + "module.block-selection.general.shape-mode": "Shape Mode", + "module.block-selection.general.shape-mode.description": "How the shapes are rendered.", + "module.block-selection.general.side-color": "Side Color", + "module.block-selection.general.side-color.description": "The side color.", + "module.block-selection.general.line-color": "Line Color", + "module.block-selection.general.line-color.description": "The line color.", + "module.block-selection.general.hide-when-inside-block": "Hide When Inside Block", + "module.block-selection.general.hide-when-inside-block.description": "Hide selection when inside target block.", + + "module.auto-city": "Auto City", + "module.auto-city.description": "Automatically mine blocks next to someone's feet.", + "module.auto-city.general.target-range": "Target Range", + "module.auto-city.general.target-range.description": "The radius in which players get targeted.", + "module.auto-city.general.break-range": "Break Range", + "module.auto-city.general.break-range.description": "How close a block must be to you to be considered.", + "module.auto-city.general.switch-mode": "Switch Mode", + "module.auto-city.general.switch-mode.description": "How to switch to a pickaxe.", + "module.auto-city.general.support": "Support", + "module.auto-city.general.support.description": "If there is no block below a city block it will place one before mining.", + "module.auto-city.general.place-range": "Place Range", + "module.auto-city.general.place-range.description": "How far away to try and place a block.", + "module.auto-city.general.rotate": "Rotate", + "module.auto-city.general.rotate.description": "Automatically rotates you towards the city block.", + "module.auto-city.general.chat-info": "Chat Info", + "module.auto-city.general.chat-info.description": "Whether the module should send messages in chat.", + "module.auto-city.render.swing-hand": "Swing Hand", + "module.auto-city.render.swing-hand.description": "Whether to render your hand swinging.", + "module.auto-city.render.render-block": "Render Block", + "module.auto-city.render.render-block.description": "Whether to render the block being broken.", + "module.auto-city.render.shape-mode": "Shape Mode", + "module.auto-city.render.shape-mode.description": "How the shapes are rendered.", + "module.auto-city.render.side-color": "Side Color", + "module.auto-city.render.side-color.description": "The side color of the rendering.", + "module.auto-city.render.line-color": "Line Color", + "module.auto-city.render.line-color.description": "The line color of the rendering.", + + "module.waypoints": "Waypoints", + "module.waypoints.description": "Allows you to create waypoints.", + "module.waypoints.general.text-render-distance": "Text Render Distance", + "module.waypoints.general.text-render-distance.description": "Maximum distance from the center of the screen at which text will be rendered.", + "module.waypoints.general.waypoint-fade-distance": "Waypoint Fade Distance", + "module.waypoints.general.waypoint-fade-distance.description": "The distance to a waypoint at which it begins to start fading.", + "module.waypoints.death-position.max-death-positions": "Max Death Positions", + "module.waypoints.death-position.max-death-positions.description": "The amount of death positions to save, 0 to disable", + "module.waypoints.death-position.chat": "Chat", + "module.waypoints.death-position.chat.description": "Send a chat message with your position once you die", + + "module.auto-web": "Auto Web", + "module.auto-web.description": "Automatically places webs on other players.", + "module.auto-web.general.place-range": "Place Range", + "module.auto-web.general.place-range.description": "The range at which webs can be placed.", + "module.auto-web.general.walls-range": "Walls Range", + "module.auto-web.general.walls-range.description": "Range in which to place webs when behind blocks.", + "module.auto-web.general.target-priority": "Target Priority", + "module.auto-web.general.target-priority.description": "How to filter targets within range.", + "module.auto-web.general.target-range": "Target Range", + "module.auto-web.general.target-range.description": "The maximum distance to target players.", + "module.auto-web.general.predict-movement": "Predict Movement", + "module.auto-web.general.predict-movement.description": "Predict target movement to account for ping.", + "module.auto-web.general.ticks-to-predict": "Ticks To Predict", + "module.auto-web.general.ticks-to-predict.description": "How many ticks ahead we should predict for.", + "module.auto-web.general.doubles": "Doubles", + "module.auto-web.general.doubles.description": "Places webs in the target's upper hitbox as well as the lower hitbox.", + "module.auto-web.general.rotate": "Rotate", + "module.auto-web.general.rotate.description": "Rotates towards the webs when placing.", + "module.auto-web.render.render": "Render", + "module.auto-web.render.render.description": "Renders an overlay where webs are placed.", + "module.auto-web.render.shape-mode": "Shape Mode", + "module.auto-web.render.shape-mode.description": "How the shapes are rendered.", + "module.auto-web.render.side-color": "Side Color", + "module.auto-web.render.side-color.description": "The side color of the placed web rendering.", + "module.auto-web.render.line-color": "Line Color", + "module.auto-web.render.line-color.description": "The line color of the placed web rendering.", + + "module.auto-eat": "Auto Eat", + "module.auto-eat.description": "Automatically eats food.", + "module.auto-eat.general.blacklist": "Blacklist", + "module.auto-eat.general.blacklist.description": "Which items to not eat.", + "module.auto-eat.general.pause-auras": "Pause Auras", + "module.auto-eat.general.pause-auras.description": "Pauses all auras when eating.", + "module.auto-eat.general.pause-baritone": "Pause Baritone", + "module.auto-eat.general.pause-baritone.description": "Pause baritone when eating.", + "module.auto-eat.threshold.threshold-mode": "Threshold Mode", + "module.auto-eat.threshold.threshold-mode.description": "The threshold mode to trigger auto eat.", + "module.auto-eat.threshold.health-threshold": "Health Threshold", + "module.auto-eat.threshold.health-threshold.description": "The level of health you eat at.", + "module.auto-eat.threshold.hunger-threshold": "Hunger Threshold", + "module.auto-eat.threshold.hunger-threshold.description": "The level of hunger you eat at.", + + "module.hitboxes": "Hitboxes", + "module.hitboxes.description": "Expands an entity's hitboxes.", + "module.hitboxes.general.entities": "Entities", + "module.hitboxes.general.entities.description": "Which entities to target.", + "module.hitboxes.general.expand": "Expand", + "module.hitboxes.general.expand.description": "How much to expand the hitbox of the entity.", + "module.hitboxes.general.ignore-friends": "Ignore Friends", + "module.hitboxes.general.ignore-friends.description": "Doesn't expand the hitboxes of friends.", + "module.hitboxes.weapon-options.only-on-weapon": "Only On Weapon", + "module.hitboxes.weapon-options.only-on-weapon.description": "Only modifies hitbox when holding a weapon in hand.", + "module.hitboxes.weapon-options.sword": "Sword", + "module.hitboxes.weapon-options.sword.description": "Enable when holding a sword.", + "module.hitboxes.weapon-options.axe": "Axe", + "module.hitboxes.weapon-options.axe.description": "Enable when holding an axe.", + "module.hitboxes.weapon-options.pickaxe": "Pickaxe", + "module.hitboxes.weapon-options.pickaxe.description": "Enable when holding a pickaxe.", + "module.hitboxes.weapon-options.shovel": "Shovel", + "module.hitboxes.weapon-options.shovel.description": "Enable when holding a shovel.", + "module.hitboxes.weapon-options.hoe": "Hoe", + "module.hitboxes.weapon-options.hoe.description": "Enable when holding a hoe.", + "module.hitboxes.weapon-options.mace": "Mace", + "module.hitboxes.weapon-options.mace.description": "Enable when holding a mace.", + "module.hitboxes.weapon-options.spear": "Spear", + "module.hitboxes.weapon-options.spear.description": "Enable when holding a spear.", + "module.hitboxes.weapon-options.trident": "Trident", + "module.hitboxes.weapon-options.trident.description": "Enable when holding a trident.", + + "module.trail": "Trail", + "module.trail.description": "Renders a customizable trail behind your player.", + "module.trail.general.particles": "Particles", + "module.trail.general.particles.description": "Particles to draw.", + "module.trail.general.pause-when-stationary": "Pause When Stationary", + "module.trail.general.pause-when-stationary.description": "Whether or not to add particles when you are not moving.", + + "module.self-web": "Self Web", + "module.self-web.description": "Automatically places webs on you.", + "module.self-web.general.mode": "Mode", + "module.self-web.general.mode.description": "The mode to use for selfweb.", + "module.self-web.general.range": "Range", + "module.self-web.general.range.description": "How far away the player has to be from you to place webs. Requires Mode to Smart.", + "module.self-web.general.double-place": "Double Place", + "module.self-web.general.double-place.description": "Places webs in your upper hitbox as well.", + "module.self-web.general.auto-toggle": "Auto Toggle", + "module.self-web.general.auto-toggle.description": "Toggles off after placing the webs.", + "module.self-web.general.rotate": "Rotate", + "module.self-web.general.rotate.description": "Forces you to rotate downwards when placing webs.", + + "module.flight": "Flight", + "module.flight.description": "FLYYYY! No Fall is recommended with this module.", + "module.flight.general.mode": "Mode", + "module.flight.general.mode.description": "The mode for Flight.", + "module.flight.general.speed": "Speed", + "module.flight.general.speed.description": "Your speed when flying.", + "module.flight.general.vertical-speed-match": "Vertical Speed Match", + "module.flight.general.vertical-speed-match.description": "Matches your vertical speed to your horizontal speed, otherwise uses vanilla ratio.", + "module.flight.general.no-sneak": "No Sneak", + "module.flight.general.no-sneak.description": "Prevents you from sneaking while flying.", + "module.flight.anti-kick.mode": "Mode", + "module.flight.anti-kick.mode.description": "The mode for anti kick.", + "module.flight.anti-kick.delay": "Delay", + "module.flight.anti-kick.delay.description": "The amount of delay, in ticks, between flying down a bit and return to original position", + "module.flight.anti-kick.off-time": "Off Time", + "module.flight.anti-kick.off-time.description": "The amount of delay, in ticks, to fly down a bit to reset floating ticks.", + + "module.reverse-step": "Reverse Step", + "module.reverse-step.description": "Allows you to fall down blocks at a greater speed.", + "module.reverse-step.general.fall-speed": "Fall Speed", + "module.reverse-step.general.fall-speed.description": "How fast to fall in blocks per second.", + "module.reverse-step.general.fall-distance": "Fall Distance", + "module.reverse-step.general.fall-distance.description": "The maximum fall distance this setting will activate at.", + "module.reverse-step.general.vehicles": "Vehicles", + "module.reverse-step.general.vehicles.description": "Whether or not reverse step should affect vehicles.", + + "module.blur": "Blur", + "module.blur.description": "Blurs background when in GUI screens.", + "module.blur.general.strength": "Strength", + "module.blur.general.strength.description": "How strong the blur should be.", + "module.blur.general.fade-time": "Fade Time", + "module.blur.general.fade-time.description": "How long the fade will last in milliseconds.", + "module.blur.screens.meteor": "Meteor", + "module.blur.screens.meteor.description": "Applies blur to Meteor screens.", + "module.blur.screens.inventories": "Inventories", + "module.blur.screens.inventories.description": "Applies blur to inventory screens.", + "module.blur.screens.chat": "Chat", + "module.blur.screens.chat.description": "Applies blur when in chat.", + "module.blur.screens.other": "Other", + "module.blur.screens.other.description": "Applies blur to all other screen types.", + + "module.discord-presence": "Discord Presence", + "module.discord-presence.description": "Displays Meteor as your presence on Discord.", + "module.discord-presence.line-1.line-1-messages": "Line 1 Messages", + "module.discord-presence.line-1.line-1-messages.description": "Messages used for the first line.", + "module.discord-presence.line-1.line-1-update-delay": "Line 1 Update Delay", + "module.discord-presence.line-1.line-1-update-delay.description": "How fast to update the first line in ticks.", + "module.discord-presence.line-1.line-1-select-mode": "Line 1 Select Mode", + "module.discord-presence.line-1.line-1-select-mode.description": "How to select messages for the first line.", + "module.discord-presence.line-2.line-2-messages": "Line 2 Messages", + "module.discord-presence.line-2.line-2-messages.description": "Messages used for the second line.", + "module.discord-presence.line-2.line-2-update-delay": "Line 2 Update Delay", + "module.discord-presence.line-2.line-2-update-delay.description": "How fast to update the second line in ticks.", + "module.discord-presence.line-2.line-2-select-mode": "Line 2 Select Mode", + "module.discord-presence.line-2.line-2-select-mode.description": "How to select messages for the second line.", + + "module.void-esp": "Void Esp", + "module.void-esp.description": "Renders holes in bedrock layers that lead to the void.", + "module.void-esp.general.air-only": "Air Only", + "module.void-esp.general.air-only.description": "Checks bedrock only for air blocks.", + "module.void-esp.general.horizontal-radius": "Horizontal Radius", + "module.void-esp.general.horizontal-radius.description": "Horizontal radius in which to search for holes.", + "module.void-esp.general.hole-height": "Hole Height", + "module.void-esp.general.hole-height.description": "The minimum hole height to be rendered.", + "module.void-esp.general.nether-roof": "Nether Roof", + "module.void-esp.general.nether-roof.description": "Check for holes in nether roof.", + "module.void-esp.render.shape-mode": "Shape Mode", + "module.void-esp.render.shape-mode.description": "How the shapes are rendered.", + "module.void-esp.render.fill-color": "Fill Color", + "module.void-esp.render.fill-color.description": "The color that fills holes in the void.", + "module.void-esp.render.line-color": "Line Color", + "module.void-esp.render.line-color.description": "The color to draw lines of holes to the void.", + + "module.reach": "Reach", + "module.reach.description": "Gives you super long arms.", + "module.reach.general.extra-block-reach": "Extra Block Reach", + "module.reach.general.extra-block-reach.description": "The distance to add to your block reach.", + "module.reach.general.extra-entity-reach": "Extra Entity Reach", + "module.reach.general.extra-entity-reach.description": "The distance to add to your entity reach.", + + "module.speed-mine": "Speed Mine", + "module.speed-mine.description": "Allows you to quickly mine blocks.", + "module.speed-mine.general.mode": "Mode", + + "module.speed-mine.general.blocks": "Blocks", + "module.speed-mine.general.blocks.description": "Selected blocks.", + "module.speed-mine.general.blocks-filter": "Blocks Filter", + "module.speed-mine.general.blocks-filter.description": "How to use the blocks setting.", + "module.speed-mine.general.modifier": "Modifier", + "module.speed-mine.general.modifier.description": "Mining speed modifier. An additional value of 0.2 is equivalent to one haste level (1.2 = haste 1).", + "module.speed-mine.general.haste-amplifier": "Haste Amplifier", + "module.speed-mine.general.haste-amplifier.description": "What value of haste to give you. Above 2 not recommended.", + "module.speed-mine.general.instamine": "Instamine", + "module.speed-mine.general.instamine.description": "Whether or not to instantly mine blocks under certain conditions.", + "module.speed-mine.general.grim-bypass": "Grim Bypass", + "module.speed-mine.general.grim-bypass.description": "Bypasses Grim's fastbreak check, working as of 2.3.58", + + "module.inventory-tweaks": "Inventory Tweaks", + "module.inventory-tweaks.description": "Various inventory related utilities.", + "module.inventory-tweaks.general.mouse-drag-item-move": "Mouse Drag Item Move", + "module.inventory-tweaks.general.mouse-drag-item-move.description": "Moving mouse over items while holding shift will transfer it to the other container.", + "module.inventory-tweaks.general.xcarry": "Xcarry", + "module.inventory-tweaks.general.xcarry.description": "Allows you to store four extra item stacks in your crafting grid.", + "module.inventory-tweaks.general.uncap-bundle-scrolling": "Uncap Bundle Scrolling", + "module.inventory-tweaks.general.uncap-bundle-scrolling.description": "Whether to uncap the bundle scrolling feature to let you select any item.", + "module.inventory-tweaks.sorting.sorting-enabled": "Sorting Enabled", + "module.inventory-tweaks.sorting.sorting-enabled.description": "Automatically sorts stacks in inventory.", + "module.inventory-tweaks.sorting.sorting-key": "Sorting Key", + "module.inventory-tweaks.sorting.sorting-key.description": "Key to trigger the sort.", + "module.inventory-tweaks.sorting.sorting-delay": "Sorting Delay", + "module.inventory-tweaks.sorting.sorting-delay.description": "Delay in ticks between moving items when sorting.", + "module.inventory-tweaks.sorting.disable-in-creative": "Disable In Creative", + "module.inventory-tweaks.sorting.disable-in-creative.description": "Disables the inventory sorter when in creative mode.", + "module.inventory-tweaks.anti-drop.anti-drop-items": "Anti Drop Items", + "module.inventory-tweaks.anti-drop.anti-drop-items.description": "Items to prevent dropping. Doesn't work in creative inventory screen.", + "module.inventory-tweaks.anti-drop.item-frames": "Item Frames", + "module.inventory-tweaks.anti-drop.item-frames.description": "Prevent anti-drop items from being placed in item frames or pots", + "module.inventory-tweaks.anti-drop.override-bind": "Override Bind", + "module.inventory-tweaks.anti-drop.override-bind.description": "Hold this bind to temporarily bypass anti-drop", + "module.inventory-tweaks.auto-drop.auto-drop-items": "Auto Drop Items", + "module.inventory-tweaks.auto-drop.auto-drop-items.description": "Items to drop.", + "module.inventory-tweaks.auto-drop.exclude-equipped": "Exclude Equipped", + "module.inventory-tweaks.auto-drop.exclude-equipped.description": "Whether or not to drop items equipped in armor slots.", + "module.inventory-tweaks.auto-drop.exclude-hotbar": "Exclude Hotbar", + "module.inventory-tweaks.auto-drop.exclude-hotbar.description": "Whether or not to drop items from your hotbar.", + "module.inventory-tweaks.auto-drop.only-full-stacks": "Only Full Stacks", + "module.inventory-tweaks.auto-drop.only-full-stacks.description": "Only drops the items if the stack is full.", + "module.inventory-tweaks.steal-and-dump.steal-screens": "Steal Screens", + "module.inventory-tweaks.steal-and-dump.steal-screens.description": "Select the screens to display buttons and auto steal.", + "module.inventory-tweaks.steal-and-dump.inventory-buttons": "Inventory Buttons", + "module.inventory-tweaks.steal-and-dump.inventory-buttons.description": "Shows steal and dump buttons in container guis.", + "module.inventory-tweaks.steal-and-dump.steal-drop": "Steal Drop", + "module.inventory-tweaks.steal-and-dump.steal-drop.description": "Drop items to the ground instead of stealing them.", + "module.inventory-tweaks.steal-and-dump.drop-backwards": "Drop Backwards", + "module.inventory-tweaks.steal-and-dump.drop-backwards.description": "Drop items behind you.", + "module.inventory-tweaks.steal-and-dump.dump-filter": "Dump Filter", + "module.inventory-tweaks.steal-and-dump.dump-filter.description": "Dump mode.", + "module.inventory-tweaks.steal-and-dump.dump-items": "Dump Items", + "module.inventory-tweaks.steal-and-dump.dump-items.description": "Items to dump.", + "module.inventory-tweaks.steal-and-dump.steal-filter": "Steal Filter", + "module.inventory-tweaks.steal-and-dump.steal-filter.description": "Steal mode.", + "module.inventory-tweaks.steal-and-dump.steal-items": "Steal Items", + "module.inventory-tweaks.steal-and-dump.steal-items.description": "Items to steal.", + "module.inventory-tweaks.auto-steal.auto-steal": "Auto Steal", + "module.inventory-tweaks.auto-steal.auto-steal.description": "Automatically removes all possible items when you open a container.", + "module.inventory-tweaks.auto-steal.auto-dump": "Auto Dump", + "module.inventory-tweaks.auto-steal.auto-dump.description": "Automatically dumps all possible items when you open a container.", + "module.inventory-tweaks.auto-steal.delay": "Delay", + "module.inventory-tweaks.auto-steal.delay.description": "The minimum delay between stealing the next stack in milliseconds.", + "module.inventory-tweaks.auto-steal.initial-delay": "Initial Delay", + "module.inventory-tweaks.auto-steal.initial-delay.description": "The initial delay before stealing in milliseconds. 0 to use normal delay instead.", + "module.inventory-tweaks.auto-steal.random": "Random", + "module.inventory-tweaks.auto-steal.random.description": "Randomly adds a delay of up to the specified time in milliseconds.", + + "module.no-fall": "No Fall", + "module.no-fall.description": "Attempts to prevent you from taking fall damage.", + "module.no-fall.general.mode": "Mode", + "module.no-fall.general.mode.description": "The way you are saved from fall damage.", + "module.no-fall.general.placed-item": "Placed Item", + "module.no-fall.general.placed-item.description": "Which block to place.", + "module.no-fall.general.air-place-mode": "Air Place Mode", + "module.no-fall.general.air-place-mode.description": "Whether place mode places before you die or before you take damage.", + "module.no-fall.general.anchor": "Anchor", + "module.no-fall.general.anchor.description": "Centers the player and reduces movement when using bucket or air place mode.", + "module.no-fall.general.anti-bounce": "Anti Bounce", + "module.no-fall.general.anti-bounce.description": "Disables bouncing on slime-block and bed upon landing.", + "module.no-fall.general.pause-on-mace": "Pause On Mace", + "module.no-fall.general.pause-on-mace.description": "Pauses NoFall when using a mace.", + + "module.no-interact": "No Interact", + "module.no-interact.description": "Blocks interactions with certain types of inputs.", + "module.no-interact.blocks.block-mine": "Block Mine", + "module.no-interact.blocks.block-mine.description": "Cancels block mining.", + "module.no-interact.blocks.block-mine-mode": "Block Mine Mode", + "module.no-interact.blocks.block-mine-mode.description": "List mode to use for block mine.", + "module.no-interact.blocks.block-interact": "Block Interact", + "module.no-interact.blocks.block-interact.description": "Cancels block interaction.", + "module.no-interact.blocks.block-interact-mode": "Block Interact Mode", + "module.no-interact.blocks.block-interact-mode.description": "List mode to use for block interact.", + "module.no-interact.blocks.block-interact-hand": "Block Interact Hand", + "module.no-interact.blocks.block-interact-hand.description": "Cancels block interaction if performed by this hand.", + "module.no-interact.entities.entity-hit": "Entity Hit", + "module.no-interact.entities.entity-hit.description": "Cancel entity hitting.", + "module.no-interact.entities.entity-hit-mode": "Entity Hit Mode", + "module.no-interact.entities.entity-hit-mode.description": "List mode to use for entity hit.", + "module.no-interact.entities.entity-interact": "Entity Interact", + "module.no-interact.entities.entity-interact.description": "Cancel entity interaction.", + "module.no-interact.entities.entity-interact-mode": "Entity Interact Mode", + "module.no-interact.entities.entity-interact-mode.description": "List mode to use for entity interact.", + "module.no-interact.entities.entity-interact-hand": "Entity Interact Hand", + "module.no-interact.entities.entity-interact-hand.description": "Cancels entity interaction if performed by this hand.", + "module.no-interact.entities.friends": "Friends", + "module.no-interact.entities.friends.description": "Friends cancel mode.", + "module.no-interact.entities.babies": "Babies", + "module.no-interact.entities.babies.description": "Baby entity cancel mode.", + "module.no-interact.entities.nametagged": "Nametagged", + "module.no-interact.entities.nametagged.description": "Nametagged entity cancel mode.", + + "module.portals": "Portals", + "module.portals.description": "Allows you to use GUIs normally while in a Nether Portal.", + + "module.marker": "Marker", + "module.marker.description": "Renders shapes. Useful for large scale projects", + + "marker.sphere-2d.base.name": "Name", + "marker.sphere-2d.base.name.description": "Custom name for this marker.", + "marker.sphere-2d.base.description": "Description", + "marker.sphere-2d.base.description.description": "Custom description for this marker.", + "marker.sphere-2d.base.dimension": "Dimension", + "marker.sphere-2d.base.dimension.description": "In which dimension this marker should be visible.", + "marker.sphere-2d.base.active": "Active", + "marker.sphere-2d.base.active.description": "Is this marker visible.", + "marker.sphere-2d.general.center": "Center", + "marker.sphere-2d.general.center.description": "Center of the sphere", + "marker.sphere-2d.general.radius": "Radius", + "marker.sphere-2d.general.radius.description": "Radius of the sphere", + "marker.sphere-2d.general.layer": "Layer", + "marker.sphere-2d.general.layer.description": "Which layer to render", + "marker.sphere-2d.render.limit-render-range": "Limit Render Range", + "marker.sphere-2d.render.limit-render-range.description": "Whether to limit rendering range (useful in very large circles)", + "marker.sphere-2d.render.render-range": "Render Range", + "marker.sphere-2d.render.render-range.description": "Rendering range", + "marker.sphere-2d.render.shape-mode": "Shape Mode", + "marker.sphere-2d.render.shape-mode.description": "How the shapes are rendered.", + "marker.sphere-2d.render.side-color": "Side Color", + "marker.sphere-2d.render.side-color.description": "The color of the sides of the blocks being rendered.", + "marker.sphere-2d.render.line-color": "Line Color", + "marker.sphere-2d.render.line-color.description": "The color of the lines of the blocks being rendered.", + "marker.sphere-2d.keybinding.next-layer-keybind": "Next Layer Keybind", + "marker.sphere-2d.keybinding.next-layer-keybind.description": "Keybind to increment layer", + "marker.sphere-2d.keybinding.prev-layer-keybind": "Prev Layer Keybind", + "marker.sphere-2d.keybinding.prev-layer-keybind.description": "Keybind to increment layer", + "marker.cuboid.base.name": "Name", + "marker.cuboid.base.name.description": "Custom name for this marker.", + "marker.cuboid.base.description": "Description", + "marker.cuboid.base.description.description": "Custom description for this marker.", + "marker.cuboid.base.dimension": "Dimension", + "marker.cuboid.base.dimension.description": "In which dimension this marker should be visible.", + "marker.cuboid.base.active": "Active", + "marker.cuboid.base.active.description": "Is this marker visible.", + "marker.cuboid.general.pos-1": "Pos 1", + "marker.cuboid.general.pos-1.description": "1st corner of the cuboid", + "marker.cuboid.general.pos-2": "Pos 2", + "marker.cuboid.general.pos-2.description": "2nd corner of the cuboid", + "marker.cuboid.render.mode": "Mode", + "marker.cuboid.render.mode.description": "What mode to use for this marker.", + "marker.cuboid.render.shape-mode": "Shape Mode", + "marker.cuboid.render.shape-mode.description": "How the shapes are rendered.", + "marker.cuboid.render.side-color": "Side Color", + "marker.cuboid.render.side-color.description": "The color of the sides of the blocks being rendered.", + "marker.cuboid.render.line-color": "Line Color", + "marker.cuboid.render.line-color.description": "The color of the lines of the blocks being rendered.", + + + "module.criticals": "Criticals", + "module.criticals.description": "Performs critical attacks when you hit your target.", + "module.criticals.general.mode": "Mode", + "module.criticals.general.mode.description": "The mode on how Criticals will function.", + "module.criticals.general.only-killaura": "Only Killaura", + "module.criticals.general.only-killaura.description": "Only performs crits when using killaura.", + "module.criticals.mace.smash-attack": "Smash Attack", + "module.criticals.mace.smash-attack.description": "Will always perform smash attacks when using a mace.", + "module.criticals.mace.additional-height": "Additional Height", + "module.criticals.mace.additional-height.description": "The amount of additional height to spoof. More height means more damage.", + + "module.tunnel-esp": "Tunnel Esp", + "module.tunnel-esp.description": "Highlights tunnels.", + "module.tunnel-esp.general.height": "Height", + "module.tunnel-esp.general.height.description": "Height of the rendered box.", + "module.tunnel-esp.general.connected": "Connected", + "module.tunnel-esp.general.connected.description": "If neighbouring holes should be connected.", + "module.tunnel-esp.general.shape-mode": "Shape Mode", + "module.tunnel-esp.general.shape-mode.description": "How the shapes are rendered.", + "module.tunnel-esp.general.side-color": "Side Color", + "module.tunnel-esp.general.side-color.description": "The side color.", + "module.tunnel-esp.general.line-color": "Line Color", + "module.tunnel-esp.general.line-color.description": "The line color.", + + "module.auto-smelter": "Auto Smelter", + "module.auto-smelter.description": "Automatically smelts items from your inventory", + "module.auto-smelter.general.fuel-items": "Fuel Items", + "module.auto-smelter.general.fuel-items.description": "Items to use as fuel", + "module.auto-smelter.general.smeltable-items": "Smeltable Items", + "module.auto-smelter.general.smeltable-items.description": "Items to smelt", + "module.auto-smelter.general.disable-when-out-of-items": "Disable When Out Of Items", + "module.auto-smelter.general.disable-when-out-of-items.description": "Disable the module when you run out of items", + + "module.anchor-aura": "Anchor Aura", + "module.anchor-aura.description": "Automatically places and breaks Respawn Anchors to harm entities.", + "module.anchor-aura.general.target-range": "Target Range", + "module.anchor-aura.general.target-range.description": "Range in which to target players.", + "module.anchor-aura.general.target-priority": "Target Priority", + "module.anchor-aura.general.target-priority.description": "How to select the player to target.", + "module.anchor-aura.general.min-damage": "Min Damage", + "module.anchor-aura.general.min-damage.description": "The minimum damage to inflict on your target.", + "module.anchor-aura.general.max-self-damage": "Max Self Damage", + "module.anchor-aura.general.max-self-damage.description": "The maximum damage to inflict on yourself.", + "module.anchor-aura.general.anti-suicide": "Anti Suicide", + "module.anchor-aura.general.anti-suicide.description": "Will not place and break anchors if they will kill you.", + "module.anchor-aura.general.swap-back": "Swap Back", + "module.anchor-aura.general.swap-back.description": "Switches to your previous slot after using anchors.", + "module.anchor-aura.general.rotate": "Rotate", + "module.anchor-aura.general.rotate.description": "Rotates server-side towards the anchors being placed/broken.", + "module.anchor-aura.place.place": "Place", + "module.anchor-aura.place.place.description": "Allows Anchor Aura to place anchors.", + "module.anchor-aura.place.place-delay": "Place Delay", + "module.anchor-aura.place.place-delay.description": "The tick delay between placing anchors.", + "module.anchor-aura.place.place-range": "Place Range", + "module.anchor-aura.place.place-range.description": "The range at which anchors can be placed.", + "module.anchor-aura.place.walls-range": "Walls Range", + "module.anchor-aura.place.walls-range.description": "Range in which to place anchors when behind blocks.", + "module.anchor-aura.place.air-place": "Air Place", + "module.anchor-aura.place.air-place.description": "Allows Anchor Aura to place anchors in the air.", + "module.anchor-aura.break.charge-delay": "Charge Delay", + "module.anchor-aura.break.charge-delay.description": "The tick delay it takes to charge anchors.", + "module.anchor-aura.break.break-delay": "Break Delay", + "module.anchor-aura.break.break-delay.description": "The tick delay it takes to break anchors.", + "module.anchor-aura.break.break-range": "Break Range", + "module.anchor-aura.break.break-range.description": "Range in which to break anchors.", + "module.anchor-aura.break.walls-range": "Walls Range", + "module.anchor-aura.break.walls-range.description": "Range in which to break anchors when behind blocks.", + "module.anchor-aura.pause.pause-on-use": "Pause On Use", + "module.anchor-aura.pause.pause-on-use.description": "Pauses while using an item.", + "module.anchor-aura.pause.pause-on-mine": "Pause On Mine", + "module.anchor-aura.pause.pause-on-mine.description": "Pauses while mining blocks.", + "module.anchor-aura.pause.pause-on-CA": "Pause On CA", + "module.anchor-aura.pause.pause-on-CA.description": "Pauses while Crystal Aura is placing.", + "module.anchor-aura.render.swing": "Swing", + "module.anchor-aura.render.swing.description": "Whether to swing your hand client-side.", + "module.anchor-aura.render.render": "Render", + "module.anchor-aura.render.render.description": "Renders the block where it is placing an anchor.", + "module.anchor-aura.render.shape-mode": "Shape Mode", + "module.anchor-aura.render.shape-mode.description": "How the shapes are rendered.", + "module.anchor-aura.render.side-color": "Side Color", + "module.anchor-aura.render.side-color.description": "The side color for positions to be placed.", + "module.anchor-aura.render.line-color": "Line Color", + "module.anchor-aura.render.line-color.description": "The line color for positions to be placed.", + + "module.anti-void": "Anti Void", + "module.anti-void.description": "Attempts to prevent you from falling into the void.", + "module.anti-void.general.mode": "Mode", + "module.anti-void.general.mode.description": "The method to prevent you from falling into the void.", + + "module.kill-aura": "Kill Aura", + "module.kill-aura.description": "Attacks specified entities around you.", + "module.kill-aura.general.attack-when-holding": "Attack When Holding", + "module.kill-aura.general.attack-when-holding.description": "Only attacks an entity when a specified item is in your hand.", + "module.kill-aura.general.selected-weapon-types": "Selected Weapon Types", + "module.kill-aura.general.selected-weapon-types.description": "Which types of weapons to attack with (if you select the diamond sword, any type of sword may be used to attack).", + "module.kill-aura.general.rotate": "Rotate", + "module.kill-aura.general.rotate.description": "Determines when you should rotate towards the target.", + "module.kill-aura.general.auto-switch": "Auto Switch", + "module.kill-aura.general.auto-switch.description": "Switches to an acceptable weapon when attacking the target.", + "module.kill-aura.general.swap-back": "Swap Back", + "module.kill-aura.general.swap-back.description": "Switches to your previous slot when done attacking the target.", + "module.kill-aura.general.shield-mode": "Shield Mode", + "module.kill-aura.general.shield-mode.description": "Will try and use an axe to break target shields.", + "module.kill-aura.general.only-on-click": "Only On Click", + "module.kill-aura.general.only-on-click.description": "Only attacks when holding left click.", + "module.kill-aura.general.only-on-look": "Only On Look", + "module.kill-aura.general.only-on-look.description": "Only attacks when looking at an entity.", + "module.kill-aura.general.pause-baritone": "Pause Baritone", + "module.kill-aura.general.pause-baritone.description": "Freezes Baritone temporarily until you are finished attacking the entity.", + "module.kill-aura.targeting.entities": "Entities", + "module.kill-aura.targeting.entities.description": "Entities to attack.", + "module.kill-aura.targeting.priority": "Priority", + "module.kill-aura.targeting.priority.description": "How to filter targets within range.", + "module.kill-aura.targeting.max-targets": "Max Targets", + "module.kill-aura.targeting.max-targets.description": "How many entities to target at once.", + "module.kill-aura.targeting.range": "Range", + "module.kill-aura.targeting.range.description": "The maximum range the entity can be to attack it.", + "module.kill-aura.targeting.walls-range": "Walls Range", + "module.kill-aura.targeting.walls-range.description": "The maximum range the entity can be attacked through walls.", + "module.kill-aura.targeting.mob-age-filter": "Mob Age Filter", + "module.kill-aura.targeting.mob-age-filter.description": "Determines the age of the mobs to target (baby, adult, or both).", + "module.kill-aura.targeting.ignore-named": "Ignore Named", + "module.kill-aura.targeting.ignore-named.description": "Whether or not to attack mobs with a name.", + "module.kill-aura.targeting.ignore-passive": "Ignore Passive", + "module.kill-aura.targeting.ignore-passive.description": "Will only attack sometimes passive mobs if they are targeting you.", + "module.kill-aura.targeting.ignore-tamed": "Ignore Tamed", + "module.kill-aura.targeting.ignore-tamed.description": "Will avoid attacking mobs you tamed.", + "module.kill-aura.timing.pause-on-lag": "Pause On Lag", + "module.kill-aura.timing.pause-on-lag.description": "Pauses if the server is lagging.", + "module.kill-aura.timing.pause-on-use": "Pause On Use", + "module.kill-aura.timing.pause-on-use.description": "Does not attack while using an item.", + "module.kill-aura.timing.pause-on-CA": "Pause On CA", + "module.kill-aura.timing.pause-on-CA.description": "Does not attack while CA is placing.", + "module.kill-aura.timing.TPS-sync": "TPS Sync", + "module.kill-aura.timing.TPS-sync.description": "Tries to sync attack delay with the server's TPS.", + "module.kill-aura.timing.custom-delay": "Custom Delay", + "module.kill-aura.timing.custom-delay.description": "Use a custom delay instead of the vanilla cooldown.", + "module.kill-aura.timing.hit-delay": "Hit Delay", + "module.kill-aura.timing.hit-delay.description": "How fast you hit the entity in ticks.", + "module.kill-aura.timing.switch-delay": "Switch Delay", + "module.kill-aura.timing.switch-delay.description": "How many ticks to wait before hitting an entity after switching hotbar slots.", + + "module.parkour": "Parkour", + "module.parkour.description": "Automatically jumps at the edges of blocks.", + "module.parkour.general.edge-distance": "Edge Distance", + "module.parkour.general.edge-distance.description": "How far from the edge should you jump.", + + "module.spam": "Spam", + "module.spam.description": "Spams specified messages in chat.", + "module.spam.general.messages": "Messages", + "module.spam.general.messages.description": "Messages to use for spam.", + "module.spam.general.delay": "Delay", + "module.spam.general.delay.description": "The delay between specified messages in ticks.", + "module.spam.general.disable-on-leave": "Disable On Leave", + "module.spam.general.disable-on-leave.description": "Disables spam when you leave a server.", + "module.spam.general.disable-on-disconnect": "Disable On Disconnect", + "module.spam.general.disable-on-disconnect.description": "Disables spam when you are disconnected from a server.", + "module.spam.general.randomise": "Randomise", + "module.spam.general.randomise.description": "Selects a random message from your spam message list.", + "module.spam.general.auto-split-messages": "Auto Split Messages", + "module.spam.general.auto-split-messages.description": "Automatically split up large messages after a certain length", + "module.spam.general.split-length": "Split Length", + "module.spam.general.split-length.description": "The length after which to split messages in chat", + "module.spam.general.split-delay": "Split Delay", + "module.spam.general.split-delay.description": "The delay between split messages in ticks.", + "module.spam.general.bypass": "Bypass", + "module.spam.general.bypass.description": "Add random text at the end of the message to try to bypass anti spams.", + "module.spam.general.include-uppercase-characters": "Include Uppercase Characters", + "module.spam.general.include-uppercase-characters.description": "Whether the bypass text should include uppercase characters.", + "module.spam.general.length": "Length", + "module.spam.general.length.description": "Number of characters used to bypass anti spam.", + + "module.collisions": "Collisions", + "module.collisions.description": "Adds collision boxes to certain blocks/areas.", + "module.collisions.general.blocks": "Blocks", + "module.collisions.general.blocks.description": "What blocks should be added collision box.", + "module.collisions.general.magma": "Magma", + "module.collisions.general.magma.description": "Prevents you from walking over magma blocks.", + "module.collisions.general.unloaded-chunks": "Unloaded Chunks", + "module.collisions.general.unloaded-chunks.description": "Stops you from going into unloaded chunks.", + "module.collisions.general.ignore-border": "Ignore Border", + "module.collisions.general.ignore-border.description": "Removes world border collision.", + + "module.click-tp": "Click Tp", + "module.click-tp.description": "Teleports you to the block you click on.", + + "module.packet-canceller": "Packet Canceller", + "module.packet-canceller.description": "Allows you to cancel certain packets.", + "module.packet-canceller.general.S2C-packets": "S2C Packets", + "module.packet-canceller.general.S2C-packets.description": "Server-to-client packets to cancel.", + "module.packet-canceller.general.C2S-packets": "C2S Packets", + "module.packet-canceller.general.C2S-packets.description": "Client-to-server packets to cancel.", + + "module.tracers": "Tracers", + "module.tracers.description": "Displays tracer lines to specified entities.", + "module.tracers.general.entities": "Entities", + "module.tracers.general.entities.description": "Select specific entities.", + "module.tracers.general.ignore-self": "Ignore Self", + "module.tracers.general.ignore-self.description": "Doesn't draw tracers to yourself when in third person or freecam.", + "module.tracers.general.ignore-friends": "Ignore Friends", + "module.tracers.general.ignore-friends.description": "Doesn't draw tracers to friends.", + "module.tracers.general.show-invisible": "Show Invisible", + "module.tracers.general.show-invisible.description": "Shows invisible entities.", + "module.tracers.appearance.style": "Style", + "module.tracers.appearance.style.description": "What display mode should be used", + "module.tracers.appearance.target": "Target", + "module.tracers.appearance.target.description": "What part of the entity to target.", + "module.tracers.appearance.stem": "Stem", + "module.tracers.appearance.stem.description": "Draw a line through the center of the tracer target.", + "module.tracers.appearance.max-distance": "Max Distance", + "module.tracers.appearance.max-distance.description": "Maximum distance for tracers to show.", + "module.tracers.appearance.distance-offscreen": "Distance Offscreen", + "module.tracers.appearance.distance-offscreen.description": "Offscreen's distance from center.", + "module.tracers.appearance.size-offscreen": "Size Offscreen", + "module.tracers.appearance.size-offscreen.description": "Offscreen's size.", + "module.tracers.appearance.blink-offscreen": "Blink Offscreen", + "module.tracers.appearance.blink-offscreen.description": "Make offscreen Blink.", + "module.tracers.appearance.blink-offscreen-speed": "Blink Offscreen Speed", + "module.tracers.appearance.blink-offscreen-speed.description": "Offscreen's blink speed.", + "module.tracers.colors.distance-colors": "Distance Colors", + "module.tracers.colors.distance-colors.description": "Changes the color of tracers depending on distance.", + "module.tracers.colors.show-friend-colors": "Show Friend Colors", + "module.tracers.colors.show-friend-colors.description": "Whether or not to override the distance color of friends with the friend color.", + "module.tracers.colors.players-colors": "Players Colors", + "module.tracers.colors.players-colors.description": "The player's color.", + "module.tracers.colors.animals-color": "Animals Color", + "module.tracers.colors.animals-color.description": "The animal's color.", + "module.tracers.colors.water-animals-color": "Water Animals Color", + "module.tracers.colors.water-animals-color.description": "The water animal's color.", + "module.tracers.colors.monsters-color": "Monsters Color", + "module.tracers.colors.monsters-color.description": "The monster's color.", + "module.tracers.colors.ambient-color": "Ambient Color", + "module.tracers.colors.ambient-color.description": "The ambient color.", + "module.tracers.colors.misc-color": "Misc Color", + "module.tracers.colors.misc-color.description": "The misc color.", + + "module.auto-exp": "Auto Exp", + "module.auto-exp.description": "Automatically repairs your armor and tools in pvp.", + "module.auto-exp.general.mode": "Mode", + "module.auto-exp.general.mode.description": "Which items to repair.", + "module.auto-exp.general.replenish": "Replenish", + "module.auto-exp.general.replenish.description": "Automatically replenishes exp into a selected hotbar slot.", + "module.auto-exp.general.only-on-ground": "Only On Ground", + "module.auto-exp.general.only-on-ground.description": "Only throw when the player is on the ground.", + "module.auto-exp.general.exp-slot": "Exp Slot", + "module.auto-exp.general.exp-slot.description": "The slot to replenish exp into.", + "module.auto-exp.general.min-threshold": "Min Threshold", + "module.auto-exp.general.min-threshold.description": "The minimum durability percentage that an item needs to fall to, to be repaired.", + "module.auto-exp.general.max-threshold": "Max Threshold", + "module.auto-exp.general.max-threshold.description": "The maximum durability percentage to repair items to.", + + "module.jesus": "Jesus", + "module.jesus.description": "Walk on liquids and powder snow like Jesus.", + "module.jesus.general.powder-snow": "Powder Snow", + "module.jesus.general.powder-snow.description": "Walk on powder snow.", + "module.jesus.water.mode": "Mode", + "module.jesus.water.mode.description": "How to treat the water.", + "module.jesus.water.dip-if-burning": "Dip If Burning", + "module.jesus.water.dip-if-burning.description": "Lets you go into the water when you are burning.", + "module.jesus.water.dip-on-sneak": "Dip On Sneak", + "module.jesus.water.dip-on-sneak.description": "Lets you go into the water when your sneak key is held.", + "module.jesus.water.dip-on-fall": "Dip On Fall", + "module.jesus.water.dip-on-fall.description": "Lets you go into the water when you fall over a certain height.", + "module.jesus.water.dip-fall-height": "Dip Fall Height", + "module.jesus.water.dip-fall-height.description": "The fall height at which you will go into the water.", + "module.jesus.lava.mode": "Mode", + "module.jesus.lava.mode.description": "How to treat the lava.", + "module.jesus.lava.dip-if-resistant": "Dip If Resistant", + "module.jesus.lava.dip-if-resistant.description": "Lets you go into the lava if you have Fire Resistance effect.", + "module.jesus.lava.dip-on-sneak": "Dip On Sneak", + "module.jesus.lava.dip-on-sneak.description": "Lets you go into the lava when your sneak key is held.", + "module.jesus.lava.dip-on-fall": "Dip On Fall", + "module.jesus.lava.dip-on-fall.description": "Lets you go into the lava when you fall over a certain height.", + "module.jesus.lava.dip-fall-height": "Dip Fall Height", + "module.jesus.lava.dip-fall-height.description": "The fall height at which you will go into the lava.", + + "module.no-mining-trace": "No Mining Trace", + "module.no-mining-trace.description": "Allows you to mine blocks through entities.", + "module.no-mining-trace.general.blacklisted-entities": "Blacklisted Entities", + "module.no-mining-trace.general.blacklisted-entities.description": "Entities you will interact with as normal.", + "module.no-mining-trace.general.only-when-holding-a-pickaxe": "Only When Holding A Pickaxe", + "module.no-mining-trace.general.only-when-holding-a-pickaxe.description": "Whether or not to work only when holding a pickaxe.", + + "module.bow-aimbot": "Bow Aimbot", + "module.bow-aimbot.description": "Automatically aims your bow for you.", + "module.bow-aimbot.general.range": "Range", + "module.bow-aimbot.general.range.description": "The maximum range the entity can be to aim at it.", + "module.bow-aimbot.general.entities": "Entities", + "module.bow-aimbot.general.entities.description": "Entities to attack.", + "module.bow-aimbot.general.priority": "Priority", + "module.bow-aimbot.general.priority.description": "What type of entities to target.", + "module.bow-aimbot.general.babies": "Babies", + "module.bow-aimbot.general.babies.description": "Whether or not to attack baby variants of the entity.", + "module.bow-aimbot.general.nametagged": "Nametagged", + "module.bow-aimbot.general.nametagged.description": "Whether or not to attack mobs with a name tag.", + "module.bow-aimbot.general.pause-on-combat": "Pause On Combat", + "module.bow-aimbot.general.pause-on-combat.description": "Freezes Baritone temporarily until you released the bow." +} diff --git a/src/main/resources/assets/meteor-client/language/hi_in.json b/src/main/resources/assets/meteor-client/language/hi_in.json new file mode 100644 index 0000000000..47bce958f5 --- /dev/null +++ b/src/main/resources/assets/meteor-client/language/hi_in.json @@ -0,0 +1,6 @@ +{ + "meteor.lang.translators" : "devendrapoonia", + + "meteor.key.open-gui": "GUI खोलें", + "meteor.key.open-commands": "कमांड खोलें" +} diff --git a/src/main/resources/assets/meteor-client/language/pt_br.json b/src/main/resources/assets/meteor-client/language/pt_br.json new file mode 100644 index 0000000000..16cc5e0c1c --- /dev/null +++ b/src/main/resources/assets/meteor-client/language/pt_br.json @@ -0,0 +1,6 @@ +{ + "meteor.lang.translators": "Niix-Dan", + + "meteor.key.open-gui": "Abrir Menu", + "meteor.key.open-commands": "Abrir Comandos" +} diff --git a/src/main/resources/assets/meteor-client/language/vi_vn.json b/src/main/resources/assets/meteor-client/language/vi_vn.json new file mode 100644 index 0000000000..dfd1122663 --- /dev/null +++ b/src/main/resources/assets/meteor-client/language/vi_vn.json @@ -0,0 +1,6 @@ +{ + "meteor.lang.translators": "AnhNguyenlost13", + + "meteor.key.open-gui": "Mở giao diện", + "meteor.key.open-commands": "Mở lệnh" +} diff --git a/src/main/resources/assets/meteor-client/language/zh_cn.json b/src/main/resources/assets/meteor-client/language/zh_cn.json new file mode 100644 index 0000000000..1a3140f140 --- /dev/null +++ b/src/main/resources/assets/meteor-client/language/zh_cn.json @@ -0,0 +1,6 @@ +{ + "meteor.lang.translators": "Wuqibor, Enaium", + + "meteor.key.open-gui": "打开GUI", + "meteor.key.open-commands": "输入命令" +} diff --git a/src/main/resources/meteor-client.mixins.json b/src/main/resources/meteor-client.mixins.json index cbf93bf82b..a5020beab0 100644 --- a/src/main/resources/meteor-client.mixins.json +++ b/src/main/resources/meteor-client.mixins.json @@ -14,7 +14,6 @@ "AbstractFurnaceScreenMixin", "AbstractSignBlockEntityRendererMixin", "AbstractSignEditScreenAccessor", - "AbstractSignEditScreenMixin", "ArmorFeatureRendererMixin", "ArmorStandEntityRendererMixin", "AttackRangeComponentMixin", @@ -71,6 +70,7 @@ "ConnectScreenMixin", "ContainerComponentAccessor", "ContainerComponentMixin", + "ControlListWidgetMixin", "CrashReportMixin", "CreativeInventoryScreenAccessor", "CreativeSlotMixin", @@ -121,8 +121,10 @@ "ItemRenderStateAccessor", "ItemStackMixin", "KeyBindingAccessor", + "KeyBindingCategoryMixin", "KeyboardInputMixin", "KeyboardMixin", + "LanguageManagerMixin", "LayerRenderStateAccessor", "LightmapTextureManagerMixin", "LightningEntityRendererMixin",