Paste #31167: Untitled Paste

Date: 2016/03/04 08:01:05 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


FreezeCommand:
  type: command
  name: freeze
  usage: /freeze [player]
  description: freeze players for a duration of 60 minutes.
  permission: denizen.freezeplayer
  tab complete:
  - determine <server.list_players.parse[name].filter[starts_with[<context.args.last||>]]>
  script:
  - if <player.has_permission[denizen.freezeplayer].not> {
   - narrate "<&c>This command is for Staff Members only!"
   - Queue clear
  }
  - define player <server.match_player[<context.args.get[1]||null_>]||null>
  - if <def[player]> == null { 
    - narrate "<&c>Theres no player online by that name!"
    - queue clear
  }
  - flag <def[player]> isFrozen
  - flag <def[player]> freeze_location:<def[player].location>
  - narrate "<&a>Player <def[player].name> has been frozen by <player.name>!" targets:<server.list_online_players.filter[has_permission[denizen.freezeplayer]]>
  - adjust <def[player]> walk_speed:0
  - cast <def[player]> jump p:400 duration:60m
  - narrate "<&c>You have been frozen by a Staff Member!" targets:<def[player]>
  - narrate "<&c>Please wait for further instructions." targets:<def[player]>
  - narrate "<&6>TeamSpeak IP:<&7> ts.lonewolves.net" targets:<def[player]>


UnFreezeCommand:
  type: command
  name: unfreeze
  usage: /unfreeze [player]
  description: Unfreeze players
  permission: denizen.freezeplayer
  tab complete:
  - determine <server.list_players.parse[name].filter[starts_with[<context.args.last||>]]>
  script:
  - if <player.has_permission[denizen.freezeplayer].not> {
   - narrate "<&c>This command is for Staff Members only!"
   - Queue clear
  }
  - define player <server.match_player[<context.args.get[1]||null_>]||null>
  - if <def[player]> == null { 
    - narrate "<&c>Theres no player online by that name!"
    - queue clear
  }
  - narrate "<&a>Player <def[player].name> has been unfrozen by <player.name>!" targets:<server.list_online_players.filter[has_permission[denizen.freezeplayer]]>
  - flag <def[player]> isFrozen:!
  - adjust <def[player]> walk_speed:0.2
  - cast <def[player]> jump cancel
  - narrate "<&a>You are now unfrozen! You are now able to move again." targets:<def[player]>

Jumpcheck:
  type: world
  debug: false
  events:
    on player jumps:
    - if <player.has_flag[isFrozen]> {
      - if <player.location.distance[<player.flag[freeze_location]>].is[MORE].than[1]> {
        - teleport <def[player]> <player.flag[freeze_location]>
        - narrate "<&c>You have been frozen."
        - narrate "<&c>Please wait for a Staff member for further instructions."
        - narrate "<&c><&l>DO NOT LOG OFF"
        - narrate "<&6>Forums:<&7> www.lonewolvespvp.net"
        - narrate "<&6>TeamSpeak IP:<&7> ts.lonewolves.net"
      }
    }
    on player damaged:
    - if <player.has_flag[isFrozen]> {
      - narrate "<&c><context.entity.as_player.name> is currently frozen, you may not attack!" targets:<context.damager>
      - determine cancelled
    }
    on player left clicks:
    - if <player.has_flag[isFrozen]> {
      - narrate "<&c>You have been frozen."
      - narrate "<&c>Please wait for a Staff member for further instructions."
      - narrate "<&c><&l>DO NOT LOG OFF"
      - narrate "<&6>Forums:<&7> www.lonewolvespvp.net"
      - narrate "<&6>TeamSpeak IP:<&7> ts.lonewolves.net"
      - determine cancelled
    }

    on player quits:
    - if <player.has_flag[isFrozen]> {
      - narrate "<&c>ATTENTION: <player.name> logged out whilst being FROZEN" targets:<server.list_online_players.filter[has_permission[denizen.freezeplayer]]>
    }