diff --git a/.vscode/settings.json b/.vscode/settings.json index 2182aa2..4b9c9e4 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -10,7 +10,7 @@ "logFine": "execute if score fz.logger.level fz.variable.integer matches ..300 run tellraw @a [{\"nbt\": \"fz.level.fine\", \"interpret\": true, \"storage\": \"fz:logger\"}, {\"text\": \"${log_fine}\"}", "logDebug": "execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{\"nbt\": \"fz.level.debug\", \"interpret\": true, \"storage\": \"fz:logger\"}, {\"text\": \"${1:log_debug}\"}]", "logInfo": "execute if score fz.logger.level fz.variable.integer matches ..500 run tellraw @a [{\"nbt\": \"fz.level.info\", \"interpret\": true, \"storage\": \"fz:logger\"}, {\"text\": \"${1:log_info}\"}]", - "logAlert": "execute if score fz.logger.level fz.variable.integer matches ..600 run tellraw @a [{\"nbt\": \"fz.level.warn\", \"interpret\": true, \"storage\": \"fz:logger\"}, {\"text\": \"${1:log_alert}\"}]", + "logAlert": "execute if score fz.logger.level fz.variable.integer matches ..600 run tellraw @a [{\"nbt\": \"fz.level.alert\", \"interpret\": true, \"storage\": \"fz:logger\"}, {\"text\": \"${1:log_alert}\"}]", "logError": "execute if score fz.logger.level fz.variable.integer matches ..800 run tellraw @a [{\"nbt\": \"fz.level.error\", \"interpret\": true, \"storage\": \"fz:logger\"}, {\"text\": \"${1:log_error}\"}]", } } \ No newline at end of file diff --git a/DEVDOC.md b/DEVDOC.md index 6e6bc9c..994fa1b 100644 --- a/DEVDOC.md +++ b/DEVDOC.md @@ -1,6 +1,58 @@ 1. 主要逻辑和模块逻辑分离 -0. 细化版本管理,提供不同版本之间的升级函数,由`update_manager`控制。*务必仔细测试再发布,一旦升级无法降级!* -0. 反馈、警告、报错、调试等由`logger`控制。 -0. 函数由两个以上的函数调用,或由不同包下的函数调用,或需要作为接口开放给下游数据包时,应改用标签调用! +2. 细化版本管理,提供不同版本之间的升级函数,由`update_manager`控制。*务必仔细测试再发布,一旦升级无法降级!* +3. 函数由两个以上的函数调用,或由不同包下的函数调用,或需要作为接口开放给下游数据包时,应改用标签调用! -### 如果需要修改计分板颜色 \ No newline at end of file + +## 系统模块 + +### 频繁使用的计算单元 +- 位于`tags/functions/calculation`目录下的标签通常被用来进行简单重复的计算任务 + +### 事件 +- 通常由**进度**触发,触发后调用同名的事件标签 +- 将需要调用的函数填入`tags/functions/event/<事件名称>`标签即可 + +### 日志 +- 仓库中提供了日志相关的代码片段,位于`.vscode/settings.json` +- 暂时没有找到方法在控制台记录日志 + +#### 详细 Fine +- 等级:300 +- 使用方法:`execute if score fz.logger.level fz.variable.integer matches ..300 run tellraw @a [{"nbt": "fz.level.fine", "interpret": true, "storage": "fz:logger"}, {"text": "${你的日志}"}` + +#### 调试 Debug +- 等级:400 +- 使用方法:`execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{"nbt": "fz.level.debug", "interpret": true, "storage": "fz:logger"}, {"text": "${你的日志}"}` + +#### 信息 Info +- 等级:500 +- 使用方法:`execute if score fz.logger.level fz.variable.integer matches ..500 run tellraw @a [{"nbt": "fz.level.info", "interpret": true, "storage": "fz:logger"}, {"text": "${你的日志}"}` + +#### 提醒 Alert +- 等级:600 +- 使用方法:`execute if score fz.logger.level fz.variable.integer matches ..600 run tellraw @a [{"nbt": "fz.level.alert", "interpret": true, "storage": "fz:logger"}, {"text": "${你的日志}"}` + +#### 意外 Exception +###### 暂不提供 + +#### 错误 Error +- 等级:800 +- 使用方法:`execute if score fz.logger.level fz.variable.integer matches ..800 run tellraw @a [{"nbt": "fz.level.error", "interpret": true, "storage": "fz:logger"}, {"text": "${你的日志}"}` + + +## 功能模块 + +### 配置 +- 标签`tags/functions/module/config/timeout`:注册超时时的操作 +- 标签`tags/functions/module/config/reset_trigger`:用于重置玩家`@s`的触发器计分板 + +#### 按钮操作 +1. 定义一个显示按钮时执行的函数,使用形如`tellraw @s {"text": "[按钮]", "clickEvent": {"action": "run_command", "value": "/trigger fz.module.config.trigger set <触发器分数>"}}`的指令定义按钮。**大多数情况下这里的触发器分数必须是独一无二的** +2. 在`tags/functions/module/config/display`标签中注册 +3. 定义一个点击按钮时执行的函数,使用形如`execute if score @s fz.module.config.trigger matches .. run ...`的指令判断玩家的触发器分数,并执行你的操作 +4. 在`tags/functions/module/config/on_click`标签中注册上述函数 + +### 计分板 +#### 自定义计分板颜色 +#### 自定义计分板名称 +#### 扩展自己的计分板 diff --git a/data/fz/functions/module/config/loop.mcfunction b/data/fz/functions/module/config/loop.mcfunction index d6fdaf0..a39b753 100644 --- a/data/fz/functions/module/config/loop.mcfunction +++ b/data/fz/functions/module/config/loop.mcfunction @@ -2,5 +2,6 @@ ## 如果分数大于0说明玩家点击了按钮 execute as @a if score @s fz.module.config.trigger matches 1.. run function #fz:module/config/on_click +execute as @a if score @s fz.module.config.trigger matches 1.. run function #fz:module/config/reset_trigger -schedule function fz:module/config/loop 1t replace \ No newline at end of file +schedule function fz:module/config/loop 1t replace diff --git a/data/fz/functions/module/config/on_click.mcfunction b/data/fz/functions/module/config/on_click.mcfunction index 70e3390..4572cd7 100644 --- a/data/fz/functions/module/config/on_click.mcfunction +++ b/data/fz/functions/module/config/on_click.mcfunction @@ -6,8 +6,5 @@ execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @ execute if score @s fz.module.config.trigger matches 1000..1999 run function #fz:module/scoreboard/config/on_click -## 重置玩家的触发器分数 -function #fz:module/config/reset_trigger - ## 重新显示一次按钮 -function #fz:module/config/display \ No newline at end of file +function #fz:module/config/display