Paste #34971: Edit of P#33694 text based progress bar utility

Date: 2016/07/23 10:30:44 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


util_progress_bar_version:
  type: version
  name: util progress bar
  id: 96
  description: make progress bars in chat!
  version: 2
util_progress_bar:
  type: procedure
  debug: false
  script:
  - define percentage <def[1]||0>
  - if <def[percentage].as_int||none> == none {
    - define percentage 0
    }
  - if <def[2].exists> {
    - define max <def[2]>
    }
  - if <def[max].as_int||none> == none {
    - define max 10
    }
  - if <def[3].exists> {
    - define char <def[3].substring[1,1]||=>
    } else {
    - define char =
    }
  - if <def[4].exists> {
    - define col1 <def[4]>
    } else {
    - define col1 &a
    }
  - if <def[5].exists> {
    - define col2 <def[5]>
    } else {
    - define col2 &7
    }
  - define string <el@.pad_right[<def[max]>].with[<def[char]>]>
  - define split <def[max].div[100].mul[<def[percentage]>].as_int>
  - flag server util_progress_bar_usage:++
  - determine "<def[col1].parse_colors><def[string].substring[1,<def[split]>]><def[col2].parse_colors><def[string].substring[<def[split].add[1].as_int>,<def[max]>]>"
util_progress_bar_tracker:
  type: world
  debug: false
  events:
    on system time hourly:
    - webget "http://morphanone.space/webizen.aspx/tracker?script=96&version=<s@util_progress_bar_version.yaml_key[version]>&times_used=<server.flag[util_progress_bar_usage].as_int||0>"
    - flag server util_progress_bar_usage:!