Paste #44042: Untitled Paste

Date: 2017/09/01 14:25:58 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]>}

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]>
                    - yaml unload 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
                - 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]>:!
                    - 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]>:
                    - 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]>"}


#######################################################
##                  Ledger Inventories               ##
####################################################### 

LEDGER_TRIGGER:
    type: world
    events:
        on player right clicks enchantment_table:
        - determine passively cancelled
        - inventory open d:in@LEDGER

LEDGER:
    type: inventory
    title: Nation Ledger
    size: 27
    slots:
    - "[i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE]"
    - "[i@NOTHING_HERE] [i@NOTHING_HERE] [i@CHECKBUDGET_ITEM] [i@VAULT_ITEM] [i@CSALARIES_ITEM] [i@SENDMONEY_ITEM] [i@ICTRADE_ITEM] [i@NOTHING_HERE] [i@NOTHING_HERE]"
    - "[i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@EXIT]"

LEDGER_HANDLER:
    type: world
    events:
            on player clicks in LEDGER:
            - determine cancelled
            on player drags in LEDGER:
            - determine cancelled
            on player clicks EXIT in LEDGER:
            - inventory close
            on player clicks CHECKBUDGET_ITEM in LEDGER:
            - inventory open d:in@CHECKBUDGET
            on player clicks VAULT_ITEM in LEDGER:
            - inventory open d:in@VAULT
            on player clicks CSALARIES_ITEM in LEDGER:
            - inventory open d:in@CSALARIES
            on player clicks SENDMONEY_ITEM in LEDGER:
            - inventory open d:in@SENDMONEY
            on player clicks ICTRADE_ITEM in LEDGER:
            - inventory open d:in@ICTRADE

CHECKBUDGET:
    type: inventory
    title: Check your nation's budget!
    size: 27
    slots:
    - "[i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE]"
    - "[i@NOTHING_HERE] [i@NOTHING_HERE] [i@CHECKBUDGET_ITEM] [i@VAULT_ITEM] [i@CSALARIES_ITEM] [i@SENDMONEY_ITEM] [i@ICTRADE_ITEM] [i@NOTHING_HERE] [i@NOTHING_HERE]"
    - "[i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@EXIT]"

CHECKBUDGET_HANDLER:
    type: world
    events:
            on player clicks in CHECKBUDGET:
            - determine cancelled
            on player drags in CHECKBUDGET:
            - determine cancelled
            on player clicks EXIT in CHECKBUDGET:
            - inventory close
            on player clicks CHECKBUDGET_ITEM in CHECKBUDGET:
            - inventory open d:in@CHECKBUDGET
            on player clicks VAULT_ITEM in CHECKBUDGET:
            - inventory open d:in@VAULT
            on player clicks CSALARIES_ITEM in CHECKBUDGET:
            - inventory open d:in@CSALARIES
            on player clicks SENDMONEY_ITEM in CHECKBUDGET:
            - inventory open d:in@SENDMONEY
            on player clicks ICTRADE_ITEM in CHECKBUDGET:
            - inventory open d:in@ICTRADE

VAULT:
    type: inventory
    title: Your Nation's Vault!
    size: 27
    slots:
    - "[i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE]"
    - "[i@NOTHING_HERE] [i@WITHDRAW_HUNDRED_WUN] [i@WITHDRAW_TEN_WUN] [i@WITHDRAW_ONE_WUN] [i@BALANCE_ITEM] [i@DEPOSIT_ONE_WUN] [i@DEPOSIT_TEN_WUN] [i@DEPOSIT_HUNDRED_WUN] [i@NOTHING_HERE]"
    - "[i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@NOTHING_HERE] [i@EXIT]"

VAULT_HANDLER:
    type: world
    events:
            on player clicks in VAULT:
            - determine cancelled
            on player drags in VAULT:
            - determine cancelled
            on player clicks EXIT in VAULT:
            - inventory close
            on player clicks WITHDRAW_HUNDRED_WUN in VAULT:
            - flag <player> money:<player.flag[money].sub[100]>
            - give HUNDRED_WUN
            on player clicks WITHDRAW_TEN_WUN in VAULT:
            - flag <player> money:<player.flag[money].sub[10]>
            - give TEN_WUN
            on player clicks WITHDRAW_ONE_WUN in VAULT:
            - flag <player> money:<player.flag[money].sub[1]>
            - give ONE_WUN
            on player clicks DEPOSIT_HUNDRED_WUN in VAULT:
            - take HUNDRED_WUN from:<player.inventory>
            - flag <player> money:<player.flag[money].add[100]>
            on player clicks DEPOSIT_TEN_WUN in VAULT:
            - take TEN_WUN from:<player.inventory>
            - flag <player> money:<player.flag[money].add[10]>
            on player clicks DEPOSIT_ONE_WUN in VAULT:
            - take ONE_WUN from:<player.inventory>
            - flag <player> money:<player.flag[money].add[1]>

#######################################################
##                     dItems                        ##
####################################################### 

CHECKBUDGET_ITEM:
    type: item
    material: i@gold_nugget
    display name: <&6>Check Budget
    lore:
    - <&e><&o>Money comes in, money goes out. See where it all ends up!

VAULT_ITEM:
    type: item
    material: i@dispenser
    display name: <&6>Vault
    lore:
    - <&e><&o>Your Nation's personal savings!

CSALARIES_ITEM:
    type: item
    material: i@book_and_quill
    display name: <&6>Citizen Salaries
    lore:
    - <&e><&o>No slavery here!

SENDMONEY_ITEM:
    type: item
    material: i@gold_ingot
    display name: <&6>Send Money
    lore:
    - <&e><&o>Feeling generous?

ICTRADE_ITEM:
    type: item
    material: i@empty_map
    display name: <&6>International Trade
    lore:
    - <&e><&o>Did you lose a war? Or are you simply feeling benevolent?

NOTHING_HERE:
    type: item
    material: i@gray_stained_glass_pane
    display name:   

BALANCE_ITEM:
    type: item
    material: i@nether_star
    display name: <&6>Balance
    lore:
    - "<&e><player.flag[money] Wun"

WITHDRAW_ONE_WUN:
    type: item
    material: i@gold_nugget
    display name: <&6>-1
    lore:
    - <&e>Withdraw 1 Wun

WITHDRAW_TEN_WUN:
    type: item
    material: i@gold_ingot
    display name: <&6>-10
    lore:
    - <&e>Withdraw 10 Wun

WITHDRAW_HUNDRED_WUN:
    type: item
    material: i@gold_block
    display name: <&6>-100
    lore:
    - <&e>Withdraw 100 Wun

DEPOSIT_ONE_WUN:
    type: item
    material: i@gold_nugget
    display name: <&6>+1
    lore:
    - <&e>Deposit 1 Wun

DEPOSIT_TEN_WUN:
    type: item
    material: i@gold_ingot
    display name: <&6>+10
    lore:
    - <&e>Deposit 10 Wun

DEPOSIT_HUNDRED_WUN:
    type: item
    material: i@gold_block
    display name: <&6>+100
    lore:
    - <&e>Deposit 100 Wun

ONE_WUN:
    type: item
    material: i@gold_nugget
    display name: <&6>One Wun
    lore:
    - <&7>A small coin engraved with
    - <&7>the face of the first avatar.

TEN_WUN:
    type: item
    material: i@gold_ingot
    display name: <&6>Ten Wun
    lore:
    - <&7>A long ingot engraved with
    - <&7>a pattern resembling raava.

HUNDRED_WUN:
    type: item
    material: i@gold_block
    display name: <&6>A Hundred Wun
    lore:
    - <&7>Wow. You could buy a lot
    - <&7>with this!

#######################################################
##                     Ledger Tasks                  ##
#######################################################