Paste #43641: Untitled Paste

Date: 2017/08/19 22:59:47 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


Particles_Command:
  type: command
  name: invpart2
  description: Particles for Purgatory
  usage: /invpart <player>
  tab complete:
  # No argument, suggest all of them.
  - if <context.args.size> == 0 {
    - determine <server.list_online_players.parse[name]>
  }
  # Argument? Suggest a player who has the name as entered
  - determine <server.list_online_players.parse[name].filter[starts_with[<context.args.last>]]>

  script:
  # Check their permissions
  - if <player.is_op.not> {
    - narrate "<&c>You don't have permission to use that command!"
    - queue clear
  }
  # Make sure they entered an argument
  - if <context.args.size> != 1 {
    - execute "help invpart2" as_player
    - queue clear
  }
  # Find the player
  - define Player <server.match_offline_player[<context.args.get[1]>]||null>
  - if <def[Player]> == null {
    - narrate "<&c>No player found by that name!"
    - queue clear
  }
  # Remove particles
  - if <def[Player].has_flag[InvPart]> {
    - flag <def[Player]> InvPart:!
    - narrate "Stopping effects on player: <def[Player].name>"
    - queue clear
  }

  - flag <def[Player]> InvPart:<player>
  - narrate "Starting effects on player: <def[Player].name>"

ParticleEffects:
  type: world
  events:
    on server start:
    # Make sure those particles exist - on startup.
    - run s@Create_Particles

Create_Particles:
  type: task
  script:
  # Run particles on their own script - helps to keep queues to a minimum.
  # More efficient
  - foreach <server.list_online_players.filter[has_flag[InvPart]]> {
    - playeffect <def[Value].location> effect:cloud qty:15 target:<def[Value].flag[InvPart]>
  }
  - run <script> delay:10t instantly