【参考模版】【1.19+】实现水壶浇水的功能
尘末者ChenMom
发布于 2023-05-10 14:08
【实现功能呈现】:
水壶右键土方块可以将土方块转换为湿润的耕地(有水花的粒子效果),并在公屏发送信息 ,浇水有间隔(CD)。水壶浇水消耗自身耐久,对着水右键可以灌水补充耐久,并发送灌水成功的消息。
【代码实现部分】:
(sever_scripts)
BlockEvents.rightClicked('minecraft:dirt', event => {
if(event.player.mainHandItem.id == Item.of('kubejs:watering_can'))
{
if(event.item.nbt.Damage == 4 )//判断当水壶只剩1点耐久时禁用浇水
{
event.server.runCommand(`say 触发保护机制`)
event.cancel()
}
else
{
event.server.runCommandSilent(`setblock ${event.block.x} ${event.block.y} ${event.block.z} minecraft:farmland[moisture= 7]`)//替换方块为湿润的耕地
event.server.runCommandSilent(`particle create:fluid_drip ${event.block.x} ${event.block.y} ${event.block.z} 0.5 0.5 0.5 0.1 50`);//生成粒子(fliuid_drip可替换为其他),相关详见wiki中particle指令的内容
event.server.runCommand(`say 浇水成功喽~`)//公屏播放
event.player.damageHeldItem('main_hand', 1)//消耗一点耐久
event.player.addItemCooldown('kubejs:watering_can', 20)//废物代码)不影响浇水频率)
}
}
})
ItemEvents.rightClicked(e=>{
let player = e.player
if (player.getHeldItem(e.hand) == 'kubejs:watering_can') {
let target = player.rayTrace(5)
if (target.block.id == 'minecraft:water') //通过玩家实现追踪实现辨认玩家对着水右键
{
e.server.runCommand(`say 灌水成功喽~`)//公屏播放
let pos = player.block
e.server.runCommandSilent(`particle create:fluid_drip ${pos.x} ${pos.y} ${pos.z} 0.5 0.5 0.5 0.1 50`);
e.player.damageHeldItem('main_hand', -1)//增加一点耐久
}
}
})
(starup_scripts)
StartupEvents.registry("item", event => {
event.create("watering_can", "basic").glow(true).unstackable().maxDamage(5).displayName("洒水壶")
})
【其他要求】:
自备水壶材质
脚本粒子部分用到“机械动力”模组,如不想要使用可以替换为原版粒子。
【标签(为方便检索)】:水壶,右键检测,耐久消耗、恢复,粒子效果、条件禁用物品功能
全部评论(0)