Don't store empty PDCs on raids

This commit is contained in:
Shane Freeder 2025-05-02 20:02:34 +01:00
parent 93246a0730
commit cb3ffd0b4a
No known key found for this signature in database
GPG Key ID: A3F61EA5A085289C

View File

@ -13,11 +13,12 @@
public static final SpawnPlacementType RAVAGER_SPAWN_PLACEMENT_TYPE = SpawnPlacements.getPlacementType(EntityType.RAVAGER);
public static final MapCodec<Raid> MAP_CODEC = RecordCodecBuilder.mapCodec(
instance -> instance.group(
@@ -74,6 +_,7 @@
@@ -74,6 +_,8 @@
Raid.RaidStatus.CODEC.fieldOf("status").forGetter(raid -> raid.status),
BlockPos.CODEC.fieldOf("center").forGetter(raid -> raid.center),
UUIDUtil.CODEC_SET.fieldOf("heroes_of_the_village").forGetter(raid -> raid.heroesOfTheVillage)
+ , org.bukkit.craftbukkit.persistence.CraftPersistentDataContainer.createCodec(PDC_TYPE_REGISTRY).lenientOptionalFieldOf(PDC_NBT_KEY).forGetter(raid -> java.util.Optional.of(raid.persistentDataContainer))
+ , org.bukkit.craftbukkit.persistence.CraftPersistentDataContainer.createCodec(PDC_TYPE_REGISTRY).lenientOptionalFieldOf(PDC_NBT_KEY) // Paper - add persistent data container
+ .forGetter(raid -> raid.persistentDataContainer.isEmpty() ? java.util.Optional.empty() : java.util.Optional.of(raid.persistentDataContainer)) // Paper - add persistent data container
)
.apply(instance, Raid::new)
);