mcbzhu 发表于 2025-3-27 09:09:20

[已解决]为什么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



mcbzhu 发表于 2025-3-27 12:51:26

已解决

只要在 plugin.yml 中指定 api-version: 1.13 即可(1.13+的版本都可直接写1.13)

不然默认会使用旧的 Material 枚举类
页: [1]
查看完整版本: [已解决]为什么1.21的spigot-api在编码里是SPAWN_EGG 但是在游戏里却是MONSTER_EGGS