YetAnotherConfigLib (YACL)
A builder-based configuration library for Minecraft.
Yet Another Config Lib, like, what were you expecting?
Why does this mod even exist?
This mod was made to fill a gap in the area of Fabric modding. The existing main config libraries don't achieve what I want from them:
- Cloth Config API: It's stale. The developer of cloth has clarified that they are likely not going to add any more features. They don't want to touch it.
- SpruceUI: It isn't designed for configuration. In essence, the design feels cluttered.
- MidnightLib: It has cosmetics among other utilities. Some players wouldn't want cosmetics out of nowhere.
- OwoLib: It's content focused. It does a lot of other things as well as config, adding to the size.
As you can see, there are drawbacks with all of them and this is where YetAnotherConfigLib comes in.
How is YACL better?
YACL has the favor of hindsight. Whilst developing this fresh library, I can make sure that it does everything right:
- Easy API. YACL takes inspiration from Sodium's internal configuration library.
- It's styled to fit in Minecraft. YACL's GUI is designed to fit right in.
Usage
The wiki contains a full documentation on how to use YACL.
Screenshots
License
This mod is under the GNU Lesser General Public License, v3.0.
截图:
来自Modrinth
YetAnotherConfigLib 3.5.0 for MC 1.21
YetAnotherConfigLib-3.5.0+1.21-neoforge.jar下载3.5.0+1.21-neoforge#Release
# YetAnotherConfigLib 3.5.0
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- Fabric 1.21
- NeoForge 1.21
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## *Experimental* Codec Config
This update brings a new experimental config API that utilises Mojang's Codec for (de)serialization.
```java
public class CodecConfig extends JsonFileCodecConfig/*or*/CodecConfig {
public static final CodecConfig INSTANCE = new CodecConfig();
public final ConfigEntry<Integer> myInt =
register("my_int", 0, Codec.INT);
public final ReadonlyConfigEntry<InnerCodecConfig> myInnerConfig =
register("my_inner_config", InnerCodecConfig.INSTANCE);
public CodecConfig() {
super(path);
}
void test() {
loadFromFile(); // load like this
saveToFile(); // save like this
// or if you just extend CodecConfig instead of JsonFileConfig:
JsonElement element = null;
this.decode(element, JsonOps.INSTANCE); // load
DataResult<JsonElement> encoded = this.encodeStart(JsonOps.INSTANCE); // save
}
}
```
or in Kotlin...
```kotlin
object CodecConfig : JsonFileCodecConfig(path) {
val myInt by register<Int>(0, Codec.INT)
val myInnerConfig by register(InnerCodecConfig)
fun test() {
loadFromFile()
saveToFile()
// blah blah blah
}
}
```
## Rewritten Kotlin DSL
Completely rewrote the Kotlin DSL!
```kotlin
YetAnotherConfigLib("namespace") {
val category by categories.registering {
val option by rootOptions.registering<Int> {
controller = slider(range = 5..10)
binding(::thisProp, default)
val otherOption by categories["category"]["group"].futureRef<Boolean>()
otherOption.onReady { it.setAvailable(false) }
}
// translation key is generated automagically
val label by rootOptions.registeringLabel
val group by groups.registering {
val otherOption = options.register<Boolean>("otherOption") {
controller = tickBox()
}
}
}
}
```
## Changes
- Fix dropdown controllers erroneously showing their dropdown - Crendgrim
- Make cancel/reset and undo buttons public for accessing
- Add compatibility for 1.21
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- Fabric 1.21
- NeoForge 1.21
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## *Experimental* Codec Config
This update brings a new experimental config API that utilises Mojang's Codec for (de)serialization.
```java
public class CodecConfig extends JsonFileCodecConfig/*or*/CodecConfig {
public static final CodecConfig INSTANCE = new CodecConfig();
public final ConfigEntry<Integer> myInt =
register("my_int", 0, Codec.INT);
public final ReadonlyConfigEntry<InnerCodecConfig> myInnerConfig =
register("my_inner_config", InnerCodecConfig.INSTANCE);
public CodecConfig() {
super(path);
}
void test() {
loadFromFile(); // load like this
saveToFile(); // save like this
// or if you just extend CodecConfig instead of JsonFileConfig:
JsonElement element = null;
this.decode(element, JsonOps.INSTANCE); // load
DataResult<JsonElement> encoded = this.encodeStart(JsonOps.INSTANCE); // save
}
}
```
or in Kotlin...
```kotlin
object CodecConfig : JsonFileCodecConfig(path) {
val myInt by register<Int>(0, Codec.INT)
val myInnerConfig by register(InnerCodecConfig)
fun test() {
loadFromFile()
saveToFile()
// blah blah blah
}
}
```
## Rewritten Kotlin DSL
Completely rewrote the Kotlin DSL!
```kotlin
YetAnotherConfigLib("namespace") {
val category by categories.registering {
val option by rootOptions.registering<Int> {
controller = slider(range = 5..10)
binding(::thisProp, default)
val otherOption by categories["category"]["group"].futureRef<Boolean>()
otherOption.onReady { it.setAvailable(false) }
}
// translation key is generated automagically
val label by rootOptions.registeringLabel
val group by groups.registering {
val otherOption = options.register<Boolean>("otherOption") {
controller = tickBox()
}
}
}
}
```
## Changes
- Fix dropdown controllers erroneously showing their dropdown - Crendgrim
- Make cancel/reset and undo buttons public for accessing
- Add compatibility for 1.21
展开
版本: 3.5.0+1.21-neoforge
支持游戏: 1.21
类型: NeoForge
Release
下载次数: 12,625
YetAnotherConfigLib 3.5.0 for MC 1.21
YetAnotherConfigLib-3.5.0+1.21-neoforge.jar下载3.5.0+1.21-neoforge#Release
# YetAnotherConfigLib 3.5.0
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- Fabric 1.21
- NeoForge 1.21
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## *Experimental* Codec Config
This update brings a new experimental config API that utilises Mojang's Codec for (de)serialization.
```java
public class CodecConfig extends JsonFileCodecConfig/*or*/CodecConfig {
public static final CodecConfig INSTANCE = new CodecConfig();
public final ConfigEntry<Integer> myInt =
register("my_int", 0, Codec.INT);
public final ReadonlyConfigEntry<InnerCodecConfig> myInnerConfig =
register("my_inner_config", InnerCodecConfig.INSTANCE);
public CodecConfig() {
super(path);
}
void test() {
loadFromFile(); // load like this
saveToFile(); // save like this
// or if you just extend CodecConfig instead of JsonFileConfig:
JsonElement element = null;
this.decode(element, JsonOps.INSTANCE); // load
DataResult<JsonElement> encoded = this.encodeStart(JsonOps.INSTANCE); // save
}
}
```
or in Kotlin...
```kotlin
object CodecConfig : JsonFileCodecConfig(path) {
val myInt by register<Int>(0, Codec.INT)
val myInnerConfig by register(InnerCodecConfig)
fun test() {
loadFromFile()
saveToFile()
// blah blah blah
}
}
```
## Rewritten Kotlin DSL
Completely rewrote the Kotlin DSL!
```kotlin
YetAnotherConfigLib("namespace") {
val category by categories.registering {
val option by rootOptions.registering<Int> {
controller = slider(range = 5..10)
binding(::thisProp, default)
val otherOption by categories["category"]["group"].futureRef<Boolean>()
otherOption.onReady { it.setAvailable(false) }
}
// translation key is generated automagically
val label by rootOptions.registeringLabel
val group by groups.registering {
val otherOption = options.register<Boolean>("otherOption") {
controller = tickBox()
}
}
}
}
```
## Changes
- Fix dropdown controllers erroneously showing their dropdown - Crendgrim
- Make cancel/reset and undo buttons public for accessing
- Add compatibility for 1.21
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- Fabric 1.21
- NeoForge 1.21
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## *Experimental* Codec Config
This update brings a new experimental config API that utilises Mojang's Codec for (de)serialization.
```java
public class CodecConfig extends JsonFileCodecConfig/*or*/CodecConfig {
public static final CodecConfig INSTANCE = new CodecConfig();
public final ConfigEntry<Integer> myInt =
register("my_int", 0, Codec.INT);
public final ReadonlyConfigEntry<InnerCodecConfig> myInnerConfig =
register("my_inner_config", InnerCodecConfig.INSTANCE);
public CodecConfig() {
super(path);
}
void test() {
loadFromFile(); // load like this
saveToFile(); // save like this
// or if you just extend CodecConfig instead of JsonFileConfig:
JsonElement element = null;
this.decode(element, JsonOps.INSTANCE); // load
DataResult<JsonElement> encoded = this.encodeStart(JsonOps.INSTANCE); // save
}
}
```
or in Kotlin...
```kotlin
object CodecConfig : JsonFileCodecConfig(path) {
val myInt by register<Int>(0, Codec.INT)
val myInnerConfig by register(InnerCodecConfig)
fun test() {
loadFromFile()
saveToFile()
// blah blah blah
}
}
```
## Rewritten Kotlin DSL
Completely rewrote the Kotlin DSL!
```kotlin
YetAnotherConfigLib("namespace") {
val category by categories.registering {
val option by rootOptions.registering<Int> {
controller = slider(range = 5..10)
binding(::thisProp, default)
val otherOption by categories["category"]["group"].futureRef<Boolean>()
otherOption.onReady { it.setAvailable(false) }
}
// translation key is generated automagically
val label by rootOptions.registeringLabel
val group by groups.registering {
val otherOption = options.register<Boolean>("otherOption") {
controller = tickBox()
}
}
}
}
```
## Changes
- Fix dropdown controllers erroneously showing their dropdown - Crendgrim
- Make cancel/reset and undo buttons public for accessing
- Add compatibility for 1.21
展开
版本: 3.5.0+1.21-neoforge
支持游戏: 1.21
类型: NeoForge
Release
下载次数: 131
YetAnotherConfigLib 3.5.0 for MC 1.21
YetAnotherConfigLib-3.5.0+1.21-fabric.jar下载3.5.0+1.21-fabric#Release
# YetAnotherConfigLib 3.5.0
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- Fabric 1.21
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## *Experimental* Codec Config
This update brings a new experimental config API that utilises Mojang's Codec for (de)serialization.
```java
public class CodecConfig extends JsonFileCodecConfig/*or*/CodecConfig {
public static final CodecConfig INSTANCE = new CodecConfig();
public final ConfigEntry<Integer> myInt =
register("my_int", 0, Codec.INT);
public final ReadonlyConfigEntry<InnerCodecConfig> myInnerConfig =
register("my_inner_config", InnerCodecConfig.INSTANCE);
public CodecConfig() {
super(path);
}
void test() {
loadFromFile(); // load like this
saveToFile(); // save like this
// or if you just extend CodecConfig instead of JsonFileConfig:
JsonElement element = null;
this.decode(element, JsonOps.INSTANCE); // load
DataResult<JsonElement> encoded = this.encodeStart(JsonOps.INSTANCE); // save
}
}
```
or in Kotlin...
```kotlin
object CodecConfig : JsonFileCodecConfig(path) {
val myInt by register<Int>(0, Codec.INT)
val myInnerConfig by register(InnerCodecConfig)
fun test() {
loadFromFile()
saveToFile()
// blah blah blah
}
}
```
## Rewritten Kotlin DSL
Completely rewrote the Kotlin DSL!
```kotlin
YetAnotherConfigLib("namespace") {
val category by categories.registering {
val option by rootOptions.registering<Int> {
controller = slider(range = 5..10)
binding(::thisProp, default)
val otherOption by categories["category"]["group"].futureRef<Boolean>()
otherOption.onReady { it.setAvailable(false) }
}
// translation key is generated automagically
val label by rootOptions.registeringLabel
val group by groups.registering {
val otherOption = options.register<Boolean>("otherOption") {
controller = tickBox()
}
}
}
}
```
## Changes
- Fix dropdown controllers erroneously showing their dropdown - Crendgrim
- Make cancel/reset and undo buttons public for accessing
- Add compatibility for 1.21
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- Fabric 1.21
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## *Experimental* Codec Config
This update brings a new experimental config API that utilises Mojang's Codec for (de)serialization.
```java
public class CodecConfig extends JsonFileCodecConfig/*or*/CodecConfig {
public static final CodecConfig INSTANCE = new CodecConfig();
public final ConfigEntry<Integer> myInt =
register("my_int", 0, Codec.INT);
public final ReadonlyConfigEntry<InnerCodecConfig> myInnerConfig =
register("my_inner_config", InnerCodecConfig.INSTANCE);
public CodecConfig() {
super(path);
}
void test() {
loadFromFile(); // load like this
saveToFile(); // save like this
// or if you just extend CodecConfig instead of JsonFileConfig:
JsonElement element = null;
this.decode(element, JsonOps.INSTANCE); // load
DataResult<JsonElement> encoded = this.encodeStart(JsonOps.INSTANCE); // save
}
}
```
or in Kotlin...
```kotlin
object CodecConfig : JsonFileCodecConfig(path) {
val myInt by register<Int>(0, Codec.INT)
val myInnerConfig by register(InnerCodecConfig)
fun test() {
loadFromFile()
saveToFile()
// blah blah blah
}
}
```
## Rewritten Kotlin DSL
Completely rewrote the Kotlin DSL!
```kotlin
YetAnotherConfigLib("namespace") {
val category by categories.registering {
val option by rootOptions.registering<Int> {
controller = slider(range = 5..10)
binding(::thisProp, default)
val otherOption by categories["category"]["group"].futureRef<Boolean>()
otherOption.onReady { it.setAvailable(false) }
}
// translation key is generated automagically
val label by rootOptions.registeringLabel
val group by groups.registering {
val otherOption = options.register<Boolean>("otherOption") {
controller = tickBox()
}
}
}
}
```
## Changes
- Fix dropdown controllers erroneously showing their dropdown - Crendgrim
- Make cancel/reset and undo buttons public for accessing
- Add compatibility for 1.21
展开
版本: 3.5.0+1.21-fabric
支持游戏: 1.21
类型: Fabric
Release
下载次数: 309,697
YetAnotherConfigLib 3.5.0 for MC 1.20.6
YetAnotherConfigLib-3.5.0+1.20.6-neoforge.jar下载3.5.0+1.20.6-neoforge#Release
# YetAnotherConfigLib 3.5.0
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- Fabric 1.21
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## *Experimental* Codec Config
This update brings a new experimental config API that utilises Mojang's Codec for (de)serialization.
```java
public class CodecConfig extends JsonFileCodecConfig/*or*/CodecConfig {
public static final CodecConfig INSTANCE = new CodecConfig();
public final ConfigEntry<Integer> myInt =
register("my_int", 0, Codec.INT);
public final ReadonlyConfigEntry<InnerCodecConfig> myInnerConfig =
register("my_inner_config", InnerCodecConfig.INSTANCE);
public CodecConfig() {
super(path);
}
void test() {
loadFromFile(); // load like this
saveToFile(); // save like this
// or if you just extend CodecConfig instead of JsonFileConfig:
JsonElement element = null;
this.decode(element, JsonOps.INSTANCE); // load
DataResult<JsonElement> encoded = this.encodeStart(JsonOps.INSTANCE); // save
}
}
```
or in Kotlin...
```kotlin
object CodecConfig : JsonFileCodecConfig(path) {
val myInt by register<Int>(0, Codec.INT)
val myInnerConfig by register(InnerCodecConfig)
fun test() {
loadFromFile()
saveToFile()
// blah blah blah
}
}
```
## Rewritten Kotlin DSL
Completely rewrote the Kotlin DSL!
```kotlin
YetAnotherConfigLib("namespace") {
val category by categories.registering {
val option by rootOptions.registering<Int> {
controller = slider(range = 5..10)
binding(::thisProp, default)
val otherOption by categories["category"]["group"].futureRef<Boolean>()
otherOption.onReady { it.setAvailable(false) }
}
// translation key is generated automagically
val label by rootOptions.registeringLabel
val group by groups.registering {
val otherOption = options.register<Boolean>("otherOption") {
controller = tickBox()
}
}
}
}
```
## Changes
- Fix dropdown controllers erroneously showing their dropdown - Crendgrim
- Make cancel/reset and undo buttons public for accessing
- Add compatibility for 1.21
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- Fabric 1.21
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## *Experimental* Codec Config
This update brings a new experimental config API that utilises Mojang's Codec for (de)serialization.
```java
public class CodecConfig extends JsonFileCodecConfig/*or*/CodecConfig {
public static final CodecConfig INSTANCE = new CodecConfig();
public final ConfigEntry<Integer> myInt =
register("my_int", 0, Codec.INT);
public final ReadonlyConfigEntry<InnerCodecConfig> myInnerConfig =
register("my_inner_config", InnerCodecConfig.INSTANCE);
public CodecConfig() {
super(path);
}
void test() {
loadFromFile(); // load like this
saveToFile(); // save like this
// or if you just extend CodecConfig instead of JsonFileConfig:
JsonElement element = null;
this.decode(element, JsonOps.INSTANCE); // load
DataResult<JsonElement> encoded = this.encodeStart(JsonOps.INSTANCE); // save
}
}
```
or in Kotlin...
```kotlin
object CodecConfig : JsonFileCodecConfig(path) {
val myInt by register<Int>(0, Codec.INT)
val myInnerConfig by register(InnerCodecConfig)
fun test() {
loadFromFile()
saveToFile()
// blah blah blah
}
}
```
## Rewritten Kotlin DSL
Completely rewrote the Kotlin DSL!
```kotlin
YetAnotherConfigLib("namespace") {
val category by categories.registering {
val option by rootOptions.registering<Int> {
controller = slider(range = 5..10)
binding(::thisProp, default)
val otherOption by categories["category"]["group"].futureRef<Boolean>()
otherOption.onReady { it.setAvailable(false) }
}
// translation key is generated automagically
val label by rootOptions.registeringLabel
val group by groups.registering {
val otherOption = options.register<Boolean>("otherOption") {
controller = tickBox()
}
}
}
}
```
## Changes
- Fix dropdown controllers erroneously showing their dropdown - Crendgrim
- Make cancel/reset and undo buttons public for accessing
- Add compatibility for 1.21
展开
版本: 3.5.0+1.20.6-neoforge
支持游戏: 1.20.6
类型: NeoForge
Release
下载次数: 1,975
YetAnotherConfigLib 3.5.0 for MC 1.20.6
YetAnotherConfigLib-3.5.0+1.20.6-fabric.jar下载3.5.0+1.20.6-fabric#Release
# YetAnotherConfigLib 3.5.0
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- Fabric 1.21
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## *Experimental* Codec Config
This update brings a new experimental config API that utilises Mojang's Codec for (de)serialization.
```java
public class CodecConfig extends JsonFileCodecConfig/*or*/CodecConfig {
public static final CodecConfig INSTANCE = new CodecConfig();
public final ConfigEntry<Integer> myInt =
register("my_int", 0, Codec.INT);
public final ReadonlyConfigEntry<InnerCodecConfig> myInnerConfig =
register("my_inner_config", InnerCodecConfig.INSTANCE);
public CodecConfig() {
super(path);
}
void test() {
loadFromFile(); // load like this
saveToFile(); // save like this
// or if you just extend CodecConfig instead of JsonFileConfig:
JsonElement element = null;
this.decode(element, JsonOps.INSTANCE); // load
DataResult<JsonElement> encoded = this.encodeStart(JsonOps.INSTANCE); // save
}
}
```
or in Kotlin...
```kotlin
object CodecConfig : JsonFileCodecConfig(path) {
val myInt by register<Int>(0, Codec.INT)
val myInnerConfig by register(InnerCodecConfig)
fun test() {
loadFromFile()
saveToFile()
// blah blah blah
}
}
```
## Rewritten Kotlin DSL
Completely rewrote the Kotlin DSL!
```kotlin
YetAnotherConfigLib("namespace") {
val category by categories.registering {
val option by rootOptions.registering<Int> {
controller = slider(range = 5..10)
binding(::thisProp, default)
val otherOption by categories["category"]["group"].futureRef<Boolean>()
otherOption.onReady { it.setAvailable(false) }
}
// translation key is generated automagically
val label by rootOptions.registeringLabel
val group by groups.registering {
val otherOption = options.register<Boolean>("otherOption") {
controller = tickBox()
}
}
}
}
```
## Changes
- Fix dropdown controllers erroneously showing their dropdown - Crendgrim
- Make cancel/reset and undo buttons public for accessing
- Add compatibility for 1.21
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- Fabric 1.21
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## *Experimental* Codec Config
This update brings a new experimental config API that utilises Mojang's Codec for (de)serialization.
```java
public class CodecConfig extends JsonFileCodecConfig/*or*/CodecConfig {
public static final CodecConfig INSTANCE = new CodecConfig();
public final ConfigEntry<Integer> myInt =
register("my_int", 0, Codec.INT);
public final ReadonlyConfigEntry<InnerCodecConfig> myInnerConfig =
register("my_inner_config", InnerCodecConfig.INSTANCE);
public CodecConfig() {
super(path);
}
void test() {
loadFromFile(); // load like this
saveToFile(); // save like this
// or if you just extend CodecConfig instead of JsonFileConfig:
JsonElement element = null;
this.decode(element, JsonOps.INSTANCE); // load
DataResult<JsonElement> encoded = this.encodeStart(JsonOps.INSTANCE); // save
}
}
```
or in Kotlin...
```kotlin
object CodecConfig : JsonFileCodecConfig(path) {
val myInt by register<Int>(0, Codec.INT)
val myInnerConfig by register(InnerCodecConfig)
fun test() {
loadFromFile()
saveToFile()
// blah blah blah
}
}
```
## Rewritten Kotlin DSL
Completely rewrote the Kotlin DSL!
```kotlin
YetAnotherConfigLib("namespace") {
val category by categories.registering {
val option by rootOptions.registering<Int> {
controller = slider(range = 5..10)
binding(::thisProp, default)
val otherOption by categories["category"]["group"].futureRef<Boolean>()
otherOption.onReady { it.setAvailable(false) }
}
// translation key is generated automagically
val label by rootOptions.registeringLabel
val group by groups.registering {
val otherOption = options.register<Boolean>("otherOption") {
controller = tickBox()
}
}
}
}
```
## Changes
- Fix dropdown controllers erroneously showing their dropdown - Crendgrim
- Make cancel/reset and undo buttons public for accessing
- Add compatibility for 1.21
展开
版本: 3.5.0+1.20.6-fabric
支持游戏: 1.20.6
类型: Fabric
Release
下载次数: 72,527
YetAnotherConfigLib 3.5.0 for MC 1.20.4
YetAnotherConfigLib-3.5.0+1.20.4-neoforge.jar下载3.5.0+1.20.4-neoforge#Release
# YetAnotherConfigLib 3.5.0
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- Fabric 1.21
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## *Experimental* Codec Config
This update brings a new experimental config API that utilises Mojang's Codec for (de)serialization.
```java
public class CodecConfig extends JsonFileCodecConfig/*or*/CodecConfig {
public static final CodecConfig INSTANCE = new CodecConfig();
public final ConfigEntry<Integer> myInt =
register("my_int", 0, Codec.INT);
public final ReadonlyConfigEntry<InnerCodecConfig> myInnerConfig =
register("my_inner_config", InnerCodecConfig.INSTANCE);
public CodecConfig() {
super(path);
}
void test() {
loadFromFile(); // load like this
saveToFile(); // save like this
// or if you just extend CodecConfig instead of JsonFileConfig:
JsonElement element = null;
this.decode(element, JsonOps.INSTANCE); // load
DataResult<JsonElement> encoded = this.encodeStart(JsonOps.INSTANCE); // save
}
}
```
or in Kotlin...
```kotlin
object CodecConfig : JsonFileCodecConfig(path) {
val myInt by register<Int>(0, Codec.INT)
val myInnerConfig by register(InnerCodecConfig)
fun test() {
loadFromFile()
saveToFile()
// blah blah blah
}
}
```
## Rewritten Kotlin DSL
Completely rewrote the Kotlin DSL!
```kotlin
YetAnotherConfigLib("namespace") {
val category by categories.registering {
val option by rootOptions.registering<Int> {
controller = slider(range = 5..10)
binding(::thisProp, default)
val otherOption by categories["category"]["group"].futureRef<Boolean>()
otherOption.onReady { it.setAvailable(false) }
}
// translation key is generated automagically
val label by rootOptions.registeringLabel
val group by groups.registering {
val otherOption = options.register<Boolean>("otherOption") {
controller = tickBox()
}
}
}
}
```
## Changes
- Fix dropdown controllers erroneously showing their dropdown - Crendgrim
- Make cancel/reset and undo buttons public for accessing
- Add compatibility for 1.21
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- Fabric 1.21
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## *Experimental* Codec Config
This update brings a new experimental config API that utilises Mojang's Codec for (de)serialization.
```java
public class CodecConfig extends JsonFileCodecConfig/*or*/CodecConfig {
public static final CodecConfig INSTANCE = new CodecConfig();
public final ConfigEntry<Integer> myInt =
register("my_int", 0, Codec.INT);
public final ReadonlyConfigEntry<InnerCodecConfig> myInnerConfig =
register("my_inner_config", InnerCodecConfig.INSTANCE);
public CodecConfig() {
super(path);
}
void test() {
loadFromFile(); // load like this
saveToFile(); // save like this
// or if you just extend CodecConfig instead of JsonFileConfig:
JsonElement element = null;
this.decode(element, JsonOps.INSTANCE); // load
DataResult<JsonElement> encoded = this.encodeStart(JsonOps.INSTANCE); // save
}
}
```
or in Kotlin...
```kotlin
object CodecConfig : JsonFileCodecConfig(path) {
val myInt by register<Int>(0, Codec.INT)
val myInnerConfig by register(InnerCodecConfig)
fun test() {
loadFromFile()
saveToFile()
// blah blah blah
}
}
```
## Rewritten Kotlin DSL
Completely rewrote the Kotlin DSL!
```kotlin
YetAnotherConfigLib("namespace") {
val category by categories.registering {
val option by rootOptions.registering<Int> {
controller = slider(range = 5..10)
binding(::thisProp, default)
val otherOption by categories["category"]["group"].futureRef<Boolean>()
otherOption.onReady { it.setAvailable(false) }
}
// translation key is generated automagically
val label by rootOptions.registeringLabel
val group by groups.registering {
val otherOption = options.register<Boolean>("otherOption") {
controller = tickBox()
}
}
}
}
```
## Changes
- Fix dropdown controllers erroneously showing their dropdown - Crendgrim
- Make cancel/reset and undo buttons public for accessing
- Add compatibility for 1.21
展开
版本: 3.5.0+1.20.4-neoforge
支持游戏: 1.20.4
类型: NeoForge
Release
下载次数: 2,818
YetAnotherConfigLib 3.5.0 for MC 1.20.4
YetAnotherConfigLib-3.5.0+1.20.4-fabric.jar下载3.5.0+1.20.4-fabric#Release
# YetAnotherConfigLib 3.5.0
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- Fabric 1.21
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## *Experimental* Codec Config
This update brings a new experimental config API that utilises Mojang's Codec for (de)serialization.
```java
public class CodecConfig extends JsonFileCodecConfig/*or*/CodecConfig {
public static final CodecConfig INSTANCE = new CodecConfig();
public final ConfigEntry<Integer> myInt =
register("my_int", 0, Codec.INT);
public final ReadonlyConfigEntry<InnerCodecConfig> myInnerConfig =
register("my_inner_config", InnerCodecConfig.INSTANCE);
public CodecConfig() {
super(path);
}
void test() {
loadFromFile(); // load like this
saveToFile(); // save like this
// or if you just extend CodecConfig instead of JsonFileConfig:
JsonElement element = null;
this.decode(element, JsonOps.INSTANCE); // load
DataResult<JsonElement> encoded = this.encodeStart(JsonOps.INSTANCE); // save
}
}
```
or in Kotlin...
```kotlin
object CodecConfig : JsonFileCodecConfig(path) {
val myInt by register<Int>(0, Codec.INT)
val myInnerConfig by register(InnerCodecConfig)
fun test() {
loadFromFile()
saveToFile()
// blah blah blah
}
}
```
## Rewritten Kotlin DSL
Completely rewrote the Kotlin DSL!
```kotlin
YetAnotherConfigLib("namespace") {
val category by categories.registering {
val option by rootOptions.registering<Int> {
controller = slider(range = 5..10)
binding(::thisProp, default)
val otherOption by categories["category"]["group"].futureRef<Boolean>()
otherOption.onReady { it.setAvailable(false) }
}
// translation key is generated automagically
val label by rootOptions.registeringLabel
val group by groups.registering {
val otherOption = options.register<Boolean>("otherOption") {
controller = tickBox()
}
}
}
}
```
## Changes
- Fix dropdown controllers erroneously showing their dropdown - Crendgrim
- Make cancel/reset and undo buttons public for accessing
- Add compatibility for 1.21
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- Fabric 1.21
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## *Experimental* Codec Config
This update brings a new experimental config API that utilises Mojang's Codec for (de)serialization.
```java
public class CodecConfig extends JsonFileCodecConfig/*or*/CodecConfig {
public static final CodecConfig INSTANCE = new CodecConfig();
public final ConfigEntry<Integer> myInt =
register("my_int", 0, Codec.INT);
public final ReadonlyConfigEntry<InnerCodecConfig> myInnerConfig =
register("my_inner_config", InnerCodecConfig.INSTANCE);
public CodecConfig() {
super(path);
}
void test() {
loadFromFile(); // load like this
saveToFile(); // save like this
// or if you just extend CodecConfig instead of JsonFileConfig:
JsonElement element = null;
this.decode(element, JsonOps.INSTANCE); // load
DataResult<JsonElement> encoded = this.encodeStart(JsonOps.INSTANCE); // save
}
}
```
or in Kotlin...
```kotlin
object CodecConfig : JsonFileCodecConfig(path) {
val myInt by register<Int>(0, Codec.INT)
val myInnerConfig by register(InnerCodecConfig)
fun test() {
loadFromFile()
saveToFile()
// blah blah blah
}
}
```
## Rewritten Kotlin DSL
Completely rewrote the Kotlin DSL!
```kotlin
YetAnotherConfigLib("namespace") {
val category by categories.registering {
val option by rootOptions.registering<Int> {
controller = slider(range = 5..10)
binding(::thisProp, default)
val otherOption by categories["category"]["group"].futureRef<Boolean>()
otherOption.onReady { it.setAvailable(false) }
}
// translation key is generated automagically
val label by rootOptions.registeringLabel
val group by groups.registering {
val otherOption = options.register<Boolean>("otherOption") {
controller = tickBox()
}
}
}
}
```
## Changes
- Fix dropdown controllers erroneously showing their dropdown - Crendgrim
- Make cancel/reset and undo buttons public for accessing
- Add compatibility for 1.21
展开
版本: 3.5.0+1.20.4-fabric
支持游戏: 1.20.4
类型: Fabric
Release
下载次数: 66,353
YetAnotherConfigLib 3.5.0 for MC 1.20.1
YetAnotherConfigLib-3.5.0+1.20.1-forge.jar下载3.5.0+1.20.1-forge#Release
# YetAnotherConfigLib 3.5.0
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- Fabric 1.21
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## *Experimental* Codec Config
This update brings a new experimental config API that utilises Mojang's Codec for (de)serialization.
```java
public class CodecConfig extends JsonFileCodecConfig/*or*/CodecConfig {
public static final CodecConfig INSTANCE = new CodecConfig();
public final ConfigEntry<Integer> myInt =
register("my_int", 0, Codec.INT);
public final ReadonlyConfigEntry<InnerCodecConfig> myInnerConfig =
register("my_inner_config", InnerCodecConfig.INSTANCE);
public CodecConfig() {
super(path);
}
void test() {
loadFromFile(); // load like this
saveToFile(); // save like this
// or if you just extend CodecConfig instead of JsonFileConfig:
JsonElement element = null;
this.decode(element, JsonOps.INSTANCE); // load
DataResult<JsonElement> encoded = this.encodeStart(JsonOps.INSTANCE); // save
}
}
```
or in Kotlin...
```kotlin
object CodecConfig : JsonFileCodecConfig(path) {
val myInt by register<Int>(0, Codec.INT)
val myInnerConfig by register(InnerCodecConfig)
fun test() {
loadFromFile()
saveToFile()
// blah blah blah
}
}
```
## Rewritten Kotlin DSL
Completely rewrote the Kotlin DSL!
```kotlin
YetAnotherConfigLib("namespace") {
val category by categories.registering {
val option by rootOptions.registering<Int> {
controller = slider(range = 5..10)
binding(::thisProp, default)
val otherOption by categories["category"]["group"].futureRef<Boolean>()
otherOption.onReady { it.setAvailable(false) }
}
// translation key is generated automagically
val label by rootOptions.registeringLabel
val group by groups.registering {
val otherOption = options.register<Boolean>("otherOption") {
controller = tickBox()
}
}
}
}
```
## Changes
- Fix dropdown controllers erroneously showing their dropdown - Crendgrim
- Make cancel/reset and undo buttons public for accessing
- Add compatibility for 1.21
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- Fabric 1.21
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## *Experimental* Codec Config
This update brings a new experimental config API that utilises Mojang's Codec for (de)serialization.
```java
public class CodecConfig extends JsonFileCodecConfig/*or*/CodecConfig {
public static final CodecConfig INSTANCE = new CodecConfig();
public final ConfigEntry<Integer> myInt =
register("my_int", 0, Codec.INT);
public final ReadonlyConfigEntry<InnerCodecConfig> myInnerConfig =
register("my_inner_config", InnerCodecConfig.INSTANCE);
public CodecConfig() {
super(path);
}
void test() {
loadFromFile(); // load like this
saveToFile(); // save like this
// or if you just extend CodecConfig instead of JsonFileConfig:
JsonElement element = null;
this.decode(element, JsonOps.INSTANCE); // load
DataResult<JsonElement> encoded = this.encodeStart(JsonOps.INSTANCE); // save
}
}
```
or in Kotlin...
```kotlin
object CodecConfig : JsonFileCodecConfig(path) {
val myInt by register<Int>(0, Codec.INT)
val myInnerConfig by register(InnerCodecConfig)
fun test() {
loadFromFile()
saveToFile()
// blah blah blah
}
}
```
## Rewritten Kotlin DSL
Completely rewrote the Kotlin DSL!
```kotlin
YetAnotherConfigLib("namespace") {
val category by categories.registering {
val option by rootOptions.registering<Int> {
controller = slider(range = 5..10)
binding(::thisProp, default)
val otherOption by categories["category"]["group"].futureRef<Boolean>()
otherOption.onReady { it.setAvailable(false) }
}
// translation key is generated automagically
val label by rootOptions.registeringLabel
val group by groups.registering {
val otherOption = options.register<Boolean>("otherOption") {
controller = tickBox()
}
}
}
}
```
## Changes
- Fix dropdown controllers erroneously showing their dropdown - Crendgrim
- Make cancel/reset and undo buttons public for accessing
- Add compatibility for 1.21
展开
版本: 3.5.0+1.20.1-forge
支持游戏: 1.20.1
类型: Forge
Release
下载次数: 15,837
YetAnotherConfigLib 3.5.0 for MC 1.20.1
YetAnotherConfigLib-3.5.0+1.20.1-fabric.jar下载3.5.0+1.20.1-fabric#Release
# YetAnotherConfigLib 3.5.0
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- Fabric 1.21
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## *Experimental* Codec Config
This update brings a new experimental config API that utilises Mojang's Codec for (de)serialization.
```java
public class CodecConfig extends JsonFileCodecConfig/*or*/CodecConfig {
public static final CodecConfig INSTANCE = new CodecConfig();
public final ConfigEntry<Integer> myInt =
register("my_int", 0, Codec.INT);
public final ReadonlyConfigEntry<InnerCodecConfig> myInnerConfig =
register("my_inner_config", InnerCodecConfig.INSTANCE);
public CodecConfig() {
super(path);
}
void test() {
loadFromFile(); // load like this
saveToFile(); // save like this
// or if you just extend CodecConfig instead of JsonFileConfig:
JsonElement element = null;
this.decode(element, JsonOps.INSTANCE); // load
DataResult<JsonElement> encoded = this.encodeStart(JsonOps.INSTANCE); // save
}
}
```
or in Kotlin...
```kotlin
object CodecConfig : JsonFileCodecConfig(path) {
val myInt by register<Int>(0, Codec.INT)
val myInnerConfig by register(InnerCodecConfig)
fun test() {
loadFromFile()
saveToFile()
// blah blah blah
}
}
```
## Rewritten Kotlin DSL
Completely rewrote the Kotlin DSL!
```kotlin
YetAnotherConfigLib("namespace") {
val category by categories.registering {
val option by rootOptions.registering<Int> {
controller = slider(range = 5..10)
binding(::thisProp, default)
val otherOption by categories["category"]["group"].futureRef<Boolean>()
otherOption.onReady { it.setAvailable(false) }
}
// translation key is generated automagically
val label by rootOptions.registeringLabel
val group by groups.registering {
val otherOption = options.register<Boolean>("otherOption") {
controller = tickBox()
}
}
}
}
```
## Changes
- Fix dropdown controllers erroneously showing their dropdown - Crendgrim
- Make cancel/reset and undo buttons public for accessing
- Add compatibility for 1.21
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- Fabric 1.21
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## *Experimental* Codec Config
This update brings a new experimental config API that utilises Mojang's Codec for (de)serialization.
```java
public class CodecConfig extends JsonFileCodecConfig/*or*/CodecConfig {
public static final CodecConfig INSTANCE = new CodecConfig();
public final ConfigEntry<Integer> myInt =
register("my_int", 0, Codec.INT);
public final ReadonlyConfigEntry<InnerCodecConfig> myInnerConfig =
register("my_inner_config", InnerCodecConfig.INSTANCE);
public CodecConfig() {
super(path);
}
void test() {
loadFromFile(); // load like this
saveToFile(); // save like this
// or if you just extend CodecConfig instead of JsonFileConfig:
JsonElement element = null;
this.decode(element, JsonOps.INSTANCE); // load
DataResult<JsonElement> encoded = this.encodeStart(JsonOps.INSTANCE); // save
}
}
```
or in Kotlin...
```kotlin
object CodecConfig : JsonFileCodecConfig(path) {
val myInt by register<Int>(0, Codec.INT)
val myInnerConfig by register(InnerCodecConfig)
fun test() {
loadFromFile()
saveToFile()
// blah blah blah
}
}
```
## Rewritten Kotlin DSL
Completely rewrote the Kotlin DSL!
```kotlin
YetAnotherConfigLib("namespace") {
val category by categories.registering {
val option by rootOptions.registering<Int> {
controller = slider(range = 5..10)
binding(::thisProp, default)
val otherOption by categories["category"]["group"].futureRef<Boolean>()
otherOption.onReady { it.setAvailable(false) }
}
// translation key is generated automagically
val label by rootOptions.registeringLabel
val group by groups.registering {
val otherOption = options.register<Boolean>("otherOption") {
controller = tickBox()
}
}
}
}
```
## Changes
- Fix dropdown controllers erroneously showing their dropdown - Crendgrim
- Make cancel/reset and undo buttons public for accessing
- Add compatibility for 1.21
展开
版本: 3.5.0+1.20.1-fabric
支持游戏: 1.20.1
类型: Fabric
Release
下载次数: 138,739
YetAnotherConfigLib 3.4.4 for MC 1.20.1
YetAnotherConfigLib-3.4.4+1.20.1-fabric.jar下载3.4.4+1.20.1-fabric#Release
# YetAnotherConfigLib 3.4.4
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## Bug Fixes
- Fix Kotlin DSL not being included
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## Bug Fixes
- Fix Kotlin DSL not being included
展开
版本: 3.4.4+1.20.1-fabric
支持游戏: 1.20.1
类型: Fabric
Release
下载次数: 118,617
YetAnotherConfigLib 3.4.4 for MC 1.20.1
YetAnotherConfigLib-3.4.4+1.20.1-forge.jar下载3.4.4+1.20.1-forge#Release
# YetAnotherConfigLib 3.4.4
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## Bug Fixes
- Fix Kotlin DSL not being included
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## Bug Fixes
- Fix Kotlin DSL not being included
展开
版本: 3.4.4+1.20.1-forge
支持游戏: 1.20.1
类型: Forge
Release
下载次数: 8,355
YetAnotherConfigLib 3.4.4 for MC 1.20.4
YetAnotherConfigLib-3.4.4+1.20.4-fabric.jar下载3.4.4+1.20.4-fabric#Release
# YetAnotherConfigLib 3.4.4
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## Bug Fixes
- Fix Kotlin DSL not being included
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## Bug Fixes
- Fix Kotlin DSL not being included
展开
版本: 3.4.4+1.20.4-fabric
支持游戏: 1.20.4
类型: Fabric
Release
下载次数: 66,336
YetAnotherConfigLib 3.4.4 for MC 1.20.6
YetAnotherConfigLib-3.4.4+1.20.6-fabric.jar下载3.4.4+1.20.6-fabric#Release
# YetAnotherConfigLib 3.4.4
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## Bug Fixes
- Fix Kotlin DSL not being included
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## Bug Fixes
- Fix Kotlin DSL not being included
展开
版本: 3.4.4+1.20.6-fabric
支持游戏: 1.20.6
类型: Fabric
Release
下载次数: 117,169
YetAnotherConfigLib 3.4.4 for MC 1.20.4
YetAnotherConfigLib-3.4.4+1.20.4-neoforge.jar下载3.4.4+1.20.4-neoforge#Release
# YetAnotherConfigLib 3.4.4
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## Bug Fixes
- Fix Kotlin DSL not being included
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## Bug Fixes
- Fix Kotlin DSL not being included
展开
版本: 3.4.4+1.20.4-neoforge
支持游戏: 1.20.4
类型: NeoForge
Release
下载次数: 980
YetAnotherConfigLib 3.4.4 for MC 1.20.6
YetAnotherConfigLib-3.4.4+1.20.6-neoforge.jar下载3.4.4+1.20.6-neoforge#Release
# YetAnotherConfigLib 3.4.4
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## Bug Fixes
- Fix Kotlin DSL not being included
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## Bug Fixes
- Fix Kotlin DSL not being included
展开
版本: 3.4.4+1.20.6-neoforge
支持游戏: 1.20.6
类型: NeoForge
Release
下载次数: 244
YetAnotherConfigLib 3.4.3 for MC 1.20.4
YetAnotherConfigLib-3.4.3+1.20.4-fabric.jar下载3.4.3+1.20.4-fabric#Release
# YetAnotherConfigLib 3.4.3
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## Bug Fixes
- Fix YACL's metadata not displaying properly in MultiMC and its forks.
- Fix (Neo)Forge throwing an unusual error when a user accidentally puts YACL for fabric on forge.
- Fix access transformer not being present on NeoForge builds, causing crashes.
- Fix right mouse button not propagating to controllers.
([#180](https://github.com/isXander/YetAnotherConfigLib/pull/180), thanks Crendgrim)
## Translation Updates
- Add Spanish translation. ([#178](https://github.com/isXander/YetAnotherConfigLib/pull/178), thanks zeedif)
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## Bug Fixes
- Fix YACL's metadata not displaying properly in MultiMC and its forks.
- Fix (Neo)Forge throwing an unusual error when a user accidentally puts YACL for fabric on forge.
- Fix access transformer not being present on NeoForge builds, causing crashes.
- Fix right mouse button not propagating to controllers.
([#180](https://github.com/isXander/YetAnotherConfigLib/pull/180), thanks Crendgrim)
## Translation Updates
- Add Spanish translation. ([#178](https://github.com/isXander/YetAnotherConfigLib/pull/178), thanks zeedif)
展开
版本: 3.4.3+1.20.4-fabric
支持游戏: 1.20.4
类型: Fabric
Release
下载次数: 397
YetAnotherConfigLib 3.4.3 for MC 1.20.4
YetAnotherConfigLib-3.4.3+1.20.4-neoforge.jar下载3.4.3+1.20.4-neoforge#Release
# YetAnotherConfigLib 3.4.3
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## Bug Fixes
- Fix YACL's metadata not displaying properly in MultiMC and its forks.
- Fix (Neo)Forge throwing an unusual error when a user accidentally puts YACL for fabric on forge.
- Fix access transformer not being present on NeoForge builds, causing crashes.
- Fix right mouse button not propagating to controllers.
([#180](https://github.com/isXander/YetAnotherConfigLib/pull/180), thanks Crendgrim)
## Translation Updates
- Add Spanish translation. ([#178](https://github.com/isXander/YetAnotherConfigLib/pull/178), thanks zeedif)
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## Bug Fixes
- Fix YACL's metadata not displaying properly in MultiMC and its forks.
- Fix (Neo)Forge throwing an unusual error when a user accidentally puts YACL for fabric on forge.
- Fix access transformer not being present on NeoForge builds, causing crashes.
- Fix right mouse button not propagating to controllers.
([#180](https://github.com/isXander/YetAnotherConfigLib/pull/180), thanks Crendgrim)
## Translation Updates
- Add Spanish translation. ([#178](https://github.com/isXander/YetAnotherConfigLib/pull/178), thanks zeedif)
展开
版本: 3.4.3+1.20.4-neoforge
支持游戏: 1.20.4
类型: NeoForge
Release
下载次数: 25
YetAnotherConfigLib 3.4.3 for MC 1.20.6
YetAnotherConfigLib-3.4.3+1.20.6-fabric.jar下载3.4.3+1.20.6-fabric#Release
# YetAnotherConfigLib 3.4.3
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## Bug Fixes
- Fix YACL's metadata not displaying properly in MultiMC and its forks.
- Fix (Neo)Forge throwing an unusual error when a user accidentally puts YACL for fabric on forge.
- Fix access transformer not being present on NeoForge builds, causing crashes.
- Fix right mouse button not propagating to controllers.
([#180](https://github.com/isXander/YetAnotherConfigLib/pull/180), thanks Crendgrim)
## Translation Updates
- Add Spanish translation. ([#178](https://github.com/isXander/YetAnotherConfigLib/pull/178), thanks zeedif)
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## Bug Fixes
- Fix YACL's metadata not displaying properly in MultiMC and its forks.
- Fix (Neo)Forge throwing an unusual error when a user accidentally puts YACL for fabric on forge.
- Fix access transformer not being present on NeoForge builds, causing crashes.
- Fix right mouse button not propagating to controllers.
([#180](https://github.com/isXander/YetAnotherConfigLib/pull/180), thanks Crendgrim)
## Translation Updates
- Add Spanish translation. ([#178](https://github.com/isXander/YetAnotherConfigLib/pull/178), thanks zeedif)
展开
版本: 3.4.3+1.20.6-fabric
支持游戏: 1.20.6
类型: Fabric
Release
下载次数: 442
YetAnotherConfigLib 3.4.3 for MC 1.20.6
YetAnotherConfigLib-3.4.3+1.20.6-neoforge.jar下载3.4.3+1.20.6-neoforge#Release
# YetAnotherConfigLib 3.4.3
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## Bug Fixes
- Fix YACL's metadata not displaying properly in MultiMC and its forks.
- Fix (Neo)Forge throwing an unusual error when a user accidentally puts YACL for fabric on forge.
- Fix access transformer not being present on NeoForge builds, causing crashes.
- Fix right mouse button not propagating to controllers.
([#180](https://github.com/isXander/YetAnotherConfigLib/pull/180), thanks Crendgrim)
## Translation Updates
- Add Spanish translation. ([#178](https://github.com/isXander/YetAnotherConfigLib/pull/178), thanks zeedif)
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.6 (also supports 1.20.5)
- NeoForge 1.20.4
- MinecraftForge 1.20.1
## Bug Fixes
- Fix YACL's metadata not displaying properly in MultiMC and its forks.
- Fix (Neo)Forge throwing an unusual error when a user accidentally puts YACL for fabric on forge.
- Fix access transformer not being present on NeoForge builds, causing crashes.
- Fix right mouse button not propagating to controllers.
([#180](https://github.com/isXander/YetAnotherConfigLib/pull/180), thanks Crendgrim)
## Translation Updates
- Add Spanish translation. ([#178](https://github.com/isXander/YetAnotherConfigLib/pull/178), thanks zeedif)
展开
版本: 3.4.3+1.20.6-neoforge
支持游戏: 1.20.6
类型: NeoForge
Release
下载次数: 29
YetAnotherConfigLib 3.4.2 for MC 1.20.1
YetAnotherConfigLib-3.4.2+1.20.1-fabric.jar下载3.4.2+1.20.1-fabric#Release
# YetAnotherConfigLib 3.4.2
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
- NeoForge 1.20.5
## Bug Fixes
- Fix YACL breaking fabric reload listener dependency order
## Translation Updates
- Added colour picker translations for Tatar ([#174](https://github.com/isXander/YetAnotherConfigLib/pull/174))
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
- NeoForge 1.20.5
## Bug Fixes
- Fix YACL breaking fabric reload listener dependency order
## Translation Updates
- Added colour picker translations for Tatar ([#174](https://github.com/isXander/YetAnotherConfigLib/pull/174))
展开
版本: 3.4.2+1.20.1-fabric
支持游戏: 1.20.1
类型: Fabric
Release
下载次数: 361,878
YetAnotherConfigLib 3.4.2 for MC 1.20.1
YetAnotherConfigLib-3.4.2+1.20.1-forge.jar下载3.4.2+1.20.1-forge#Release
# YetAnotherConfigLib 3.4.2
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
- NeoForge 1.20.5
## Bug Fixes
- Fix YACL breaking fabric reload listener dependency order
## Translation Updates
- Added colour picker translations for Tatar ([#174](https://github.com/isXander/YetAnotherConfigLib/pull/174))
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
- NeoForge 1.20.5
## Bug Fixes
- Fix YACL breaking fabric reload listener dependency order
## Translation Updates
- Added colour picker translations for Tatar ([#174](https://github.com/isXander/YetAnotherConfigLib/pull/174))
展开
版本: 3.4.2+1.20.1-forge
支持游戏: 1.20.1
类型: Forge
Release
下载次数: 11,149
YetAnotherConfigLib 3.4.2 for MC 1.20.4
YetAnotherConfigLib-3.4.2+1.20.4-fabric.jar下载3.4.2+1.20.4-fabric#Release
# YetAnotherConfigLib 3.4.2
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
- NeoForge 1.20.5
## Bug Fixes
- Fix YACL breaking fabric reload listener dependency order
## Translation Updates
- Added colour picker translations for Tatar ([#174](https://github.com/isXander/YetAnotherConfigLib/pull/174))
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
- NeoForge 1.20.5
## Bug Fixes
- Fix YACL breaking fabric reload listener dependency order
## Translation Updates
- Added colour picker translations for Tatar ([#174](https://github.com/isXander/YetAnotherConfigLib/pull/174))
展开
版本: 3.4.2+1.20.4-fabric
支持游戏: 1.20.4
类型: Fabric
Release
下载次数: 119,618
YetAnotherConfigLib 3.4.2 for MC 1.20.4
YetAnotherConfigLib-3.4.2+1.20.4-neoforge.jar下载3.4.2+1.20.4-neoforge#Release
# YetAnotherConfigLib 3.4.2
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
- NeoForge 1.20.5
## Bug Fixes
- Fix YACL breaking fabric reload listener dependency order
## Translation Updates
- Added colour picker translations for Tatar ([#174](https://github.com/isXander/YetAnotherConfigLib/pull/174))
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
- NeoForge 1.20.5
## Bug Fixes
- Fix YACL breaking fabric reload listener dependency order
## Translation Updates
- Added colour picker translations for Tatar ([#174](https://github.com/isXander/YetAnotherConfigLib/pull/174))
展开
版本: 3.4.2+1.20.4-neoforge
支持游戏: 1.20.4
类型: NeoForge
Release
下载次数: 1,210
YetAnotherConfigLib 3.4.2 for MC 1.20.5
YetAnotherConfigLib-3.4.2+1.20.5-fabric.jar下载3.4.2+1.20.5-fabric#Release
# YetAnotherConfigLib 3.4.2
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
- NeoForge 1.20.5
## Bug Fixes
- Fix YACL breaking fabric reload listener dependency order
## Translation Updates
- Added colour picker translations for Tatar ([#174](https://github.com/isXander/YetAnotherConfigLib/pull/174))
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
- NeoForge 1.20.5
## Bug Fixes
- Fix YACL breaking fabric reload listener dependency order
## Translation Updates
- Added colour picker translations for Tatar ([#174](https://github.com/isXander/YetAnotherConfigLib/pull/174))
展开
版本: 3.4.2+1.20.5-fabric
支持游戏: 1.20.5, 1.20.6
类型: Fabric
Release
下载次数: 117,143
YetAnotherConfigLib 3.4.2 for MC 1.20.5
YetAnotherConfigLib-3.4.2+1.20.5-neoforge.jar下载3.4.2+1.20.5-neoforge#Release
# YetAnotherConfigLib 3.4.2
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
- NeoForge 1.20.5
## Bug Fixes
- Fix YACL breaking fabric reload listener dependency order
## Translation Updates
- Added colour picker translations for Tatar ([#174](https://github.com/isXander/YetAnotherConfigLib/pull/174))
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
- NeoForge 1.20.5
## Bug Fixes
- Fix YACL breaking fabric reload listener dependency order
## Translation Updates
- Added colour picker translations for Tatar ([#174](https://github.com/isXander/YetAnotherConfigLib/pull/174))
展开
版本: 3.4.2+1.20.5-neoforge
支持游戏: 1.20.5, 1.20.6
类型: NeoForge
Release
下载次数: 358
YetAnotherConfigLib 3.4.1 for MC 1.20.1
YetAnotherConfigLib-3.4.1+1.20.1-fabric.jar下载3.4.1+1.20.1-fabric#Release
# YetAnotherConfigLib 3.4.1
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
## Bug Fixes
- Fix conflict with Crowdin Translate
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
## Bug Fixes
- Fix conflict with Crowdin Translate
展开
版本: 3.4.1+1.20.1-fabric
支持游戏: 1.20.1
类型: Fabric
Release
下载次数: 42,741
YetAnotherConfigLib 3.4.1 for MC 1.20.1
YetAnotherConfigLib-3.4.1+1.20.1-forge.jar下载3.4.1+1.20.1-forge#Release
# YetAnotherConfigLib 3.4.1
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
## Bug Fixes
- Fix conflict with Crowdin Translate
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
## Bug Fixes
- Fix conflict with Crowdin Translate
展开
版本: 3.4.1+1.20.1-forge
支持游戏: 1.20.1
类型: Forge
Release
下载次数: 2,727
YetAnotherConfigLib 3.4.1 for MC 1.20.4
YetAnotherConfigLib-3.4.1+1.20.4-fabric.jar下载3.4.1+1.20.4-fabric#Release
# YetAnotherConfigLib 3.4.1
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
## Bug Fixes
- Fix conflict with Crowdin Translate
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
## Bug Fixes
- Fix conflict with Crowdin Translate
展开
版本: 3.4.1+1.20.4-fabric
支持游戏: 1.20.4
类型: Fabric
Release
下载次数: 65,643
YetAnotherConfigLib 3.4.1 for MC 1.20.4
YetAnotherConfigLib-3.4.1+1.20.4-neoforge.jar下载3.4.1+1.20.4-neoforge#Release
# YetAnotherConfigLib 3.4.1
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
## Bug Fixes
- Fix conflict with Crowdin Translate
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
## Bug Fixes
- Fix conflict with Crowdin Translate
展开
版本: 3.4.1+1.20.4-neoforge
支持游戏: 1.20.4
类型: NeoForge
Release
下载次数: 144
YetAnotherConfigLib 3.4.1 for MC 1.20.5
YetAnotherConfigLib-3.4.1+1.20.5-fabric.jar下载3.4.1+1.20.5-fabric#Release
# YetAnotherConfigLib 3.4.1
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
## Bug Fixes
- Fix conflict with Crowdin Translate
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
## Bug Fixes
- Fix conflict with Crowdin Translate
展开
版本: 3.4.1+1.20.5-fabric
支持游戏: 1.20.5
类型: Fabric
Release
下载次数: 125,628
YetAnotherConfigLib 3.4.0 for MC 1.20.1
YetAnotherConfigLib-3.4.0+1.20.1-fabric.jar下载3.4.0+1.20.1-fabric#Release
# YetAnotherConfigLib 3.4.0
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
## For developers...
This is the first build which uses a new build toolchain to support multiple minecraft versions in the same codebase.
With this change, the artifact of the mod has changed.
```groovy
modImplementation "dev.isxander:yet-another-config-lib:{modversion}+{mcversion}-{loader}"
// for example...
modImplementation "dev.isxander:yet-another-config-lib:3.4.0+1.20.1-fabric"
```
If you are using YACL in an architectury project (one with a common subproject), you will from now on depend on
the fabric version of YACL. There is no longer any common artifact. I don't believe there to be any issues with doing it
like this.
## Additions
- New colour picker widget by [Superkat32](https://github.com/isXander/YetAnotherConfigLib/pull/140)
- This works with existing colour options.
![Colour picker example](https://i.imgur.com/G6Yx6RU.png)
- Added a custom tab API so categories can provide their own GUI, instead of YACL options.
- Mod developers can make their category class implement `CustomTabProvider`. Javadoc is available.
- Add a new Kotlin DSL for creating your YACL UIs. This is a wrapper on top of the java builder interface providing extra functionality for Kotlin users.
- YACL does not provide any kotlin libraries, nor does it depend on them. If you would like to use this DSL, make sure your own mod depends on your loader's Kotlin mod.
- This is included in the main artifact. You don't need additional dependencies.
- An example usage can be found [in the testmod](https://github.com/isXander/YetAnotherConfigLib/blob/multiversion/dev/src/testmod/kotlin/dev/isxander/yacl3/test/DslTest.kt)
- Improved the backend of dropdown controllers by [Crendgrim](https://github.com/isXander/YetAnotherConfigLib/pull/162)
## Bug Fixes
- Fix GIFs not being preloaded in the resource reloader
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
## For developers...
This is the first build which uses a new build toolchain to support multiple minecraft versions in the same codebase.
With this change, the artifact of the mod has changed.
```groovy
modImplementation "dev.isxander:yet-another-config-lib:{modversion}+{mcversion}-{loader}"
// for example...
modImplementation "dev.isxander:yet-another-config-lib:3.4.0+1.20.1-fabric"
```
If you are using YACL in an architectury project (one with a common subproject), you will from now on depend on
the fabric version of YACL. There is no longer any common artifact. I don't believe there to be any issues with doing it
like this.
## Additions
- New colour picker widget by [Superkat32](https://github.com/isXander/YetAnotherConfigLib/pull/140)
- This works with existing colour options.
![Colour picker example](https://i.imgur.com/G6Yx6RU.png)
- Added a custom tab API so categories can provide their own GUI, instead of YACL options.
- Mod developers can make their category class implement `CustomTabProvider`. Javadoc is available.
- Add a new Kotlin DSL for creating your YACL UIs. This is a wrapper on top of the java builder interface providing extra functionality for Kotlin users.
- YACL does not provide any kotlin libraries, nor does it depend on them. If you would like to use this DSL, make sure your own mod depends on your loader's Kotlin mod.
- This is included in the main artifact. You don't need additional dependencies.
- An example usage can be found [in the testmod](https://github.com/isXander/YetAnotherConfigLib/blob/multiversion/dev/src/testmod/kotlin/dev/isxander/yacl3/test/DslTest.kt)
- Improved the backend of dropdown controllers by [Crendgrim](https://github.com/isXander/YetAnotherConfigLib/pull/162)
## Bug Fixes
- Fix GIFs not being preloaded in the resource reloader
展开
版本: 3.4.0+1.20.1-fabric
支持游戏: 1.20.1
类型: Fabric
Release
下载次数: 6,631
YetAnotherConfigLib 3.4.0 for MC 1.20.1
YetAnotherConfigLib-3.4.0+1.20.1-forge.jar下载3.4.0+1.20.1-forge#Release
# YetAnotherConfigLib 3.4.0
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
## For developers...
This is the first build which uses a new build toolchain to support multiple minecraft versions in the same codebase.
With this change, the artifact of the mod has changed.
```groovy
modImplementation "dev.isxander:yet-another-config-lib:{modversion}+{mcversion}-{loader}"
// for example...
modImplementation "dev.isxander:yet-another-config-lib:3.4.0+1.20.1-fabric"
```
If you are using YACL in an architectury project (one with a common subproject), you will from now on depend on
the fabric version of YACL. There is no longer any common artifact. I don't believe there to be any issues with doing it
like this.
## Additions
- New colour picker widget by [Superkat32](https://github.com/isXander/YetAnotherConfigLib/pull/140)
- This works with existing colour options.
![Colour picker example](https://i.imgur.com/G6Yx6RU.png)
- Added a custom tab API so categories can provide their own GUI, instead of YACL options.
- Mod developers can make their category class implement `CustomTabProvider`. Javadoc is available.
- Add a new Kotlin DSL for creating your YACL UIs. This is a wrapper on top of the java builder interface providing extra functionality for Kotlin users.
- YACL does not provide any kotlin libraries, nor does it depend on them. If you would like to use this DSL, make sure your own mod depends on your loader's Kotlin mod.
- This is included in the main artifact. You don't need additional dependencies.
- An example usage can be found [in the testmod](https://github.com/isXander/YetAnotherConfigLib/blob/multiversion/dev/src/testmod/kotlin/dev/isxander/yacl3/test/DslTest.kt)
- Improved the backend of dropdown controllers by [Crendgrim](https://github.com/isXander/YetAnotherConfigLib/pull/162)
## Bug Fixes
- Fix GIFs not being preloaded in the resource reloader
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
## For developers...
This is the first build which uses a new build toolchain to support multiple minecraft versions in the same codebase.
With this change, the artifact of the mod has changed.
```groovy
modImplementation "dev.isxander:yet-another-config-lib:{modversion}+{mcversion}-{loader}"
// for example...
modImplementation "dev.isxander:yet-another-config-lib:3.4.0+1.20.1-fabric"
```
If you are using YACL in an architectury project (one with a common subproject), you will from now on depend on
the fabric version of YACL. There is no longer any common artifact. I don't believe there to be any issues with doing it
like this.
## Additions
- New colour picker widget by [Superkat32](https://github.com/isXander/YetAnotherConfigLib/pull/140)
- This works with existing colour options.
![Colour picker example](https://i.imgur.com/G6Yx6RU.png)
- Added a custom tab API so categories can provide their own GUI, instead of YACL options.
- Mod developers can make their category class implement `CustomTabProvider`. Javadoc is available.
- Add a new Kotlin DSL for creating your YACL UIs. This is a wrapper on top of the java builder interface providing extra functionality for Kotlin users.
- YACL does not provide any kotlin libraries, nor does it depend on them. If you would like to use this DSL, make sure your own mod depends on your loader's Kotlin mod.
- This is included in the main artifact. You don't need additional dependencies.
- An example usage can be found [in the testmod](https://github.com/isXander/YetAnotherConfigLib/blob/multiversion/dev/src/testmod/kotlin/dev/isxander/yacl3/test/DslTest.kt)
- Improved the backend of dropdown controllers by [Crendgrim](https://github.com/isXander/YetAnotherConfigLib/pull/162)
## Bug Fixes
- Fix GIFs not being preloaded in the resource reloader
展开
版本: 3.4.0+1.20.1-forge
支持游戏: 1.20.1
类型: Forge
Release
下载次数: 562
YetAnotherConfigLib 3.4.0 for MC 1.20.4
YetAnotherConfigLib-3.4.0+1.20.4-fabric.jar下载3.4.0+1.20.4-fabric#Release
# YetAnotherConfigLib 3.4.0
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
## For developers...
This is the first build which uses a new build toolchain to support multiple minecraft versions in the same codebase.
With this change, the artifact of the mod has changed.
```groovy
modImplementation "dev.isxander:yet-another-config-lib:{modversion}+{mcversion}-{loader}"
// for example...
modImplementation "dev.isxander:yet-another-config-lib:3.4.0+1.20.1-fabric"
```
If you are using YACL in an architectury project (one with a common subproject), you will from now on depend on
the fabric version of YACL. There is no longer any common artifact. I don't believe there to be any issues with doing it
like this.
## Additions
- New colour picker widget by [Superkat32](https://github.com/isXander/YetAnotherConfigLib/pull/140)
- This works with existing colour options.
![Colour picker example](https://i.imgur.com/G6Yx6RU.png)
- Added a custom tab API so categories can provide their own GUI, instead of YACL options.
- Mod developers can make their category class implement `CustomTabProvider`. Javadoc is available.
- Add a new Kotlin DSL for creating your YACL UIs. This is a wrapper on top of the java builder interface providing extra functionality for Kotlin users.
- YACL does not provide any kotlin libraries, nor does it depend on them. If you would like to use this DSL, make sure your own mod depends on your loader's Kotlin mod.
- This is included in the main artifact. You don't need additional dependencies.
- An example usage can be found [in the testmod](https://github.com/isXander/YetAnotherConfigLib/blob/multiversion/dev/src/testmod/kotlin/dev/isxander/yacl3/test/DslTest.kt)
- Improved the backend of dropdown controllers by [Crendgrim](https://github.com/isXander/YetAnotherConfigLib/pull/162)
## Bug Fixes
- Fix GIFs not being preloaded in the resource reloader
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
## For developers...
This is the first build which uses a new build toolchain to support multiple minecraft versions in the same codebase.
With this change, the artifact of the mod has changed.
```groovy
modImplementation "dev.isxander:yet-another-config-lib:{modversion}+{mcversion}-{loader}"
// for example...
modImplementation "dev.isxander:yet-another-config-lib:3.4.0+1.20.1-fabric"
```
If you are using YACL in an architectury project (one with a common subproject), you will from now on depend on
the fabric version of YACL. There is no longer any common artifact. I don't believe there to be any issues with doing it
like this.
## Additions
- New colour picker widget by [Superkat32](https://github.com/isXander/YetAnotherConfigLib/pull/140)
- This works with existing colour options.
![Colour picker example](https://i.imgur.com/G6Yx6RU.png)
- Added a custom tab API so categories can provide their own GUI, instead of YACL options.
- Mod developers can make their category class implement `CustomTabProvider`. Javadoc is available.
- Add a new Kotlin DSL for creating your YACL UIs. This is a wrapper on top of the java builder interface providing extra functionality for Kotlin users.
- YACL does not provide any kotlin libraries, nor does it depend on them. If you would like to use this DSL, make sure your own mod depends on your loader's Kotlin mod.
- This is included in the main artifact. You don't need additional dependencies.
- An example usage can be found [in the testmod](https://github.com/isXander/YetAnotherConfigLib/blob/multiversion/dev/src/testmod/kotlin/dev/isxander/yacl3/test/DslTest.kt)
- Improved the backend of dropdown controllers by [Crendgrim](https://github.com/isXander/YetAnotherConfigLib/pull/162)
## Bug Fixes
- Fix GIFs not being preloaded in the resource reloader
展开
版本: 3.4.0+1.20.4-fabric
支持游戏: 1.20.4
类型: Fabric
Release
下载次数: 7,839
YetAnotherConfigLib 3.4.0 for MC 1.20.4
YetAnotherConfigLib-3.4.0+1.20.4-neoforge.jar下载3.4.0+1.20.4-neoforge#Release
# YetAnotherConfigLib 3.4.0
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
## For developers...
This is the first build which uses a new build toolchain to support multiple minecraft versions in the same codebase.
With this change, the artifact of the mod has changed.
```groovy
modImplementation "dev.isxander:yet-another-config-lib:{modversion}+{mcversion}-{loader}"
// for example...
modImplementation "dev.isxander:yet-another-config-lib:3.4.0+1.20.1-fabric"
```
If you are using YACL in an architectury project (one with a common subproject), you will from now on depend on
the fabric version of YACL. There is no longer any common artifact. I don't believe there to be any issues with doing it
like this.
## Additions
- New colour picker widget by [Superkat32](https://github.com/isXander/YetAnotherConfigLib/pull/140)
- This works with existing colour options.
![Colour picker example](https://i.imgur.com/G6Yx6RU.png)
- Added a custom tab API so categories can provide their own GUI, instead of YACL options.
- Mod developers can make their category class implement `CustomTabProvider`. Javadoc is available.
- Add a new Kotlin DSL for creating your YACL UIs. This is a wrapper on top of the java builder interface providing extra functionality for Kotlin users.
- YACL does not provide any kotlin libraries, nor does it depend on them. If you would like to use this DSL, make sure your own mod depends on your loader's Kotlin mod.
- This is included in the main artifact. You don't need additional dependencies.
- An example usage can be found [in the testmod](https://github.com/isXander/YetAnotherConfigLib/blob/multiversion/dev/src/testmod/kotlin/dev/isxander/yacl3/test/DslTest.kt)
- Improved the backend of dropdown controllers by [Crendgrim](https://github.com/isXander/YetAnotherConfigLib/pull/162)
## Bug Fixes
- Fix GIFs not being preloaded in the resource reloader
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
## For developers...
This is the first build which uses a new build toolchain to support multiple minecraft versions in the same codebase.
With this change, the artifact of the mod has changed.
```groovy
modImplementation "dev.isxander:yet-another-config-lib:{modversion}+{mcversion}-{loader}"
// for example...
modImplementation "dev.isxander:yet-another-config-lib:3.4.0+1.20.1-fabric"
```
If you are using YACL in an architectury project (one with a common subproject), you will from now on depend on
the fabric version of YACL. There is no longer any common artifact. I don't believe there to be any issues with doing it
like this.
## Additions
- New colour picker widget by [Superkat32](https://github.com/isXander/YetAnotherConfigLib/pull/140)
- This works with existing colour options.
![Colour picker example](https://i.imgur.com/G6Yx6RU.png)
- Added a custom tab API so categories can provide their own GUI, instead of YACL options.
- Mod developers can make their category class implement `CustomTabProvider`. Javadoc is available.
- Add a new Kotlin DSL for creating your YACL UIs. This is a wrapper on top of the java builder interface providing extra functionality for Kotlin users.
- YACL does not provide any kotlin libraries, nor does it depend on them. If you would like to use this DSL, make sure your own mod depends on your loader's Kotlin mod.
- This is included in the main artifact. You don't need additional dependencies.
- An example usage can be found [in the testmod](https://github.com/isXander/YetAnotherConfigLib/blob/multiversion/dev/src/testmod/kotlin/dev/isxander/yacl3/test/DslTest.kt)
- Improved the backend of dropdown controllers by [Crendgrim](https://github.com/isXander/YetAnotherConfigLib/pull/162)
## Bug Fixes
- Fix GIFs not being preloaded in the resource reloader
展开
版本: 3.4.0+1.20.4-neoforge
支持游戏: 1.20.4
类型: NeoForge
Release
下载次数: 37
YetAnotherConfigLib 3.4.0 for MC 1.20.5
YetAnotherConfigLib-3.4.0+1.20.5-fabric.jar下载3.4.0+1.20.5-fabric#Release
# YetAnotherConfigLib 3.4.0
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
## For developers...
This is the first build which uses a new build toolchain to support multiple minecraft versions in the same codebase.
With this change, the artifact of the mod has changed.
```groovy
modImplementation "dev.isxander:yet-another-config-lib:{modversion}+{mcversion}-{loader}"
// for example...
modImplementation "dev.isxander:yet-another-config-lib:3.4.0+1.20.1-fabric"
```
If you are using YACL in an architectury project (one with a common subproject), you will from now on depend on
the fabric version of YACL. There is no longer any common artifact. I don't believe there to be any issues with doing it
like this.
## Additions
- New colour picker widget by [Superkat32](https://github.com/isXander/YetAnotherConfigLib/pull/140)
- This works with existing colour options.
![Colour picker example](https://i.imgur.com/G6Yx6RU.png)
- Added a custom tab API so categories can provide their own GUI, instead of YACL options.
- Mod developers can make their category class implement `CustomTabProvider`. Javadoc is available.
- Add a new Kotlin DSL for creating your YACL UIs. This is a wrapper on top of the java builder interface providing extra functionality for Kotlin users.
- YACL does not provide any kotlin libraries, nor does it depend on them. If you would like to use this DSL, make sure your own mod depends on your loader's Kotlin mod.
- This is included in the main artifact. You don't need additional dependencies.
- An example usage can be found [in the testmod](https://github.com/isXander/YetAnotherConfigLib/blob/multiversion/dev/src/testmod/kotlin/dev/isxander/yacl3/test/DslTest.kt)
- Improved the backend of dropdown controllers by [Crendgrim](https://github.com/isXander/YetAnotherConfigLib/pull/162)
## Bug Fixes
- Fix GIFs not being preloaded in the resource reloader
This build supports the following versions:
- Fabric 1.20.1
- Fabric 1.20.4
- Fabric 1.20.5
- Forge 1.20.1
- NeoForge 1.20.4
## For developers...
This is the first build which uses a new build toolchain to support multiple minecraft versions in the same codebase.
With this change, the artifact of the mod has changed.
```groovy
modImplementation "dev.isxander:yet-another-config-lib:{modversion}+{mcversion}-{loader}"
// for example...
modImplementation "dev.isxander:yet-another-config-lib:3.4.0+1.20.1-fabric"
```
If you are using YACL in an architectury project (one with a common subproject), you will from now on depend on
the fabric version of YACL. There is no longer any common artifact. I don't believe there to be any issues with doing it
like this.
## Additions
- New colour picker widget by [Superkat32](https://github.com/isXander/YetAnotherConfigLib/pull/140)
- This works with existing colour options.
![Colour picker example](https://i.imgur.com/G6Yx6RU.png)
- Added a custom tab API so categories can provide their own GUI, instead of YACL options.
- Mod developers can make their category class implement `CustomTabProvider`. Javadoc is available.
- Add a new Kotlin DSL for creating your YACL UIs. This is a wrapper on top of the java builder interface providing extra functionality for Kotlin users.
- YACL does not provide any kotlin libraries, nor does it depend on them. If you would like to use this DSL, make sure your own mod depends on your loader's Kotlin mod.
- This is included in the main artifact. You don't need additional dependencies.
- An example usage can be found [in the testmod](https://github.com/isXander/YetAnotherConfigLib/blob/multiversion/dev/src/testmod/kotlin/dev/isxander/yacl3/test/DslTest.kt)
- Improved the backend of dropdown controllers by [Crendgrim](https://github.com/isXander/YetAnotherConfigLib/pull/162)
## Bug Fixes
- Fix GIFs not being preloaded in the resource reloader
展开
版本: 3.4.0+1.20.5-fabric
支持游戏: 1.20.5
类型: Fabric
Release
下载次数: 10,503
3.2.2+1.20 (Forge)
yet-another-config-lib-forge-3.2.2+1.20.jar下载3.2.2+1.20-forge#Release
# YetAnotherConfigLib 3.2.1 for 1.20.1-0
## Bug Fixes
- Backport a very important Forge fix to 1.20.1 ([#143](https://github.com/isXander/YetAnotherConfigLib/pull/143)) *Enjarai*
## Bug Fixes
- Backport a very important Forge fix to 1.20.1 ([#143](https://github.com/isXander/YetAnotherConfigLib/pull/143)) *Enjarai*
展开
版本: 3.2.2+1.20-forge
支持游戏: 1.20, 1.20.1
类型: Forge
NeoForge
Release
下载次数: 39,496
3.2.2+1.20 (Fabric)
yet-another-config-lib-fabric-3.2.2+1.20.jar下载3.2.2+1.20-fabric#Release
# YetAnotherConfigLib 3.2.1 for 1.20.1-0
## Bug Fixes
- Backport a very important Forge fix to 1.20.1 ([#143](https://github.com/isXander/YetAnotherConfigLib/pull/143)) *Enjarai*
## Bug Fixes
- Backport a very important Forge fix to 1.20.1 ([#143](https://github.com/isXander/YetAnotherConfigLib/pull/143)) *Enjarai*
展开
版本: 3.2.2+1.20-fabric
支持游戏: 1.20, 1.20.1
类型: Fabric Quilt
Release
下载次数: 337,253
3.3.2+1.20.4 (NeoForge)
yet-another-config-lib-neoforge-3.3.2+1.20.4.jar下载3.3.2+1.20.4-neoforge#Release
# YetAnotherConfigLib v3.3.2 for 1.20.4
- Hook into the resource reloader to preload any webp/gif files that are used.
This should make loading images when opening GUIs appear instantaneous.
- Fix issue where buttons got stuck and appeared as though nothing had saved.
- Fix an issue on NeoForged where the access widener was not transformed to an access transformer.
- Hook into the resource reloader to preload any webp/gif files that are used.
This should make loading images when opening GUIs appear instantaneous.
- Fix issue where buttons got stuck and appeared as though nothing had saved.
- Fix an issue on NeoForged where the access widener was not transformed to an access transformer.
展开
版本: 3.3.2+1.20.4-neoforge
支持游戏: 1.20.3, 1.20.4
类型: NeoForge
Release
下载次数: 13,871
3.3.2+1.20.4 (Fabric)
yet-another-config-lib-fabric-3.3.2+1.20.4.jar下载3.3.2+1.20.4-fabric#Release
# YetAnotherConfigLib v3.3.2 for 1.20.4
- Hook into the resource reloader to preload any webp/gif files that are used.
This should make loading images when opening GUIs appear instantaneous.
- Fix issue where buttons got stuck and appeared as though nothing had saved.
- Fix an issue on NeoForged where the access widener was not transformed to an access transformer.
- Hook into the resource reloader to preload any webp/gif files that are used.
This should make loading images when opening GUIs appear instantaneous.
- Fix issue where buttons got stuck and appeared as though nothing had saved.
- Fix an issue on NeoForged where the access widener was not transformed to an access transformer.
展开
版本: 3.3.2+1.20.4-fabric
支持游戏: 1.20.3, 1.20.4
类型: Fabric Quilt
Release
下载次数: 608,683
3.3.1+1.20.4 (NeoForge)
yet-another-config-lib-neoforge-3.3.1+1.20.4.jar下载3.3.1+1.20.4-neoforge#Release
# YetAnotherConfigLib v3.3.1 for 1.20.4
- Fix version constraint issue on Fabric
- Fix version constraint issue on Fabric
展开
版本: 3.3.1+1.20.4-neoforge
支持游戏: 1.20.3, 1.20.4
类型: NeoForge
Release
下载次数: 3,634
3.3.1+1.20.4 (Fabric)
yet-another-config-lib-fabric-3.3.1+1.20.4.jar下载3.3.1+1.20.4-fabric#Release
# YetAnotherConfigLib v3.3.1 for 1.20.4
- Fix version constraint issue on Fabric
- Fix version constraint issue on Fabric
展开
版本: 3.3.1+1.20.4-fabric
支持游戏: 1.20.3, 1.20.4
类型: Fabric Quilt
Release
下载次数: 151,631
3.3.0+1.20.4 (NeoForge)
yet-another-config-lib-neoforge-3.3.0+1.20.4.jar下载3.3.0+1.20.4-neoforge#Release
# YetAnotherConfigLib v3.3.0 for 1.20.4
Updates to support 1.20.4.
Updates to support 1.20.4.
展开
版本: 3.3.0+1.20.4-neoforge
支持游戏: 1.20.3, 1.20.4
类型: NeoForge
Release
下载次数: 126
3.3.0+1.20.4 (Fabric)
yet-another-config-lib-fabric-3.3.0+1.20.4.jar下载3.3.0+1.20.4-fabric#Release
# YetAnotherConfigLib v3.3.0 for 1.20.4
Updates to support 1.20.4.
Updates to support 1.20.4.
展开
版本: 3.3.0+1.20.4-fabric
支持游戏: 1.20.3, 1.20.4
类型: Fabric Quilt
Release
下载次数: 1,483
3.3.0-beta.1+1.20.3 (Fabric)
yet-another-config-lib-fabric-3.3.0-beta.1+1.20.3.jar下载3.3.0-beta.1+1.20.3-fabric#Beta
# YetAnotherConfigLib v3.3.0-beta.1 for 1.20.3
Updates to support 1.20.3.
## Known Issues
- Tooltips flicker when hovering over save button.
Updates to support 1.20.3.
## Known Issues
- Tooltips flicker when hovering over save button.
展开
版本: 3.3.0-beta.1+1.20.3-fabric
支持游戏: 1.20.3
类型: Fabric Quilt
Beta
下载次数: 4,749
3.3.0-beta.1+1.20.2 (Forge)
yet-another-config-lib-forge-3.3.0-beta.1+1.20.2.jar下载3.3.0-beta.1+1.20.2-forge#Beta
# YetAnotherConfigLib 3.3.0 (Beta 1) for Minecraft 1.20.2
As you can see, a lot of the contributions to this release are from other people! That's incredible, and I'm very
thankful for the community commitment to this project!
This release is a beta release, which just means that I'm not 100% sure that everything works as intended.
I encourage developers to at least try this build out, and if there are no problems, you're safe to release (I hope!).
## New Features
- Added new methods to add options to groups and categories, including conditional adding and option suppliers.
This increases the chances you don't need to break the huge builder chain present of YACL, so you can just keep writing,
even if you need to conditionally add an option, or run some code around the option. Look for `optionIf`!
## Changes
- Support for the `Home` and `End` keys. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Add functionality for `Ctrl + Left/Right` (you can now jump over words, without selecting it). ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Make the 'finding the next word' functionality more consistent with other programs. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Caret now pauses flickering when moving it. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Position the caret and the highlight area being the same height as the text. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Render the caret above the selection, instead of below. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
## Fixes
- Fix `NumberFieldController` increasing their values by a power of 10 when clicking on the screen. Issue @ [#103](https://github.com/isXander/YetAnotherConfigLib/issue/103) PR @ [#108](https://github.com/isXander/YetAnotherConfigLib/pull/108)
- Fix values not updating when unfocusing a string controller. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Fix a bug where the caret is not rendered at the beginning of the text in string/number field controllers. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Fix dropdowns not being sorted correctly with capital letters. ([#114](https://github.com/isXander/YetAnotherConfigLib/pull/114))
## Misc
- Added debug JVM property `-Dyacl3.debug.imageFiltering=true/false` which applies experimental filtering to images
to make them look better. I'd like your feedback on this!
- You now no longer need to add additional repositories to your `build.gradle`.
You can safely remove:
- `https://maven.quiltmc.org/repository/release/`
- `https://oss.sonatype.org/content/repositories/snapshots/`
## Translation Updates
- Add Dutch translation. ([#121](https://github.com/isXander/YetAnotherConfigLib/pull/121))
- Add Italian translation. ([#107](https://github.com/isXander/YetAnotherConfigLib/pull/107))
As you can see, a lot of the contributions to this release are from other people! That's incredible, and I'm very
thankful for the community commitment to this project!
This release is a beta release, which just means that I'm not 100% sure that everything works as intended.
I encourage developers to at least try this build out, and if there are no problems, you're safe to release (I hope!).
## New Features
- Added new methods to add options to groups and categories, including conditional adding and option suppliers.
This increases the chances you don't need to break the huge builder chain present of YACL, so you can just keep writing,
even if you need to conditionally add an option, or run some code around the option. Look for `optionIf`!
## Changes
- Support for the `Home` and `End` keys. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Add functionality for `Ctrl + Left/Right` (you can now jump over words, without selecting it). ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Make the 'finding the next word' functionality more consistent with other programs. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Caret now pauses flickering when moving it. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Position the caret and the highlight area being the same height as the text. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Render the caret above the selection, instead of below. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
## Fixes
- Fix `NumberFieldController` increasing their values by a power of 10 when clicking on the screen. Issue @ [#103](https://github.com/isXander/YetAnotherConfigLib/issue/103) PR @ [#108](https://github.com/isXander/YetAnotherConfigLib/pull/108)
- Fix values not updating when unfocusing a string controller. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Fix a bug where the caret is not rendered at the beginning of the text in string/number field controllers. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Fix dropdowns not being sorted correctly with capital letters. ([#114](https://github.com/isXander/YetAnotherConfigLib/pull/114))
## Misc
- Added debug JVM property `-Dyacl3.debug.imageFiltering=true/false` which applies experimental filtering to images
to make them look better. I'd like your feedback on this!
- You now no longer need to add additional repositories to your `build.gradle`.
You can safely remove:
- `https://maven.quiltmc.org/repository/release/`
- `https://oss.sonatype.org/content/repositories/snapshots/`
## Translation Updates
- Add Dutch translation. ([#121](https://github.com/isXander/YetAnotherConfigLib/pull/121))
- Add Italian translation. ([#107](https://github.com/isXander/YetAnotherConfigLib/pull/107))
展开
版本: 3.3.0-beta.1+1.20.2-forge
支持游戏: 1.20.2
类型: Forge
NeoForge
Beta
下载次数: 6,804
3.3.0-beta.1+1.20.2 (Fabric)
yet-another-config-lib-fabric-3.3.0-beta.1+1.20.2.jar下载3.3.0-beta.1+1.20.2-fabric#Beta
# YetAnotherConfigLib 3.3.0 (Beta 1) for Minecraft 1.20.2
As you can see, a lot of the contributions to this release are from other people! That's incredible, and I'm very
thankful for the community commitment to this project!
This release is a beta release, which just means that I'm not 100% sure that everything works as intended.
I encourage developers to at least try this build out, and if there are no problems, you're safe to release (I hope!).
## New Features
- Added new methods to add options to groups and categories, including conditional adding and option suppliers.
This increases the chances you don't need to break the huge builder chain present of YACL, so you can just keep writing,
even if you need to conditionally add an option, or run some code around the option. Look for `optionIf`!
## Changes
- Support for the `Home` and `End` keys. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Add functionality for `Ctrl + Left/Right` (you can now jump over words, without selecting it). ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Make the 'finding the next word' functionality more consistent with other programs. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Caret now pauses flickering when moving it. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Position the caret and the highlight area being the same height as the text. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Render the caret above the selection, instead of below. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
## Fixes
- Fix `NumberFieldController` increasing their values by a power of 10 when clicking on the screen. Issue @ [#103](https://github.com/isXander/YetAnotherConfigLib/issue/103) PR @ [#108](https://github.com/isXander/YetAnotherConfigLib/pull/108)
- Fix values not updating when unfocusing a string controller. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Fix a bug where the caret is not rendered at the beginning of the text in string/number field controllers. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Fix dropdowns not being sorted correctly with capital letters. ([#114](https://github.com/isXander/YetAnotherConfigLib/pull/114))
## Misc
- Added debug JVM property `-Dyacl3.debug.imageFiltering=true/false` which applies experimental filtering to images
to make them look better. I'd like your feedback on this!
- You now no longer need to add additional repositories to your `build.gradle`.
You can safely remove:
- `https://maven.quiltmc.org/repository/release/`
- `https://oss.sonatype.org/content/repositories/snapshots/`
## Translation Updates
- Add Dutch translation. ([#121](https://github.com/isXander/YetAnotherConfigLib/pull/121))
- Add Italian translation. ([#107](https://github.com/isXander/YetAnotherConfigLib/pull/107))
As you can see, a lot of the contributions to this release are from other people! That's incredible, and I'm very
thankful for the community commitment to this project!
This release is a beta release, which just means that I'm not 100% sure that everything works as intended.
I encourage developers to at least try this build out, and if there are no problems, you're safe to release (I hope!).
## New Features
- Added new methods to add options to groups and categories, including conditional adding and option suppliers.
This increases the chances you don't need to break the huge builder chain present of YACL, so you can just keep writing,
even if you need to conditionally add an option, or run some code around the option. Look for `optionIf`!
## Changes
- Support for the `Home` and `End` keys. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Add functionality for `Ctrl + Left/Right` (you can now jump over words, without selecting it). ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Make the 'finding the next word' functionality more consistent with other programs. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Caret now pauses flickering when moving it. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Position the caret and the highlight area being the same height as the text. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Render the caret above the selection, instead of below. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
## Fixes
- Fix `NumberFieldController` increasing their values by a power of 10 when clicking on the screen. Issue @ [#103](https://github.com/isXander/YetAnotherConfigLib/issue/103) PR @ [#108](https://github.com/isXander/YetAnotherConfigLib/pull/108)
- Fix values not updating when unfocusing a string controller. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Fix a bug where the caret is not rendered at the beginning of the text in string/number field controllers. ([#108](https://github.com/isXander/YetAnotherConfigLib/pull/108))
- Fix dropdowns not being sorted correctly with capital letters. ([#114](https://github.com/isXander/YetAnotherConfigLib/pull/114))
## Misc
- Added debug JVM property `-Dyacl3.debug.imageFiltering=true/false` which applies experimental filtering to images
to make them look better. I'd like your feedback on this!
- You now no longer need to add additional repositories to your `build.gradle`.
You can safely remove:
- `https://maven.quiltmc.org/repository/release/`
- `https://oss.sonatype.org/content/repositories/snapshots/`
## Translation Updates
- Add Dutch translation. ([#121](https://github.com/isXander/YetAnotherConfigLib/pull/121))
- Add Italian translation. ([#107](https://github.com/isXander/YetAnotherConfigLib/pull/107))
展开
版本: 3.3.0-beta.1+1.20.2-fabric
支持游戏: 1.20.2
类型: Fabric Quilt
Beta
下载次数: 231,780
3.2.1+1.20 (Forge)
yet-another-config-lib-forge-3.2.1+1.20.jar下载3.2.1+1.20-forge#Release
# YetAnotherConfigLib 3.2.1 for 1.20.1-0
## Changes
### Config API
- Added `ConfigClassHandler#save` and `ConfigClassHandler#load` and deprecated `ConfigClassHandler#serializer`.
- The serializer should now never be called directly.
- New load method tells serializer to load into a new instance of the config class. Only applied if the load was fully successful.
- Deprecated `ConfigSerializer#load` for `ConfigSerializer#loadSafely`.
- Added new parameter on `SerialEntry`, called `required`.
- If set to true, and the entry is not found in the config, the config will be re-saved with the default value.
- If set to false, and the entry is not found in the config, the default value will be used, but the config will not be re-saved.
- Added new parameter on `SerialEntry`, called `nullable`.
- If set to false, and the entry is found in the config, but the value is null, the default value will be used, and the config will be re-saved.
## Bug Fixes
- Fixed error when using the same image twice.
- Removed debug log from WEBP and GIF image loaders.
## Changes
### Config API
- Added `ConfigClassHandler#save` and `ConfigClassHandler#load` and deprecated `ConfigClassHandler#serializer`.
- The serializer should now never be called directly.
- New load method tells serializer to load into a new instance of the config class. Only applied if the load was fully successful.
- Deprecated `ConfigSerializer#load` for `ConfigSerializer#loadSafely`.
- Added new parameter on `SerialEntry`, called `required`.
- If set to true, and the entry is not found in the config, the config will be re-saved with the default value.
- If set to false, and the entry is not found in the config, the default value will be used, but the config will not be re-saved.
- Added new parameter on `SerialEntry`, called `nullable`.
- If set to false, and the entry is found in the config, but the value is null, the default value will be used, and the config will be re-saved.
## Bug Fixes
- Fixed error when using the same image twice.
- Removed debug log from WEBP and GIF image loaders.
展开
版本: 3.2.1+1.20-forge
支持游戏: 1.20, 1.20.1
类型: Forge
NeoForge
Release
下载次数: 35,175
3.2.1+1.20 (Fabric)
yet-another-config-lib-fabric-3.2.1+1.20.jar下载3.2.1+1.20-fabric#Release
# YetAnotherConfigLib 3.2.1 for 1.20.1-0
## Changes
### Config API
- Added `ConfigClassHandler#save` and `ConfigClassHandler#load` and deprecated `ConfigClassHandler#serializer`.
- The serializer should now never be called directly.
- New load method tells serializer to load into a new instance of the config class. Only applied if the load was fully successful.
- Deprecated `ConfigSerializer#load` for `ConfigSerializer#loadSafely`.
- Added new parameter on `SerialEntry`, called `required`.
- If set to true, and the entry is not found in the config, the config will be re-saved with the default value.
- If set to false, and the entry is not found in the config, the default value will be used, but the config will not be re-saved.
- Added new parameter on `SerialEntry`, called `nullable`.
- If set to false, and the entry is found in the config, but the value is null, the default value will be used, and the config will be re-saved.
## Bug Fixes
- Fixed error when using the same image twice.
- Removed debug log from WEBP and GIF image loaders.
## Changes
### Config API
- Added `ConfigClassHandler#save` and `ConfigClassHandler#load` and deprecated `ConfigClassHandler#serializer`.
- The serializer should now never be called directly.
- New load method tells serializer to load into a new instance of the config class. Only applied if the load was fully successful.
- Deprecated `ConfigSerializer#load` for `ConfigSerializer#loadSafely`.
- Added new parameter on `SerialEntry`, called `required`.
- If set to true, and the entry is not found in the config, the config will be re-saved with the default value.
- If set to false, and the entry is not found in the config, the default value will be used, but the config will not be re-saved.
- Added new parameter on `SerialEntry`, called `nullable`.
- If set to false, and the entry is found in the config, but the value is null, the default value will be used, and the config will be re-saved.
## Bug Fixes
- Fixed error when using the same image twice.
- Removed debug log from WEBP and GIF image loaders.
展开
版本: 3.2.1+1.20-fabric
支持游戏: 1.20, 1.20.1
类型: Fabric Quilt
Release
下载次数: 1,325,704
3.2.1+1.20.2 (Forge)
yet-another-config-lib-forge-3.2.1+1.20.2.jar下载3.2.1+1.20.2-forge#Release
# YetAnotherConfigLib 3.2.1 for 1.20.2
## Changes
### Config API
- Added `ConfigClassHandler#save` and `ConfigClassHandler#load` and deprecated `ConfigClassHandler#serializer`.
- The serializer should now never be called directly.
- New load method tells serializer to load into a new instance of the config class. Only applied if the load was fully successful.
- Deprecated `ConfigSerializer#load` for `ConfigSerializer#loadSafely`.
- Added new parameter on `SerialEntry`, called `required`.
- If set to true, and the entry is not found in the config, the config will be re-saved with the default value.
- If set to false, and the entry is not found in the config, the default value will be used, but the config will not be re-saved.
- Added new parameter on `SerialEntry`, called `nullable`.
- If set to false, and the entry is found in the config, but the value is null, the default value will be used, and the config will be re-saved.
## Bug Fixes
- Fixed error when using the same image twice.
- Removed debug log from WEBP and GIF image loaders.
## Changes
### Config API
- Added `ConfigClassHandler#save` and `ConfigClassHandler#load` and deprecated `ConfigClassHandler#serializer`.
- The serializer should now never be called directly.
- New load method tells serializer to load into a new instance of the config class. Only applied if the load was fully successful.
- Deprecated `ConfigSerializer#load` for `ConfigSerializer#loadSafely`.
- Added new parameter on `SerialEntry`, called `required`.
- If set to true, and the entry is not found in the config, the config will be re-saved with the default value.
- If set to false, and the entry is not found in the config, the default value will be used, but the config will not be re-saved.
- Added new parameter on `SerialEntry`, called `nullable`.
- If set to false, and the entry is found in the config, but the value is null, the default value will be used, and the config will be re-saved.
## Bug Fixes
- Fixed error when using the same image twice.
- Removed debug log from WEBP and GIF image loaders.
展开
版本: 3.2.1+1.20.2-forge
支持游戏: 1.20.2
类型: Forge
NeoForge
Release
下载次数: 3,963
3.2.1+1.20.2 (Fabric)
yet-another-config-lib-fabric-3.2.1+1.20.2.jar下载3.2.1+1.20.2-fabric#Release
# YetAnotherConfigLib 3.2.1 for 1.20.2
## Changes
### Config API
- Added `ConfigClassHandler#save` and `ConfigClassHandler#load` and deprecated `ConfigClassHandler#serializer`.
- The serializer should now never be called directly.
- New load method tells serializer to load into a new instance of the config class. Only applied if the load was fully successful.
- Deprecated `ConfigSerializer#load` for `ConfigSerializer#loadSafely`.
- Added new parameter on `SerialEntry`, called `required`.
- If set to true, and the entry is not found in the config, the config will be re-saved with the default value.
- If set to false, and the entry is not found in the config, the default value will be used, but the config will not be re-saved.
- Added new parameter on `SerialEntry`, called `nullable`.
- If set to false, and the entry is found in the config, but the value is null, the default value will be used, and the config will be re-saved.
## Bug Fixes
- Fixed error when using the same image twice.
- Removed debug log from WEBP and GIF image loaders.
## Changes
### Config API
- Added `ConfigClassHandler#save` and `ConfigClassHandler#load` and deprecated `ConfigClassHandler#serializer`.
- The serializer should now never be called directly.
- New load method tells serializer to load into a new instance of the config class. Only applied if the load was fully successful.
- Deprecated `ConfigSerializer#load` for `ConfigSerializer#loadSafely`.
- Added new parameter on `SerialEntry`, called `required`.
- If set to true, and the entry is not found in the config, the config will be re-saved with the default value.
- If set to false, and the entry is not found in the config, the default value will be used, but the config will not be re-saved.
- Added new parameter on `SerialEntry`, called `nullable`.
- If set to false, and the entry is found in the config, but the value is null, the default value will be used, and the config will be re-saved.
## Bug Fixes
- Fixed error when using the same image twice.
- Removed debug log from WEBP and GIF image loaders.
展开
版本: 3.2.1+1.20.2-fabric
支持游戏: 1.20.2
类型: Fabric Quilt
Release
下载次数: 245,100
3.2.0+1.20 (Forge)
yet-another-config-lib-forge-3.2.0+1.20.jar下载3.2.0+1.20-forge#Release
# YetAnotherConfigLib 3.2 for 1.20.1 & 1.20.0
The artifact for this release is
`dev.isxander.yacl:yet-another-config-lib-fabric:3.2.0+1.20` (assuming Fabric)
## Config API V2
Starting this update, the previous config api is now deprecated.
The new API is much more modular, and is now fully API-safe.
### What does it look like?
```java
public class MyConfig {
public static final ConfigClassHandler<MyConfig> HANDLER = ConfigClassHandler.createBuilder(MyConfig.class)
.id(new ResourceLocation("my_mod", "my_config")) // unique ID for your config
.serializer(config -> GsonConfigSerializerBuilder.create(config)
.setPath(FabricLoader.getInstance().getConfigDir().resolve("my_config.json"))
.setJson5(true) // json5 support, with GSON!
.build())
.build();
@SerialEntry(comment = "optional comment!")
public boolean myOption = true;
public static void save() {
MyConfig.HANDLER.serializer().save();
}
public static void load() {
MyConfig.HANDLER.serializer().load();
}
}
```
As you can see from the above example, it's syntactically quite similar
to the old API, but with a few key differences:
- The method of serialization has been separated from the class handler itself,
allowing an API safe implementation without needing to override the class handler.
- Supports abstract serialization.
- Names make a lot more sense.
### Auto-gen
The new API can now fully auto-generate your config into a YACL GUI with annotations.
I have been very wary of this feature, since usually it can be very limiting, destroying most
of the core values of the powerful YACL builder interface. However, I believe I've found a great
modular way so that developers can extend the auto-gen feature with their own custom annotations,
adding support for their own custom controllers!
```java
public class MyConfig {
public static final ConfigClassHandler<MyConfig> HANDLER = ConfigClassHandler.createBuilder(MyConfig.class)
.id(new ResourceLocation("my_mod", "my_config")) // unique ID for your config
.serializer(config -> GsonConfigSerializerBuilder.create(config)
.setPath(FabricLoader.getInstance().getConfigDir().resolve("my_config.json"))
.setJson5(true) // json5 support, with GSON!
.build())
.build();
@AutoGen(category = "my_category", group = "my_group")
@Boolean(formatter = Boolean.Formatter.YES_NO, colored = true)
public boolean myOption = true;
public static Screen createScreen(Screen parent) {
return MyConfig.HANDLER.generateGui().generateScreen(parent);
}
}
```
Above is an example of auto-generating a `BooleanController`. Notice how
the field does not require `@SerialEntry`. These are completely separate,
and you can use both at the same time.
For the full range of auto-gen annotations, check the source!
Documentation for the new API is still a work in progress. For now, it's best
to look at the following class: [`dev.isxander.yacl3.test.AutogenConfigTest`](https://github.com/isXander/YetAnotherConfigLib/blob/1.20.x/dev/test-common/src/main/java/dev/isxander/yacl3/test/AutogenConfigTest.java) (not available on the artifact).
## Fix Sodium crash
This is bringing the off-branch hotfix 3.1.1 to the main branch.
## Dropdown controllers
[Crendgrim](https://github.com/isXander/Crendgrim) has PRed a dropdown controller! Which is in this release!
This adds two new controller builders, `DropdownStringControllerBuilder` and `ItemControllerBuilder`.
The latter renders the item in the dropdown, and suggests only the items.
The artifact for this release is
`dev.isxander.yacl:yet-another-config-lib-fabric:3.2.0+1.20` (assuming Fabric)
## Config API V2
Starting this update, the previous config api is now deprecated.
The new API is much more modular, and is now fully API-safe.
### What does it look like?
```java
public class MyConfig {
public static final ConfigClassHandler<MyConfig> HANDLER = ConfigClassHandler.createBuilder(MyConfig.class)
.id(new ResourceLocation("my_mod", "my_config")) // unique ID for your config
.serializer(config -> GsonConfigSerializerBuilder.create(config)
.setPath(FabricLoader.getInstance().getConfigDir().resolve("my_config.json"))
.setJson5(true) // json5 support, with GSON!
.build())
.build();
@SerialEntry(comment = "optional comment!")
public boolean myOption = true;
public static void save() {
MyConfig.HANDLER.serializer().save();
}
public static void load() {
MyConfig.HANDLER.serializer().load();
}
}
```
As you can see from the above example, it's syntactically quite similar
to the old API, but with a few key differences:
- The method of serialization has been separated from the class handler itself,
allowing an API safe implementation without needing to override the class handler.
- Supports abstract serialization.
- Names make a lot more sense.
### Auto-gen
The new API can now fully auto-generate your config into a YACL GUI with annotations.
I have been very wary of this feature, since usually it can be very limiting, destroying most
of the core values of the powerful YACL builder interface. However, I believe I've found a great
modular way so that developers can extend the auto-gen feature with their own custom annotations,
adding support for their own custom controllers!
```java
public class MyConfig {
public static final ConfigClassHandler<MyConfig> HANDLER = ConfigClassHandler.createBuilder(MyConfig.class)
.id(new ResourceLocation("my_mod", "my_config")) // unique ID for your config
.serializer(config -> GsonConfigSerializerBuilder.create(config)
.setPath(FabricLoader.getInstance().getConfigDir().resolve("my_config.json"))
.setJson5(true) // json5 support, with GSON!
.build())
.build();
@AutoGen(category = "my_category", group = "my_group")
@Boolean(formatter = Boolean.Formatter.YES_NO, colored = true)
public boolean myOption = true;
public static Screen createScreen(Screen parent) {
return MyConfig.HANDLER.generateGui().generateScreen(parent);
}
}
```
Above is an example of auto-generating a `BooleanController`. Notice how
the field does not require `@SerialEntry`. These are completely separate,
and you can use both at the same time.
For the full range of auto-gen annotations, check the source!
Documentation for the new API is still a work in progress. For now, it's best
to look at the following class: [`dev.isxander.yacl3.test.AutogenConfigTest`](https://github.com/isXander/YetAnotherConfigLib/blob/1.20.x/dev/test-common/src/main/java/dev/isxander/yacl3/test/AutogenConfigTest.java) (not available on the artifact).
## Fix Sodium crash
This is bringing the off-branch hotfix 3.1.1 to the main branch.
## Dropdown controllers
[Crendgrim](https://github.com/isXander/Crendgrim) has PRed a dropdown controller! Which is in this release!
This adds two new controller builders, `DropdownStringControllerBuilder` and `ItemControllerBuilder`.
The latter renders the item in the dropdown, and suggests only the items.
展开
版本: 3.2.0+1.20-forge
支持游戏: 1.20, 1.20.1
类型: Forge
NeoForge
Release
下载次数: 966
3.2.0+1.20 (Fabric)
yet-another-config-lib-fabric-3.2.0+1.20.jar下载3.2.0+1.20-fabric#Release
# YetAnotherConfigLib 3.2 for 1.20.1 & 1.20.0
The artifact for this release is
`dev.isxander.yacl:yet-another-config-lib-fabric:3.2.0+1.20` (assuming Fabric)
## Config API V2
Starting this update, the previous config api is now deprecated.
The new API is much more modular, and is now fully API-safe.
### What does it look like?
```java
public class MyConfig {
public static final ConfigClassHandler<MyConfig> HANDLER = ConfigClassHandler.createBuilder(MyConfig.class)
.id(new ResourceLocation("my_mod", "my_config")) // unique ID for your config
.serializer(config -> GsonConfigSerializerBuilder.create(config)
.setPath(FabricLoader.getInstance().getConfigDir().resolve("my_config.json"))
.setJson5(true) // json5 support, with GSON!
.build())
.build();
@SerialEntry(comment = "optional comment!")
public boolean myOption = true;
public static void save() {
MyConfig.HANDLER.serializer().save();
}
public static void load() {
MyConfig.HANDLER.serializer().load();
}
}
```
As you can see from the above example, it's syntactically quite similar
to the old API, but with a few key differences:
- The method of serialization has been separated from the class handler itself,
allowing an API safe implementation without needing to override the class handler.
- Supports abstract serialization.
- Names make a lot more sense.
### Auto-gen
The new API can now fully auto-generate your config into a YACL GUI with annotations.
I have been very wary of this feature, since usually it can be very limiting, destroying most
of the core values of the powerful YACL builder interface. However, I believe I've found a great
modular way so that developers can extend the auto-gen feature with their own custom annotations,
adding support for their own custom controllers!
```java
public class MyConfig {
public static final ConfigClassHandler<MyConfig> HANDLER = ConfigClassHandler.createBuilder(MyConfig.class)
.id(new ResourceLocation("my_mod", "my_config")) // unique ID for your config
.serializer(config -> GsonConfigSerializerBuilder.create(config)
.setPath(FabricLoader.getInstance().getConfigDir().resolve("my_config.json"))
.setJson5(true) // json5 support, with GSON!
.build())
.build();
@AutoGen(category = "my_category", group = "my_group")
@Boolean(formatter = Boolean.Formatter.YES_NO, colored = true)
public boolean myOption = true;
public static Screen createScreen(Screen parent) {
return MyConfig.HANDLER.generateGui().generateScreen(parent);
}
}
```
Above is an example of auto-generating a `BooleanController`. Notice how
the field does not require `@SerialEntry`. These are completely separate,
and you can use both at the same time.
For the full range of auto-gen annotations, check the source!
Documentation for the new API is still a work in progress. For now, it's best
to look at the following class: [`dev.isxander.yacl3.test.AutogenConfigTest`](https://github.com/isXander/YetAnotherConfigLib/blob/1.20.x/dev/test-common/src/main/java/dev/isxander/yacl3/test/AutogenConfigTest.java) (not available on the artifact).
## Fix Sodium crash
This is bringing the off-branch hotfix 3.1.1 to the main branch.
## Dropdown controllers
[Crendgrim](https://github.com/isXander/Crendgrim) has PRed a dropdown controller! Which is in this release!
This adds two new controller builders, `DropdownStringControllerBuilder` and `ItemControllerBuilder`.
The latter renders the item in the dropdown, and suggests only the items.
The artifact for this release is
`dev.isxander.yacl:yet-another-config-lib-fabric:3.2.0+1.20` (assuming Fabric)
## Config API V2
Starting this update, the previous config api is now deprecated.
The new API is much more modular, and is now fully API-safe.
### What does it look like?
```java
public class MyConfig {
public static final ConfigClassHandler<MyConfig> HANDLER = ConfigClassHandler.createBuilder(MyConfig.class)
.id(new ResourceLocation("my_mod", "my_config")) // unique ID for your config
.serializer(config -> GsonConfigSerializerBuilder.create(config)
.setPath(FabricLoader.getInstance().getConfigDir().resolve("my_config.json"))
.setJson5(true) // json5 support, with GSON!
.build())
.build();
@SerialEntry(comment = "optional comment!")
public boolean myOption = true;
public static void save() {
MyConfig.HANDLER.serializer().save();
}
public static void load() {
MyConfig.HANDLER.serializer().load();
}
}
```
As you can see from the above example, it's syntactically quite similar
to the old API, but with a few key differences:
- The method of serialization has been separated from the class handler itself,
allowing an API safe implementation without needing to override the class handler.
- Supports abstract serialization.
- Names make a lot more sense.
### Auto-gen
The new API can now fully auto-generate your config into a YACL GUI with annotations.
I have been very wary of this feature, since usually it can be very limiting, destroying most
of the core values of the powerful YACL builder interface. However, I believe I've found a great
modular way so that developers can extend the auto-gen feature with their own custom annotations,
adding support for their own custom controllers!
```java
public class MyConfig {
public static final ConfigClassHandler<MyConfig> HANDLER = ConfigClassHandler.createBuilder(MyConfig.class)
.id(new ResourceLocation("my_mod", "my_config")) // unique ID for your config
.serializer(config -> GsonConfigSerializerBuilder.create(config)
.setPath(FabricLoader.getInstance().getConfigDir().resolve("my_config.json"))
.setJson5(true) // json5 support, with GSON!
.build())
.build();
@AutoGen(category = "my_category", group = "my_group")
@Boolean(formatter = Boolean.Formatter.YES_NO, colored = true)
public boolean myOption = true;
public static Screen createScreen(Screen parent) {
return MyConfig.HANDLER.generateGui().generateScreen(parent);
}
}
```
Above is an example of auto-generating a `BooleanController`. Notice how
the field does not require `@SerialEntry`. These are completely separate,
and you can use both at the same time.
For the full range of auto-gen annotations, check the source!
Documentation for the new API is still a work in progress. For now, it's best
to look at the following class: [`dev.isxander.yacl3.test.AutogenConfigTest`](https://github.com/isXander/YetAnotherConfigLib/blob/1.20.x/dev/test-common/src/main/java/dev/isxander/yacl3/test/AutogenConfigTest.java) (not available on the artifact).
## Fix Sodium crash
This is bringing the off-branch hotfix 3.1.1 to the main branch.
## Dropdown controllers
[Crendgrim](https://github.com/isXander/Crendgrim) has PRed a dropdown controller! Which is in this release!
This adds two new controller builders, `DropdownStringControllerBuilder` and `ItemControllerBuilder`.
The latter renders the item in the dropdown, and suggests only the items.
展开
版本: 3.2.0+1.20-fabric
支持游戏: 1.20, 1.20.1
类型: Fabric Quilt
Release
下载次数: 29,725
3.2.0+1.20.2 (Forge)
yet-another-config-lib-forge-3.2.0+1.20.2.jar下载3.2.0+1.20.2-forge#Release
# YetAnotherConfigLib 3.2 for 1.20.2
The artifact for this release is
`dev.isxander.yacl:yet-another-config-lib-fabric:3.2.0+1.20.2` (assuming Fabric)
## Config API V2
Starting this update, the previous config api is now deprecated.
The new API is much more modular, and is now fully API-safe.
### What does it look like?
```java
public class MyConfig {
public static final ConfigClassHandler<MyConfig> HANDLER = ConfigClassHandler.createBuilder(MyConfig.class)
.id(new ResourceLocation("my_mod", "my_config")) // unique ID for your config
.serializer(config -> GsonConfigSerializerBuilder.create(config)
.setPath(FabricLoader.getInstance().getConfigDir().resolve("my_config.json"))
.setJson5(true) // json5 support, with GSON!
.build())
.build();
@SerialEntry(comment = "optional comment!")
public boolean myOption = true;
public static void save() {
MyConfig.HANDLER.serializer().save();
}
public static void load() {
MyConfig.HANDLER.serializer().load();
}
}
```
As you can see from the above example, it's syntactically quite similar
to the old API, but with a few key differences:
- The method of serialization has been separated from the class handler itself,
allowing an API safe implementation without needing to override the class handler.
- Supports abstract serialization.
- Names make a lot more sense.
### Auto-gen
The new API can now fully auto-generate your config into a YACL GUI with annotations.
I have been very wary of this feature, since usually it can be very limiting, destroying most
of the core values of the powerful YACL builder interface. However, I believe I've found a great
modular way so that developers can extend the auto-gen feature with their own custom annotations,
adding support for their own custom controllers!
```java
public class MyConfig {
public static final ConfigClassHandler<MyConfig> HANDLER = ConfigClassHandler.createBuilder(MyConfig.class)
.id(new ResourceLocation("my_mod", "my_config")) // unique ID for your config
.serializer(config -> GsonConfigSerializerBuilder.create(config)
.setPath(FabricLoader.getInstance().getConfigDir().resolve("my_config.json"))
.setJson5(true) // json5 support, with GSON!
.build())
.build();
@AutoGen(category = "my_category", group = "my_group")
@Boolean(formatter = Boolean.Formatter.YES_NO, colored = true)
public boolean myOption = true;
public static Screen createScreen(Screen parent) {
return MyConfig.HANDLER.generateGui().generateScreen(parent);
}
}
```
Above is an example of auto-generating a `BooleanController`. Notice how
the field does not require `@SerialEntry`. These are completely separate,
and you can use both at the same time.
For the full range of auto-gen annotations, check the source!
Documentation for the new API is still a work in progress. For now, it's best
to look at the following class: [`dev.isxander.yacl3.test.AutogenConfigTest`](https://github.com/isXander/YetAnotherConfigLib/blob/1.20.x/dev/test-common/src/main/java/dev/isxander/yacl3/test/AutogenConfigTest.java) (not available on the artifact).
## Fix Sodium crash
This is bringing the off-branch hotfix 3.1.1 to the main branch.
## Dropdown controllers
[Crendgrim](https://github.com/isXander/Crendgrim) has PRed a dropdown controller! Which is in this release!
This adds two new controller builders, `DropdownStringControllerBuilder` and `ItemControllerBuilder`.
The latter renders the item in the dropdown, and suggests only the items.
The artifact for this release is
`dev.isxander.yacl:yet-another-config-lib-fabric:3.2.0+1.20.2` (assuming Fabric)
## Config API V2
Starting this update, the previous config api is now deprecated.
The new API is much more modular, and is now fully API-safe.
### What does it look like?
```java
public class MyConfig {
public static final ConfigClassHandler<MyConfig> HANDLER = ConfigClassHandler.createBuilder(MyConfig.class)
.id(new ResourceLocation("my_mod", "my_config")) // unique ID for your config
.serializer(config -> GsonConfigSerializerBuilder.create(config)
.setPath(FabricLoader.getInstance().getConfigDir().resolve("my_config.json"))
.setJson5(true) // json5 support, with GSON!
.build())
.build();
@SerialEntry(comment = "optional comment!")
public boolean myOption = true;
public static void save() {
MyConfig.HANDLER.serializer().save();
}
public static void load() {
MyConfig.HANDLER.serializer().load();
}
}
```
As you can see from the above example, it's syntactically quite similar
to the old API, but with a few key differences:
- The method of serialization has been separated from the class handler itself,
allowing an API safe implementation without needing to override the class handler.
- Supports abstract serialization.
- Names make a lot more sense.
### Auto-gen
The new API can now fully auto-generate your config into a YACL GUI with annotations.
I have been very wary of this feature, since usually it can be very limiting, destroying most
of the core values of the powerful YACL builder interface. However, I believe I've found a great
modular way so that developers can extend the auto-gen feature with their own custom annotations,
adding support for their own custom controllers!
```java
public class MyConfig {
public static final ConfigClassHandler<MyConfig> HANDLER = ConfigClassHandler.createBuilder(MyConfig.class)
.id(new ResourceLocation("my_mod", "my_config")) // unique ID for your config
.serializer(config -> GsonConfigSerializerBuilder.create(config)
.setPath(FabricLoader.getInstance().getConfigDir().resolve("my_config.json"))
.setJson5(true) // json5 support, with GSON!
.build())
.build();
@AutoGen(category = "my_category", group = "my_group")
@Boolean(formatter = Boolean.Formatter.YES_NO, colored = true)
public boolean myOption = true;
public static Screen createScreen(Screen parent) {
return MyConfig.HANDLER.generateGui().generateScreen(parent);
}
}
```
Above is an example of auto-generating a `BooleanController`. Notice how
the field does not require `@SerialEntry`. These are completely separate,
and you can use both at the same time.
For the full range of auto-gen annotations, check the source!
Documentation for the new API is still a work in progress. For now, it's best
to look at the following class: [`dev.isxander.yacl3.test.AutogenConfigTest`](https://github.com/isXander/YetAnotherConfigLib/blob/1.20.x/dev/test-common/src/main/java/dev/isxander/yacl3/test/AutogenConfigTest.java) (not available on the artifact).
## Fix Sodium crash
This is bringing the off-branch hotfix 3.1.1 to the main branch.
## Dropdown controllers
[Crendgrim](https://github.com/isXander/Crendgrim) has PRed a dropdown controller! Which is in this release!
This adds two new controller builders, `DropdownStringControllerBuilder` and `ItemControllerBuilder`.
The latter renders the item in the dropdown, and suggests only the items.
展开
版本: 3.2.0+1.20.2-forge
支持游戏: 1.20.2
类型: Forge
NeoForge
Release
下载次数: 271
3.2.0+1.20.2 (Fabric)
yet-another-config-lib-fabric-3.2.0+1.20.2.jar下载3.2.0+1.20.2-fabric#Release
# YetAnotherConfigLib 3.2 for 1.20.2
The artifact for this release is
`dev.isxander.yacl:yet-another-config-lib-fabric:3.2.0+1.20.2` (assuming Fabric)
## Config API V2
Starting this update, the previous config api is now deprecated.
The new API is much more modular, and is now fully API-safe.
### What does it look like?
```java
public class MyConfig {
public static final ConfigClassHandler<MyConfig> HANDLER = ConfigClassHandler.createBuilder(MyConfig.class)
.id(new ResourceLocation("my_mod", "my_config")) // unique ID for your config
.serializer(config -> GsonConfigSerializerBuilder.create(config)
.setPath(FabricLoader.getInstance().getConfigDir().resolve("my_config.json"))
.setJson5(true) // json5 support, with GSON!
.build())
.build();
@SerialEntry(comment = "optional comment!")
public boolean myOption = true;
public static void save() {
MyConfig.HANDLER.serializer().save();
}
public static void load() {
MyConfig.HANDLER.serializer().load();
}
}
```
As you can see from the above example, it's syntactically quite similar
to the old API, but with a few key differences:
- The method of serialization has been separated from the class handler itself,
allowing an API safe implementation without needing to override the class handler.
- Supports abstract serialization.
- Names make a lot more sense.
### Auto-gen
The new API can now fully auto-generate your config into a YACL GUI with annotations.
I have been very wary of this feature, since usually it can be very limiting, destroying most
of the core values of the powerful YACL builder interface. However, I believe I've found a great
modular way so that developers can extend the auto-gen feature with their own custom annotations,
adding support for their own custom controllers!
```java
public class MyConfig {
public static final ConfigClassHandler<MyConfig> HANDLER = ConfigClassHandler.createBuilder(MyConfig.class)
.id(new ResourceLocation("my_mod", "my_config")) // unique ID for your config
.serializer(config -> GsonConfigSerializerBuilder.create(config)
.setPath(FabricLoader.getInstance().getConfigDir().resolve("my_config.json"))
.setJson5(true) // json5 support, with GSON!
.build())
.build();
@AutoGen(category = "my_category", group = "my_group")
@Boolean(formatter = Boolean.Formatter.YES_NO, colored = true)
public boolean myOption = true;
public static Screen createScreen(Screen parent) {
return MyConfig.HANDLER.generateGui().generateScreen(parent);
}
}
```
Above is an example of auto-generating a `BooleanController`. Notice how
the field does not require `@SerialEntry`. These are completely separate,
and you can use both at the same time.
For the full range of auto-gen annotations, check the source!
Documentation for the new API is still a work in progress. For now, it's best
to look at the following class: [`dev.isxander.yacl3.test.AutogenConfigTest`](https://github.com/isXander/YetAnotherConfigLib/blob/1.20.x/dev/test-common/src/main/java/dev/isxander/yacl3/test/AutogenConfigTest.java) (not available on the artifact).
## Fix Sodium crash
This is bringing the off-branch hotfix 3.1.1 to the main branch.
## Dropdown controllers
[Crendgrim](https://github.com/isXander/Crendgrim) has PRed a dropdown controller! Which is in this release!
This adds two new controller builders, `DropdownStringControllerBuilder` and `ItemControllerBuilder`.
The latter renders the item in the dropdown, and suggests only the items.
The artifact for this release is
`dev.isxander.yacl:yet-another-config-lib-fabric:3.2.0+1.20.2` (assuming Fabric)
## Config API V2
Starting this update, the previous config api is now deprecated.
The new API is much more modular, and is now fully API-safe.
### What does it look like?
```java
public class MyConfig {
public static final ConfigClassHandler<MyConfig> HANDLER = ConfigClassHandler.createBuilder(MyConfig.class)
.id(new ResourceLocation("my_mod", "my_config")) // unique ID for your config
.serializer(config -> GsonConfigSerializerBuilder.create(config)
.setPath(FabricLoader.getInstance().getConfigDir().resolve("my_config.json"))
.setJson5(true) // json5 support, with GSON!
.build())
.build();
@SerialEntry(comment = "optional comment!")
public boolean myOption = true;
public static void save() {
MyConfig.HANDLER.serializer().save();
}
public static void load() {
MyConfig.HANDLER.serializer().load();
}
}
```
As you can see from the above example, it's syntactically quite similar
to the old API, but with a few key differences:
- The method of serialization has been separated from the class handler itself,
allowing an API safe implementation without needing to override the class handler.
- Supports abstract serialization.
- Names make a lot more sense.
### Auto-gen
The new API can now fully auto-generate your config into a YACL GUI with annotations.
I have been very wary of this feature, since usually it can be very limiting, destroying most
of the core values of the powerful YACL builder interface. However, I believe I've found a great
modular way so that developers can extend the auto-gen feature with their own custom annotations,
adding support for their own custom controllers!
```java
public class MyConfig {
public static final ConfigClassHandler<MyConfig> HANDLER = ConfigClassHandler.createBuilder(MyConfig.class)
.id(new ResourceLocation("my_mod", "my_config")) // unique ID for your config
.serializer(config -> GsonConfigSerializerBuilder.create(config)
.setPath(FabricLoader.getInstance().getConfigDir().resolve("my_config.json"))
.setJson5(true) // json5 support, with GSON!
.build())
.build();
@AutoGen(category = "my_category", group = "my_group")
@Boolean(formatter = Boolean.Formatter.YES_NO, colored = true)
public boolean myOption = true;
public static Screen createScreen(Screen parent) {
return MyConfig.HANDLER.generateGui().generateScreen(parent);
}
}
```
Above is an example of auto-generating a `BooleanController`. Notice how
the field does not require `@SerialEntry`. These are completely separate,
and you can use both at the same time.
For the full range of auto-gen annotations, check the source!
Documentation for the new API is still a work in progress. For now, it's best
to look at the following class: [`dev.isxander.yacl3.test.AutogenConfigTest`](https://github.com/isXander/YetAnotherConfigLib/blob/1.20.x/dev/test-common/src/main/java/dev/isxander/yacl3/test/AutogenConfigTest.java) (not available on the artifact).
## Fix Sodium crash
This is bringing the off-branch hotfix 3.1.1 to the main branch.
## Dropdown controllers
[Crendgrim](https://github.com/isXander/Crendgrim) has PRed a dropdown controller! Which is in this release!
This adds two new controller builders, `DropdownStringControllerBuilder` and `ItemControllerBuilder`.
The latter renders the item in the dropdown, and suggests only the items.
展开
版本: 3.2.0+1.20.2-fabric
支持游戏: 1.20.2
类型: Fabric Quilt
Release
下载次数: 7,599
3.1.1+1.19.4 (Forge)
yet-another-config-lib-forge-3.1.1+1.19.4.jar下载3.1.1+1.19.4-forge#Release
# YetAnotherConfigLib v3.1.1 for 1.19.4
## Rewrote gui-scope `ImageRenderer` API
The `ImageRenderer` API has been rewritten internally to use a dual-thread
initialization. Before, GL calls were made on a separate thread, which silently
threw errors. Sodium 0.5 introduced an option called `No Error Context`, which turned
these warnings into complete JVM crashes.
Because of this, this rewrite was unavailable.
In the process of a huge YACL update, this commit was buried under a lot more changes
that are not ready for production yet, so I decided to branch from 3.1.0 and cherrypick
this commit to fix the issue.
## Does it affect me as a developer?
Most likely not, declaring images through `OptionDescription.Builder` is unaffected as that
is part of the safe API. However, if you use the `ImageRenderer` directly to create your own
custom renderers, you will have to update your code to use the new API.
## Does it affect me as a user?
Most likely, yes. Zoomify and a few other popular mods use the `ImageRenderer` API directly,
these mods will need updating, and will fail to load the images or even crash if they are not updated.
## Rewrote gui-scope `ImageRenderer` API
The `ImageRenderer` API has been rewritten internally to use a dual-thread
initialization. Before, GL calls were made on a separate thread, which silently
threw errors. Sodium 0.5 introduced an option called `No Error Context`, which turned
these warnings into complete JVM crashes.
Because of this, this rewrite was unavailable.
In the process of a huge YACL update, this commit was buried under a lot more changes
that are not ready for production yet, so I decided to branch from 3.1.0 and cherrypick
this commit to fix the issue.
## Does it affect me as a developer?
Most likely not, declaring images through `OptionDescription.Builder` is unaffected as that
is part of the safe API. However, if you use the `ImageRenderer` directly to create your own
custom renderers, you will have to update your code to use the new API.
## Does it affect me as a user?
Most likely, yes. Zoomify and a few other popular mods use the `ImageRenderer` API directly,
these mods will need updating, and will fail to load the images or even crash if they are not updated.
展开
版本: 3.1.1+1.19.4-forge
支持游戏: 1.19.4
类型: Forge
Release
下载次数: 5,430
3.1.1+1.19.4 (Fabric)
yet-another-config-lib-fabric-3.1.1+1.19.4.jar下载3.1.1+1.19.4-fabric#Release
# YetAnotherConfigLib v3.1.1 for 1.19.4
## Rewrote gui-scope `ImageRenderer` API
The `ImageRenderer` API has been rewritten internally to use a dual-thread
initialization. Before, GL calls were made on a separate thread, which silently
threw errors. Sodium 0.5 introduced an option called `No Error Context`, which turned
these warnings into complete JVM crashes.
Because of this, this rewrite was unavailable.
In the process of a huge YACL update, this commit was buried under a lot more changes
that are not ready for production yet, so I decided to branch from 3.1.0 and cherrypick
this commit to fix the issue.
## Does it affect me as a developer?
Most likely not, declaring images through `OptionDescription.Builder` is unaffected as that
is part of the safe API. However, if you use the `ImageRenderer` directly to create your own
custom renderers, you will have to update your code to use the new API.
## Does it affect me as a user?
Most likely, yes. Zoomify and a few other popular mods use the `ImageRenderer` API directly,
these mods will need updating, and will fail to load the images or even crash if they are not updated.
## Rewrote gui-scope `ImageRenderer` API
The `ImageRenderer` API has been rewritten internally to use a dual-thread
initialization. Before, GL calls were made on a separate thread, which silently
threw errors. Sodium 0.5 introduced an option called `No Error Context`, which turned
these warnings into complete JVM crashes.
Because of this, this rewrite was unavailable.
In the process of a huge YACL update, this commit was buried under a lot more changes
that are not ready for production yet, so I decided to branch from 3.1.0 and cherrypick
this commit to fix the issue.
## Does it affect me as a developer?
Most likely not, declaring images through `OptionDescription.Builder` is unaffected as that
is part of the safe API. However, if you use the `ImageRenderer` directly to create your own
custom renderers, you will have to update your code to use the new API.
## Does it affect me as a user?
Most likely, yes. Zoomify and a few other popular mods use the `ImageRenderer` API directly,
these mods will need updating, and will fail to load the images or even crash if they are not updated.
展开
版本: 3.1.1+1.19.4-fabric
支持游戏: 1.19.4
类型: Fabric Quilt
Release
下载次数: 37,190
3.1.1+1.20 (Forge)
yet-another-config-lib-forge-3.1.1+1.20.jar下载3.1.1+1.20-forge#Release
# YetAnotherConfigLib v3.1.1 for 1.20.1
## Rewrote gui-scope `ImageRenderer` API
The `ImageRenderer` API has been rewritten internally to use a dual-thread
initialization. Before, GL calls were made on a separate thread, which silently
threw errors. Sodium 0.5 introduced an option called `No Error Context`, which turned
these warnings into complete JVM crashes.
Because of this, this rewrite was unavailable.
In the process of a huge YACL update, this commit was buried under a lot more changes
that are not ready for production yet, so I decided to branch from 3.1.0 and cherrypick
this commit to fix the issue.
## Does it affect me as a developer?
Most likely not, declaring images through `OptionDescription.Builder` is unaffected as that
is part of the safe API. However, if you use the `ImageRenderer` directly to create your own
custom renderers, you will have to update your code to use the new API.
## Does it affect me as a user?
Most likely, yes. Zoomify and a few other popular mods use the `ImageRenderer` API directly,
these mods will need updating, and will fail to load the images or even crash if they are not updated.
## Rewrote gui-scope `ImageRenderer` API
The `ImageRenderer` API has been rewritten internally to use a dual-thread
initialization. Before, GL calls were made on a separate thread, which silently
threw errors. Sodium 0.5 introduced an option called `No Error Context`, which turned
these warnings into complete JVM crashes.
Because of this, this rewrite was unavailable.
In the process of a huge YACL update, this commit was buried under a lot more changes
that are not ready for production yet, so I decided to branch from 3.1.0 and cherrypick
this commit to fix the issue.
## Does it affect me as a developer?
Most likely not, declaring images through `OptionDescription.Builder` is unaffected as that
is part of the safe API. However, if you use the `ImageRenderer` directly to create your own
custom renderers, you will have to update your code to use the new API.
## Does it affect me as a user?
Most likely, yes. Zoomify and a few other popular mods use the `ImageRenderer` API directly,
these mods will need updating, and will fail to load the images or even crash if they are not updated.
展开
版本: 3.1.1+1.20-forge
支持游戏: 1.20, 1.20.1
类型: Forge
Release
下载次数: 4,911
3.1.1+1.20 (Fabric)
yet-another-config-lib-fabric-3.1.1+1.20.jar下载3.1.1+1.20-fabric#Release
# YetAnotherConfigLib v3.1.1 for 1.20.1
## Rewrote gui-scope `ImageRenderer` API
The `ImageRenderer` API has been rewritten internally to use a dual-thread
initialization. Before, GL calls were made on a separate thread, which silently
threw errors. Sodium 0.5 introduced an option called `No Error Context`, which turned
these warnings into complete JVM crashes.
Because of this, this rewrite was unavailable.
In the process of a huge YACL update, this commit was buried under a lot more changes
that are not ready for production yet, so I decided to branch from 3.1.0 and cherrypick
this commit to fix the issue.
## Does it affect me as a developer?
Most likely not, declaring images through `OptionDescription.Builder` is unaffected as that
is part of the safe API. However, if you use the `ImageRenderer` directly to create your own
custom renderers, you will have to update your code to use the new API.
## Does it affect me as a user?
Most likely, yes. Zoomify and a few other popular mods use the `ImageRenderer` API directly,
these mods will need updating, and will fail to load the images or even crash if they are not updated.
## Rewrote gui-scope `ImageRenderer` API
The `ImageRenderer` API has been rewritten internally to use a dual-thread
initialization. Before, GL calls were made on a separate thread, which silently
threw errors. Sodium 0.5 introduced an option called `No Error Context`, which turned
these warnings into complete JVM crashes.
Because of this, this rewrite was unavailable.
In the process of a huge YACL update, this commit was buried under a lot more changes
that are not ready for production yet, so I decided to branch from 3.1.0 and cherrypick
this commit to fix the issue.
## Does it affect me as a developer?
Most likely not, declaring images through `OptionDescription.Builder` is unaffected as that
is part of the safe API. However, if you use the `ImageRenderer` directly to create your own
custom renderers, you will have to update your code to use the new API.
## Does it affect me as a user?
Most likely, yes. Zoomify and a few other popular mods use the `ImageRenderer` API directly,
these mods will need updating, and will fail to load the images or even crash if they are not updated.
展开
版本: 3.1.1+1.20-fabric
支持游戏: 1.20, 1.20.1
类型: Fabric Quilt
Release
下载次数: 192,650
3.1.0+1.20 (Forge)
yet-another-config-lib-forge-3.1.0+1.20.jar下载3.1.0+1.20-forge#Release
# YetAnotherConfigLib 3.1.0 for 1.20
## API Changes
### `ListOption` changes
A PR by [Crendgrim](https://github.com/isXander/YetAnotherConfigLib/pull/89) - thanks a lot!
- Allow to specify size limits for option lists.
- This allows to set a minimum and maximum length for the option list with the `minimumNumberOfEntries`
and `maximumNumberOfEntries` builder methods.
- Allow "reversed" lists that add new options at their end.
- List options until now always grew at the top. This patch allows you to manipulate this behaviour with the
`insertEntriesAtEnd` builder method.
### `ImageRenderer` changes
Added a `tick()` method to image renderers that allows to update the image in a regular interval.
## Bug Fixes
- Fixed a bug where image renderers were rendered twice per frame.
- Updated the ImageIO dependency to fix sometimes buggy animated WebP rendering.
- Fixed the name of the list being rendered on every entry of said list.
## Language Updates
- Added Tatar translation (by [Amirhan-Taipovjan-Greatest-I](https://github.com/isXander/YetAnotherConfigLib/pull/90))
## API Changes
### `ListOption` changes
A PR by [Crendgrim](https://github.com/isXander/YetAnotherConfigLib/pull/89) - thanks a lot!
- Allow to specify size limits for option lists.
- This allows to set a minimum and maximum length for the option list with the `minimumNumberOfEntries`
and `maximumNumberOfEntries` builder methods.
- Allow "reversed" lists that add new options at their end.
- List options until now always grew at the top. This patch allows you to manipulate this behaviour with the
`insertEntriesAtEnd` builder method.
### `ImageRenderer` changes
Added a `tick()` method to image renderers that allows to update the image in a regular interval.
## Bug Fixes
- Fixed a bug where image renderers were rendered twice per frame.
- Updated the ImageIO dependency to fix sometimes buggy animated WebP rendering.
- Fixed the name of the list being rendered on every entry of said list.
## Language Updates
- Added Tatar translation (by [Amirhan-Taipovjan-Greatest-I](https://github.com/isXander/YetAnotherConfigLib/pull/90))
展开
版本: 3.1.0+1.20-forge
支持游戏: 1.20, 1.20.1
类型: Forge
NeoForge
Release
下载次数: 9,074
3.1.0+1.20 (Fabric)
yet-another-config-lib-fabric-3.1.0+1.20.jar下载3.1.0+1.20-fabric#Release
# YetAnotherConfigLib 3.1.0 for 1.20
## API Changes
### `ListOption` changes
A PR by [Crendgrim](https://github.com/isXander/YetAnotherConfigLib/pull/89) - thanks a lot!
- Allow to specify size limits for option lists.
- This allows to set a minimum and maximum length for the option list with the `minimumNumberOfEntries`
and `maximumNumberOfEntries` builder methods.
- Allow "reversed" lists that add new options at their end.
- List options until now always grew at the top. This patch allows you to manipulate this behaviour with the
`insertEntriesAtEnd` builder method.
### `ImageRenderer` changes
Added a `tick()` method to image renderers that allows to update the image in a regular interval.
## Bug Fixes
- Fixed a bug where image renderers were rendered twice per frame.
- Updated the ImageIO dependency to fix sometimes buggy animated WebP rendering.
- Fixed the name of the list being rendered on every entry of said list.
## Language Updates
- Added Tatar translation (by [Amirhan-Taipovjan-Greatest-I](https://github.com/isXander/YetAnotherConfigLib/pull/90))
## API Changes
### `ListOption` changes
A PR by [Crendgrim](https://github.com/isXander/YetAnotherConfigLib/pull/89) - thanks a lot!
- Allow to specify size limits for option lists.
- This allows to set a minimum and maximum length for the option list with the `minimumNumberOfEntries`
and `maximumNumberOfEntries` builder methods.
- Allow "reversed" lists that add new options at their end.
- List options until now always grew at the top. This patch allows you to manipulate this behaviour with the
`insertEntriesAtEnd` builder method.
### `ImageRenderer` changes
Added a `tick()` method to image renderers that allows to update the image in a regular interval.
## Bug Fixes
- Fixed a bug where image renderers were rendered twice per frame.
- Updated the ImageIO dependency to fix sometimes buggy animated WebP rendering.
- Fixed the name of the list being rendered on every entry of said list.
## Language Updates
- Added Tatar translation (by [Amirhan-Taipovjan-Greatest-I](https://github.com/isXander/YetAnotherConfigLib/pull/90))
展开
版本: 3.1.0+1.20-fabric
支持游戏: 1.20, 1.20.1
类型: Fabric Quilt
Release
下载次数: 191,411
3.1.0+1.19.4 (Forge)
yet-another-config-lib-forge-3.1.0+1.19.4.jar下载3.1.0+1.19.4-forge#Release
# YetAnotherConfigLib 3.1.0 for 1.19.4
## API Changes
### `ListOption` changes
A PR by [Crendgrim](https://github.com/isXander/YetAnotherConfigLib/pull/89) - thanks a lot!
- Allow to specify size limits for option lists.
- This allows to set a minimum and maximum length for the option list with the `minimumNumberOfEntries`
and `maximumNumberOfEntries` builder methods.
- Allow "reversed" lists that add new options at their end.
- List options until now always grew at the top. This patch allows you to manipulate this behaviour with the
`insertEntriesAtEnd` builder method.
### `ImageRenderer` changes
Added a `tick()` method to image renderers that allows to update the image in a regular interval.
## Bug Fixes
- Fixed a bug where image renderers were rendered twice per frame.
- Updated the ImageIO dependency to fix sometimes buggy animated WebP rendering.
- Fixed the name of the list being rendered on every entry of said list.
## Language Updates
- Added Tatar translation (by [Amirhan-Taipovjan-Greatest-I](https://github.com/isXander/YetAnotherConfigLib/pull/90))
## API Changes
### `ListOption` changes
A PR by [Crendgrim](https://github.com/isXander/YetAnotherConfigLib/pull/89) - thanks a lot!
- Allow to specify size limits for option lists.
- This allows to set a minimum and maximum length for the option list with the `minimumNumberOfEntries`
and `maximumNumberOfEntries` builder methods.
- Allow "reversed" lists that add new options at their end.
- List options until now always grew at the top. This patch allows you to manipulate this behaviour with the
`insertEntriesAtEnd` builder method.
### `ImageRenderer` changes
Added a `tick()` method to image renderers that allows to update the image in a regular interval.
## Bug Fixes
- Fixed a bug where image renderers were rendered twice per frame.
- Updated the ImageIO dependency to fix sometimes buggy animated WebP rendering.
- Fixed the name of the list being rendered on every entry of said list.
## Language Updates
- Added Tatar translation (by [Amirhan-Taipovjan-Greatest-I](https://github.com/isXander/YetAnotherConfigLib/pull/90))
展开
版本: 3.1.0+1.19.4-forge
支持游戏: 1.19.4
类型: Forge
Release
下载次数: 698
3.1.0+1.19.4 (Fabric)
yet-another-config-lib-fabric-3.1.0+1.19.4.jar下载3.1.0+1.19.4-fabric#Release
# YetAnotherConfigLib 3.1.0 for 1.19.4
## API Changes
### `ListOption` changes
A PR by [Crendgrim](https://github.com/isXander/YetAnotherConfigLib/pull/89) - thanks a lot!
- Allow to specify size limits for option lists.
- This allows to set a minimum and maximum length for the option list with the `minimumNumberOfEntries`
and `maximumNumberOfEntries` builder methods.
- Allow "reversed" lists that add new options at their end.
- List options until now always grew at the top. This patch allows you to manipulate this behaviour with the
`insertEntriesAtEnd` builder method.
### `ImageRenderer` changes
Added a `tick()` method to image renderers that allows to update the image in a regular interval.
## Bug Fixes
- Fixed a bug where image renderers were rendered twice per frame.
- Updated the ImageIO dependency to fix sometimes buggy animated WebP rendering.
- Fixed the name of the list being rendered on every entry of said list.
## Language Updates
- Added Tatar translation (by [Amirhan-Taipovjan-Greatest-I](https://github.com/isXander/YetAnotherConfigLib/pull/90))
## API Changes
### `ListOption` changes
A PR by [Crendgrim](https://github.com/isXander/YetAnotherConfigLib/pull/89) - thanks a lot!
- Allow to specify size limits for option lists.
- This allows to set a minimum and maximum length for the option list with the `minimumNumberOfEntries`
and `maximumNumberOfEntries` builder methods.
- Allow "reversed" lists that add new options at their end.
- List options until now always grew at the top. This patch allows you to manipulate this behaviour with the
`insertEntriesAtEnd` builder method.
### `ImageRenderer` changes
Added a `tick()` method to image renderers that allows to update the image in a regular interval.
## Bug Fixes
- Fixed a bug where image renderers were rendered twice per frame.
- Updated the ImageIO dependency to fix sometimes buggy animated WebP rendering.
- Fixed the name of the list being rendered on every entry of said list.
## Language Updates
- Added Tatar translation (by [Amirhan-Taipovjan-Greatest-I](https://github.com/isXander/YetAnotherConfigLib/pull/90))
展开
版本: 3.1.0+1.19.4-fabric
支持游戏: 1.19.4
类型: Fabric Quilt
Release
下载次数: 23,626
3.0.4+1.19.4 (Forge)
yet-another-config-lib-forge-3.0.4+1.19.4.jar下载3.0.4+1.19.4-forge#Release
- Allow transparency for WEBP and GIF images.
- Fix crash when reading single-frame WEBPs.
- Fix crash when reading single-frame WEBPs.
展开
版本: 3.0.4+1.19.4-forge
支持游戏: 1.19.4
类型: Forge
Release
下载次数: 677
3.0.4+1.19.4 (Fabric)
yet-another-config-lib-fabric-3.0.4+1.19.4.jar下载3.0.4+1.19.4-fabric#Release
- Allow transparency for WEBP and GIF images.
- Fix crash when reading single-frame WEBPs.
- Fix crash when reading single-frame WEBPs.
展开
版本: 3.0.4+1.19.4-fabric
支持游戏: 1.19.4
类型: Fabric Quilt
Release
下载次数: 23,968
3.0.3+1.20 (Forge)
yet-another-config-lib-forge-3.0.3+1.20.jar下载3.0.3+1.20-forge#Release
- Allow transparency for WEBP and GIF images.
- Fix crash when reading single-frame WEBPs.
- Fix crash when reading single-frame WEBPs.
展开
版本: 3.0.3+1.20-forge
支持游戏: 1.20, 1.20.1
类型: Forge
Release
下载次数: 3,704
3.0.3+1.20 (Fabric)
yet-another-config-lib-fabric-3.0.3+1.20.jar下载3.0.3+1.20-fabric#Release
- Allow transparency for WEBP and GIF images.
- Fix crash when reading single-frame WEBPs.
- Fix crash when reading single-frame WEBPs.
展开
版本: 3.0.3+1.20-fabric
支持游戏: 1.20, 1.20.1
类型: Fabric Quilt
Release
下载次数: 47,135
3.0.3+1.19.4 (Forge)
yet-another-config-lib-forge-3.0.3+1.19.4.jar下载3.0.3+1.19.4-forge#Release
- Fix crashing in some circumstances
展开
版本: 3.0.3+1.19.4-forge
支持游戏: 1.19.4
类型: Forge
Release
下载次数: 300
3.0.3+1.19.4 (Fabric)
yet-another-config-lib-fabric-3.0.3+1.19.4.jar下载3.0.3+1.19.4-fabric#Release
- Fix crashing in some circumstances
展开
版本: 3.0.3+1.19.4-fabric
支持游戏: 1.19.4
类型: Fabric Quilt
Release
下载次数: 6,220
3.0.2+1.20 (Forge)
yet-another-config-lib-forge-3.0.2+1.20.jar下载3.0.2+1.20-forge#Release
- Fix `IntegerFieldController` and `LongFieldController` not allowing negative values.
- Reimplement `ButtonOption` changing the 'EXECUTE' text with `ButtonOption.Builder#text()`
- Reimplement `ButtonOption` changing the 'EXECUTE' text with `ButtonOption.Builder#text()`
展开
版本: 3.0.2+1.20-forge
支持游戏: 1.20, 1.20.1
类型: Forge
Release
下载次数: 2,126
3.0.2+1.20 (Fabric)
yet-another-config-lib-fabric-3.0.2+1.20.jar下载3.0.2+1.20-fabric#Release
- Fix `IntegerFieldController` and `LongFieldController` not allowing negative values.
- Reimplement `ButtonOption` changing the 'EXECUTE' text with `ButtonOption.Builder#text()`
- Reimplement `ButtonOption` changing the 'EXECUTE' text with `ButtonOption.Builder#text()`
展开
版本: 3.0.2+1.20-fabric
支持游戏: 1.20, 1.20.1
类型: Fabric Quilt
Release
下载次数: 44,265
3.0.2+1.19.4 (Forge)
yet-another-config-lib-forge-3.0.2+1.19.4.jar下载3.0.2+1.19.4-forge#Release
- Fix IntegerFieldController and LongFieldController not allowing negative values.
- Reimplement ButtonOption changing the 'EXECUTE' text with `ButtonOption.Builder#text()`
- Fix a crash on some loads when viewing list widgets.
- Reimplement ButtonOption changing the 'EXECUTE' text with `ButtonOption.Builder#text()`
- Fix a crash on some loads when viewing list widgets.
展开
版本: 3.0.2+1.19.4-forge
支持游戏: 1.19.4
类型: Forge
Release
下载次数: 109
3.0.2+1.19.4 (Fabric)
yet-another-config-lib-fabric-3.0.2+1.19.4.jar下载3.0.2+1.19.4-fabric#Release
- Fix IntegerFieldController and LongFieldController not allowing negative values.
- Reimplement ButtonOption changing the 'EXECUTE' text with `ButtonOption.Builder#text()`
- Fix a crash on some loads when viewing list widgets.
- Reimplement ButtonOption changing the 'EXECUTE' text with `ButtonOption.Builder#text()`
- Fix a crash on some loads when viewing list widgets.
展开
版本: 3.0.2+1.19.4-fabric
支持游戏: 1.19.4
类型: Fabric Quilt
Release
下载次数: 3,323
3.0.1+1.20 (Forge)
yet-another-config-lib-forge-3.0.1+1.20.jar下载3.0.1+1.20-forge#Release
- Fix crash when loading YACL images
展开
版本: 3.0.1+1.20-forge
支持游戏: 1.20
类型: Forge
Release
下载次数: 2,494
3.0.1+1.20 (Fabric)
yet-another-config-lib-fabric-3.0.1+1.20.jar下载3.0.1+1.20-fabric#Release
- Fix crash when loading YACL images
展开
版本: 3.0.1+1.20-fabric
支持游戏: 1.20
类型: Fabric Quilt
Release
下载次数: 70,565
3.0.1+1.19.4 (Forge)
yet-another-config-lib-forge-3.0.1+1.19.4.jar下载3.0.1+1.19.4-forge#Release
- Fix an unavoidable crash when opening any list
- Fix a crash when loading YACL images
- Fix a crash when loading YACL images
展开
版本: 3.0.1+1.19.4-forge
支持游戏: 1.19.4
类型: Forge
Release
下载次数: 360
3.0.1+1.19.4 (Fabric)
yet-another-config-lib-fabric-3.0.1+1.19.4.jar下载3.0.1+1.19.4-fabric#Release
- Fix an unavoidable crash when opening any list
- Fix a crash when loading YACL images
- Fix a crash when loading YACL images
展开
版本: 3.0.1+1.19.4-fabric
支持游戏: 1.19.4
类型: Fabric Quilt
Release
下载次数: 22,878
3.0.0+1.20 (Fabric)
yet-another-config-lib-fabric-3.0.0+1.20.jar下载3.0.0+1.20-fabric#Release
# YetAnotherConfigLib v3
3.0 of YACL introduces a new UI layout, taking advantage of 1.19.4's new tab system!
## Description Panel
The description panel takes the place of the old category buttons, you can now interact with the text by clicking or hovering and the description can contain an animated WebP file or a static image. This can help you as a developer to portray what your option does with an actual example.
Like the old tooltip system, these descriptions can dynamically change based on the value of the option, including the image.
After a few seconds of hovering, the description will start to auto-scroll if necessary so inputs such as controller can still use the UI.
```java
.description(OptionDescription.createBuilder()
.text(Text.literal("Line 1"))
.text(Text.literal("Line 2"))
.webpImage(new Identifier("mymod", "config/screenshots/config_example.webp"))
.build())
```
*the above is applicable to both groups and options*
## Tab System
YACL now uses a slightly modified version of 1.19.4's new create world screen, this adds tab overflow, so you can scroll through the tabs in case there are too many to fit on the screen.
## Controller Builders
Controllers now use a builder system, rather than using constructors. This allows for more flexibility in the future.
You can still use your own controller implementations without creating a builder, using `.customController()`.
## For mod developers...
This update is for both 1.19.4 and 1.20, there is complete API parity. 1.20 is now the active branch,
and 1.19.4 is now considered LTS and may receive features from 1.20 at a later date.
## For users/modpack developers...
YACL 3.0 includes the old 2.x inside the new JAR. So you can safely upgrade to 3.0 without breaking
mods that have not yet updated. However, the old UI will still be present for this outdated mods.
3.0 of YACL introduces a new UI layout, taking advantage of 1.19.4's new tab system!
## Description Panel
The description panel takes the place of the old category buttons, you can now interact with the text by clicking or hovering and the description can contain an animated WebP file or a static image. This can help you as a developer to portray what your option does with an actual example.
Like the old tooltip system, these descriptions can dynamically change based on the value of the option, including the image.
After a few seconds of hovering, the description will start to auto-scroll if necessary so inputs such as controller can still use the UI.
```java
.description(OptionDescription.createBuilder()
.text(Text.literal("Line 1"))
.text(Text.literal("Line 2"))
.webpImage(new Identifier("mymod", "config/screenshots/config_example.webp"))
.build())
```
*the above is applicable to both groups and options*
## Tab System
YACL now uses a slightly modified version of 1.19.4's new create world screen, this adds tab overflow, so you can scroll through the tabs in case there are too many to fit on the screen.
## Controller Builders
Controllers now use a builder system, rather than using constructors. This allows for more flexibility in the future.
You can still use your own controller implementations without creating a builder, using `.customController()`.
## For mod developers...
This update is for both 1.19.4 and 1.20, there is complete API parity. 1.20 is now the active branch,
and 1.19.4 is now considered LTS and may receive features from 1.20 at a later date.
## For users/modpack developers...
YACL 3.0 includes the old 2.x inside the new JAR. So you can safely upgrade to 3.0 without breaking
mods that have not yet updated. However, the old UI will still be present for this outdated mods.
展开
版本: 3.0.0+1.20-fabric
支持游戏: 1.20
类型: Fabric Quilt
Release
下载次数: 2,733
3.0.0+1.19.4 (Forge)
yet-another-config-lib-forge-3.0.0+1.19.4.jar下载3.0.0+1.19.4-forge#Release
# YetAnotherConfigLib v3
3.0 of YACL introduces a new UI layout, taking advantage of 1.19.4's new tab system!
## Description Panel
The description panel takes the place of the old category buttons, you can now interact with the text by clicking or hovering and the description can contain an animated WebP file or a static image. This can help you as a developer to portray what your option does with an actual example.
Like the old tooltip system, these descriptions can dynamically change based on the value of the option, including the image.
After a few seconds of hovering, the description will start to auto-scroll if necessary so inputs such as controller can still use the UI.
```java
.description(OptionDescription.createBuilder()
.text(Text.literal("Line 1"))
.text(Text.literal("Line 2"))
.webpImage(new Identifier("mymod", "config/screenshots/config_example.webp"))
.build())
```
*the above is applicable to both groups and options*
## Tab System
YACL now uses a slightly modified version of 1.19.4's new create world screen, this adds tab overflow, so you can scroll through the tabs in case there are too many to fit on the screen.
## Controller Builders
Controllers now use a builder system, rather than using constructors. This allows for more flexibility in the future.
You can still use your own controller implementations without creating a builder, using `.customController()`.
## For mod developers...
This update is for both 1.19.4 and 1.20, there is complete API parity. 1.20 is now the active branch,
and 1.19.4 is now considered LTS and may receive features from 1.20 at a later date.
## For users/modpack developers...
YACL 3.0 includes the old 2.x inside the new JAR. So you can safely upgrade to 3.0 without breaking
mods that have not yet updated. However, the old UI will still be present for this outdated mods.
3.0 of YACL introduces a new UI layout, taking advantage of 1.19.4's new tab system!
## Description Panel
The description panel takes the place of the old category buttons, you can now interact with the text by clicking or hovering and the description can contain an animated WebP file or a static image. This can help you as a developer to portray what your option does with an actual example.
Like the old tooltip system, these descriptions can dynamically change based on the value of the option, including the image.
After a few seconds of hovering, the description will start to auto-scroll if necessary so inputs such as controller can still use the UI.
```java
.description(OptionDescription.createBuilder()
.text(Text.literal("Line 1"))
.text(Text.literal("Line 2"))
.webpImage(new Identifier("mymod", "config/screenshots/config_example.webp"))
.build())
```
*the above is applicable to both groups and options*
## Tab System
YACL now uses a slightly modified version of 1.19.4's new create world screen, this adds tab overflow, so you can scroll through the tabs in case there are too many to fit on the screen.
## Controller Builders
Controllers now use a builder system, rather than using constructors. This allows for more flexibility in the future.
You can still use your own controller implementations without creating a builder, using `.customController()`.
## For mod developers...
This update is for both 1.19.4 and 1.20, there is complete API parity. 1.20 is now the active branch,
and 1.19.4 is now considered LTS and may receive features from 1.20 at a later date.
## For users/modpack developers...
YACL 3.0 includes the old 2.x inside the new JAR. So you can safely upgrade to 3.0 without breaking
mods that have not yet updated. However, the old UI will still be present for this outdated mods.
展开
版本: 3.0.0+1.19.4-forge
支持游戏: 1.19.4
类型: Forge
Release
下载次数: 198
3.0.0+1.19.4 (Fabric)
yet-another-config-lib-fabric-3.0.0+1.19.4.jar下载3.0.0+1.19.4-fabric#Release
# YetAnotherConfigLib v3
3.0 of YACL introduces a new UI layout, taking advantage of 1.19.4's new tab system!
## Description Panel
The description panel takes the place of the old category buttons, you can now interact with the text by clicking or hovering and the description can contain an animated WebP file or a static image. This can help you as a developer to portray what your option does with an actual example.
Like the old tooltip system, these descriptions can dynamically change based on the value of the option, including the image.
After a few seconds of hovering, the description will start to auto-scroll if necessary so inputs such as controller can still use the UI.
```java
.description(OptionDescription.createBuilder()
.text(Text.literal("Line 1"))
.text(Text.literal("Line 2"))
.webpImage(new Identifier("mymod", "config/screenshots/config_example.webp"))
.build())
```
*the above is applicable to both groups and options*
## Tab System
YACL now uses a slightly modified version of 1.19.4's new create world screen, this adds tab overflow, so you can scroll through the tabs in case there are too many to fit on the screen.
## Controller Builders
Controllers now use a builder system, rather than using constructors. This allows for more flexibility in the future.
You can still use your own controller implementations without creating a builder, using `.customController()`.
## For mod developers...
This update is for both 1.19.4 and 1.20, there is complete API parity. 1.20 is now the active branch,
and 1.19.4 is now considered LTS and may receive features from 1.20 at a later date.
## For users/modpack developers...
YACL 3.0 includes the old 2.x inside the new JAR. So you can safely upgrade to 3.0 without breaking
mods that have not yet updated. However, the old UI will still be present for this outdated mods.
3.0 of YACL introduces a new UI layout, taking advantage of 1.19.4's new tab system!
## Description Panel
The description panel takes the place of the old category buttons, you can now interact with the text by clicking or hovering and the description can contain an animated WebP file or a static image. This can help you as a developer to portray what your option does with an actual example.
Like the old tooltip system, these descriptions can dynamically change based on the value of the option, including the image.
After a few seconds of hovering, the description will start to auto-scroll if necessary so inputs such as controller can still use the UI.
```java
.description(OptionDescription.createBuilder()
.text(Text.literal("Line 1"))
.text(Text.literal("Line 2"))
.webpImage(new Identifier("mymod", "config/screenshots/config_example.webp"))
.build())
```
*the above is applicable to both groups and options*
## Tab System
YACL now uses a slightly modified version of 1.19.4's new create world screen, this adds tab overflow, so you can scroll through the tabs in case there are too many to fit on the screen.
## Controller Builders
Controllers now use a builder system, rather than using constructors. This allows for more flexibility in the future.
You can still use your own controller implementations without creating a builder, using `.customController()`.
## For mod developers...
This update is for both 1.19.4 and 1.20, there is complete API parity. 1.20 is now the active branch,
and 1.19.4 is now considered LTS and may receive features from 1.20 at a later date.
## For users/modpack developers...
YACL 3.0 includes the old 2.x inside the new JAR. So you can safely upgrade to 3.0 without breaking
mods that have not yet updated. However, the old UI will still be present for this outdated mods.
展开
版本: 3.0.0+1.19.4-fabric
支持游戏: 1.19.4
类型: Fabric Quilt
Release
下载次数: 908
3.0.0-beta.2+1.19.4 (Forge)
yet-another-config-lib-forge-3.0.0-beta.2+1.19.4.jar下载3.0.0-beta.2+1.19.4-forge#Beta
# YetAnotherConfigLib 3.0.0-beta.2+1.19.4
This version adds no features, nor bug fixes, instead it implements a breaking change:
**The YACL package has changed** to `dev.isxander.yacl3` and **the YACL mod-id has changed** to `yet_another_config_lib_v3`.
This is to prevent conflicts with 2.0, so you can load both versions at the same time so older mods don't break.
This version adds no features, nor bug fixes, instead it implements a breaking change:
**The YACL package has changed** to `dev.isxander.yacl3` and **the YACL mod-id has changed** to `yet_another_config_lib_v3`.
This is to prevent conflicts with 2.0, so you can load both versions at the same time so older mods don't break.
展开
版本: 3.0.0-beta.2+1.19.4-forge
支持游戏: 1.19.4
类型: Forge
Beta
下载次数: 140
3.0.0-beta.2+1.19.4 (Fabric)
yet-another-config-lib-fabric-3.0.0-beta.2+1.19.4.jar下载3.0.0-beta.2+1.19.4-fabric#Release
# YetAnotherConfigLib 3.0.0-beta.2+1.19.4
This version adds no features, nor bug fixes, instead it implements a breaking change:
**The YACL package has changed** to `dev.isxander.yacl3` and **the YACL mod-id has changed** to `yet_another_config_lib_v3`.
This is to prevent conflicts with 2.0, so you can load both versions at the same time so older mods don't break.
This version adds no features, nor bug fixes, instead it implements a breaking change:
**The YACL package has changed** to `dev.isxander.yacl3` and **the YACL mod-id has changed** to `yet_another_config_lib_v3`.
This is to prevent conflicts with 2.0, so you can load both versions at the same time so older mods don't break.
展开
版本: 3.0.0-beta.2+1.19.4-fabric
支持游戏: 1.19.4
类型: Fabric Quilt
Release
下载次数: 2,199
3.0.0-beta.7+1.20 (Fabric)
yet-another-config-lib-fabric-3.0.0-beta.7+1.20.jar下载3.0.0-beta.7+1.20-fabric#Beta
# YetAnotherConfigLib 3.0.0-beta.7+1.20
This version adds no features, nor bug fixes, instead it implements a breaking change:
**The YACL package has changed** to `dev.isxander.yacl3` and **the YACL mod-id has changed** to `yet_another_config_lib_v3`.
This is to prevent conflicts with 2.0, so you can load both versions at the same time so older mods don't break.
This version adds no features, nor bug fixes, instead it implements a breaking change:
**The YACL package has changed** to `dev.isxander.yacl3` and **the YACL mod-id has changed** to `yet_another_config_lib_v3`.
This is to prevent conflicts with 2.0, so you can load both versions at the same time so older mods don't break.
展开
版本: 3.0.0-beta.7+1.20-fabric
支持游戏: 1.20-pre2
类型: Fabric Quilt
Beta
下载次数: 2,826
3.0.0-beta.1+1.19.4 (Forge)
yet-another-config-lib-forge-3.0.0-beta.1+1.19.4.jar下载3.0.0-beta.1+1.19.4-forge#Beta
# YetAnotherConfigLib 3.0 Beta 1 (for 1.19.4)
This release is parity with 3.0.0-beta.6 for 1.20.
Unfortunately, 3.0 will only be available for 1.19.4 and up, not 1.19.2. This is because YACL
now highly depends on .4's new tab system (found in the create new world screen).
If there is a high enough demand for a backport to 1.19.2, I will consider it, but no promises!
This release is parity with 3.0.0-beta.6 for 1.20.
Unfortunately, 3.0 will only be available for 1.19.4 and up, not 1.19.2. This is because YACL
now highly depends on .4's new tab system (found in the create new world screen).
If there is a high enough demand for a backport to 1.19.2, I will consider it, but no promises!
展开
版本: 3.0.0-beta.1+1.19.4-forge
支持游戏: 1.19.4
类型: Forge
Beta
下载次数: 109
3.0.0-beta.1+1.19.4 (Fabric)
yet-another-config-lib-fabric-3.0.0-beta.1+1.19.4.jar下载3.0.0-beta.1+1.19.4-fabric#Release
# YetAnotherConfigLib 3.0 Beta 1 (for 1.19.4)
This release is parity with 3.0.0-beta.6 for 1.20.
Unfortunately, 3.0 will only be available for 1.19.4 and up, not 1.19.2. This is because YACL
now highly depends on .4's new tab system (found in the create new world screen).
If there is a high enough demand for a backport to 1.19.2, I will consider it, but no promises!
This release is parity with 3.0.0-beta.6 for 1.20.
Unfortunately, 3.0 will only be available for 1.19.4 and up, not 1.19.2. This is because YACL
now highly depends on .4's new tab system (found in the create new world screen).
If there is a high enough demand for a backport to 1.19.2, I will consider it, but no promises!
展开
版本: 3.0.0-beta.1+1.19.4-fabric
支持游戏: 1.19.4
类型: Fabric Quilt
Release
下载次数: 3,753
3.0.0-beta.6+1.20 (Fabric)
yet-another-config-lib-fabric-3.0.0-beta.6+1.20.jar下载3.0.0-beta.6+1.20-fabric#Beta
# YetAnotherConfigLib 3.0 Beta 6
## Bug Fixes
- Fix reading of some lossy animated WebP images.
## Bug Fixes
- Fix reading of some lossy animated WebP images.
展开
版本: 3.0.0-beta.6+1.20-fabric
支持游戏: 1.20-pre2
类型: Fabric Quilt
Beta
下载次数: 38
3.0.0-beta.5+1.20 (Fabric)
yet-another-config-lib-fabric-3.0.0-beta.5+1.20.jar下载3.0.0-beta.5+1.20-fabric#Beta
# YetAnotherConfigLib 3.0 Beta 5
## API Changes
- `OptionDescription.Builder#description` has been renamed to `text`, to make it more clear as it used to look like:
```java
.description(OptionDescription.createBuilder()
.description(Component.literal("This is some text"))
.build())
```
- `ListOption.createBuilder` now no longer takes a class parameter, to match with `Option`. This means you can no longer
do `ListOption.createBuilder(String.class)`, instead you should do `ListOption.<String>createBuilder()`.
## Bug Fixes
- Fixed option list entries sometimes appearing on top of the navbar.
## API Changes
- `OptionDescription.Builder#description` has been renamed to `text`, to make it more clear as it used to look like:
```java
.description(OptionDescription.createBuilder()
.description(Component.literal("This is some text"))
.build())
```
- `ListOption.createBuilder` now no longer takes a class parameter, to match with `Option`. This means you can no longer
do `ListOption.createBuilder(String.class)`, instead you should do `ListOption.<String>createBuilder()`.
## Bug Fixes
- Fixed option list entries sometimes appearing on top of the navbar.
展开
版本: 3.0.0-beta.5+1.20-fabric
支持游戏: 1.20-pre2
类型: Fabric Quilt
Beta
下载次数: 42
3.0.0-beta.4+1.20 (Fabric)
yet-another-config-lib-fabric-3.0.0-beta.4+1.20.jar下载3.0.0-beta.4+1.20-fabric#Beta
# YetAnotherConfigLib 3.0 Beta 4
## Additions
- Added `OptionDescription.Builder.customImage()` to add your own renderer for the option description.
## API Changes
This release brings a few API breakages, getting them out the way, as it is a major update.
- All controllers now have an API builder for creating them. This is to make it easier to add
more options to them in the future. This also creates a new API layer to remove simple implementations of YACL
from using the GUI package. The old constructors are still available and you can pass your own controller
with `.customController()`. An example would be `.controller(TickBoxControllerBuilder::create)` or:
```java
.controller(opt -> IntegerSliderControllerBuilder.create(opt)
.range(0, 10)
.step(1))
```
- Completely removed `.tooltip()` from groups and options. You should use `.description()` instead.
To make this a little easier, `OptionDescription.of(Component...)` has been added so you don't need to
create a builder.
- Removed `OptionDescription.Builder.name(Component)` as it now just uses the option name.
## Bug Fixes
- Fixed option descriptions being stuck on the last clicked option when not hovering.
- Fixed category tooltips not being displayed with the new tabs.
## Additions
- Added `OptionDescription.Builder.customImage()` to add your own renderer for the option description.
## API Changes
This release brings a few API breakages, getting them out the way, as it is a major update.
- All controllers now have an API builder for creating them. This is to make it easier to add
more options to them in the future. This also creates a new API layer to remove simple implementations of YACL
from using the GUI package. The old constructors are still available and you can pass your own controller
with `.customController()`. An example would be `.controller(TickBoxControllerBuilder::create)` or:
```java
.controller(opt -> IntegerSliderControllerBuilder.create(opt)
.range(0, 10)
.step(1))
```
- Completely removed `.tooltip()` from groups and options. You should use `.description()` instead.
To make this a little easier, `OptionDescription.of(Component...)` has been added so you don't need to
create a builder.
- Removed `OptionDescription.Builder.name(Component)` as it now just uses the option name.
## Bug Fixes
- Fixed option descriptions being stuck on the last clicked option when not hovering.
- Fixed category tooltips not being displayed with the new tabs.
展开
版本: 3.0.0-beta.4+1.20-fabric
支持游戏: 1.20-pre2
类型: Fabric Quilt
Beta
下载次数: 26
3.0.0-beta.2+1.20 (Fabric)
yet-another-config-lib-fabric-3.0.0-beta.2+1.20.jar下载3.0.0-beta.2+1.20-fabric#Beta
# YetAnotherConfigLib v3 Beta 2
## Changes
- List options now use the new option descriptions
- All options now print a warning if using the old tooltip system
## Bug Fixes
- Fix animated images sometimes rendering incorrectly
- Fix animated images flickering when reaching end of loop
## Changes
- List options now use the new option descriptions
- All options now print a warning if using the old tooltip system
## Bug Fixes
- Fix animated images sometimes rendering incorrectly
- Fix animated images flickering when reaching end of loop
展开
版本: 3.0.0-beta.2+1.20-fabric
支持游戏: 1.20-pre2
类型: Fabric Quilt
Beta
下载次数: 38
3.0.0-beta.1+1.20 (Fabric)
yet-another-config-lib-fabric-3.0.0-beta.1+1.20.jar下载3.0.0-beta.1+1.20-fabric#Beta
No changelog provided.
展开
版本: 3.0.0-beta.1+1.20-fabric
支持游戏: 1.20-pre2
类型: Fabric Quilt
Beta
下载次数: 36
2.5.1-beta.1+1.20 (Fabric)
yet-another-config-lib-fabric-2.5.1-beta.1+1.20.jar下载2.5.1-beta.1+1.20-fabric#Beta
No changelog provided.
展开
版本: 2.5.1-beta.1+1.20-fabric
支持游戏: 1.20-pre1, 1.20-pre2
类型: Fabric Quilt
Beta
下载次数: 116
2.5.1+1.19.4 (Forge)
yet-another-config-lib-forge-2.5.1+1.19.4.jar下载2.5.1+1.19.4-forge#Release
- Improve button compatibility with Controlify
展开
版本: 2.5.1+1.19.4-forge
支持游戏: 1.19.4
类型: Forge
Release
下载次数: 1,281
2.5.1+1.19.4 (Fabric)
yet-another-config-lib-fabric-2.5.1+1.19.4.jar下载2.5.1+1.19.4-fabric#Release
- Improve button compatibility with Controlify
展开
版本: 2.5.1+1.19.4-fabric
支持游戏: 1.19.4
类型: Fabric Quilt
Release
下载次数: 46,750
2.5.0+1.19.4 (Forge)
yet-another-config-lib-forge-2.5.0+1.19.4.jar下载2.5.0+1.19.4-forge#Release
- Add Forge support
## Migrating to 2.5.0 for Developers
The gradle dependency has changed:
```kt
modImplementation("dev.isxander.yacl:yet-another-config-lib-fabric:2.5.0+1.19.4")
```
## Migrating to 2.5.0 for Developers
The gradle dependency has changed:
```kt
modImplementation("dev.isxander.yacl:yet-another-config-lib-fabric:2.5.0+1.19.4")
```
展开
版本: 2.5.0+1.19.4-forge
支持游戏: 1.19.4
类型: Forge
Release
下载次数: 1,755
2.5.0+1.19.4 (Fabric)
yet-another-config-lib-fabric-2.5.0+1.19.4.jar下载2.5.0+1.19.4-fabric#Release
- Add Forge support
## Migrating to 2.5.0 for Developers
The gradle dependency has changed:
```kt
modImplementation("dev.isxander.yacl:yet-another-config-lib-fabric:2.5.0+1.19.4")
```
## Migrating to 2.5.0 for Developers
The gradle dependency has changed:
```kt
modImplementation("dev.isxander.yacl:yet-another-config-lib-fabric:2.5.0+1.19.4")
```
展开
版本: 2.5.0+1.19.4-fabric
支持游戏: 1.19.4
类型: Fabric Quilt
Release
下载次数: 33,981
2.4.2
YetAnotherConfigLib-2.4.2.jar下载2.4.2#Release
- Prioritised tooltip rendering to above the option rather than below.
- Fix empty tooltips rendering a newline.
- Fix empty tooltips rendering a newline.
展开
版本: 2.4.2
支持游戏: 1.19.4
类型: Fabric Quilt
Release
下载次数: 4,516
2.4.1
YetAnotherConfigLib-2.4.1.jar下载2.4.1#Release
## Features
- `OptionGroup.Builder` and `ConfigCategory.Builder` now extend `OptionAddable` so you can abstractly
add options to either of them.
## API Changes
- Deprecated the varargs tooltip builder method in `Option.Builder` due to unsafe varargs. There is now
an equivalent that is not varargs but a single function.
- `OptionGroup.Builder` and `ConfigCategory.Builder` now extend `OptionAddable` so you can abstractly
add options to either of them.
## API Changes
- Deprecated the varargs tooltip builder method in `Option.Builder` due to unsafe varargs. There is now
an equivalent that is not varargs but a single function.
展开
版本: 2.4.1
支持游戏: 1.19.4
类型: Fabric Quilt
Release
下载次数: 6,305
2.4.0
YetAnotherConfigLib-2.4.0.jar下载2.4.0#Release
## Features
- New builder API for `GsonConfigInstance`, deprecated the constructors.
## Bug Fixes
- Fixed `StringController`s not focusing properly since 2.3.1 ([#58](https://github.com/isXander/YetAnotherConfigLib/issues/58)).
- Fixed resetting a `StringController` sometimes crashing the game ([#57](https://github.com/isXander/YetAnotherConfigLib/issues/57)).
- Fix `ListOption.Builder` not exposing `listener()` like in `Option.Builder` ([#55](https://github.com/isXander/YetAnotherConfigLib/issues/55)).
- New builder API for `GsonConfigInstance`, deprecated the constructors.
## Bug Fixes
- Fixed `StringController`s not focusing properly since 2.3.1 ([#58](https://github.com/isXander/YetAnotherConfigLib/issues/58)).
- Fixed resetting a `StringController` sometimes crashing the game ([#57](https://github.com/isXander/YetAnotherConfigLib/issues/57)).
- Fix `ListOption.Builder` not exposing `listener()` like in `Option.Builder` ([#55](https://github.com/isXander/YetAnotherConfigLib/issues/55)).
展开
版本: 2.4.0
支持游戏: 1.19.4
类型: Fabric Quilt
Release
下载次数: 6,142
2.3.1
YetAnotherConfigLib-2.3.1.jar下载2.3.1#Release
- Fix buttons stuck focusing after clicking the mouse.
展开
版本: 2.3.1
支持游戏: 1.19.4
类型: Fabric Quilt
Release
下载次数: 2,850
2.3.0
YetAnotherConfigLib-2.3.0.jar下载2.3.0#Release
- Update to 1.19.4
展开
版本: 2.3.0
支持游戏: 1.19.4
类型: Fabric Quilt
Release
下载次数: 7,732
2.3.0+beta.3
YetAnotherConfigLib-2.3.0+beta.3.jar下载2.3.0+beta.3#Beta
YetAnotherConfigLib-2.3.0+beta.3-sources.jar下载2.3.0+beta.3#Beta
展开
版本: 2.3.0+beta.3
支持游戏: 1.19.4-pre1
类型: Fabric
Beta
下载次数: 219
2.3.0+beta.2
YetAnotherConfigLib-2.3.0+beta.2.jar下载2.3.0+beta.2#Beta
展开
版本: 2.3.0+beta.2
支持游戏: 23w05a, 23w06a
类型: Fabric
Beta
下载次数: 377
2.3.0+beta.1
YetAnotherConfigLib-2.3.0+beta.1.jar下载2.3.0+beta.1#Beta
展开
版本: 2.3.0+beta.1
支持游戏: 23w05a, 23w06a
类型: Fabric
Beta
下载次数: 45
2.2.0 for 1.19.2
YetAnotherConfigLib-2.2.0-for-1.19.2.jar下载2.2.0-for-1.19.2#Release
## Backported YACL 2.2.0 to 1.19.2
Due to breaking JAR compatibility in an earlier version of YACL, mods that support YACL for
1.19.3 can no longer support 1.19.2. This is a backport of YACL 2.2.0 to 1.19.2 to allow mods to
support it.
### My stance on backporting
Personally, I hate to backport my mods. When breaking changes are made in Minecraft between versions,
the code of the mod has to be changed to support the new version, making the older version of MC incompatible.
If you want to support multiple versions of Minecraft, you have to maintain multiple branches of the mod, which
is a lot of work for just one person, and I don't have the time to do that.
This is a one-off backport, and I will not be backporting any future versions of YACL to 1.19.2. If you want to
support and use new features of YACL in your mod, you will have to drop support for 1.19.2.
Due to breaking JAR compatibility in an earlier version of YACL, mods that support YACL for
1.19.3 can no longer support 1.19.2. This is a backport of YACL 2.2.0 to 1.19.2 to allow mods to
support it.
### My stance on backporting
Personally, I hate to backport my mods. When breaking changes are made in Minecraft between versions,
the code of the mod has to be changed to support the new version, making the older version of MC incompatible.
If you want to support multiple versions of Minecraft, you have to maintain multiple branches of the mod, which
is a lot of work for just one person, and I don't have the time to do that.
This is a one-off backport, and I will not be backporting any future versions of YACL to 1.19.2. If you want to
support and use new features of YACL in your mod, you will have to drop support for 1.19.2.
展开
版本: 2.2.0-for-1.19.2
支持游戏: 1.19.2
类型: Fabric Quilt
Release
下载次数: 449,517
2.2.0
YetAnotherConfigLib-2.2.0.jar下载2.2.0#Release
## User Changes
- New `List is empty` text when lists are empty
- Fix category buttons sometimes not being clickable when you can scroll
- Fix the list add button not disabling when lists are disabled
- Fix the option list background not quite reaching the edge of the screen.
## Developer Changes
- New `LabelOption` for shorthand to making labels!
- Log when option bindings don't match up after using their save function
- Internally move YACLScreen button actions into separate methods for future features :o
- Fully publish sources jar & javadoc jar now that the loom plugin is fixed.
- New `List is empty` text when lists are empty
- Fix category buttons sometimes not being clickable when you can scroll
- Fix the list add button not disabling when lists are disabled
- Fix the option list background not quite reaching the edge of the screen.
## Developer Changes
- New `LabelOption` for shorthand to making labels!
- Log when option bindings don't match up after using their save function
- Internally move YACLScreen button actions into separate methods for future features :o
- Fully publish sources jar & javadoc jar now that the loom plugin is fixed.
展开
版本: 2.2.0
支持游戏: 1.19.3
类型: Fabric Quilt
Release
下载次数: 70,673
2.1.1
YetAnotherConfigLib-2.1.1.jar下载2.1.1#Release
- Remove padding between list items
- No longer hide add and reset buttons when lists are collapsed, but automatically expand them when clicked
- Fix removing items from lists didn't update up and down buttons
- Fix lists not updating properly when removing the final item from a list
- Refactor some gui list code to abstract all list functionality from main gui classes
- Fix option entries sometimes overlapping due to the reset button
- Fix string elements cropping 1px off the top of the text
- Abstracted builders to restrict API usage
- No longer hide add and reset buttons when lists are collapsed, but automatically expand them when clicked
- Fix removing items from lists didn't update up and down buttons
- Fix lists not updating properly when removing the final item from a list
- Refactor some gui list code to abstract all list functionality from main gui classes
- Fix option entries sometimes overlapping due to the reset button
- Fix string elements cropping 1px off the top of the text
- Abstracted builders to restrict API usage
展开
版本: 2.1.1
支持游戏: 1.19.3
类型: Fabric Quilt
Release
下载次数: 9,124
2.1.0
YetAnotherConfigLib-2.1.0.jar下载2.1.0#Release
## Lists
Implements mutable list options where you can create, remove and shift entries in a list.
### API
Lists hack option groups with their own implementation for this, so each individual list takes form as a whole option group.
```java
ListOption.createBuilder(String.class)
.name(Text.of("List Option"))
.binding(/* gets and sets a List, requires list field to be not final, does not manipulate the list */)
.controller(StringController::new) // usual controllers, passed to every entry
.initial("") // when adding a new entry to the list, this is the initial value it has
.build()
```
### Implementation details
When implementing this, it was vital to me that _all_ controllers work with lists, not ones specifically designed
for list entries. This was achieved quite easily by having each entry being its own option with an empty name and tooltip with its own controller, that pairs with its list "parent" to actually modify the option.
Option groups were taken advantage of and hacked into its own option, only minor changes had to be made to get this
to work with value application.
Applicable controllers have been modified to expand their inputs to near full width when no name is present.
### Screenshots
![screenshot](https://user-images.githubusercontent.com/43245524/206871262-73e01588-9e7b-4667-8f5d-0d0bd4d48e43.png)
## String improvements
- Allow `StringControllerElement` to have unlimited text length
- When pressing `Delete` in a text field whilst text is highlighted,
it will act like `Backspace` like it should.
## Other changes
- Slightly compacted elements
Implements mutable list options where you can create, remove and shift entries in a list.
### API
Lists hack option groups with their own implementation for this, so each individual list takes form as a whole option group.
```java
ListOption.createBuilder(String.class)
.name(Text.of("List Option"))
.binding(/* gets and sets a List, requires list field to be not final, does not manipulate the list */)
.controller(StringController::new) // usual controllers, passed to every entry
.initial("") // when adding a new entry to the list, this is the initial value it has
.build()
```
### Implementation details
When implementing this, it was vital to me that _all_ controllers work with lists, not ones specifically designed
for list entries. This was achieved quite easily by having each entry being its own option with an empty name and tooltip with its own controller, that pairs with its list "parent" to actually modify the option.
Option groups were taken advantage of and hacked into its own option, only minor changes had to be made to get this
to work with value application.
Applicable controllers have been modified to expand their inputs to near full width when no name is present.
### Screenshots
![screenshot](https://user-images.githubusercontent.com/43245524/206871262-73e01588-9e7b-4667-8f5d-0d0bd4d48e43.png)
## String improvements
- Allow `StringControllerElement` to have unlimited text length
- When pressing `Delete` in a text field whilst text is highlighted,
it will act like `Backspace` like it should.
## Other changes
- Slightly compacted elements
展开
版本: 2.1.0
支持游戏: 1.19.3
类型: Fabric Quilt
Release
下载次数: 1,244
2.0.0
YetAnotherConfigLib-2.0.0.jar下载2.0.0#Release
- Update to 1.19.3
- Colour field controllers
- Better carot positioning when clicking in text fields
- Better text selection for text fields
- Smooth scrolling for category list
- Fix category list scrollbar appearing under option list background in-game
- Fix tick box name text length limiting
- Colour field controllers
- Better carot positioning when clicking in text fields
- Better text selection for text fields
- Smooth scrolling for category list
- Fix category list scrollbar appearing under option list background in-game
- Fix tick box name text length limiting
展开
版本: 2.0.0
支持游戏: 1.19.3
类型: Fabric Quilt
Release
下载次数: 2,630
1.7.1
YetAnotherConfigLib-1.7.1.jar下载1.7.1#Release
- Breaking change: `GsonConfigInstance` now only serializes fields annotated with `@ConfigEntry` to prevent strange GSON problem.
展开
版本: 1.7.1
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Release
下载次数: 64,470
1.7.0
YetAnotherConfigLib-1.7.0.jar下载1.7.0#Release
## End-user changes
- Smooth category scrolling
- Individual reset buttons for every option
- Fix bug where option lists that *just* went over into scrolling scrolled extremely slow.
## Developer API changes
- Actual Config API to save and load fields in a class automatically [(documentation)](https://github.com/isXander/YetAnotherConfigLib/wiki/config-api)
- Separate `Dimension` into `Dimension` and `MutableDimension`
- Make `dim` private in `AbstractWidget` so mods can't change the dimension without `setDimension`
- New Option API method `isPendingValueDefault` to check if pending value is equal to default value of binding
- Fix `Option#requestSetDefault` and `Option#forgetPendingValue` implementations weren't notifying listeners
- Smooth category scrolling
- Individual reset buttons for every option
- Fix bug where option lists that *just* went over into scrolling scrolled extremely slow.
## Developer API changes
- Actual Config API to save and load fields in a class automatically [(documentation)](https://github.com/isXander/YetAnotherConfigLib/wiki/config-api)
- Separate `Dimension` into `Dimension` and `MutableDimension`
- Make `dim` private in `AbstractWidget` so mods can't change the dimension without `setDimension`
- New Option API method `isPendingValueDefault` to check if pending value is equal to default value of binding
- Fix `Option#requestSetDefault` and `Option#forgetPendingValue` implementations weren't notifying listeners
展开
版本: 1.7.0
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Release
下载次数: 564
1.6.0
YetAnotherConfigLib-1.6.0.jar下载1.6.0#Release
- Expanded option cycling capability, now allowing any list to be cycled, not just enums.
展开
版本: 1.6.0
支持游戏: 1.19, 1.19.1, 1.19.2, 22w42a
类型: Fabric Quilt
Release
下载次数: 9,306
1.5.0
YetAnotherConfigLib-1.5.0.jar下载1.5.0#Release
- Make controller names go italic when there are pending changes
- Allow `availableValues` to be passed to `EnumController`
- More validation for slider controllers
- Allow `availableValues` to be passed to `EnumController`
- More validation for slider controllers
展开
版本: 1.5.0
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Release
下载次数: 11,073
1.4.5
YetAnotherConfigLib-1.4.5.jar下载1.4.5#Release
- Remove debug logging
展开
版本: 1.4.5
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Release
下载次数: 1,136
1.4.4
YetAnotherConfigLib-1.4.4.jar下载1.4.4#Release
- Fix search not behaving properly with default collapsed option groups
- Minor refactors
- Minor refactors
展开
版本: 1.4.4
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Release
下载次数: 87
1.4.3
YetAnotherConfigLib-1.4.3.jar下载1.4.3#Release
- Cache search query results for huge performance gains
- Allow some `StringControllerElement` methods to be inheritable
- Allow some `StringControllerElement` methods to be inheritable
展开
版本: 1.4.3
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Release
下载次数: 1,049
1.4.2
YetAnotherConfigLib-1.4.2.jar下载1.4.2#Release
- Improve search performance (even when empty) by a LOT
- API to add listeners before building
- Fix cancel/reset button tooltip going off-screen
- API to add listeners before building
- Fix cancel/reset button tooltip going off-screen
展开
版本: 1.4.2
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Release
下载次数: 337
1.4.1
YetAnotherConfigLib-1.4.1.jar下载1.4.1#Release
- Fix slider tooltip showing when not hovering
展开
版本: 1.4.1
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Release
下载次数: 96
1.4.0
YetAnotherConfigLib-1.4.0.jar下载1.4.0#Release
- Improve tooltips a lot:
- They now never get cut off by the edge of the screen
- They never overlap the hovered option/group/category
- They don't take half a second to appear
- They don't disappear when you move your mouse
- `ButtonOption` now consumes itself, so you can access it when building.
- Make `Option#available` mutable with `Option#setAvailable`
- They now never get cut off by the edge of the screen
- They never overlap the hovered option/group/category
- They don't take half a second to appear
- They don't disappear when you move your mouse
- `ButtonOption` now consumes itself, so you can access it when building.
- Make `Option#available` mutable with `Option#setAvailable`
展开
版本: 1.4.0
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Release
下载次数: 386
1.3.0
YetAnotherConfigLib-1.3.0.jar下载1.3.0#Release
- Option tooltips now have access to the pending value to dynamically change
- `PlaceholderCategory`: A category that when selected, just opens a screen
- `instant` property for option builders: makes the option apply instantly instead of when pressing "Apply"
- `PlaceholderCategory`: A category that when selected, just opens a screen
- `instant` property for option builders: makes the option apply instantly instead of when pressing "Apply"
展开
版本: 1.3.0
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Release
下载次数: 817
1.2.1
YetAnotherConfigLib-1.2.1.jar下载1.2.1#Release
- Search can now query categories and groups
展开
版本: 1.2.1
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Release
下载次数: 358
1.2.0
YetAnotherConfigLib-1.2.0.jar下载1.2.0#Release
- Categories can now be scrolled when overflowing
- Available property for options, so you can disable certain options in some conditions
- Fix all first tooltip line having a larger line height
- Available property for options, so you can disable certain options in some conditions
- Fix all first tooltip line having a larger line height
展开
版本: 1.2.0
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Release
下载次数: 942
1.1.1
YetAnotherConfigLib-1.1.1.jar下载1.1.1#Release
- Fix search field rendering over tooltips
展开
版本: 1.1.1
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Release
下载次数: 504
1.1.0
YetAnotherConfigLib-1.1.0.jar下载1.1.0#Release
- Improved search - Now searches every category rather than the currently selected one
- Option Flags - Add flags to options that when changed, the flag is executed once per the whole config.
- Deprecated "Require Restart" in favour of option flags.
- Fix search field overlapping undo and cancel at some GUI scales
- Fix scrollbar appearing in the wrong place at some GUI scales
- Fix option entries not extending to fill the list's width at some GUI scales
- Fix tooltips rendering below the scrollbar
- Option Flags - Add flags to options that when changed, the flag is executed once per the whole config.
- Deprecated "Require Restart" in favour of option flags.
- Fix search field overlapping undo and cancel at some GUI scales
- Fix scrollbar appearing in the wrong place at some GUI scales
- Fix option entries not extending to fill the list's width at some GUI scales
- Fix tooltips rendering below the scrollbar
展开
版本: 1.1.0
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Release
下载次数: 4,172
1.0.0
YetAnotherConfigLib-1.0.0.jar下载1.0.0#Release
- Add search field
- Make collapse button more obvious
- Change "Finished" button text to "Done"
- Input field improvements
- Make collapse button more obvious
- Change "Finished" button text to "Done"
- Input field improvements
展开
版本: 1.0.0
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Release
下载次数: 1,759
0.1.2
YetAnotherConfigLib-0.1.2.jar下载0.1.2#Beta
- Add require restart Option attribute
- Add Slovenian translation ([#8](https://github.com/isXander/YetAnotherConfigLib/pull/8))
- Add Polish translation ([#9](https://github.com/isXander/YetAnotherConfigLib/pull/9))
- Add Slovenian translation ([#8](https://github.com/isXander/YetAnotherConfigLib/pull/8))
- Add Polish translation ([#9](https://github.com/isXander/YetAnotherConfigLib/pull/9))
展开
版本: 0.1.2
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Beta
下载次数: 695
0.1.1
YetAnotherConfigLib-0.1.1.jar下载0.1.1#Beta
- Wrap group names and label controllers
展开
版本: 0.1.1
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Beta
下载次数: 53
0.1.0
YetAnotherConfigLib-0.1.0.jar下载0.1.0#Beta
No changelog provided.
展开
版本: 0.1.0
支持游戏: 1.19, 1.19.1, 1.19.2
类型: Fabric Quilt
Beta
下载次数: 131
收录