Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 83cfe50ae2 | |||
| 3dad2f76ad | |||
| b1ea5bb682 | |||
| 2e9b0637c4 | |||
| 6b000ceba9 | |||
| 9fb6a4f0bc | |||
| 03d0d0df63 | |||
| 95abf97f17 |
@@ -72,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,10 +22,9 @@
|
|||||||
6. (可选)从数据包 `zip` 文件的 `scripts` 目录中解压 `.sc` 文件,将其放入 `world/scripts` 中(在客户端位于 `.minecraft/saves/<存档名>/scripts` )
|
6. (可选)从数据包 `zip` 文件的 `scripts` 目录中解压 `.sc` 文件,将其放入 `world/scripts` 中(在客户端位于 `.minecraft/saves/<存档名>/scripts` )
|
||||||
7. 执行 `reload` 指令(或重新打开存档;在一些第三方服务端中可能需要改为`/minecraft:reload`)
|
7. 执行 `reload` 指令(或重新打开存档;在一些第三方服务端中可能需要改为`/minecraft:reload`)
|
||||||
|
|
||||||
|
|
||||||
# FZ生存数据包 3.0
|
# FZ生存数据包 3.0
|
||||||
|
|
||||||
[](https://gitee.com/harvey-husky/FZ-sDatapack/releases) [](https://minecraft.net/)
|
[](https://gitee.com/harvey-husky/FZ-sDatapack/releases) [](https://minecraft.net/)
|
||||||
|
|
||||||
> 其他版本见[发行页面](https://gitee.com/harvey-husky/FZ-sDatapack/releases)
|
> 其他版本见[发行页面](https://gitee.com/harvey-husky/FZ-sDatapack/releases)
|
||||||
|
|
||||||
@@ -59,6 +58,21 @@
|
|||||||
| :------: | :----------------------------------------------: |
|
| :------: | :----------------------------------------------: |
|
||||||
| 破基岩榜 |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 |
|
||||||
|
|
||||||
### 地毯脚本
|
### 地毯脚本
|
||||||
|
|
||||||
@@ -93,4 +107,5 @@
|
|||||||
- 见游戏内交互器按钮
|
- 见游戏内交互器按钮
|
||||||
|
|
||||||
## 开发者相关
|
## 开发者相关
|
||||||
|
|
||||||
- 参见[开发文档](/DEVDOC.md)
|
- 参见[开发文档](/DEVDOC.md)
|
||||||
@@ -33,3 +33,6 @@ 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": "]"}]]]
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"replace": false,
|
"replace": false,
|
||||||
"values": [
|
"values": [
|
||||||
"fzsd.extra.bbl:display/set_text/black"
|
"fzsd.extra.bbl:display/set_text/dark_gray"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"parent": "fzsd:game_event/on_placed_block",
|
||||||
|
"criteria": {
|
||||||
|
"on_placed_liquid": {
|
||||||
|
"trigger": "minecraft:placed_block",
|
||||||
|
"conditions": {
|
||||||
|
"item": {
|
||||||
|
"tag": "fzsd:bucket_of_liquid"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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.5'}}
|
execute store success storage fzsd:version fzsd.need_update int 1 run data merge storage fzsd:version {fzsd: {version: '3.0.9'}}
|
||||||
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
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
# 调用者:advancements/fzsd:~
|
# 调用者:advancements/fzsd:~
|
||||||
|
|
||||||
## 调试
|
|
||||||
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": "放置了方块"}]
|
|
||||||
|
|
||||||
## 运行事件
|
## 运行事件
|
||||||
|
execute if entity @s[advancements={fzsd:game_event/on_placed_block/on_placed_liquid=true}] run function #fzsd:game_event/player/on_placed_liquid
|
||||||
|
execute if entity @s[advancements={fzsd:game_event/on_placed_block/on_placed_liquid=false}] run function #fzsd:game_event/player/on_placed_solid
|
||||||
function #fzsd:game_event/player/on_placed_block
|
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
|
||||||
@@ -0,0 +1,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,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 @@
|
|||||||
|
execute unless data storage fzsd:install fzsd.module{health:0b} run function #fzsd:module/health/install
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
execute unless data storage fzsd:install fzsd.module{here:0b} run function #fzsd:module/here/install
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
## 运行事件
|
## 运行事件
|
||||||
function #fzsd:module/interactor/event/on_click
|
function #fzsd:module/interactor/event/on_click
|
||||||
## 触发器分数为正数时重新显示交互器按钮,为负数时不显示
|
## 触发器分数为正数时重新显示交互器按钮,为负数时不显示
|
||||||
execute if score @s fzsd.module.interactor.trigger matches 1.. run function #fzsd:module/interactor/display
|
execute if score @s fzsd.module.interactor.trigger matches 1.. run function #fzsd:module/interactor/event/on_display
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
execute unless data storage fzsd:install fzsd.module{interactor:0b} run function #fzsd:module/interactor/install
|
||||||
@@ -1 +1 @@
|
|||||||
execute if data storage fzsd:installed fzsd.module{join_message:1b} run function #fzsd:module/join_message/send_message
|
execute if data storage fzsd:install fzsd.module{join_message:1b} run function #fzsd:module/join_message/send_message
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
execute unless data storage fzsd:install fzsd.module{join_message:0b} run function #fzsd:module/join_message/install
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
execute unless data storage fzsd:install fzsd.module{last_death:0b} run function #fzsd:module/last_death/install
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
execute unless data storage fzsd:install fzsd.module{last_nether_portal:0b} run function #fzsd:module/last_nether_portal/install
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
execute unless data storage fzsd:install fzsd.module{last_spawn_point:0b} run function #fzsd:module/last_spawn_point/install
|
||||||
@@ -1,2 +1,4 @@
|
|||||||
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,2 +1,4 @@
|
|||||||
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,2 +1,4 @@
|
|||||||
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,2 +1,4 @@
|
|||||||
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,2 +1,4 @@
|
|||||||
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,2 +1,4 @@
|
|||||||
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,2 +1,4 @@
|
|||||||
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,2 +1,4 @@
|
|||||||
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,2 +1,4 @@
|
|||||||
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
|
||||||
@@ -2,4 +2,4 @@
|
|||||||
|
|
||||||
execute if data storage fzsd:install fzsd.module{scoreboard:1b} run tellraw @s {"text": "计分板:"}
|
execute if data storage fzsd:install fzsd.module{scoreboard:1b} run tellraw @s {"text": "计分板:"}
|
||||||
|
|
||||||
execute if data storage fzsd:install fzsd.module{scoreboard:1b} run tellraw @s [[{"text": "[", "color": "dark_gray", "hoverEvent": {"action": "show_text", "contents": {"text": "关", "color": "dark_red"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -1000"}}, {"text": "关", "color": "dark_red"}, {"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fzsd.scoreboard.text.carousel", "interpret": true, "storage": "fzsd:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -1010"}}, {"nbt": "fzsd.scoreboard.text.carousel", "interpret": true, "storage": "fzsd:module"}, {"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fzsd.scoreboard.text.general", "interpret": true, "storage": "fzsd:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -1020"}}, {"nbt": "fzsd.scoreboard.text.general", "interpret": true, "storage": "fzsd:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fzsd.scoreboard.text.activation", "interpret": true, "storage": "fzsd:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -1030"}}, {"nbt": "fzsd.scoreboard.text.activation", "interpret": true, "storage": "fzsd:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fzsd.scoreboard.text.aviating_distance", "interpret": true, "storage": "fzsd:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -1040"}}, {"nbt": "fzsd.scoreboard.text.aviating_distance", "interpret": true, "storage": "fzsd:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fzsd.scoreboard.text.damage_taken", "interpret": true, "storage": "fzsd:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -1050"}}, {"nbt": "fzsd.scoreboard.text.damage_taken", "interpret": true, "storage": "fzsd:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fzsd.scoreboard.text.death_count", "interpret": true, "storage": "fzsd:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -1060"}}, {"nbt": "fzsd.scoreboard.text.death_count", "interpret": true, "storage": "fzsd:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fzsd.scoreboard.text.dig_count", "interpret": true, "storage": "fzsd:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -1070"}}, {"nbt": "fzsd.scoreboard.text.dig_count", "interpret": true, "storage": "fzsd:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fzsd.scoreboard.text.fishing_count", "interpret": true, "storage": "fzsd:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -1080"}}, {"nbt": "fzsd.scoreboard.text.fishing_count", "interpret": true, "storage": "fzsd:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fzsd.scoreboard.text.kill_count", "interpret": true, "storage": "fzsd:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -1090"}}, {"nbt": "fzsd.scoreboard.text.kill_count", "interpret": true, "storage": "fzsd:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fzsd.scoreboard.text.trade_count", "interpret": true, "storage": "fzsd:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -1100"}}, {"nbt": "fzsd.scoreboard.text.trade_count", "interpret": true, "storage": "fzsd:module"}, {"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fzsd.scoreboard.text.placement_count", "interpret": true, "storage": "fzsd:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -1200"}}, {"nbt": "fzsd.scoreboard.text.placement_count", "interpret": true, "storage": "fzsd:module"}, {"text": "]"}]]
|
execute if data storage fzsd:install fzsd.module{scoreboard:1b} run tellraw @s [[{"text": "[", "color": "dark_gray", "hoverEvent": {"action": "show_text", "contents": {"text": "关", "color": "dark_red"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -1000"}}, {"text": "关", "color": "red"}, {"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fzsd.scoreboard.text.carousel", "interpret": true, "storage": "fzsd:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -1010"}}, {"nbt": "fzsd.scoreboard.text.carousel", "interpret": true, "storage": "fzsd:module"}, {"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fzsd.scoreboard.text.general", "interpret": true, "storage": "fzsd:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -1020"}}, {"nbt": "fzsd.scoreboard.text.general", "interpret": true, "storage": "fzsd:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fzsd.scoreboard.text.activation", "interpret": true, "storage": "fzsd:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -1030"}}, {"nbt": "fzsd.scoreboard.text.activation", "interpret": true, "storage": "fzsd:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fzsd.scoreboard.text.aviating_distance", "interpret": true, "storage": "fzsd:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -1040"}}, {"nbt": "fzsd.scoreboard.text.aviating_distance", "interpret": true, "storage": "fzsd:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fzsd.scoreboard.text.damage_taken", "interpret": true, "storage": "fzsd:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -1050"}}, {"nbt": "fzsd.scoreboard.text.damage_taken", "interpret": true, "storage": "fzsd:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fzsd.scoreboard.text.death_count", "interpret": true, "storage": "fzsd:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -1060"}}, {"nbt": "fzsd.scoreboard.text.death_count", "interpret": true, "storage": "fzsd:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fzsd.scoreboard.text.dig_count", "interpret": true, "storage": "fzsd:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -1070"}}, {"nbt": "fzsd.scoreboard.text.dig_count", "interpret": true, "storage": "fzsd:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fzsd.scoreboard.text.fishing_count", "interpret": true, "storage": "fzsd:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -1080"}}, {"nbt": "fzsd.scoreboard.text.fishing_count", "interpret": true, "storage": "fzsd:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fzsd.scoreboard.text.kill_count", "interpret": true, "storage": "fzsd:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -1090"}}, {"nbt": "fzsd.scoreboard.text.kill_count", "interpret": true, "storage": "fzsd:module"},{"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fzsd.scoreboard.text.trade_count", "interpret": true, "storage": "fzsd:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -1100"}}, {"nbt": "fzsd.scoreboard.text.trade_count", "interpret": true, "storage": "fzsd:module"}, {"text": "]"}], [{"text": "[", "hoverEvent": {"action": "show_text", "contents": {"nbt": "fzsd.scoreboard.text.placement_count", "interpret": true, "storage": "fzsd:module"}}, "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set -1200"}}, {"nbt": "fzsd.scoreboard.text.placement_count", "interpret": true, "storage": "fzsd:module"}, {"text": "]"}]]
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
execute unless data storage fzsd:install fzsd.module{scoreboard:0b} run function #fzsd:module/scoreboard/install
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
bossbar set fzsd:sweeper name [{"score": {"objective": "fzsd.variable.integer", "name": "fzsd.sweeper.bossbar.current_time"},"color": "#ff6100","underlined": true,"bold": true},{"text": "秒后清理掉落物","color": "#ffd900","bold": false}]
|
||||||
|
bossbar set fzsd:sweeper players @a[tag=!fzsd.ignore_sweeper_bossbar]
|
||||||
|
scoreboard players remove fzsd.sweeper.bossbar.current_time fzsd.variable.integer 1
|
||||||
|
schedule function fzsd:module/sweeper/bossbar 1s
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
schedule clear fzsd:module/sweeper/bossbar
|
||||||
|
schedule clear fzsd:module/sweeper/main
|
||||||
|
schedule clear fzsd:module/sweeper/timer/1s
|
||||||
|
schedule clear fzsd:module/sweeper/timer/2s
|
||||||
|
schedule clear fzsd:module/sweeper/timer/3s
|
||||||
|
schedule clear fzsd:module/sweeper/timer/4s
|
||||||
|
schedule clear fzsd:module/sweeper/timer/5s
|
||||||
|
schedule clear fzsd:module/sweeper/timer/10s
|
||||||
|
schedule clear fzsd:module/sweeper/timer/30s
|
||||||
|
schedule clear fzsd:module/sweeper/timer/1min
|
||||||
|
schedule clear fzsd:module/sweeper/timer/2min
|
||||||
|
schedule clear fzsd:module/sweeper/timer/3min
|
||||||
|
schedule clear fzsd:module/sweeper/timer/4min
|
||||||
|
bossbar set fzsd:sweeper visible false
|
||||||
|
bossbar set fzsd:sweeper value 0
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
bossbar add fzsd:sweeper ""
|
||||||
|
bossbar set fzsd:sweeper max 60
|
||||||
|
|
||||||
|
## 标记为已安装
|
||||||
|
data modify storage fzsd:install fzsd.module.sweeper 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,2 @@
|
|||||||
|
# 调用者:#fzsd:module/sweeper/interactor/display
|
||||||
|
execute if data storage fzsd:install fzsd.module{sweeper:1b} run function fzsd:module/sweeper/interactor/display_0
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
tellraw @s [{"text": "扫地机:"}]
|
||||||
|
|
||||||
|
tellraw @s[tag=!fzsd.ignore_sweeper_bossbar] [{"text": "- 血条栏:"}, [{"text": "[", "color": "gray", "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set 3400"}}, {"text": "已开启", "color": "green"}, {"text": "]", "color": "gray"}]]
|
||||||
|
tellraw @s[tag=fzsd.ignore_sweeper_bossbar] [{"text": "- 血条栏:"}, [{"text": "[", "color": "gray", "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set 3401"}}, {"text": "已关闭", "color": "red"}, {"text": "]", "color": "gray"}]]
|
||||||
|
|
||||||
|
tellraw @s[tag=!fzsd.ignore_sweeper_sound] [{"text": "- 音效:"}, [{"text": "[", "color": "gray", "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set 3500"}}, {"text": "已开启", "color": "green"}, {"text": "]", "color": "gray"}]]
|
||||||
|
tellraw @s[tag=fzsd.ignore_sweeper_sound] [{"text": "- 音效:"}, [{"text": "[", "color": "gray", "clickEvent": {"action": "run_command", "value": "/trigger fzsd.module.interactor.trigger set 3501"}}, {"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 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 [{"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": "]"}]]
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
execute if score @s fzsd.module.interactor.trigger matches 3400 run tag @s add fzsd.ignore_sweeper_bossbar
|
||||||
|
execute if score @s fzsd.module.interactor.trigger matches 3401 run tag @s remove fzsd.ignore_sweeper_bossbar
|
||||||
|
execute if score @s fzsd.module.interactor.trigger matches 3500 run tag @s add fzsd.ignore_sweeper_sound
|
||||||
|
execute if score @s fzsd.module.interactor.trigger matches 3501 run tag @s remove fzsd.ignore_sweeper_sound
|
||||||
|
execute if score @s fzsd.module.interactor.trigger matches 3600 run tag @s add 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 -3000 run function #fzsd:module/sweeper/stop_loop
|
||||||
|
execute if score @s fzsd.module.interactor.trigger matches -3240..-3010 run function #fzsd:module/sweeper/start_loop
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
function fzsd:module/sweeper/clear
|
||||||
|
|
||||||
|
## 日志
|
||||||
|
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,3 @@
|
|||||||
|
bossbar set fzsd:sweeper value 0
|
||||||
|
function #fzsd:module/sweeper/sweep
|
||||||
|
function fzsd:module/sweeper/start_timer
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# 获取间隔时间
|
||||||
|
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 *= -1 fzsd.variable.integer
|
||||||
|
# 设为显示
|
||||||
|
bossbar set fzsd:sweeper visible true
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
execute if score fzsd.sweeper.interval_time fzsd.variable.integer matches 10 run function fzsd:module/sweeper/timer/10s
|
||||||
|
execute if score fzsd.sweeper.interval_time fzsd.variable.integer matches 30 run function fzsd:module/sweeper/timer/30s
|
||||||
|
execute if score fzsd.sweeper.interval_time fzsd.variable.integer matches 60 run function fzsd:module/sweeper/timer/1min
|
||||||
|
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 240 run function fzsd:module/sweeper/timer/4min
|
||||||
|
scoreboard players operation fzsd.sweeper.bossbar.current_time fzsd.variable.integer = fzsd.sweeper.interval_time fzsd.variable.integer
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
execute store result score fzsd.sweeper.killed fzsd.variable.integer run kill @e[type=minecraft:item,predicate=!fzsd:sweeper/whitelist]
|
||||||
|
execute if score fzsd.logger.level fzsd.variable.integer matches ..600 run tellraw @a [{"nbt": "fzsd.level.alert", "interpret": true, "storage": "fzsd:logger"}, {"text": "本次共清理了"}, {"score": {"objective": "fzsd.variable.integer", "name": "fzsd.sweeper.killed"}}, {"text": "堆掉落物"}]
|
||||||
|
execute as @a[tag=!fzsd.ignore_sweeper_sound] at @s run playsound minecraft:block.note_block.pling voice @s ~ ~ ~ 1 2
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
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 yellow
|
||||||
|
bossbar set fzsd:sweeper value 10
|
||||||
|
schedule function fzsd:module/sweeper/timer/5s 5s
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
execute if score fzsd.logger.level fzsd.variable.integer matches ..600 run 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": "1分钟后清理掉落物"}]
|
||||||
|
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 yellow
|
||||||
|
bossbar set fzsd:sweeper value 60
|
||||||
|
schedule function fzsd:module/sweeper/timer/30s 30s
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
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": "1秒后清理掉落物"}]
|
||||||
|
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 value 12
|
||||||
|
schedule function fzsd:module/sweeper/main 1s
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
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": "2分钟后清理掉落物"}]
|
||||||
|
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 30
|
||||||
|
schedule function fzsd:module/sweeper/timer/1min 60s
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
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": "2秒后清理掉落物"}]
|
||||||
|
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 value 24
|
||||||
|
schedule function fzsd:module/sweeper/timer/1s 1s
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
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": "30秒后清理掉落物"}]
|
||||||
|
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 yellow
|
||||||
|
bossbar set fzsd:sweeper value 30
|
||||||
|
schedule function fzsd:module/sweeper/timer/10s 20s
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
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": "3分钟后清理掉落物"}]
|
||||||
|
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 45
|
||||||
|
schedule function fzsd:module/sweeper/timer/2min 60s
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
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": "3秒后清理掉落物"}]
|
||||||
|
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 value 36
|
||||||
|
schedule function fzsd:module/sweeper/timer/2s 1s
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
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": "4分钟后清理掉落物"}]
|
||||||
|
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 50
|
||||||
|
schedule function fzsd:module/sweeper/timer/3min 60s
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
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": "4秒后清理掉落物"}]
|
||||||
|
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 value 48
|
||||||
|
schedule function fzsd:module/sweeper/timer/3s 1s
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
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 red
|
||||||
|
bossbar set fzsd:sweeper value 60
|
||||||
|
schedule function fzsd:module/sweeper/timer/4s 1s
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
execute unless data storage fzsd:install fzsd.module{sweeper:0b} run function #fzsd:module/sweeper/install
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
## 判断是否安装,如果安装则加载
|
||||||
|
execute if data storage fzsd:install fzsd.module{sweeper:1b} run function #fzsd:module/sweeper/load
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
bossbar remove fzsd:sweeper
|
||||||
|
|
||||||
|
## 标记为已安装
|
||||||
|
data modify storage fzsd:install fzsd.module.sweeper 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,11 +0,0 @@
|
|||||||
# 调用者:#fzsd:module/try_install
|
|
||||||
|
|
||||||
## 判断是否需要安装
|
|
||||||
execute unless data storage fzsd:install fzsd.module{health:0b} run function #fzsd:module/health/install
|
|
||||||
execute unless data storage fzsd:install fzsd.module{here:0b} run function #fzsd:module/here/install
|
|
||||||
execute unless data storage fzsd:install fzsd.module{interactor:0b} run function #fzsd:module/interactor/install
|
|
||||||
execute unless data storage fzsd:install fzsd.module{join_message:0b} run function #fzsd:module/join_message/install
|
|
||||||
execute unless data storage fzsd:install fzsd.module{last_death:0b} run function #fzsd:module/last_death/install
|
|
||||||
execute unless data storage fzsd:install fzsd.module{last_nether_portal:0b} run function #fzsd:module/last_nether_portal/install
|
|
||||||
execute unless data storage fzsd:install fzsd.module{last_spawn_point:0b} run function #fzsd:module/last_spawn_point/install
|
|
||||||
execute unless data storage fzsd:install fzsd.module{scoreboard:0b} run function #fzsd:module/scoreboard/install
|
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
## 常量
|
## 常量
|
||||||
|
scoreboard players set -1 fzsd.variable.integer -1
|
||||||
scoreboard players set 10 fzsd.variable.integer 10
|
scoreboard players set 10 fzsd.variable.integer 10
|
||||||
scoreboard players set 200 fzsd.variable.integer 200
|
scoreboard players set 200 fzsd.variable.integer 200
|
||||||
scoreboard players set 72000 fzsd.variable.integer 72000
|
scoreboard players set 72000 fzsd.variable.integer 72000
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"condition": "minecraft:entity_properties",
|
||||||
|
"entity": "this",
|
||||||
|
"predicate": {
|
||||||
|
"nbt": "{Item:{id:\"minecraft:minecart\"}}"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
{
|
{
|
||||||
"replace": false,
|
"replace": false,
|
||||||
"values": [
|
"values": [
|
||||||
"#fzsd:module/scoreboard/assign/scoreboard/placement_count"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"fzsd:game_event/callback/on_placed_liquid"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"fzsd:game_event/callback/on_placed_solid",
|
||||||
|
"#fzsd:module/scoreboard/assign/scoreboard/placement_count"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -6,6 +6,7 @@
|
|||||||
"#fzsd:module/here/interactor/on_click",
|
"#fzsd:module/here/interactor/on_click",
|
||||||
"#fzsd:module/last_death/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"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
+2
-1
@@ -7,6 +7,7 @@
|
|||||||
"#fzsd:module/here/interactor/display",
|
"#fzsd:module/here/interactor/display",
|
||||||
"#fzsd:module/last_death/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"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"replace": false,
|
"replace": false,
|
||||||
"values": [
|
"values": [
|
||||||
"#fzsd:module/interactor/display",
|
"#fzsd:module/interactor/event/on_display",
|
||||||
"#fzsd:module/interactor/reset_trigger"
|
"#fzsd:module/interactor/reset_trigger"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"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 @@
|
|||||||
|
{
|
||||||
|
"__comment": "调用者:#fzsd:module/install",
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"fzsd:module/sweeper/install"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"fzsd:module/sweeper/interactor/display"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"fzsd:module/sweeper/interactor/on_click"
|
||||||
|
]
|
||||||
|
}
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"replace": false,
|
"replace": false,
|
||||||
"values": [
|
"values": [
|
||||||
"fzsd:module/health/try_load"
|
"fzsd:module/sweeper/load"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"fzsd:module/sweeper/clear",
|
||||||
|
"fzsd:module/sweeper/post_loop",
|
||||||
|
"fzsd:module/sweeper/start_timer",
|
||||||
|
"fzsd:module/sweeper/bossbar"
|
||||||
|
]
|
||||||
|
}
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"replace": false,
|
"replace": false,
|
||||||
"values": [
|
"values": [
|
||||||
"fzsd:module/scoreboard/try_load"
|
"fzsd:module/sweeper/clear"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"replace": false,
|
"replace": false,
|
||||||
"values": [
|
"values": [
|
||||||
"fzsd:module/interactor/try_load"
|
"fzsd:module/sweeper/sweep"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"__comment": "调用者:#fzsd:module/uninstall",
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"fzsd:module/sweeper/uninstall"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"__comment": "调用者:fzsd:load",
|
|
||||||
"replace": false,
|
|
||||||
"values": [
|
|
||||||
"fzsd:module/try_install"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"__comment": "调用者:fzsd:load",
|
|
||||||
"replace": false,
|
|
||||||
"values": [
|
|
||||||
"#fzsd:module/health/try_load",
|
|
||||||
"#fzsd:module/interactor/try_load",
|
|
||||||
"#fzsd:module/scoreboard/try_load"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -7,6 +7,7 @@
|
|||||||
"#fzsd:module/last_death/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",
|
||||||
|
"#fzsd:module/sweeper/install"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,14 @@
|
|||||||
{
|
{
|
||||||
"replace": false,
|
"replace": false,
|
||||||
"values": [
|
"values": [
|
||||||
"#fzsd:module/try_install"
|
"fzsd:module/health/try_install",
|
||||||
|
"fzsd:module/here/try_install",
|
||||||
|
"fzsd:module/interactor/try_install",
|
||||||
|
"fzsd:module/join_message/try_install",
|
||||||
|
"fzsd:module/last_death/try_install",
|
||||||
|
"fzsd:module/last_nether_portal/try_install",
|
||||||
|
"fzsd:module/last_spawn_point/try_install",
|
||||||
|
"fzsd:module/scoreboard/try_install",
|
||||||
|
"fzsd:module/sweeper/try_install"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
{
|
{
|
||||||
"replace": false,
|
"replace": false,
|
||||||
"values": [
|
"values": [
|
||||||
"#fzsd:module/try_load"
|
"fzsd:module/health/try_load",
|
||||||
|
"fzsd:module/interactor/try_load",
|
||||||
|
"fzsd:module/scoreboard/try_load",
|
||||||
|
"fzsd:module/sweeper/try_load"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -8,6 +8,7 @@
|
|||||||
"#fzsd:module/last_death/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",
|
||||||
|
"#fzsd:module/sweeper/uninstall"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"minecraft:lava_bucket",
|
||||||
|
"minecraft:water_bucket",
|
||||||
|
"minecraft:powder_snow_bucket",
|
||||||
|
"#fzsd:bucket_of_mob"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"minecraft:cod_bucket",
|
||||||
|
"minecraft:salmon_bucket",
|
||||||
|
"minecraft:axolotl_bucket",
|
||||||
|
"minecraft:tadpole_bucket",
|
||||||
|
"minecraft:pufferfish_bucket",
|
||||||
|
"minecraft:tropical_fish_bucket"
|
||||||
|
]
|
||||||
|
}
|
||||||
+63
-80
@@ -19,41 +19,11 @@ require_not_null(value) -> (
|
|||||||
);
|
);
|
||||||
|
|
||||||
require_version(requirement) -> (
|
require_version(requirement) -> (
|
||||||
req_0 = slice(requirement, 0, 1);
|
req_ver = split('\\.', requirement);
|
||||||
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(req_ver:1) >= number(cur_ver:0)
|
return(number(cur_ver:0) >= number(req_ver:0)
|
||||||
&& number(req_ver:2) >= number(cur_ver:1)
|
&& number(cur_ver:1) >= number(req_ver:1)
|
||||||
&& number(req_ver:3) >= number(cur_ver:2));
|
&& number(cur_ver:2) >= number(req_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);
|
|
||||||
);
|
);
|
||||||
|
|
||||||
//** 主要逻辑 **//
|
//** 主要逻辑 **//
|
||||||
@@ -145,22 +115,7 @@ __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 = {};
|
||||||
@@ -173,12 +128,14 @@ __on_close() -> (
|
|||||||
write_file('team_cache', 'json', global_team_cache);
|
write_file('team_cache', 'json', global_team_cache);
|
||||||
);
|
);
|
||||||
|
|
||||||
if(require_version('>=1.99.99'), // 等待新功能支持
|
if(require_version('1.4.112'), // 新功能支持
|
||||||
__on_player_command(player, message) -> (
|
__on_player_command(player, command) -> (
|
||||||
print(player('all'), 'command!');
|
l = length(command);
|
||||||
if(length(message) > 7
|
if(l > 13
|
||||||
&& slice(message, 0, 7) == '/player'
|
&& slice(command, 0, 6) == 'player'
|
||||||
&& !(global_config:'allow_spawn_whitelist_player'),
|
&& slice(command, l - 5, l) == 'spawn'
|
||||||
|
&& !(global_config:'allow_spawn_whitelist_player')
|
||||||
|
&& contains(get_server_whitelist(), slice(command, 7, l - 6)),
|
||||||
return('cancel');
|
return('cancel');
|
||||||
);
|
);
|
||||||
);
|
);
|
||||||
@@ -186,11 +143,11 @@ if(require_version('>=1.99.99'), // 等待新功能支持
|
|||||||
|
|
||||||
__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);
|
||||||
@@ -198,7 +155,9 @@ __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);
|
||||||
@@ -222,6 +181,35 @@ __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();
|
||||||
@@ -395,20 +383,14 @@ merge_score(from, to, fzsd_version) -> (
|
|||||||
// 获取承载总榜数据的玩家名
|
// 获取承载总榜数据的玩家名
|
||||||
// 因为新计分板允许玩家自定义显示的总榜名称,故做复杂判断才能使脚本确定用来承载总榜数据的玩家名
|
// 因为新计分板允许玩家自定义显示的总榜名称,故做复杂判断才能使脚本确定用来承载总榜数据的玩家名
|
||||||
get_total_score_name_new(scoreboard) -> (
|
get_total_score_name_new(scoreboard) -> (
|
||||||
INT_MIN = -2147483648;
|
// 系统总榜id
|
||||||
// 获取系统总榜id
|
sys_total_name = replace(scoreboard, 'display', 'total');
|
||||||
system_total_name = replace(scoreboard, 'display', 'total');
|
|
||||||
|
|
||||||
|
// 当前总分
|
||||||
|
current_score = scoreboard('fzsd.module.scoreboard.assign.general', sys_total_name);
|
||||||
|
|
||||||
// 将系统总榜分数加上最小int值,使其成为最低分
|
// 将系统总榜分数设为INT_MIN,使其成为最低分
|
||||||
scoreboard(
|
scoreboard('fzsd.module.scoreboard.assign.general', sys_total_name, -2147483648);
|
||||||
'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,14 +409,7 @@ get_total_score_name_new(scoreboard) -> (
|
|||||||
);
|
);
|
||||||
|
|
||||||
// 恢复总榜分数
|
// 恢复总榜分数
|
||||||
scoreboard(
|
scoreboard('fzsd.module.scoreboard.assign.general', sys_total_name, current_score);
|
||||||
'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);
|
||||||
|
|
||||||
// 返回榜内最低分的玩家名(承载总榜数据的玩家名)
|
// 返回榜内最低分的玩家名(承载总榜数据的玩家名)
|
||||||
@@ -452,7 +427,15 @@ 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,
|
||||||
total_score += scoreboard(scoreboard, _);
|
current_player_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;
|
||||||
);
|
);
|
||||||
);
|
);
|
||||||
// 赋值总分到系统总分计分板
|
// 赋值总分到系统总分计分板
|
||||||
@@ -529,7 +512,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();
|
return(true);
|
||||||
);
|
);
|
||||||
player = player(player_name);
|
player = player(player_name);
|
||||||
player_is_offline = false;
|
player_is_offline = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user