Skip to content

Commit

Permalink
General fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
lynxplay committed Aug 9, 2024
1 parent 79091b6 commit 3a38b1a
Show file tree
Hide file tree
Showing 8 changed files with 53 additions and 35 deletions.
25 changes: 14 additions & 11 deletions patches/api/0236-Add-RegistryAccess-for-managing-registries.patch
Original file line number Diff line number Diff line change
Expand Up @@ -206,19 +206,22 @@ index e0f652117e585882693736de8165ae9c689e1d68..fbe14c327ee9c1ac07893853ca7c699e
return server.getRegistry(tClass);
}
diff --git a/src/main/java/org/bukkit/Registry.java b/src/main/java/org/bukkit/Registry.java
index e9edc8c17cbd29cfdad31df13acb15bab2304735..18f91892e0e636438bd9631c3ade5e45e47d73a4 100644
index e9edc8c17cbd29cfdad31df13acb15bab2304735..5dbbc4eb764650395c6ebaaf5fdf0466ca107439 100644
--- a/src/main/java/org/bukkit/Registry.java
+++ b/src/main/java/org/bukkit/Registry.java
@@ -88,7 +88,7 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
@@ -87,8 +87,10 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
* Server banner patterns.
*
* @see PatternType
+ * @deprecated use {@link io.papermc.paper.registry.RegistryAccess#getRegistry(io.papermc.paper.registry.RegistryKey)} with {@link io.papermc.paper.registry.RegistryKey#BANNER_PATTERN}
*/
- Registry<PatternType> BANNER_PATTERN = Objects.requireNonNull(Bukkit.getRegistry(PatternType.class), "No registry present for Pattern Type. This is a bug.");
+ Registry<PatternType> BANNER_PATTERN = io.papermc.paper.registry.RegistryAccess.registryAccess().getRegistry(io.papermc.paper.registry.RegistryKey.BANNER_PATTERN); // Paper
+ @Deprecated(since = "1.21") // Paper
+ Registry<PatternType> BANNER_PATTERN = io.papermc.paper.registry.RegistryAccess.registryAccess().getRegistry(PatternType.class); // Paper
/**
* Server biomes.
*
@@ -102,7 +102,7 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
@@ -102,7 +104,7 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
* @apiNote BlockType is not ready for public usage yet
*/
@ApiStatus.Internal
Expand All @@ -227,7 +230,7 @@ index e9edc8c17cbd29cfdad31df13acb15bab2304735..18f91892e0e636438bd9631c3ade5e45
/**
* Custom boss bars.
*
@@ -134,13 +134,15 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
@@ -134,13 +136,15 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
*
* @see Cat.Type
*/
Expand All @@ -245,7 +248,7 @@ index e9edc8c17cbd29cfdad31df13acb15bab2304735..18f91892e0e636438bd9631c3ade5e45
/**
* Server entity types.
*
@@ -152,7 +154,7 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
@@ -152,7 +156,7 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
*
* @see MusicInstrument
*/
Expand All @@ -254,7 +257,7 @@ index e9edc8c17cbd29cfdad31df13acb15bab2304735..18f91892e0e636438bd9631c3ade5e45
/**
* Server item types.
*
@@ -160,7 +162,7 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
@@ -160,7 +164,7 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
* @apiNote ItemType is not ready for public usage yet
*/
@ApiStatus.Internal
Expand All @@ -263,7 +266,7 @@ index e9edc8c17cbd29cfdad31df13acb15bab2304735..18f91892e0e636438bd9631c3ade5e45
/**
* Default server loot tables.
*
@@ -178,7 +180,7 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
@@ -178,7 +182,7 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
*
* @see PotionEffectType
*/
Expand All @@ -272,7 +275,7 @@ index e9edc8c17cbd29cfdad31df13acb15bab2304735..18f91892e0e636438bd9631c3ade5e45
/**
* Server particles.
*
@@ -201,14 +203,16 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
@@ -201,14 +205,16 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
* Server structures.
*
* @see Structure
Expand All @@ -291,7 +294,7 @@ index e9edc8c17cbd29cfdad31df13acb15bab2304735..18f91892e0e636438bd9631c3ade5e45
/**
* Sound keys.
*
@@ -219,40 +223,47 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
@@ -219,40 +225,47 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
* Trim materials.
*
* @see TrimMaterial
Expand Down Expand Up @@ -346,7 +349,7 @@ index e9edc8c17cbd29cfdad31df13acb15bab2304735..18f91892e0e636438bd9631c3ade5e45
/**
* Memory Keys.
*
@@ -289,25 +300,27 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
@@ -289,25 +302,27 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
*
* @see Frog.Variant
*/
Expand Down
4 changes: 2 additions & 2 deletions patches/api/0329-More-PotionEffectType-API.patch
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ Subject: [PATCH] More PotionEffectType API


diff --git a/src/main/java/org/bukkit/Registry.java b/src/main/java/org/bukkit/Registry.java
index a583d26883c8b7012203e128cd64113df94307c1..4d3e0b90579b33ff93fc565e8ee99a01b690c62b 100644
index 5dbbc4eb764650395c6ebaaf5fdf0466ca107439..0ee9a8728035217bb95c7fba917b45a5ef2ea533 100644
--- a/src/main/java/org/bukkit/Registry.java
+++ b/src/main/java/org/bukkit/Registry.java
@@ -321,6 +321,33 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
@@ -323,6 +323,33 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
* @see GameEvent
*/
Registry<GameEvent> GAME_EVENT = io.papermc.paper.registry.RegistryAccess.registryAccess().getRegistry(io.papermc.paper.registry.RegistryKey.GAME_EVENT); // Paper
Expand Down
6 changes: 3 additions & 3 deletions patches/api/0432-Improve-Registry.patch
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@ index 62d2b3f950860dee0898d77b0a29635c3f9a7e23..704dba92f9246ef398ed8d162ebee3cf
@Override
public @NotNull String translationKey() {
diff --git a/src/main/java/org/bukkit/Registry.java b/src/main/java/org/bukkit/Registry.java
index 4cfaf177052f40cc409f0a90272af147825e4b1f..7296bd71a5e3d4f977701d6fa1cdd3def63fcd54 100644
index 0ee9a8728035217bb95c7fba917b45a5ef2ea533..cd1e38debbec745dd13cd895327f544dcf42594d 100644
--- a/src/main/java/org/bukkit/Registry.java
+++ b/src/main/java/org/bukkit/Registry.java
@@ -357,6 +357,79 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
@@ -359,6 +359,79 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
@Nullable
T get(@NotNull NamespacedKey key);

Expand Down Expand Up @@ -114,7 +114,7 @@ index 4cfaf177052f40cc409f0a90272af147825e4b1f..7296bd71a5e3d4f977701d6fa1cdd3de
/**
* Returns a new stream, which contains all registry items, which are registered to the registry.
*
@@ -431,5 +504,12 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
@@ -433,5 +506,12 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
public Class<T> getType() {
return this.type;
}
Expand Down
8 changes: 4 additions & 4 deletions patches/api/0475-Registry-Modification-API.patch
Original file line number Diff line number Diff line change
Expand Up @@ -790,10 +790,10 @@ index 0000000000000000000000000000000000000000..11d19e339c7c62f2eb4467277552c27e
+record TagKeyImpl<T>(RegistryKey<T> registryKey, Key key) implements TagKey<T> {
+}
diff --git a/src/main/java/org/bukkit/Registry.java b/src/main/java/org/bukkit/Registry.java
index fcc9664fd1fe081c9c70bcd7e511c60d987b44f9..8e306d05e372855929d30456ed2d27a04d55ac42 100644
index cd1e38debbec745dd13cd895327f544dcf42594d..c0428edee6ecbbd646c0e58da39a7ca476914fd1 100644
--- a/src/main/java/org/bukkit/Registry.java
+++ b/src/main/java/org/bukkit/Registry.java
@@ -356,6 +356,27 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
@@ -358,6 +358,27 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
*/
@Nullable
T get(@NotNull NamespacedKey key);
Expand Down Expand Up @@ -821,7 +821,7 @@ index fcc9664fd1fe081c9c70bcd7e511c60d987b44f9..8e306d05e372855929d30456ed2d27a0

// Paper start - improve Registry
/**
@@ -430,6 +451,34 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
@@ -432,6 +453,34 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
}
// Paper end - improve Registry

Expand Down Expand Up @@ -856,7 +856,7 @@ index fcc9664fd1fe081c9c70bcd7e511c60d987b44f9..8e306d05e372855929d30456ed2d27a0
/**
* Returns a new stream, which contains all registry items, which are registered to the registry.
*
@@ -511,5 +560,23 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
@@ -513,5 +562,23 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
return value.getKey();
}
// Paper end - improve Registry
Expand Down
16 changes: 16 additions & 0 deletions patches/server/0004-Test-changes.patch
Original file line number Diff line number Diff line change
Expand Up @@ -351,6 +351,22 @@ index ebcb65cb74acdb9d1bcf2b4b3551a2dc6d809bc9..7d9dbed7281099b78d7f898885b37cdc
}

@Test
diff --git a/src/test/java/org/bukkit/support/AbstractTestingBase.java b/src/test/java/org/bukkit/support/AbstractTestingBase.java
index 544307fe34cbcfa286a7d7b30900ebea127d189e..5bda0bc976920f224586f2c0e083b771c676e307 100644
--- a/src/test/java/org/bukkit/support/AbstractTestingBase.java
+++ b/src/test/java/org/bukkit/support/AbstractTestingBase.java
@@ -53,6 +53,11 @@ public abstract class AbstractTestingBase {
MultiPackResourceManager resourceManager = new MultiPackResourceManager(PackType.SERVER_DATA, resourceRepository.getAvailablePacks().stream().map(Pack::open).toList());
// add tags and loot tables for unit tests
LayeredRegistryAccess<RegistryLayer> layers = RegistryLayer.createRegistryAccess();
+ // Paper start - load registry here to ensure bukkit object registry are correctly delayed if needed
+ try {
+ Class.forName("org.bukkit.Registry");
+ } catch (ClassNotFoundException ignored) {}
+ // Paper end - load registry here to ensure bukkit object registry are correctly delayed if needed
layers = WorldLoader.loadAndReplaceLayer(resourceManager, layers, RegistryLayer.WORLDGEN, RegistryDataLoader.WORLDGEN_REGISTRIES);
REGISTRY_CUSTOM = layers.compositeAccess().freeze();
// Register vanilla pack
diff --git a/src/test/java/org/bukkit/support/DummyServer.java b/src/test/java/org/bukkit/support/DummyServer.java
index 1acdf5bc439c073c1777c2c4f5743ae082f4a621..183d30e3d3d413b05c762f374a964498d6ffdec4 100644
--- a/src/test/java/org/bukkit/support/DummyServer.java
Expand Down
6 changes: 3 additions & 3 deletions patches/server/0005-Paper-config-files.patch
Original file line number Diff line number Diff line change
Expand Up @@ -5065,7 +5065,7 @@ index e8fac2863c5feb875cf0c78f062b4b87acbcb49b..751900e0c2a946ba4291174c81b2bdbd
world.serverLevelData.setDifficulty(config.difficulty);
world.setSpawnSettings(config.spawnMonsters, config.spawnAnimals);
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index a07e26caf48acf9ef193a74497a201166bfbe098..dbcde37cfdeb6141c3f5c4f8b95d60fca91c7977 100644
index 273a6658deacbf00f6cc498cf3fcd20d144bd9e4..cf06abf508fab734f5945e1d292c01512a50749e 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -142,6 +142,19 @@ public class Main {
Expand Down Expand Up @@ -5190,10 +5190,10 @@ index 0000000000000000000000000000000000000000..0396589795da1f83ddf62426236dde9a
+ }
+}
diff --git a/src/test/java/org/bukkit/support/AbstractTestingBase.java b/src/test/java/org/bukkit/support/AbstractTestingBase.java
index 544307fe34cbcfa286a7d7b30900ebea127d189e..1b1d51a68c0abe7d8f0aa1172064192c71ae645e 100644
index 5bda0bc976920f224586f2c0e083b771c676e307..4e9612600822bc1b52b8528dff2783d43385ec73 100644
--- a/src/test/java/org/bukkit/support/AbstractTestingBase.java
+++ b/src/test/java/org/bukkit/support/AbstractTestingBase.java
@@ -63,6 +63,7 @@ public abstract class AbstractTestingBase {
@@ -68,6 +68,7 @@ public abstract class AbstractTestingBase {
BIOMES = REGISTRY_CUSTOM.registryOrThrow(Registries.BIOME);

DummyServer.setup();
Expand Down
5 changes: 2 additions & 3 deletions patches/server/0925-Fixup-NamespacedKey-handling.patch
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ index 478059eb3ad76b41e6a20e9b489a2a4fb19e7c7c..3599ef1675b6091e9b67fb5241886460
}

diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java
index c8eec04685456d89cb41466cddcc3975d0ceeb29..c10609472c1b86c3abb19a62bef4c9ce436307ea 100644
index c8eec04685456d89cb41466cddcc3975d0ceeb29..bcd6cc29e4e621805cbd923d747f652ced240c6d 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java
@@ -17,6 +17,7 @@ import org.bukkit.block.BlockState;
Expand All @@ -155,13 +155,12 @@ index c8eec04685456d89cb41466cddcc3975d0ceeb29..c10609472c1b86c3abb19a62bef4c9ce
import org.bukkit.craftbukkit.block.CraftBlockStates;
import org.bukkit.craftbukkit.block.banner.CraftPatternType;
import org.bukkit.inventory.meta.BlockStateMeta;
@@ -53,7 +54,8 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
@@ -53,7 +54,7 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
for (int i = 0; i < Math.min(patterns.size(), 20); i++) {
BannerPatternLayers.Layer p = patterns.get(i);
DyeColor color = DyeColor.getByWoolData((byte) p.color().getId());
- PatternType pattern = CraftPatternType.minecraftHolderToBukkit(p.pattern());
+ PatternType pattern = CraftRegistry.unwrapAndConvertHolder(io.papermc.paper.registry.RegistryKey.BANNER_PATTERN, p.pattern()).orElse(null); // Paper - fix upstream not being correct
+ if (pattern == null) continue; // Paper - just delete the pattern because upstream is not doing this right

if (color != null && pattern != null) {
this.addPattern(new Pattern(color, pattern));
Expand Down
18 changes: 9 additions & 9 deletions patches/server/0966-General-ItemMeta-fixes.patch
Original file line number Diff line number Diff line change
Expand Up @@ -1388,7 +1388,7 @@ index 7f9182809f6e67ff571db0f365bc7e05f600775a..01c49df291f721bab3acb788ff2f2787

@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java
index d2b74daa5788c1e6d9eaddb47bc3a062287ba036..5c551f86b94320367aedd800fee8bd2c19719f79 100644
index 967d8940aec0065bce496d5d7a8c73de5733bd2c..57a2dc0581d1e59ce201d84ca0c0f7606577bf4c 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaShield.java
@@ -28,17 +28,29 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
Expand Down Expand Up @@ -1435,7 +1435,7 @@ index d2b74daa5788c1e6d9eaddb47bc3a062287ba036..5c551f86b94320367aedd800fee8bd2c
});

getOrEmpty(tag, CraftMetaBanner.PATTERNS).ifPresent((entityTag) -> {
@@ -69,7 +81,7 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
@@ -68,7 +80,7 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS

String baseColor = SerializableMeta.getString(map, CraftMetaShield.BASE_COLOR.BUKKIT, true);
if (baseColor != null) {
Expand All @@ -1444,7 +1444,7 @@ index d2b74daa5788c1e6d9eaddb47bc3a062287ba036..5c551f86b94320367aedd800fee8bd2c
}

Iterable<?> rawPatternList = SerializableMeta.getObject(Iterable.class, map, CraftMetaBanner.PATTERNS.BUKKIT, true);
@@ -87,13 +99,14 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
@@ -86,13 +98,14 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
void applyToItem(CraftMetaItem.Applicator tag) {
super.applyToItem(tag);

Expand All @@ -1453,7 +1453,7 @@ index d2b74daa5788c1e6d9eaddb47bc3a062287ba036..5c551f86b94320367aedd800fee8bd2c
-
- if (this.banner.numberOfPatterns() > 0) {
+ // Paper start - general item meta fixes - decoupled base colour and patterns
+ if (this.baseColor != null) tag.put(CraftMetaShield.BASE_COLOR, net.minecraft.world.item.DyeColor.byFireworkColor(this.baseColor.getWoolData()));
+ if (this.baseColor != null) tag.put(CraftMetaShield.BASE_COLOR, net.minecraft.world.item.DyeColor.byId(this.baseColor.getWoolData()));
+ if (this.patterns != null && !this.patterns.isEmpty()) {
+ {
+ // Paper end - general item meta fixes - decoupled base colour and patterns
Expand All @@ -1464,7 +1464,7 @@ index d2b74daa5788c1e6d9eaddb47bc3a062287ba036..5c551f86b94320367aedd800fee8bd2c
newPatterns.add(new BannerPatternLayers.Layer(CraftPatternType.bukkitToMinecraftHolder(p.getPattern()), net.minecraft.world.item.DyeColor.byId(p.getColor().getWoolData())));
}

@@ -104,108 +117,84 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
@@ -103,108 +116,84 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS

@Override
public List<Pattern> getPatterns() {
Expand Down Expand Up @@ -1597,7 +1597,7 @@ index d2b74daa5788c1e6d9eaddb47bc3a062287ba036..5c551f86b94320367aedd800fee8bd2c

return builder;
}
@@ -214,8 +203,13 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
@@ -213,8 +202,13 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
int applyHash() {
final int original;
int hash = original = super.applyHash();
Expand All @@ -1613,7 +1613,7 @@ index d2b74daa5788c1e6d9eaddb47bc3a062287ba036..5c551f86b94320367aedd800fee8bd2c
}
return original != hash ? CraftMetaShield.class.hashCode() ^ hash : hash;
}
@@ -226,29 +220,33 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
@@ -225,29 +219,33 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
return false;
}
if (meta instanceof CraftMetaShield that) {
Expand Down Expand Up @@ -1652,7 +1652,7 @@ index d2b74daa5788c1e6d9eaddb47bc3a062287ba036..5c551f86b94320367aedd800fee8bd2c
}

@Override
@@ -256,13 +254,18 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
@@ -255,13 +253,18 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
Preconditions.checkArgument(blockState != null, "blockState must not be null");
Preconditions.checkArgument(blockState instanceof Banner, "Invalid blockState");

Expand All @@ -1673,7 +1673,7 @@ index d2b74daa5788c1e6d9eaddb47bc3a062287ba036..5c551f86b94320367aedd800fee8bd2c
}
// Paper end - add method to clear block state

@@ -276,9 +279,10 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
@@ -275,9 +278,10 @@ public class CraftMetaShield extends CraftMetaItem implements ShieldMeta, BlockS
@Override
public CraftMetaShield clone() {
CraftMetaShield meta = (CraftMetaShield) super.clone();
Expand Down

0 comments on commit 3a38b1a

Please sign in to comment.