Paste #16322: Untitled Paste

Date: 2015/06/06 21:32:55 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


maintain_world:
  type: world
  events:
    on server start:
    - createworld guildworld worldtype:flat
guild_commands: 
  type: command 
  name: guild
  description: Manage your guild.
  usage: /guild
  script: 
    - if <context.args.get[1]> == create {
      - inject locally path:create
      } else if <context.args.get[1]> == invite {
      - inject locally path:invite
      } else if <context.args.get[1]> == accept {
      - inject locally path:accept
      } else if <context.args.get[1]> == kick {
      - inject locally path:kick
      } else if <context.args.get[1]> == leave {
      - inject locally path:leave
      } else if <context.args.get[1]> == name {
      - inject locally path:name
      }
  create:
    - if <yaml[GUILDSAVES].read[guilds.<player>.current_guild]||none> == none {
      - narrate "<&c>You created your guild."
      - yaml id:GUILDSAVES set guilds.<player>.current_guild:<player>
      - yaml id:GUILDSAVES set guilds.<player>.members:->:<player>
      - if !<yaml[GUILDSAVES].contains[guilds.<player>.A_chunk]> {
        - yaml id:GUILDSAVES set guilds.<player>.A_chunk:<yaml[GUILDSAVES].read[chunk_counter]||0>
        - yaml id:GUILDSAVES set chunk_counter:<yaml[GUILDSAVES].read[chunk_counter].add[32]||32>
        }
      } else {
      - narrate "<&c>You're already in a guild."
      }
  invite:
    - if <yaml[GUILDSAVES].read[guilds.<player>.current_guild]||none> == <player> {
      - if <server.match_offline_player[<context.args.get[2]>]||none> != none {
        - define player <server.match_offline_player[<context.args.get[2]>]||none>
        - if <yaml[GUILDSAVES].read[guilds.%player%.current_guild]||none> == none {
          - flag %player% guild_invitation:<player> duration:5m
          - narrate "<&c>You invited <def[player].name> to your guild!"
          - narrate "You've been invited to the <yaml[GUILDSAVES].read[guilds.<player>.guildname]||unnamed> guild by <player.name>.<&nl><&c>Type '/guild accept' to accept." targets:%player%
          } else {
          - narrate "<&c>That player is already in a guild!"
          }
        } else {
        - narrate "<&c><context.args.get[2]> was not found!"
        }
      } else {
      - narrate "<&c>You're not the leader of this guild!"
      }
  accept:
    - if <player.has_flag[guild_invitation]> {
      - narrate "<&c>You joined <player.flag[guild_invitation].as_player.name>'s guild."
      - narrate "<&c><player.name> joined your guild!" targets:<yaml[GUILDSAVES].read[guilds.<player.flag[guild_invitation]>.members]>
      - yaml id:GUILDSAVES set guilds.<player>.current_guild:<player.flag[guild_invitation].as_player>
      - yaml id:GUILDSAVES set guilds.<player.flag[guild_invitation].as_player>.members:->:<player>
      } else {
      - narrate <&c>You have no invitation pending."
      }
  kick:
    - if <yaml[GUILDSAVES].read[guilds.<player>.current_guild]||none> == <player> {
      - if <server.match_offline_player[<context.args.get[2]>]||none> != none {
        - define player <server.match_offline_player[<context.args.get[2]>]||none>
        - if <yaml[GUILDSAVES].read[guilds.%player%.current_guild]||none> == <yaml[GUILDSAVES].read[guilds.<player>.current_guild]||none> {
          - narrate "<&c>You kicked <def[player].name> out of your guild."
          - narrate "<&c>You've been kicked out of <player.name>'s guild!" targets:%player%
          - yaml id:GUILDSAVES set guilds.<player>.members:<-:%player%
          - yaml id:GUILDSAVES set guilds.%player%.current_guild:none
          } else {
          - narrate "<&c>That player is not in your guild!"
          }
        } else {
        - narrate "<&c><context.args.get[2]> was not found!"
        }
      } else {
      - narrate "<&c>You're not the leader of this guild!"
      }
  leave:
    - if <yaml[GUILDSAVES].read[guilds.<player>.current_guild]||none> != none {
      - if <yaml[GUILDSAVES].read[guilds.<player>.current_guild]||none> != <player> {
        - define owner <yaml[GUILDSAVES].read[guilds.<player>.current_guild].as_player||none>
        - narrate "<&c>You left your guild!"
        - narrate "<&c><player.name> has left the guild." targets:<yaml[GUILDSAVES].read[guilds.%owner%.members]>
        - yaml id:GUILDSAVES set guilds.%owner%.members:<-:<player>
        - yaml id:GUILDSAVES set guilds.<player>.current_guild:none
        } else {
        - narrate "<&c>Leaving your own guild will completely remove it. If you are sure that you want to do this, type '/guild disband'."
        }
      } else {
      - narrate "<&c>You're not in a guild!"
      }
  name:
    - if <yaml[GUILDSAVES].read[guilds.<player>.current_guild]||none> == <player> {
      - if <context.args.get[2]||none> != none {
        - narrate "<&c>You set your guild name to <context.args.get[2]>
        - yaml id:GUILDSAVES set guilds.<player>.name:<context.args.get[2]>
        } else {
        - narrate "<&c>Please specify a valid guild name."
        }
      } else {
      - narrate "<&c>You're not the leader of this guild!"
      }