Bukkit插件开发教程 - Block(方块)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bukkit插件开发教程 - Block(方块)相关的知识,希望对你有一定的参考价值。

参考技术A

既然是对方块进行操作,我们首先需要获得一个Block对象,我们可以通过以下的一些方法来获取到一个Block对象

第一种的话我们首先需要的是一个叫Location的东西,这个是用于表示 一个在MC世界里的一个点 ,它类似于我们在数学上所说的空间直角坐标系上的一个点,只不过它有了而外的两个东西,Pitch和Yaw,于是Location就有个一个叫 方向 的概念,在BukkitAPI中可以用BlockFace来表示方向

得到一个Location对象我们不妨可以直接使用 Entity#getLocation 方法进行获取
以下的范例我们使用player来做一个entity

第二种的话引入一个叫World的概念,它用于表示一个 MC世界 ,若我们想获取该世界的一个方块,我们可以使用方法 World#getBlockAt(int, int, int)
填入的是3个 整形 ,那么它近似的可以等于Location(world, int, int, int)

在BukkitAPI中,Block是作为一个 "活着"的对象 存在的,那么如果我们想对一个Block进行进一步的操作,就需要先获取它的BlockState对象

BlockState可以用来表示当前tick时该Block的一个"快照",在对其进行操作之后可以调用其update()方法来进行方块更新

范例: 给一个Chest方块增加物品

以上的范例我们并没有调用 update方法 进行方块更新,是因为在高版本当中,我们在 当前tick 做的修改操作,它在 下一tick 会自动的更新,所以我们可以不需要进行手动的一个更新 (当然你发现不能更新的时候就可以手动更新)

以上是关于Bukkit插件开发教程 - Block(方块)的主要内容,如果未能解决你的问题,请参考以下文章

将指定世界中的指定位置的Block转化为箱子

求我的世界服务器大神 为何会蹦?

创建权限插件 (aplugin.*) - Spigot/Bukkit - Java

Bukkit插件编程之检测玩家受到的伤害是来自投射类武器还是近身武器

xml Bukkit / Spigot插件的pom.xml模板

[导入类Java问题Minecraft插件