Commits
Doc authored and md_5 committed 06a6a10126a
22 22 | import org.bukkit.NamespacedKey; |
23 23 | import org.bukkit.attribute.Attribute; |
24 24 | import org.bukkit.attribute.AttributeModifier; |
25 25 | import org.bukkit.block.banner.Pattern; |
26 26 | import org.bukkit.block.banner.PatternType; |
27 27 | import org.bukkit.craftbukkit.block.data.CraftBlockData; |
28 28 | import org.bukkit.craftbukkit.inventory.ItemStackTest.BukkitWrapper; |
29 29 | import org.bukkit.craftbukkit.inventory.ItemStackTest.CraftWrapper; |
30 30 | import org.bukkit.craftbukkit.inventory.ItemStackTest.StackProvider; |
31 31 | import org.bukkit.craftbukkit.inventory.ItemStackTest.StackWrapper; |
32 + | import org.bukkit.craftbukkit.util.CraftMagicNumbers; |
32 33 | import org.bukkit.enchantments.Enchantment; |
33 34 | import org.bukkit.entity.Axolotl; |
34 35 | import org.bukkit.entity.TropicalFish; |
35 36 | import org.bukkit.inventory.ItemStack; |
36 37 | import org.bukkit.inventory.meta.AxolotlBucketMeta; |
37 38 | import org.bukkit.inventory.meta.BannerMeta; |
38 39 | import org.bukkit.inventory.meta.BlockDataMeta; |
39 40 | import org.bukkit.inventory.meta.BlockStateMeta; |
40 41 | import org.bukkit.inventory.meta.BookMeta; |
41 42 | import org.bukkit.inventory.meta.BundleMeta; |
42 43 | import org.bukkit.inventory.meta.CrossbowMeta; |
43 44 | import org.bukkit.inventory.meta.EnchantmentStorageMeta; |
44 45 | import org.bukkit.inventory.meta.FireworkEffectMeta; |
45 46 | import org.bukkit.inventory.meta.FireworkMeta; |
46 47 | import org.bukkit.inventory.meta.ItemMeta; |
47 48 | import org.bukkit.inventory.meta.KnowledgeBookMeta; |
48 49 | import org.bukkit.inventory.meta.LeatherArmorMeta; |
49 50 | import org.bukkit.inventory.meta.MapMeta; |
50 51 | import org.bukkit.inventory.meta.PotionMeta; |
52 + | import org.bukkit.inventory.meta.SpawnEggMeta; |
51 53 | import org.bukkit.inventory.meta.TropicalFishBucketMeta; |
52 54 | import org.bukkit.potion.PotionData; |
53 55 | import org.bukkit.potion.PotionEffectType; |
54 56 | import org.bukkit.potion.PotionType; |
55 57 | import org.bukkit.support.AbstractTestingBase; |
56 58 | import org.junit.Test; |
57 59 | |
58 60 | public class ItemMetaTest extends AbstractTestingBase { |
59 61 | |
60 62 | static final int MAX_FIREWORK_POWER = 127; // Please update ItemStackFireworkTest if/when this gets changed. |
177 179 | assertNotNull(stack + " has null block state", blockState.getBlockState()); |
178 180 | |
179 181 | blockState.setBlockState(blockState.getBlockState()); |
180 182 | } else { |
181 183 | assertTrue(stack + " has unexpected meta of type BlockStateMeta (but is not a tile)", !(meta instanceof BlockStateMeta)); |
182 184 | } |
183 185 | } |
184 186 | } |
185 187 | } |
186 188 | |
189 + | |
190 + | public void testSpawnEggsHasMeta() { |
191 + | for (Item item : BuiltInRegistries.ITEM) { |
192 + | if (item instanceof net.minecraft.world.item.ItemMonsterEgg) { |
193 + | Material material = CraftMagicNumbers.getMaterial(item); |
194 + | CraftMetaItem baseMeta = (CraftMetaItem) Bukkit.getItemFactory().getItemMeta(material); |
195 + | ItemMeta baseMetaItem = CraftItemStack.getItemMeta(item.getDefaultInstance()); |
196 + | |
197 + | assertTrue(material + " is not handled in CraftItemFactory", baseMeta instanceof CraftMetaSpawnEgg); |
198 + | assertTrue(material + " is not applicable to CraftMetaSpawnEgg", baseMeta.applicableTo(material)); |
199 + | assertTrue(material + " is not handled in CraftItemStack", baseMetaItem instanceof SpawnEggMeta); |
200 + | } |
201 + | } |
202 + | } |
203 + | |
187 204 | |
188 205 | public void testEachExtraData() { |
189 206 | final List<StackProvider> providers = Arrays.asList( |
190 207 | new StackProvider(Material.WRITABLE_BOOK) { |
191 208 | ItemStack operate(final ItemStack cleanStack) { |
192 209 | final BookMeta meta = (BookMeta) cleanStack.getItemMeta(); |
193 210 | meta.setAuthor("Some author"); |
194 211 | meta.setPages("Page 1", "Page 2"); |
195 212 | meta.setTitle("A title"); |
196 213 | cleanStack.setItemMeta(meta); |