Skip to content
This repository was archived by the owner on Feb 11, 2025. It is now read-only.

Commit cdd1b0a

Browse files
committed
try fix
1 parent 2264c3e commit cdd1b0a

File tree

3 files changed

+50
-9
lines changed

3 files changed

+50
-9
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx1G
33
loom.platform = forge
44

55
# Mod properties
6-
mod_version = 0.1.0
6+
mod_version = 0.1.1
77
maven_group = org.localizedmc.checklistlocalizer
88
archives_name = ChecklistLocalizer
99

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package org.localizedmc.checklistlocalizer.mixin;
2+
3+
//import com.lclc98.checklist.loader.markdown.LinkElementMarkdown;
4+
//import net.minecraft.text.Text;
5+
//import org.objectweb.asm.Opcodes;
6+
//import org.spongepowered.asm.mixin.Final;
7+
//import org.spongepowered.asm.mixin.Mixin;
8+
//import org.spongepowered.asm.mixin.Mutable;
9+
//import org.spongepowered.asm.mixin.Shadow;
10+
//import org.spongepowered.asm.mixin.injection.At;
11+
//import org.spongepowered.asm.mixin.injection.Redirect;
12+
//
13+
//@Mixin(LinkElementMarkdown.class)
14+
//public class LinkElementMarkdownMixin {
15+
// @Mutable
16+
// @Shadow(remap = false) @Final private String text;
17+
//
18+
// @Redirect(method = "<init>", at = @At(value = "FIELD", target = "Lcom/lclc98/checklist/loader/markdown/LinkElementMarkdown;text:Ljava/lang/String;", opcode = Opcodes.PUTFIELD), remap = false)
19+
// private void injected(LinkElementMarkdown instance, String value) {
20+
// text = Text.translatable(value).getString();
21+
// }
22+
//}

src/main/java/org/localizedmc/checklistlocalizer/mixin/TaskElementMixin.java

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,43 @@
22

33
import com.lclc98.checklist.client.gui.element.TaskElement;
44
import net.minecraft.text.Text;
5-
import net.minecraftforge.api.distmarker.Dist;
6-
import net.minecraftforge.api.distmarker.OnlyIn;
75
import org.objectweb.asm.Opcodes;
8-
import org.spongepowered.asm.mixin.Final;
9-
import org.spongepowered.asm.mixin.Mixin;
10-
import org.spongepowered.asm.mixin.Mutable;
11-
import org.spongepowered.asm.mixin.Shadow;
6+
import org.spongepowered.asm.mixin.*;
127
import org.spongepowered.asm.mixin.injection.At;
138
import org.spongepowered.asm.mixin.injection.Redirect;
149

15-
@OnlyIn(Dist.CLIENT)
10+
import java.util.regex.Matcher;
11+
import java.util.regex.Pattern;
12+
1613
@Mixin(TaskElement.class)
1714
public class TaskElementMixin {
1815
@Mutable
1916
@Shadow(remap = false) @Final protected String text;
2017

2118
@Redirect(method = "<init>", at = @At(value = "FIELD", target = "Lcom/lclc98/checklist/client/gui/element/TaskElement;text:Ljava/lang/String;", opcode = Opcodes.PUTFIELD), remap = false)
2219
private void injected(TaskElement instance, String value) {
23-
this.text = Text.translatable(value).getString();
20+
Pattern pattern = Pattern.compile("\\[(.*?)\\]");
21+
Matcher matcher = pattern.matcher(value);
22+
23+
if (text.isEmpty() | value.contains("===")) {
24+
this.text = value;
25+
} else if (matcher.find()) {
26+
this.text = Text.translatable(getLinkText(value, matcher)).getString();
27+
} else {
28+
this.text = Text.translatable(value).getString();
29+
}
30+
}
31+
32+
@Unique
33+
private String getLinkText(String text, Matcher matcher) {
34+
if (matcher.find()) {
35+
// group(0) 是整个匹配的字符串,group(1) 是第一个括号内的内容
36+
String content = matcher.group(1);
37+
System.out.println("Extracted content:" + content);
38+
return content;
39+
} else {
40+
System.out.println("No match found.");
41+
}
42+
return text;
2443
}
2544
}

0 commit comments

Comments
 (0)