Banner pattern registry modification (#11803)
This commit is contained in:
@@ -4,6 +4,7 @@ import com.google.common.base.Preconditions;
|
||||
import io.papermc.paper.adventure.PaperAdventure;
|
||||
import io.papermc.paper.datacomponent.DataComponentTypes;
|
||||
import io.papermc.paper.datacomponent.PaperDataComponentType;
|
||||
import io.papermc.paper.registry.data.PaperBannerPatternRegistryEntry;
|
||||
import io.papermc.paper.registry.data.PaperEnchantmentRegistryEntry;
|
||||
import io.papermc.paper.registry.data.PaperGameEventRegistryEntry;
|
||||
import io.papermc.paper.registry.data.PaperPaintingVariantRegistryEntry;
|
||||
@@ -106,7 +107,7 @@ public final class PaperRegistries {
|
||||
start(Registries.WOLF_VARIANT, RegistryKey.WOLF_VARIANT).craft(Wolf.Variant.class, CraftWolf.CraftVariant::new).build().delayed(),
|
||||
start(Registries.ENCHANTMENT, RegistryKey.ENCHANTMENT).craft(Enchantment.class, CraftEnchantment::new).serializationUpdater(FieldRename.ENCHANTMENT_RENAME).writable(PaperEnchantmentRegistryEntry.PaperBuilder::new).delayed(),
|
||||
start(Registries.JUKEBOX_SONG, RegistryKey.JUKEBOX_SONG).craft(JukeboxSong.class, CraftJukeboxSong::new).build().delayed(),
|
||||
start(Registries.BANNER_PATTERN, RegistryKey.BANNER_PATTERN).craft(PatternType.class, CraftPatternType::new).build().delayed(),
|
||||
start(Registries.BANNER_PATTERN, RegistryKey.BANNER_PATTERN).craft(PatternType.class, CraftPatternType::new).writable(PaperBannerPatternRegistryEntry.PaperBuilder::new).delayed(),
|
||||
start(Registries.PAINTING_VARIANT, RegistryKey.PAINTING_VARIANT).craft(Art.class, CraftArt::new).writable(PaperPaintingVariantRegistryEntry.PaperBuilder::new).delayed(),
|
||||
start(Registries.INSTRUMENT, RegistryKey.INSTRUMENT).craft(MusicInstrument.class, CraftMusicInstrument::new).build().delayed(),
|
||||
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
package io.papermc.paper.registry.data;
|
||||
|
||||
import io.papermc.paper.adventure.PaperAdventure;
|
||||
import io.papermc.paper.registry.PaperRegistryBuilder;
|
||||
import io.papermc.paper.registry.data.util.Conversions;
|
||||
import net.kyori.adventure.key.Key;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.level.block.entity.BannerPattern;
|
||||
import org.bukkit.block.banner.PatternType;
|
||||
import org.jspecify.annotations.Nullable;
|
||||
|
||||
import static io.papermc.paper.registry.data.util.Checks.*;
|
||||
|
||||
public class PaperBannerPatternRegistryEntry implements BannerPatternRegistryEntry {
|
||||
|
||||
protected @Nullable ResourceLocation assetId;
|
||||
protected @Nullable String translationKey;
|
||||
|
||||
public PaperBannerPatternRegistryEntry(
|
||||
final Conversions ignoredConversions,
|
||||
final @Nullable BannerPattern internal
|
||||
) {
|
||||
if (internal == null) return;
|
||||
|
||||
this.assetId = internal.assetId();
|
||||
this.translationKey = internal.translationKey();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Key assetId() {
|
||||
return PaperAdventure.asAdventure(asConfigured(this.assetId, "assetId"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String translationKey() {
|
||||
return asConfigured(this.translationKey, "translationKey");
|
||||
}
|
||||
|
||||
public static final class PaperBuilder extends PaperBannerPatternRegistryEntry implements Builder, PaperRegistryBuilder<BannerPattern, PatternType> {
|
||||
|
||||
public PaperBuilder(final Conversions conversions, final @Nullable BannerPattern internal) {
|
||||
super(conversions, internal);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Builder assetId(final Key assetId) {
|
||||
this.assetId = PaperAdventure.asVanilla(asArgument(assetId, "assetId"));
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Builder translationKey(final String translationKey) {
|
||||
this.translationKey = asArgument(translationKey, "translationKey");
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BannerPattern build() {
|
||||
return new BannerPattern(
|
||||
asConfigured(this.assetId, "assetId"),
|
||||
this.translationKey()
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user