方块交互 (Block Interactions)
预计阅读时间: 2 分钟
右键点击方块、破坏方块等
此页面上列出的所有方块事件都可以放在 server_scripts/ 或 client_scripts/ 中。
破坏事件 (Broken Event)
方块破坏事件是可取消的。
以下是一个在石头被破坏后用圆石替换它的示例。
1.19.2+
1.18.2及以下
BlockEvents.broken('minecraft:stone', event => {
event.block.set('minecraft:cobblestone')
event.cancel()
})
onEvent('block.break', event => {
if(event.block.id != 'minecraft:stone') return
event.block.set('minecraft:cobblestone')
event.cancel()
})
探测器事件 (Detector Events)
WIP
耕地踩踏事件 (Farmland Trampled Event)
耕地踩踏事件是可取消的。
耕地踩踏事件仅在1.19.2及更高版本上存在!
以下是一个当玩家穿着带有摔落保护4附魔的靴子时取消事件的示例。
BlockEvents.farmlandTrampled(event => {
if(event.player.feetArmorItem.hasEnchantment('minecraft:feather_falling', 4)) event.cancel()
})
左键点击事件 (Left Clicked Event)
左键点击事件是可取消的。
以下是一个在左键点击沙子时给予玩家石头并移除沙子的示例。
1.19.2+
1.18.2及以下
BlockEvents.leftClicked('minecraft:sand', event => {
event.player.give('minecraft:cobblestone')
event.block.set('minecraft:air')
})
onEvent('block.left_click', event => {
if(event.block.id != 'minecraft:sand') return
event.player.give('minecraft:cobblestone')
event.block.set('minecraft:air')
})
放置事件 (Placed Event)
方块放置事件是可取消的。
以下是一个在放置工作台时用橡木原木替换它的示例。
1.19.2+
1.18.2及以下
BlockEvents.placed('minecraft:crafting_table', event => {
event.player.tell('NO CRAFTING FOR YOU')
event.block.set('minecraft:oak_log')
})
onEvent('block.place', event => {
if(event.block.id != 'minecraft:crafting_table') return
event.player.tell('NO CRAFTING FOR YOU')
event.block.set('minecraft:oak_log')
})
右键点击事件 (Right Clicked Event)
右键点击事件是可取消的。
以下是一个在右键点击箱子时取消事件的示例。
1.19.2+
1.18.2及以下
BlockEvents.rightClicked('minecraft:chest', event => event.cancel())
onEvent('block.right_click', event => {
if(event.block.id == 'minecraft:chest') event.cancel()
})