top_balance_sign_cmd:
type: command
debug: false
-
name: topbalancesign
description: Makes a sign display the user with the highest balance (money).
- usage: /topbalancesign (set|remove|update|list|help)
+ usage: /topbalancesign (help #|set #|remove|update|list|togglenick)
aliases:
- tbs
- topbalsign
allowed help:
- determine <player.is_op||<player.has_permission[topbalancesign.use]||<context.server>>>
tab complete:
- if <player.is_op||<player.has_permission[topbalancesign.use]||<context.server>>>
{
+ - define argList li@help|set|remove|update|list|togglenick
- if <context.args.size> == 0
{
- - determine <li@set|remove|update|list>
+ - determine <def[argList]>
}
else if <context.args.size> == 1 && !<li@set|remove.contains[<context.args.get[1]>]>
{
- - determine <li@set|remove|update|list.filter[starts_with[<context.args.get[1]>]]>
+ - determine <def[argList].filter[starts_with[<context.args.get[1]>]]>
}
}
-
script:
- if <context.server>
{
- narrate '<&c>You must use this command in-game!' 'format:top_balance_sign_format'
- queue clear
}
- if !<player.is_op||<player.has_permission[topbalancesign.use]>>
{
- queue clear
}
- - if !<li@wall_sign|sign_post.contains[<player.location.cursor_on[5].material.name>]> && !<li@list|update|help.contains[<context.args.get[1]||null>]>
+ - if !<li@wall_sign|sign_post.contains[<player.location.cursor_on[5].material.name>]> && !<li@help|update|list|togglenick.contains[<context.args.get[1]||null>]>
{
- narrate '<&c>You must be looking at a sign to run this command!' 'format:top_balance_sign_format'
- queue clear
}
- - if <context.args.size> > 1 && <li@remove|update|help.contains[<context.args.get[1]||null>]>
+ - if <context.args.size> > 1 && <li@help|update|list|togglenick.contains[<context.args.get[1]||null>]>
{
- narrate '<&c>Too many arguments!' 'format:top_balance_sign_format'
- queue clear
}
- else if <context.args.size> > 2 && !<li@remove|update|help.contains[<context.args.get[1]||null>]>
+ else if <context.args.size> > 2 && !<li@help|update|list|togglenick.contains[<context.args.get[1]||null>]>
{
- narrate '<&c>Too many arguments!' 'format:top_balance_sign_format'
- queue clear
}
- define loc_display <player.location.cursor_on[5].simple>
- run top_balance_sign_task 'def:true|<context.args.get[1]>|<def[loc_display]>|<context.args.get[2]||null>' 'player:<player>'
top_balance_sign_task:
type: task
debug: false
speed: 0
definitions: rfc|act|loc|page
-
script:
- choose '<def[act]>':
+ - case 'help':
+ - narrate '<&6><&l>TopBalanceSign Help<&r><&nl><&e>/topbalancesign help<&7><&co> Displays this help page.<&r><&nl><&e>/topbalancesign set #<&7><&co> Sets a sign to display the #th highest balance.<&r><&nl><&e>/topbalancesign remove<&7><&co> Removes a TopBalanceSign.<&r><&nl><&e>/topbalancesign update<&7><&co> Updates all TopBalanceSigns.<&r><&nl><&e>/topbalancesign list #<&7><&co> Lists current TopBalanceSigns.<&r><&nl><&e>/topbalancesign togglenick<&7><&co> Toggles whether to display nicknames or usernames.'
- case 'remove':
- - define loc_retrieve <server.flag[top_balance_sign_locations].as_list.map_get[<def[loc]>]||null>
- - if <server.flag[top_balance_sign_locations].as_list.contains[<def[loc]>/<def[loc_retrieve]>]>
+ - define loc_retrieve <server.flag[top_balance_sign.locations].as_list.map_get[<def[loc]>]||null>
+ - if <server.flag[top_balance_sign.locations].as_list.contains[<def[loc]>/<def[loc_retrieve]>]>
{
- - flag server 'top_balance_sign_locations:<-:<def[loc]>/<def[loc_retrieve]>'
+ - flag server 'top_balance_sign.locations:<-:<def[loc]>/<def[loc_retrieve]>'
- if <def[rfc]>
{
- narrate '<&a>Removed TopBalanceSign sign at <def[loc]>!' 'format:top_balance_sign_format'
- sign '|||' <def[loc]>
}
}
- queue clear
+ - case 'update':
+ - if <server.flag[top_balance_sign.locations].as_list.size> == 0
+ {
+ - if <def[rfc]>
+ {
+ - narrate '<&c>There are no TopBalanceSigns!' 'format:top_balance_sign_format'
+ }
+ - queue clear
+ }
+ - if <server.flag[top_balance_sign.toggle_nick]||false>
+ {
+ - define name_type name
+ }
+ else
+ {
+ - define name_type name.display
+ }
+ - foreach <server.flag[top_balance_sign.locations].as_list>
+ {
+ - define tb_player <server.list_players.sort_by_number[money].reverse.get[<def[value].split[/].get[2]>]>
+ - sign '<&6><&l>[Top Balance]<&r>|<&e>= #<def[value].split[/].get[2]> <&e>=<&r>|<&a><def[tb_player].<def[name_type]>><&r>|<&2>Right click to see balance!<&r>' '<def[value].split[/].get[1]>'
+ }
+ - if <def[rfc]>
+ {
+ - narrate '<&a>Updated all TopBalanceSigns!' 'format:top_balance_sign_format'
+ }
- case 'list':
- - define disp_list <server.flag[top_balance_sign_locations].as_list.get_sub_items[1]>
- - if <server.flag[top_balance_sign_locations].as_list.size||0> == 0
+ - define disp_list <server.flag[top_balance_sign.locations].as_list.get_sub_items[1]>
+ - if <server.flag[top_balance_sign.locations].as_list.size||0> == 0
{
- narrate '<&c>There are no TopBalanceSigns!' 'format:top_balance_sign_format'
- queue clear
}
- if <def[page].as_decimal||null> == null
{
- define page 1
}
else if <def[page].mod[1]> != 0 || <def[page]> <= 0
{
- define page 1
}
- define disp_list <def[disp_list].get[<def[page].mul[10].sub[9]>].to[<def[page].mul[10]>]||null>
- if <def[disp_list]> == null
{
- define page 1
- - define disp_list <server.flag[top_balance_sign_locations].as_list.get_sub_items[1].get[1].to[10]>
+ - define disp_list <server.flag[top_balance_sign.locations].as_list.get_sub_items[1].get[1].to[10]>
}
- - narrate '<&e>== <&6><&l>List of TopBalanceSigns (<def[page]>/<server.flag[top_balance_sign_locations].as_list.get_sub_items[1].size.div[10].round_up>)<&r> <&e>==<&r><&nl>- <def[disp_list].separated_by[<&nl>- ]><&nl><&7>To see more locations, use /topbalancesign list #'
+ - narrate '<&e>== <&6><&l>List of TopBalanceSigns (<def[page]>/<server.flag[top_balance_sign.locations].as_list.get_sub_items[1].size.div[10].round_up>)<&r> <&e>==<&r><&nl>- <def[disp_list].separated_by[<&nl>- ]><&nl><&7>To see more locations, use /topbalancesign list #'
- queue clear
- - case 'update':
- - if <server.flag[top_balance_sign_locations].as_list.size> == 0
+ - case 'togglenick':
+ - if <server.flag[top_balance_sign.toggle_nick]||false>
{
- - if <def[rfc]>
- {
+ - flag server 'top_balance_sign.toggle_nick:false'
+ - define stat Disabled
- - narrate '<&c>There are no TopBalanceSigns!' 'format:top_balance_sign_format'
- }
- - queue clear
}
- - foreach <server.flag[top_balance_sign_locations].as_list>
+ else
{
- - define tb_player <server.list_players.sort_by_number[money].reverse.get[<def[value].split[/].get[2]>]>
- - sign '<&6><&l>[Top Balance]<&r>|<&e>= #<def[value].split[/].get[2]> <&e>=<&r>|<&a><def[tb_player].name><&r>|<&2>Right click to see balance!<&r>' '<def[value].split[/].get[1]>'
+ - flag server 'top_balance_sign.toggle_nick:true'
+ - define stat Enabled
}
- if <def[rfc]>
{
- - narrate '<&a>Updated all TopBalanceSigns!' 'format:top_balance_sign_format'
+ - narrate '<&a><def[stat]> nicknames for all TopBalanceSigns.' 'format:top_balance_sign_format'
}
- - case 'help':
- - narrate '<&6><&l>TopBalanceSign Help<&r><&nl><&e>/topbalancesign set #<&7><&co> Sets a sign to display the #th highest balance.<&r><&nl><&e>/topbalancesign remove<&7><&co> Removes a TopBalanceSign.<&r><&nl><&e>/topbalancesign update<&7><&co> Updates all TopBalanceSigns.<&r><&nl><&e>/topbalancesign list #<&7><&co> Lists current TopBalanceSigns.<&r><&nl><&e>/topbalancesign help<&7><&co> Displays this help page.'
- default:
- if <def[page].as_decimal||null> == null
{
- define page 1
}
else if <def[page].mod[1]> != 0 || <def[page]> <= 0
{
- define page 1
}
- if <def[page]> > <server.list_players.size>
{
- narrate '<&c>You can<&sq>t create a TopBalanceSign for a user who doesn<&sq>t exist!' 'format:top_balance_sign_format'
- queue clear
}
- - if <server.flag[top_balance_sign_locations].as_list.contains[<def[loc]>/<def[page]>]>
+ - if <server.flag[top_balance_sign.locations].as_list.contains[<def[loc]>/<def[page]>]>
{
- narrate '<&c>This is already a TopBalanceSign for #<def[page]>!' 'format:top_balance_sign_format'
- queue clear
}
- - if <server.flag[top_balance_sign_locations].as_list.get_sub_items[1].contains[<def[loc]>]>
+ - if <server.flag[top_balance_sign.locations].as_list.get_sub_items[1].contains[<def[loc]>]>
+ {
+ - define rem_loc '<server.flag[top_balance_sign.locations].as_list.get_sub_items[1].find_all[<def[loc]>]>'
+ - flag server 'top_balance_sign.locations:<-:<server.flag[top_balance_sign.locations].as_list.get[<def[rem_loc]>]>'
+ }
+ - if <server.flag[top_balance_sign.toggle_nick]||false>
+ {
+ - define name_type name
+ }
+ else
{
- - define rem_loc '<server.flag[top_balance_sign_locations].as_list.get_sub_items[1].find_all[<def[loc]>]>'
+ - define name_type name.display
- - flag server 'top_balance_sign_locations:<-:<server.flag[top_balance_sign_locations].as_list.get[<def[rem_loc]>]>'
}
- define tb_player <server.list_players.sort_by_number[money].reverse.get[<def[page]>]>
- - flag server 'top_balance_sign_locations:->:<def[loc]>/<def[page]>'
+ - flag server 'top_balance_sign.locations:->:<def[loc]>/<def[page]>'
- if <def[rfc]>
{
- narrate '<&a>Set a sign at <def[loc]> as a TopBalanceSign!' 'format:top_balance_sign_format'
}
- - sign '<&6><&l>[Top Balance]<&r>|<&e>= #<def[page]> <&e>=<&r>|<&a><def[tb_player].name><&r>|<&2>Right click to see balance!<&r>' '<def[loc]>'
+ - sign '<&6><&l>[Top Balance]<&r>|<&e>= #<def[page]> <&e>=<&r>|<&a><def[tb_player].<def[name_type]>><&r>|<&2>Right click to see balance!<&r>' '<def[loc]>'
- queue clear
top_balance_sign_format:
type: format
debug: false
format: '<&a>[<&2><&l>TopBalanceSigns<&r><&a>]<&r> <text>'
top_balance_sign_events:
type: world
debug: false
-
events:
on system time minutely:
- repeat 14
{
- run top_balance_sign_task 'def:false|update'
- wait '4s'
}
-
on player breaks sign_post:
- inject locally 'events.on player breaks wall_sign'
on player breaks wall_sign:
- run top_balance_sign_task 'def:true|remove|<context.location.simple>' 'player:<player>'
-
on player right clicks sign_post:
- inject locally 'events.on player right clicks wall_sign'
on player right clicks wall_sign:
- - if <server.flag[top_balance_sign_locations].as_list.get_sub_items[1].contains[<context.location.simple>]>
+ - if <server.flag[top_balance_sign.locations].as_list.get_sub_items[1].contains[<context.location.simple>]>
{
- define tb_player <context.location.sign_contents.get[3].strip_color>
- - narrate '<&f><def[tb_player]> has $<def[tb_player].as_player.money.as_money>.' 'format:top_balance_sign_format'
+ - narrate '<&f><def[tb_player].as_player.name.display> has $<def[tb_player].as_player.money.as_money>.' 'format:top_balance_sign_format'
}
-