Skip to content

Commit 97488dc

Browse files
committed
Fix dependencies and implement reading JourneyMap shared waypoints in Xaero's
1 parent fb8914d commit 97488dc

File tree

5 files changed

+98
-15
lines changed

5 files changed

+98
-15
lines changed

build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ repositories {
1717
maven("https://maven.parchmentmc.org")
1818
maven("https://mvn.devos.one/snapshots")
1919
maven("https://maven.bawnorton.com/releases") // MixinSquared
20+
maven("https://maven.ladysnake.org/releases")
2021
}
2122

2223
//All dependencies and their versions are in ./gradle/libs.versions.toml
@@ -49,6 +50,7 @@ dependencies {
4950

5051
modImplementation("io.github.moonlight_maya:Grappling-Hook:0.7.3-1.21.1")
5152
modImplementation("com.moulberry:lattice:1.2.10")
53+
modImplementation("maven.modrinth:xaeros-minimap:25.2.10_Fabric_1.21")
5254
}
5355

5456
// Write the version to the fabric.mod.json

gradle/libs.versions.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ mixinconstraints = "1.0.9"
99
mixinsquared = "0.3.3"
1010
modmenu = "11.0.3"
1111
sodium = "mc1.21.1-0.6.13-fabric"
12-
flashback = "0.36.0"
12+
flashback = "hQkBepoB"
1313
trinkets = "3.10.0"
1414

1515
[libraries]
@@ -24,7 +24,7 @@ minecraft = { module = "com.mojang:minecraft", version.ref = "minecraft" }
2424
modmenu = { module = "com.terraformersmc:modmenu", version.ref = "modmenu" }
2525
sodium = { module = "maven.modrinth:sodium", version.ref = "sodium" }
2626
flashback = { module = "maven.modrinth:flashback", version.ref = "flashback" }
27-
trinkets = { module = "maven.modrinth:trinkets", version.ref = "trinkets" }
27+
trinkets = { module = "dev.emi:trinkets", version.ref = "trinkets" }
2828

2929
[bundles]
3030
dev_mods = [ "sodium", "modmenu" ]
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package one.devos.nautical.winterssummerfixes.mixin.compat.client.xaeros_minimap;
2+
3+
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
4+
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
5+
import com.moulberry.mixinconstraints.annotations.IfModLoaded;
6+
import net.minecraft.network.chat.Component;
7+
import one.devos.nautical.winterssummerfixes.utils.ConversionKt;
8+
import org.apache.commons.lang3.StringUtils;
9+
import org.spongepowered.asm.mixin.Mixin;
10+
import org.spongepowered.asm.mixin.injection.At;
11+
import xaero.common.events.ClientEvents;
12+
13+
import java.util.Arrays;
14+
import java.util.Collection;
15+
import java.util.Map;
16+
import java.util.stream.Collectors;
17+
18+
@IfModLoaded("xaerominimap")
19+
@Mixin(ClientEvents.class)
20+
public abstract class ClientEventsMixin {
21+
@WrapOperation(method = "handleChatMessage", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/chat/Component;getString()Ljava/lang/String;"))
22+
private String tryConvertToXaerosFormat(Component instance, Operation<String> original) {
23+
var string = original.call(instance);
24+
25+
// JM format: [x:0,z:0]
26+
if (string.contains("[") && string.contains("]") && string.contains(",")) {
27+
return ConversionKt.convertJourneyMapToXaeros(string);
28+
}
29+
30+
return string;
31+
}
32+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,53 @@
11
package one.devos.nautical.winterssummerfixes.utils
22

3+
import org.apache.commons.lang3.StringUtils
4+
35
fun convertHexStringAsAnInt(hexString: String): Int {
46
return hexString.removePrefix("#").toInt(16)
7+
}
8+
9+
fun convertJourneyMapToXaeros(text: String): String {
10+
val raw = text.replace(Regex("[\\[\\]]"), "")
11+
12+
val nameMatch = StringUtils.substringsBetween(text, "\"", "\"")
13+
var name = if (nameMatch != null && nameMatch.size > 0)
14+
nameMatch[0]
15+
else
16+
null
17+
18+
var x: Int? = null
19+
var y = 63
20+
var z: Int? = null
21+
var dim = "minecraft:overworld"
22+
23+
for (part in raw.split(",")) {
24+
if (part.contains(":")) {
25+
val prop = part.split(":")
26+
if (prop.size == 2 || (prop.size == 3 && part.contains("dim:"))) {
27+
val key = prop[0].trim().lowercase()
28+
val value = prop[1].trim()
29+
30+
try {
31+
when (key) {
32+
"x" -> x = value.toInt()
33+
"y" -> y = value.toInt()
34+
"z" -> z = value.toInt()
35+
"dim" -> dim = "$value:${prop[2].trim()}"
36+
"name" -> {
37+
if (name == null)
38+
name = value.replace("\"", "")
39+
}
40+
}
41+
} catch (_: Throwable) {}
42+
}
43+
}
44+
}
45+
46+
if (x == null || z == null)
47+
return text
48+
49+
if (name == null)
50+
name = "$x,$z"
51+
52+
return "xaero-waypoint:$name:W:$x:$y:$z:16:false:0:Internal-dim%${dim.replace(":", "$")}-waypoints"
553
}
Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
{
2-
"required": true,
3-
"package": "one.devos.nautical.winterssummerfixes.mixin",
4-
"compatibilityLevel": "JAVA_21",
5-
"plugin": "com.moulberry.mixinconstraints.ConstraintsMixinPlugin",
6-
"injectors": {
7-
"defaultRequire": 1
8-
},
9-
"mixins": [
10-
],
11-
"client": [
12-
"compat.client.flashback.FlashbackReplayIncompatibleModsMixin",
13-
"compat.client.flashback.FlashbackReplayIncompatibleModsTitleScreenMixin",
14-
"compat.client.limitsgrapple.LimitsGrappleInGameHudColorMixin"
2+
"required": true,
3+
"package": "one.devos.nautical.winterssummerfixes.mixin",
4+
"compatibilityLevel": "JAVA_21",
5+
"plugin": "com.moulberry.mixinconstraints.ConstraintsMixinPlugin",
6+
"injectors": {
7+
"defaultRequire": 1
8+
},
9+
"mixins": [
10+
"compat.client.xaeros_minimap.ClientEventsMixin"
11+
],
12+
"client": [
13+
"compat.client.flashback.FlashbackReplayIncompatibleModsMixin",
14+
"compat.client.flashback.FlashbackReplayIncompatibleModsTitleScreenMixin",
15+
"compat.client.limitsgrapple.LimitsGrappleInGameHudColorMixin"
1516
]
1617
}

0 commit comments

Comments
 (0)