全局静态类
kubejs提供了以下的全局静态类和对应的方法
Utils
| 方法 | 方法参数 | 方法作用 | 方法返回参数 | 备注 |
|---|---|---|---|---|
| toTitleCase(string) | -> | 将传入字符串第一个文本转化为大写 | 处理后的字符串 string | 除了"a", "an", "the", "of", "on", "in", "and", "or", "but" 和 "for" |
| getStat(ResourceLocation) | ~ | ~ | Stat<ResourceLocation> | 后续补充 |
| snakeCaseToTitleCase(string) | -> | 将蛇形命名转换为标题大小写 | 处理后的字符串 string | 如a_bc_def 转为 A Bc Def |
| newCountingMap() | - | 获取一个新的CountingMap | CountingMap | - |
| toTitleCase(string,bool) | -> | 设置会true后将上面除了的内容也会进行大写 | 理后的字符串 string | - |
| parseDouble(any,number) | -> | 将第一个参数转化为Double类型,如果失败了,则返回第二个数 | number | - |
| getRandom() | - | 获取Random类 | Random | - |
| newList() | - | 获取一个列表 | List<T> | - |
| rollChestLoot(ResourceLocation) | 战利品表id | 获取指定战利品表里的战利品数组 | List<ItemStack> | - |
| newRandom(number) | -> | 用一个数字当作种子生成一个Random类 | Random | - |
| getRegistryIds(ResourceLocation) | -> | 获取指定注册表里的的所有id | List<ResourceLocation> | - |
| emptyList() | - | 获取一个不可变的空列表? | List<T> | - |
| getSystemTime() | - | 获取当前系统时间,以毫秒为单位 | number | - |
| supplyAsync(Supplier<any>) | ~ | ~ | CompletableFuture<any> | 后续补充 |
| id(string,string) | -> | 将字符串转为ResourceLocation | ResourceLocation | - |
| lazy(Supplier<T>) | ~ | ~ | Lazy<T> | ? |
| isWrapped(any) | -> | 判断传入对象是否为WrappedJS | boolean | - |
| snakeCaseToCamelCase(string) | -> | 将蛇形命名转化为驼峰命名 | 处理后的字符串 string | 如 a_bc_def 转为 aBcDef |
| findCreativeTab(ResourceLocation) | id | 获取该id的所在创造物品栏 | CreativeModeTab | - |
| emptyMap() | - | 获取一个空的不可变的map? | Map<K, V> | - |
| expiringLazy(Supplier<T>,number) | ~ | ~ | Lazy<T> | 后续补充 |
| getSound(ResourceLocation) | id | 从id中获取SoundEvent | SoundEvent | - |
| randomOf(Random,Collection<any>) | ~ | 使用传入的参数从列表中获取随机对象? | any | ? |
| newMap() | - | 获取一个map | Map<any, any> | - |
| getRegistry(ResourceLocation) | id | 通过id获取对应的注册信息 | RegistryInfo<any> | - |
| particleOptions(any) | ~ | ~ | ParticleOptions | - |
| copy(any) | -> | 复制一份传入的对象,如果不可以则返回本身 | any | - |
| regex(string,number) | string pattern / number flags | ~ | Pattern | - |
| id(string) | -> | 将字符串直接包装成ResourceLocation | ResourceLocation | - |
| regex(any) | -> | ~ | Pattern | - |
| runAsync(Runnable) | -> | ~ | CompletableFuture<void> | - |
| parseBlockState(any) | -> | 从输入内容中解析方块状态可能会抛出无效输入 | BlockState | - |
| queueIO(Runnable) | -> | 立即在try-catch块中运行传递的可运行函数,并在它抛出异常时记录异常? | void | - |
| parseInt(any,number) | -> | 将第一个参数转化为整数,如果失败则返回第二个参数 | number | - |
| getServer() | - | 获取游戏服务端,如果是在没有服务器的地方调用则为null(startup和client) | MinecraftServer | - |
| rollChestLoot(ResourceLocation,Entity) | 战利品表id,触发实体 | 用指定实体生成一个战利品表物品列表 | List<ItemStack> | 不一定是箱子 |
JsonIO
| 方法 | 方法参数 | 方法作用 | 方法返回参数 | 备注 |
|---|---|---|---|---|
| readJson(path) | 路径字符串 | 读取指定路径的文件 | JsonElement | 文件必须为json |
| toPrettyString(JsonElement) | -> | 将json转化为字符串 | string | - |
| getJsonHashString(JsonElement) | -> | 获取json的hash值 | string | - |
| toObject(JsonElement) | -> | 将json转化为对象??? | any | 后续测试 |
| primitiveOf(any) | ? | ? | JsonPrimitive | 后续测试 |
| readString(path) | 路径 | 读取指定路径的文件 | string | 读取为string格式 |
| writeJsonHash(DataOutputStream,JsonElement) | ? | ~ | void | 后续测试 |
| parseRaw(string) | ? | ? | JsonElement | 后续测试 |
| write(path,JsonObject) | -> | 将json对象写入到指定路径的文件里 | void | 一定要是json对象,不能是数组 |
| read(path) | -> | 读取指定路径的文件 | Map<any,any> | 建议使用readJson |
| toArray(JsonElement) | -> | 将JsonElement转为JsonArray | JsonArray | - |
| parse(string) | -> | ? | any | 后续测试 |
| toPrimitive(JsonElement) | -> | ? | any | 后续测试 |
| copy(JsonElement) | -> | 复制一份JsonElement | JsonElement | - |
| toString(JsonElement) | -> | 将json转为字符串 | string | - |
| getJsonHashBytes(JsonElement) | -> | 将json转为hashByte | number[] | - |
| of(any) | ? | ? | JsonElement | - |
BlockPos
| 方法 | 方法参数 | 方法作用 | 方法返回参数 | 备注 |
|---|---|---|---|---|
| asLong(number,number,number) | 依次顺序为X,Y,Z坐标 | 通过坐标获取对应的数值 | number | - |
| betweenClosed(n1,n2,n3,n4,n5,n6) | 依次顺序为x1,y1,z1,x2,y2,z2 | 通过两个坐标获取该区域内的所有坐标 | Iterable<BlockPos> | - |
| betweenClosedStream(BlockPos,BlockPos) | - | 同上 | Stream<BlockPos> | - |
| breadthFirstTraversal(BlockPos,number,BiConsumer<BlockPos, Consumer<BlockPos>>,Predicate<BlockPos>) | 坐标,最大距离,-,回调用于处理每个遍历到的方块位置 | 按广度优先的顺序遍历周围的方块 | number | - |
| containing(Position) | -> | 根据Position返回BlockPos | BlockPos | - |
| findClosestMatch(BlockPos,number,number,Predicate<BlockPos>) | ~ | ~ | Optional<BlockPos> | - |
| getFlatIndex(number) | ~ | ~ | number | - |
| getX(number) | -> | 获取对应值 | number | - |
| getY(number) | -> | 获取对应值 | number | - |
| getZ(number) | -> | 获取对应值 | number | - |
| of(number) | 坐标数值(asLong获取的这种数字数值 | - | BlockPos | - |
| offset(number,number,number) | ~ | ~ | number | - |
| offset(number,Direction) | ~ | ~ | number | - |
| offsetCodec(number) | ~ | ~ | Codec<Vec3i> | - |
| randomBetweenClosed(RandomSource,n1,n2,n3,n4,n5,n6) | -> | 在一个区域内随机生成坐标 | Iterable<BlockPos> | - |
| randomInCube(RandomSource,number,BlockPos,number) | ? | 通过一个坐标中心点向外延申到指定距离的方块区域内生成坐标? | Iterable<BlockPos> | - |
| spiralAround(BlockPos,number,Direction,Direction) | ~ | 按照螺旋式路径遍历周围的方块位置 | Iterable<BlockPos$MutableBlockPos> | - |
| withinManhattan(BlockPos,number,number,number) | -> | 获取在曼哈顿距离范围内的所有坐标 | Iterable<BlockPos> | - |
| withinManhattanStream(BlockPos,number,number,number) | -> | 同上 | Stream<BlockPos> | - |
Block
Vec3d
KMath
| 方法 | 方法参数 | 方法作用 | 方法返回参数 | 备注 |
|---|---|---|---|---|
| block(n1,n2,n3) | -> | 根据xyz返回blockPos | BlockPos | - |
| deg(number) | ? | ? | number | - |
| v3d(n1,n2,n3) | -> | 根据xyz返回Vector3d | Vector3d | - |
| ceil(number) | ? | ? | number | - |
| map(n1,n2,n3,n4,n5) | value,min1,max1,min2,max2 | ? | number | ? |
| clamp(n1,n2.n3) | value,min,max | ? | number | ? |
| v4f(n1,n2,n3,n4) | -> | 根据xyz和w(猜测是宽度)返回Vec4f | Vec4f | - |
| rad(number) | ? | ? | number | - |
| degreesDifference(n1,n2) | current,target | ~ | number | 待测试 |
| floor(number) | -> | 向下取整 | number | - |
| poseStack() | - | -> | PoseStack | - |
| lerp(n1,n2,n3) | value,min,max | 线性插值,通过修改value的比例,返回特定的数值 | number | 举个栗子value=0.5,min=0,max=10,则会返回5 |
| clampedLerp(n1,n2,n3) | 同上 | 同上但是不会超值max的值 | number | 同上但是不会超出max |
| v3f(n1,n2,n3) | -> | 通过xyz返回Vec3f | Vec3f | - |
| rotateIfNecessary(n1,n2,n3) | current,target,max | ~ | number | - |
| m4f() | - | ` | Matrix4f | - |
| v3(n1,n2,n3) | -> | 通过xyz获取Vec3d | Vec3d | - |
| quaternion(n1,n2,n3,n4) | 根据xyz和w(猜测是宽度)返回Quaternionf | Quaternionf | - | |
| wrapDegrees(number) | -> | 处理角度 | number | - |
| m3f() | - | - | Matrix3f | - |
| approachDegrees(n1,n2,n3) | current,target,speed | ~ | number | - |
| approach(n1,n2,n3) | current,target,speed | ~ | number | - |
| isPowerOfTwo(number) | -> | 判断是否为 2 的幂次方 | bool | - |
| PI | - | - | 3.141592653589793 | - |
| RADIANS_TO_DEGREES | - | - | 57.29577951308232 | - |
| DEGREES_TO_RADIANS | - | - | 0.017453292519943295 | - |
| E | - | - | 2.718281828459045 | - |
RotationAxis
ResourceLocation
Items
SoundType
| 类型常量 | 对应方块/物品类型 |
|---|---|
| EMPTY | 空类型(无声音) |
| SAND | 沙子 |
| DECORATED_POT | 装饰性陶罐 |
| TUFF | 凝灰岩 |
| GRAVEL | gravel |
| SHROOMLIGHT | 菌光体 |
| MOSS | 苔藓 |
| SOUL_SOIL | 灵魂土 |
| WEEPING_VINES | 垂泪藤 |
| ANCIENT_DEBRIS | 远古残骸 |
| SCULK_SENSOR | 幽匿感测体 |
| POINTED_DRIPSTONE | 滴水石锥 |
| ROOTED_DIRT | 植根泥土 |
| FROGSPAWN | 青蛙卵 |
| NETHER_ORE | 下界矿石 |
| COPPER | 铜 |
| LANTERN | 灯笼 |
| BONE_BLOCK | 骨块 |
| FROGLIGHT | 蛙明灯 |
| SNOW | 雪 |
| SCULK_VEIN | 幽匿脉络 |
| CHERRY_WOOD | 樱花木 |
| POLISHED_DEEPSLATE | 抛光深板岩 |
| NYLIUM | 菌岩 |
| DEEPSLATE | 深板岩 |
| SPORE_BLOSSOM | 孢子花 |
| BASALT | 玄武岩 |
| CHERRY_WOOD_HANGING_SIGN | 樱花木悬挂牌 |
| SMALL_AMETHYST_BUD | 小型紫水晶芽 |
| CANDLE | 蜡烛 |
| FLOWERING_AZALEA | 开花杜鹃 |
| ANVIL | 铁砧 |
| SCAFFOLDING | 脚手架 |
| DEEPSLATE_BRICKS | 深板岩砖 |
| CORAL_BLOCK | 珊瑚块 |
| BAMBOO_SAPLING | 竹子幼苗 |
| LILY_PAD | 睡莲 |
| MOSS_CARPET | 苔藓地毯 |
| LADDER | 梯子 |
| LARGE_AMETHYST_BUD | 大型紫水晶芽 |
| GLOW_LICHEN | 发光地衣 |
| CROP | 农作物 |
| PINK_PETALS | 粉色花瓣 |
| AZALEA_LEAVES | 杜鹃树叶 |
| POWDER_SNOW | 细雪 |
| METAL | 金属 |
| HONEY_BLOCK | 蜂蜜块 |
| NETHER_BRICKS | 下界砖块 |
| SUSPICIOUS_SAND | 可疑的沙子 |
| GILDED_BLACKSTONE | 镶金黑石 |
| HARD_CROP | 坚硬农作物 |
| SCULK_CATALYST | 幽匿催化体 |
| DEEPSLATE_TILES | 深板岩瓦 |
| PACKED_MUD | 压实泥土 |
| SCULK | 幽匿块 |
| VINE | 藤蔓 |
| BAMBOO | 竹子 |
| GLASS | 玻璃 |
| DRIPSTONE_BLOCK | 滴水石块 |
| CHERRY_SAPLING | 樱花树苗 |
| CALCITE | 方解石 |
| MUD_BRICKS | 泥砖 |
| STEM | 茎(如蘑菇茎) |
| BAMBOO_WOOD | 竹材 |
| SOUL_SAND | 灵魂沙 |
| MUD | 泥土 |
| BIG_DRIPLEAF | 大型滴水叶 |
| BAMBOO_WOOD_HANGING_SIGN | 竹材悬挂牌 |
| TWISTING_VINES | 扭曲藤 |
| NETHERRACK | 下界岩 |
| AMETHYST_CLUSTER | 紫水晶簇 |
| SLIME_BLOCK | 史莱姆块 |
| SCULK_SHRIEKER | 幽匿尖啸体 |
| CHAIN | 链条 |
| WOOD | 木材 |
| AZALEA | 杜鹃花 |
| MANGROVE_ROOTS | 红树根 |
| CHISELED_BOOKSHELF | 雕花书架 |
| NETHER_GOLD_ORE | 下界金矿 |
| CHERRY_LEAVES | 樱花树叶 |
| AMETHYST | 紫水晶 |
| DECORATED_POT_CRACKED | 破损的装饰性陶罐 |
| CAVE_VINES | 洞穴藤 |
| SUSPICIOUS_GRAVEL | 可疑的 gravel |
| LODESTONE | 磁石 |
| FUNGUS | 真菌 |
| SMALL_DRIPLEAF | 小型滴水叶 |
| HANGING_ROOTS | 悬挂的根 |
| SWEET_BERRY_BUSH | 甜浆果丛 |
| NETHER_WOOD | 下界木材 |
| NETHER_WART | 下界 wart |
| STONE | 石头 |
| NETHER_WOOD_HANGING_SIGN | 下界木材悬挂牌 |
| HANGING_SIGN | 悬挂牌 |
| WET_GRASS | 湿润的草 |
| NETHERITE_BLOCK | Netherite块 |
| MEDIUM_AMETHYST_BUD | 中型紫水晶芽 |
| MUDDY_MANGROVE_ROOTS | 泥泞的红树根 |
| WOOL | 羊毛 |
| ROOTS | 根部 |
| WART_BLOCK | Wart块 |
| NETHER_SPROUTS | 下界苗 |
Stats
使用方法简单示例1:
Utils.server.getPlayer("gu__meng").getStats().get(Stats.BLOCK_MINED.get(Block.getBlock("stone")))
使用方法简单示例2:
Utils.server.getPlayer("gu__meng").getStats().get(Stats.SWIM_ONE_CM)
| 状态常量 | 描述 | 备注 |
|---|---|---|
| SWIM_ONE_CM | 游泳的总距离 | - |
| FLY_ONE_CM | 飞行的总距离 | - |
| WALK_ONE_CM | 步行的总距离 | - |
| CLIMB_ONE_CM | 攀爬的总距离 | - |
| FALL_ONE_CM | 下落的总距离 | - |
| BOAT_ONE_CM | 乘船的总距离 | - |
| STRIDER_ONE_CM | 骑炽足兽的总距离 | - |
| HORSE_ONE_CM | 骑马的总距离 | - |
| PIG_ONE_CM | 骑猪的总距离 | - |
| MINECART_ONE_CM | 乘坐矿车的总距离 | - |
| WALK_ON_WATER_ONE_CM | 在水上行走的总距离 | - |
| WALK_UNDER_WATER_ONE_CM | 在水下行走的总距离 | - |
| SPRINT_ONE_CM | 奔跑的总距离 | - |
| CROUCH_ONE_CM | 蹲下移动的总距离 | - |
| AVIATE_ONE_CM | 滑翔(如用鞘翅)的总距离 | - |
| PLAYER_KILLS | 杀死玩家的数量 | - |
| MOB_KILLS | 杀死生物的数量 | - |
| DEATHS | 死亡次数 | - |
| DAMAGE_DEALT | 造成的总伤害 | - |
| DAMAGE_DEALT_RESISTED | 对有抗性的目标造成的伤害 | - |
| DAMAGE_DEALT_ABSORBED | 被目标吸收的伤害 | - |
| DAMAGE_TAKEN | 受到的总伤害 | - |
| DAMAGE_RESISTED | 抵抗的伤害(如通过盔甲) | - |
| DAMAGE_ABSORBED | 吸收的伤害(如通过吸收效果) | - |
| DAMAGE_BLOCKED_BY_SHIELD | 用盾牌格挡的伤害 | - |
| ENTITY_KILLED | 杀死的实体类型 | 需要get(实体类型) |
| ENTITY_KILLED_BY | 被哪些实体杀死 | 需要get(实体类型) |
| ITEM_PICKED_UP | 捡起的物品 | 需要get(物品) |
| ITEM_DROPPED | 丢弃的物品 | 需要get(物品) |
| ITEM_USED | 使用的物品 | 需要get(物品) |
| ITEM_BROKEN | 损坏的物品 | 需要get(物品) |
| ITEM_CRAFTED | 合成的物品 | 需要get(物品) |
| BLOCK_MINED | 挖掘的方块 | 需要get(方块) |
| POT_FLOWER | 种植的花数量 | - |
| EAT_CAKE_SLICE | 吃掉的蛋糕片数量 | - |
| OPEN_CHEST | 打开箱子的次数 | - |
| OPEN_ENDERCHEST | 打开末影箱的次数 | - |
| OPEN_SHULKER_BOX | 打开潜影盒的次数 | - |
| OPEN_BARREL | 打开木桶的次数 | - |
| TRIGGER_TRAPPED_CHEST | 触发陷阱箱的次数 | - |
| INSPECT_DISPENSER | 查看发射器的次数 | - |
| INSPECT_DROPPER | 查看投掷器的次数 | - |
| INSPECT_HOPPER | 查看漏斗的次数 | - |
| INTERACT_WITH_CRAFTING_TABLE | 使用工作台的次数 | - |
| INTERACT_WITH_FURNACE | 使用熔炉的次数 | - |
| INTERACT_WITH_BLAST_FURNACE | 使用高炉的次数 | - |
| INTERACT_WITH_SMOKER | 使用烟熏炉的次数 | - |
| INTERACT_WITH_BREWINGSTAND | 使用酿造台的次数 | - |
| INTERACT_WITH_ANVIL | 使用铁砧的次数 | - |
| INTERACT_WITH_GRINDSTONE | 使用砂轮的次数 | - |
| INTERACT_WITH_STONECUTTER | 使用切石机的次数 | - |
| INTERACT_WITH_LOOM | 使用织布机的次数 | - |
| INTERACT_WITH_CARTOGRAPHY_TABLE | 使用制图台的次数 | - |
| INTERACT_WITH_SMITHING_TABLE | 使用锻造台的次数 | - |
| INTERACT_WITH_LECTERN | 使用讲台的次数 | - |
| INTERACT_WITH_BEACON | 使用信标的次数 | - |
| ENCHANT_ITEM | 附魔物品的次数 | - |
| TOTAL_WORLD_TIME | 游戏世界总时间 | - |
| PLAY_TIME | 玩家游戏时长 | - |
| TIME_SINCE_REST | 上次睡觉至今的时间 | - |
| TIME_SINCE_DEATH | 上次死亡至今的时间 | - |
| LEAVE_GAME | 退出游戏的次数 | - |
| SLEEP_IN_BED | 在床上睡觉的次数 | - |
| JUMP | 跳跃次数 | - |
| CROUCH_TIME | 蹲下的总时间 | - |
| BELL_RING | 敲响铃铛的次数 | - |
| INTERACT_WITH_CAMPFIRE | 与营火交互的次数 | - |
| FISH_CAUGHT | 钓到鱼的数量 | - |
| USE_CAULDRON | 使用炼药锅的次数 | - |
| FILL_CAULDRON | 装满炼药锅的次数 | - |
| PLAY_NOTEBLOCK | 播放音符盒的次数 | - |
| TUNE_NOTEBLOCK | 调谐音符盒的次数 | - |
| PLAY_RECORD | 播放唱片的次数 | - |
| TARGET_HIT | 击中目标的次数 | - |
| CLEAN_SHULKER_BOX | 清理潜影盒的次数 | - |
| CLEAN_ARMOR | 清理盔甲的次数 | - |
| CLEAN_BANNER | 清理旗帜的次数 | - |
| DROP | 丢弃物品的总次数 | - |