Paste #49721: Diff note for paste #49720

Date: 2018/09/10 06:58:21 UTC-07:00
Type: Diff Report

View Raw Paste Download This Paste
Copy Link


 File_Handler:
   type: world
   events:
     on server start:
     - if <server.has_file[/towns/members_loaded.yml]> {
       - yaml "load:/towns/members_loaded.yml" id:members_loaded
       }
       else {
       - yaml create id:members_loaded
       }
     - if <server.has_file[/towns/loaded_towns_ids.yml]> {
       - yaml "load:/towns/loaded_towns_ids.yml" id:loaded_towns
       }
       else {
       - yaml create id:loaded_towns
       }
     on player login:
     - if <server.has_file[/towns/player-data/<player.uuid>.yml]> {
       - yaml "load:/towns/player-data/<player.uuid>.yml" id:<player.uuid>
       }
       else {
       - yaml create id:<player.uuid>
       }
     on player quit:
     - yaml "savefile:/towns/player-data/<player.uuid>.yml" id:<player.uuid>
     - yaml unload id:<player.uuid>
     on server shutdown:
     - foreach <server.list_online_players> {
       - yaml "savefile:/towns/player-data/<def[value].uuid>.yml" id:<def[value].uuid>
       }
     - foreach <yaml[loaded_towns].read[town-ids]> {
       - yaml "savefile:/towns/<def[value]>.yml" id:<def[value]>
       }
     - yaml "savefile:/towns/members_loaded.yml" id:members_loaded
     on system time minutely:
     - repeat 30 {
       - wait 2s
       - yaml "savefile:/towns/members_loaded.yml" id:members_loaded
       - foreach <server.list_online_players> {
         - yaml "savefile:/towns/player-data/<def[value].uuid>.yml" id:<def[value].uuid>
         }
       }
 
 Town_Command_Handler:
   type: command
   name: town
   aliases:
   - t
   - towny
   description: Main settle command.
   usage: /town
   config:
     cost: 100
     permission: town.create
   script:
   - define args li@create|delete|claim|unclaim|deposit|withdraw|invite|kick|join|leave|info
   - if <def[args].contains[<context.args.get[1]>]> {
     - inject locally path:<context.args.get[1]>
     }
     else {
     - inject locally path:help
     }
   help:
   - narrate "<&6>------------- <&e><&l>dTowns Help <&6>-------------"
   - narrate ""
   - narrate "<&6>/town help » <&e>Display this page."
   - narrate "<&6>/town create » <&e>Create a town."
   - narrate "<&6>/town delete » <&e>Delete a town."
   - narrate "<&6>/town join » <&e>Join a town."
   - narrate "<&6>/town leave » <&e>Leave a town."
   - narrate "<&6>/town claim » <&e>Claim a chunk."
   - narrate "<&6>/town unclaim » <&e>Unclaim a chunk."
   - narrate "<&6>/town deposit » <&e>Deposit in the town bank."
   - narrate "<&6>/town withdraw » <&e>Withdraw from the town bank."
   - narrate "<&6>/town info » <&e>Preview a town info."
   - narrate ""
   - narrate "<&6>----------------------------------------"
   create:
   - if !<player.has_permission[<script.yaml_key[permission]>]> {
     - narrate "<&6>You don't have permission!"
     - queue clear
     }
   - if <player.flag[coins]> < <script.yaml_key[cost]> {
     - narrate "<&6>You don't have enough money, you need <&e><script.yaml_key[cost].sub[<player.flag[coins]>]><&6>."
     - queue clear
     }
   - if <yaml[members_loaded].read[players-in-town].contains[<player.uuid>]> {
     - narrate "<&6>You are already in a town!"
     - queue clear
     }
   - if <context.args.get[2]> == null {
     - narrate "<&6>Please specify a town name."
     - queue clear
     }
   //Check for claimed chunks
   - flag player coins:-:<script.yaml_key[cost]>
   - define id <util.random.uuid>
   - yaml id:loaded_towns set town-ids:->:<def[id]>
   - yaml id:loaded_towns set <def[uuid]>:<context.args.get[2]>
   - yaml create id:<def[id]>
   - yaml id:<def[id]> set mayor:<player>
   - yaml id:<def[id]> set members:->:<player>
   - yaml id:<def[id]> set balance:0
   - yaml id:<def[id]> set chunks:->:<player.location.chunk>
   - yaml id:<def[id]> set name:<context.args.get[2]>
   - yaml id:<def[id]> set is-open:false
   - yaml id:<player.uuid> set town:<def[id]>
   - yaml id:<player.uuid> set town-name:<context.args.get[2]>
   - yaml "savefile:/towns/<def[id]>.yml" id:<def[id]>
   - announce "<&e><player.name> <&6>created a town (<&6><&e><context.args.get[2]><&6>)."
   delete:
   - define town <yaml[<player.uuid>].read[town]>
   - define townname <yaml[<player.uuid>].read[town-name]>
   - if !<yaml[<player.uuid>].contains[town]> {
     - narrate "<&6>You are not in a town!"
     - queue clear
     }
   - if <yaml[<def[town]>].read[mayor]> != <player> {
     - narrate "<&6>You are not the mayor of <&e><yaml[<player.uuid>].read[town_name]><&6>!" {
     - queue clear
     }
   - adjust server "delete_file:/towns/<yaml[<player.uuid>].read[town]>.yml"
   - foreach <yaml[<def[town]>].read[members]> {
     - yaml "load:/towns/player-data/<def[value]>.yml" id:<def[value]>
     - yaml id:<def[value]> set town:!
     - yaml id:<def[value]> set town-name:!
     - yaml "savefile:/towns/player-data/<def[value]>.yml" id:<def[value]>
     - yaml unload id:<def[value]>
     }
   - announce "<&e><player.name> <&6>deleted <&e><def[townname]><&6>!"
   claim:
   //claim code
   unclaim:
   //unclaim code
   deposit:
   - if !<yaml[<player.uuid>].contains[town]> {
     - narrate "<&6>You are not in a town!"
     - queue clear
     }
   - if !<context.args.get[2].matches[[1-9]+]||null> {
     - narrate "<&6>Please specify a valid amount."
     - queue clear
     }
   - if <context.args.get[2]> > <player.flag[coins]> {
     - narrate "<&6>You don't have enough money."
     - queue clear
     }
   - yaml id:<yaml[<player.uuid>].read[town]> set bank:+:<context.args.get[2]>
   - flag player coins:-:<context.args.get[2]>
   - narrate "<&e><player.name> <&6>deposited <&e><context.args.get[2]> <&6>into the town bank." targets:<yaml[<yaml[<player.uuid>].read[town]>].read[members]>
   withdraw:
   - if !<yaml[<player.uuid>].contains[town]> {
     - narrate "<&6>You are not in a town!"
     - queue clear
     }
   - if <yaml[<yaml[<player.uuid>].read[town]>].read[mayor]> != <player> {
     - narrate "<&6>You cannot withdraw money from the town bank."
     - queue clear
     }
   - if !<context.args.get[2].matches[[1-9]+]||null> {
     - narrate "<&6>Please specify a valid amount."
     - queue clear
     }
   - if <yaml[<yaml[<player.uuid>].read[town]>].read[bank]> < <context.args.get[2]> {
     - narrate "<&6>The town bank does not have that much money."
     - queue clear
     }
   - yaml id:<yaml[<player.uuid>].read[town]> set bank:-:<context.args.get[2]>
   - flag player coins:+:<context.args.get[2]>
   - narrate "<&e><player.name> <&6>withdrew <&e><context.args.get[2]> <&6>from the town bank." targets:<yaml[<yaml[<player.uuid>].read[town]>].read[members]>
   invite:
   - if !<yaml[<player.uuid>].contains[town]> {
     - narrate "<&6>You are not in a town!"
     - queue clear
     }
   - if <yaml[<yaml[<player.uuid>].read[town]>].read[mayor]> != <player> {
     - narrate "<&6>You cannot invite members!"
     - queue clear
     }
   - if !<server.list_online_players.parse[name].contains[<context.args.get[2]>]> {
     - narrate "<&6>That is not a valid player!"
     - queue clear
     }
   - define player p@<context.args.get[2]>
   - if <yaml[<def[player].as_player.uuid>].contains[town]> {
     - narrate "<&6>That player is already in a town!"
     - queue clear
     }
   - narrate "<&e><player.name> <&6>invited you to join their town!" targets:<p@context.args.get[2]>
   - narrate "<&6>Type <&e>/accept <&6>or <&e>/decline <&6>to answer the proposal, you have 5 minutes left."
   - flag <def[player]> invited:<yaml[<player.uuid>].read[town]> d:5m
   //code for accept invite
   kick:
   - if !<yaml[<player.uuid>].contains[town]> {
     - narrate "<&6>You are not in a town!"
     - queue clear
     }
   - if <yaml[<yaml[<player.uuid>].read[town]>].read[mayor]> != <player> {
     - narrate "<&6>You cannot kick members."
     - queue clear
     }
   - if !<server.list_online_players.parse[name].contains[<context.args.get[2]>]> {
     - narrate "<&6>That is not a valid player!"
     - queue clear
     }
   - define player p@<context.args.get[2]>
   - if !<yaml[<yaml[<player.uuid>].read[town]>].read[members].contains[<def[player].as_player.uuid>]> {
     - narrate "<&6>That player is not a part of your town!"
     - queue clear
     }
   - yaml id:<yaml[<player.uuid>].read[town]> set members:<-:<def[player].as_player>
   - yaml "load:/towns/player-data/<def[player].as_player.uuid>.yml" id:<def[player].as_player.uuid>
   - yaml id:<def[player].as_player.uuid> set town:!
   - yaml id:<def[player].as_player.uuid> set town-name:!
   - yaml "savefile:/towns/player-data/<def[player].as_player.uuid>.yml" id:<def[player].as_player.uuid>
   - if !<def[player].as_player.is_online> yaml unload id:<def[player].as_player.uuid>
   join:
   //code for join
   leave:
   - if !<yaml[<player.uuid>].contains[town]> {
     - narrate "<&6>You are not in a town!"
     - queue clear
     }
   - if <yaml[<yaml[<player.uuid>].read[town]>].read[mayor]> == <player.uuid> {
     - narrate "<&6>You are the mayor of the town! Please set another mayor before leaving!"
     - queue clear
     }
   - yaml id:<yaml[<player.uuid>].read[town]> set members:<=:<player.uuid>
   - narrate "<&e><player.name> <&6>left the town." targets:<yaml[<yaml[<player.uuid>].read[town]>].read[members].parse[as_player]>
   - narrate "<&6>You left <&e><yaml[<player.uuid>].read[town-name]><&6>."
   - yaml id:<player.uuid> set town:!
   - yaml id:<player.uuid> set town-name:!
   info:
   - foreach <yaml[towns-loaded].read[town-ids]> {
     - if <yaml[towns-loaded].read[<def[value]>]> == <context.args.get[2]> {
       - narrate "<&6>------------- <&e><&l><context.args.get[2]> <&6>-------------"
-      - narrate "<&6> Mayor: <&e><yaml[<def[value]>].read[mayor]>
-      - narrate "<&6> Bank: <&e><yaml[<def[value]>].read[bank]>
-      - narrate "<&6> Chunks Claimed: <&e><yaml[<def[value]>].read[chunks].size>
-      - narrate "<&6> Members: <&e><yaml[<def[value]>].read[members].parse[as_player.name].comma_separated>
-      - narrate "<&6> Town is open: <&e><yaml[<def[value]>].read[is-open]>
+      - narrate "<&6> Mayor: <&e><yaml[<def[value]>].read[mayor]>"
+      - narrate "<&6> Bank: <&e><yaml[<def[value]>].read[bank]>"
+      - narrate "<&6> Chunks Claimed: <&e><yaml[<def[value]>].read[chunks].size>"
+      - narrate "<&6> Members: <&e><yaml[<def[value]>].read[members].parse[as_player.name].comma_separated>"
+      - narrate "<&6> Town is open: <&e><yaml[<def[value]>].read[is-open]>"
       - narrate "<&6>----------------------------------------"
       - foreach stop
       }