[已解决]为什么1.21的spigot-api在编码里是SPAWN_EGG 但是在游戏里却是MONSTER_EGGS
本帖最后由 mcbzhu 于 2025-3-27 12:51 编辑为什么1.21的spigot-api在编码里是SPAWN_EGG 但是在游戏里却是MONSTER_EGGS ?
想实现的效果是给玩家一个指定类型的刷怪蛋
private static ItemStack getItemStack(Entity entity) {
Material material = null;
String spawnEgg = entity.getType().name() + "_SPAWN_EGG";
System.out.println("spawnEgg -->" + spawnEgg);
for (Material mat : Material.values()) {
System.out.println(mat.name());
if (mat.name().equalsIgnoreCase(spawnEgg)) {
System.out.println("赋值成功");
material = mat;
break;
}
}
// 定义一个生物蛋,创建一个物品栈
ItemStack eggStack = new ItemStack(material, 1);
// 生物名称设置
String customName = entity.getCustomName();
if (customName != null) {
ItemMeta meta = eggStack.getItemMeta();
assert meta != null;
meta.setDisplayName(customName);
eggStack.setItemMeta(meta);
}
return eggStack;
}
这是我获取生物蛋的代码。。求大佬指导
以猪猪刷怪蛋 为例,在api中有一个 PIG_SPAWN_EGG , 但是 mat.name() 在游戏里只有一个 MONSTER_EGGS
已解决
只要在 plugin.yml 中指定 api-version: 1.13 即可(1.13+的版本都可直接写1.13)
不然默认会使用旧的 Material 枚举类
页:
[1]