Skip to content

Commit 4426852

Browse files
committed
feat: 1.20.5~1.20.6対応
1 parent 488928a commit 4426852

File tree

108 files changed

+2369
-71
lines changed

Some content is hidden

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

108 files changed

+2369
-71
lines changed

.run/RunTestPlugin_1.20.5.run.xml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="RunTestPlugin_1.20.5" type="JarApplication">
3+
<option name="JAR_PATH" value="$PROJECT_DIR$/bukkit/test_plugin_1.20.5/server/server.jar"/>
4+
<option name="VM_PARAMETERS" value="-Dplugin.env=DEV"/>
5+
<option name="PROGRAM_PARAMETERS" value="nogui"/>
6+
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/bukkit/test_plugin_1.20.5/server"/>
7+
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="true"/>
8+
<option name="ALTERNATIVE_JRE_PATH" value="21"/>
9+
<method v="2">
10+
<option name="Gradle.BeforeRunTask" enabled="false" tasks="downloadServerJar"
11+
externalProjectPath="$PROJECT_DIR$/bukkit/test_plugin_1.20.5" vmOptions="" scriptParameters=""/>
12+
<option name="Gradle.BeforeRunTask" enabled="true" tasks="build"
13+
externalProjectPath="$PROJECT_DIR$/bukkit/test_plugin_1.20.5" vmOptions="" scriptParameters=""/>
14+
<option name="Gradle.BeforeRunTask" enabled="true" tasks="copyToServer"
15+
externalProjectPath="$PROJECT_DIR$/bukkit/test_plugin_1.20.5" vmOptions="" scriptParameters=""/>
16+
</method>
17+
</configuration>
18+
</component>

bukkit/src/main/java/net/kunmc/lab/commandlib/util/nms/NMSClass.java

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public final Class<?> getFoundClass() {
3838
return clazz;
3939
}
4040

41-
protected final Object newInstance(Class<?>[] parameterTypes, Object[] args) {
41+
public final Object newInstance(Class<?>[] parameterTypes, Object[] args) {
4242
try {
4343
Constructor<?> constructor = clazz.getDeclaredConstructor(parameterTypes);
4444
constructor.setAccessible(true);
@@ -49,62 +49,59 @@ protected final Object newInstance(Class<?>[] parameterTypes, Object[] args) {
4949
}
5050
}
5151

52-
protected final Object invokeMethod(String methodName, Object... args) {
52+
public final Object invokeMethod(String methodName, Object... args) {
5353
return invokeMethod(new String[]{methodName}, args);
5454
}
5555

56-
protected final Object invokeStaticMethod(String methodName, Object... args) {
56+
public final Object invokeStaticMethod(String methodName, Object... args) {
5757
return invokeStaticMethod(new String[]{methodName}, args);
5858
}
5959

60-
protected final Object invokeMethod(String methodName, String methodName2, Object... args) {
60+
public final Object invokeMethod(String methodName, String methodName2, Object... args) {
6161
return invokeMethod(new String[]{methodName, methodName2}, args);
6262
}
6363

64-
protected final Object invokeStaticMethod(String methodName, String methodName2, Object... args) {
64+
public final Object invokeStaticMethod(String methodName, String methodName2, Object... args) {
6565
return invokeStaticMethod(new String[]{methodName, methodName2}, args);
6666
}
6767

68-
protected final Object invokeMethod(String methodName, String methodName2, String methodName3, Object... args) {
68+
public final Object invokeMethod(String methodName, String methodName2, String methodName3, Object... args) {
6969
return invokeMethod(new String[]{methodName, methodName2, methodName3}, args);
7070
}
7171

72-
protected final Object invokeStaticMethod(String methodName,
73-
String methodName2,
74-
String methodName3,
75-
Object... args) {
72+
public final Object invokeStaticMethod(String methodName, String methodName2, String methodName3, Object... args) {
7673
return invokeStaticMethod(new String[]{methodName, methodName2, methodName3}, args);
7774
}
7875

79-
protected final Object invokeMethod(String[] methodNames, Object... args) {
76+
public final Object invokeMethod(String[] methodNames, Object... args) {
8077
Class<?>[] argClasses = Arrays.stream(args)
8178
.map(Object::getClass)
8279
.toArray(Class[]::new);
8380

8481
return invokeMethod(methodNames, argClasses, args);
8582
}
8683

87-
protected final Object invokeStaticMethod(String[] methodNames, Object... args) {
84+
public final Object invokeStaticMethod(String[] methodNames, Object... args) {
8885
Class<?>[] argClasses = Arrays.stream(args)
8986
.map(Object::getClass)
9087
.toArray(Class[]::new);
9188

9289
return invokeStaticMethod(methodNames, argClasses, args);
9390
}
9491

95-
protected final Object invokeMethod(String methodName, Class<?>[] parameterClasses, Object... args) {
92+
public final Object invokeMethod(String methodName, Class<?>[] parameterClasses, Object... args) {
9693
return invokeMethod(new String[]{methodName}, parameterClasses, args);
9794
}
9895

99-
protected final Object invokeStaticMethod(String methodName, Class<?>[] parameterClasses, Object... args) {
96+
public final Object invokeStaticMethod(String methodName, Class<?>[] parameterClasses, Object... args) {
10097
return invokeStaticMethod(new String[]{methodName}, parameterClasses, args);
10198
}
10299

103-
protected final Object invokeMethod(String[] methodNames, Class<?>[] parameterClasses, Object... args) {
100+
public final Object invokeMethod(String[] methodNames, Class<?>[] parameterClasses, Object... args) {
104101
return invokeMethod(handle, methodNames, parameterClasses, args);
105102
}
106103

107-
protected final Object invokeStaticMethod(String[] methodNames, Class<?>[] parameterClasses, Object... args) {
104+
public final Object invokeStaticMethod(String[] methodNames, Class<?>[] parameterClasses, Object... args) {
108105
return invokeMethod(null, methodNames, parameterClasses, args);
109106
}
110107

@@ -140,7 +137,11 @@ private final Object invokeMethod(Object handle,
140137
}
141138
}
142139

143-
protected final <T> T getValue(Class<T> tClass, String name, String... names) {
140+
public final Object getValue(String name, String... names) {
141+
return getValue(Object.class, name, names);
142+
}
143+
144+
public final <T> T getValue(Class<T> tClass, String name, String... names) {
144145
List<String> list = Stream.concat(Stream.of(name), Stream.of(names))
145146
.collect(Collectors.toList());
146147
return list.stream()

bukkit/src/main/java/net/kunmc/lab/commandlib/util/nms/NMSReflection.java

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,18 @@
33
import net.kunmc.lab.commandlib.util.nms.exception.NMSClassNotFoundException;
44
import org.bukkit.Bukkit;
55
import org.jetbrains.annotations.NotNull;
6+
import org.jetbrains.annotations.Nullable;
67

78
import java.util.Map;
89
import java.util.Objects;
9-
import java.util.Optional;
1010
import java.util.concurrent.ConcurrentHashMap;
1111
import java.util.stream.Stream;
1212

1313
public class NMSReflection {
1414
private static final String MINECRAFT_PACKAGE_PREFIX = "net.minecraft";
1515
private static final String NMS_PACKAGE_PREFIX;
1616
private static final String CRAFT_BUKKIT_PACKAGE_PREFIX;
17-
private static final Map<String, Optional<Class<?>>> CACHE = new ConcurrentHashMap<>();
17+
private static final Map<String, Class<?>> CACHE = new ConcurrentHashMap<>();
1818
private static final ClassLoader CLASS_LOADER = Bukkit.getServer()
1919
.getClass()
2020
.getClassLoader();
@@ -45,11 +45,11 @@ public class NMSReflection {
4545
public static Class<?> findMinecraftClass(String className, String... classNames) {
4646
return Stream.concat(Stream.of(className), Stream.of(classNames))
4747
.map(x -> {
48-
Class<?> nmsClass = findClass(NMS_PACKAGE_PREFIX + "." + x).orElse(null);
48+
Class<?> nmsClass = findClass(NMS_PACKAGE_PREFIX + "." + x);
4949
if (nmsClass != null) {
5050
return nmsClass;
5151
}
52-
return findClass(MINECRAFT_PACKAGE_PREFIX + "." + x).orElse(null);
52+
return findClass(MINECRAFT_PACKAGE_PREFIX + "." + x);
5353
})
5454
.filter(Objects::nonNull)
5555
.findFirst()
@@ -58,16 +58,20 @@ public static Class<?> findMinecraftClass(String className, String... classNames
5858

5959
@NotNull
6060
public static Class<?> findCraftBukkitClass(String className) {
61-
return findClass(CRAFT_BUKKIT_PACKAGE_PREFIX + "." + className).orElseThrow(() -> new NMSClassNotFoundException(
62-
className));
61+
Class<?> clazz = findClass(CRAFT_BUKKIT_PACKAGE_PREFIX + "." + className);
62+
if (clazz == null) {
63+
throw new NMSClassNotFoundException(className);
64+
}
65+
return clazz;
6366
}
6467

65-
private static Optional<Class<?>> findClass(String className) {
68+
@Nullable
69+
public static Class<?> findClass(String className) {
6670
return CACHE.computeIfAbsent(className, k -> {
6771
try {
68-
return Optional.of(CLASS_LOADER.loadClass(k));
72+
return CLASS_LOADER.loadClass(k);
6973
} catch (ClassNotFoundException e) {
70-
return Optional.empty();
74+
return null;
7175
}
7276
});
7377
}

bukkit/src/main/java/net/kunmc/lab/commandlib/util/nms/argument/NMSArgumentEnchantment.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import net.kunmc.lab.commandlib.util.nms.argument.v1_16_0.NMSArgumentEnchantment_v1_16_0;
55
import net.kunmc.lab.commandlib.util.nms.argument.v1_17_0.NMSArgumentEnchantment_v1_17_0;
66
import net.kunmc.lab.commandlib.util.nms.argument.v1_19_3.NMSArgumentEnchantment_v1_19_3;
7+
import net.kunmc.lab.commandlib.util.nms.argument.v1_20_5.NMSArgumentEnchantment_v1_20_5;
78
import net.kunmc.lab.commandlib.util.nms.world.NMSEnchantment;
89
import net.kunmc.lab.commandlib.util.reflection.ReflectionUtil;
910

@@ -30,5 +31,9 @@ public NMSArgumentEnchantment(Object handle, String className) {
3031
NMSArgumentEnchantment_v1_19_3.class,
3132
"1.19.3",
3233
"1.20.4");
34+
NMSClassRegistry.register(NMSArgumentEnchantment.class,
35+
NMSArgumentEnchantment_v1_20_5.class,
36+
"1.20.5",
37+
"9.9.9");
3338
}
3439
}

bukkit/src/main/java/net/kunmc/lab/commandlib/util/nms/argument/NMSArgumentEntities.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import net.kunmc.lab.commandlib.util.nms.argument.v1_16_0.NMSArgumentEntities_v1_16_0;
55
import net.kunmc.lab.commandlib.util.nms.argument.v1_17_0.NMSArgumentEntities_v1_17_0;
66
import net.kunmc.lab.commandlib.util.nms.argument.v1_18_0.NMSArgumentEntities_v1_18_0;
7+
import net.kunmc.lab.commandlib.util.nms.argument.v1_20_5.NMSArgumentEntities_v1_20_5;
78
import net.kunmc.lab.commandlib.util.reflection.ReflectionUtil;
89
import org.bukkit.entity.Entity;
910

@@ -23,5 +24,6 @@ public NMSArgumentEntities(Object handle, String className) {
2324
NMSClassRegistry.register(NMSArgumentEntities.class, NMSArgumentEntities_v1_16_0.class, "1.16.0", "1.16.5");
2425
NMSClassRegistry.register(NMSArgumentEntities.class, NMSArgumentEntities_v1_17_0.class, "1.17.0", "1.17.1");
2526
NMSClassRegistry.register(NMSArgumentEntities.class, NMSArgumentEntities_v1_18_0.class, "1.18.0", "1.20.4");
27+
NMSClassRegistry.register(NMSArgumentEntities.class, NMSArgumentEntities_v1_20_5.class, "1.20.5", "9.9.9");
2628
}
2729
}

bukkit/src/main/java/net/kunmc/lab/commandlib/util/nms/argument/NMSArgumentEntity.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import net.kunmc.lab.commandlib.util.nms.NMSClassRegistry;
44
import net.kunmc.lab.commandlib.util.nms.argument.v1_16_0.NMSArgumentEntity_v1_16_0;
55
import net.kunmc.lab.commandlib.util.nms.argument.v1_17_0.NMSArgumentEntity_v1_17_0;
6+
import net.kunmc.lab.commandlib.util.nms.argument.v1_20_5.NMSArgumentEntity_v1_20_5;
67
import net.kunmc.lab.commandlib.util.reflection.ReflectionUtil;
78
import org.bukkit.entity.Entity;
89

@@ -19,5 +20,6 @@ public NMSArgumentEntity(Object handle, String className, String... classNames)
1920
static {
2021
NMSClassRegistry.register(NMSArgumentEntity.class, NMSArgumentEntity_v1_16_0.class, "1.16.0", "1.16.5");
2122
NMSClassRegistry.register(NMSArgumentEntity.class, NMSArgumentEntity_v1_17_0.class, "1.17.0", "1.20.4");
23+
NMSClassRegistry.register(NMSArgumentEntity.class, NMSArgumentEntity_v1_20_5.class, "1.20.5", "9.9.9");
2224
}
2325
}

bukkit/src/main/java/net/kunmc/lab/commandlib/util/nms/argument/NMSArgumentItemStack.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import net.kunmc.lab.commandlib.util.nms.argument.v1_16_0.NMSArgumentItemStack_v1_16_0;
55
import net.kunmc.lab.commandlib.util.nms.argument.v1_17_0.NMSArgumentItemStack_v1_17_0;
66
import net.kunmc.lab.commandlib.util.nms.argument.v1_19_0.NMSArgumentItemStack_v1_19_0;
7+
import net.kunmc.lab.commandlib.util.nms.argument.v1_20_5.NMSArgumentItemStack_v1_20_5;
78
import net.kunmc.lab.commandlib.util.reflection.ReflectionUtil;
89

910
public abstract class NMSArgumentItemStack extends NMSArgument<NMSArgumentPredicateItemStack> {
@@ -20,5 +21,6 @@ public NMSArgumentItemStack(Object handle, String className, String... className
2021
NMSClassRegistry.register(NMSArgumentItemStack.class, NMSArgumentItemStack_v1_16_0.class, "1.16.0", "1.16.5");
2122
NMSClassRegistry.register(NMSArgumentItemStack.class, NMSArgumentItemStack_v1_17_0.class, "1.17.0", "1.18.2");
2223
NMSClassRegistry.register(NMSArgumentItemStack.class, NMSArgumentItemStack_v1_19_0.class, "1.19.0", "1.20.4");
24+
NMSClassRegistry.register(NMSArgumentItemStack.class, NMSArgumentItemStack_v1_20_5.class, "1.20.5", "9.9.9");
2325
}
2426
}

bukkit/src/main/java/net/kunmc/lab/commandlib/util/nms/argument/NMSArgumentMobEffect.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import net.kunmc.lab.commandlib.util.nms.argument.v1_17_0.NMSArgumentMobEffect_v1_17_0;
66
import net.kunmc.lab.commandlib.util.nms.argument.v1_18_0.NMSArgumentMobEffect_v1_18_0;
77
import net.kunmc.lab.commandlib.util.nms.argument.v1_19_3.NMSArgumentMobEffect_v1_19_3;
8+
import net.kunmc.lab.commandlib.util.nms.argument.v1_20_5.NMSArgumentMobEffect_v1_20_5;
89
import net.kunmc.lab.commandlib.util.nms.world.NMSMobEffectList;
910
import net.kunmc.lab.commandlib.util.reflection.ReflectionUtil;
1011

@@ -23,5 +24,6 @@ public NMSArgumentMobEffect(Object handle, String className, String... className
2324
NMSClassRegistry.register(NMSArgumentMobEffect.class, NMSArgumentMobEffect_v1_17_0.class, "1.17.0", "1.17.1");
2425
NMSClassRegistry.register(NMSArgumentMobEffect.class, NMSArgumentMobEffect_v1_18_0.class, "1.18.0", "1.19.2");
2526
NMSClassRegistry.register(NMSArgumentMobEffect.class, NMSArgumentMobEffect_v1_19_3.class, "1.19.3", "1.20.4");
27+
NMSClassRegistry.register(NMSArgumentMobEffect.class, NMSArgumentMobEffect_v1_20_5.class, "1.20.5", "9.9.9");
2628
}
2729
}

bukkit/src/main/java/net/kunmc/lab/commandlib/util/nms/argument/NMSArgumentParticle.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import net.kunmc.lab.commandlib.util.nms.argument.v1_16_0.NMSArgumentParticle_v1_16_0;
55
import net.kunmc.lab.commandlib.util.nms.argument.v1_17_0.NMSArgumentParticle_v1_17_0;
66
import net.kunmc.lab.commandlib.util.nms.argument.v1_19_3.NMSArgumentParticle_v1_19_3;
7+
import net.kunmc.lab.commandlib.util.nms.argument.v1_20_5.NMSArgumentParticle_v1_20_5;
78
import net.kunmc.lab.commandlib.util.nms.core.NMSParticleParam;
89
import net.kunmc.lab.commandlib.util.reflection.ReflectionUtil;
910

@@ -21,5 +22,6 @@ public NMSArgumentParticle(Object handle, String className, String... classNames
2122
NMSClassRegistry.register(NMSArgumentParticle.class, NMSArgumentParticle_v1_16_0.class, "1.16.0", "1.16.5");
2223
NMSClassRegistry.register(NMSArgumentParticle.class, NMSArgumentParticle_v1_17_0.class, "1.17.0", "1.19.2");
2324
NMSClassRegistry.register(NMSArgumentParticle.class, NMSArgumentParticle_v1_19_3.class, "1.19.3", "1.20.4");
25+
NMSClassRegistry.register(NMSArgumentParticle.class, NMSArgumentParticle_v1_20_5.class, "1.20.5", "9.9.9");
2426
}
2527
}

bukkit/src/main/java/net/kunmc/lab/commandlib/util/nms/argument/NMSArgumentPlayer.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import net.kunmc.lab.commandlib.util.nms.NMSClassRegistry;
44
import net.kunmc.lab.commandlib.util.nms.argument.v1_16_0.NMSArgumentPlayer_v1_16_0;
55
import net.kunmc.lab.commandlib.util.nms.argument.v1_17_0.NMSArgumentPlayer_v1_17_0;
6+
import net.kunmc.lab.commandlib.util.nms.argument.v1_20_5.NMSArgumentPlayer_v1_20_5;
67
import net.kunmc.lab.commandlib.util.reflection.ReflectionUtil;
78
import org.bukkit.entity.Player;
89

@@ -19,5 +20,6 @@ public NMSArgumentPlayer(Object handle, String className, String... classNames)
1920
static {
2021
NMSClassRegistry.register(NMSArgumentPlayer.class, NMSArgumentPlayer_v1_16_0.class, "1.16.0", "1.16.5");
2122
NMSClassRegistry.register(NMSArgumentPlayer.class, NMSArgumentPlayer_v1_17_0.class, "1.17.0", "1.20.4");
23+
NMSClassRegistry.register(NMSArgumentPlayer.class, NMSArgumentPlayer_v1_20_5.class, "1.20.5", "9.9.9");
2224
}
2325
}

0 commit comments

Comments
 (0)