Paste #129504: Unnamed Denizen Script Paste

Date: 2024/12/30 08:49:41 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


#========================
##### Gui
#========================
ListofBanks:
    type: inventory
    inventory: chest
    title: <dark_gray>Central Bank of Suncrest
    gui: true
    slots:
        - [] [] [] [] [] [] [] [] []
        - [] [] [] [] [] [] [] [] []
        - [] [] [] [] [] [] [] [] []
bankicon:
    type: item
    material: emerald
    display name: <&color[#3d85c6]><bold><[obj].get[1]> Bank
    lore:
        - <gray>Bank Owner: <&color[#3d85c6]><[obj].get[2]>
        - <gray>Legal Entity: <&color[#3d85c6]><[obj].get[3]>
#========================
##### Commands
#========================
PlayerBankGui:
    type: command
    name: bank
    description: Suncrest Banks.
    usage: /bank account create|deposit|withdraw|close account number
    tab completions:
        1: account
        2: create|deposit|withdraw|close
        3: ACCNumber
    script:
        - if <server.has_flag[savedaccnumber]>:
          - narrate "<red>NO! IT ALREADY EXISTS >:C"
        - else:
          - define char1 <util.random.int[1000].to[9999]>
          - define char2 <util.random.int[1000].to[9999]>
          - define char3 <util.random.int[1000].to[9999]>
          - define char4 <util.random.int[1000].to[9999]>
          - flag server savedaccnumber:<[char1]>-<[char2]>-<[char3]>-<[char4]>
          - narrate "<gray><[char1]>-<[char2]>-<[char3]>-<[char4]>"
DevBanksGui:
    type: command
    name: devbank
    description: Suncrest Banks Developer Portal.
    usage: /devbank list|create|delete|help
    tab completions:
        1: list|create|delete|help
    usage: /devbank
    script:
        - choose <context.args.get[1].if_null[null]>:
            - case list:
                - if !<player.has_permission[devbanks.menu]>:
                    - narrate "<&color[#3d85c6]>CB of Suncrest <gray>| You do not have permission to do that!"
                    - stop
                - else:
                    - if <context.args.size> > 1:
                        - narrate "<&color[#3d85c6]>CB of Suncrest <gray>| Too many arguments provided!"
                    - else:
                        - if <server.flag[bankscreated]> >= 1:
                            - inventory open d:ListofBanks
                            - foreach <server.flag[bankssaveddata]> as:obj:
                                - give bankicon quantity:1 to:<player.open_inventory>
                            - stop
                        - else:
                            - narrate "<&color[#3d85c6]>CB of Suncrest <gray>| There are no banks."
                            - playsound <player> sound:BLOCK_NOTE_BLOCK_BASS pitch:5
                            - stop
            - case create:
                - if !<player.has_permission[devbanks.create]>:
                    - narrate "<&color[#3d85c6]>CB of Suncrest <gray>| You do not have permission to do that!"
                    - stop
                - if <context.args.size> = 1:
                    - narrate "<&color[#3d85c6]>CB of Suncrest <gray>| Please specify a name for the <&color[#6fa8dc]>bank<gray>, the <&color[#6fa8dc]>bank owner's <gray>name, and, <gray>the <&color[#6fa8dc]>legal entity's <gray>name."
                - else:
                    - if <context.args.size> = 2:
                        - narrate "<&color[#3d85c6]>CB of Suncrest <gray>| Please specify the <&color[#6fa8dc]>bank owner's <gray>name and <&color[#6fa8dc]>legal entity's <gray>name."
                    - else:
                        - if <context.args.size> = 3:
                            - narrate "<&color[#3d85c6]>CB of Suncrest <gray>| Please specify the <&color[#6fa8dc]>legal entity's <gray>name."
                        - else:
                            - if <context.args.size> = 4:
                                - define playerName <context.args.get[3]>
                                - define playerToRegister <server.match_offline_player[<[playerName]>].if_null[null]>
                                - if <[playerToRegister]> == null:
                                    - narrate "<&color[#3d85c6]>CB of Suncrest <gray>| Can't find player by the name '<&color[#6C9808]><[playerName]><gray>'!"
                                    - stop

                                - foreach <server.flag[bankssaveddata]> as:obj:
                                    - if <[playerName]> == <[obj].get[2]>:
                                        - narrate "<&color[#3d85c6]>CB of Suncrest <gray>| <&color[#6C9808]><[playerName]> <gray>Already owns a bank."
                                        - stop

                                - narrate "<gray><&m>----<reset><&color[#3d85c6]><bold> Central Bank of Suncrest<reset> <gray><&m>----"
                                - narrate "<gray>| Bank Name: <&color[#6C9808]><context.args.get[2]>"
                                - narrate "<gray>| Owner's Username: <&color[#6C9808]><[playerName]>"
                                - narrate "<gray>| Legal Entity: <&color[#6C9808]><context.args.get[4]>"
                                - narrate "<gray><&m>-----------------------------------"
                                - playsound <player> sound:BLOCK_ANVIL_USE pitch:5
                                - flag server bankscreated:++
                                - flag server bankname:<context.args.get[2]>
                                - flag server bankowner:<[playerName]>
                                - flag server legalentity:<context.args.get[4]>
                                - flag server bankssaveddata:->:<list[<server.flag[bankname]>|<server.flag[bankowner]>|<server.flag[legalentity]>]>
                            - else:
                                - if <context.args.size> > 4:
                                    - narrate "<&color[#3d85c6]>CB of Suncrest <gray>| Too many arguments provided!"
            - case delete:
                - if !<player.has_permission[devbanks.delete]>:
                    - narrate "<&color[#3d85c6]>CB of Suncrest <gray>| You do not have permission to do that!"
                    - stop
                - if <context.args.size> = 1:
                    - narrate "<&color[#3d85c6]>CB of Suncrest <gray>| Please specify a name for the <&color[#6fa8dc]>bank<gray>, the <&color[#6fa8dc]>bank owner's <gray>name, and, <gray>the <&color[#6fa8dc]>legal entity's <gray>name."
                - else:
                    - if <context.args.size> = 2:
                        - narrate "<&color[#3d85c6]>CB of Suncrest <gray>| Please specify the <&color[#6fa8dc]>bank owner's <gray>name and <&color[#6fa8dc]>legal entity's <gray>name."
                    - else:
                        - if <context.args.size> = 3:
                            - narrate "<&color[#3d85c6]>CB of Suncrest <gray>| Please specify the <&color[#6fa8dc]>legal entity's <gray>name."
                        - else:
                            - if <context.args.size> = 4:
                                - define playerName <context.args.get[3]>
                                - define playerToRegister <server.match_offline_player[<[playerName]>].if_null[null]>
                                - if <[playerToRegister]> == null:
                                    - narrate "<&color[#3d85c6]>CB of Suncrest <gray>| Can't find player by name '<&color[#6C9808]><[playerName]><gray>'!"
                                    - stop
                                - playsound <player> sound:BLOCK_ANVIL_USE pitch:5
                                - flag server bankscreated:--
                                - flag server bankname:<context.args.get[2]>
                                - flag server bankowner:<[playerName]>
                                - flag server legalentity:<context.args.get[4]>
                                - flag server bankssaveddata:<-:<list[<server.flag[bankname]>|<server.flag[bankowner]>|<server.flag[legalentity]>]>
                                - narrate "<&color[#3d85c6]>CB of Suncrest <gray>| Bank deleted, all clients refunded!"
                            - else:
                                - if <context.args.size> > 4:
                                    - narrate "<&color[#3d85c6]>CB of Suncrest <gray>| Too many arguments provided!"
            - case help:
                - if !<player.has_permission[devbanks.help]>:
                    - narrate "<&color[#3d85c6]>CB of Suncrest <gray>| You do not have permission to do that!"
                    - stop
                - if <context.args.size> = 1:
                    - narrate "<gray><&m>--------<reset><&color[#3d85c6]><bold> Central Bank of Suncrest<reset> <gray><&m>--------"
                    - narrate "<&color[#6fa8dc]>/bank <gray>- Displays this message."
                    - narrate "<&color[#6fa8dc]>/bank list <gray>- Lists all banks of Suncrest."
                    - narrate "<&color[#6fa8dc]>/bank create <&color[#3d85c6]>{bank name} {bank owner} {legal entity} <gray>- Create a bank."
                    - narrate "<&color[#6fa8dc]>/bank delete <&color[#3d85c6]>{bank name} {bank owner} {legal entity} <gray>- Deletes the bank and refunds all clients."
                    - narrate "<gray><&m>--------------------------------------"
                    - narrate "<gray>Scripted with 🖤 by SpaceSlayer_"
                    - narrate "<gray><&m>--------------------------------------"
                - else:
                    - if <context.args.size> > 1:
                        - narrate "<&color[#3d85c6]>CB of Suncrest <gray>| Too many arguments provided!"
            - default:
                - execute as_player "bank help"