Skip to content

Commit ec664c0

Browse files
committed
Switch Impl types to Holderable
1 parent 5403894 commit ec664c0

11 files changed

+744
-338
lines changed

patches/api/0003-Test-changes.patch

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ index 0000000000000000000000000000000000000000..77154095cfb8b259bdb318e8ff40cb6f
102102
+ }
103103
+}
104104
diff --git a/src/test/java/org/bukkit/AnnotationTest.java b/src/test/java/org/bukkit/AnnotationTest.java
105-
index 64e7aef6220097edefdff3b98a771b988365930d..f8b8969ee7a0b6f7b3224ff081e35c14a398c9d0 100644
105+
index 64e7aef6220097edefdff3b98a771b988365930d..07f904a78f51b220a5891aca1afffac4f46d58b4 100644
106106
--- a/src/test/java/org/bukkit/AnnotationTest.java
107107
+++ b/src/test/java/org/bukkit/AnnotationTest.java
108108
@@ -29,7 +29,13 @@ public class AnnotationTest {
@@ -200,7 +200,7 @@ index 64e7aef6220097edefdff3b98a771b988365930d..f8b8969ee7a0b6f7b3224ff081e35c14
200200
ParameterNode paramNode = parameters == null ? null : parameters.get(i);
201201
String paramName = paramNode == null ? null : paramNode.name;
202202

203-
@@ -91,13 +147,18 @@ public class AnnotationTest {
203+
@@ -91,17 +147,37 @@ public class AnnotationTest {
204204

205205
Collections.sort(errors);
206206

@@ -223,7 +223,26 @@ index 64e7aef6220097edefdff3b98a771b988365930d..f8b8969ee7a0b6f7b3224ff081e35c14
223223
}
224224

225225
private static void collectClasses(@NotNull File from, @NotNull Map<String, ClassNode> to) throws IOException {
226-
@@ -125,6 +186,23 @@ public class AnnotationTest {
226+
if (from.isDirectory()) {
227+
+ // Paper start - skip packages with @NullMarked
228+
+ final File packageInfo = new File(from, "package-info.class");
229+
+ if (packageInfo.exists()) {
230+
+ try (final FileInputStream in = new FileInputStream(packageInfo)) {
231+
+ final ClassReader cr = new ClassReader(in);
232+
+
233+
+ final ClassNode node = new ClassNode();
234+
+ cr.accept(node, ClassReader.SKIP_CODE | ClassReader.SKIP_DEBUG | ClassReader.SKIP_FRAMES);
235+
+
236+
+ if (isClassNullMarked0(node)) {
237+
+ return; // skip packages with @NullMarked
238+
+ }
239+
+ }
240+
+ }
241+
+ // Paper end - skip packages with @NullMarked
242+
final File[] files = from.listFiles();
243+
assert files != null;
244+
245+
@@ -125,6 +201,23 @@ public class AnnotationTest {
227246
}
228247
}
229248

@@ -247,7 +266,7 @@ index 64e7aef6220097edefdff3b98a771b988365930d..f8b8969ee7a0b6f7b3224ff081e35c14
247266
private static boolean isClassIncluded(@NotNull ClassNode clazz, @NotNull Map<String, ClassNode> allClasses) {
248267
// Exclude private, synthetic or deprecated classes and annotations, since their members can't be null
249268
if ((clazz.access & (Opcodes.ACC_PRIVATE | Opcodes.ACC_SYNTHETIC | Opcodes.ACC_DEPRECATED | Opcodes.ACC_ANNOTATION)) != 0) {
250-
@@ -140,6 +218,11 @@ public class AnnotationTest {
269+
@@ -140,6 +233,11 @@ public class AnnotationTest {
251270
// Exceptions are excluded
252271
return false;
253272
}
@@ -259,7 +278,7 @@ index 64e7aef6220097edefdff3b98a771b988365930d..f8b8969ee7a0b6f7b3224ff081e35c14
259278

260279
for (String excludedClass : EXCLUDED_CLASSES) {
261280
if (excludedClass.equals(clazz.name)) {
262-
@@ -152,7 +235,7 @@ public class AnnotationTest {
281+
@@ -152,7 +250,7 @@ public class AnnotationTest {
263282

264283
private static boolean isMethodIncluded(@NotNull ClassNode clazz, @NotNull MethodNode method, @NotNull Map<String, ClassNode> allClasses) {
265284
// Exclude private, synthetic and deprecated methods
@@ -268,7 +287,7 @@ index 64e7aef6220097edefdff3b98a771b988365930d..f8b8969ee7a0b6f7b3224ff081e35c14
268287
return false;
269288
}
270289

271-
@@ -170,11 +253,30 @@ public class AnnotationTest {
290+
@@ -170,11 +268,30 @@ public class AnnotationTest {
272291
if ("<init>".equals(method.name) && isAnonymous(clazz)) {
273292
return false;
274293
}

patches/api/0472-Introduce-registry-entry-and-builders.patch

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ index 647f6a1ec1f9d3c203b41f90a99bfd415bf67366..9b39e33514b15a9d07104e2ad826d0da
2424
* Built-in registry for cat variants.
2525
diff --git a/src/main/java/io/papermc/paper/registry/data/EnchantmentRegistryEntry.java b/src/main/java/io/papermc/paper/registry/data/EnchantmentRegistryEntry.java
2626
new file mode 100644
27-
index 0000000000000000000000000000000000000000..f092077453cb13dd8d849550896c2ef1cfa81b7a
27+
index 0000000000000000000000000000000000000000..a9d6447110ae3979be049258ce529b56bb8c3c5b
2828
--- /dev/null
2929
+++ b/src/main/java/io/papermc/paper/registry/data/EnchantmentRegistryEntry.java
30-
@@ -0,0 +1,331 @@
30+
@@ -0,0 +1,329 @@
3131
+package io.papermc.paper.registry.data;
3232
+
3333
+import io.papermc.paper.registry.RegistryBuilder;
@@ -45,14 +45,12 @@ index 0000000000000000000000000000000000000000..f092077453cb13dd8d849550896c2ef1
4545
+import org.jetbrains.annotations.Contract;
4646
+import org.jetbrains.annotations.Range;
4747
+import org.jetbrains.annotations.Unmodifiable;
48-
+import org.jspecify.annotations.NullMarked;
4948
+import org.jspecify.annotations.Nullable;
5049
+
5150
+/**
5251
+ * A data-centric version-specific registry entry for the {@link Enchantment} type.
5352
+ */
5453
+@ApiStatus.Experimental
55-
+@NullMarked
5654
+@ApiStatus.NonExtendable
5755
+public interface EnchantmentRegistryEntry {
5856
+
@@ -361,24 +359,22 @@ index 0000000000000000000000000000000000000000..f092077453cb13dd8d849550896c2ef1
361359
+}
362360
diff --git a/src/main/java/io/papermc/paper/registry/data/GameEventRegistryEntry.java b/src/main/java/io/papermc/paper/registry/data/GameEventRegistryEntry.java
363361
new file mode 100644
364-
index 0000000000000000000000000000000000000000..980fe12b75258b51cc2498590cadb9de80805b1f
362+
index 0000000000000000000000000000000000000000..c5051075657f606c3ca81373671bce6bb138309f
365363
--- /dev/null
366364
+++ b/src/main/java/io/papermc/paper/registry/data/GameEventRegistryEntry.java
367-
@@ -0,0 +1,49 @@
365+
@@ -0,0 +1,47 @@
368366
+package io.papermc.paper.registry.data;
369367
+
370368
+import io.papermc.paper.registry.RegistryBuilder;
371369
+import org.bukkit.GameEvent;
372370
+import org.jetbrains.annotations.ApiStatus;
373371
+import org.jetbrains.annotations.Contract;
374372
+import org.jetbrains.annotations.Range;
375-
+import org.jspecify.annotations.NullMarked;
376373
+
377374
+/**
378375
+ * A data-centric version-specific registry entry for the {@link GameEvent} type.
379376
+ */
380377
+@ApiStatus.Experimental
381-
+@NullMarked
382378
+@ApiStatus.NonExtendable
383379
+public interface GameEventRegistryEntry {
384380
+
@@ -416,28 +412,25 @@ index 0000000000000000000000000000000000000000..980fe12b75258b51cc2498590cadb9de
416412
+}
417413
diff --git a/src/main/java/io/papermc/paper/registry/data/PaintingVariantRegistryEntry.java b/src/main/java/io/papermc/paper/registry/data/PaintingVariantRegistryEntry.java
418414
new file mode 100644
419-
index 0000000000000000000000000000000000000000..4e2c99acd7dc307981ba8e33a62835f0f29fd73e
415+
index 0000000000000000000000000000000000000000..a42dd7cd8700f696128cb6ec5b8b878f7d3acd7f
420416
--- /dev/null
421417
+++ b/src/main/java/io/papermc/paper/registry/data/PaintingVariantRegistryEntry.java
422-
@@ -0,0 +1,131 @@
418+
@@ -0,0 +1,128 @@
423419
+package io.papermc.paper.registry.data;
424420
+
425421
+import io.papermc.paper.registry.RegistryBuilder;
426-
+import java.util.Optional;
427422
+import net.kyori.adventure.key.Key;
428423
+import net.kyori.adventure.text.Component;
429424
+import org.bukkit.Art;
430425
+import org.jetbrains.annotations.ApiStatus;
431426
+import org.jetbrains.annotations.Contract;
432427
+import org.jetbrains.annotations.Range;
433-
+import org.jspecify.annotations.NullMarked;
434428
+import org.jspecify.annotations.Nullable;
435429
+
436430
+/**
437431
+ * A data-centric version-specific registry entry for the {@link Art} type.
438432
+ */
439433
+@ApiStatus.Experimental
440-
+@NullMarked
441434
+@ApiStatus.NonExtendable
442435
+public interface PaintingVariantRegistryEntry {
443436
+
@@ -553,10 +546,10 @@ index 0000000000000000000000000000000000000000..4e2c99acd7dc307981ba8e33a62835f0
553546
+}
554547
diff --git a/src/main/java/io/papermc/paper/registry/data/package-info.java b/src/main/java/io/papermc/paper/registry/data/package-info.java
555548
new file mode 100644
556-
index 0000000000000000000000000000000000000000..4f8f536f437c5f483ac7bce393e664fd7bc38477
549+
index 0000000000000000000000000000000000000000..ddc1d8a7983bfd5117a6ac90d64f0681500596ce
557550
--- /dev/null
558551
+++ b/src/main/java/io/papermc/paper/registry/data/package-info.java
559-
@@ -0,0 +1,9 @@
552+
@@ -0,0 +1,12 @@
560553
+/**
561554
+ * Collection of registry entry types that may be created or modified via the
562555
+ * {@link io.papermc.paper.registry.event.RegistryEvent}.
@@ -565,7 +558,10 @@ index 0000000000000000000000000000000000000000..4f8f536f437c5f483ac7bce393e664fd
565558
+ * Registry entries are not expected to be used during plugin runtime interactions with the API but are mostly
566559
+ * exposed during registry creation/modification.
567560
+ */
561+
+@NullMarked
568562
+package io.papermc.paper.registry.data;
563+
+
564+
+import org.jspecify.annotations.NullMarked;
569565
diff --git a/src/main/java/io/papermc/paper/registry/event/RegistryEvents.java b/src/main/java/io/papermc/paper/registry/event/RegistryEvents.java
570566
index 91ae9c0d3ec55ce417d4b447bf3d1b0d0c174b5e..40deffbd0930508bb04e9aedfd62ad2144855198 100644
571567
--- a/src/main/java/io/papermc/paper/registry/event/RegistryEvents.java

0 commit comments

Comments
 (0)