Paste #22146: Edit of P#22145 - Edit of P#22144 - gamemode

Date: 2015/11/01 21:54:06 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


command_gamemode:
  type: command
  name: gamemode
  aliases:
  - gm
  usage: /gamemode <&lt>mode<&gt> <&lt>player<&gt>
  debug: true
  description: Changes a player's gamemode.
  permission: gamemode.command.user
  allowed help:
  - determine <player.has_permission[gamemode.command]||false>
  tab complete:
  - if !<player.is_online||<context.server>> queue clear
  - choose <context.args.size>:
    - case 0:
      - determine <li@2|1|0|adventure|creative|survival|a|c|s>
    - case 1:
      - determine <li@0|1|2|s|c|a|survival|creative|adventure].filter[starts_with[<context.args.last>]]>
    - case 2:
      - determine <server.list_online_players.parse[name].filter[starts_with[<context.args.last>]]>
  script:
  - if <context.args> == null {
      - narrate "<&c>Please specify a gamemode for this command!"
      - narrate "<&6>/gamemode <&e><&lt>mode<&gt> <&lt>player<&gt>"
      - queue clear
    }
  - if !<li@2|1|0|adventure|creative|survival|a|c|s.contains[<context.args.get[1]>]> {
    - narrate "<&c>Invalid gamemode specified!"
    - announce to_console "<&c>Invalid gamemode specified!"
    - queue clear
    }
  - if <context.server||player> {
    - if <player.is_op||player.has_permission[gamemode.command.admin]> {
      - choose <context.args.get[2].length>:
        - case 0:
          - execute as_op "gamemode <context.args.get[1]> <player>"
          - queue clear
        - default:
          - if !<server.list_online_players.parse[name].contains[<context.args.get[2]]||null> {
          - narrate "<&c><context.args.get[2]> is not online!"
          - narrate "<&c>Online player target needs to be specified!"
          - queue clear
          }
    }
    - if <context.args.get[2].length> == 0 {
      - announce to_console "<&c>Player target needs to be specified!"
      - queue clear
      }
    - if <server.list_online_players.parse[name].contains[<context.args.get[2]]> == false {
      - announce to_console "<&c><context.args.get[2]> is not online!"
      - announce to_console "<&c>Online player target needs to be specified!"
      - queue clear
      }
    }
    else {
    - execute as_server "gamemode <context.args.get[1]> <context.args.get[2]>"
    - queue clear
    }