BlingEdit's current version detection works but is not a great solution. It leaves errors in the console and does not work for every version.
Add new scores on load. Line 252 of blingedit:reset
would become:
## BETTER BLINGEDIT
scoreboard objectives add dataVer dummy
scoreboard objectives add clientVer dummy
scoreboard players set $BBlingEdit clientVer 0
execute store result score $BBlingEdit dataVer run data get entity @p DataVersion
# 1.13.x:
execute if score $BBlingEdit dataVer matches 1444...1900 run scoreboard players set $BBlingEdit clientVer 13
# 1.14.x:
execute if score $BBlingEdit dataVer matches 1901...1976 run scoreboard players set $BBlingEdit clientVer 14
# 1.15.x:
execute if score $BBlingEdit dataVer matches 2200...2230 run scoreboard players set $BBlingEdit clientVer 15
# Other:
execute if score $BBlingEdit clientVer matches 0 run scoreboard players set $BBlingEdit clientVer 0
execute if score $BBlingEdit clientVer matches 13 run tellraw @s ["",{"text":"Client Version: 1.13.x","color":"white"}]
execute if score $BBlingEdit clientVer matches 14 run tellraw @s ["",{"text":"Client Version: 1.14.x","color":"white"}]
execute if score $BBlingEdit clientVer matches 15 run tellraw @s ["",{"text":"Client Version: 1.15.x","color":"white"}]
execute if score $BBlingEdit clientVer matches 0 run tellraw @s ["",{"text":"Client Version: Unsupported!","color":"white"}]