返回内容
【MCJE_KJS】【1.19+】实现水壶浇水的功能 Content · Minecraft

【MCJE_KJS】【1.19+】实现水壶浇水的功能

KubeJS 1.19+ 类星露谷种植系统脚本:自制洒水壶右键泥土变为湿润耕地并产生粒子效果,浇水消耗耐久、对水右键可灌水补充。

实现功能呈现:

水壶右键土方块可以将土方块转换为湿润的耕地(有水花的粒子效果),并在公屏发送信息 ,浇水有间隔(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可替换为其他),相关详见MCwiki中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("洒水壶");
});

其他要求:

自备水壶材质 脚本粒子部分用到“机械动力”模组,如不想要使用可以替换为原版粒子。

【类星露谷物语系列】源码及相关素材

点击跳转至GitHub 觉得对你有帮助请❤STAR❤这对我帮助很大谢谢~

商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。本文采用 CC BY-NC-SA 4.0 - 非商业性使用 - 相同方式共享 4.0 国际 进行许可。

评论

欢迎留下笔记、问题和后续想法。

评论将在接近此区域时加载。