From dea3309d48fb4f86bed08cf016999357a7836438 Mon Sep 17 00:00:00 2001 From: Exterminate Date: Fri, 5 Sep 2025 19:31:36 +1000 Subject: [PATCH 1/2] Bug Fixes Fix refactoring issue Update authors list Bump jackson version Fix 1.21.6+ gradle launch --- build.gradle | 19 +++++++++++-------- .../kurrycat/mpkmod/save/Serializer.java | 6 +++++- .../src/main/resources/fabric.mod.json | 4 +++- forge-1.8.9/src/main/resources/mcmod.info | 2 +- 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/build.gradle b/build.gradle index 974a9ca0..c3e61f8d 100644 --- a/build.gradle +++ b/build.gradle @@ -17,9 +17,9 @@ configure( dependencies { library 'com.github.JnCrMx:discord-game-sdk4j:v0.5.5' - library 'com.fasterxml.jackson.core:jackson-core:2.8.8' - library 'com.fasterxml.jackson.core:jackson-annotations:2.8.8' - library 'com.fasterxml.jackson.core:jackson-databind:2.8.8' + library 'com.fasterxml.jackson.core:jackson-core:2.20.0' + library 'com.fasterxml.jackson.core:jackson-annotations:2.20' + library 'com.fasterxml.jackson.core:jackson-databind:2.20' testImplementation 'org.junit.jupiter:junit-jupiter-api:5.9.1' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.1' @@ -59,7 +59,7 @@ configure( ]) } - if (project.name != "common" && project.name != "network-api") { + if (project.name != "common") { //destinationDirectory = rootProject.buildDir doFirst { archiveClassifier = project.name @@ -86,6 +86,12 @@ configure( } + tasks.withType(JavaExec).configureEach { + if (project.name != "common") { + javaLauncher.set(javaToolchains.launcherFor(java.toolchain)) + } + } + tasks.withType(JavaCompile).configureEach { int jdkVersion = project.properties.getOrDefault("jdkVersion", 17) as int @@ -98,11 +104,8 @@ configure( options.encoding = 'UTF-8' } - if (project.name != "common" && project.name != "network-api") { + if (project.name != "common") { project.afterEvaluate { - tasks.withType(JavaExec).configureEach { - javaLauncher.set(javaToolchains.launcherFor(java.toolchain)) - } remapJar { inputFile.set project.jar.archiveFile diff --git a/common/src/main/java/io/github/kurrycat/mpkmod/save/Serializer.java b/common/src/main/java/io/github/kurrycat/mpkmod/save/Serializer.java index 01d3f09a..0d9c21d7 100644 --- a/common/src/main/java/io/github/kurrycat/mpkmod/save/Serializer.java +++ b/common/src/main/java/io/github/kurrycat/mpkmod/save/Serializer.java @@ -30,7 +30,11 @@ public static void registerSerializer() { module.addDeserializer(Color.class, new ColorDeserializer()); mapper.registerModule(module); - mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.OBJECT_AND_NON_CONCRETE, JsonTypeInfo.As.PROPERTY); + mapper.activateDefaultTyping( + mapper.getPolymorphicTypeValidator(), + ObjectMapper.DefaultTyping.OBJECT_AND_NON_CONCRETE, + JsonTypeInfo.As.PROPERTY + ); mapper.enable(SerializationFeature.INDENT_OUTPUT); mapper.setVisibility(mapper.getSerializationConfig().getDefaultVisibilityChecker() diff --git a/fabric-1.21.6/src/main/resources/fabric.mod.json b/fabric-1.21.6/src/main/resources/fabric.mod.json index 4206d62f..22473fe2 100644 --- a/fabric-1.21.6/src/main/resources/fabric.mod.json +++ b/fabric-1.21.6/src/main/resources/fabric.mod.json @@ -8,6 +8,8 @@ "authors": [ "kurrycat", "CodeKid0 (Fabric port)", + "Exterminate", + "Zpiboo", "Contributors" ], "contact": { @@ -19,7 +21,7 @@ "environment": "client", "entrypoints": { "main": [ - "io.github.kurrycat.mpkmod.compatibility.fabric_1_21_5.MPKMod" + "io.github.kurrycat.mpkmod.compatibility.fabric_1_21_6.MPKMod" ] }, "mixins": [ diff --git a/forge-1.8.9/src/main/resources/mcmod.info b/forge-1.8.9/src/main/resources/mcmod.info index 0730c6ca..ad9ca163 100644 --- a/forge-1.8.9/src/main/resources/mcmod.info +++ b/forge-1.8.9/src/main/resources/mcmod.info @@ -7,7 +7,7 @@ "mcversion": "", "url": "https://github.com/kurrycat2004/MpkMod_2", "updateUrl": "", - "authorList": ["kurrycat"], + "authorList": ["kurrycat", "Exterminate", "Zpiboo", "Contributors"], "credits": "", "logoFile": "mpkmod_logo.png", "screenshots": [], From ab5d47a8e3a21a9e46b5734d88f01013540f58da Mon Sep 17 00:00:00 2001 From: Exterminate Date: Sat, 6 Sep 2025 21:22:54 +1000 Subject: [PATCH 2/2] Add Last Sidestep Also reverted jackson library version bump due to an incompatibility --- build.gradle | 6 ++-- .../compatibility/MCClasses/Player.java | 33 +++++++++++++++++-- .../kurrycat/mpkmod/save/Serializer.java | 3 +- 3 files changed, 35 insertions(+), 7 deletions(-) diff --git a/build.gradle b/build.gradle index c3e61f8d..2a1bb796 100644 --- a/build.gradle +++ b/build.gradle @@ -17,9 +17,9 @@ configure( dependencies { library 'com.github.JnCrMx:discord-game-sdk4j:v0.5.5' - library 'com.fasterxml.jackson.core:jackson-core:2.20.0' - library 'com.fasterxml.jackson.core:jackson-annotations:2.20' - library 'com.fasterxml.jackson.core:jackson-databind:2.20' + library 'com.fasterxml.jackson.core:jackson-core:2.8.8' + library 'com.fasterxml.jackson.core:jackson-annotations:2.8.8' + library 'com.fasterxml.jackson.core:jackson-databind:2.8.8' testImplementation 'org.junit.jupiter:junit-jupiter-api:5.9.1' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.1' diff --git a/common/src/main/java/io/github/kurrycat/mpkmod/compatibility/MCClasses/Player.java b/common/src/main/java/io/github/kurrycat/mpkmod/compatibility/MCClasses/Player.java index 793156d3..2bc6ba9f 100644 --- a/common/src/main/java/io/github/kurrycat/mpkmod/compatibility/MCClasses/Player.java +++ b/common/src/main/java/io/github/kurrycat/mpkmod/compatibility/MCClasses/Player.java @@ -52,7 +52,8 @@ public class Player { public String lastTiming = "None"; public boolean sprinting = false; public BoundingBox3D boundingBox = null; - + public String sidestep = "None"; + public boolean wadStart = false; @InfoString.Getter public static LandingBlock getLatestLB() { @@ -66,7 +67,7 @@ public static LandingBlock getLatestLB() { public static List compressedInputHistory() { return getInputHistory().stream() .reduce(new ArrayList>(), (l, t) -> { - if (l.size() == 0) { + if (l.isEmpty()) { l.add(new Tuple<>(1, t)); return l; } @@ -272,6 +273,7 @@ public Player buildAndSave() { return this; } + //Blip lastBlip = prev.lastBlip; if (onGround && !prev.onGround && pos.getY() == prev.pos.getY() && !prev.jumpTick) { if (lastBlip == null) lastBlip = new Blip(1, pos); @@ -280,6 +282,24 @@ public Player buildAndSave() { if (lastBlip != null) lastBlip = new Blip(0, lastBlip.lastChainedBlips, lastBlip.pos); } + //Sidestep + sidestep = prev.sidestep; + wadStart = prev.wadStart; + if (jumpTick) { + if (prev.keyInput.isMovingSideways() && keyInput.isMovingSideways() && prev.keyInput.hasSwappedDirection(keyInput)) { + sidestep = "WDWA"; + } else if (prev.keyInput.isMovingSideways() && !keyInput.isMovingSideways()) { + sidestep = "None"; + wadStart = true; + } else { + sidestep = "None"; + wadStart = false; + } + } else if (wadStart && keyInput.isMovingSideways()) { + sidestep = airtime == 1 ? "WAD" : "WAD " + airtime + "t"; + wadStart = false; + } + Player.updateDisplayInstance(); return this; } @@ -366,6 +386,11 @@ public Player setLastPos(Vector3D lastPos) { return this; } + @InfoString.Getter + public String getSidestep() { + return sidestep; + } + @InfoString.DataClass public static class Blip implements FormatDecimals { @InfoString.Field @@ -484,5 +509,9 @@ public Vector2D getMovementVector() { public boolean isMovingSideways() { return left ^ right; } + + public boolean hasSwappedDirection(KeyInput other) { + return (this.left && other.right) || (this.right && other.left); + } } } diff --git a/common/src/main/java/io/github/kurrycat/mpkmod/save/Serializer.java b/common/src/main/java/io/github/kurrycat/mpkmod/save/Serializer.java index 0d9c21d7..9cb0d521 100644 --- a/common/src/main/java/io/github/kurrycat/mpkmod/save/Serializer.java +++ b/common/src/main/java/io/github/kurrycat/mpkmod/save/Serializer.java @@ -30,8 +30,7 @@ public static void registerSerializer() { module.addDeserializer(Color.class, new ColorDeserializer()); mapper.registerModule(module); - mapper.activateDefaultTyping( - mapper.getPolymorphicTypeValidator(), + mapper.enableDefaultTyping( ObjectMapper.DefaultTyping.OBJECT_AND_NON_CONCRETE, JsonTypeInfo.As.PROPERTY );