SakuraTao
该如何get玩家破坏的方块id
举个栗子:
我想get玩家在破坏指定方块后,执行
e.sendMessage("得分:①");

求大佬告知!感谢!

洞穴夜莺
BlockBreakEvent#getBlock().getType().getKey()获取方块ID

SakuraTao
洞穴夜莺 发表于 2020-8-20 22:32
BlockBreakEvent#getBlock().getType().getKey()获取方块ID


请问是这样写嘛?刚开始学Bukkit插件开发qwq

主世界
我是这样写的:
BlockBreakEvent
  1. Material block = event.getBlock().getType();
  2. String blockname = String.valueOf(block);
复制代码
强制转换

SakuraTao
主世界 发表于 2020-8-20 22:40
我是这样写的:
BlockBreakEvent
强制转换

ok,感谢

洞穴夜莺
本帖最后由 洞穴夜莺 于 2020-8-20 23:18 编辑
SakuraTao 发表于 2020-8-20 22:34
请问是这样写嘛?刚开始学Bukkit插件开发qwq

个人理解应该是
判断是否为床

  1. if(Tag.BEDS.isTagged(e.getBlock().getType()))
复制代码

洞穴夜莺
主世界 发表于 2020-8-20 22:40
我是这样写的:
BlockBreakEvent
强制转换

Material没有重载toString方法,因此你这样获取不到它的ID,这样只能得到类似STONE这样的枚举名

SakuraTao
洞穴夜莺 发表于 2020-8-20 22:44
个人理解应该是
判断是否为床

这个方法是对的额,感谢帮助

主世界
洞穴夜莺 发表于 2020-8-20 22:49
Material没有重载toString方法,因此你这样获取不到它的ID,这样只能得到类似STONE这样的枚举名 ...


这样也行吧?


洞穴夜莺
主世界 发表于 2020-8-21 09:52
这样也行吧?

理论上因为1.13进行了扁平化导致床有许多种(black_bed, white_bed, yellow_bed, ...)所以需要用Tag,1.12以下因为床只有bed一种,所以不需要用Tag,直接和bed比较即可
至于getKey()是哪个版本开始有的我不太清楚

第一页 上一页 下一页 最后一页