本帖最后由 长生道长 于 2022-5-17 05:39 编辑
具体报错如下
复制代码大体意思就是没有LEGACY_DEEPSLATE_IRON_ORE这个枚举
DEEPSLATE_IRON_ORE 这个是1.18.2里面的深层铁矿石
除了这个方法出问题以外,还有以下方法出问题
复制代码这些方法获取到的Material 都是AIR 也就是空气
除了这些还有
复制代码获取新版本的东西也是返回LEGACY_AIR,比如获取深层铜矿就会返回LEGACY_AIR 到底是什么原因呢?
现在我的需求是给指定location的Block设置成指定Type的方块,现在做不到有没有大佬答疑解惑给出解决方案
复制代码
具体报错如下
- java.lang.IllegalArgumentException: No enum constant org.bukkit.Material.LEGACY_DEEPSLATE_IRON_ORE
DEEPSLATE_IRON_ORE 这个是1.18.2里面的深层铁矿石
除了这个方法出问题以外,还有以下方法出问题
- Material.getMaterial("DEEPSLATE_IRON_ORE");
- Material.matchMaterial("DEEPSLATE_IRON_ORE");
除了这些还有
- getBlock().getType()
现在我的需求是给指定location的Block设置成指定Type的方块,现在做不到有没有大佬答疑解惑给出解决方案
- location.getBlock().setType(Material.valueOf(DEEPSLATE_IRON_ORE));
本帖最后由 tcejorPoiK 于 2022-5-17 06:18 编辑
plugin.yml里加上api-version属性
比如1.18的插件写上api-version: 1.18
另外实现你的需求的通用写法应该是复制代码
plugin.yml里加上api-version属性
比如1.18的插件写上api-version: 1.18
另外实现你的需求的通用写法应该是
- location.getBlock().setType(Material.DEEPSLATE_IRON_ORE);
所以既然有net.minecraft.world.item.Items,为什么还要来个Material?
tcejorPoiK 发表于 2022-5-17 06:16
plugin.yml里加上api-version属性
比如1.18的插件写上api-version: 1.18
这个api-version: 1.18 是什么原理,Bukkit更新后哪里看他这种新特性,真的恶心搞了一天就一个这 解决了