跳转至内容

养老向的物品抽奖机:虚空草莓

灵感大王
2 2 126 1
  • 冰中有宝紧凑型虚空采矿机这两个模组真的很有意思,快乐的全物品抽奖可以玩好久好久好久。
    不过他俩啊,一个是探索向,一个是科技向,倾向有所不同。
    而我正好还有一个养老向的点子呢,那就是虚空草莓!

    // startup_scripts
    StartupEvents.registry('block', event => {
      event.create("void_strawberry", "crop")
        .dropSeed(false)
        .age(7)// 从 0 开始
        .crop("kubejs:void_strawberry")
        .texture("0", "kubejs:block/void_strawberry_crop_stage0")
        .texture("1", "kubejs:block/void_strawberry_crop_stage1")
        .texture("2", "kubejs:block/void_strawberry_crop_stage1")
        .texture("3", "kubejs:block/void_strawberry_crop_stage1")
        .texture("4", "kubejs:block/void_strawberry_crop_stage2")
        .texture("5", "kubejs:block/void_strawberry_crop_stage2")
        .texture("6", "kubejs:block/void_strawberry_crop_stage2")
        .texture("7", "kubejs:block/void_strawberry_crop_stage3")
        .item(item => {
          item.displayName("虚空草莓种子")
            .texture("kubejs:item/void_strawberry_seed")
            // .tooltip("贯通虚空的神奇作物,它究竟能带来什么呢?")
            .rarity("epic")
        })
        .displayName("虚空草莓");
    });
    StartupEvents.registry("item", event => {
      event.create("void_strawberry")
        .rarity("epic")
        .maxStackSize(64)
        .displayName("虚空草莓")
    });
    

    好了,这样一来就简单注册了虚空草莓的作物,贴图就先忽略不计啦。

    接下来就是实现功能的部分了,在KubeJS获取物品合集还是蛮方便的:

    // server_scripts
    ItemEvents.rightClicked("kubejs:void_strawberry", event => {
      let player = event.player;
      let list = Item.typeList.toArray();
      // list = list.filter(item => ...);
      let loot = event.level.createEntity("minecraft:item");
      let id = list[Math.floor(Math.random() * list.length)];
      loot.setNbt(`{Item:{id:"${id}",Count:1b}}`);
      loot.setPosition(player.x, player.y, player.z);
      loot.spawn();
      event.item.setCount(event.item.count - 1);
    });
    

    这样就完成了,是相对简单的物品实体生成形式,可以很方便地筛选,把创造马达呀什么的都丢掉。
    或许留着更好?

  • 呜,硬编码名称😭


相关推荐


  • [原创][KubeJS]简单的以tick实现的嘲讽

    灵感大王 kubejs
    3
    2 赞同
    3 帖子
    184 浏览
    稽塔Gui_tarJ
    我必须先攻击拥有嘲讽的随从
  • 1 赞同
    1 帖子
    247 浏览
    忆然
    本文使用:CC-BY-NC-SA 4.0协议 kjs本身提供的物品注册比较有限,在注册某些kjs未提供的item的时候我们就需要用到createCustom 如果有需要的item注册可以在本文下方留言,会考虑更新 createCustom注册model是没有的,也就是你还得去写一份model.json(这部分可以参考原版wiki) 下面是使用createCustom去注册一个弓的例子 let $BowItem = Java.loadClass("net.minecraft.world.item.BowItem") let $Item$Properties = Java.loadClass("net.minecraft.world.item.Item$Properties") StartupEvents.registry("item", event => { event.createCustom("modid:item_name", () => { let properties = new $Item$Properties() //修改耐久 为0则无耐久属性 properties.durability(0) //修改最大堆叠数量 properties.stacksTo(1) //修改稀有度 properties.rarity("epic") //创建新的bowitem let item = new $BowItem(properties) //返回新的bowitem进行注册 return item }) })
  • [原创]使用kjs进行文件的删除

    灵感大王 kubejs 危险行为 数据操作
    4
    0 赞同
    4 帖子
    324 浏览
    草莓呜咩B
    @芒果凍布丁 我揣测Client可能被安全化了,所以loadClass,能直接用的话就安全多了呢。