实现交互按钮
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
# 本目录用于存放向事件中注册的函数,并不用来新建事件
|
||||
|
||||
execute if entity @s[x_rotation = -90] run function #fz:module/interactor/on_interact
|
||||
@@ -0,0 +1,7 @@
|
||||
scoreboard objectives add fz.module.interactor.trigger trigger
|
||||
|
||||
## 标记为已安装
|
||||
data modify storage fz:installed fz.module.interactor set value 1b
|
||||
|
||||
## 日志
|
||||
execute if score fz.logger.level fz.variable.integer matches ..500 run tellraw @a [{"nbt": "fz.level.info", "interpret": true, "storage": "fz:logger"}, {"text": "已安装组件:配置"}]
|
||||
@@ -0,0 +1,5 @@
|
||||
schedule clear fz:module/interactor/loop
|
||||
execute as @a run function #fz:module/interactor/reset_trigger
|
||||
|
||||
## 日志
|
||||
execute if score fz.logger.level fz.variable.integer matches ..500 run tellraw @a [{"nbt": "fz.level.info", "interpret": true, "storage": "fz:logger"}, {"text": "已加载组件:配置"}]
|
||||
@@ -0,0 +1,6 @@
|
||||
# 调用者:fz:module/interactor/trigger
|
||||
|
||||
## 如果分数大于0说明玩家点击了按钮
|
||||
execute as @a if score @s fz.module.interactor.trigger matches 1.. run function #fz:module/interactor/on_click/on_click
|
||||
|
||||
schedule function fz:module/interactor/loop 1t replace
|
||||
@@ -0,0 +1,4 @@
|
||||
# 调用者:#fz:module/interactor/on_click
|
||||
|
||||
## 调试
|
||||
execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{"nbt": "fz.level.debug", "interpret": true, "storage": "fz:logger"}, {"text": "玩家"}, {"selector": "@s"}, {"text": "点击了配置按钮,触发器分数为:"}, {"score": {"name": "@s", "objective": "fz.module.interactor.trigger"}}]
|
||||
@@ -0,0 +1,2 @@
|
||||
## 调试
|
||||
execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{"nbt": "fz.level.debug", "interpret": true, "storage": "fz:logger"}, {"text": "玩家"}, {"selector": "@s"}, {"text": "触发了配置页面"}]
|
||||
@@ -0,0 +1,2 @@
|
||||
## 设置或重制超时时间
|
||||
schedule function #fz:module/interactor/timeout 300s replace
|
||||
@@ -0,0 +1,7 @@
|
||||
# 调用者:#fz:module/interactor/reset_trigger
|
||||
|
||||
scoreboard players reset @s fz.module.interactor.trigger
|
||||
scoreboard players enable @s fz.module.interactor.trigger
|
||||
|
||||
## 调试
|
||||
execute if score fz.logger.level fz.variable.integer matches ..400 run tellraw @a [{"nbt": "fz.level.debug", "interpret": true, "storage": "fz:logger"}, {"text": "已重置玩家"}, {"selector": "@s"}, {"text": "的触发器分数"}]
|
||||
@@ -0,0 +1,4 @@
|
||||
schedule clear fz:module/interactor/loop
|
||||
|
||||
## 日志
|
||||
execute if score fz.logger.level fz.variable.integer matches ..500 run tellraw @a [{"nbt": "fz.level.info", "interpret": true, "storage": "fz:logger"}, {"text": "五分钟无人回应,已关闭配置按钮监听,再次使用时需重新唤起"}]
|
||||
@@ -0,0 +1,9 @@
|
||||
schedule clear fz:module/interactor/loop
|
||||
|
||||
scoreboard objectives remove fz.module.interactor.trigger
|
||||
|
||||
## 标记为已卸载
|
||||
data modify storage fz:installed fz.module.interactor set value 0b
|
||||
|
||||
## 日志
|
||||
execute if score fz.logger.level fz.variable.integer matches ..500 run tellraw @a [{"nbt": "fz.level.info", "interpret": true, "storage": "fz:logger"}, {"text": "已卸载组件:配置"}]
|
||||
Reference in New Issue
Block a user