|
53 | 53 | import net.minecraft.world.item.Rarity;
|
54 | 54 | import net.minecraft.world.item.component.MapPostProcessing;
|
55 | 55 | import org.bukkit.DyeColor;
|
| 56 | +import org.bukkit.craftbukkit.CraftArt; |
56 | 57 | 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; |
57 | 66 | import org.bukkit.craftbukkit.entity.CraftWolf;
|
58 | 67 | import org.bukkit.craftbukkit.inventory.CraftMetaFirework;
|
59 | 68 | 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; |
60 | 77 | import org.bukkit.inventory.ItemRarity;
|
61 | 78 |
|
62 | 79 | import static io.papermc.paper.util.MCUtil.transformUnmodifiable;
|
@@ -147,14 +164,36 @@ public static void bootstrap() {
|
147 | 164 | register(DataComponents.CONTAINER_LOOT, PaperSeededContainerLoot::new);
|
148 | 165 | register(DataComponents.BREAK_SOUND, nms -> PaperAdventure.asAdventureKey(nms.unwrapKey().get()), api -> BuiltInRegistries.SOUND_EVENT.getOrThrow(PaperAdventure.asVanilla(Registries.SOUND_EVENT, api)));
|
149 | 166 | 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())); |
153 | 167 | // TODO break_sound, provides_, entity data
|
154 | 168 | register(DataComponents.TOOLTIP_DISPLAY, PaperTooltipDisplay::new);
|
155 | 169 | register(DataComponents.WEAPON, PaperWeapon::new);
|
156 | 170 | register(DataComponents.BLOCKS_ATTACKS, PaperBlocksAttacks::new);
|
157 | 171 |
|
| 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 | + |
158 | 197 | for (final Map.Entry<ResourceKey<DataComponentType<?>>, DataComponentType<?>> componentType : BuiltInRegistries.DATA_COMPONENT_TYPE.entrySet()) {
|
159 | 198 | if (!ADAPTERS.containsKey(componentType.getKey())) {
|
160 | 199 | registerUnimplemented(componentType.getValue());
|
|
0 commit comments