Paste #44076: Untitled Paste

Date: 2017/09/02 07:46:25 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


#######################################################
##                 Nations Command                   ##
####################################################### 
NATIONS_FILE_LOADER: 
    type: world 
    debug: false 
    events: 
        on server start: 
        - foreach <li@ek|fn|wt|nat|eat|sat|wat|bht|bhs|sw|fst> {  
            - yaml "load:/dNations/<def[value]>.yml" id:<def[value]> 
            } 
       # on system time minutely command: 
        #- foreach <li@ek|fn|wt|nat|eat|sat|wat|bht|bhs|sw|fst> {  
         #   - yaml "load:/dNations/<def[value]>.yml" id:<def[value]> 
          #  } 

NATIONS_COMMAND: 
    type: command 
    name: nation 
    aliases: 
    - n 
    - nations 
    script: 
    - choose "<context.args.get[1]>": 
        - case "setup": 
            - foreach <li@ek|fn|wt|nat|eat|sat|wat|bht|bhs|sw|fst> { 
                - if !<server.has_file[<def[value]>]> { 
                    - yaml create id:<def[value]> 
                    - yaml "savefile:/dNations/<def[value]>.yml" id:<def[value]> 
                    } 
                } 
        - case "apply": 
            - if <li@ek|fn|wt|nat|eat|sat|wat|bht|bhs|sw|fst.contains[<context.args.get[2]>]> { 
                - yaml id:<context.args.get[2]> set pending_apps.<player.name>:true
                - yaml "savefile:/dNations/<player.flag[nation]>.yml" id:<player.flag[nation]>
                - narrate "<&a>Your app has been sent!" 
                } 
        - case "apps": 
            - if <player.flag[rank]> == "leader" {  
                - if <yaml[<player.flag[nation]>].list_keys[pending_apps]> != null { 
                    - inject dNations_Apps 
                        } 
                else {  
                  - narrate "<&c>You have no pending applications!" 
                } 
                    } 
            else {  
              - narrate "<&c>You do not have permission to check nation apps!" 
            } 

dNations_Apps: 
    type: task 
    script: 
    - choose "<context.args.size>": 
        - case "2": 
            - if <yaml[<player.flag[nation]>].list_keys[pending_apps].contains[<context.args.get[2]>]> { 
                - narrate "<&5>-------------------------" 
                - narrate "<&d>   <context.args.get[2]>'s Application"  
                - narrate "<&5>-------------------------" 
                - narrate "<&5>Character: <&d><player.flag[charname]>" 
                - narrate "<&5>Gender: <&d><player.flag[gender]||Genderless>" 
                - narrate "<&5>Element: <&d><player.flag[element]>" 
                - narrate "<&5>Joined at: <&d><player.flag[jointime]> on <player.flag[joindate]>" 
                - narrate "<&5>Last Seen at: <&d><player.flag[seentime]> on <player.flag[seendate]>" 
            } 
            else { 
                - narrate "<&c>You do not have a pending app from that player!" 
            } 
        - case "3": 
            - choose <context.args.get[3]>: 
                - case "accept": 
                    - yaml id:<player.flag[nation]> set pending_apps.<player.flag[nation]>:!
                    - yaml "savefile:/dNations/<player.flag[nation]>.yml" id:<player.flag[nation]>                    
                    - flag <player.flag[nation]> nation:<player.flag[nation]> 
                    - execute as_player "mail send <context.args.get[2]> Your app has been Accepted!" 
                - case "deny": 
                    - yaml id:<player.flag[nation]> set pending_apps.<player.flag[nation]>:!
                    - yaml "savefile:/dNations/<player.flag[nation]>.yml" id:<player.flag[nation]>
                    - execute as_player "mail send <context.args.get[2]> Your app has been Rejected!" 
                - default: 
                    - narrate "<&c>That is not a valid dNations apps command!" 
        - default: 
            - narrate "<&5>You have pending apps from:" 
            - foreach <yaml[<player.flag[nation]>].list_keys[pending_apps]> {  
                - narrate "<&d>- <def[value]>" 
            }