Compare commits

..

11 Commits

Author SHA1 Message Date
延皓 96e6882b65 2.2.0 2022-06-10 15:39:36 +08:00
延皓 3ddb09fd9a 2.2.0 2022-06-10 15:39:06 +08:00
延皓 6edaf56760 2.2.0 2022-06-10 15:38:16 +08:00
延皓 57ede60186 fix #I5BP3U 2022-06-10 15:25:14 +08:00
延皓 80633006d5 update LICENSE. 2022-05-29 16:12:29 +00:00
shenjack 1a6995573f 加了计分板加载完成提示 2022-05-11 13:50:04 +00:00
shenjack 7500264600 更新一下census 2022-05-11 12:13:29 +00:00
延皓 4befe7ba98 update README.md. 2021-11-23 03:14:17 +00:00
延皓 8d8aff29f7 update README.md. 2021-11-19 13:12:53 +00:00
延皓 192bc00801 update README.md. 2021-11-19 13:11:19 +00:00
延皓 776c28eb99 update README.md. 2021-11-17 03:34:12 +00:00
640 changed files with 3703 additions and 4743 deletions
-20
View File
@@ -1,20 +0,0 @@
{
"datapack.snippets": {
"executeIfScoreSet": "execute if score ${1:score_holder} ${2:objective} = ${1:score_holder} ${2:objective} $0",
"scoreboardPlayersOperation": "scoreboard players operation ${1:target_score_holder} ${2:target_objective} ${3|+=,-=,*=,/=,%=,=,>,<,<>|} ${4:source_score_holder} ${5:source_objective}",
"scoreboardPlayersSet": "scoreboard players set ${1:score_holder} ${2:objective} ${3:0}",
"scoreboardAddObjective": "scoreboard objectives add ${1:objective} ${2:dummy}",
"tagAdd": "tag ${1:target} add ${2:tag}",
"tagRemove": "tag ${1:target} remove ${2:tag}",
"dataModifyStorageFromSelf": "data modify storage ${1:id} ${2:path} set from entity @s ${3:path}",
"summonAec": "summon minecraft:area_effect_cloud ~ ~ ~ {Age: -2147483648, Duration: -1, WaitTime: -2147483648, Tags: [\"${1:tag}\"]}",
"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.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}\"}]",
"TEXT": "{\"text\": \"${1:TEXT}\", \"color\": \"${2:COLOR}\"}",
"storageText": "{\"nbt\": \"${1:NBT}\", \"interpret\": true, \"storage\": \"${2:A namespaced ID}\"}",
"ifInstalled": "execute if data storage fz:installed fz.module{${1:module_name}:1b} run ${tellraw}"
}
}
+147
View File
@@ -0,0 +1,147 @@
# 更新记录
>所有可查阅的更改记录皆可在此处找到
### v2.2.0
- 仅支持Minecraft1.19+1.16请用2.0.x1.17-1.18请用2.1.x
- 修复[#I5BP3U](https://gitee.com/harvey-husky/FZ-sDatapack/issues/I5BP3U)
### v2.2 pre1
- `census`地毯脚本更新至1.3.1版本
- 修复一些显示bug
- 现在基本可以正常使用**仍然不能保证稳定性(数据安全性)**
- 添加了可以用来*迁移*数据的Python脚本 `score_move`
- 使用时与`server`文件夹同级
- `score_move.py`
- `server`
- `server.jar`
- ······
- ······
- ······
- 更改了文件结构,将地毯脚本移动到`脚本`文件夹中
- 可能会有release
- 以后准备要重写整个Datapack了
- 3.0!
### v2.1.3 pre1
- 添加`census`地毯脚本
- `census`脚本**不稳定**,请谨慎使用,本版本无release
- 在 readme 里添加了一些badge
### v2.1.2 & 2.0.10
- 添加鞘翅滑翔距离榜单 [#I40PFS](https://gitee.com/harvey-husky/FZ-sDatapack/issues/I40PFS)
## v2.1.0
- 仅支持 **Minecraft 1.17 +**
- 修复使用部分工具和方块交互时挖掘榜会减分的 BUG
- 为榜单恢复插件新增新版本的新方块
## v2.0.8
- 修复在末地使用 `/here` 时,世界名称显示为世界 ID 的 BUG
- 修复 `tagplayer` 可以随意传送玩家的 BUG
- 修复记分板轮播时不显示击杀榜的 BUG
- 修复没有破基岩榜时依然会轮播破基岩榜的 BUG
-`/tagplayer tp` 指令添加了配置文件
## v2.0.3
- 修复在不添加 `tagplayer` 工具时记分板不加分的 BUG
## v2.0.2
- 修复在使用 Carpet 1.4.22及以上版本时,`tagplayer` 的玩家名错乱的 BUG
## v2.0.1.8
- 修复使用金斧头挖掘会导致总量 +2 的 BUG
- 修复使用金锄头挖掘不会给挖掘榜加分
- 修复主手有铲子,斧头,锄头时,副手放置方块会导致挖掘榜 -1 的 BUG (原版 BUG,通过 toolsfix2 成就修复) [#I2DJDC](https://gitee.com/harvey-husky/FZ-sDatapack/issues/I2DJDC)
## v2.0.1.7
- 修复有时设置界面打不开的 BUG
- 修复交易榜只加一次分的 BUG..
- 修复 `tagplayer` 中的事件多次触发的 BUG
## v2.0.1.6
- `tagplayer` 现在可以通过自定义文件名来自定义游戏内命令
- 修复铁制工具依然不统计记分板的 BUG...
## v2.0.1.3
- 修复部分铁质工具不统计挖掘榜的 BUG
## v2.0.1.1
- 为设置界面的计分板添加悬浮文本
- 无需配置即可支持该铁头功破基岩榜 Mod:[FZ-BBL](https://gitee.com/harvey-husky/FZ-BBL/releases)
- 破基岩榜的分数和订阅设置会在铁头功记分板的总分大于 `0` 时显示,以免未添加该 Mod 的服务器显示破基岩榜
## v2.0.0.11
- `/tagplayer spawn xxx`后面现在可以追加`at``facing``in`参数
## v2.0.0.10
- 扫地机添加了位于怪物血条栏的文字提示,同时添加了各种提示的开关功能
## v2.0.0.9
- 修复矿车白名单状态反了的 BUG
## v2.0.0.8
- 添加 `c.sc``s.sc``here.sc` 工具
## v2.0.0.7
- `tagplayer` 添加了新版 Carpet 新指令,可以为假人切换热键栏
- 现在 `tagplayer` 需要 Carpet **1.4.21** 及以上版本运行!
- 现在 `tagplayer` 可以给自己设置动作了
- 添加`/tagplayer shadow`指令将自己变为前缀为`挂机`的假人
## v2.0.0.6
- 修复 `restore_scores.sc` 工具不能恢复受伤害榜(抖M榜)的 BUG
## v2.0.0.5
- 修复挖掘榜部分工具不起作用的 BUG
- 添加 `restore_scores.sc` 工具便于恢复或从 `1.0` 版本升级记分板
## v2.0.0.4
- 添加彩色字体
## v2.0.0.3
- `tagplayer` 需要 Carpet **1.4.18** 及以上版本来运行
- 优化了 `tagplayer` 体验及修复若干 BUG
## v2.0.0.2
- 重写
-118
View File
@@ -1,118 +0,0 @@
# 开发文档
## 指引
- `函数`,指数据包`<命名空间>/functions`目录下的`.mcfunction`文件
- `标签`,指数据包`<命名空间>/tags`目录下的`.json`文件
- `覆盖标签并填入函数`时,`replace``true`
``` json
{
"replace": true,
"values": ...
}
```
- `向标签中注册函数`时,`replace`为`false`
``` json
{
"replace": false,
"values": ...
}
```
## 基本要求
- 接口逻辑和模块逻辑分离
- 函数由两个以上的函数调用,或由不同包下的函数调用,或需要作为接口开放给下游数据包时,应改用标签调用!
- 函数调用尽量不要使用`function`命令,应改在标签中按顺序调用!
## 未来计划
- 细化版本管理,提供不同版本之间的升级函数,由`update_manager`控制。*务必仔细测试再发布,一旦升级无法降级!*
- playerdata相关功能
## 系统模块
### 频繁使用的计算单元
- [`#fz:calculation/*`](data/fz/tags/functions/calculation/)标签通常被用来进行简单重复的计算任务
### 事件模块
- 通常由**进度**触发,触发后调用同名的事件标签
- 在[`#fz:game_event/(<...>/)on_<事件>`](data/fz/tags/functions/game_event/)标签中注册触发时需要调用的函数即可
### 日志模块
- 仓库中提供了日志相关的代码片段,位于[`.vscode/settings.json`](.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": "你的日志"}`
## 功能模块
### 配置模块
#### 按钮操作
1. 定义一个显示按钮时执行的函数,使用形如`tellraw @s {"text": "[按钮]", "clickEvent": {"action": "run_command", "value": "/trigger fz.module.config.trigger set <触发器分数>"}}`的指令定义按钮。
- 大多数情况下这里的触发器分数必须是独一无二的
- 建议使用`>10000`的随机数作为自定义按钮的触发器分数
2. 在[`#fz:module/config/display`](data/fz/tags/functions/module/config/display.json)标签中注册上述函数
3. 定义一个点击按钮时执行的函数,使用形如`execute if score @s fz.module.config.trigger matches <min>..<max> run ...`的指令判断玩家的触发器分数,并执行你的操作
4. 如需在点击后重新显示一遍配置页面,请在上述函数中调用一次[`#fz:module/config/display`](data/fz/tags/functions/module/config/display.json)标签,**请不要将此标签直接注册到[`#fz:module/config/on_click`](data/fz/tags/functions/module/config/on_click.json)标签中**
5. 在[`#fz:module/config/on_click`](data/fz/tags/functions/module/config/on_click.json)标签中注册上述函数
#### 其他接口
- 标签[`#fz:module/config/timeout`](data/fz/tags/functions/module/config/timeout.json):超时时的操作
- 标签[`#fz:module/config/reset_trigger`](data/fz/tags/functions/module/config/reset_trigger.json):重置玩家`@s`的触发器计分板
### 计分板模块
#### 自定义计分板颜色
- 数据包提供了所有计分板的全部16色命名函数
- 使用方法:**覆盖**[`#fz:module/scoreboard/display/set_text/<计分板名称>`](data/fz/tags/functions/module/scoreboard/display/set_text/)标签,填入[`fz:module/scoreboard/display/set_text/<计分板名称>/<颜色名称>`](data/fz/functions/module/scoreboard/display/set_text/)函数
#### 自定义计分板名称
1. 定义一个设置计分板颜色、文本的函数,格式可以参考[`fz:module/scoreboard/display/set_text/general/*`](data/fz/functions/module/scoreboard/display/set_text/general/)函数
2. **覆盖**[`#fz:module/scoreboard/display/set_text/<计分板名称>`](data/fz/tags/functions/module/scoreboard/display/set_text/)标签,填入上述函数
#### 扩展自己的计分板
1. 定义一个安装函数,参考[`fz:module/scoreboard/install`](data/fz/functions/module/scoreboard/install.mcfunction)函数
2. 在[`#fz:module/scoreboard/install`](data/fz/tags/functions/module/scoreboard/install.json)标签中注册该函数
3. 按照“自定义计分板颜色”和“自定义计分板名称”中的操作,定义你的计分板颜色和名称
4. 定义一个生成计分板运行时id的函数,参考[`fz:module/scoreboard/display/register_id`](data/fz/functions/module/scoreboard/display/register_id.mcfunction)函数
5. 在[`#fz:module/scoreboard/display/register_id`](data/fz/tags/functions/module/scoreboard/display/register_id.json)标签中注册该函数
6. 定义一个用来在轮播时显示你的计分板的函数,参考[`fz:module/scoreboard/display/carousel/set_display/*`](data/fz/functions/module/scoreboard/display/carousel/set_display/activation.mcfunction)函数
7. 定义一个用来判断在轮播时是否轮到你的计分板的函数,在判断后调用上一条中的函数,参考[`fz:module/scoreboard/display/carousel/try_display/*`](data/fz/functions/module/scoreboard/display/carousel/try_display/activation.mcfunction)函数
8. 将该函数注册到[`#fz:module/scoreboard/display/try_display`](data/fz/tags/functions/module/scoreboard/display/carousel/try_display.json)标签中
## 自定义模块
#### 注册安装、卸载、加载函数
- 在下列标签中注册你的安装、卸载、加载函数:
- [`#fz:system/install/module`](data/fz/tags/functions/system/install/module.json)
- [`#fz:system/uninstall/module`](data/fz/tags/functions/system/uninstall/module.json)
- [`#fz:system/load/module`](data/fz/tags/functions/system/load/module.json)
#### 注册设置页面
- 见[按钮操作](#按钮操作)
+21 -20
View File
@@ -1,20 +1,21 @@
MIT License
FZSD许可证
Copyright (c) 2019-2022 延皓
2022/7/20 https://gitee.com/harvey-husky/fz-survival-datapack/LICENSE
Permission is hereby granted, free of charge, to any person obtaining a copy
版权所有 © 2019-2022 延皓<https://gitee.com/harvey-husky><https://space.bilibili.com/677233356> of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
定义: to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
“该许可证”指FZSD许可证。 copies of the Software, and to permit persons to whom the Software is
“该软件”指许可在该许可证下的程序和相关文档的集合。 furnished to do so, subject to the following conditions:
“官方网址”指由版权所有者提供的该软件的发布网址。
The above copyright notice and this permission notice shall be included in all
您对该软件的复制、使用、修改及分发受如下条款的约束: copies or substantial portions of the Software.
1. 禁止添加、修改或删除该许可证的内容。
2. 禁止未经授权的转载、销售或二次发布该软件。 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
3. 禁止添加、修改或抹除该软件中的原作者署名。 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
4. 如果您从部署了该软件的Minecraft服务器中以任何方式获取了收益,则您必须在游戏中的明显位置明确告知用户您的Minecraft服务器使用了该软件,并附上官方网址。 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
5. 如果您修改了该软件中的任何内容,您必须将修改部分开源在主流开源平台(如gitee<https://gitee.com/>或github<https://github.com/>等)。 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
6. 如果您修改了该软件中的任何内容,您必须保留该许可证,但您可以追加其他许可证(不包括不支持附加条款的许可证)。当您添加的许可证中的条款与该许可证冲突时,必须以该许可证为准。 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
7. 该软件在提供时不带任何明示或默示的担保。在任何情况下,版权所有者不对任何人因使用该软件而引发的任何直接或间接损失承担任何责任。 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+150 -9
View File
@@ -1,9 +1,150 @@
# FZ datapack 3.0 版 # FZ-sDataPack
啊哈! 欢迎来到FZ数据包的3.0区域 一个Minecraft数据包
不过很抱歉,这里还在装修,得等一段时间,谢谢! [![mc版本](https://img.shields.io/badge/Minecraft-1.16+-blue.svg)](https://minecraft.net/)
[![carpet](https://img.shields.io/badge/fabric_carpet-1.4.24+-blue.svg)](https://github.com/gnembon/fabric-carpet/releases)
目前已有的东西:
#### @Author: Harvey_Husky
- `scripts`
#### 本项目开源许可证现更改为MIT许可证
#### Copyright (C) 2019-2022 Harvey_Husky
[Bilibili专栏](https://www.bilibili.com/read/cv4267319)(年久失修)
## 说明太长不想看·直接安装教程
- 1.需要 [Carpet](https://github.com/gnembon/fabric-carpet/releases) Mod **1.4.24** 或以上版本
- 2.**兼容性**
- `数据包 v2.2.x` 支持 `Minecraft 1.19+`
- `数据包 v2.1.x` 支持 `Minecraft 1.17.x-1.18.x`
- `数据包 v2.0.x` 支持 `Minecraft 1.16.3-1.16.5`
- 3.前往 [发行页面](https://gitee.com/harvey-husky/FZ-sDatapack/releases) 下载此数据包
- 4.从zip文件中挑选你需要的`.sc`文件
- 5.在`world`文件夹中创建`datapacks``scripts`两个文件夹
- 6.将主体`zip`文件放入 `world/datapacks` 中(在客户端位于 `.minecraft/saves/<存档名>/datapacks`
- 7.将挑选出来的`.sc`文件放到 `world/scripts` 中(在客户端位于 `.minecraft/saves/<存档名>/scripts`
- 8.在控制台输入`/reload`(客户端则是重新进入世界)
## 总览
[![release版本](https://img.shields.io/badge/发行版-2.2.0-blue.svg)](https://gitee.com/harvey-husky/FZ-sDatapack/releases/2.2.0)
![设置界面](./图片示例:设置界面.png)
- 抬头并按一下 `Shift` 来打开设置界面
- 提供玩家挖掘、死亡、击杀、受伤、交易、钓鱼、滑翔和(破基岩)的数据榜单
- 提供扫地机
- 无需配置即可支持该铁头功破基岩榜 Mod:[FZ-BBL](https://gitee.com/harvey-husky/FZ-BBL/releases)
- 破基岩榜的分数和订阅设置会在铁头功记分板的总分大于 0 时显示,以免未添加该 Mod 的服务器显示破基岩榜
- [B站链接](https://www.bilibili.com/read/cv9178207)
- 记分板对照表:
| Object Name | 内容 |
| - | - |
| activation | 活跃时间(h) |
| damageTaken | 受伤害榜 |
| deathCounter | 死亡榜 |
| digCounter | 挖掘榜 |
| fishingCounter | 钓鱼榜 |
| killCounter | 击杀榜 |
| tradingCounter | 交易榜 |
| totalList | 总 量 |
| bedrockBreaked | [破基岩榜](https://www.bilibili.com/video/BV1KJ411b73z) |
| fz.aviate1m | 滑翔距离 |
- 提供一些[地毯脚本](#地毯脚本)`.sc` 文件):***请在升级数据包的同时替换这些工具!!!***
- 还有一个用于`census`脚本转移数据的python脚本`score_move`
## 更新记录
更新记录可在[此处](./CHANGELOG.md)找到
## 使用
### 安装
- 需要 [Carpet](https://github.com/gnembon/fabric-carpet/releases) Mod **1.4.24** 或以上版本
- **兼容性**
- `v2.2.x` 支持 `Minecraft 1.19+`
- `v2.1.x` 支持 `Minecraft 1.17.x-1.18.x`
- `v2.0.x` 支持 `Minecraft 1.16.3-1.16.5`
- 前往 [发行页面](https://gitee.com/harvey-husky/FZ-sDatapack/releases) 下载此数据包
>请下载以 `FZ'sDatapack` 开头的 `.zip` 文件
- **将其放入 `world/datapacks` 中(在客户端位于 `.minecraft/saves/<存档名>/datapacks`**
- 载入数据包
- 如果是单人存档,请保存并退出,再打开存档
- 如果是服务器,可使用 `/reload` 指令或重启服务器以载入数据包
- 计分板的数据迁移
- 请使用 [restore_scores.sc](#restore_scoressc) 地毯脚本
## 地毯脚本
- **以下脚本皆在数据包(`.zip` 文件)中,请将其(`.sc` 文件)提取,并将其放入 `world/scripts` (在客户端位于 `.minecraft/saves/<存档名>/scripts` **
- 可使用 `/reload` 指令或重启服务器以载入脚本(或使用 Carpet Mod 的指令 `/script load <脚本名>` 载入)
### `here.sc`
- `/here` 向所有人发送自己的位置和所在维度
- 发送的消息使用 [VoxelMap](https://www.curseforge.com/minecraft/mc-mods/voxelmap) 可识别的数组格式
- 安装 [VoxelMap](https://www.curseforge.com/minecraft/mc-mods/voxelmap/files) Mod 后,左键高亮该坐标,`Ctrl+左键` 新建坐标点
### `c.sc`
- `/c` 修改玩家模式为旁观模式
### `s.sc`
- `/s` 修改玩家模式为生存模式
### `tagplayer.sc`
- 这个工具可以防止将地毯 Mod 生成的假人计入记分板
- 可以通过自定义文件名来自定义游戏内命令
- 配置文件:
- `allow_bot_tp`:用于控制是否允许传送假人
- `allow_spawning_whitelist_players`:用于控制是否允许生成白名单内的玩家
- 使用方法:
- 安装 [Carpet](https://github.com/gnembon/fabric-carpet/releases) Mod
- 输入`/script load tagplayer`加载工具
- 包含全部地毯假人自带的功能,如:
- `/tagplayer use xxx once`让假人xxx按一次使用键
- 包含新功能,如:
- `/tagplayer check xxx`:检查玩家的状态
- `/tagplayer checkall`:检查所有玩家的状态
- `/tagplayer killall`:清除所有假人
- 其他用法可以在游戏内输入 `/tagplayer` 查看
### `restore_scores.sc`
- 从数据包 `v1.4` 升级时也需要使用这个工具
- 这个工具可以从白名单读取玩家列表,逐一召唤假人,读取统计信息并赋值给记分板
- 如未开启白名单,请把 `usercache.json` 复制一份改成 `whitelist.json` 再进行操作
- ***注意:原有的记分板会被删除***
- 使用方法:
- 输入 `/script load restore_scores` 加载工具
- 输入 `/restore_scores by_whitelist` 开始数据迁移
- 输入 `/script unload restore_scores` 卸载工具
- 记得用完就删掉它!
### `Census.sc`
- `/census`
- 一个还在测试的脚本,可以输出挖掘榜
@@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"fz:logger/level/debug"
]
}
@@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"fz:logger/level/fine"
]
}
@@ -1,6 +0,0 @@
{
"replace": false,
"values": [
"fz:logger/level/info"
]
}
@@ -1,9 +0,0 @@
{
"replace": false,
"values": [
{
"id": "fz.admin:preset_carpet",
"required": true
}
]
}
@@ -1,28 +1,20 @@
{ {
"parent": "fz:game_event", "criteria": {
"criteria": { "config_check_sneak":{
"on_sneak": { "trigger": "minecraft:tick",
"trigger": "minecraft:tick", "conditions": {
"conditions": { "player": [
"player": [ {
{ "condition": "minecraft:entity_properties",
"condition": "minecraft:reference", "entity": "this",
"name": "fz:is_real_player" "predicate": {
}, "flags": {
{ "is_sneaking": true
"condition": "minecraft:entity_properties", }
"entity": "this", }
"predicate": { }
"flags": { ]
"is_sneaking": true }
} }
} }
}
]
}
}
},
"rewards": {
"function": "fz:game_event/advancement/on_sneak"
}
} }
@@ -1,34 +1,30 @@
{ {
"parent": "fz:game_event/on_sneak", "criteria": {
"criteria": { "config_check_sneak":{
"on_unsneak": { "trigger": "minecraft:tick",
"trigger": "minecraft:tick", "conditions": {
"conditions": { "player": [
"player": [ {
{ "condition": "minecraft:entity_properties",
"condition": "minecraft:reference", "entity": "this",
"name": "fz:is_real_player" "predicate": {
}, "type": "minecraft:player",
{ "type_specific": {
"condition": "minecraft:entity_properties", "type": "player",
"entity": "this", "advancements": {
"predicate": { "fz:config/sneak": true
"flags": { }
"is_sneaking": false },
}, "flags": {
"type_specific": { "is_sneaking": false
"type": "player", }
"advancements": { }
"fz:game_event/on_sneak": true }
} ]
} }
} }
} },
] "rewards": {
} "function": "fz:config/unsneak"
} }
},
"rewards": {
"function": "fz:game_event/advancement/on_unsneak"
}
} }
-7
View File
@@ -1,7 +0,0 @@
{
"criteria": {
"root":{
"trigger": "minecraft:impossible"
}
}
}
@@ -1,32 +0,0 @@
{
"parent": "fz:game_event",
"criteria": {
"on_entered_nether_portal": {
"trigger": "minecraft:changed_dimension",
"conditions": {
"player": [
{
"condition": "minecraft:reference",
"name": "fz:is_real_player"
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"location": {
"block": {
"blocks": [
"minecraft:nether_portal"
]
}
}
}
}
]
}
}
},
"rewards": {
"function": "fz:game_event/advancement/on_entered_nether_portal"
}
}
@@ -1,22 +0,0 @@
{
"parent": "fz:game_event",
"criteria": {
"on_fished": {
"trigger": "minecraft:fishing_rod_hooked",
"conditions": {
"player": [
{
"condition": "minecraft:reference",
"name": "fz:is_real_player"
}
],
"item": {
"tag": "fz:raw_fishes"
}
}
}
},
"rewards": {
"function": "fz:game_event/advancement/on_fished"
}
}
@@ -1,30 +0,0 @@
{
"parent": "fz:game_event",
"criteria": {
"on_hurt_entity_with_tools": {
"trigger": "minecraft:player_hurt_entity",
"conditions": {
"player": [
{
"condition": "minecraft:reference",
"name": "fz:is_real_player"
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"equipment": {
"mainhand": {
"tag": "fz:tools"
}
}
}
}
]
}
}
},
"rewards": {
"function": "fz:game_event/advancement/on_hurt_entity_with_tools"
}
}
@@ -1,34 +0,0 @@
{
"parent": "fz:game_event",
"criteria": {
"on_killed_mob_or_player": {
"trigger": "minecraft:player_killed_entity",
"conditions": {
"player": [
{
"condition": "minecraft:reference",
"name": "fz:is_real_player"
}
],
"entity": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"type": "#fz:ignore_on_player_killed_entity"
}
}
}
],
"killing_blow": {
"bypasses_invulnerability": false
}
}
}
},
"rewards": {
"function": "fz:game_event/advancement/on_killed_mob_or_player"
}
}
@@ -1,25 +0,0 @@
{
"parent": "fz:game_event",
"criteria": {
"on_piglin_trade": {
"trigger": "minecraft:thrown_item_picked_up_by_entity",
"conditions": {
"player": [
{
"condition": "minecraft:reference",
"name": "fz:is_real_player"
}
],
"entity": {
"type": "minecraft:piglin",
"flags": {
"is_baby": false
}
}
}
}
},
"rewards": {
"function": "fz:game_event/advancement/on_piglin_trade"
}
}
@@ -1,19 +0,0 @@
{
"parent": "fz:game_event",
"criteria": {
"on_placed_block": {
"trigger": "minecraft:placed_block",
"conditions": {
"player": [
{
"condition": "minecraft:reference",
"name": "fz:is_real_player"
}
]
}
}
},
"rewards": {
"function": "fz:game_event/advancement/on_placed_block"
}
}
@@ -1,25 +0,0 @@
{
"parent": "fz:game_event",
"criteria": {
"on_shears_used_on_entity": {
"trigger": "minecraft:player_interacted_with_entity",
"conditions": {
"player": [
{
"condition": "minecraft:reference",
"name": "fz:is_real_player"
}
],
"entity": {
"type": "#fz:shearable"
},
"item": {
"tag": "fz:tool/shears"
}
}
}
},
"rewards": {
"function": "fz:game_event/advancement/on_shears_used_on_entity"
}
}
@@ -1,23 +0,0 @@
{
"parent": "fz:game_event",
"criteria": {
"on_tools_used_on_block": {
"__comment": "斧子剥树皮会触发两次!",
"trigger": "minecraft:item_used_on_block",
"conditions": {
"player": [
{
"condition": "minecraft:reference",
"name": "fz:is_real_player"
}
],
"item": {
"tag": "fz:tools"
}
}
}
},
"rewards": {
"function": "fz:game_event/advancement/on_tools_used_on_block"
}
}
@@ -1,20 +0,0 @@
{
"parent": "fz:game_event",
"criteria": {
"on_used_tool": {
"trigger": "minecraft:tick",
"conditions": {
"player": [
{
"condition": "minecraft:reference",
"entity": "this",
"name": "fz:used_tool"
}
]
}
}
},
"rewards": {
"function": "fz:game_event/advancement/on_used_tool"
}
}
@@ -1,19 +0,0 @@
{
"parent": "fz:game_event",
"criteria": {
"on_villager_trade": {
"trigger": "minecraft:villager_trade",
"conditions": {
"player": [
{
"condition": "minecraft:reference",
"name": "fz:is_real_player"
}
]
}
}
},
"rewards": {
"function": "fz:game_event/advancement/on_villager_trade"
}
}
@@ -1,27 +1,26 @@
{ {
"parent": "fz:game_event", "criteria": {
"criteria": { "leave_game": {
"on_login": { "trigger": "minecraft:tick",
"trigger": "tick", "conditions": {
"conditions": { "player": [
"player": [ {
{ "condition": "minecraft:inverted",
"condition": "minecraft:inverted", "term": {
"term": { "condition": "minecraft:entity_scores",
"condition": "minecraft:entity_scores", "entity": "this",
"entity": "this", "scores": {
"scores": { "leaveGame": {
"fz.event.leave_game": { "max": 0
"max": 0 }
} }
} }
} }
} ]
] }
} }
} },
}, "rewards": {
"rewards": { "function": "fz:login/onlogin"
"function": "fz:game_event/advancement/on_login" }
}
} }
@@ -1,7 +0,0 @@
{
"criteria": {
"interactor": {
"trigger": "minecraft:impossible"
}
}
}
@@ -1,24 +1,23 @@
{ {
"parent": "fz:game_event", "criteria": {
"criteria": { "activation": {
"on_took_damage": { "trigger": "minecraft:tick",
"trigger": "minecraft:tick", "conditions": {
"conditions": { "player": [
"player": [ {
{ "condition": "minecraft:entity_scores",
"condition": "minecraft:entity_scores", "entity": "this",
"entity": "this", "scores": {
"scores": { "actimeCounter": {
"fz.event.damage_taken": { "min": 3600
"min": 10 }
} }
} }
} ]
] }
} }
} },
}, "rewards": {
"rewards": { "function": "fz:scoreboards/activation/calculator"
"function": "fz:game_event/advancement/on_took_damage" }
}
} }
@@ -1,7 +1,6 @@
{ {
"parent": "fz:game_event",
"criteria": { "criteria": {
"on_aviate_one_meter": { "activation": {
"trigger": "minecraft:tick", "trigger": "minecraft:tick",
"conditions": { "conditions": {
"player": [ "player": [
@@ -9,7 +8,7 @@
"condition": "minecraft:entity_scores", "condition": "minecraft:entity_scores",
"entity": "this", "entity": "this",
"scores": { "scores": {
"fz.event.aviating_distance": { "fz.aviateCounter": {
"min": 200 "min": 200
} }
} }
@@ -19,6 +18,6 @@
} }
}, },
"rewards": { "rewards": {
"function": "fz:game_event/advancement/on_aviate_one_meter" "function": "fz:scoreboards/aviate1m/calculator"
} }
} }
@@ -1,7 +1,6 @@
{ {
"parent": "fz:game_event",
"criteria": { "criteria": {
"on_dead": { "damage_taken": {
"trigger": "minecraft:tick", "trigger": "minecraft:tick",
"conditions": { "conditions": {
"player": [ "player": [
@@ -9,7 +8,7 @@
"condition": "minecraft:entity_scores", "condition": "minecraft:entity_scores",
"entity": "this", "entity": "this",
"scores": { "scores": {
"fz.event.death_count": { "fz.bbl": {
"min": 1 "min": 1
} }
} }
@@ -19,6 +18,6 @@
} }
}, },
"rewards": { "rewards": {
"function": "fz:game_event/advancement/on_dead" "function": "fz:scoreboards/bedrockbreaked/calculator"
} }
} }
@@ -1,24 +1,23 @@
{ {
"parent": "fz:game_event", "criteria": {
"criteria": { "damage_taken": {
"on_play_one_hour": { "trigger": "minecraft:tick",
"trigger": "minecraft:tick", "conditions": {
"conditions": { "player": [
"player": [ {
{ "condition": "minecraft:entity_scores",
"condition": "minecraft:entity_scores", "entity": "this",
"entity": "this", "scores": {
"scores": { "10xDamageTaken": {
"fz.event.play_ticks": { "min": 1
"min": 72000 }
} }
} }
} ]
] }
} }
} },
}, "rewards": {
"rewards": { "function": "fz:scoreboards/damagetaken/calculator"
"function": "fz:game_event/advancement/on_play_one_hour" }
}
} }
@@ -0,0 +1,23 @@
{
"criteria": {
"death_counter": {
"trigger": "minecraft:tick",
"conditions": {
"player": [
{
"condition": "minecraft:entity_scores",
"entity": "this",
"scores": {
"deathTester": {
"min": 1
}
}
}
]
}
}
},
"rewards": {
"function": "fz:scoreboards/deathcounter/calculator"
}
}
@@ -0,0 +1,244 @@
{
"criteria": {
"used_tools": {
"trigger": "minecraft:tick",
"conditions": {
"player": [
{
"condition": "minecraft:alternative",
"terms": [
{
"condition": "minecraft:entity_scores",
"scores": {
"usedWooShovel": {
"min": 1
}
},
"entity": "this"
},
{
"condition": "minecraft:entity_scores",
"scores": {
"usedWooPickaxe": {
"min": 1
}
},
"entity": "this"
},
{
"condition": "minecraft:entity_scores",
"scores": {
"usedWooHoe": {
"min": 1
}
},
"entity": "this"
},
{
"condition": "minecraft:entity_scores",
"scores": {
"usedWooAxe": {
"min": 1
}
},
"entity": "this"
},
{
"condition": "minecraft:entity_scores",
"scores": {
"usedStoShovel": {
"min": 1
}
},
"entity": "this"
},
{
"condition": "minecraft:entity_scores",
"scores": {
"usedStoPickaxe": {
"min": 1
}
},
"entity": "this"
},
{
"condition": "minecraft:entity_scores",
"scores": {
"usedStoHoe": {
"min": 1
}
},
"entity": "this"
},
{
"condition": "minecraft:entity_scores",
"scores": {
"usedStoAxe": {
"min": 1
}
},
"entity": "this"
},
{
"condition": "minecraft:entity_scores",
"scores": {
"usedNetShovel": {
"min": 1
}
},
"entity": "this"
},
{
"condition": "minecraft:entity_scores",
"scores": {
"usedNetPickaxe": {
"min": 1
}
},
"entity": "this"
},
{
"condition": "minecraft:entity_scores",
"scores": {
"usedNetHoe": {
"min": 1
}
},
"entity": "this"
},
{
"condition": "minecraft:entity_scores",
"scores": {
"usedNetAxe": {
"min": 1
}
},
"entity": "this"
},
{
"condition": "minecraft:entity_scores",
"scores": {
"usedIroShovel": {
"min": 1
}
},
"entity": "this"
},
{
"condition": "minecraft:entity_scores",
"scores": {
"usedIroPickaxe": {
"min": 1
}
},
"entity": "this"
},
{
"condition": "minecraft:entity_scores",
"scores": {
"usedIroHoe": {
"min": 1
}
},
"entity": "this"
},
{
"condition": "minecraft:entity_scores",
"scores": {
"usedIroAxe": {
"min": 1
}
},
"entity": "this"
},
{
"condition": "minecraft:entity_scores",
"scores": {
"usedGolShovel": {
"min": 1
}
},
"entity": "this"
},
{
"condition": "minecraft:entity_scores",
"scores": {
"usedGolPickaxe": {
"min": 1
}
},
"entity": "this"
},
{
"condition": "minecraft:entity_scores",
"scores": {
"usedGolHoe": {
"min": 1
}
},
"entity": "this"
},
{
"condition": "minecraft:entity_scores",
"scores": {
"usedGolAxe": {
"min": 1
}
},
"entity": "this"
},
{
"condition": "minecraft:entity_scores",
"scores": {
"usedDiaShovel": {
"min": 1
}
},
"entity": "this"
},
{
"condition": "minecraft:entity_scores",
"scores": {
"usedDiaPickaxe": {
"min": 1
}
},
"entity": "this"
},
{
"condition": "minecraft:entity_scores",
"scores": {
"usedDiaHoe": {
"min": 1
}
},
"entity": "this"
},
{
"condition": "minecraft:entity_scores",
"scores": {
"usedDiaAxe": {
"min": 1
}
},
"entity": "this"
},
{
"condition": "minecraft:entity_scores",
"scores": {
"usedShears": {
"min": 1
}
},
"entity": "this"
}
]
}
]
}
}
},
"rewards": {
"function": "fz:scoreboards/digcounter/digtrigger"
}
}
@@ -0,0 +1,58 @@
{
"criteria": {
"right_click_tools": {
"trigger": "minecraft:item_used_on_block",
"conditions": {
"item": {
"items": [
"golden_axe",
"golden_hoe",
"golden_shovel",
"wooden_axe",
"wooden_hoe",
"wooden_shovel",
"diamond_axe",
"diamond_hoe",
"diamond_shovel",
"iron_axe",
"iron_hoe",
"iron_shovel",
"stone_axe",
"stone_hoe",
"stone_shovel",
"netherite_axe",
"netherite_hoe",
"netherite_shovel"
]
},
"location": {
"block": {
"blocks": [
"dirt_path",
"farmland",
"oak_log",
"stripped_birch_log",
"stripped_acacia_log",
"stripped_jungle_log",
"stripped_spruce_log",
"stripped_dark_oak_log",
"stripped_warped_stem",
"stripped_crimson_stem",
"stripped_oak_wood",
"stripped_birch_wood",
"stripped_acacia_wood",
"stripped_jungle_wood",
"stripped_spruce_wood",
"stripped_dark_oak_wood",
"stripped_warped_hyphae",
"stripped_crimson_hyphae"
]
}
}
}
}
},
"rewards": {
"function": "fz:scoreboards/digcounter/toolsfix"
}
}
@@ -0,0 +1,48 @@
{
"criteria": {
"tools_hit_entities": {
"trigger": "minecraft:player_hurt_entity",
"conditions": {
"player": [
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"equipment": {
"mainhand": {
"items": [
"iron_axe",
"stone_axe",
"golden_axe",
"wooden_axe",
"diamond_axe",
"netherite_axe",
"iron_shovel",
"stone_shovel",
"golden_shovel",
"wooden_shovel",
"diamond_shovel",
"netherite_shovel",
"iron_hoe",
"stone_hoe",
"golden_hoe",
"wooden_hoe",
"diamond_hoe",
"netherite_hoe",
"iron_pickaxe",
"stone_pickaxe",
"golden_pickaxe",
"wooden_pickaxe",
"diamond_pickaxe",
"netherite_pickaxe"
]
}
}
}
}
]
}
}
},
"rewards": {"function": "fz:scoreboards/digcounter/toolsfix2"}
}
@@ -0,0 +1,23 @@
{
"criteria": {
"fishing_counter": {
"trigger": "minecraft:tick",
"conditions": {
"player": [
{
"condition": "minecraft:entity_scores",
"entity": "this",
"scores": {
"fishingTester": {
"min": 1
}
}
}
]
}
}
},
"rewards": {
"function": "fz:scoreboards/fishingcounter/calculator"
}
}
@@ -1,25 +1,24 @@
{ {
"parent": "fz:module/interactor", "criteria": {
"criteria": { "kill_counter": {
"on_click": { "trigger": "minecraft:player_killed_entity",
"trigger": "minecraft:tick", "conditions": {
"conditions": { "player": [
"player": [ {
{ "condition": "minecraft:inverted",
"condition": "minecraft:inverted", "term": {
"term": { "condition": "minecraft:entity_scores",
"condition": "minecraft:entity_scores", "entity": "this",
"entity": "this", "scores": {
"scores": { "carpetBot": 1
"fz.module.interactor.trigger": 0 }
} }
} }
} ]
] }
} }
} },
}, "rewards": {
"rewards": { "function": "fz:scoreboards/killcounter/calculator"
"function": "fz:module/interactor/event/on_click" }
}
} }
@@ -0,0 +1,24 @@
{
"criteria": {
"trading_counter": {
"trigger": "minecraft:villager_trade",
"conditions": {
"player": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:entity_scores",
"entity": "this",
"scores": {
"carpetBot": 1
}
}
}
]
}
}
},
"rewards": {
"function": "fz:scoreboards/tradingcounter/calculator"
}
}
@@ -1 +0,0 @@
data modify storage fz:global fz.api.dimension.name set value '{"nbt": "fz.cache.dimension.id", "storage": "fz:global"}'
@@ -1 +0,0 @@
execute if data storage fz:global fz.api.dimension{id:'minecraft:overworld'} run data modify storage fz:global fz.api.dimension.name set value '{"text": "主世界", "color": "dark_green"}'
@@ -1 +0,0 @@
execute if data storage fz:global fz.api.dimension{id:'minecraft:the_end'} run data modify storage fz:global fz.api.dimension.name set value '{"text": "末地", "color": "dark_gray"}'
@@ -1 +0,0 @@
execute if data storage fz:global fz.api.dimension{id:'minecraft:the_nether'} run data modify storage fz:global fz.api.dimension.name set value '{"text": "下界", "color": "dark_red"}'
@@ -1,2 +0,0 @@
data modify storage fz:global fz.api.dimension.id set from entity @s Dimension
data remove storage fz:global fz.api.dimension.name
@@ -1,17 +1,18 @@
carpet setDefault language zh_cn #给萌新辅助自动配置地毯优化和功能的函数
carpet setDefault stackableShulkerBoxes 16 carpet setDefault language zh_cn
carpet setDefault leadFix true carpet setDefault antiCheatDisabled true
carpet setDefault ctrlQCraftingFix true carpet setDefault combineXPOrbs true
carpet setDefault smoothClientAnimations true carpet setDefault persistentParrots true
carpet setDefault fastRedstoneDust true carpet setDefault stackableShulkerBoxes true
carpet setDefault reloadSuffocationFix true carpet setDefault lagFreeSpawning true
carpet setDefault persistentParrots true carpet setDefault ctrlQCraftingFix true
carpet setDefault missingTools true carpet setDefault flippinCactus true
carpet setDefault optimizedTNT true carpet setDefault missingTools true
carpet setDefault placementRotationFix true carpet setDefault smoothClientAnimations true
carpet setDefault cleanLogs true carpet setDefault optimizedTNT true
carpet setDefault lightningKillsDropsFix true carpet setDefault leadFix true
carpet setDefault lagFreeSpawning true carpet setDefault placementRotationFix true
carpet setDefault accurateBlockPlacement true carpet setDefault xpNoCooldown true
carpet setDefault flippinCactus true carpet setDefault defaultLoggers mobcaps,tps
carpet setDefault defaultLoggers mobcaps,tps carpet setDefault commandTick true
carpet setDefault commandTrackAI true
@@ -0,0 +1,5 @@
#初始化tagplayer
carpet setDefault commandScript true
carpet setDefault commandScriptACE ops
script run carpet_rules = system_info('world_carpet_rules'); if(carpet_rules:'scriptsAutoload' != 'true', run('carpet setDefault scriptsAutoload true'); run('tellraw @a {"text":"[错误]假人插件未正确加载,已自动将“scriptsAutoload”设为true。正在重载,如仍未加载,请手动加载...", "color":"#ff6100"}'); run('reload'))
script unload player
@@ -0,0 +1,28 @@
#设置或重设超时时间为300stimeout函数
schedule function fz:config/timeout 300s
#输出玩家可见的设置页面
##扫地机
execute if data storage fz:survival installed{sweeper: 1b} run tellraw @s {"text": "扫地机:","color": "#ccff00"}
##扫地机时间1478966210-1478966215
execute if data storage fz:survival installed{sweeper: 1b} run tellraw @s [{"text": "- "},{"text": "[关]","color": "#00ff00","clickEvent": {"action": "run_command","value": "/trigger config set 1478966210"}},{"text": "[30秒]","color": "#5fff00","clickEvent": {"action": "run_command","value": "/trigger config set 1478966211"}},{"text": "[1分钟]","color": "#d7ff00","clickEvent": {"action": "run_command","value": "/trigger config set 1478966212"}},{"text": "[2分钟]","color": "#ffd900","clickEvent": {"action": "run_command","value": "/trigger config set 1478966213"}},{"text": "[3分钟]","color": "#ff6100","clickEvent": {"action": "run_command","value": "/trigger config set 1478966214"}},{"text": "[4分钟]","color": "#ff0000","clickEvent": {"action": "run_command","value": "/trigger config set 1478966215"}}]
##开启矿车白名单1478966216
execute if data storage fz:survival installed{sweeper: 1b} unless score keepMinecart parameter matches 1 run tellraw @s [{"text": "- "},{"text": "矿车白名单:","color": "#8c8f91"},{"text": "[已关闭]","color": "#ff0000","clickEvent": {"action": "run_command","value": "/trigger config set 1478966216"}}]
##关闭矿车白名单1478966217
execute if data storage fz:survival installed{sweeper: 1b} if score keepMinecart parameter matches 1 run tellraw @s [{"text": "- "},{"text": "矿车白名单:","color": "#8c8f91"},{"text": "[已开启]","color": "#00ff00","clickEvent": {"action": "run_command","value": "/trigger config set 1478966217"}}]
##声音提示
execute if data storage fz:survival installed{sweeper: 1b} run tellraw @s[tag=!fz.sweeperSoundOff] [{"text": "- "},{"text": "声音:","color": "#8c8f91"},{"text": "[已开启]","color": "#00ff00","clickEvent": {"action": "run_command","value": "/trigger config set 1478966209"}}]
execute if data storage fz:survival installed{sweeper: 1b} run tellraw @s[tag=fz.sweeperSoundOff] [{"text": "- "},{"text": "声音:","color": "#8c8f91"},{"text": "[已关闭]","color": "#ff0000","clickEvent": {"action": "run_command","value": "/trigger config set 1478966208"}}]
##消息提示
execute if data storage fz:survival installed{sweeper: 1b} run tellraw @s[tag=!fz.sweeperMessageOff] [{"text": "- "},{"text": "消息:","color": "#8c8f91"},{"text": "[已开启]","color": "#00ff00","clickEvent": {"action": "run_command","value": "/trigger config set 1478966205"}}]
execute if data storage fz:survival installed{sweeper: 1b} run tellraw @s[tag=fz.sweeperMessageOff] [{"text": "- "},{"text": "消息:","color": "#8c8f91"},{"text": "[已关闭]","color": "#ff0000","clickEvent": {"action": "run_command","value": "/trigger config set 1478966204"}}]
##血条栏提示
execute if data storage fz:survival installed{sweeper: 1b} run tellraw @s[tag=!fz.sweeperBossbarOff] [{"text": "- "},{"text": "血条栏:","color": "#8c8f91"},{"text": "[已开启]","color": "#00ff00","clickEvent": {"action": "run_command","value": "/trigger config set 1478966207"}}]
execute if data storage fz:survival installed{sweeper: 1b} run tellraw @s[tag=fz.sweeperBossbarOff] [{"text": "- "},{"text": "血条栏:","color": "#8c8f91"},{"text": "[已关闭]","color": "#ff0000","clickEvent": {"action": "run_command","value": "/trigger config set 1478966206"}}]
##记分板
execute if data storage fz:survival installed{scoreboards: 1b} run tellraw @s {"text": "记分板:","color": "#ccff00"}
##计分板显示1838019370-1838019379
execute if data storage fz:survival installed{scoreboards: 1b} unless score bedrockBreaked matches 1.. run tellraw @s [{"text": "- "},{"text": "[关]","color": "#ff0000","hoverEvent": {"action": "show_text","contents": {"text": "", "color": "#ff0000"}},"clickEvent": {"action": "run_command","value": "/trigger config set 1838019370"}},{"text": "[轮播]","color": "gold","hoverEvent": {"action": "show_text","contents": {"text": "轮播", "color": "gold"}},"clickEvent": {"action": "run_command","value": "/trigger config set 1838019371"}},{"text": "[总量]","color": "dark_aqua","hoverEvent": {"action": "show_text","contents": {"text": "总量","color": "dark_aqua"}},"clickEvent": {"action": "run_command","value": "/trigger config set 1838019379"}},{"text": "[在线时间(h)]","color": "aqua","hoverEvent": {"action": "show_text","contents": {"text": "在线时间(h)","color": "aqua"}},"clickEvent": {"action": "run_command","value": "/trigger config set 1838019372"}},{"text": "[抖M名单]","color": "yellow","hoverEvent": {"action": "show_text","contents": {"text": "受伤害量","color": "yellow"}},"clickEvent": {"action": "run_command","value": "/trigger config set 1838019373"}},{"text": "[死亡榜]","color": "dark_red","hoverEvent": {"action": "show_text","contents": {"text": "死亡榜","color": "dark_red"}},"clickEvent": {"action": "run_command","value": "/trigger config set 1838019374"}},{"text": "[挖掘榜]","color": "gray","hoverEvent": {"action": "show_text","contents": {"text": "挖掘榜","color": "gray"}},"clickEvent": {"action": "run_command","value": "/trigger config set 1838019375"}},{"text": "[钩直饵咸]","color": "blue","hoverEvent": {"action": "show_text","contents": {"text": "钓鱼榜","color": "blue"}},"clickEvent": {"action": "run_command","value": "/trigger config set 1838019376"}},{"text": "[击杀榜]","color": "red","hoverEvent": {"action": "show_text","contents": {"text": "击杀榜","color": "red"}},"clickEvent": {"action": "run_command","value": "/trigger config set 1838019377"}},{"text": "[交♂易榜]","color": "green","hoverEvent": {"action": "show_text","contents": {"text": "交易榜","color": "green"}},"clickEvent": {"action": "run_command","value": "/trigger config set 1838019378"}}]
execute if data storage fz:survival installed{scoreboards: 1b} unless score bedrockBreaked matches 1.. run tellraw @s [{"text": "- "},{"text": "[滑翔距离]", "color": "light_purple", "hoverEvent": {"action": "show_text","contents": {"text": "滑翔距离", "color": "light_purple"}},"clickEvent": {"action": "run_command","value": "/trigger config set 1838019368"}}]
##计分板显示1838019369-1838019379()
execute if data storage fz:survival installed{scoreboards: 1b} if score bedrockBreaked matches 1.. run tellraw @s [{"text": "- "},{"text": "[关]","color": "#ff0000","hoverEvent": {"action": "show_text","contents": {"text": "", "color": "#ff0000"}},"clickEvent": {"action": "run_command","value": "/trigger config set 1838019370"}},{"text": "[轮播]","color": "gold","hoverEvent": {"action": "show_text","contents": {"text": "轮播", "color": "gold"}},"clickEvent": {"action": "run_command","value": "/trigger config set 1838019371"}},{"text": "[总量]","color": "dark_aqua","hoverEvent": {"action": "show_text","contents": {"text": "总量","color": "dark_aqua"}},"clickEvent": {"action": "run_command","value": "/trigger config set 1838019379"}},{"text": "[在线时间(h)]","color": "aqua","hoverEvent": {"action": "show_text","contents": {"text": "在线时间(h)","color": "aqua"}},"clickEvent": {"action": "run_command","value": "/trigger config set 1838019372"}},{"text": "[抖M名单]","color": "yellow","hoverEvent": {"action": "show_text","contents": {"text": "受伤害量","color": "yellow"}},"clickEvent": {"action": "run_command","value": "/trigger config set 1838019373"}},{"text": "[死亡榜]","color": "dark_red","hoverEvent": {"action": "show_text","contents": {"text": "死亡榜","color": "dark_red"}},"clickEvent": {"action": "run_command","value": "/trigger config set 1838019374"}},{"text": "[挖掘榜]","color": "gray","hoverEvent": {"action": "show_text","contents": {"text": "挖掘榜","color": "gray"}},"clickEvent": {"action": "run_command","value": "/trigger config set 1838019375"}},{"text": "[钩直饵咸]","color": "blue","hoverEvent": {"action": "show_text","contents": {"text": "钓鱼榜","color": "blue"}},"clickEvent": {"action": "run_command","value": "/trigger config set 1838019376"}},{"text": "[击杀榜]","color": "red","hoverEvent": {"action": "show_text","contents": {"text": "击杀榜","color": "red"}},"clickEvent": {"action": "run_command","value": "/trigger config set 1838019377"}},{"text": "[交♂易榜]","color": "green","hoverEvent": {"action": "show_text","contents": {"text": "交易榜","color": "green"}},"clickEvent": {"action": "run_command","value": "/trigger config set 1838019378"}}]
execute if data storage fz:survival installed{scoreboards: 1b} if score bedrockBreaked matches 1.. run tellraw @s [{"text": "- "},{"text": "[滑翔距离]", "color": "light_purple", "hoverEvent": {"action": "show_text","contents": {"text": "滑翔距离", "color": "light_purple"}},"clickEvent": {"action": "run_command","value": "/trigger config set 1838019368"}},{"text": "[铁头功]","color": "dark_green","hoverEvent": {"action": "show_text","contents": {"text": "破基岩榜","color": "dark_green"}},"clickEvent": {"action": "run_command","value": "/trigger config set 1838019369"}}]
@@ -0,0 +1,9 @@
#安装设置功能
#初始化触发器记分板
scoreboard objectives add config trigger
#存入已安装信息
data modify storage fz:survival installed.config set value 1b
#提示已安装
tellraw @a {"text": "[信息]设置功能已安装","color": "#5fff00"}
#开始运行
function fz:config/start
+8
View File
@@ -0,0 +1,8 @@
#主函数
#允许玩家操作config记分板
scoreboard players enable @a config
#每条子函数都要reset config分数和function fz:config/display
execute if data storage fz.installed {sweeper: 1b} as @a if score @s config matches 1478966200..1478966217 run function fz:sweeper/config/trigger
execute if data storage fz.installed {scoreboards: 1b} as @a if score @s config matches 1838019368..1838019379 run function fz:scoreboards/config
#循环执行本函数
schedule function fz:config/main 1t
@@ -0,0 +1,9 @@
#删除进程残留
schedule clear fz:config/main
schedule clear fz:config/timeout
data remove storage fz.config is_open
scoreboard players enable @a config
advancement revoke @a only fz:config/sneak
advancement revoke @a only fz:config/unsneak
#测试用的输出
tellraw @a {"text": "[信息]设置功能已启用","color": "#5fff00"}
@@ -0,0 +1,8 @@
#关闭主进程
schedule clear fz:config/main
#输出给打开过设置界面的玩家的消息
tellraw @a[scores={openingConfig=1}] {"text": "[提醒]5分钟无任何人回应,为节省性能,已关闭设置功能,请重新唤起","color": "#66ffff"}
#重置打开过设置界面的玩家的列表
scoreboard objectives remove openingConfig
#移除设置界面被打开的信息
data remove storage fz.config is_open
@@ -0,0 +1,11 @@
#触发函数unsneak函数控制
#重置玩家的config分数
scoreboard players reset @s config
#判断设置功能是否已经开启
execute unless data storage fz.config {is_open: 1b} run function fz:config/main
execute unless data storage fz.config {is_open: 1b} run scoreboard objectives add openingConfig dummy
execute unless data storage fz.config {is_open: 1b} run data merge storage fz.config {is_open: 1b}
#将该玩家加入打开设置页面的玩家的列表
scoreboard players set @s openingConfig 1
#将设置内容输出给玩家
function fz:config/display
@@ -0,0 +1,9 @@
#卸载设置功能
#移除进程残留
schedule clear fz:config/main
schedule clear fz:config/timeout
data remove storage fz.config is_open
#写入已卸载的信息
data modify storage fz:survival installed.config set value 0b
#提示已卸载
tellraw @a {"text": "[信息]设置功能已卸载","color": "#5fff00"}
@@ -0,0 +1,6 @@
#由config/sneak和config/unsneak成就触发
#判断玩家视角是否指向正上方turnon函数
execute if data storage fz:survival installed{config: 1b} if entity @s[x_rotation=-90] run function fz:config/turnon
#重置该玩家的两个成就
advancement revoke @s only fz:config/sneak
advancement revoke @s only fz:config/unsneak
@@ -1,7 +0,0 @@
# 调用者:advancements/fz:~
execute if predicate fz:is_real_player run function fz:game_event/player/on_aviate_one_meter
##
scoreboard players operation @s fz.event.aviating_distance %= 200 fz.variable.integer
advancement revoke @s only fz:game_event/on_aviate_one_meter
@@ -1,7 +0,0 @@
# 调用者:advancements/fz:~
execute if predicate fz:is_real_player run function fz:game_event/player/on_dead
##
scoreboard players set @s fz.event.death_count 0
advancement revoke @s only fz:game_event/on_dead
@@ -1,7 +0,0 @@
##
execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{"nbt": "fz.level.debug", "interpret": true, "storage": "fz:logger"}, {"text": "事件已触发:玩家"}, {"selector": "@s"}, {"text": "进入了下届传送门"}]
function #fz:game_event/player/on_entered_nether_portal
##
advancement revoke @s only fz:game_event/on_entered_nether_portal
@@ -1,10 +0,0 @@
# 调用者:advancements/fz:~
##
execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{"nbt": "fz.level.debug", "interpret": true, "storage": "fz:logger"}, {"text": "事件已触发:玩家"}, {"selector": "@s"}, {"text": "钓鱼上钩"}]
##
function #fz:game_event/player/on_fished
##
advancement revoke @s only fz:game_event/on_fished
@@ -1,13 +0,0 @@
# 调用者:advancements/fz:~
##
execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{"nbt": "fz.level.debug", "interpret": true, "storage": "fz:logger"}, {"text": "事件已触发:玩家"}, {"selector": "@s"}, {"text": "使用了挖掘工具攻击实体"}]
##
scoreboard players remove @s fz.event.used_tool.dig_offset 1
##
function #fz:game_event/player/on_hurt_entity_with_tools
##
advancement revoke @s only fz:game_event/on_hurt_entity_with_tools
@@ -1,10 +0,0 @@
# 调用者:advancements/fz:~
##
execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{"nbt": "fz.level.debug", "interpret": true, "storage": "fz:logger"}, {"text": "事件已触发:玩家"}, {"selector": "@s"}, {"text": "击杀了生物"}]
##
function #fz:game_event/player/on_killed_mob_or_player
##
advancement revoke @s only fz:game_event/on_killed_mob_or_player
@@ -1,7 +0,0 @@
# 调用者:advancements/fz:~
execute if predicate fz:is_real_player run function fz:game_event/player/on_login
##
scoreboard players set @s fz.event.leave_game 0
function #fz:game_event/reset_all
@@ -1,10 +0,0 @@
# 调用者:advancements/fz:~
##
execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{"nbt": "fz.level.debug", "interpret": true, "storage": "fz:logger"}, {"text": "事件已触发:玩家"}, {"selector": "@s"}, {"text": "与猪灵交易"}]
##
function #fz:game_event/player/on_piglin_trade
##
advancement revoke @s only fz:game_event/on_piglin_trade
@@ -1,10 +0,0 @@
# 调用者:advancements/fz:~
##
execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{"nbt": "fz.level.debug", "interpret": true, "storage": "fz:logger"}, {"text": "事件已触发:玩家"}, {"selector": "@s"}, {"text": "放置了方块"}]
##
function #fz:game_event/player/on_placed_block
##
advancement revoke @s only fz:game_event/on_placed_block
@@ -1,7 +0,0 @@
# 调用者:advancements/fz:~
execute if predicate fz:is_real_player run function fz:game_event/player/on_play_one_hour
##
scoreboard players operation @s fz.event.play_ticks %= 72000 fz.variable.integer
advancement revoke @s only fz:game_event/on_play_one_hour
@@ -1,13 +0,0 @@
# 调用者:advancements/fz:~
##
execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{"nbt": "fz.level.debug", "interpret": true, "storage": "fz:logger"}, {"text": "事件已触发:玩家"}, {"selector": "@s"}, {"text": "对实体使用剪刀"}]
##
scoreboard players remove @s fz.event.used_tool.dig_offset 1
##
function #fz:game_event/player/on_shears_used_on_entity
##
advancement revoke @s only fz:game_event/on_shears_used_on_entity
@@ -1,7 +0,0 @@
# 调用者:advancements/fz:~
##
execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{"nbt": "fz.level.debug", "interpret": true, "storage": "fz:logger"}, {"text": "事件已触发:玩家"}, {"selector": "@s"}, {"text": "蹲下"}]
##
function #fz:game_event/player/on_sneak
@@ -1,7 +0,0 @@
# 调用者:advancements/fz:~
execute if predicate fz:is_real_player run function fz:game_event/player/on_took_damage
##
scoreboard players operation @s fz.event.damage_taken %= 10 fz.variable.integer
advancement revoke @s only fz:game_event/on_took_damage
@@ -1,14 +0,0 @@
# 调用者:advancements/fz:~
##
##
execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{"nbt": "fz.level.debug", "interpret": true, "storage": "fz:logger"}, {"text": "事件已触发:玩家"}, {"selector": "@s"}, {"text": "在方块上使用了工具"}]
##
scoreboard players remove @s fz.event.used_tool.dig_offset 1
##
function #fz:game_event/player/on_tools_used_on_block
##
advancement revoke @s only fz:game_event/on_tools_used_on_block
@@ -1,13 +0,0 @@
# 调用者:advancements/fz:~
##
execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{"nbt": "fz.level.debug", "interpret": true, "storage": "fz:logger"}, {"text": "事件已触发:玩家"}, {"selector": "@s"}, {"text": "从蹲下状态站起"}]
# 调用者:advancement/fz:unskeak
#####
##
function #fz:game_event/player/on_unsneak
##
advancement revoke @s until fz:game_event/on_unsneak
@@ -1,9 +0,0 @@
# 调用者:advancements/fz:~
execute if predicate fz:is_real_player run function fz:game_event/player/on_used_tool
##
function #fz:game_event/player/on_used_tool/reset_used_tool
##
advancement revoke @s only fz:game_event/on_used_tool
@@ -1,10 +0,0 @@
# 调用者:advancements/fz:~
##
execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{"nbt": "fz.level.debug", "interpret": true, "storage": "fz:logger"}, {"text": "事件已触发:玩家"}, {"selector": "@s"}, {"text": "与村民交易"}]
##
function #fz:game_event/player/on_villager_trade
##
advancement revoke @s only fz:game_event/on_villager_trade
@@ -1,6 +0,0 @@
##
### fz:game_event
advancement revoke @s from fz:game_event
##
execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{"nbt": "fz.level.debug", "interpret": true, "storage": "fz:logger"}, {"text": "已重置玩家"}, {"selector": "@s"}, {"text": "的游戏事件进度"}]
@@ -1 +0,0 @@
scoreboard players remove @s fz.event.play_ticks 1
@@ -1,47 +0,0 @@
##
scoreboard objectives add fz.event.aviating_distance minecraft.custom:aviate_one_cm
scoreboard objectives add fz.event.damage_taken minecraft.custom:damage_taken
scoreboard objectives add fz.event.death_count deathCount
scoreboard objectives add fz.event.leave_game minecraft.custom:leave_game
scoreboard objectives add fz.event.play_ticks minecraft.custom:play_time
scoreboard objectives add fz.event.villager_trade minecraft.custom:traded_with_villager
## 使
scoreboard objectives add fz.event.used_tool.dig_offset dummy
scoreboard objectives add fz.event.used_tool.iron_axe minecraft.used:iron_axe
scoreboard objectives add fz.event.used_tool.stone_axe minecraft.used:stone_axe
scoreboard objectives add fz.event.used_tool.golden_axe minecraft.used:golden_axe
scoreboard objectives add fz.event.used_tool.wooden_axe minecraft.used:wooden_axe
scoreboard objectives add fz.event.used_tool.diamond_axe minecraft.used:diamond_axe
scoreboard objectives add fz.event.used_tool.netherite_axe minecraft.used:netherite_axe
scoreboard objectives add fz.event.used_tool.iron_hoe minecraft.used:iron_hoe
scoreboard objectives add fz.event.used_tool.stone_hoe minecraft.used:stone_hoe
scoreboard objectives add fz.event.used_tool.golden_hoe minecraft.used:golden_hoe
scoreboard objectives add fz.event.used_tool.wooden_hoe minecraft.used:wooden_hoe
scoreboard objectives add fz.event.used_tool.diamond_hoe minecraft.used:diamond_hoe
scoreboard objectives add fz.event.used_tool.netherite_hoe minecraft.used:netherite_hoe
scoreboard objectives add fz.event.used_tool.iron_pickaxe minecraft.used:iron_pickaxe
scoreboard objectives add fz.event.used_tool.stone_pickaxe minecraft.used:stone_pickaxe
scoreboard objectives add fz.event.used_tool.golden_pickaxe minecraft.used:golden_pickaxe
scoreboard objectives add fz.event.used_tool.wooden_pickaxe minecraft.used:wooden_pickaxe
scoreboard objectives add fz.event.used_tool.diamond_pickaxe minecraft.used:diamond_pickaxe
scoreboard objectives add fz.event.used_tool.netherite_pickaxe minecraft.used:netherite_pickaxe
scoreboard objectives add fz.event.used_tool.shears minecraft.used:shears
scoreboard objectives add fz.event.used_tool.iron_shovel minecraft.used:iron_shovel
scoreboard objectives add fz.event.used_tool.stone_shovel minecraft.used:stone_shovel
scoreboard objectives add fz.event.used_tool.golden_shovel minecraft.used:golden_shovel
scoreboard objectives add fz.event.used_tool.wooden_shovel minecraft.used:wooden_shovel
scoreboard objectives add fz.event.used_tool.diamond_shovel minecraft.used:diamond_shovel
scoreboard objectives add fz.event.used_tool.netherite_shovel minecraft.used:netherite_shovel
scoreboard objectives add fz.event.used_tool.iron_sword minecraft.used:iron_sword
scoreboard objectives add fz.event.used_tool.stone_sword minecraft.used:stone_sword
scoreboard objectives add fz.event.used_tool.golden_sword minecraft.used:golden_sword
scoreboard objectives add fz.event.used_tool.wooden_sword minecraft.used:wooden_sword
scoreboard objectives add fz.event.used_tool.diamond_sword minecraft.used:diamond_sword
scoreboard objectives add fz.event.used_tool.netherite_sword minecraft.used:netherite_sword
##
data modify storage fz:installed fz.event set value 1b
##
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,4 +0,0 @@
execute as @a run function #fz:game_event/player/on_login
##
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,9 +0,0 @@
##
execute if score fz.logger.level fz.variable.integer matches ..300 run tellraw @a [{"nbt": "fz.level.fine", "interpret": true, "storage": "fz:logger"}, {"text": "事件已触发:玩家"}, {"selector": "@s"}, {"text": "飞行了1m"}]
##
scoreboard players operation fz.var.score fz.variable.integer = @s fz.event.aviating_distance
scoreboard players operation fz.var.score fz.variable.integer /= 200 fz.variable.integer
##
function #fz:game_event/player/on_aviate_one_meter
@@ -1,7 +0,0 @@
# 调用者:fz:game_event/player/on_used_tool
##
execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{"nbt": "fz.level.debug", "interpret": true, "storage": "fz:logger"}, {"text": "事件已触发:玩家"}, {"selector": "@s"}, {"text": "挖掘了方块"}]
##
function #fz:game_event/player/on_broke_block
@@ -1,36 +0,0 @@
##
scoreboard players operation fz.var.score fz.variable.integer = @s fz.event.used_tool.diamond_axe
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.diamond_hoe
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.diamond_pickaxe
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.diamond_shovel
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.diamond_sword
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.golden_axe
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.golden_hoe
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.golden_pickaxe
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.golden_shovel
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.golden_sword
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.iron_axe
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.iron_hoe
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.iron_pickaxe
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.iron_shovel
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.iron_sword
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.netherite_axe
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.netherite_hoe
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.netherite_pickaxe
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.netherite_shovel
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.netherite_sword
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.shears
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.stone_axe
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.stone_hoe
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.stone_pickaxe
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.stone_shovel
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.stone_sword
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.wooden_axe
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.wooden_hoe
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.wooden_pickaxe
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.wooden_shovel
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.wooden_sword
scoreboard players operation fz.var.score fz.variable.integer += @s fz.event.used_tool.offset
##
execute unless score fz.var.score fz.variable.integer matches ..0 run function fz:game_event/player/on_broke_block
@@ -1,8 +0,0 @@
##
execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{"nbt": "fz.level.debug", "interpret": true, "storage": "fz:logger"}, {"text": "事件已触发:玩家"}, {"selector": "@s"}, {"text": "死亡"}]
##
# scoreboard players operation fz.var.score fz.variable.integer = @s fz.event.death_count
##
function #fz:game_event/player/on_dead
@@ -1,5 +0,0 @@
##
execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{"nbt": "fz.level.debug", "interpret": true, "storage": "fz:logger"}, {"text": "事件已触发:玩家"}, {"selector": "@s"}, {"text": "登录游戏"}]
##
function #fz:game_event/player/on_login
@@ -1,9 +0,0 @@
##
execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{"nbt": "fz.level.debug", "interpret": true, "storage": "fz:logger"}, {"text": "事件已触发:玩家"}, {"selector": "@s"}, {"text": "游玩了1h"}]
##
# scoreboard players operation fz.var.score fz.variable.integer = @s fz.event.play_ticks
# scoreboard players operation fz.var.score fz.variable.integer /= 3600 fz.variable.integer
##
function #fz:game_event/player/on_play_one_hour
@@ -1,9 +0,0 @@
##
execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{"nbt": "fz.level.debug", "interpret": true, "storage": "fz:logger"}, {"text": "事件已触发:玩家"}, {"selector": "@s"}, {"text": "受到了伤害"}]
##
scoreboard players operation fz.var.score fz.variable.integer = @s fz.event.damage_taken
scoreboard players operation fz.var.score fz.variable.integer /= 10 fz.variable.integer
##
function #fz:game_event/player/on_took_damage
@@ -1,5 +0,0 @@
##
execute if score fz.logger.level fz.variable.integer matches ..300 run tellraw @a [{"nbt": "fz.level.fine", "interpret": true, "storage": "fz:logger"}, {"text": "事件已触发:玩家"}, {"selector": "@s"}, {"text": "使用了工具"}]
##
function #fz:game_event/player/on_used_tool
@@ -1,35 +0,0 @@
scoreboard players set @s fz.event.used_tool.offset 0
scoreboard players set @s fz.event.used_tool.diamond_axe 0
scoreboard players set @s fz.event.used_tool.diamond_hoe 0
scoreboard players set @s fz.event.used_tool.diamond_pickaxe 0
scoreboard players set @s fz.event.used_tool.diamond_shovel 0
scoreboard players set @s fz.event.used_tool.diamond_sword 0
scoreboard players set @s fz.event.used_tool.golden_axe 0
scoreboard players set @s fz.event.used_tool.golden_hoe 0
scoreboard players set @s fz.event.used_tool.golden_pickaxe 0
scoreboard players set @s fz.event.used_tool.golden_shovel 0
scoreboard players set @s fz.event.used_tool.golden_sword 0
scoreboard players set @s fz.event.used_tool.iron_axe 0
scoreboard players set @s fz.event.used_tool.iron_hoe 0
scoreboard players set @s fz.event.used_tool.iron_pickaxe 0
scoreboard players set @s fz.event.used_tool.iron_shovel 0
scoreboard players set @s fz.event.used_tool.iron_sword 0
scoreboard players set @s fz.event.used_tool.netherite_axe 0
scoreboard players set @s fz.event.used_tool.netherite_hoe 0
scoreboard players set @s fz.event.used_tool.netherite_pickaxe 0
scoreboard players set @s fz.event.used_tool.netherite_shovel 0
scoreboard players set @s fz.event.used_tool.netherite_sword 0
scoreboard players set @s fz.event.used_tool.shears 0
scoreboard players set @s fz.event.used_tool.stone_axe 0
scoreboard players set @s fz.event.used_tool.stone_hoe 0
scoreboard players set @s fz.event.used_tool.stone_pickaxe 0
scoreboard players set @s fz.event.used_tool.stone_shovel 0
scoreboard players set @s fz.event.used_tool.stone_sword 0
scoreboard players set @s fz.event.used_tool.wooden_axe 0
scoreboard players set @s fz.event.used_tool.wooden_hoe 0
scoreboard players set @s fz.event.used_tool.wooden_pickaxe 0
scoreboard players set @s fz.event.used_tool.wooden_shovel 0
scoreboard players set @s fz.event.used_tool.wooden_sword 0
##
execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{"nbt": "fz.level.debug", "interpret": true, "storage": "fz:logger"}, {"text": "重置了玩家"}, {"selector": "@s"}, {"text": "的used_tool计分板"}]
@@ -1,47 +0,0 @@
##
scoreboard objectives remove fz.event.aviating_distance
scoreboard objectives remove fz.event.damage_taken
scoreboard objectives remove fz.event.death_count
scoreboard objectives remove fz.event.leave_game
scoreboard objectives remove fz.event.play_ticks
scoreboard objectives remove fz.event.villager_trade
## 使
scoreboard objectives remove fz.event.used_tool.dig_offset
scoreboard objectives remove fz.event.used_tool.iron_axe
scoreboard objectives remove fz.event.used_tool.stone_axe
scoreboard objectives remove fz.event.used_tool.golden_axe
scoreboard objectives remove fz.event.used_tool.wooden_axe
scoreboard objectives remove fz.event.used_tool.diamond_axe
scoreboard objectives remove fz.event.used_tool.netherite_axe
scoreboard objectives remove fz.event.used_tool.iron_hoe
scoreboard objectives remove fz.event.used_tool.stone_hoe
scoreboard objectives remove fz.event.used_tool.golden_hoe
scoreboard objectives remove fz.event.used_tool.wooden_hoe
scoreboard objectives remove fz.event.used_tool.diamond_hoe
scoreboard objectives remove fz.event.used_tool.netherite_hoe
scoreboard objectives remove fz.event.used_tool.iron_pickaxe
scoreboard objectives remove fz.event.used_tool.stone_pickaxe
scoreboard objectives remove fz.event.used_tool.golden_pickaxe
scoreboard objectives remove fz.event.used_tool.wooden_pickaxe
scoreboard objectives remove fz.event.used_tool.diamond_pickaxe
scoreboard objectives remove fz.event.used_tool.netherite_pickaxe
scoreboard objectives remove fz.event.used_tool.shears
scoreboard objectives remove fz.event.used_tool.iron_shovel
scoreboard objectives remove fz.event.used_tool.stone_shovel
scoreboard objectives remove fz.event.used_tool.golden_shovel
scoreboard objectives remove fz.event.used_tool.wooden_shovel
scoreboard objectives remove fz.event.used_tool.diamond_shovel
scoreboard objectives remove fz.event.used_tool.netherite_shovel
scoreboard objectives remove fz.event.used_tool.iron_sword
scoreboard objectives remove fz.event.used_tool.stone_sword
scoreboard objectives remove fz.event.used_tool.golden_sword
scoreboard objectives remove fz.event.used_tool.wooden_sword
scoreboard objectives remove fz.event.used_tool.diamond_sword
scoreboard objectives remove fz.event.used_tool.netherite_sword
##
data remove storage fz:installed fz.event
##
execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{"nbt": "fz.level.debug", "interpret": true, "storage": "fz:logger"}, {"text": "已卸载系统组件:游戏事件"}]
@@ -0,0 +1,10 @@
#安装血量显示
#初始化
scoreboard objectives add Health health {"text": "cm","color": "yellow"}
scoreboard objectives modify Health rendertype hearts
scoreboard objectives setdisplay list Health
scoreboard objectives setdisplay belowName Health
#写入已安装的信息
data modify storage fz:survival installed.health set value 1b
#提示已安装
tellraw @a {"text": "[信息]血量显示已安装","color": "#5fff00"}
@@ -0,0 +1,7 @@
#卸载血量显示
#删除计分板
scoreboard objectives remove Health
#写入已卸载的信息
data modify storage fz:survival installed.health set value 0b
#提示已卸载
tellraw @a {"text": "[信息]血量显示已卸载","color": "#5fff00"}
+42
View File
@@ -0,0 +1,42 @@
#用于储存参数的记分板
scoreboard objectives add parameter dummy
#用于数学计算的记分板
scoreboard objectives add calculator dummy
scoreboard players set 200 calculator 200
scoreboard players set 100 calculator 100
scoreboard players set 10 calculator 10
scoreboard players set 1 calculator 1
#检测玩家退出游戏的记分板
scoreboard objectives add leaveGame minecraft.custom:minecraft.leave_game
#安装各功能
function fz:config/install
function fz:sweeper/install
function fz:scoreboards/install
function fz:health/install
function fz:login/logintips/install
function fz:carpet/carpet
#版本信息
data modify storage fz:survival version set from storage fz:survival newVersion
data modify storage fz:survival date set value "2020-7.21"
data modify storage fz:survival time set value "1:14"
#提示已安装
data modify storage fz:survival installed.datapack set value 1b
tellraw @a {"text": "[信息]安装完成!","color": "#5fff00"}
tellraw @a {"text": "[信息]启动完毕","color": "#5fff00"}
#info: #5fff00
#alert: #d7ff00
#warn: #ffd900
#error: #ff6100
#抖M名单 -
#钩直饵咸 -
#交 -
#铁头功 -
#群p抖M -
#全部木大 -
#总交 -
#全员头铁 -
#{"text": "cm","color": "yellow"} - {"text": "HP"}
+22
View File
@@ -0,0 +1,22 @@
#新版本号
data modify storage fz:survival newVersion set value [2,2,0]
execute if data storage fz:survival newVersion[3] run data modify storage fz:survival snapshot set value 1b
execute unless data storage fz:survival newVersion[3] run data remove storage fz:survival snapshot
##data remove storage fz:survival snapshot
#版本号识别
scoreboard objectives add fz.cache dummy
execute store result score version1 fz.cache run data get storage fz:survival version[1]
execute store result score version2 fz.cache run data get storage fz:survival version[2]
execute store result score version3 fz.cache run data get storage fz:survival version[3]
execute store result score newVersion1 fz.cache run data get storage fz:survival newVersion[1]
execute store result score newVersion2 fz.cache run data get storage fz:survival newVersion[2]
execute store result score newVersion3 fz.cache run data get storage fz:survival newVersion[3]
#版本号比较
execute if data storage fz:survival installed{datapack: 1b} unless score version1 fz.cache = newVersion1 fz.cache run function fz:start/update
execute if data storage fz:survival installed{datapack: 1b} if score version1 fz.cache = newVersion1 fz.cache run function fz:start/00xx
scoreboard objectives remove fz.cache
#如果未安装且未卸载则安装
execute unless data storage fz:survival installed{datapack: 1b} unless data storage fz:survival installed{datapack: 0b} run function fz:install
#输出版本信息
execute unless data storage fz:survival {snapshot:1b} unless data storage fz:survival installed{datapack: 0b} run tellraw @a [{"text": "[版本信息]FZ's Datapack-","color": "#ffd900"},{"nbt":"version[0]","storage":"fz:survival","color": "#ffd900"},{"text":".","color": "#ffd900"},{"nbt":"version[1]","storage":"fz:survival","color": "#ffd900"},{"text": ".","color": "#ffd900"},{"nbt":"version[2]","storage":"fz:survival","color": "#ffd900"}]
execute if data storage fz:survival {snapshot:1b} unless data storage fz:survival installed{datapack: 0b} run tellraw @a [{"text": "[版本信息]FZ's Datapack-","color": "#ffd900"},{"nbt":"version[0]","storage":"fz:survival","color": "#ffd900"},{"text":".","color": "#ffd900"},{"nbt":"version[1]","storage":"fz:survival","color": "#ffd900"},{"text": ".","color": "#ffd900"},{"nbt":"version[2]","storage":"fz:survival","color": "#ffd900"},{"text": ".","color": "#ffd900"},{"nbt":"version[3]","storage":"fz:survival","color": "#ffd900"},{"text": "-SNAPSHOT","color": "red"}]
@@ -1,6 +0,0 @@
# 调用者:fz:logger/uninstall
##
tellraw @a [{"nbt": "fz.level.info", "interpret": true, "storage": "fz:logger"}, {"text": "已删除日志配置!"}]
data remove storage fz:logger fz
@@ -1,31 +0,0 @@
##### 使tellraw @a [{"nbt": "fz.exception.load_without_install_exception", "interpret": true, "storage": "fz:logger"}, {"text": "计分板"}]
##
data modify storage fz:logger fz.root set value '[{"text": "", "color": "white"}, {"text": "[", "color": "dark_gray"}, {"text": "FZD", "color": "gold"}, {"text": "]", "color": "dark_gray"}]'
##
### error 800
data modify storage fz:logger fz.level.error set value '[{"text": "", "color": "red"}, {"nbt": "root", "interpret": true, "storage": "fz:logger"}, {"text": "[错误]"}]'
### alert 600
data modify storage fz:logger fz.level.alert set value '[{"text": "", "color": "yellow"}, {"nbt": "fz.root", "interpret": true, "storage": "fz:logger"}, {"text": "[提醒]"}]'
### info 500
data modify storage fz:logger fz.level.info set value '[{"text": "", "color": "green"}, {"nbt": "fz.root", "interpret": true, "storage": "fz:logger"}, {"text": "[信息]"}]'
### debug 400
data modify storage fz:logger fz.level.debug set value '[{"text": "", "color": "dark_aqua"}, {"nbt": "fz.root", "interpret": true, "storage": "fz:logger"}, {"text": "[调试]"}]'
### fine 300
data modify storage fz:logger fz.level.fine set value '[{"text": "", "color": "gray"}, {"nbt": "fz.root", "interpret": true, "storage": "fz:logger"}, {"text": "[详细]"}]'
##
data modify storage fz:logger fz.exception.load_without_install_exception set value '[{"nbt": "fz.level.error", "interpret": true, "storage": "fz:logger"}, {"text": "模块在未安装时被加载:"}]'
##
execute unless data storage fz:logger fz.levels.current run data modify storage fz:logger fz.levels.current set value 500
##
execute store result score fz.logger.level fz.variable.integer run data get storage fz:logger fz.levels.current
##
data modify storage fz:installed fz.logger set value 1b
##
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,7 +0,0 @@
## debug 400
data modify storage fz:logger fz.levels.current set value 400
execute store result score fz.logger.level fz.variable.integer run data get storage fz:logger fz.levels.current
##
tellraw @a [{"nbt": "fz.level.info", "interpret": true, "storage": "fz:logger"}, {"text": "日志等级设为调试"}]
@@ -1,7 +0,0 @@
## fine 300
data modify storage fz:logger fz.levels.current set value 300
execute store result score fz.logger.level fz.variable.integer run data get storage fz:logger fz.levels.current
##
tellraw @a [{"nbt": "fz.level.info", "interpret": true, "storage": "fz:logger"}, {"text": "日志等级设为详细"}]
@@ -1,7 +0,0 @@
## info 500
data modify storage fz:logger fz.levels.current set value 500
execute store result score fz.logger.level fz.variable.integer run data get storage fz:logger fz.levels.current
##
tellraw @a [{"nbt": "fz.level.info", "interpret": true, "storage": "fz:logger"}, {"text": "日志等级设为一般信息"}]
-7
View File
@@ -1,7 +0,0 @@
# 调用者:#fz:logger/init
##
execute store result score fz.logger.level fz.variable.integer run data get storage fz:logger fz.levels.current
##
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,10 +0,0 @@
## #fz:logger/uninstall
##
data remove storage fz:installed fz.logger
##
execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{"nbt": "fz.level.debug", "interpret": true, "storage": "fz:logger"}, {"text": "已卸载系统组件:日志"}]
##
execute if score fz.logger.level fz.variable.integer matches ..600 run tellraw @s [{"nbt": "fz.level.alert", "interpret": true, "storage": "fz:logger"}, {"text": "您要删除日志配置吗,它将会永久失去!(真的很久!)"}, {"text": "[确定]", "color": "dark_red", "clickEvent": {"action": "suggest_command", "value": "/function #fz:logger/clear_data"}, "hoverEvent": {"action": "show_text", "contents": {"text": "将命令填入聊天框"}}}]

Some files were not shown because too many files have changed in this diff Show More