Paste #44871: Untitled Paste

Date: 2017/10/07 20:42:48 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


SCROLLING_CHAT:
  type: task
  speed: 0
  definitions: location
  script:
    - define text <queue.definitions.filter[is[matches].to[number]]>
    - define stands li@
    - foreach <def[text]> {
      - adjust <def[stands]> move:0,0.3,0
      - if <def[stands].size.is[OR_MORE].than[3]> {
        - remove <def[stands].first>
        - flag server chat_entities:<-:<def[stands].first>
        - define stands <def[stands].remove[first]>
        }
      - spawn armor_stand[visible=false;gravity=false;custom_name_visible=true;custom_name=<def[<def[value]>]>] <def[location]> persistent save:<def[loop_index]>
      - define stands <def[stands].include[<entry[<def[loop_index]>].spawned_entities.get[1]>]>
      - flag server chat_entities:->:<def[stands].last>
      - wait <def[<def[value]>].split[<&sp>].size.div[3.33].max[1.5]>
      }
    - repeat 3 {
      - adjust <def[stands]> move:0,0.3,0
      - remove <def[stands].first>
      - flag server chat_entities:<-:<def[stands].first>
      - define stands <def[stands].remove[first]>
      - wait 1.5s
      }

CLEAN_SCROLLING_CHAT:
  type: world
  events:
    on server start:
      - wait 5s
      - foreach <server.flag[chat_entities].as_list> {
        - if <def[value].location.chunk.is_loaded.not> {
          - chunkload <def[value].location.chunk> duration:1m
          - wait 1t
          }
        - remove <def[value]>
        }
      - flag server chat_entities:!