该如何get玩家破坏的方块id
举个栗子:
我想get玩家在破坏指定方块后,执行
e.sendMessage("得分:①");
求大佬告知!感谢!
举个栗子:
我想get玩家在破坏指定方块后,执行
e.sendMessage("得分:①");
求大佬告知!感谢!
BlockBreakEvent#getBlock().getType().getKey()获取方块ID
洞穴夜莺 发表于 2020-8-20 22:32
BlockBreakEvent#getBlock().getType().getKey()获取方块ID

请问是这样写嘛?刚开始学Bukkit插件开发qwq
我是这样写的:
BlockBreakEvent
复制代码强制转换
BlockBreakEvent
- Material block = event.getBlock().getType();
- String blockname = String.valueOf(block);
本帖最后由 洞穴夜莺 于 2020-8-20 23:18 编辑
个人理解应该是
判断是否为床
复制代码
SakuraTao 发表于 2020-8-20 22:34
请问是这样写嘛?刚开始学Bukkit插件开发qwq
个人理解应该是
判断是否为床
- if(Tag.BEDS.isTagged(e.getBlock().getType()))
主世界 发表于 2020-8-20 22:40
我是这样写的:
BlockBreakEvent
强制转换
Material没有重载toString方法,因此你这样获取不到它的ID,这样只能得到类似STONE这样的枚举名
主世界 发表于 2020-8-21 09:52
这样也行吧?
理论上因为1.13进行了扁平化导致床有许多种(black_bed, white_bed, yellow_bed, ...)所以需要用Tag,1.12以下因为床只有bed一种,所以不需要用Tag,直接和bed比较即可
至于getKey()是哪个版本开始有的我不太清楚