Skip to content

Commit

Permalink
πŸ“ˆ add telemetry pagination (#250)
Browse files Browse the repository at this point in the history
* πŸ“ˆ add pagination to booth telemetry
- keeps track of length of each page (character count)
- cuts it off at some value that is still exportable by chat (max 300,000 chars in minecraft, we'll set it lower for safety: 250,000 chars)
- starts a new page once we surpass this max value
- converted `show` trigger command to iterate through each page instead of showing booth telemetry all at once
- `pop` now clears all but the latest page

* πŸ“ˆ dont show player ID map if there are too many entries

* πŸ“ˆ add rudimentary high-level telemetry stats to view immediately
- so we dont NEED to process all the data to get this info

currently tracking (total and distinct players):
- booth visitors
- parkour finishes
- times joined queue
- fights started
- fight wins
- fight deaths

* πŸ₯… error when booth tag is being called by non-players

* πŸ› fix telemetry ID being reset on joining bossfight
- this was causing the player ID map to balloon in size very fast

* πŸ“ˆ add exit tags for `back_cave` and `waterfall_secret` rooms

* πŸ› fix booth pages not being initialized if `data.booth` was an empty array

* πŸ”Š add explicit log for if there is no booth page data to show

* ♻️ rename `telemetry.temp ` -> `telemetry temp.`

* πŸ› fix bossfight telemetry tags not working
- at some point the tick field was initializing AFTER the rest, and we had a hard-to-see `temp set value {}` command that cleared the tick field
- so the string would never set

* πŸ“ˆ add pagination to bossfight telemetry
- mostly same as booth
- only difference is bossfight root.start tags are the only ones that can start a new page

* πŸ› fix damage tag not working

* πŸ› fix schema/get always clearing entire `temp` telemetry storage

* πŸ“ˆ use player ID map for bossfight player ID in root tag
- saves 14 characters (20 - ~6) per bossfight

* πŸ“ˆ add schema for and minify damage tag's damage source

* πŸ› fix scheduled functions breaking with some telemetry data
- e.g. relative tick, since it can't store the relative time in its `@s omegaflowey.math.0` score (since it's from the server, not an entity)

* πŸ› fix accidental removal of bossfight instance ID

* πŸ› ♻️ move all active player root tag info under single execution instance

* ⚑️ remove unnecessary extra semicolon `;` separator from all telemetry tags

* ⚰️ remove nonfunctional "0 pages" log
- this never ran because of us initiailizing at least 1 page always in the data

* πŸ”Š show total telemetry pages in `stats` trigger
- for quick viewing

* πŸ”Š add player ID map to bossfight show trigger
  • Loading branch information
TheAfroOfDoom authored Oct 25, 2024
1 parent 0059359 commit 7a2377f
Show file tree
Hide file tree
Showing 64 changed files with 403 additions and 99 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
function omegaflowey.main:telemetry/data/active_player/bossfight_hit_count
function omegaflowey.main:telemetry/data/active_player/gamemode with storage omegaflowey:bossfight
execute store result storage omegaflowey:telemetry.temp data.s int 1 run \
execute store result storage omegaflowey:telemetry temp.data.s int 1 run \
scoreboard players get #omegaflowey.bossfight.stop_reason omegaflowey.global.flag
function omegaflowey.main:telemetry/bossfight/tag/end { name: "bossfight.summit" }
function omegaflowey.main:telemetry/bossfight/tag/root/end
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
scoreboard players add #omegaflowey.telemetry.stats.total_wins omegaflowey.global.flag 1
execute unless score @s omegaflowey.player.summit.has_survived_flowey matches 1 run \
scoreboard players add #omegaflowey.telemetry.stats.total_distinct_wins omegaflowey.global.flag 1

# Split rewards based on how many hits the player took
execute if score #omegaflowey.bossfight.player_hit_count omegaflowey.global.flag matches ..3 run \
function omegaflowey.entity:directorial/boss_fight/shared/stop/as_active_player/won/give_reward_hat_low_hits
Expand All @@ -10,7 +14,7 @@ stopsound @s player minecraft:entity.item.pickup
playsound omega-flowey:player.get-item player @s ~ ~ ~ 10

# Show feedback link, but only the first time they beat it
execute unless entity @s[tag=omegaflowey.player.survived_flowey] run \
execute unless entity @s[scores={omegaflowey.player.summit.has_survived_flowey=1}] run \
function omegaflowey.entity:directorial/boss_fight/shared/stop/as_active_player/won/log_thanks_for_playing

tag @s add omegaflowey.player.survived_flowey
scoreboard players set @s omegaflowey.player.summit.has_survived_flowey 1
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
data modify storage omegaflowey:telemetry.temp data set value {}
execute store result storage omegaflowey:telemetry.temp data.i int 1 run \
data modify storage omegaflowey:telemetry temp.data set value {}
execute store result storage omegaflowey:telemetry temp.data.i int 1 run \
scoreboard players get @s omegaflowey.boss-fight.attack.phase.i
function omegaflowey.main:telemetry/bossfight/tag/start { name: "bossfight.phase.attack" }

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
data modify storage omegaflowey:telemetry.temp data set value {}
execute store result storage omegaflowey:telemetry.temp data.i int 1 run \
data modify storage omegaflowey:telemetry temp.data set value {}
execute store result storage omegaflowey:telemetry temp.data.i int 1 run \
scoreboard players get @s omegaflowey.boss-fight.cutscene.phase.i
function omegaflowey.main:telemetry/bossfight/tag/start { name: "bossfight.phase.cutscene" }

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
data modify storage omegaflowey:telemetry.temp data set value {}
execute store result storage omegaflowey:telemetry.temp data.i int 1 run \
data modify storage omegaflowey:telemetry temp.data set value {}
execute store result storage omegaflowey:telemetry temp.data.i int 1 run \
scoreboard players get @s omegaflowey.boss-fight.progress.phase.i
function omegaflowey.main:telemetry/bossfight/tag/start { name: "bossfight.phase.soul" }

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
data modify storage omegaflowey:telemetry.temp data set value {}
execute store result storage omegaflowey:telemetry.temp data.i int 1 run \
data modify storage omegaflowey:telemetry temp.data set value {}
execute store result storage omegaflowey:telemetry temp.data.i int 1 run \
scoreboard players get @s omegaflowey.boss-fight.progress.phase.i
function omegaflowey.main:telemetry/bossfight/tag/start { name: "bossfight.phase.warn" }

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
# We need to reset the player, but if they are joining the fight we don't want to
# reset their Flowey telemetry ID too
scoreboard players set #omegaflowey.bossfight.skip_reset_telemetry_id omegaflowey.global.flag 1
function #summit:join_server
scoreboard players set #omegaflowey.bossfight.skip_reset_telemetry_id omegaflowey.global.flag 0

scoreboard players add #omegaflowey.telemetry.stats.total_fights omegaflowey.global.flag 1
execute unless score @s omegaflowey.player.summit.has_fought_flowey matches 1 run \
scoreboard players add #omegaflowey.telemetry.stats.total_distinct_fights omegaflowey.global.flag 1
scoreboard players set @s omegaflowey.player.summit.has_fought_flowey 1

tag @s add omegaflowey.player.fighting_flowey

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
# if already in queue (or in bossfight somehow), do nothing
execute unless entity @s[tag=!omegaflowey.player.in_queue, tag=!omegaflowey.player.fighting_flowey] run return 0

scoreboard players add #omegaflowey.telemetry.stats.total_queue_joins omegaflowey.global.flag 1
execute unless score @s omegaflowey.player.summit.has_joined_queue_before matches 1 run \
scoreboard players add #omegaflowey.telemetry.stats.total_distinct_queue_joins omegaflowey.global.flag 1
scoreboard players set @s omegaflowey.player.summit.has_joined_queue_before 1

function omegaflowey.main:telemetry/booth/add_tag { name: "player.queue.join" }

# Play select sound if this was called from the interaction (and not manually)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
scoreboard players reset @s omegaflowey.player.telemetry.id
execute unless score #omegaflowey.bossfight.skip_reset_telemetry_id omegaflowey.global.flag matches 1 run \
scoreboard players reset @s omegaflowey.player.telemetry.id

execute if entity @s[tag=omegaflowey.player.fighting_flowey] run function omegaflowey.entity:directorial/boss_fight/summit/player/active/leave_and_rejoin
execute if entity @s[tag=omegaflowey.player.in_queue] run function omegaflowey.entity:directorial/boss_fight/summit/player/queue/leave_and_rejoin
Original file line number Diff line number Diff line change
@@ -1,2 +1,7 @@
scoreboard players add #omegaflowey.telemetry.stats.total_visitors omegaflowey.global.flag 1
execute unless score @s omegaflowey.player.summit.has_visited_booth matches 1 run \
scoreboard players add #omegaflowey.telemetry.stats.total_distinct_visitors omegaflowey.global.flag 1
scoreboard players set @s omegaflowey.player.summit.has_visited_booth 1

function omegaflowey.main:telemetry/booth/add_tag { name: "root.enter" }
tag @s add omegaflowey.player
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# function omegaflowey.main:telemetry/booth/add_tag { name: "room.underground.back_cave.exit" }
function omegaflowey.main:telemetry/booth/add_tag { name: "room.underground.back_cave.exit" }
tag @s remove omegaflowey.player.room.back_cave
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
# function omegaflowey.main:telemetry/booth/add_tag { name: "room.underground.back_cave.waterfall_secret.exit" }
function omegaflowey.main:telemetry/booth/add_tag { name: "room.underground.back_cave.waterfall_secret.exit" }
tag @s remove omegaflowey.player.room.back_cave.waterfall_secret
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
execute unless score @s omegaflowey.player.summit.has_finished_parkour matches 1 run \
scoreboard players add #omegaflowey.telemetry.stats.total_distinct_parkour_finishes omegaflowey.global.flag 1
scoreboard players set @s omegaflowey.player.summit.has_finished_parkour 1

function omegaflowey.main:telemetry/booth/add_tag { name: "room.underground.parkour.finish.enter" }
tag @s add omegaflowey.player.room.parkour.finish
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
data modify storage omegaflowey:telemetry.temp data set value { a: 4 }
data modify storage omegaflowey:telemetry temp.data set value { a: 4 }
function omegaflowey.main:telemetry/bossfight/tag/instant { name: "player.heal" }

effect give @s minecraft:instant_health 1 1 true
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
$data modify storage omegaflowey:telemetry.temp data set value { d: $(damage) }
data modify storage omegaflowey:telemetry.temp data.s set from storage omegaflowey:utils.damage source
$data modify storage omegaflowey:telemetry temp.data set value { d: $(damage) }
function omegaflowey.main:telemetry/data/minify_damage_source with storage omegaflowey:utils.damage
function omegaflowey.main:telemetry/data/active_player/gamemode with storage omegaflowey:bossfight
function omegaflowey.main:telemetry/bossfight/tag/instant { name: "player.damage" }

Expand Down Expand Up @@ -44,19 +44,4 @@ schedule function omegaflowey.entity:utils/damage/reset_immunity_flag 10t replac
# Show custom death message
# TAG_SUMMIT_HARDCODED_GLOBAL_VOLUME
execute if score #omegaflowey.bossfight.player_died omegaflowey.global.flag matches 1 run \
tellraw @a[ \
x=-186, dx=91, y=10, dy=95, z=12, dz=95, \
tag=omegaflowey.player \
] [ \
{ "selector": "@s"}, \
" was slain by ", \
{ "text": "Omega Flowey", "color": "green" } \
]

# Run outside tvscreen death animation
execute if score #omegaflowey.bossfight.player_died omegaflowey.global.flag matches 1 run \
function omegaflowey.main:summit/room/outside/setup/tv_screen/death_animation with storage omegaflowey:decorative

# Re-enable `showDeathMessages` if it was enabled previously
execute if score #omegaflowey.bossfight.player_died omegaflowey.global.flag matches 1 \
if score @s omegaflowey.math.0 matches 1 run gamerule showDeathMessages true
function omegaflowey.entity:utils/damage/as_player/died
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
## The active player died after being damaged by a Flowey attack

# Show custom death message
# TAG_SUMMIT_HARDCODED_GLOBAL_VOLUME
tellraw @a[ \
x=-186, dx=91, y=10, dy=95, z=12, dz=95, \
tag=omegaflowey.player \
] [ \
{ "selector": "@s"}, \
" was slain by ", \
{ "text": "Omega Flowey", "color": "green" } \
]

# Run outside tvscreen death animation
function omegaflowey.main:summit/room/outside/setup/tv_screen/death_animation with storage omegaflowey:decorative

# Re-enable `showDeathMessages` if it was enabled previously
execute if score @s omegaflowey.math.0 matches 1 run gamerule showDeathMessages true

# Summit stats
scoreboard players add #omegaflowey.telemetry.stats.total_deaths omegaflowey.global.flag 1
execute unless score @s omegaflowey.player.summit.has_died_to_flowey matches 1 run \
scoreboard players add #omegaflowey.telemetry.stats.total_distinct_deaths omegaflowey.global.flag 1
scoreboard players set @s omegaflowey.player.summit.has_died_to_flowey 1
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,31 @@ scoreboard players set #omegaflowey.const.180 omegaflowey.math.const 180

execute unless score #omegaflowey.telemetry.bossfight.basetime omegaflowey.global.flag matches 0.. run \
scoreboard players set #omegaflowey.telemetry.bossfight.basetime omegaflowey.global.flag -1

execute unless score #omegaflowey.telemetry.stats.total_deaths omegaflowey.global.flag matches 0.. run \
scoreboard players set #omegaflowey.telemetry.stats.total_deaths omegaflowey.global.flag 0
execute unless score #omegaflowey.telemetry.stats.total_distinct_deaths omegaflowey.global.flag matches 0.. run \
scoreboard players set #omegaflowey.telemetry.stats.total_distinct_deaths omegaflowey.global.flag 0

execute unless score #omegaflowey.telemetry.stats.total_fights omegaflowey.global.flag matches 0.. run \
scoreboard players set #omegaflowey.telemetry.stats.total_fights omegaflowey.global.flag 0
execute unless score #omegaflowey.telemetry.stats.total_distinct_fights omegaflowey.global.flag matches 0.. run \
scoreboard players set #omegaflowey.telemetry.stats.total_distinct_fights omegaflowey.global.flag 0

execute unless score #omegaflowey.telemetry.stats.total_queue_joins omegaflowey.global.flag matches 0.. run \
scoreboard players set #omegaflowey.telemetry.stats.total_queue_joins omegaflowey.global.flag 0
execute unless score #omegaflowey.telemetry.stats.total_distinct_queue_joins omegaflowey.global.flag matches 0.. run \
scoreboard players set #omegaflowey.telemetry.stats.total_distinct_queue_joins omegaflowey.global.flag 0

execute unless score #omegaflowey.telemetry.stats.total_distinct_parkour_finishes omegaflowey.global.flag matches 0.. run \
scoreboard players set #omegaflowey.telemetry.stats.total_distinct_parkour_finishes omegaflowey.global.flag 0

execute unless score #omegaflowey.telemetry.stats.total_visitors omegaflowey.global.flag matches 0.. run \
scoreboard players set #omegaflowey.telemetry.stats.total_visitors omegaflowey.global.flag 0
execute unless score #omegaflowey.telemetry.stats.total_distinct_visitors omegaflowey.global.flag matches 0.. run \
scoreboard players set #omegaflowey.telemetry.stats.total_distinct_visitors omegaflowey.global.flag 0

execute unless score #omegaflowey.telemetry.stats.total_wins omegaflowey.global.flag matches 0.. run \
scoreboard players set #omegaflowey.telemetry.stats.total_wins omegaflowey.global.flag 0
execute unless score #omegaflowey.telemetry.stats.total_distinct_wins omegaflowey.global.flag matches 0.. run \
scoreboard players set #omegaflowey.telemetry.stats.total_distinct_wins omegaflowey.global.flag 0
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,12 @@ scoreboard objectives add omegaflowey.player.leave.previous dummy
scoreboard objectives add omegaflowey.player.health health
scoreboard objectives add omegaflowey.player.shake.pitch dummy
scoreboard objectives add omegaflowey.player.shake.yaw dummy
scoreboard objectives add omegaflowey.player.summit.has_died_to_flowey dummy
scoreboard objectives add omegaflowey.player.summit.has_fought_flowey dummy
scoreboard objectives add omegaflowey.player.summit.has_finished_parkour dummy
scoreboard objectives add omegaflowey.player.summit.has_joined_queue_before dummy
scoreboard objectives add omegaflowey.player.summit.has_survived_flowey dummy
scoreboard objectives add omegaflowey.player.summit.has_visited_booth dummy
scoreboard objectives add omegaflowey.player.telemetry.id dummy
scoreboard objectives add omegaflowey.player.telemetry.trigger.disable trigger
scoreboard objectives add omegaflowey.player.telemetry.trigger.enable trigger
Expand All @@ -120,6 +126,7 @@ scoreboard objectives add omegaflowey.player.telemetry.trigger.pop.booth trigger
scoreboard objectives add omegaflowey.player.telemetry.trigger.pop.bossfight trigger
scoreboard objectives add omegaflowey.player.telemetry.trigger.show.booth trigger
scoreboard objectives add omegaflowey.player.telemetry.trigger.show.bossfight trigger
scoreboard objectives add omegaflowey.player.telemetry.trigger.stats trigger
scoreboard objectives add omegaflowey.player.trigger.bossfight.confirm trigger
scoreboard objectives add omegaflowey.player.trigger.bossfight.deny trigger

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,16 @@ function omegaflowey.utils:log/self { text_component: '[ \
}, \
"\\n", \
"\\n", \
{ \
"text": "stats", \
"color": "yellow", \
"clickEvent": { \
"action": "suggest_command", \
"value": "/trigger omegaflowey.player.telemetry.trigger.stats" \
} \
}, \
"\\n", \
"\\n", \
{ \
"text": "enable", \
"color": "yellow", \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,14 @@ execute if entity @s[name=!TheAfroOfDoom] run return run function omegaflowey.ut
{ "text": "can clear the telemetry buffer", "color": "red" } \
]'}

# Don't clear the latest page to avoid coding fancy logic around page stats and stuff
data modify storage omegaflowey:telemetry temp.latest_page set from storage omegaflowey:telemetry data.booth[-1]
data modify storage omegaflowey:telemetry data.booth set value []
data modify storage omegaflowey:telemetry data.booth append from storage omegaflowey:telemetry temp.latest_page
function omegaflowey.main:telemetry/setup/initialize_booth_data

function omegaflowey.utils:log/self { text_component: '[ \
"", \
{ "text": "Cleared ", "color": "red" }, \
{ "text": "current booth telemetry", "color": "yellow" } \
{ "text": "current booth telemetry (except the latest page)", "color": "yellow" } \
]'}
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,13 @@ execute if entity @s[name=!TheAfroOfDoom] run return run function omegaflowey.ut
{ "text": "can clear the telemetry buffer", "color": "red" } \
]'}

# Don't clear the latest running fight in case it's still running,
# since bossfight telemetry data needs the root tag to be identifiable
data remove storage omegaflowey:telemetry temp.latest_bossfight
data modify storage omegaflowey:telemetry temp.latest_bossfight set from storage omegaflowey:telemetry data.bossfight[-1]
# Don't clear the latest page to avoid coding fancy logic around page stats and stuff
data modify storage omegaflowey:telemetry temp.latest_page set from storage omegaflowey:telemetry data.bossfight[-1]
data modify storage omegaflowey:telemetry data.bossfight set value []
data modify storage omegaflowey:telemetry data.bossfight append from storage omegaflowey:telemetry temp.latest_bossfight
data modify storage omegaflowey:telemetry data.bossfight append from storage omegaflowey:telemetry temp.latest_page

function omegaflowey.utils:log/self { text_component: '[ \
"", \
{ "text": "Cleared ", "color": "red" }, \
{ "text": "current bossfight telemetry (except the latest bossfight array entry, if it exists)", "color": "yellow" } \
{ "text": "current bossfight telemetry (except the latest page)", "color": "yellow" } \
]'}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ scoreboard players enable @s omegaflowey.player.telemetry.trigger.pop.booth
scoreboard players enable @s omegaflowey.player.telemetry.trigger.pop.bossfight
scoreboard players enable @s omegaflowey.player.telemetry.trigger.show.booth
scoreboard players enable @s omegaflowey.player.telemetry.trigger.show.bossfight
scoreboard players enable @s omegaflowey.player.telemetry.trigger.stats

scoreboard players set @s omegaflowey.player.telemetry.trigger.disable 0
scoreboard players set @s omegaflowey.player.telemetry.trigger.enable 0
Expand All @@ -13,3 +14,4 @@ scoreboard players set @s omegaflowey.player.telemetry.trigger.pop.booth 0
scoreboard players set @s omegaflowey.player.telemetry.trigger.pop.bossfight 0
scoreboard players set @s omegaflowey.player.telemetry.trigger.show.booth 0
scoreboard players set @s omegaflowey.player.telemetry.trigger.show.bossfight 0
scoreboard players set @s omegaflowey.player.telemetry.trigger.stats 0
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,14 @@ tellraw @s [ { "text": "\nversion", "color": "yellow", "underlined": true } ]
tellraw @s [ { "storage": "omegaflowey:telemetry", "nbt": "data.version" } ]

tellraw @s [ { "text": "\nplayer_id_map", "color": "yellow", "underlined": true } ]
tellraw @s [ { "storage": "omegaflowey:telemetry", "nbt": "data.player_id_map" } ]
function omegaflowey.main:telemetry/admin/show/player_id_map

tellraw @s [ { "text": "\nbooth_basetick", "color": "yellow", "underlined": true } ]
tellraw @s [ { "storage": "omegaflowey:telemetry", "nbt": "data.booth_basetick" } ]

tellraw @s [ { "text": "\nbooth", "color": "yellow", "underlined": true } ]
tellraw @s [ { "storage": "omegaflowey:telemetry", "nbt": "data.booth" } ]
# math.0 = total page count
execute store result score @s omegaflowey.math.0 run data get storage omegaflowey:telemetry data.booth

# math.1 = current page index
scoreboard players set @s omegaflowey.math.1 0
function omegaflowey.main:telemetry/admin/show/booth/iterate
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
$tellraw @s [ { "storage": "omegaflowey:telemetry", "nbt": "data.booth[$(page_index)]" } ]
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
execute if score @s omegaflowey.math.1 >= @s omegaflowey.math.0 run return 0

tellraw @s [ \
"", \
{ "text": "\npage:", "color": "yellow", "underlined": true }, \
" ", \
{ "score": { "name": "@s", "objective": "omegaflowey.math.1" }, "color": "aqua" } \
]

execute store result storage omegaflowey:telemetry temp.page_index int 1 run \
scoreboard players get @s omegaflowey.math.1
function omegaflowey.main:telemetry/admin/show/booth/get_page with storage omegaflowey:telemetry temp

scoreboard players add @s omegaflowey.math.1 1

function omegaflowey.main:telemetry/admin/show/booth/iterate
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,12 @@ tellraw @s [ { "storage": "omegaflowey:telemetry", "nbt": "data.server_id" } ]
tellraw @s [ { "text": "\nversion", "color": "yellow", "underlined": true } ]
tellraw @s [ { "storage": "omegaflowey:telemetry", "nbt": "data.version" } ]

tellraw @s [ { "text": "\nbossfight", "color": "yellow", "underlined": true } ]
tellraw @s [ { "storage": "omegaflowey:telemetry", "nbt": "data.bossfight" } ]
tellraw @s [ { "text": "\nplayer_id_map", "color": "yellow", "underlined": true } ]
function omegaflowey.main:telemetry/admin/show/player_id_map

# math.0 = total page count
execute store result score @s omegaflowey.math.0 run data get storage omegaflowey:telemetry data.bossfight

# math.1 = current page index
scoreboard players set @s omegaflowey.math.1 0
function omegaflowey.main:telemetry/admin/show/bossfight/iterate
Loading

0 comments on commit 7a2377f

Please sign in to comment.