Paste #49693: Diff note for paste #49692

Date: 2018/09/09 03:40:03 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
       }
     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>
       }
-    - yaml "savefile:/towns/members_loaded.yaml id:members_loaded
+    - 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 create id:<def[id]>
+  - yaml id:<def[id]> set mayor:<player.uuid>
+  - yaml id:<def[id]> set members:->:<player.uuid>
+  - 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:<player.uuid> set town:<def[id]>
+  - 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:
+  - if <yaml[<player.uuid
+