Compare commits

..

22 Commits

Author SHA1 Message Date
延皓 03d0d0df63 放置榜忽略流体,避免连点器刷榜 2023-01-10 01:01:56 +08:00
延皓 95abf97f17 扫地机~ 2023-01-08 07:59:55 +08:00
延皓 f886ca2ed5 Merge branch 'dev/3.0' of https://gitee.com/harvey-husky/yh-ssd into dev/3.0 2022-12-28 07:28:08 +08:00
延皓 ffe6930599 fix 2022-12-28 07:28:06 +08:00
延皓 1bfe996fb5 update DEVDOC.md.
Signed-off-by: 延皓 <8511461+harvey-husky@user.noreply.gitee.com>
2022-12-19 14:48:46 +00:00
延皓 4c66b76e1f update DEVDOC.md.
Signed-off-by: 延皓 <8511461+harvey-husky@user.noreply.gitee.com>
2022-12-19 14:47:16 +00:00
延皓 ab37f056d7 update DEVDOC.md.
Signed-off-by: 延皓 <8511461+harvey-husky@user.noreply.gitee.com>
2022-12-19 14:46:55 +00:00
延皓 caad1117c3 update README.md.
Signed-off-by: 延皓 <8511461+harvey-husky@user.noreply.gitee.com>
2022-12-10 22:09:19 +00:00
延皓 6ac7cbc246 update README.md.
Signed-off-by: 延皓 <8511461+harvey-husky@user.noreply.gitee.com>
2022-12-10 22:06:48 +00:00
延皓 6a26940eef update README.md.
Signed-off-by: 延皓 <8511461+harvey-husky@user.noreply.gitee.com>
2022-12-04 14:50:40 +00:00
延皓 dec77bb496 update LICENSE.
Signed-off-by: 延皓 <8511461+harvey-husky@user.noreply.gitee.com>
2022-11-18 20:20:50 +00:00
延皓 8325f9ec08 update LICENSE.
Signed-off-by: 延皓 <8511461+harvey-husky@user.noreply.gitee.com>
2022-11-18 20:20:38 +00:00
延皓 2fd72d84de 3.0.5 2022-10-30 09:05:38 +08:00
延皓 47bd69d3a8 整理 2022-10-30 09:04:19 +08:00
延皓 8162a7031a 为日志和游戏事件模块装卸添加单独的标签 2022-10-30 01:18:03 +08:00
延皓 08f73b9b9c 增强挖掘榜工具的扩展性、优化here 2022-10-30 00:33:56 +08:00
延皓 2a31e4a2c6 3.0.4 2022-10-28 23:44:07 +08:00
延皓 e431f13e49 Merge branch 'dev/3.0' of https://gitee.com/harvey-husky/yh-ssd into dev/3.0 2022-10-28 23:43:54 +08:00
延皓 718ed537c4 3.0.4 2022-10-28 23:43:45 +08:00
延皓 025d821495 update README.md.
Signed-off-by: 延皓 <1214946206@qq.com>
2022-10-27 13:13:06 +00:00
延皓 4625636ed4 恢复计分板时会召唤假人,并在完成后将其放在出生点 2022-09-29 22:57:00 +08:00
延皓 670ab5514c update readme 2022-09-26 12:37:35 +08:00
58 changed files with 211 additions and 247 deletions
+3 -3
View File
@@ -17,7 +17,7 @@
"storageText": "{\"nbt\": \"${1:NBT}\", \"interpret\": true, \"storage\": \"${2:A namespaced ID}\"}", "storageText": "{\"nbt\": \"${1:NBT}\", \"interpret\": true, \"storage\": \"${2:A namespaced ID}\"}",
"ifInstalled": "execute if data storage fzsd:installed fzsd.module{${1:module_name}:1b} run ${tellraw}" "ifInstalled": "execute if data storage fzsd:installed fzsd.module{${1:module_name}:1b} run ${tellraw}"
}, },
"datapack.env.cmdVersion": "1.18.2", "datapack.env.cmdVersion": "1.19",
"datapack.env.jsonVersion": "1.18.2", "datapack.env.jsonVersion": "1.19",
"datapack.env.dataVersion": "1.18.2" "datapack.env.dataVersion": "1.19"
} }
+2 -1
View File
@@ -18,6 +18,7 @@
"values": ... "values": ...
} }
``` ```
- ***函数和标签是否能被扩展数据包成功覆盖,取决于数据包加载顺序***,请使用`/datapack enable <xxx> after <xxx>`指令,使您的扩展数据包在FZ's Survival Datapack之后加载
## 基本要求 ## 基本要求
@@ -71,7 +72,7 @@
- *触发器分数为正数会重新向玩家发送交互按钮,如不想重新发送,请使用负数* - *触发器分数为正数会重新向玩家发送交互按钮,如不想重新发送,请使用负数*
- 大多数情况下这里的触发器分数必须是独一无二的 - 大多数情况下这里的触发器分数必须是独一无二的
- 建议使用`>10000`的随机数作为自定义按钮的触发器分数 - 建议使用`>10000`的随机数作为自定义按钮的触发器分数
2. 在[`#fzsd:module/interactor/display`](data/fzsd/tags/functions/module/interactor/display.json)标签中注册上述函数 2. 在[`#fzsd:module/interactor/event/on_display`](data/fzsd/tags/functions/module/interactor/display.json)标签中注册上述函数
3. 定义一个点击按钮时执行的函数,使用形如`execute if score @s fzsd.module.interactor.trigger matches <min>..<max> run ...`的指令判断玩家的触发器分数,并执行你的操作 3. 定义一个点击按钮时执行的函数,使用形如`execute if score @s fzsd.module.interactor.trigger matches <min>..<max> run ...`的指令判断玩家的触发器分数,并执行你的操作
4. 在[`#fzsd:module/interactor/event/on_click`](data/fzsd/tags/functions/module/interactor/event/on_click.json)标签中注册上述函数 4. 在[`#fzsd:module/interactor/event/on_click`](data/fzsd/tags/functions/module/interactor/event/on_click.json)标签中注册上述函数
+22 -23
View File
@@ -6,22 +6,26 @@
#### Copyright (C) 2019-2022 Harvey_Husky #### Copyright (C) 2019-2022 Harvey_Husky
[Bilibili专栏](https://www.bilibili.com/read/cv4267319)(年久失修)
## 安装教程 ## 安装教程
1. 兼容性 1. 兼容性
- `数据包 v3.0.x` 支持 `Minecraft 1.18.2/1.19.4` - `数据包 v3.0.x` 支持 `Minecraft 1.18.2-1.19.x`
- `数据包 v2.2.x` 支持 `Minecraft 1.19.x` - `数据包 v2.2.x` 支持 `Minecraft 1.19.x`
- `数据包 v2.1.x` 支持 `Minecraft 1.17.x-1.18.x` - `数据包 v2.1.x` 支持 `Minecraft 1.17.x-1.18.x`
- `数据包 v2.0.x` 支持 `Minecraft 1.16.3-1.16.5` - `数据包 v2.0.x` 支持 `Minecraft 1.16.3-1.16.5`
2. 前往[发行页面](https://gitee.com/harvey-husky/FZ-sDatapack/releases)下载对应MC版本的数据包 2. 前往[发行页面](https://gitee.com/harvey-husky/FZ-sDatapack/releases)下载对应MC版本的数据包
3. 将数据包 `zip` 文件放入 `world/datapacks` 中(在客户端位于 `.minecraft/saves/<存档名>/datapacks` 3. 从zip文件的 `scripts` 目录中挑选你需要的 `.sc` 文件
4. (可选)下载并安装 [Carpet Mod **1.4.24**](https://github.com/gnembon/fabric-carpet/releases) 或以上版本 4. 将数据包 `zip` 文件放入 `world/datapacks` 中(在客户端位于 `.minecraft/saves/<存档名>/datapacks`
5. (可选)从数据包 `zip` 文件的 `scripts` 目录中解压 `.sc` 文件,将其放入 `world/scripts` 中(在客户端位于 `.minecraft/saves/<存档名>/scripts` 5. (可选)下载并安装 [Carpet Mod **1.4.24**](https://github.com/gnembon/fabric-carpet/releases) 或以上版本
6. 执行 `reload` 指令(或重新打开存档 6. (可选)从数据包 `zip` 文件的 `scripts` 目录中解压 `.sc` 文件,将其放入 `world/scripts` 中(在客户端位于 `.minecraft/saves/<存档名>/scripts`
7. 执行 `reload` 指令(或重新打开存档;在一些第三方服务端中可能需要改为`/minecraft:reload`
# FZ生存数据包 3.0 # FZ生存数据包 3.0
[![数据包版本](https://img.shields.io/badge/正式版-3.0.10-blue.svg)](https://gitee.com/harvey-husky/FZ-sDatapack/releases) [![MC版本](https://img.shields.io/badge/Minecraft-1.18+-blue.svg)](https://minecraft.net/) [![数据包版本](https://img.shields.io/badge/正式版-3.0.5-blue.svg)](https://gitee.com/harvey-husky/FZ-sDatapack/releases) [![MC版本](https://img.shields.io/badge/Minecraft-1.19+-blue.svg)](https://minecraft.net/)
> 其他版本见[发行页面](https://gitee.com/harvey-husky/FZ-sDatapack/releases) > 其他版本见[发行页面](https://gitee.com/harvey-husky/FZ-sDatapack/releases)
@@ -55,21 +59,6 @@
| :------: | :----------------------------------------------: | | :------: | :----------------------------------------------: |
| 破基岩榜 |fzsd.module.scoreboard.display.bedrock_broken_count| | 破基岩榜 |fzsd.module.scoreboard.display.bedrock_broken_count|
- 系统总榜计分板:`fzsd.module.scoreboard.assign.general`
- 可以在在此记分板修改总分数据,下次加分时会刷新显示分数
- 总计分项名称对照表:
| 默认名称 | 计分板ID |
| :------: | :----------------------------------------------: |
| 总活跃时间 | fzsd.module.scoreboard.total.activation |
| 总飞行距离 | fzsd.module.scoreboard.total.aviating_distance |
| 总受伤害量 | fzsd.module.scoreboard.total.damage_taken |
| 总死亡数 | fzsd.module.scoreboard.total.death_count |
| 总挖掘量 | fzsd.module.scoreboard.total.dig_count |
| 总钓鱼数 | fzsd.module.scoreboard.total.fishing_count |
| 总击杀数 | fzsd.module.scoreboard.total.kill_count |
| 总放置方块数 | fzsd.module.scoreboard.total.placement_count |
| 总交易量 | fzsd.module.scoreboard.total.trade_count |
### 地毯脚本 ### 地毯脚本
@@ -79,19 +68,29 @@
- 脚本: - 脚本:
- `fzsd_score.sc`(**开发中!此处列举目前已完成的**): - `fzsd_score.sc`(**开发中!此处列举目前已完成的**):
- 可避免Carpet假人污染计分板 - 可避免Carpet假人污染计分板
- 执行 `reload` 指令后自动生效 - 可以标记哪些玩家是假人
- *注:请不要使用为假人名添加“bot”前缀的carpet扩展,本插件不支持此类假人!*
- 子命令( `/fzsd_score <子命令>` ): - 子命令( `/fzsd_score <子命令>` ):
- `updateFrom <version>`:用于从给定的数据包版本恢复计分板数据(需要测试!) - `updateFrom <version>`:用于从给定的数据包版本恢复计分板数据(需要测试!)
- `recalculate`:重新计算所有计分板总分 - `recalculate`:重新计算所有计分板总分
- `recalculate <scoreboardID>`:重新计算该计分板总分 - `recalculate <scoreboardID>`:重新计算该计分板总分
- `set <player> <scoreboardID> <score>`:设置该玩家该计分板的分数
- `reset <player>`:重置该玩家的所有分数 - `reset <player>`:重置该玩家的所有分数
- `reset <player> <scoreboardID>`:重置该玩家该计分板的分数 - `reset <player> <scoreboardID>`:重置该玩家该计分板的分数
- `restore player <玩家名> <计分板ID>`:恢复该玩家的该计分板分数
- `restore player <玩家名>`:恢复该玩家的所有计分板分数
- `restore whitelist <计分板ID>`:恢复所有白名单玩家的该计分板分数
- `restore whitelist`:恢复所有白名单玩家的所有计分板分数
- *副作用:恢复完成后玩家会被放置在出生点,请确保出生点完全安全*
- `commandPlayer <permissionType>`:设置player命令权限类型 - `commandPlayer <permissionType>`:设置player命令权限类型
### 管理员
- 使用`/function admin.fzsd:admin`命令管理(安装、卸载等)各模块
### 其他 ### 其他
- 见游戏内交互器按钮 - 见游戏内交互器按钮
## 开发者相关 ## 开发者相关
- 参见[开发文档](/DEVDOC.md) - 参见[开发文档](/DEVDOC.md)
@@ -33,6 +33,3 @@ tellraw @s [{"text": "上一出生点:"}, [{"text": "", "color": "dark_gray"},
tellraw @s [{"text": "计分板:"}, [{"text": "", "color": "dark_gray"}, [{"text": "[", "clickEvent": {"action": "run_command", "value": "/function #fzsd:module/scoreboard/install"}, "hoverEvent": {"action": "show_text", "contents": {"text": "安装", "color": "dark_green"}}}, {"text": "安装", "color": "dark_green"}, {"text": "]"}], [{"text": "[", "clickEvent": {"action": "run_command", "value": "/function #fzsd:module/scoreboard/uninstall"}, "hoverEvent": {"action": "show_text", "contents": {"text": "卸载", "color": "dark_red"}}}, {"text": "卸载", "color": "dark_red"}, {"text": "]"}]]] tellraw @s [{"text": "计分板:"}, [{"text": "", "color": "dark_gray"}, [{"text": "[", "clickEvent": {"action": "run_command", "value": "/function #fzsd:module/scoreboard/install"}, "hoverEvent": {"action": "show_text", "contents": {"text": "安装", "color": "dark_green"}}}, {"text": "安装", "color": "dark_green"}, {"text": "]"}], [{"text": "[", "clickEvent": {"action": "run_command", "value": "/function #fzsd:module/scoreboard/uninstall"}, "hoverEvent": {"action": "show_text", "contents": {"text": "卸载", "color": "dark_red"}}}, {"text": "卸载", "color": "dark_red"}, {"text": "]"}]]]
tellraw @s [{"text": "扫地机:"}, [{"text": "", "color": "dark_gray"}, [{"text": "[", "clickEvent": {"action": "run_command", "value": "/function #fzsd:module/sweeper/install"}, "hoverEvent": {"action": "show_text", "contents": {"text": "安装", "color": "dark_green"}}}, {"text": "安装", "color": "dark_green"}, {"text": "]"}], [{"text": "[", "clickEvent": {"action": "run_command", "value": "/function #fzsd:module/sweeper/uninstall"}, "hoverEvent": {"action": "show_text", "contents": {"text": "卸载", "color": "dark_red"}}}, {"text": "卸载", "color": "dark_red"}, {"text": "]"}],[{"text": "[", "clickEvent": {"action": "run_command", "value": "/data modify storage fzsd:module fzsd.sweeper.extra_interval set value 1b"}},{"text": "显示额外时间","color": "green"},{"text": "]"}],[{"text": "[", "clickEvent": {"action": "run_command", "value": "/data modify storage fzsd:module fzsd.sweeper.extra_interval set value 0b"}},{"text": "隐藏额外时间","color": "red"},{"text": "]"}]]]
@@ -1,6 +1,6 @@
{ {
"replace": false, "replace": false,
"values": [ "values": [
"fzsd.extra.bbl:display/set_text/dark_gray" "fzsd.extra.bbl:display/set_text/black"
] ]
} }
+1 -1
View File
@@ -1,4 +1,4 @@
execute store success storage fzsd:version fzsd.need_update int 1 run data merge storage fzsd:version {fzsd: {version: '3.0.11'}} execute store success storage fzsd:version fzsd.need_update int 1 run data merge storage fzsd:version {fzsd: {version: '3.0.7'}}
execute if data storage fzsd:version fzsd{need_update: 1} run function fzsd:system/update execute if data storage fzsd:version fzsd{need_update: 1} run function fzsd:system/update
function fzsd:system/carpet/try_load_fzsd_score function fzsd:system/carpet/try_load_fzsd_score
function #fzsd:load function #fzsd:load
@@ -7,4 +7,3 @@ function #fzsd:game_event/player/on_placed_block
## ##
advancement revoke @s from fzsd:game_event/on_placed_block advancement revoke @s from fzsd:game_event/on_placed_block
advancement revoke @s from fzsd:game_event/on_placed_block/on_placed_liquid
@@ -1 +1 @@
execute if data storage fzsd:install fzsd.module{join_message:1b} run function #fzsd:module/join_message/send_message execute if data storage fzsd:installed fzsd.module{join_message:1b} run function #fzsd:module/join_message/send_message
@@ -0,0 +1,7 @@
data modify storage fzsd:global fzsd.api.dimension.id set from entity @s LastDeathLocation.dimension
execute store result storage fzsd:last_death fzsd.x int 1 run data get entity @s LastDeathLocation.pos[0]
execute store result storage fzsd:last_death fzsd.y int 1 run data get entity @s LastDeathLocation.pos[1]
execute store result storage fzsd:last_death fzsd.z int 1 run data get entity @s LastDeathLocation.pos[2]
##
execute if score fzsd.logger.level fzsd.variable.integer matches ..400 run tellraw @a [{"nbt": "fzsd.level.debug", "interpret": true, "storage": "fzsd:logger"}, {"text": "玩家"}, {"selector": "@s"}, {"text": "获取了死亡点"}]
@@ -0,0 +1,5 @@
##
data modify storage fzsd:install fzsd.module.last_death set value 1b
##
execute if score fzsd.logger.level fzsd.variable.integer matches ..500 run tellraw @a [{"nbt": "fzsd.level.info", "interpret": true, "storage": "fzsd:logger"}, {"text": "已安装组件:上一死亡点"}]
@@ -0,0 +1 @@
execute if data storage fzsd:install fzsd.module{last_death:1b} run tellraw @s [{"text": "获取上一死亡点:"},[{"text": "[", "color": "dark_gray", "hoverEvent": {"action": "show_text", "value": "发送给:自己"}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -2100"}},{"text": "私信", "color": "aqua"},{"text": "]"}]]
@@ -0,0 +1 @@
execute if score @s fzsd.module.interactor.trigger matches -2100 run function #fzsd:module/last_death/private_message
@@ -0,0 +1,2 @@
execute if data entity @s LastDeathLocation run tellraw @s [{"text": "你上次死亡于"}, {"nbt": "fzsd.api.dimension.name", "interpret": true, "storage": "fzsd:global"}, [{"text": " [", "color": "green"}, {"nbt": "fzsd.x", "storage": "fzsd:last_death"}, {"text": ", "}, {"nbt": "fzsd.y", "storage": "fzsd:last_death"}, {"text": ", "}, {"nbt": "fzsd.z", "storage": "fzsd:last_death"}, {"text": "]"}]]
execute unless data entity @s LastDeathLocation run tellraw @s {"text": "你从未死亡!"}
@@ -0,0 +1 @@
execute unless data storage fzsd:install fzsd.module{last_death:0b} run function #fzsd:module/last_death/install
@@ -0,0 +1,7 @@
data remove storage fzsd:last_death fzsd
##
data modify storage fzsd:install fzsd.module.last_death set value 0b
##
execute if score fzsd.logger.level fzsd.variable.integer matches ..500 run tellraw @a [{"nbt": "fzsd.level.info", "interpret": true, "storage": "fzsd:logger"}, {"text": "已卸载组件:上一死亡点"}]
@@ -1,4 +1,2 @@
scoreboard players add @s fzsd.module.scoreboard.display.activation 1 scoreboard players add @s fzsd.module.scoreboard.display.activation 1
execute if score @s fzsd.module.scoreboard.display.activation matches ..-1 run scoreboard players set @s fzsd.module.scoreboard.display.activation 2147483647
scoreboard players add fzsd.module.scoreboard.total.activation fzsd.module.scoreboard.assign.general 1 scoreboard players add fzsd.module.scoreboard.total.activation fzsd.module.scoreboard.assign.general 1
execute if score fzsd.module.scoreboard.total.activation fzsd.module.scoreboard.assign.general matches ..-1 run scoreboard players set fzsd.module.scoreboard.total.activation fzsd.module.scoreboard.assign.general 2147483647
@@ -1,4 +1,2 @@
scoreboard players operation @s fzsd.module.scoreboard.display.aviating_distance += fzsd.var.score fzsd.variable.integer scoreboard players operation @s fzsd.module.scoreboard.display.aviating_distance += fzsd.var.score fzsd.variable.integer
execute if score @s fzsd.module.scoreboard.display.aviating_distance matches ..-1 run scoreboard players set @s fzsd.module.scoreboard.display.aviating_distance 2147483647
scoreboard players operation fzsd.module.scoreboard.total.aviating_distance fzsd.module.scoreboard.assign.general += fzsd.var.score fzsd.variable.integer scoreboard players operation fzsd.module.scoreboard.total.aviating_distance fzsd.module.scoreboard.assign.general += fzsd.var.score fzsd.variable.integer
execute if score fzsd.module.scoreboard.total.aviating_distance fzsd.module.scoreboard.assign.general matches ..-1 run scoreboard players set fzsd.module.scoreboard.total.aviating_distance fzsd.module.scoreboard.assign.general 2147483647
@@ -1,4 +1,2 @@
scoreboard players operation @s fzsd.module.scoreboard.display.damage_taken += fzsd.var.score fzsd.variable.integer scoreboard players operation @s fzsd.module.scoreboard.display.damage_taken += fzsd.var.score fzsd.variable.integer
execute if score @s fzsd.module.scoreboard.display.damage_taken matches ..-1 run scoreboard players set @s fzsd.module.scoreboard.display.damage_taken 2147483647
scoreboard players operation fzsd.module.scoreboard.total.damage_taken fzsd.module.scoreboard.assign.general += fzsd.var.score fzsd.variable.integer scoreboard players operation fzsd.module.scoreboard.total.damage_taken fzsd.module.scoreboard.assign.general += fzsd.var.score fzsd.variable.integer
execute if score fzsd.module.scoreboard.total.damage_taken fzsd.module.scoreboard.assign.general matches ..-1 run scoreboard players set fzsd.module.scoreboard.total.damage_taken fzsd.module.scoreboard.assign.general 2147483647
@@ -1,4 +1,2 @@
scoreboard players add @s fzsd.module.scoreboard.display.death_count 1 scoreboard players add @s fzsd.module.scoreboard.display.death_count 1
execute if score @s fzsd.module.scoreboard.display.death_count matches ..-1 run scoreboard players set @s fzsd.module.scoreboard.display.death_count 2147483647
scoreboard players add fzsd.module.scoreboard.total.death_count fzsd.module.scoreboard.assign.general 1 scoreboard players add fzsd.module.scoreboard.total.death_count fzsd.module.scoreboard.assign.general 1
execute if score fzsd.module.scoreboard.total.death_count fzsd.module.scoreboard.assign.general matches ..-1 run scoreboard players set fzsd.module.scoreboard.total.death_count fzsd.module.scoreboard.assign.general 2147483647
@@ -1,4 +1,2 @@
scoreboard players operation @s fzsd.module.scoreboard.display.dig_count += fzsd.var.score fzsd.variable.integer scoreboard players operation @s fzsd.module.scoreboard.display.dig_count += fzsd.var.score fzsd.variable.integer
execute if score @s fzsd.module.scoreboard.display.dig_count matches ..-1 run scoreboard players set @s fzsd.module.scoreboard.display.dig_count 2147483647
scoreboard players operation fzsd.module.scoreboard.total.dig_count fzsd.module.scoreboard.assign.general += fzsd.var.score fzsd.variable.integer scoreboard players operation fzsd.module.scoreboard.total.dig_count fzsd.module.scoreboard.assign.general += fzsd.var.score fzsd.variable.integer
execute if score fzsd.module.scoreboard.total.dig_count fzsd.module.scoreboard.assign.general matches ..-1 run scoreboard players set fzsd.module.scoreboard.total.dig_count fzsd.module.scoreboard.assign.general 2147483647
@@ -1,4 +1,2 @@
scoreboard players add @s fzsd.module.scoreboard.display.fishing_count 1 scoreboard players add @s fzsd.module.scoreboard.display.fishing_count 1
execute if score @s fzsd.module.scoreboard.display.fishing_count matches ..-1 run scoreboard players set @s fzsd.module.scoreboard.display.fishing_count 2147483647
scoreboard players add fzsd.module.scoreboard.total.fishing_count fzsd.module.scoreboard.assign.general 1 scoreboard players add fzsd.module.scoreboard.total.fishing_count fzsd.module.scoreboard.assign.general 1
execute if score fzsd.module.scoreboard.total.fishing_count fzsd.module.scoreboard.assign.general matches ..-1 run scoreboard players set fzsd.module.scoreboard.total.fishing_count fzsd.module.scoreboard.assign.general 2147483647
@@ -1,4 +1,2 @@
scoreboard players add @s fzsd.module.scoreboard.display.kill_count 1 scoreboard players add @s fzsd.module.scoreboard.display.kill_count 1
execute if score @s fzsd.module.scoreboard.display.kill_count matches ..-1 run scoreboard players set @s fzsd.module.scoreboard.display.kill_count 2147483647
scoreboard players add fzsd.module.scoreboard.total.kill_count fzsd.module.scoreboard.assign.general 1 scoreboard players add fzsd.module.scoreboard.total.kill_count fzsd.module.scoreboard.assign.general 1
execute if score fzsd.module.scoreboard.total.kill_count fzsd.module.scoreboard.assign.general matches ..-1 run scoreboard players set fzsd.module.scoreboard.total.kill_count fzsd.module.scoreboard.assign.general 2147483647
@@ -1,4 +1,2 @@
scoreboard players add @s fzsd.module.scoreboard.display.placement_count 1 scoreboard players add @s fzsd.module.scoreboard.display.placement_count 1
execute if score @s fzsd.module.scoreboard.display.placement_count matches ..-1 run scoreboard players set @s fzsd.module.scoreboard.display.placement_count 2147483647
scoreboard players add fzsd.module.scoreboard.total.placement_count fzsd.module.scoreboard.assign.general 1 scoreboard players add fzsd.module.scoreboard.total.placement_count fzsd.module.scoreboard.assign.general 1
execute if score fzsd.module.scoreboard.total.placement_count fzsd.module.scoreboard.assign.general matches ..-1 run scoreboard players set fzsd.module.scoreboard.total.placement_count fzsd.module.scoreboard.assign.general 2147483647
@@ -1,4 +1,2 @@
scoreboard players add @s fzsd.module.scoreboard.display.trade_count 1 scoreboard players add @s fzsd.module.scoreboard.display.trade_count 1
execute if score @s fzsd.module.scoreboard.display.trade_count matches ..-1 run scoreboard players set @s fzsd.module.scoreboard.display.trade_count 2147483647
scoreboard players add fzsd.module.scoreboard.total.trade_count fzsd.module.scoreboard.assign.general 1 scoreboard players add fzsd.module.scoreboard.total.trade_count fzsd.module.scoreboard.assign.general 1
execute if score fzsd.module.scoreboard.total.trade_count fzsd.module.scoreboard.assign.general matches ..-1 run scoreboard players set fzsd.module.scoreboard.total.trade_count fzsd.module.scoreboard.assign.general 2147483647
@@ -11,13 +11,5 @@ schedule clear fzsd:module/sweeper/timer/1min
schedule clear fzsd:module/sweeper/timer/2min schedule clear fzsd:module/sweeper/timer/2min
schedule clear fzsd:module/sweeper/timer/3min schedule clear fzsd:module/sweeper/timer/3min
schedule clear fzsd:module/sweeper/timer/4min schedule clear fzsd:module/sweeper/timer/4min
schedule clear fzsd:module/sweeper/timer/5min
schedule clear fzsd:module/sweeper/timer/6min
schedule clear fzsd:module/sweeper/timer/7min
schedule clear fzsd:module/sweeper/timer/8min
schedule clear fzsd:module/sweeper/timer/9min
schedule clear fzsd:module/sweeper/timer/10min
schedule clear fzsd:module/sweeper/timer/12min
schedule clear fzsd:module/sweeper/timer/15min
bossbar set fzsd:sweeper visible false bossbar set fzsd:sweeper visible false
bossbar set fzsd:sweeper value 0 bossbar set fzsd:sweeper value 0
@@ -9,5 +9,4 @@ tellraw @s[tag=fzsd.ignore_sweeper_sound] [{"text": "- 音效:"}, [{"text": "[
tellraw @s[tag=!fzsd.ignore_sweeper_message] [{"text": "- 消息:"}, [{"text": "[", "color": "gray", "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set 3600"}}, {"text": "已开启", "color": "green"}, {"text": "]", "color": "gray"}]] tellraw @s[tag=!fzsd.ignore_sweeper_message] [{"text": "- 消息:"}, [{"text": "[", "color": "gray", "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set 3600"}}, {"text": "已开启", "color": "green"}, {"text": "]", "color": "gray"}]]
tellraw @s[tag=fzsd.ignore_sweeper_message] [{"text": "- 消息:"}, [{"text": "[", "color": "gray", "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set 3601"}}, {"text": "已关闭", "color": "red"}, {"text": "]", "color": "gray"}]] tellraw @s[tag=fzsd.ignore_sweeper_message] [{"text": "- 消息:"}, [{"text": "[", "color": "gray", "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set 3601"}}, {"text": "已关闭", "color": "red"}, {"text": "]", "color": "gray"}]]
tellraw @s [{"text": "- 开关:"}, [{"text": "[", "color": "dark_gray", "hoverEvent": {"action": "show_text", "contents": {"text": "", "color": "dark_red"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -3000"}}, {"text": "", "color": "red"}, {"text": "]"}], [{"text": "[", "color": "gray", "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -3300"}}, {"text": "清理一次", "color": "aqua"}, {"text": "]", "color": "gray"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"text": "10s", "color": "#aa0000"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -4010"}}, {"text": "10s", "color": "#aa0000"}, {"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"text": "30s", "color": "#da7924"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -4030"}}, {"text": "30s", "color": "#da7924"}, {"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"text": "1min", "color": "#ffe34c"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -4060"}}, {"text": "1min", "color": "#ffe34c"}, {"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"text": "2min", "color": "#e3ff50"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -4120"}}, {"text": "2min", "color": "#e3ff50"}, {"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"text": "3min", "color": "#81d42c"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -4180"}}, {"text": "3min", "color": "#81d42c"}, {"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"text": "4min", "color": "#00aa00"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -4240"}}, {"text": "4min", "color": "#00aa00"}, {"text": "]"}]] tellraw @s [{"text": "- 开关:"}, [{"text": "[", "color": "dark_gray", "hoverEvent": {"action": "show_text", "contents": {"text": "", "color": "dark_red"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -3000"}}, {"text": "", "color": "red"}, {"text": "]"}], [{"text": "[", "color": "gray", "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -3300"}}, {"text": "清理一次", "color": "aqua"}, {"text": "]", "color": "gray"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"text": "10s", "color": "#aa0000"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -3010"}}, {"text": "10s", "color": "#aa0000"}, {"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"text": "30s", "color": "#da7924"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -3030"}}, {"text": "30s", "color": "#da7924"}, {"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"text": "1min", "color": "#ffe34c"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -3060"}}, {"text": "1min", "color": "#ffe34c"}, {"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"text": "2min", "color": "#e3ff50"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -3120"}}, {"text": "2min", "color": "#e3ff50"}, {"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"text": "3min", "color": "#81d42c"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -3180"}}, {"text": "3min", "color": "#81d42c"}, {"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"text": "4min", "color": "#00aa00"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -3240"}}, {"text": "4min", "color": "#00aa00"}, {"text": "]"}]]
execute if data storage fzsd:module fzsd.sweeper{extra_interval:1b} run tellraw @s [{"text": "- 额外:"}, [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"text": "5min", "color": "#aa0000"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -4300"}}, {"text": "5min", "color": "#aa0000"}, {"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"text": "6min", "color": "#da7924"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -4360"}}, {"text": "6min", "color": "#da7924"}, {"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"text": "7min", "color": "#ffe34c"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -4420"}}, {"text": "7min", "color": "#ffe34c"}, {"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"text": "8min", "color": "#e3ff50"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -4480"}}, {"text": "8min", "color": "#e3ff50"}, {"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"text": "9min", "color": "#81d42c"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -4540"}}, {"text": "9min", "color": "#81d42c"}, {"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"text": "10min", "color": "#00aa00"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -4600"}}, {"text": "10min", "color": "#00aa00"}, {"text": "]"}],[{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"text": "12min", "color": "light_purple"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -4720"}}, {"text": "12min", "color": "light_purple"}, {"text": "]"}],[{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"text": "15min", "color": "dark_purple"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -4900"}}, {"text": "15min", "color": "dark_purple"}, {"text": "]"}]]
@@ -6,4 +6,4 @@ execute if score @s fzsd.module.interactor.trigger matches 3600 run tag @s add f
execute if score @s fzsd.module.interactor.trigger matches 3601 run tag @s remove fzsd.ignore_sweeper_message execute if score @s fzsd.module.interactor.trigger matches 3601 run tag @s remove fzsd.ignore_sweeper_message
execute if score @s fzsd.module.interactor.trigger matches -3300 run function #fzsd:module/sweeper/sweep execute if score @s fzsd.module.interactor.trigger matches -3300 run function #fzsd:module/sweeper/sweep
execute if score @s fzsd.module.interactor.trigger matches -3000 run function #fzsd:module/sweeper/stop_loop execute if score @s fzsd.module.interactor.trigger matches -3000 run function #fzsd:module/sweeper/stop_loop
execute if score @s fzsd.module.interactor.trigger matches -4900..-4010 run function #fzsd:module/sweeper/start_loop execute if score @s fzsd.module.interactor.trigger matches -3240..-3010 run function #fzsd:module/sweeper/start_loop
@@ -1,5 +1,5 @@
# 获取间隔时间 # 获取间隔时间
scoreboard players set fzsd.sweeper.interval_time fzsd.variable.integer 4000 scoreboard players set fzsd.sweeper.interval_time fzsd.variable.integer 3000
scoreboard players operation fzsd.sweeper.interval_time fzsd.variable.integer += @s fzsd.module.interactor.trigger scoreboard players operation fzsd.sweeper.interval_time fzsd.variable.integer += @s fzsd.module.interactor.trigger
scoreboard players operation fzsd.sweeper.interval_time fzsd.variable.integer *= -1 fzsd.variable.integer scoreboard players operation fzsd.sweeper.interval_time fzsd.variable.integer *= -1 fzsd.variable.integer
# 设为显示 # 设为显示
@@ -4,12 +4,4 @@ execute if score fzsd.sweeper.interval_time fzsd.variable.integer matches 60 run
execute if score fzsd.sweeper.interval_time fzsd.variable.integer matches 120 run function fzsd:module/sweeper/timer/2min execute if score fzsd.sweeper.interval_time fzsd.variable.integer matches 120 run function fzsd:module/sweeper/timer/2min
execute if score fzsd.sweeper.interval_time fzsd.variable.integer matches 180 run function fzsd:module/sweeper/timer/3min execute if score fzsd.sweeper.interval_time fzsd.variable.integer matches 180 run function fzsd:module/sweeper/timer/3min
execute if score fzsd.sweeper.interval_time fzsd.variable.integer matches 240 run function fzsd:module/sweeper/timer/4min execute if score fzsd.sweeper.interval_time fzsd.variable.integer matches 240 run function fzsd:module/sweeper/timer/4min
execute if score fzsd.sweeper.interval_time fzsd.variable.integer matches 300 run function fzsd:module/sweeper/timer/5min
execute if score fzsd.sweeper.interval_time fzsd.variable.integer matches 360 run function fzsd:module/sweeper/timer/6min
execute if score fzsd.sweeper.interval_time fzsd.variable.integer matches 420 run function fzsd:module/sweeper/timer/7min
execute if score fzsd.sweeper.interval_time fzsd.variable.integer matches 480 run function fzsd:module/sweeper/timer/8min
execute if score fzsd.sweeper.interval_time fzsd.variable.integer matches 540 run function fzsd:module/sweeper/timer/9min
execute if score fzsd.sweeper.interval_time fzsd.variable.integer matches 600 run function fzsd:module/sweeper/timer/10min
execute if score fzsd.sweeper.interval_time fzsd.variable.integer matches 720 run function fzsd:module/sweeper/timer/12min
execute if score fzsd.sweeper.interval_time fzsd.variable.integer matches 900 run function fzsd:module/sweeper/timer/15min
scoreboard players operation fzsd.sweeper.bossbar.current_time fzsd.variable.integer = fzsd.sweeper.interval_time fzsd.variable.integer scoreboard players operation fzsd.sweeper.bossbar.current_time fzsd.variable.integer = fzsd.sweeper.interval_time fzsd.variable.integer
@@ -1,5 +0,0 @@
execute if score fzsd.logger.level fzsd.variable.integer matches ..600 run tellraw @a[tag=!fzsd.ignore_sweeper_message] [{"nbt": "fzsd.level.alert", "interpret": true, "storage": "fzsd:logger"}, {"text": "10分钟后清理掉落物"}]
execute as @a[tag=!fzsd.ignore_sweeper_sound] at @s run playsound minecraft:block.note_block.pling voice @s ~ ~ ~ 1 1
bossbar set fzsd:sweeper color green
bossbar set fzsd:sweeper value 60
schedule function fzsd:module/sweeper/timer/5min 300s
@@ -1,5 +0,0 @@
execute if score fzsd.logger.level fzsd.variable.integer matches ..600 run tellraw @a[tag=!fzsd.ignore_sweeper_message] [{"nbt": "fzsd.level.alert", "interpret": true, "storage": "fzsd:logger"}, {"text": "12分钟后清理掉落物"}]
execute as @a[tag=!fzsd.ignore_sweeper_sound] at @s run playsound minecraft:block.note_block.pling voice @s ~ ~ ~ 1 1
bossbar set fzsd:sweeper color green
bossbar set fzsd:sweeper value 60
schedule function fzsd:module/sweeper/timer/10min 120s
@@ -1,5 +0,0 @@
execute if score fzsd.logger.level fzsd.variable.integer matches ..600 run tellraw @a[tag=!fzsd.ignore_sweeper_message] [{"nbt": "fzsd.level.alert", "interpret": true, "storage": "fzsd:logger"}, {"text": "15分钟后清理掉落物"}]
execute as @a[tag=!fzsd.ignore_sweeper_sound] at @s run playsound minecraft:block.note_block.pling voice @s ~ ~ ~ 1 1
bossbar set fzsd:sweeper color green
bossbar set fzsd:sweeper value 60
schedule function fzsd:module/sweeper/timer/10min 300s
@@ -1,5 +0,0 @@
execute if score fzsd.logger.level fzsd.variable.integer matches ..600 run tellraw @a[tag=!fzsd.ignore_sweeper_message] [{"nbt": "fzsd.level.alert", "interpret": true, "storage": "fzsd:logger"}, {"text": "5分钟后清理掉落物"}]
execute as @a[tag=!fzsd.ignore_sweeper_sound] at @s run playsound minecraft:block.note_block.pling voice @s ~ ~ ~ 1 1
bossbar set fzsd:sweeper color green
bossbar set fzsd:sweeper value 60
schedule function fzsd:module/sweeper/timer/4min 60s
@@ -1,5 +0,0 @@
execute if score fzsd.logger.level fzsd.variable.integer matches ..600 run tellraw @a[tag=!fzsd.ignore_sweeper_message] [{"nbt": "fzsd.level.alert", "interpret": true, "storage": "fzsd:logger"}, {"text": "6分钟后清理掉落物"}]
execute as @a[tag=!fzsd.ignore_sweeper_sound] at @s run playsound minecraft:block.note_block.pling voice @s ~ ~ ~ 1 1
bossbar set fzsd:sweeper color green
bossbar set fzsd:sweeper value 60
schedule function fzsd:module/sweeper/timer/4min 120s
@@ -1,5 +0,0 @@
execute if score fzsd.logger.level fzsd.variable.integer matches ..600 run tellraw @a[tag=!fzsd.ignore_sweeper_message] [{"nbt": "fzsd.level.alert", "interpret": true, "storage": "fzsd:logger"}, {"text": "7分钟后清理掉落物"}]
execute as @a[tag=!fzsd.ignore_sweeper_sound] at @s run playsound minecraft:block.note_block.pling voice @s ~ ~ ~ 1 1
bossbar set fzsd:sweeper color green
bossbar set fzsd:sweeper value 60
schedule function fzsd:module/sweeper/timer/5min 120s
@@ -1,5 +0,0 @@
execute if score fzsd.logger.level fzsd.variable.integer matches ..600 run tellraw @a[tag=!fzsd.ignore_sweeper_message] [{"nbt": "fzsd.level.alert", "interpret": true, "storage": "fzsd:logger"}, {"text": "8分钟后清理掉落物"}]
execute as @a[tag=!fzsd.ignore_sweeper_sound] at @s run playsound minecraft:block.note_block.pling voice @s ~ ~ ~ 1 1
bossbar set fzsd:sweeper color green
bossbar set fzsd:sweeper value 60
schedule function fzsd:module/sweeper/timer/5min 180s
@@ -1,5 +0,0 @@
execute if score fzsd.logger.level fzsd.variable.integer matches ..600 run tellraw @a[tag=!fzsd.ignore_sweeper_message] [{"nbt": "fzsd.level.alert", "interpret": true, "storage": "fzsd:logger"}, {"text": "9分钟后清理掉落物"}]
execute as @a[tag=!fzsd.ignore_sweeper_sound] at @s run playsound minecraft:block.note_block.pling voice @s ~ ~ ~ 1 1
bossbar set fzsd:sweeper color green
bossbar set fzsd:sweeper value 60
schedule function fzsd:module/sweeper/timer/5min 240s
@@ -1,54 +1,7 @@
{
"condition": "minecraft:alternative",
"terms": [
{ {
"condition": "minecraft:entity_properties", "condition": "minecraft:entity_properties",
"entity": "this", "entity": "this",
"predicate": { "predicate": {
"nbt": "{Item:{id:\"minecraft:minecart\"}}" "nbt": "{Item:{id:\"minecraft:minecart\"}}"
} }
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Item:{id:\"minecraft:oak_boat\"}}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Item:{id:\"minecraft:birch_boat\"}}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Item:{id:\"minecraft:acacia_boat\"}}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Item:{id:\"minecraft:jungle_boat\"}}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Item:{id:\"minecraft:spruce_boat\"}}"
}
},
{
"condition": "minecraft:entity_properties",
"entity": "this",
"predicate": {
"nbt": "{Item:{id:\"minecraft:dark_oak_boat\"}}"
}
}
]
} }
@@ -4,6 +4,7 @@
"fzsd:module/interactor/interactor/on_click", "fzsd:module/interactor/interactor/on_click",
"#fzsd:module/scoreboard/interactor/on_click", "#fzsd:module/scoreboard/interactor/on_click",
"#fzsd:module/here/interactor/on_click", "#fzsd:module/here/interactor/on_click",
"#fzsd:module/last_death/interactor/on_click",
"#fzsd:module/last_nether_portal/interactor/on_click", "#fzsd:module/last_nether_portal/interactor/on_click",
"#fzsd:module/last_spawn_point/interactor/on_click", "#fzsd:module/last_spawn_point/interactor/on_click",
"#fzsd:module/sweeper/interactor/on_click" "#fzsd:module/sweeper/interactor/on_click"
@@ -5,6 +5,7 @@
"fzsd:module/interactor/interactor/display", "fzsd:module/interactor/interactor/display",
"#fzsd:module/scoreboard/interactor/display", "#fzsd:module/scoreboard/interactor/display",
"#fzsd:module/here/interactor/display", "#fzsd:module/here/interactor/display",
"#fzsd:module/last_death/interactor/display",
"#fzsd:module/last_nether_portal/interactor/display", "#fzsd:module/last_nether_portal/interactor/display",
"#fzsd:module/last_spawn_point/interactor/display", "#fzsd:module/last_spawn_point/interactor/display",
"#fzsd:module/sweeper/interactor/display" "#fzsd:module/sweeper/interactor/display"
@@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"fzsd:module/join_message/default_message"
]
}
@@ -1,6 +1,6 @@
{ {
"replace": false, "replace": false,
"values": [ "values": [
"fzsd:module/join_message/default_message" "#fzsd:module/join_message/default_message"
] ]
} }
@@ -0,0 +1,7 @@
{
"replace": false,
"values": [
"fzsd:module/last_death/get_death_point",
"#fzsd:api/get_dimension_name"
]
}
@@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"fzsd:module/last_death/install"
]
}
@@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"fzsd:module/last_death/interactor/display"
]
}
@@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"fzsd:module/last_death/interactor/on_click"
]
}
@@ -0,0 +1,7 @@
{
"replace": false,
"values": [
"#fzsd:module/last_death/get_death_point",
"fzsd:module/last_death/private_message"
]
}
@@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"fzsd:module/last_death/uninstall"
]
}
@@ -2,7 +2,7 @@
"replace": false, "replace": false,
"values": [ "values": [
"fzsd:module/sweeper/clear", "fzsd:module/sweeper/clear",
"fzsd:module/sweeper/pre_loop", "fzsd:module/sweeper/post_loop",
"fzsd:module/sweeper/start_timer", "fzsd:module/sweeper/start_timer",
"fzsd:module/sweeper/bossbar" "fzsd:module/sweeper/bossbar"
] ]
@@ -4,6 +4,7 @@
"#fzsd:module/health/install", "#fzsd:module/health/install",
"#fzsd:module/here/install", "#fzsd:module/here/install",
"#fzsd:module/interactor/install", "#fzsd:module/interactor/install",
"#fzsd:module/last_death/install",
"#fzsd:module/last_nether_portal/install", "#fzsd:module/last_nether_portal/install",
"#fzsd:module/last_spawn_point/install", "#fzsd:module/last_spawn_point/install",
"#fzsd:module/scoreboard/install", "#fzsd:module/scoreboard/install",
@@ -5,6 +5,7 @@
"fzsd:module/here/try_install", "fzsd:module/here/try_install",
"fzsd:module/interactor/try_install", "fzsd:module/interactor/try_install",
"fzsd:module/join_message/try_install", "fzsd:module/join_message/try_install",
"fzsd:module/last_death/try_install",
"fzsd:module/last_nether_portal/try_install", "fzsd:module/last_nether_portal/try_install",
"fzsd:module/last_spawn_point/try_install", "fzsd:module/last_spawn_point/try_install",
"fzsd:module/scoreboard/try_install", "fzsd:module/scoreboard/try_install",
@@ -5,6 +5,7 @@
"#fzsd:module/health/uninstall", "#fzsd:module/health/uninstall",
"#fzsd:module/here/uninstall", "#fzsd:module/here/uninstall",
"#fzsd:module/interactor/uninstall", "#fzsd:module/interactor/uninstall",
"#fzsd:module/last_death/uninstall",
"#fzsd:module/last_nether_portal/uninstall", "#fzsd:module/last_nether_portal/uninstall",
"#fzsd:module/last_spawn_point/uninstall", "#fzsd:module/last_spawn_point/uninstall",
"#fzsd:module/scoreboard/uninstall", "#fzsd:module/scoreboard/uninstall",
@@ -3,7 +3,6 @@
"values": [ "values": [
"minecraft:lava_bucket", "minecraft:lava_bucket",
"minecraft:water_bucket", "minecraft:water_bucket",
"minecraft:powder_snow_bucket",
"#fzsd:bucket_of_mob" "#fzsd:bucket_of_mob"
] ]
} }
+1
View File
@@ -5,6 +5,7 @@
"minecraft:salmon_bucket", "minecraft:salmon_bucket",
"minecraft:axolotl_bucket", "minecraft:axolotl_bucket",
"minecraft:pufferfish_bucket", "minecraft:pufferfish_bucket",
"minecraft:powder_snow_bucket",
"minecraft:tropical_fish_bucket" "minecraft:tropical_fish_bucket"
] ]
} }
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"pack": { "pack": {
"description": "FZ Survival Datapack 3.0 | Author: Harvey_Husky", "description": "FZ Survival Datapack 3.0 | Author: Harvey_Husky",
"pack_format": 9 "pack_format": 10
} }
} }
+80 -63
View File
@@ -19,11 +19,41 @@ require_not_null(value) -> (
); );
require_version(requirement) -> ( require_version(requirement) -> (
req_ver = split('\\.', requirement); req_0 = slice(requirement, 0, 1);
req_1 = slice(requirement, 1, 2);
if(req_0 == '>',
if(req_1 == '=',
req_ver = split('>=|\\.', requirement);
print(player('all'), req_ver);
cur_ver = split('\\.', global_carpet_version); cur_ver = split('\\.', global_carpet_version);
return(number(cur_ver:0) >= number(req_ver:0) return(number(req_ver:1) >= number(cur_ver:0)
&& number(cur_ver:1) >= number(req_ver:1) && number(req_ver:2) >= number(cur_ver:1)
&& number(cur_ver:2) >= number(req_ver:2)); && number(req_ver:3) >= number(cur_ver:2));
);
req_ver = split('>|\\.', requirement);
print(player('all'), req_ver);
cur_ver = split('\\.', global_carpet_version);
return(number(req_ver:1) > number(cur_ver:0)
&& number(req_ver:2) > number(cur_ver:1)
&& number(req_ver:3) > number(cur_ver:2));
);
if(req_0 == '<',
if(req_1 == '=',
req_ver = split('<=|\\.', requirement);
print(player('all'), req_ver);
cur_ver = split('\\.', global_carpet_version);
return(number(req_ver:1) <= number(cur_ver:0)
&& number(req_ver:2) <= number(cur_ver:1)
&& number(req_ver:3) <= number(cur_ver:2));
);
req_ver = split('<|\\.', requirement);
print(player('all'), req_ver);
cur_ver = split('\\.', global_carpet_version);
return(number(req_ver:1) < number(cur_ver:0)
&& number(req_ver:2) < number(cur_ver:1)
&& number(req_ver:3) < number(cur_ver:2));
);
return(false);
); );
//** 主要逻辑 **// //** 主要逻辑 **//
@@ -115,7 +145,22 @@ __config() -> {
}; };
__on_start() -> ( __on_start() -> (
reload_configs(); // 读取配置文件
global_config = read_file('config', 'json');
if(global_config == null, // carpet 1.4.69 兼容
global_config = {};
);
if(length(global_config) == 0, // 读取失败或不存在
delete_file('config', 'json'); // 避免一些意外的问题
global_config:'config_version' = '1.0.0'; // 占位用无实际作用
if(require_version('>=1.99.99'), // 等待新功能支持
global_config:'allow_spawn_whitelist_player' = false;
write_file('config', 'json', global_config);
,
// else
write_file('config', 'json', global_config);
);
);
global_team_cache = read_file('team_cache', 'json'); global_team_cache = read_file('team_cache', 'json');
if(global_team_cache == null, // carpet 1.4.69 兼容 if(global_team_cache == null, // carpet 1.4.69 兼容
global_team_cache = {}; global_team_cache = {};
@@ -128,14 +173,12 @@ __on_close() -> (
write_file('team_cache', 'json', global_team_cache); write_file('team_cache', 'json', global_team_cache);
); );
if(require_version('1.4.112'), // 新功能支持 if(require_version('>=1.99.99'), // 等待新功能支持
__on_player_command(player, command) -> ( __on_player_command(player, message) -> (
l = length(command); print(player('all'), 'command!');
if(l > 13 if(length(message) > 7
&& slice(command, 0, 6) == 'player' && slice(message, 0, 7) == '/player'
&& slice(command, l - 5, l) == 'spawn' && !(global_config:'allow_spawn_whitelist_player'),
&& !(global_config:'allow_spawn_whitelist_player')
&& contains(get_server_whitelist(), slice(command, 7, l - 6)),
return('cancel'); return('cancel');
); );
); );
@@ -143,11 +186,11 @@ if(require_version('1.4.112'), // 新功能支持
__on_player_connects(player) -> ( __on_player_connects(player) -> (
player_type = player ~ 'player_type'; player_type = player ~ 'player_type';
player_team = player ~ 'team';
player_name = player ~ 'name';
if(player_type == 'fake', if(player_type == 'fake',
( (
player_team = player ~ 'team';
if(player_team != 'fzsd.module.scoreboard.fake', if(player_team != 'fzsd.module.scoreboard.fake',
player_name = player ~ 'name';
global_team_cache:player_name = player_team; global_team_cache:player_name = player_team;
); );
team_add('fzsd.module.scoreboard.fake', player); team_add('fzsd.module.scoreboard.fake', player);
@@ -155,9 +198,7 @@ __on_player_connects(player) -> (
), ),
player_type == 'shadow', player_type == 'shadow',
( (
player_team = player ~ 'team';
if(player_team != 'fzsd.module.scoreboard.shadow', if(player_team != 'fzsd.module.scoreboard.shadow',
player_name = player ~ 'name';
global_team_cache:player_name = player_team; global_team_cache:player_name = player_team;
); );
team_add('fzsd.module.scoreboard.shadow', player); team_add('fzsd.module.scoreboard.shadow', player);
@@ -181,35 +222,6 @@ __on_player_disconnects(player, reason) -> (
try_restore_team_from_cache(player); try_restore_team_from_cache(player);
); );
// 获取服务器白名单
get_server_whitelist() -> (
return(keys(system_info('server_whitelist')));
);
// 重载配置文件
reload_configs() -> (
// 读取配置文件
global_config = read_file('config', 'json');
if(global_config == null, // carpet 1.4.69 兼容
global_config = {};
);
config_changed = false;
// 读取失败或不存在
if(length(global_config) == 0,
global_config:'config_version' = '1.0.0'; // 占位用无实际作用
config_changed = true;
);
// 新功能支持
if(require_version('1.4.112') && !contains(global_config, 'allow_spawn_whitelist_player'),
global_config:'allow_spawn_whitelist_player' = false;
config_changed = true;
);
if(config_changed == true,
delete_file('config', 'json'); // 避免一些意外的问题
write_file('config', 'json', global_config);
);
);
// 获取所有计分板下的所有玩家列表 // 获取所有计分板下的所有玩家列表
get_scoreboard_player_list() -> ( get_scoreboard_player_list() -> (
set = m(); set = m();
@@ -383,14 +395,20 @@ merge_score(from, to, fzsd_version) -> (
// 获取承载总榜数据的玩家名 // 获取承载总榜数据的玩家名
// 因为新计分板允许玩家自定义显示的总榜名称故做复杂判断才能使脚本确定用来承载总榜数据的玩家名 // 因为新计分板允许玩家自定义显示的总榜名称故做复杂判断才能使脚本确定用来承载总榜数据的玩家名
get_total_score_name_new(scoreboard) -> ( get_total_score_name_new(scoreboard) -> (
// 系统总榜id INT_MIN = -2147483648;
sys_total_name = replace(scoreboard, 'display', 'total'); // 获取系统总榜id
system_total_name = replace(scoreboard, 'display', 'total');
// 当前总分
current_score = scoreboard('fzsd.module.scoreboard.assign.general', sys_total_name);
// 将系统总榜分数设为INT_MIN使其成为最低分 // 将系统总榜分数加上最小int值使其成为最低分
scoreboard('fzsd.module.scoreboard.assign.general', sys_total_name, -2147483648); scoreboard(
'fzsd.module.scoreboard.assign.general',
system_total_name,
scoreboard(
'fzsd.module.scoreboard.assign.general',
system_total_name
) + INT_MIN
);
// 将总分赋值到显示计分板上 // 将总分赋值到显示计分板上
display_total_score(scoreboard); display_total_score(scoreboard);
@@ -409,7 +427,14 @@ get_total_score_name_new(scoreboard) -> (
); );
// 恢复总榜分数 // 恢复总榜分数
scoreboard('fzsd.module.scoreboard.assign.general', sys_total_name, current_score); scoreboard(
'fzsd.module.scoreboard.assign.general',
system_total_name,
scoreboard(
'fzsd.module.scoreboard.assign.general',
system_total_name
) - INT_MIN
);
display_total_score(scoreboard); display_total_score(scoreboard);
// 返回榜内最低分的玩家名承载总榜数据的玩家名 // 返回榜内最低分的玩家名承载总榜数据的玩家名
@@ -427,15 +452,7 @@ command_recalculate_total_score(scoreboard) -> (
total_score = 0; total_score = 0;
for(scoreboard(scoreboard), for(scoreboard(scoreboard),
if(_ != total_score_name_new, if(_ != total_score_name_new,
current_player_score = scoreboard(scoreboard, _); total_score += scoreboard(scoreboard, _);
if(current_player_score < 0, // 避免溢出
current_player_score = 2147483647;
scoreboard(scoreboard, _, 2147483647);
);
total_score += current_player_score;
);
if(total_score < 0, // 避免溢出
total_score = 2147483647;
); );
); );
// 赋值总分到系统总分计分板 // 赋值总分到系统总分计分板
@@ -512,7 +529,7 @@ restore_score(player_name, scoreboard) -> (
require_not_null(player_name); require_not_null(player_name);
if(scoreboard == null, if(scoreboard == null,
for(global_current_scoreboard_list, restore_score(player_name, _)); for(global_current_scoreboard_list, restore_score(player_name, _));
return(true); return();
); );
player = player(player_name); player = player(player_name);
player_is_offline = false; player_is_offline = false;