Skip to content

Commit

Permalink
Updated Upstream (Purpur)
Browse files Browse the repository at this point in the history
Upstream has released updates that appear to apply and compile correctly

Purpur Changes:
PurpurMC/Purpur@80b6d34 Updated Upstream (Paper)
PurpurMC/Purpur@ba378a7 fix(axe/strippables): add missing strippable options for pale oak
PurpurMC/Purpur@9f0aa88 Updated Upstream (Paper)
  • Loading branch information
SoSeDiK committed Dec 12, 2024
1 parent ae91cc4 commit 987599f
Show file tree
Hide file tree
Showing 5 changed files with 64 additions and 53 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ version = 1.21.4-R0.1-SNAPSHOT
mcVersion = 1.21.4

# Upstream commit
purpurCommit = ffeb49da1ed5202349756af7436e96fd48eb4ff9
purpurCommit = ba378a71bed7c8645f473a5ad19e6c7876ef6230

# Gradle
org.gradle.caching = true
Expand Down
4 changes: 2 additions & 2 deletions patches/api/0031-Add-extra-MaterialTags.patch
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ Subject: [PATCH] Add extra MaterialTags


diff --git a/src/main/java/com/destroystokyo/paper/MaterialTags.java b/src/main/java/com/destroystokyo/paper/MaterialTags.java
index be212b4fbeabab32a4dab6ae554768c368efaa88..0552272771d1f5e1a4294a77bf266bcb7105676c 100644
index 679f78e07a3a2de745fa237165d0a8db5e086f29..b3c17647b7e541d0a8674f936bd737c974e2050e 100644
--- a/src/main/java/com/destroystokyo/paper/MaterialTags.java
+++ b/src/main/java/com/destroystokyo/paper/MaterialTags.java
@@ -714,4 +714,21 @@ public class MaterialTags {
@@ -721,4 +721,21 @@ public class MaterialTags {
.add(Material.NETHERITE_AXE, Material.NETHERITE_HOE, Material.NETHERITE_PICKAXE, Material.NETHERITE_SHOVEL, Material.NETHERITE_SWORD)
.ensureSize("NETHERITE_TOOLS", 5).lock();

Expand Down
61 changes: 37 additions & 24 deletions patches/server/0018-Data-driven-items.patch
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,39 @@ Subject: [PATCH] Data-driven items


diff --git a/src/main/java/io/papermc/paper/registry/PaperRegistries.java b/src/main/java/io/papermc/paper/registry/PaperRegistries.java
index 132afec6bceb6c866de0aeb83db9613d4e74e2e7..ae5850c9f5d4187341c8357a79a7c1a8f9402001 100644
index 3ebc3dbc86f3f448f0c555366b55a77876ef5d6f..dbe3ef9ed46d10076da2ce7158e5b73460165a89 100644
--- a/src/main/java/io/papermc/paper/registry/PaperRegistries.java
+++ b/src/main/java/io/papermc/paper/registry/PaperRegistries.java
@@ -87,7 +87,7 @@ public final class PaperRegistries {
entry(Registries.STRUCTURE_TYPE, RegistryKey.STRUCTURE_TYPE, StructureType.class, CraftStructureType::new),
entry(Registries.MOB_EFFECT, RegistryKey.MOB_EFFECT, PotionEffectType.class, CraftPotionEffectType::new),
entry(Registries.BLOCK, RegistryKey.BLOCK, BlockType.class, CraftBlockType::new),
- entry(Registries.ITEM, RegistryKey.ITEM, ItemType.class, CraftItemType::new),
+ writable(Registries.ITEM, RegistryKey.ITEM, ItemType.class, CraftItemType::new, me.sosedik.kiterino.registry.data.KiterinoItemRegistryEntity.KiterinoBuilder::new).delayed(), // Kiterino - Data-driven items
entry(Registries.CAT_VARIANT, RegistryKey.CAT_VARIANT, Cat.Type.class, CraftCat.CraftType::new),
entry(Registries.FROG_VARIANT, RegistryKey.FROG_VARIANT, Frog.Variant.class, CraftFrog.CraftVariant::new),
entry(Registries.VILLAGER_PROFESSION, RegistryKey.VILLAGER_PROFESSION, Villager.Profession.class, CraftVillager.CraftProfession::new),
@@ -85,7 +85,7 @@ public final class PaperRegistries {
start(Registries.STRUCTURE_TYPE, RegistryKey.STRUCTURE_TYPE).craft(StructureType.class, CraftStructureType::new).build(),
start(Registries.MOB_EFFECT, RegistryKey.MOB_EFFECT).craft(PotionEffectType.class, CraftPotionEffectType::new).build(),
start(Registries.BLOCK, RegistryKey.BLOCK).craft(BlockType.class, CraftBlockType::new).build(),
- start(Registries.ITEM, RegistryKey.ITEM).craft(ItemType.class, CraftItemType::new).build(),
+ start(Registries.ITEM, RegistryKey.ITEM).craft(ItemType.class, CraftItemType::new).writable(me.sosedik.kiterino.registry.data.KiterinoItemRegistryEntity.KiterinoBuilder::new).delayed(), // Kiterino - Data-driven items
start(Registries.CAT_VARIANT, RegistryKey.CAT_VARIANT).craft(Cat.Type.class, CraftCat.CraftType::new).build(),
start(Registries.FROG_VARIANT, RegistryKey.FROG_VARIANT).craft(Frog.Variant.class, CraftFrog.CraftVariant::new).build(),
start(Registries.VILLAGER_PROFESSION, RegistryKey.VILLAGER_PROFESSION).craft(Villager.Profession.class, CraftVillager.CraftProfession::new).build(),
diff --git a/src/main/java/io/papermc/paper/registry/WritableCraftRegistry.java b/src/main/java/io/papermc/paper/registry/WritableCraftRegistry.java
index f201f142505db8f5a87c20346f6e2998263372fd..f4d75526ddf84a68403ed58db2e4b85e50cc02a0 100644
--- a/src/main/java/io/papermc/paper/registry/WritableCraftRegistry.java
+++ b/src/main/java/io/papermc/paper/registry/WritableCraftRegistry.java
@@ -42,6 +42,11 @@ public class WritableCraftRegistry<M, T extends Keyed, B extends PaperRegistryBu
final ResourceKey<M> resourceKey = PaperRegistries.toNms(key);
this.registry.validateWrite(resourceKey);
final B builder = this.newBuilder(conversions);
+ // Kiterino start - Data-driven items
+ if (builder instanceof me.sosedik.kiterino.registry.data.KiterinoItemRegistryEntity.KiterinoBuilder b) {
+ b.itemKey = net.minecraft.resources.ResourceLocation.fromNamespaceAndPath(key.key().namespace(), key.key().value());
+ }
+ // Kiterino end - Data-driven items
value.accept(builder);
PaperRegistryListenerManager.INSTANCE.registerWithListeners(
this.registry,
diff --git a/src/main/java/io/papermc/paper/registry/data/util/Conversions.java b/src/main/java/io/papermc/paper/registry/data/util/Conversions.java
index 1e9a0143bc3b70dfc5e129a0fe849ff3e01447ab..7ed31220736afedd41dabc0343e18e22fe47695a 100644
index b1710da835cee3333bfb1c238b37ec0c4d16ba09..cadbf29c4667a74d79fdc538e0cca9cc61480d29 100644
--- a/src/main/java/io/papermc/paper/registry/data/util/Conversions.java
+++ b/src/main/java/io/papermc/paper/registry/data/util/Conversions.java
@@ -30,4 +30,24 @@ public class Conversions {
@@ -55,4 +55,24 @@ public class Conversions {
public Component asAdventure(final net.minecraft.network.chat.@Nullable Component vanilla) {
return vanilla == null ? Component.empty() : this.serializer.deserialize(vanilla);
}
Expand All @@ -48,16 +64,15 @@ index 1e9a0143bc3b70dfc5e129a0fe849ff3e01447ab..7ed31220736afedd41dabc0343e18e22
}
diff --git a/src/main/java/me/sosedik/kiterino/registry/data/KiterinoItemRegistryEntity.java b/src/main/java/me/sosedik/kiterino/registry/data/KiterinoItemRegistryEntity.java
new file mode 100644
index 0000000000000000000000000000000000000000..eddac4503a7fac252c1c738d50d8363a4890ac89
index 0000000000000000000000000000000000000000..ba8cf283dd9e240d2ceafbb260ea3b987cde937d
--- /dev/null
+++ b/src/main/java/me/sosedik/kiterino/registry/data/KiterinoItemRegistryEntity.java
@@ -0,0 +1,145 @@
@@ -0,0 +1,142 @@
+package me.sosedik.kiterino.registry.data;
+
+import io.papermc.paper.datacomponent.DataComponentType;
+import io.papermc.paper.datacomponent.PaperDataComponentType;
+import io.papermc.paper.registry.PaperRegistryBuilder;
+import io.papermc.paper.registry.TypedKey;
+import io.papermc.paper.registry.data.util.Conversions;
+import net.minecraft.core.registries.Registries;
+import net.minecraft.resources.ResourceKey;
Expand All @@ -80,15 +95,13 @@ index 0000000000000000000000000000000000000000..eddac4503a7fac252c1c738d50d8363a
+ protected @Nullable Function<Object, Object> nmsItemFunction;
+
+ protected final Conversions conversions;
+ protected final TypedKey<ItemType> itemKey;
+ public ResourceLocation itemKey;
+
+ public KiterinoItemRegistryEntity(
+ final @NonNull Conversions conversions,
+ final @NonNull TypedKey<ItemType> ignoredKey,
+ final @Nullable Item internal
+ final @NonNull Conversions conversions,
+ final @Nullable Item internal
+ ) {
+ this.conversions = conversions;
+ this.itemKey = ignoredKey;
+ if (internal == null) {
+ return;
+ }
Expand Down Expand Up @@ -130,8 +143,8 @@ index 0000000000000000000000000000000000000000..eddac4503a7fac252c1c738d50d8363a
+ public static final class KiterinoBuilder extends KiterinoItemRegistryEntity implements Builder,
+ PaperRegistryBuilder<Item, ItemType> {
+
+ public KiterinoBuilder(final @NonNull Conversions conversions, final @NonNull TypedKey<ItemType> key, final @Nullable Item internal) {
+ super(conversions, key, internal);
+ public KiterinoBuilder(final @NonNull Conversions conversions, final @Nullable Item internal) {
+ super(conversions, internal);
+ }
+
+ @Override
Expand Down Expand Up @@ -172,7 +185,7 @@ index 0000000000000000000000000000000000000000..eddac4503a7fac252c1c738d50d8363a
+ Item item = this.nmsItem;
+ if (item == null) {
+ var properties = new Item.Properties();
+ properties.setId(ResourceKey.create(Registries.ITEM, ResourceLocation.fromNamespaceAndPath(this.itemKey.key().namespace(), this.itemKey.key().value())));
+ properties.setId(ResourceKey.create(Registries.ITEM, this.itemKey));
+ this.components.forEach((type, value) -> {
+ if (type instanceof PaperDataComponentType.ValuedImpl<?, ?> valued) {
+ setData(properties, (PaperDataComponentType<Object, Object>) valued, value);
Expand All @@ -198,7 +211,7 @@ index 0000000000000000000000000000000000000000..eddac4503a7fac252c1c738d50d8363a
+
+}
diff --git a/src/test/java/io/papermc/paper/registry/RegistryBuilderTest.java b/src/test/java/io/papermc/paper/registry/RegistryBuilderTest.java
index f2f1dfe4277ce1e84a9494bee285badc958c8d3f..6f3d99ae7a959f53aec2d1a39110782b6db47df5 100644
index 55f5fc45cfd5be16b4d8e6d083ff10a744196a5e..917182868cdfdd868748a26d9eeebd7ef772e628 100644
--- a/src/test/java/io/papermc/paper/registry/RegistryBuilderTest.java
+++ b/src/test/java/io/papermc/paper/registry/RegistryBuilderTest.java
@@ -25,6 +25,7 @@ class RegistryBuilderTest {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ index 0000000000000000000000000000000000000000..0a27cb17c68901f0d921e2239ac1a174
+
+}
diff --git a/src/main/java/me/sosedik/kiterino/registry/data/KiterinoItemRegistryEntity.java b/src/main/java/me/sosedik/kiterino/registry/data/KiterinoItemRegistryEntity.java
index eddac4503a7fac252c1c738d50d8363a4890ac89..325b0f62ca5b3ba92f2b403709672a1766ccd1d4 100644
index ba8cf283dd9e240d2ceafbb260ea3b987cde937d..52ee11e48ad47d192b94a26e994a3ddb1881014c 100644
--- a/src/main/java/me/sosedik/kiterino/registry/data/KiterinoItemRegistryEntity.java
+++ b/src/main/java/me/sosedik/kiterino/registry/data/KiterinoItemRegistryEntity.java
@@ -1,5 +1,9 @@
Expand All @@ -80,15 +80,15 @@ index eddac4503a7fac252c1c738d50d8363a4890ac89..325b0f62ca5b3ba92f2b403709672a17
import io.papermc.paper.datacomponent.DataComponentType;
import io.papermc.paper.datacomponent.PaperDataComponentType;
import io.papermc.paper.registry.PaperRegistryBuilder;
@@ -24,6 +28,7 @@ public class KiterinoItemRegistryEntity implements ItemRegistryEntity {
@@ -23,6 +27,7 @@ public class KiterinoItemRegistryEntity implements ItemRegistryEntity {
protected @Nullable Float compostChance;
protected @Nullable Item nmsItem;
protected @Nullable Function<Object, Object> nmsItemFunction;
+ protected @Nullable KiterinoItemModifier modifier;

protected final Conversions conversions;
protected final TypedKey<ItemType> itemKey;
@@ -68,6 +73,11 @@ public class KiterinoItemRegistryEntity implements ItemRegistryEntity {
public ResourceLocation itemKey;
@@ -65,6 +70,11 @@ public class KiterinoItemRegistryEntity implements ItemRegistryEntity {
return this.nmsItemFunction;
}

Expand All @@ -100,7 +100,7 @@ index eddac4503a7fac252c1c738d50d8363a4890ac89..325b0f62ca5b3ba92f2b403709672a17
protected void parseValues(@NonNull Item item) {
// Does it make sense to parse?
// DataComponentMap components = item.components();
@@ -112,9 +122,31 @@ public class KiterinoItemRegistryEntity implements ItemRegistryEntity {
@@ -109,9 +119,31 @@ public class KiterinoItemRegistryEntity implements ItemRegistryEntity {
return this;
}

Expand Down Expand Up @@ -128,7 +128,7 @@ index eddac4503a7fac252c1c738d50d8363a4890ac89..325b0f62ca5b3ba92f2b403709672a17
@SuppressWarnings("unchecked")
@Override
public @NonNull Item build() {
+ if (this.modifier != null) KiterinoItemModifierImpl.MODIFIER_IMPL.add(new org.bukkit.NamespacedKey(this.itemKey.key().namespace(), this.itemKey.key().value()), buildModifier());
+ if (this.modifier != null) KiterinoItemModifierImpl.MODIFIER_IMPL.add(new org.bukkit.NamespacedKey(this.itemKey.getNamespace(), this.itemKey.getPath()), buildModifier());
Item item = this.nmsItem;
if (item == null) {
var properties = new Item.Properties();
Expand Down
38 changes: 18 additions & 20 deletions patches/server/0021-Data-driven-mob-effects.patch
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,23 @@ Subject: [PATCH] Data-driven mob effects


diff --git a/src/main/java/io/papermc/paper/registry/PaperRegistries.java b/src/main/java/io/papermc/paper/registry/PaperRegistries.java
index ae5850c9f5d4187341c8357a79a7c1a8f9402001..b15ed5e980d852097e4f044aea347136f1e655c9 100644
index dbe3ef9ed46d10076da2ce7158e5b73460165a89..4d998c086d1df0b8e3db0c4344c78b963d61b721 100644
--- a/src/main/java/io/papermc/paper/registry/PaperRegistries.java
+++ b/src/main/java/io/papermc/paper/registry/PaperRegistries.java
@@ -85,7 +85,7 @@ public final class PaperRegistries {
@@ -83,7 +83,7 @@ public final class PaperRegistries {
// built-ins
writable(Registries.GAME_EVENT, RegistryKey.GAME_EVENT, GameEvent.class, CraftGameEvent::new, PaperGameEventRegistryEntry.PaperBuilder::new),
entry(Registries.STRUCTURE_TYPE, RegistryKey.STRUCTURE_TYPE, StructureType.class, CraftStructureType::new),
- entry(Registries.MOB_EFFECT, RegistryKey.MOB_EFFECT, PotionEffectType.class, CraftPotionEffectType::new),
+ writable(Registries.MOB_EFFECT, RegistryKey.MOB_EFFECT, PotionEffectType.class, CraftPotionEffectType::new, me.sosedik.kiterino.registry.data.KiterinoMobEffectRegistryEntity.KiterinoBuilder::new).delayed(), // Kiterino - Data-driven mob effects
entry(Registries.BLOCK, RegistryKey.BLOCK, BlockType.class, CraftBlockType::new),
writable(Registries.ITEM, RegistryKey.ITEM, ItemType.class, CraftItemType::new, me.sosedik.kiterino.registry.data.KiterinoItemRegistryEntity.KiterinoBuilder::new).delayed(), // Kiterino - Data-driven items
entry(Registries.CAT_VARIANT, RegistryKey.CAT_VARIANT, Cat.Type.class, CraftCat.CraftType::new),
start(Registries.GAME_EVENT, RegistryKey.GAME_EVENT).craft(GameEvent.class, CraftGameEvent::new).writable(PaperGameEventRegistryEntry.PaperBuilder::new),
start(Registries.STRUCTURE_TYPE, RegistryKey.STRUCTURE_TYPE).craft(StructureType.class, CraftStructureType::new).build(),
- start(Registries.MOB_EFFECT, RegistryKey.MOB_EFFECT).craft(PotionEffectType.class, CraftPotionEffectType::new).build(),
+ start(Registries.MOB_EFFECT, RegistryKey.MOB_EFFECT).craft(PotionEffectType.class, CraftPotionEffectType::new).writable(me.sosedik.kiterino.registry.data.KiterinoMobEffectRegistryEntity.KiterinoBuilder::new).delayed(), // Kiterino - Data-driven mob effects
start(Registries.BLOCK, RegistryKey.BLOCK).craft(BlockType.class, CraftBlockType::new).build(),
start(Registries.ITEM, RegistryKey.ITEM).craft(ItemType.class, CraftItemType::new).writable(me.sosedik.kiterino.registry.data.KiterinoItemRegistryEntity.KiterinoBuilder::new).delayed(), // Kiterino - Data-driven items
start(Registries.CAT_VARIANT, RegistryKey.CAT_VARIANT).craft(Cat.Type.class, CraftCat.CraftType::new).build(),
diff --git a/src/main/java/io/papermc/paper/registry/data/util/Conversions.java b/src/main/java/io/papermc/paper/registry/data/util/Conversions.java
index 7ed31220736afedd41dabc0343e18e22fe47695a..fb151c4b9b8620248ef542d65e7377a3c9f89e74 100644
index cadbf29c4667a74d79fdc538e0cca9cc61480d29..d10cea4307d2a398abf899b0f938a674920a0d49 100644
--- a/src/main/java/io/papermc/paper/registry/data/util/Conversions.java
+++ b/src/main/java/io/papermc/paper/registry/data/util/Conversions.java
@@ -50,4 +50,18 @@ public class Conversions {
@@ -75,4 +75,18 @@ public class Conversions {
};
}
// Kiterino end - Data-driven items
Expand All @@ -42,14 +42,13 @@ index 7ed31220736afedd41dabc0343e18e22fe47695a..fb151c4b9b8620248ef542d65e7377a3
}
diff --git a/src/main/java/me/sosedik/kiterino/registry/data/KiterinoMobEffectRegistryEntity.java b/src/main/java/me/sosedik/kiterino/registry/data/KiterinoMobEffectRegistryEntity.java
new file mode 100644
index 0000000000000000000000000000000000000000..67fcc0f43b6faa8c76aebad15c04dc998c1ff112
index 0000000000000000000000000000000000000000..204c371b0f2cc09c1a70aa2483257f8e087a1a6d
--- /dev/null
+++ b/src/main/java/me/sosedik/kiterino/registry/data/KiterinoMobEffectRegistryEntity.java
@@ -0,0 +1,86 @@
@@ -0,0 +1,84 @@
+package me.sosedik.kiterino.registry.data;
+
+import io.papermc.paper.registry.PaperRegistryBuilder;
+import io.papermc.paper.registry.TypedKey;
+import io.papermc.paper.registry.data.util.Conversions;
+import me.sosedik.kiterino.registry.wrapper.KiterinoMobEffectBehaviourWrapper;
+import me.sosedik.kiterino.world.effect.KiterinoMobEffectWrapper;
Expand All @@ -69,9 +68,8 @@ index 0000000000000000000000000000000000000000..67fcc0f43b6faa8c76aebad15c04dc99
+ protected final Conversions conversions;
+
+ public KiterinoMobEffectRegistryEntity(
+ final @NonNull Conversions conversions,
+ final @NonNull TypedKey<PotionEffectType> ignoredKey,
+ final @Nullable MobEffect internal
+ final @NonNull Conversions conversions,
+ final @Nullable MobEffect internal
+ ) {
+ this.conversions = conversions;
+ if (internal == null) {
Expand Down Expand Up @@ -102,8 +100,8 @@ index 0000000000000000000000000000000000000000..67fcc0f43b6faa8c76aebad15c04dc99
+ public static final class KiterinoBuilder extends KiterinoMobEffectRegistryEntity implements Builder,
+ PaperRegistryBuilder<MobEffect, PotionEffectType> {
+
+ public KiterinoBuilder(final @NonNull Conversions conversions, final @NonNull TypedKey<PotionEffectType> key, final @Nullable MobEffect internal) {
+ super(conversions, key, internal);
+ public KiterinoBuilder(final @NonNull Conversions conversions, final @Nullable MobEffect internal) {
+ super(conversions, internal);
+ }
+
+ @Override
Expand Down Expand Up @@ -209,7 +207,7 @@ index 0000000000000000000000000000000000000000..e39eeb78f824cdc5b912f1260096d371
+
+}
diff --git a/src/test/java/io/papermc/paper/registry/RegistryBuilderTest.java b/src/test/java/io/papermc/paper/registry/RegistryBuilderTest.java
index 6f3d99ae7a959f53aec2d1a39110782b6db47df5..7a534c33fd0fb45af9a24b71d3d15405a38f01c9 100644
index 917182868cdfdd868748a26d9eeebd7ef772e628..aaca1e8722867823fb44e6f6edb5f240557d6a7d 100644
--- a/src/test/java/io/papermc/paper/registry/RegistryBuilderTest.java
+++ b/src/test/java/io/papermc/paper/registry/RegistryBuilderTest.java
@@ -26,6 +26,7 @@ class RegistryBuilderTest {
Expand Down

0 comments on commit 987599f

Please sign in to comment.