Skip to content

Commit 704cc38

Browse files
committed
Add some missing adapters
1 parent a3f71b0 commit 704cc38

File tree

1 file changed

+42
-3
lines changed

1 file changed

+42
-3
lines changed

paper-server/src/main/java/io/papermc/paper/datacomponent/DataComponentAdapters.java

+42-3
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,27 @@
5353
import net.minecraft.world.item.Rarity;
5454
import net.minecraft.world.item.component.MapPostProcessing;
5555
import org.bukkit.DyeColor;
56+
import org.bukkit.craftbukkit.CraftArt;
5657
import org.bukkit.craftbukkit.CraftMusicInstrument;
58+
import org.bukkit.craftbukkit.entity.CraftAxolotl;
59+
import org.bukkit.craftbukkit.entity.CraftCat;
60+
import org.bukkit.craftbukkit.entity.CraftChicken;
61+
import org.bukkit.craftbukkit.entity.CraftCow;
62+
import org.bukkit.craftbukkit.entity.CraftFrog;
63+
import org.bukkit.craftbukkit.entity.CraftPainting;
64+
import org.bukkit.craftbukkit.entity.CraftPig;
65+
import org.bukkit.craftbukkit.entity.CraftVillager;
5766
import org.bukkit.craftbukkit.entity.CraftWolf;
5867
import org.bukkit.craftbukkit.inventory.CraftMetaFirework;
5968
import org.bukkit.craftbukkit.util.Handleable;
69+
import org.bukkit.entity.Axolotl;
70+
import org.bukkit.entity.Horse;
71+
import org.bukkit.entity.Llama;
72+
import org.bukkit.entity.MushroomCow;
73+
import org.bukkit.entity.Parrot;
74+
import org.bukkit.entity.Rabbit;
75+
import org.bukkit.entity.Salmon;
76+
import org.bukkit.entity.TropicalFish;
6077
import org.bukkit.inventory.ItemRarity;
6178

6279
import static io.papermc.paper.util.MCUtil.transformUnmodifiable;
@@ -147,14 +164,36 @@ public static void bootstrap() {
147164
register(DataComponents.CONTAINER_LOOT, PaperSeededContainerLoot::new);
148165
register(DataComponents.BREAK_SOUND, nms -> PaperAdventure.asAdventureKey(nms.unwrapKey().get()), api -> BuiltInRegistries.SOUND_EVENT.getOrThrow(PaperAdventure.asVanilla(Registries.SOUND_EVENT, api)));
149166
register(DataComponents.VILLAGER_VARIANT, nms -> PaperAdventure.asAdventureKey(nms.unwrapKey().get()), api -> BuiltInRegistries.VILLAGER_TYPE.getOrThrow(PaperAdventure.asVanilla(Registries.VILLAGER_TYPE, api)));
150-
register(DataComponents.WOLF_VARIANT, CraftWolf.CraftVariant::minecraftHolderToBukkit, CraftWolf.CraftVariant::bukkitToMinecraftHolder);
151-
register(DataComponents.WOLF_COLLAR, nms -> DyeColor.getByWoolData((byte) nms.getId()), api -> net.minecraft.world.item.DyeColor.byId(api.getWoolData()));
152-
register(DataComponents.FOX_VARIANT, nms -> org.bukkit.entity.Fox.Type.values()[nms.ordinal()], api -> net.minecraft.world.entity.animal.Fox.Variant.byId(api.ordinal()));
153167
// TODO break_sound, provides_, entity data
154168
register(DataComponents.TOOLTIP_DISPLAY, PaperTooltipDisplay::new);
155169
register(DataComponents.WEAPON, PaperWeapon::new);
156170
register(DataComponents.BLOCKS_ATTACKS, PaperBlocksAttacks::new);
157171

172+
register(DataComponents.VILLAGER_VARIANT, CraftVillager.CraftType::minecraftHolderToBukkit, CraftVillager.CraftType::bukkitToMinecraftHolder);
173+
register(DataComponents.WOLF_VARIANT, CraftWolf.CraftVariant::minecraftHolderToBukkit, CraftWolf.CraftVariant::bukkitToMinecraftHolder);
174+
register(DataComponents.WOLF_COLLAR, nms -> DyeColor.getByWoolData((byte) nms.getId()), api -> net.minecraft.world.item.DyeColor.byId(api.getWoolData()));
175+
register(DataComponents.FOX_VARIANT, nms -> org.bukkit.entity.Fox.Type.values()[nms.ordinal()], api -> net.minecraft.world.entity.animal.Fox.Variant.byId(api.ordinal()));
176+
register(DataComponents.SALMON_SIZE, (nms) -> Salmon.Variant.values()[nms.ordinal()], (api) -> net.minecraft.world.entity.animal.Salmon.Variant.values()[api.ordinal()]);
177+
register(DataComponents.PARROT_VARIANT, (nms) -> Parrot.Variant.values()[nms.ordinal()], (api) -> net.minecraft.world.entity.animal.Parrot.Variant.byId(api.ordinal()));
178+
register(DataComponents.TROPICAL_FISH_PATTERN, (nms) -> TropicalFish.Pattern.values()[nms.ordinal()], (api) -> net.minecraft.world.entity.animal.TropicalFish.Pattern.byId(api.ordinal()));
179+
register(DataComponents.TROPICAL_FISH_BASE_COLOR, nms -> DyeColor.getByWoolData((byte) nms.getId()), api -> net.minecraft.world.item.DyeColor.byId(api.getWoolData()));
180+
register(DataComponents.TROPICAL_FISH_PATTERN_COLOR, nms -> DyeColor.getByWoolData((byte) nms.getId()), api -> net.minecraft.world.item.DyeColor.byId(api.getWoolData()));
181+
register(DataComponents.MOOSHROOM_VARIANT, (nms) -> MushroomCow.Variant.values()[nms.ordinal()], (api) -> net.minecraft.world.entity.animal.MushroomCow.Variant.values()[api.ordinal()]);
182+
register(DataComponents.RABBIT_VARIANT, (nms) -> Rabbit.Type.values()[nms.ordinal()], (api) -> net.minecraft.world.entity.animal.Rabbit.Variant.byId(api.ordinal()));
183+
register(DataComponents.PIG_VARIANT, CraftPig.CraftVariant::minecraftHolderToBukkit, CraftPig.CraftVariant::bukkitToMinecraftHolder);
184+
register(DataComponents.COW_VARIANT, CraftCow.CraftVariant::minecraftHolderToBukkit, CraftCow.CraftVariant::bukkitToMinecraftHolder);
185+
// TODO:
186+
//register(DataComponents.CHICKEN_VARIANT, CraftChicken.CraftVariant::minecraftHolderToBukkit, CraftChicken.CraftVariant::bukkitToMinecraftHolder);
187+
register(DataComponents.FROG_VARIANT, CraftFrog.CraftVariant::minecraftHolderToBukkit, CraftFrog.CraftVariant::bukkitToMinecraftHolder);
188+
register(DataComponents.HORSE_VARIANT, (nms) -> Horse.Style.values()[nms.ordinal()], (api) -> net.minecraft.world.entity.animal.horse.Variant.byId(api.ordinal()));
189+
register(DataComponents.PAINTING_VARIANT, CraftArt::minecraftHolderToBukkit, CraftArt::bukkitToMinecraftHolder);
190+
register(DataComponents.LLAMA_VARIANT, (nms) -> Llama.Color.values()[nms.ordinal()], (api) -> net.minecraft.world.entity.animal.horse.Llama.Variant.byId(api.ordinal()));
191+
register(DataComponents.AXOLOTL_VARIANT, (nms) -> Axolotl.Variant.values()[nms.ordinal()], (api) -> net.minecraft.world.entity.animal.axolotl.Axolotl.Variant.byId(api.ordinal()));
192+
register(DataComponents.CAT_VARIANT, CraftCat.CraftType::minecraftHolderToBukkit, CraftCat.CraftType::bukkitToMinecraftHolder);
193+
register(DataComponents.CAT_COLLAR, nms -> DyeColor.getByWoolData((byte) nms.getId()), api -> net.minecraft.world.item.DyeColor.byId(api.getWoolData()));
194+
register(DataComponents.SHEEP_COLOR, nms -> DyeColor.getByWoolData((byte) nms.getId()), api -> net.minecraft.world.item.DyeColor.byId(api.getWoolData()));
195+
register(DataComponents.SHULKER_COLOR, nms -> DyeColor.getByWoolData((byte) nms.getId()), api -> net.minecraft.world.item.DyeColor.byId(api.getWoolData()));
196+
158197
for (final Map.Entry<ResourceKey<DataComponentType<?>>, DataComponentType<?>> componentType : BuiltInRegistries.DATA_COMPONENT_TYPE.entrySet()) {
159198
if (!ADAPTERS.containsKey(componentType.getKey())) {
160199
registerUnimplemented(componentType.getValue());

0 commit comments

Comments
 (0)