跳转至内容

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

灵感大王
2 2 98 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]利用事件监听制作弹幕武器

    灵感大王 kubejs
    7
    3 赞同
    7 帖子
    432 浏览
    不是客服M
    flowchart TD A((玩家空挥)) --> B{是否为特定武器} B -->|是| C["计算发射数据 发包服务端<br/>(坐标,弹幕实体id)"] B -->|不是| D["服务端生成相应弹幕"] C --> D D --> E((结束))
  • [原创][KubeJS]kubejs获取玩家所处坐标的结构

    妙妙工具 kubejs
    1
    1 赞同
    1 帖子
    146 浏览
    忆然
    本文使用:CC-BY-NC-SA 4.0协议 直接上代码 在此推荐下来自ZZZank的ProbeJS Legacy (已经支持1.20.1了(喜)) /** * 获取实体坐标的所有结构 * @param {Internal.Entity} entity * @returns {$StructureStart_[]} */ function getAllStructuresAt(entity) { let structureList = [] /**@type {$ServerLevel_} */ let serverLevel = entity.level let entityPos = entity.block.pos /** @type {Internal.Structure[]} */ let structureArray = serverLevel.structureManager().getAllStructuresAt(entityPos).keySet().toArray() for (let structure of structureArray) { let structureStart = serverLevel.structureManager().getStructureAt(entityPos, structure) if (structureStart.isValid()) { structureList.push(structureStart) } } return structureList }
  • [原创]使用kjs进行文件的删除

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