帖子

Memorial Edition

查看: 194|回复: 1

[编程求助] [已解决]为什么1.21的spigot-api在编码里是SPAWN_EGG 但是在游戏里却是MONSTER_EGGS

[复制链接]

Lv.2 采石匠

人气
5 点
金粒
67 粒
宝石
0 颗
爱心
0 颗
钻石
4 颗
贡献
0 点

Java正版勋章Windows 10正版勋章

发表于 4 天前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 mcbzhu 于 2025-3-27 12:51 编辑

为什么1.21的spigot-api在编码里是SPAWN_EGG 但是在游戏里却是MONSTER_EGGS ?


想实现的效果是给玩家一个指定类型的刷怪蛋

  1. private static ItemStack getItemStack(Entity entity) {
  2.         Material material = null;
  3.         String spawnEgg = entity.getType().name() + "_SPAWN_EGG";
  4.         System.out.println("spawnEgg -->" + spawnEgg);
  5.         for (Material mat : Material.values()) {
  6.             System.out.println(mat.name());
  7.             if (mat.name().equalsIgnoreCase(spawnEgg)) {
  8.                 System.out.println("赋值成功");
  9.                 material = mat;
  10.                 break;
  11.             }
  12.         }

  13.         // 定义一个生物蛋,创建一个物品栈
  14.         ItemStack eggStack = new ItemStack(material, 1);

  15.         // 生物名称设置
  16.         String customName = entity.getCustomName();
  17.         if (customName != null) {
  18.             ItemMeta meta = eggStack.getItemMeta();
  19.             assert meta != null;
  20.             meta.setDisplayName(customName);
  21.             eggStack.setItemMeta(meta);
  22.         }
  23.         return eggStack;
  24.     }
复制代码



这是我获取生物蛋的代码。。求大佬指导

以猪猪刷怪蛋 为例,在api中有一个 PIG_SPAWN_EGG , 但是 mat.name() 在游戏里只有一个 MONSTER_EGGS



Lv.2 采石匠

人气
5 点
金粒
67 粒
宝石
0 颗
爱心
0 颗
钻石
4 颗
贡献
0 点

Java正版勋章Windows 10正版勋章

 楼主| 发表于 4 天前 | 显示全部楼层
已解决

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

不然默认会使用旧的 Material 枚举类
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋| MCBBS纪念版 ( 新ICP备2024014954号|兵公网安备66010002000149号 )|隐私政策| 手机版

GMT+8, 2025-3-31 11:59 , Processed in 0.098624 second(s), 18 queries , Redis On.

"Minecraft"以及"我的世界"为美国微软公司的商标 本站与微软公司没有从属关系

© 2010-2025 MCBBS纪念版 版权所有 本站内原创内容版权属于其原创作者,除作者或版规特别声明外未经许可不得转载

返回顶部