5e35b1
KubeJS —— 使用JS脚本来修改配方,Loot Table等
|支持的版本及API
使用的API 支持的游戏版本 Fabric 1.16.5 Forge 1.16.5、1.15.2、1.14.4
|简要介绍
这个mod能干什么?
你将能够在KubeJS的帮助下,用JavaScript脚本来编辑或新建配方、实体、标签、物品、方块、流体、世界生成、监听聊天信息、方块放置等许多功能。
详细内容介绍、可修改内容、脚本举例详见下文。
对其他mod的兼容性?
如果该mod使用的是数据包来添加配方,在默认情况下就已经兼容。
部分较复杂的mod需要安装add-on,详见下文。
相关链接
官方Discord:如果你遇到了任何问题,可以从这里来寻求帮助
Github:代码开源地址,许可为GNU
Wiki:官方wiki地址
下载地址
mod主体:
KubeJS(Forge) (镜像下载) |KubeJS(Fabric) (镜像下载)
mod拓展:
KubeJS UI界面拓展(Forge) (镜像下载)|KubeJS UI界面拓展(Fabric) (镜像下载)|KubeJS 血魔法 拓展 (镜像下载)
KubeJS 机械动力 拓展 (镜像下载)|KubeJS 通用机械 拓展 (镜像下载)|KubeJS 热力膨胀 拓展 (镜像下载)
KubeJS 沉浸工程 拓展 (镜像下载)|KubeJS Twitch 拓展 (镜像下载)
|官方Wiki(WIP)翻译
(这东西是不是该发到隔壁板块去)
作者注:该wiki非常不完善,如果你想提出建议,可以前往他们的discord。
注:本部分正在翻译中...7月前肯定会完成的(大概)
|1、如何阅读变量和函数
格式 示例 介绍 variableName
变量名 var x = event.variableName
event.variableName = 10 一个简单的变量,可以被读写 functionName()
函数名() event.functionName()
event.函数名() 没有参数的函数,可以被调用 functionName(int x, String y)
函数名(整形 x, 字符串 y) event.函数名(10, 'abc') 带参数并且指定了参数类型的函数,
虽然JS不区分数据类型... variableName var x = event.variableName 只能被读取不能被修改的变量 variableName event.variableName = 10 只能被修改不能被读取的变量
|2、事件 2-1: 所有事件列表
ID 是否可被取消 类型 是否支持Fabric版本 init ❌ Startup ✅ postinit ❌ Startup ✅ loaded ❌ Startup ✅ command.registry ❌ Server Startup ✅ command.run ✅ Server ✅ client.init ❌ Client Startup ✅ client.debug_info.left ❌ Client ✅ client.debug_info.right ❌ Client ✅ client.logged_in ❌ Client ✅ client.logged_out ❌ Client ✅ client.tick ❌ Client ✅ server.load ❌ Server Startup ✅ server.unload ❌ Server ✅server.tick❌Server ✅ server.datapack.first ❌ Server Startup ✅ server.datapack.last ❌ Server Startup ✅ recipes ❌Server Startup
✅ world.load ❌Server ✅ world.unload ❌Server ✅ world.tick ❌Server ✅ world.explosion.pre ✅Server ✅ world.explosion.post ❌Server ✅ player.logged_in ❌Server ✅player.logged_out❌Server
✅ player.tick❌Server
✅ player.data_from_server.✅Client✅ player.data_from_client.✅
Server
✅ player.chat✅
Server
✅
player.advancement❌Server
✅
player.inventory.opened❌Server
✅
player.inventory.closed❌Server
✅
player.inventory.changed❌Server
✅
player.chest.opened❌Server
✅
player.chest.closed❌Server✅
entity.death✅Server✅
entity.attack✅
Server✅
entity.drops✅
Server❌ entity.check_spawn✅
Server❌ entity.spawned✅
Server✅
block.registry❌Startup✅
block.missing_mappings❌Server Startup❌ block.tags❌Server Startup
✅
block.right_click✅
Server
✅ block.left_click✅
Server✅
block.place✅
Server✅
block.break✅
Server✅
block.drops✅
Server❌ item.registry✅
Startup
✅
item.missing_mappings❌Server Startup❌ item.tags✅
Server Startup✅
item.right_click
❌Server
✅
item.right_click_empty❌Server✅
item.left_click❌Server✅
item.entity_interact✅
Server✅
item.pickup✅
Server ✅
item.tooltip❌Client✅
item.toss✅Server✅
item.crafted❌Server✅
item.smelted❌Server✅
fluid.tags❌Server Startup✅
entity_type.tags❌Server✅
worldgen.add❌Startup✅
worldgen.remove❌ Startup✅
2-2: TagEventJS(item.tags、fluid.tags、entity_type.tags、block.tags)
2-2-1变量和函数
名称 类型 信息 type String Tag的种类 get(String tag) TagWrapper 返回指定的Tag容器,之后你就可以 add(String tag, String[]/Regex ids)
add(Tag名称, 物品名称/正则表达式)
TagWrapperevent.get(tag).add(ids)的缩写。
可以将一个对象添加到这个Tag中, 如
果第二个参数是以#开头的Tag, 它会将
后一个Tag的内容全部添加到前一个中 remove(String tag, String[]/Regex ids)
remove(Tag名称, 物品名称/正则表达式)
TagWrapperevent.get(tag).remove(ids)的缩写。
可以将一个对象从这个Tag中移除,其他
的内容和add()相同 removeAll(String tag)
removeAll(Tag名称)
TagWrapper将所有内容从这个tag中移除 2-2-2 例子(放于.minecraft\kubejs\server_scripts目录下)论坛代码模块天天吃代码...
你可以在本文末尾下载该代码
2-3:RecipeEventJS(修改配方用)
(放于.minecraft\kubejs\server_scripts目录下)
时间仓促,若有问题请在评论区指出,谢谢~