Skip to content

Commit 6d28d3f

Browse files
authored
Improvement: Config System (#298)
1 parent 7e3c1bb commit 6d28d3f

389 files changed

Lines changed: 6911 additions & 5942 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

build.gradle.kts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ val discordIPCVersion: String by project
3030
val classGraphVersion: String by project
3131
val kotlinVersion: String by project
3232
val ktorVersion: String by project
33+
val jacksonVersion: String by project
3334
val mockkVersion: String by project
3435
val spairVersion: String by project
3536
val lwjglVersion: String by project
@@ -80,6 +81,7 @@ repositories {
8081
}
8182

8283
fabricApi {
84+
@Suppress("UnstableApiUsage")
8385
configureTests {
8486
modId = "${base.archivesName}-tests"
8587
eula = true
@@ -173,7 +175,10 @@ dependencies {
173175
exclude(group = "org.slf4j")
174176
}
175177
includeLib("io.ktor:ktor-client-content-negotiation:$ktorVersion")
176-
includeLib("io.ktor:ktor-serialization-gson:$ktorVersion")
178+
includeLib("io.ktor:ktor-serialization-jackson:$ktorVersion")
179+
includeLib("tools.jackson.core:jackson-core:$jacksonVersion")
180+
includeLib("tools.jackson.core:jackson-databind:$jacksonVersion")
181+
includeLib("tools.jackson.module:jackson-module-kotlin:$jacksonVersion")
177182

178183
// Add mods
179184
modImplementation("com.github.rfresh2:baritone-fabric:$minecraftVersion-SNAPSHOT")
@@ -221,7 +226,7 @@ tasks {
221226

222227
kotlin {
223228
compilerOptions {
224-
freeCompilerArgs.addAll("-Xcontext-parameters", "-Xconsistent-data-class-copy-visibility")
229+
freeCompilerArgs.addAll("-Xcontext-parameters", "-Xconsistent-data-class-copy-visibility", "-Xannotation-default-target=param-property")
225230
}
226231

227232
jvmToolchain(21)
@@ -267,4 +272,4 @@ publishing {
267272
}
268273
}
269274
}
270-
}
275+
}

gradle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ baritoneVersion=1.14.0
3535
discordIPCVersion=6f6b6cce17
3636
classGraphVersion=4.8.184
3737
ktorVersion=3.3.3
38+
jacksonVersion=3.1.1
3839
mockkVersion=1.14.7
3940
spairVersion=1.90.0
4041

src/main/java/com/lambda/mixin/CrashReportMixin.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,13 @@
1818
package com.lambda.mixin;
1919

2020
import com.lambda.Lambda;
21-
import com.lambda.config.Setting;
21+
import com.lambda.config.EntryLayer;
2222
import com.lambda.module.Module;
2323
import com.lambda.module.ModuleRegistry;
2424
import com.lambda.util.DynamicExceptionKt;
2525
import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod;
2626
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
27+
import kotlin.Unit;
2728
import net.minecraft.client.MinecraftClient;
2829
import net.minecraft.util.crash.CrashReport;
2930
import net.minecraft.util.crash.ReportType;
@@ -65,10 +66,17 @@ String injectString(ReportType type, List<String> extraInfo, Operation<String> o
6566
.forEach(module -> {
6667
list.add(String.format("\t%s", module.getName()));
6768

68-
module.getSettings()
69-
.stream()
70-
.filter(Setting::isModified)
71-
.forEach(setting -> list.add(String.format("\t\t%s -> %s", setting.getName(), setting.getValue())));
69+
module.getSettingLayers$lambda().forEachEntry(
70+
true,
71+
null,
72+
(path, single) -> {
73+
final var setting = single.getEntry();
74+
if (setting.isModified()) {
75+
list.add("\t\t" + String.join(".", path.stream().map(EntryLayer.Multiple::getName).toList()) + "." + setting.getName() + " -> " + setting.getValue());
76+
}
77+
return Unit.INSTANCE;
78+
}
79+
);
7280
});
7381
}
7482

src/main/java/com/lambda/mixin/MinecraftClientMixin.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ private void onShutdown(CallbackInfo ci) {
127127
* Inject after the thread field is set so that {@link ThreadExecutor#getThread}
128128
* is available
129129
*/
130+
@SuppressWarnings("JavadocReference")
130131
@Inject(at = @At(value = "FIELD", target = "Lnet/minecraft/client/MinecraftClient;thread:Ljava/lang/Thread;", shift = At.Shift.AFTER, ordinal = 0, opcode = Opcodes.PUTFIELD), method = "run")
131132
private void onStartup(CallbackInfo ci) {
132133
EventFlow.post(new ClientEvent.Startup());

src/main/java/com/lambda/mixin/render/BlockEntityRenderManagerMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717

1818
package com.lambda.mixin.render;
1919

20-
import com.lambda.graphics.outline.OutlineHandler;
2120
import com.lambda.graphics.outline.OutlineCapturingQueue;
21+
import com.lambda.graphics.outline.OutlineHandler;
2222
import com.lambda.graphics.outline.VertexCapture;
2323
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
2424
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;

src/main/java/com/lambda/mixin/render/BlockEntityRendererMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public interface BlockEntityRendererMixin<T extends BlockEntity> {
3131

3232
@Inject(method = "isInRenderDistance", at = @At("HEAD"), cancellable = true)
3333
default void forceOutlineRenderDistance(T blockEntity, Vec3d pos, CallbackInfoReturnable<Boolean> cir) {
34-
if (OutlineHandler.INSTANCE.shouldCapture(blockEntity.getPos())) {
34+
if (OutlineHandler.shouldCapture(blockEntity.getPos())) {
3535
cir.setReturnValue(true);
3636
}
3737
}

src/main/java/com/lambda/mixin/render/CameraMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@
1818
package com.lambda.mixin.render;
1919

2020
import com.lambda.interaction.managers.rotating.RotationManager;
21-
import com.lambda.module.modules.render.Freecam;
2221
import com.lambda.module.modules.render.CameraTweaks;
2322
import com.lambda.module.modules.render.FreeLook;
23+
import com.lambda.module.modules.render.Freecam;
2424
import com.lambda.module.modules.render.NoRender;
2525
import net.minecraft.block.enums.CameraSubmersionType;
2626
import net.minecraft.client.render.Camera;

src/main/java/com/lambda/mixin/render/EntityRenderManagerMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
package com.lambda.mixin.render;
1919

2020
import com.lambda.graphics.outline.IEntityRenderState;
21-
import com.lambda.graphics.outline.OutlineHandler;
2221
import com.lambda.graphics.outline.OutlineCapturingQueue;
22+
import com.lambda.graphics.outline.OutlineHandler;
2323
import com.lambda.graphics.outline.VertexCapture;
2424
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
2525
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;

src/main/java/com/lambda/mixin/render/GameRendererMixin.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,9 @@
1919

2020
import com.lambda.event.EventFlow;
2121
import com.lambda.event.events.RenderEvent;
22-
import com.lambda.gui.DearImGui;
2322
import com.lambda.graphics.RenderMain;
2423
import com.lambda.graphics.outline.OutlineCapturingQueue;
25-
import net.minecraft.client.render.command.OrderedRenderCommandQueueImpl;
24+
import com.lambda.gui.DearImGui;
2625
import com.lambda.module.modules.render.BlockOutline;
2726
import com.lambda.module.modules.render.Bobbing;
2827
import com.lambda.module.modules.render.NoRender;
@@ -36,6 +35,7 @@
3635
import net.minecraft.client.render.GameRenderer;
3736
import net.minecraft.client.render.RenderTickCounter;
3837
import net.minecraft.client.render.WorldRenderer;
38+
import net.minecraft.client.render.command.OrderedRenderCommandQueueImpl;
3939
import net.minecraft.client.util.ObjectAllocator;
4040
import net.minecraft.item.ItemStack;
4141
import org.joml.Matrix4f;

src/main/java/com/lambda/mixin/render/ItemFrameEntityRendererMixin.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@
1818
package com.lambda.mixin.render;
1919

2020
import com.lambda.graphics.outline.OutlineCapturingQueue;
21+
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
22+
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
2123
import net.minecraft.client.render.RenderLayer;
2224
import net.minecraft.client.render.command.OrderedRenderCommandQueue;
2325
import net.minecraft.client.render.entity.ItemFrameEntityRenderer;
2426
import net.minecraft.client.render.model.BlockStateModel;
2527
import net.minecraft.client.util.math.MatrixStack;
2628
import org.spongepowered.asm.mixin.Mixin;
2729
import org.spongepowered.asm.mixin.injection.At;
28-
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
29-
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
3030

3131
@Mixin(ItemFrameEntityRenderer.class)
3232
public class ItemFrameEntityRendererMixin {

0 commit comments

Comments
 (0)