Skip to content

Commit e09364d

Browse files
committed
feat: support 1.21.11
1 parent 9cb8efc commit e09364d

27 files changed

+841
-10
lines changed

api/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@ dependencies {
44
api("net.kyori:adventure-api:4.14.0")
55
api("net.kyori:adventure-text-serializer-gson:4.14.0")
66
api("net.kyori:adventure-text-serializer-legacy:4.14.0")
7-
api("xyz.acrylicstyle.java-util:common:1.2.1-SNAPSHOT")
7+
api("xyz.acrylicstyle.java-util:common:2.1.1")
88
}

api/src/main/java/net/azisaba/loreeditor/api/util/ReflectionUtil.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ public static boolean isModernNMS() {
3030
case "1.21.2-R0.1-SNAPSHOT":
3131
case "1.21.3-R0.1-SNAPSHOT":
3232
return "v1_21_3";
33+
case "1.21.11-R0.1-SNAPSHOT":
34+
return "v1_21_11";
3335
}
3436
return Bukkit.getServer().getClass().getPackage().getName().split("\\.")[3];
3537
}

build.gradle.kts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ plugins {
22
java
33
`java-library`
44
`maven-publish`
5-
id("com.gradleup.shadow") version "8.3.3"
6-
id("io.papermc.paperweight.userdev") version "1.7.4" apply false
5+
id("com.gradleup.shadow") version "9.3.0"
6+
id("io.papermc.paperweight.userdev") version "2.0.0-beta.19" apply false
77
}
88

99
allprojects {
1010
group = "net.azisaba.loreeditor"
11-
version = "1.3.1"
11+
version = "1.3.2"
1212

1313
apply {
1414
plugin("java")

common/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
dependencies {
22
api(project(":api"))
3-
api("xyz.acrylicstyle.java-util:reflector:1.2.1-SNAPSHOT")
3+
api("xyz.acrylicstyle.java-util:reflector:2.1.1")
44
compileOnlyApi("io.netty:netty-all:4.1.87.Final")
55
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists

plugin/build.gradle.kts

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,31 @@ dependencies {
22
api(project(":common"))
33
api(project(":v1_15_R1"))
44
api(project(":v1_16_R3"))
5-
api(project(":v1_19_R3"))
6-
api(project(":v1_20"))
7-
api(project(":v1_21_1"))
8-
api(project(":v1_21_3"))
5+
api(project(":v1_19_R3")) {
6+
attributes {
7+
attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 17)
8+
}
9+
}
10+
api(project(":v1_20")) {
11+
attributes {
12+
attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 17)
13+
}
14+
}
15+
api(project(":v1_21_1")) {
16+
attributes {
17+
attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 8)
18+
}
19+
}
20+
api(project(":v1_21_3")) {
21+
attributes {
22+
attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 8)
23+
}
24+
}
25+
api(project(":v1_21_11")) {
26+
attributes {
27+
attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 8)
28+
}
29+
}
930
}
1031

1132
tasks {

settings.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ include("v1_19_R3")
88
include("v1_20")
99
include("v1_21_1")
1010
include("v1_21_3")
11+
include("v1_21_11")

v1_21_11/build.gradle.kts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
plugins {
2+
id("io.papermc.paperweight.userdev")
3+
}
4+
5+
repositories {
6+
mavenLocal()
7+
}
8+
9+
java.toolchain.languageVersion.set(JavaLanguageVersion.of(21))
10+
11+
dependencies {
12+
compileOnly(project(":common"))
13+
compileOnly("io.papermc.paper:paper-api:1.21.11-R0.1-SNAPSHOT")
14+
paperweight.paperDevBundle("1.21.11-R0.1-SNAPSHOT")
15+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package net.azisaba.loreeditor.v1_21_11.chat;
2+
3+
import net.azisaba.loreeditor.common.chat.ChatModifier;
4+
import net.azisaba.loreeditor.common.util.Reflected;
5+
import net.minecraft.network.chat.Style;
6+
import org.jetbrains.annotations.Contract;
7+
import org.jetbrains.annotations.NotNull;
8+
9+
import java.util.Objects;
10+
11+
public record ChatModifierImpl(Style handle) implements ChatModifier {
12+
public ChatModifierImpl {
13+
Objects.requireNonNull(handle, "handle");
14+
}
15+
16+
@Contract(value = "_ -> new", pure = true)
17+
@Reflected
18+
public static @NotNull ChatModifierImpl getInstance(@NotNull Object handle) {
19+
return new ChatModifierImpl((Style) handle);
20+
}
21+
22+
@Override
23+
public @NotNull Style handle() {
24+
return handle;
25+
}
26+
27+
@Override
28+
public @NotNull ChatModifier setItalic(boolean italic) {
29+
return getInstance(handle.withItalic(italic)); // setItalic
30+
}
31+
}
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
package net.azisaba.loreeditor.v1_21_11.chat;
2+
3+
import com.google.gson.Gson;
4+
import com.mojang.serialization.JsonOps;
5+
import net.azisaba.loreeditor.common.chat.ChatModifier;
6+
import net.azisaba.loreeditor.common.chat.Component;
7+
import net.azisaba.loreeditor.common.util.Reflected;
8+
import net.minecraft.network.chat.ComponentSerialization;
9+
import net.minecraft.network.chat.MutableComponent;
10+
import net.minecraft.network.chat.Style;
11+
import org.jetbrains.annotations.Contract;
12+
import org.jetbrains.annotations.NotNull;
13+
import org.jetbrains.annotations.Nullable;
14+
15+
import java.util.List;
16+
import java.util.Objects;
17+
import java.util.function.UnaryOperator;
18+
19+
@Reflected
20+
public record ComponentImpl(MutableComponent handle) implements Component {
21+
private static final Gson GSON = new Gson();
22+
23+
public ComponentImpl(@Nullable net.minecraft.network.chat.Component handle) {
24+
this(handle == null ? null : handle.copy());
25+
}
26+
27+
@Contract(value = "_ -> new", pure = true)
28+
@Reflected
29+
public static @NotNull ComponentImpl getInstance(@Nullable Object component) {
30+
return new ComponentImpl((net.minecraft.network.chat.Component) component);
31+
}
32+
33+
@Override
34+
public @NotNull MutableComponent handle() {
35+
return Objects.requireNonNull(handle, "cannot reference handle in static context");
36+
}
37+
38+
public static MutableComponent deserializeFromJson(@NotNull String input) {
39+
return ComponentSerialization.CODEC.decode(JsonOps.INSTANCE, GSON.toJsonTree(input)).getOrThrow().getFirst().copy();
40+
}
41+
42+
public static String serializeToJson(@NotNull net.minecraft.network.chat.Component component) {
43+
return GSON.toJson(ComponentSerialization.CODEC.encodeStart(JsonOps.INSTANCE, component).getOrThrow());
44+
}
45+
46+
@Override
47+
public @Nullable Component deserialize(@NotNull String input) {
48+
return getInstance(deserializeFromJson(input));
49+
}
50+
51+
@Override
52+
public @NotNull String serialize(@NotNull Component component) {
53+
return serializeToJson(((ComponentImpl) component).handle());
54+
}
55+
56+
@Override
57+
public @NotNull List<?> getSiblings() {
58+
return handle().getSiblings();
59+
}
60+
61+
@Override
62+
public void addSiblingText(@NotNull String text) {
63+
handle().append(deserializeFromJson(text));
64+
}
65+
66+
@Override
67+
public @NotNull Component modifyStyle(@NotNull UnaryOperator<ChatModifier> action) {
68+
ChatModifier cm = new ChatModifierImpl(handle().getStyle());
69+
Style newChatModifier = ((ChatModifierImpl) action.apply(cm)).handle();
70+
return getInstance(handle().setStyle(newChatModifier));
71+
}
72+
}

0 commit comments

Comments
 (0)