NeverToolMode

Properties

Link copied to clipboard
Link copied to clipboard

Stores the ValueGroup in which the ValueGroup is included, can be null.

Link copied to clipboard
open val baseKey: String

The base key used when base is null, otherwise the baseKey from base is used when its base is null and so on.

Link copied to clipboard
@get:JvmName(name = "getContainedValues")
val containedValues: Array<Value<*>>
Link copied to clipboard
open override val debugDisplayName: FormattedCharSequence
Link copied to clipboard
open override val debugOwnerId: String
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

If true, value will not be included in generated public config. Can be set using doNotIncludeWhen or doNotIncludeAlways.

Link copied to clipboard
val EventListener.eventListenerScope: CoroutineScope

Get the related CoroutineScope of receiver EventListener.

Link copied to clipboard
open val gpuDevice: GpuDevice
Link copied to clipboard
Link copied to clipboard

Group for optional inclusion during configuration saving. Managed by AutoConfig.

Link copied to clipboard
Link copied to clipboard
open val inGame: Boolean
Link copied to clipboard
open val interaction: MultiPlayerGameMode
Link copied to clipboard

If true, value will always keep inner equals defaultValue.

Link copied to clipboard

If false, the value is neither written to nor read from config files, but still reaches the GUI. For values whose state lives elsewhere, such as another client's modules.

Link copied to clipboard
var key: String?
Link copied to clipboard
open val mc: Minecraft
Link copied to clipboard
@SerializedName(value = "name")
val name: String
Link copied to clipboard
open val network: ClientPacketListener
Link copied to clipboard

If true, value will not be included in generated RestAPI config.

Link copied to clipboard
override val parent: ModeValueGroup<*>
Link copied to clipboard
open val player: LocalPlayer
Link copied to clipboard
open override val running: Boolean

We check if the parent is active and if the mode is active, if so we handle the events.

Link copied to clipboard
Link copied to clipboard
override val tag: String
Link copied to clipboard
override val tagAliases: List<String>
Link copied to clipboard
Link copied to clipboard

Hides the value from the GUI while false. Configs keep it either way.

Link copied to clipboard
open val world: ClientLevel

Functions

Link copied to clipboard
open fun after(ticks: Int, task: Runnable): AutoCloseable

Runs task once, ticks game ticks from now, unless this listener stops running first.

Link copied to clipboard
fun asStateFlow(): StateFlow<MutableCollection<Value<*>>>
Link copied to clipboard
fun bind(name: String, default: Int = InputConstants.UNKNOWN.value): BindValue
fun bind(name: String, default: InputBind): BindValue
Link copied to clipboard

Binds to the given input name.

fun Value<InputBind>.bind(key: InputConstants.Key, action: InputBind.BindAction, modifiers: Set<InputBind.Modifier>)

Binds to the given input type and code.

Link copied to clipboard
fun block(name: String, default: Block): Value<Block>
Link copied to clipboard
fun <C : SequencedSet<Block>> blocks(name: String, default: C): RegistryListValue<C, Block>
Link copied to clipboard
@JvmName(name = "bool")
fun boolean(name: String, default: Boolean, aliases: List<String> = emptyList()): Value<Boolean>
Link copied to clipboard
fun <C : SequencedSet<Identifier>> c2sPackets(name: String, default: C): RegistryListValue<C, Identifier>
Link copied to clipboard

Checks if this value should be included in the public configuration based on its doNotInclude condition and inclusionGroup.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
fun color(name: String, default: Color4b): Value<Color4b>
Link copied to clipboard
inline fun <E : Event, V> EventListener.computedOn(initialValue: V, priority: Short = 0, crossinline accumulator: (event: E, prev: V) -> V): ReadWriteProperty<EventListener, V>

Returns computed ReadWriteProperty based on the accumulator of specific event.

Link copied to clipboard
open override fun <T : Event> EventListener.createEventHook(eventClass: Class<T>, wrappedContext: CoroutineContext, priority: Short, handler: SuspendableEventHandler<T>): EventHook<T>
open override fun <T : Event> EventListener.createEventHook(eventClass: Class<T>, wrappedContext: CoroutineContext, priority: Short, handler: SuspendableEventHandler<T>): EventHook<T>
Link copied to clipboard
inline fun curve(name: String, block: CurveValue.Builder.() -> Unit): CurveValue
fun curve(name: String, default: MutableList<Vector2f>, xAxis: CurveValue.Axis, yAxis: CurveValue.Axis, tension: Float = CurveValue.DEFAULT_TENSION): CurveValue
Link copied to clipboard
inline fun DebuggedOwner.debugGeometry(name: String, lazyGeometry: () -> ModuleDebug.DebuggedGeometry?)
Link copied to clipboard
inline fun DebuggedOwner.debugParameter(name: String, lazyValue: () -> Any?)
Link copied to clipboard
open fun deserializeFrom(gson: Gson, element: JsonElement)

Deserialize value from JSON

Link copied to clipboard
open fun disable()
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
fun <T : ValueGroup> drop(valueGroup: T): T
Link copied to clipboard
fun easing(name: String, default: Easing): ChoiceListValue<Easing>
Link copied to clipboard
open fun enable()
Link copied to clipboard
fun <C : SequencedSet<Identifier>> enchantments(name: String, default: C): RegistryListValue<C, Identifier>
Link copied to clipboard
@JvmName(name = "create")
fun <T : Entity> EventListener.EntityLookup(collector: EntityLookup.Collector<T>): EntityLookup<T>
Link copied to clipboard
fun <C : SequencedSet<EntityType<*>>> entityTypes(name: String, default: C): RegistryListValue<C, EntityType<*>>
Link copied to clipboard
fun <T : Enum<T>, Tagged> enumChoice(name: String, default: T): ChoiceListValue<T>

For Java, which cannot call the reified overload.

inline fun <T : Enum<T>, Tagged> enumChoice(name: String, default: T, aliases: List<String> = emptyList()): ChoiceListValue<T>
fun <T : Tagged> enumChoice(name: String, default: T, choices: Set<T>, aliases: List<String> = emptyList()): ChoiceListValue<T>
Link copied to clipboard
open fun every(ticks: Int, task: Runnable): AutoCloseable

Runs task every ticks game ticks while this listener is running, the first time after ticks.

Link copied to clipboard
Link copied to clipboard
fun file(name: String, default: File? = null, dialogMode: FileDialogMode = FileDialogMode.OPEN_FILE, supportedExtensions: Set<String>? = null): FileValue
Link copied to clipboard
@JvmName(name = "floating")
fun float(name: String, default: Float, min: Float, max: Float, suffix: String = ""): RangedValue<Float>
@JvmName(name = "floating")
fun float(name: String, default: Float, range: ClosedFloatingPointRange<Float>, suffix: String = "", aliases: List<String> = emptyList()): RangedValue<Float>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
fun getBlockBreakingDelta(pos: BlockPos, state: BlockState, itemStack: ItemStack?): Float
Link copied to clipboard
fun getSlot(state: BlockState): HotbarItemSlot?
Link copied to clipboard
Link copied to clipboard
@JvmName(name = "getTagValue")
fun getTagValue(): Any
Link copied to clipboard
@JvmName(name = "getValue")
fun getValue(): Any

operator fun getValue(u: Any?, property: KProperty<*>): MutableCollection<Value<*>>

Support for delegated properties example: var autoaim by boolean(name = "autoaim", default = true) if(!autoaim) autoaim = true

Link copied to clipboard
inline fun <T : Event> EventListener.handler(priority: Short = 0, handler: Consumer<T>): EventHook<T>
fun <T : Event> EventListener.handler(eventClass: Class<T>, priority: Short = 0, handler: Consumer<T>): EventHook<T>
Link copied to clipboard
Link copied to clipboard
open override fun inclusionGroup(group: OptionalInclusion): ValueGroup
Link copied to clipboard
@JvmName(name = "integer")
fun int(name: String, default: Int, min: Int, max: Int, suffix: String = ""): RangedValue<Int>
@JvmName(name = "integer")
fun int(name: String, default: Int, range: IntRange, suffix: String = "", aliases: List<String> = emptyList()): RangedValue<Int>
Link copied to clipboard
fun intRange(name: String, default: IntRange, range: IntRange, suffix: String = "", aliases: List<String> = emptyList()): RangedValue<IntRange>
Link copied to clipboard
fun item(name: String, default: Item): Value<Item>
Link copied to clipboard
fun <C : MutableList<Item>> itemList(name: String, default: C): RegistryMutableListValue<C, Item>
inline fun <T : MutableSet<E>, E> itemList(name: String, defaultValue: T, items: Set<ItemListValue.NamedItem<E>>, valueType: ValueType): ItemListValue<T, E>
fun <T : MutableSet<E>, E> itemList(name: String, defaultValue: T, items: Set<ItemListValue.NamedItem<E>>, valueType: ValueType, innerType: Class<E>): ItemListValue<T, E>
Link copied to clipboard
fun <C : SequencedSet<Item>> items(name: String, default: C): RegistryListValue<C, Item>
Link copied to clipboard
fun ValueGroup.json(valueObject: JsonObject)

Assigns the value of the settings to the component

Link copied to clipboard
fun key(name: String, default: InputConstants.Key = InputConstants.UNKNOWN): Value<InputConstants.Key>
fun key(name: String, default: Int): Value<InputConstants.Key>
Link copied to clipboard
inline fun <T : MutableCollection<E>, E> list(name: String, defaultValue: T, valueType: ValueType): ListValue<T, E>
fun <T : MutableCollection<E>, E> list(name: String, defaultValue: T, valueType: ValueType, innerType: Class<E>): ListValue<T, E>
Link copied to clipboard

Uses text instead of a translation key, for descriptions that come from outside LiquidBounce.

Link copied to clipboard
fun <T : Any, R> Value<T>.mapReadOnly(transform: (T) -> R): ReadOnlyProperty<Any?, R>
Link copied to clipboard
fun <C : SequencedSet<MobEffect>> mobEffects(name: String, default: C): RegistryListValue<C, MobEffect>
Link copied to clipboard
fun <T : Mode> modes(eventListener: EventListener?, name: String, activeCallback: ToIntFunction<List<T>>, modesCallback: (ModeValueGroup<T>) -> Array<T>): ModeValueGroup<T>
Link copied to clipboard
inline fun <T : Enum<T>, Tagged> multiEnumChoice(name: String, default: Iterable<T>, canBeNone: Boolean = true): MultiChoiceListValue<T?>
inline fun <T : Enum<T>, Tagged> multiEnumChoice(name: String, vararg default: T, canBeNone: Boolean = true): MultiChoiceListValue<T?>
inline fun <T : Enum<T>, Tagged> multiEnumChoice(name: String, default: EnumSet<T> = enumSetOf(), choices: EnumSet<T> = enumSetAllOf(), canBeNone: Boolean = true): MultiChoiceListValue<T?>
inline fun <T : Enum<T>, Tagged> multiEnumChoice(name: String, default: SequencedSet<T>, choices: EnumSet<T> = enumSetAllOf(), canBeNone: Boolean = true): MultiChoiceListValue<T?>
fun <T : Tagged> multiEnumChoice(name: String, default: MutableSet<T>, choices: Set<T>, canBeNone: Boolean, isOrderSensitive: Boolean): MultiChoiceListValue<T>

fun <T : Enum<T>, Tagged> multiEnumChoice(name: String, type: Class<T>, default: Collection<T>, canBeNone: Boolean = true): MultiChoiceListValue<T>

For Java, which cannot call the reified overloads.

Link copied to clipboard
inline fun <T : MutableCollection<E>, E> mutableList(name: String, defaultValue: T, valueType: ValueType): MutableListValue<T, E>
fun <T : MutableCollection<E>, E> mutableList(name: String, defaultValue: T, valueType: ValueType, innerType: Class<E>): MutableListValue<T, E>
Link copied to clipboard
inline fun <E : Event> EventListener.newEventHook(priority: Short = 0, handler: Consumer<E>): EventHook<E>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open fun <E : Event> on(type: Class<E>, handler: Consumer<E>): AutoCloseable

open fun <E : Event> on(type: Class<E>, priority: Short, handler: Consumer<E>): AutoCloseable

Calls handler for every type event while this listener is running. Higher priority runs first. Close the result to stop early; unregister does the same for all of them.

Link copied to clipboard
inline fun <T : Event> EventListener.once(priority: Short = 0, crossinline handler: (T) -> Unit): EventHook<T>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open fun onTick(task: Runnable): AutoCloseable

task every game tick while this listener is running.

Link copied to clipboard
open override fun parent(): EventListener?
Link copied to clipboard
fun ValueGroup.percentageChance(name: String, default: Float, range: ClosedFloatingPointRange<Float> = 0f..100f, randomGetter: Supplier<out RandomGenerator> = DEFAULT_RANDOM): PercentageChance<Float>
fun ValueGroup.percentageChance(name: String, default: Int, range: IntRange = 0..100, randomGetter: Supplier<out RandomGenerator> = DEFAULT_RANDOM): PercentageChance<Int>
Link copied to clipboard
open fun prepareDeserialize(jsonObject: JsonObject)

Allows dynamic groups to create their children before stored values are applied.

Link copied to clipboard
fun regex(name: String, default: Regex): Value<Regex>
Link copied to clipboard
Link copied to clipboard
inline fun <T : SequencedSet<E>, E> registryList(name: String, defaultValue: T, valueType: ValueType): RegistryListValue<T, E>
fun <T : SequencedSet<E>, E> registryList(name: String, defaultValue: T, valueType: ValueType, innerType: Class<E>): RegistryListValue<T, E>
Link copied to clipboard
inline fun <T : MutableList<E>, E> registryMutableList(name: String, defaultValue: T, valueType: ValueType): RegistryMutableListValue<T, E>
fun <T : MutableList<E>, E> registryMutableList(name: String, defaultValue: T, valueType: ValueType, innerType: Class<E>): RegistryMutableListValue<T, E>
Link copied to clipboard

Remove cached scope and cancel it.

Link copied to clipboard
inline fun <T : Event> EventListener.repeated(times: Int = 1, priority: Short = 1, crossinline handler: (T) -> Unit): EventHook<T>
Link copied to clipboard
open override fun restore()

Restore all values to their default values

Link copied to clipboard
fun <C : SequencedSet<Identifier>> s2cPackets(name: String, default: C): RegistryListValue<C, Identifier>
Link copied to clipboard
inline fun <T : Event> EventListener.sequenceHandler(priority: Short = 0, dispatcher: CoroutineDispatcher? = null, onCancellation: Runnable? = null, crossinline eventHandler: SuspendableEventHandler<T>): EventHook<T>

Registers an event hook for events of type T and launches a sequence

Link copied to clipboard
Link copied to clipboard
open fun setByString(string: String)
Link copied to clipboard
operator fun setValue(u: Any?, property: KProperty<*>, t: MutableCollection<Value<*>>)
Link copied to clipboard
open override fun shouldSwitch(mineTarget: MineTarget): Boolean
Link copied to clipboard
fun <C : SequencedSet<SoundEvent>> sounds(name: String, default: C): RegistryListValue<C, SoundEvent>
Link copied to clipboard
inline fun <T : Event> EventListener.suspendHandler(context: CoroutineContext = EmptyCoroutineContext, priority: Short = 0, behavior: SuspendHandlerBehavior = SuspendHandlerBehavior.Parallel.Default, noinline handler: SuspendableEventHandler<T>): EventHook<T>

Start a Job on event.

Link copied to clipboard
fun text(name: String, default: String): Value<String>
Link copied to clipboard
Link copied to clipboard
inline fun EventListener.tickHandler(dispatcher: CoroutineDispatcher? = null, onCancellation: Runnable? = null, crossinline eventHandler: suspend CoroutineScope.() -> Unit): EventHook<GameTickEvent>

Registers a repeatable sequence which repeats the execution of code on GameTickEvent.

Link copied to clipboard
open override fun toString(): String
Link copied to clipboard
fun <T : ValueGroup> tree(valueGroup: T): T
Link copied to clipboard
fun <T : ValueGroup> treeAll(vararg valueGroups: T)
Link copied to clipboard
Link copied to clipboard

Unbinds the key by setting it to UNKNOWN_KEY.

Link copied to clipboard
open fun unregister()

Unregisters the event handler from the manager. This decision is FINAL! After the class was unregistered we cannot restore the handlers.

Link copied to clipboard
inline fun <T : Event> EventListener.until(priority: Short = 0, crossinline handler: (T) -> Boolean): EventHook<T>
Link copied to clipboard
fun <V : Value<*>> value(value: V): V
fun <T : Any> value(name: String, defaultValue: T, valueType: ValueType = ValueType.INVALID, aliases: List<String> = emptyList()): Value<T>
Link copied to clipboard
fun vec2f(name: String, default: Vector2fc): Value<Vector2fc>
Link copied to clipboard
fun vec3d(name: String, default: Vec3 = Vec3.ZERO, useLocateButton: Boolean = true, aliases: List<String> = emptyList()): Value<Vec3>
Link copied to clipboard
fun vec3i(name: String, default: Vec3i = Vec3i.ZERO, useLocateButton: Boolean = true, aliases: List<String> = emptyList()): Value<Vec3i>
Link copied to clipboard
Link copied to clipboard
inline suspend fun <T : Event> EventListener.waitMatches(priority: Short = 0, predicate: Predicate<T>): T

Wait an event of type T which matches given predicate.

suspend fun <T : Event> EventListener.waitMatches(eventClass: Class<T>, priority: Short, predicate: Predicate<T>): T
Link copied to clipboard
inline suspend fun <T : Event> EventListener.waitMatchesWithTimeout(timeout: Duration, priority: Short = 0, predicate: Predicate<T>): T?

Wait an event of type T which matches given predicate. If the timeout is exceeded, return null.

Link copied to clipboard
open fun walkInit()
Link copied to clipboard
fun walkKeyPath(previousBaseKey: String? = null)

Walks the path of the ValueGroup and its children

Link copied to clipboard

Wrap the original interceptor and make it auto-detect the listener's running state at suspension to determine whether to resume the continuation.