Skip to content

Commit 5b53cb4

Browse files
committed
[ci skip] use more jspecify in server
1 parent cf956ac commit 5b53cb4

File tree

4 files changed

+148
-162
lines changed

4 files changed

+148
-162
lines changed

patches/server/0466-Add-RegistryAccess-for-managing-Registries.patch

Lines changed: 39 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ public net.minecraft.server.RegistryLayer STATIC_ACCESS
1212

1313
diff --git a/src/main/java/io/papermc/paper/registry/PaperRegistries.java b/src/main/java/io/papermc/paper/registry/PaperRegistries.java
1414
new file mode 100644
15-
index 0000000000000000000000000000000000000000..2f22f46f80b80be43a2cc1cd8afb51f4d1fd0e91
15+
index 0000000000000000000000000000000000000000..cd8a6a4c2a63029f8f859765088c227bbd456813
1616
--- /dev/null
1717
+++ b/src/main/java/io/papermc/paper/registry/PaperRegistries.java
18-
@@ -0,0 +1,157 @@
18+
@@ -0,0 +1,154 @@
1919
+package io.papermc.paper.registry;
2020
+
2121
+import com.google.common.base.Preconditions;
@@ -81,14 +81,11 @@ index 0000000000000000000000000000000000000000..2f22f46f80b80be43a2cc1cd8afb51f4
8181
+import org.bukkit.inventory.meta.trim.TrimPattern;
8282
+import org.bukkit.map.MapCursor;
8383
+import org.bukkit.potion.PotionEffectType;
84-
+import org.checkerframework.checker.nullness.qual.NonNull;
85-
+import org.checkerframework.checker.nullness.qual.Nullable;
86-
+import org.checkerframework.framework.qual.DefaultQualifier;
84+
+import org.jspecify.annotations.Nullable;
8785
+
8886
+import static io.papermc.paper.registry.entry.RegistryEntry.apiOnly;
8987
+import static io.papermc.paper.registry.entry.RegistryEntry.entry;
9088
+
91-
+@DefaultQualifier(NonNull.class)
9289
+public final class PaperRegistries {
9390
+
9491
+ static final List<RegistryEntry<?, ?>> REGISTRY_ENTRIES;
@@ -175,10 +172,10 @@ index 0000000000000000000000000000000000000000..2f22f46f80b80be43a2cc1cd8afb51f4
175172
+}
176173
diff --git a/src/main/java/io/papermc/paper/registry/PaperRegistryAccess.java b/src/main/java/io/papermc/paper/registry/PaperRegistryAccess.java
177174
new file mode 100644
178-
index 0000000000000000000000000000000000000000..35b6a7c5bac9640332a833bd3627f2bcb1bbf2f3
175+
index 0000000000000000000000000000000000000000..4bf7915867dbe762ef0b070d67d5f7b7d1ee4f03
179176
--- /dev/null
180177
+++ b/src/main/java/io/papermc/paper/registry/PaperRegistryAccess.java
181-
@@ -0,0 +1,127 @@
178+
@@ -0,0 +1,122 @@
182179
+package io.papermc.paper.registry;
183180
+
184181
+import io.papermc.paper.registry.entry.ApiRegistryEntry;
@@ -194,14 +191,9 @@ index 0000000000000000000000000000000000000000..35b6a7c5bac9640332a833bd3627f2bc
194191
+import net.minecraft.resources.ResourceKey;
195192
+import org.bukkit.Keyed;
196193
+import org.bukkit.Registry;
197-
+import org.checkerframework.checker.nullness.qual.NonNull;
198-
+import org.checkerframework.checker.nullness.qual.Nullable;
199-
+import org.checkerframework.framework.qual.DefaultQualifier;
200194
+import org.jetbrains.annotations.VisibleForTesting;
195+
+import org.jspecify.annotations.Nullable;
201196
+
202-
+import static java.util.Objects.requireNonNull;
203-
+
204-
+@DefaultQualifier(NonNull.class)
205197
+public class PaperRegistryAccess implements RegistryAccess {
206198
+
207199
+ // We store the API registries in a memoized supplier, so they can be created on-demand.
@@ -224,14 +216,14 @@ index 0000000000000000000000000000000000000000..35b6a7c5bac9640332a833bd3627f2bc
224216
+ @Deprecated(forRemoval = true)
225217
+ @Override
226218
+ public <T extends Keyed> @Nullable Registry<T> getRegistry(final Class<T> type) {
227-
+ final @Nullable RegistryKey<T> registryKey = byType(type);
219+
+ final RegistryKey<T> registryKey = byType(type);
228220
+ // If our mapping from Class -> RegistryKey did not contain the passed type it was either a completely invalid type or a registry
229221
+ // that merely exists as a SimpleRegistry in the org.bukkit.Registry type. We cannot return a registry for these, return null
230222
+ // as per method contract in Bukkit#getRegistry.
231223
+ if (registryKey == null) return null;
232224
+
233-
+ final @Nullable RegistryEntry<?, T> entry = PaperRegistries.getEntry(registryKey);
234-
+ final @Nullable RegistryHolder<T> registry = (RegistryHolder<T>) this.registries.get(registryKey);
225+
+ final RegistryEntry<?, T> entry = PaperRegistries.getEntry(registryKey);
226+
+ final RegistryHolder<T> registry = (RegistryHolder<T>) this.registries.get(registryKey);
235227
+ if (registry != null) {
236228
+ // if the registry exists, return right away. Since this is the "legacy" method, we return DelayedRegistry
237229
+ // for the non-builtin Registry instances stored as fields in Registry.
@@ -352,10 +344,10 @@ index 0000000000000000000000000000000000000000..6d134ace042758da722960cbcb48e525
352344
+}
353345
diff --git a/src/main/java/io/papermc/paper/registry/RegistryHolder.java b/src/main/java/io/papermc/paper/registry/RegistryHolder.java
354346
new file mode 100644
355-
index 0000000000000000000000000000000000000000..a31bdd9f02fe75a87fceb2ebe8c36b3232a561cc
347+
index 0000000000000000000000000000000000000000..1b52d4bc868e1e5f84c8416301e193bb9cd315b2
356348
--- /dev/null
357349
+++ b/src/main/java/io/papermc/paper/registry/RegistryHolder.java
358-
@@ -0,0 +1,47 @@
350+
@@ -0,0 +1,44 @@
359351
+package io.papermc.paper.registry;
360352
+
361353
+import com.google.common.base.Suppliers;
@@ -364,10 +356,7 @@ index 0000000000000000000000000000000000000000..a31bdd9f02fe75a87fceb2ebe8c36b32
364356
+import java.util.function.Supplier;
365357
+import org.bukkit.Keyed;
366358
+import org.bukkit.Registry;
367-
+import org.checkerframework.checker.nullness.qual.NonNull;
368-
+import org.checkerframework.framework.qual.DefaultQualifier;
369359
+
370-
+@DefaultQualifier(NonNull.class)
371360
+public interface RegistryHolder<B extends Keyed> {
372361
+
373362
+ Registry<B> get();
@@ -471,10 +460,10 @@ index 0000000000000000000000000000000000000000..ceb217dbbb84e8bd51365dd47bf91971
471460
+}
472461
diff --git a/src/main/java/io/papermc/paper/registry/entry/CraftRegistryEntry.java b/src/main/java/io/papermc/paper/registry/entry/CraftRegistryEntry.java
473462
new file mode 100644
474-
index 0000000000000000000000000000000000000000..9bb4aa926978f117901c9f99c45a6862a1d5ce30
463+
index 0000000000000000000000000000000000000000..45cbc425da64f0bd3290600869ad425d9e6e912b
475464
--- /dev/null
476465
+++ b/src/main/java/io/papermc/paper/registry/entry/CraftRegistryEntry.java
477-
@@ -0,0 +1,51 @@
466+
@@ -0,0 +1,48 @@
478467
+package io.papermc.paper.registry.entry;
479468
+
480469
+import com.google.common.base.Preconditions;
@@ -487,10 +476,7 @@ index 0000000000000000000000000000000000000000..9bb4aa926978f117901c9f99c45a6862
487476
+import org.bukkit.NamespacedKey;
488477
+import org.bukkit.craftbukkit.CraftRegistry;
489478
+import org.bukkit.craftbukkit.util.ApiVersion;
490-
+import org.checkerframework.checker.nullness.qual.NonNull;
491-
+import org.checkerframework.framework.qual.DefaultQualifier;
492479
+
493-
+@DefaultQualifier(NonNull.class)
494480
+public class CraftRegistryEntry<M, B extends Keyed> extends BaseRegistryEntry<M, B> { // TODO remove Keyed
495481
+
496482
+ private static final BiFunction<NamespacedKey, ApiVersion, NamespacedKey> EMPTY = (namespacedKey, apiVersion) -> namespacedKey;
@@ -528,10 +514,10 @@ index 0000000000000000000000000000000000000000..9bb4aa926978f117901c9f99c45a6862
528514
+}
529515
diff --git a/src/main/java/io/papermc/paper/registry/entry/RegistryEntry.java b/src/main/java/io/papermc/paper/registry/entry/RegistryEntry.java
530516
new file mode 100644
531-
index 0000000000000000000000000000000000000000..15991bf13894d850f360a520d1815711d25973ec
517+
index 0000000000000000000000000000000000000000..2889d87f0989ae5744cd4c1e57240830aa574155
532518
--- /dev/null
533519
+++ b/src/main/java/io/papermc/paper/registry/entry/RegistryEntry.java
534-
@@ -0,0 +1,51 @@
520+
@@ -0,0 +1,48 @@
535521
+package io.papermc.paper.registry.entry;
536522
+
537523
+import io.papermc.paper.registry.RegistryHolder;
@@ -544,10 +530,7 @@ index 0000000000000000000000000000000000000000..15991bf13894d850f360a520d1815711
544530
+import org.bukkit.Keyed;
545531
+import org.bukkit.NamespacedKey;
546532
+import org.bukkit.craftbukkit.util.ApiVersion;
547-
+import org.checkerframework.checker.nullness.qual.NonNull;
548-
+import org.checkerframework.framework.qual.DefaultQualifier;
549533
+
550-
+@DefaultQualifier(NonNull.class)
551534
+public interface RegistryEntry<M, B extends Keyed> extends RegistryEntryInfo<M, B> { // TODO remove Keyed
552535
+
553536
+ RegistryHolder<B> createRegistryHolder(Registry<M> nmsRegistry);
@@ -603,42 +586,37 @@ index 0000000000000000000000000000000000000000..0ae855e80fc9fddfc1feb33c7a974820
603586
+}
604587
diff --git a/src/main/java/io/papermc/paper/registry/entry/package-info.java b/src/main/java/io/papermc/paper/registry/entry/package-info.java
605588
new file mode 100644
606-
index 0000000000000000000000000000000000000000..e4c94d6860e0f5b643cde1ded20b5503c02a4866
589+
index 0000000000000000000000000000000000000000..f04e93aa5ca41ce1cf3b152f827911fdf0dd10cb
607590
--- /dev/null
608591
+++ b/src/main/java/io/papermc/paper/registry/entry/package-info.java
609-
@@ -0,0 +1,5 @@
610-
+@DefaultQualifier(NonNull.class)
592+
@@ -0,0 +1,4 @@
593+
+@NullMarked
611594
+package io.papermc.paper.registry.entry;
612595
+
613-
+import org.checkerframework.checker.nullness.qual.NonNull;
614-
+import org.checkerframework.framework.qual.DefaultQualifier;
596+
+import org.jspecify.annotations.NullMarked;
615597
diff --git a/src/main/java/io/papermc/paper/registry/legacy/DelayedRegistry.java b/src/main/java/io/papermc/paper/registry/legacy/DelayedRegistry.java
616598
new file mode 100644
617-
index 0000000000000000000000000000000000000000..9400fed345344a0a8e4fb301cca6a1867adf625b
599+
index 0000000000000000000000000000000000000000..ca829b162d4369f845e59b62bb8779fd83fe2ef3
618600
--- /dev/null
619601
+++ b/src/main/java/io/papermc/paper/registry/legacy/DelayedRegistry.java
620-
@@ -0,0 +1,61 @@
602+
@@ -0,0 +1,57 @@
621603
+package io.papermc.paper.registry.legacy;
622604
+
623605
+import java.util.Iterator;
624606
+import java.util.function.Supplier;
625607
+import java.util.stream.Stream;
626-
+import net.kyori.adventure.key.Key;
627608
+import org.bukkit.Keyed;
628609
+import org.bukkit.NamespacedKey;
629610
+import org.bukkit.Registry;
630-
+import org.bukkit.craftbukkit.CraftRegistry;
631-
+import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
632-
+import org.checkerframework.checker.nullness.qual.Nullable;
633-
+import org.jetbrains.annotations.NotNull;
611+
+import org.jspecify.annotations.Nullable;
634612
+
635613
+/**
636614
+ * This is to support the now-deprecated fields in {@link Registry} for
637615
+ * data-driven registries.
638616
+ */
639617
+public final class DelayedRegistry<T extends Keyed, R extends Registry<T>> implements Registry<T> {
640618
+
641-
+ private @MonotonicNonNull Supplier<? extends R> delegate;
619+
+ private @Nullable Supplier<? extends R> delegate;
642620
+
643621
+ public void load(final Supplier<? extends R> registry) {
644622
+ if (this.delegate != null) {
@@ -660,7 +638,7 @@ index 0000000000000000000000000000000000000000..9400fed345344a0a8e4fb301cca6a186
660638
+ }
661639
+
662640
+ @Override
663-
+ public @NotNull T getOrThrow(@NotNull final NamespacedKey key) {
641+
+ public T getOrThrow(final NamespacedKey key) {
664642
+ return this.delegate().getOrThrow(key);
665643
+ }
666644
+
@@ -675,7 +653,7 @@ index 0000000000000000000000000000000000000000..9400fed345344a0a8e4fb301cca6a186
675653
+ }
676654
+
677655
+ @Override
678-
+ public NamespacedKey getKey(final T value) {
656+
+ public @Nullable NamespacedKey getKey(final T value) {
679657
+ return this.delegate().getKey(value);
680658
+ }
681659
+}
@@ -752,15 +730,24 @@ index 0000000000000000000000000000000000000000..83870816cd4c54f94a3c603ffe41c11e
752730
+}
753731
diff --git a/src/main/java/io/papermc/paper/registry/legacy/package-info.java b/src/main/java/io/papermc/paper/registry/legacy/package-info.java
754732
new file mode 100644
755-
index 0000000000000000000000000000000000000000..4396982af55872fafbfeaf8161ad6f392726c773
733+
index 0000000000000000000000000000000000000000..063a8d7a7313d5d685d51df54d9502d72266da49
756734
--- /dev/null
757735
+++ b/src/main/java/io/papermc/paper/registry/legacy/package-info.java
758-
@@ -0,0 +1,5 @@
759-
+@DefaultQualifier(NonNull.class)
736+
@@ -0,0 +1,4 @@
737+
+@NullMarked
760738
+package io.papermc.paper.registry.legacy;
761739
+
762-
+import org.checkerframework.checker.nullness.qual.NonNull;
763-
+import org.checkerframework.framework.qual.DefaultQualifier;
740+
+import org.jspecify.annotations.NullMarked;
741+
diff --git a/src/main/java/io/papermc/paper/registry/package-info.java b/src/main/java/io/papermc/paper/registry/package-info.java
742+
new file mode 100644
743+
index 0000000000000000000000000000000000000000..ca07ef31161e938d48214992b34cafb712a51513
744+
--- /dev/null
745+
+++ b/src/main/java/io/papermc/paper/registry/package-info.java
746+
@@ -0,0 +1,4 @@
747+
+@NullMarked
748+
+package io.papermc.paper.registry;
749+
+
750+
+import org.jspecify.annotations.NullMarked;
764751
diff --git a/src/main/java/net/minecraft/core/registries/BuiltInRegistries.java b/src/main/java/net/minecraft/core/registries/BuiltInRegistries.java
765752
index 3f72e30b57fb2a4231e22a2234729408c1240af4..4638ba98dbbdb0f880337347be85a6e0fbed2191 100644
766753
--- a/src/main/java/net/minecraft/core/registries/BuiltInRegistries.java

0 commit comments

Comments
 (0)