Paste #34741: Diff note for paste #34740

Date: 2016/07/12 11:29:52 UTC-07:00
Type: Diff Report

View Raw Paste Download This Paste
Copy Link


-ShopListener:
-  type: world
-  debug: false
-  name:
-  - if <def[name].is[==].to[<c.entity.framed_item.material.name>]> {
-    - adjust <c.entity.framed_item> 'display_name:' save:new
-    } else {
-    - adjust <c.entity.framed_item> 'display_name:<def[name].before_last[ <blue>]>' save:new }
-  events:
-    on player damages ITEM_FRAME:
-    - define name <c.entity.framed_item.display_name||<c.entity.framed_item.material.name>>
-    # \/ Handles admin /shop command
-    - if <player.has_flag[shop]> {
-      
-      - determine passively CANCELLED
-      - define shop <player.flag[shop].before[/]>
-      
-      - if <def[shop].is[==].to[buy]> {
-        - if '<def[name].contains[<blue>Buy: ]>' { - define name '<def[name].before[ <blue>Buy:]>' }
-        - if '<def[name].contains[<blue>Sell: ]>' { - define name '<def[name].before[ <blue>Sell:]>' }
-        - adjust <c.entity.framed_item> 'display_name:<def[name]> <blue>Buy: $<player.flag[shop].after[/]>' save:new
-        - adjust <c.entity> framed:<entry[new].result> }
-      
-      - if <def[shop].is[==].to[sell]> {
-        - if '<def[name].contains[<blue>Buy: ]>' { - define name '<def[name].before[ <blue>Buy:]>' }
-        - if '<def[name].contains[<blue>Sell: ]>' { - define name '<def[name].before[ <blue>Sell:]>' }
-        - adjust <c.entity.framed_item> 'display_name:<def[name]> <blue>Sell: $<player.flag[shop].after[/]>' save:new
-        - adjust <c.entity> framed:<entry[new].result> }
-      
-      - if <def[shop].is[==].to[remove]> {
-        - if '<def[name].contains[<blue>Buy: ]>' { - define name '<def[name].before[ <blue>Buy:]>' }
-        - if '<def[name].contains[<blue>Sell: ]>' { - define name '<def[name].before[ <blue>Sell:]>' }
-        - inject locally name
-        - if '<entry[new].result.lore.get[1].contains[<red>- ]||false>' {
-          - adjust <entry[new].result> 'lore:<c.entity.framed_item.lore.get[2].to[9999]||>' save:lore
-          - adjust <c.entity> framed:<entry[lore].result> } else { - adjust <c.entity> framed:<entry[new].result> }
-        }
-      
-      - if <def[shop].is[==].to[task]> {
-        - if '<def[name].contains[ <blue>Buy: ].not>' {
-        - narrate "<red>Item must be purchasable to set task."
-        - queue clear }
-        - adjust <c.entity.framed_item> 'lore:<red>- run <player.flag[shop].after[/]>|<c.entity.framed_item.lore>' save:new
-        - if '<c.entity.framed_item.lore.get[1].contains[<red>- ]>' { - adjust <c.entity.framed_item> 'lore:<red>- run <player.flag[shop].after[/]>|<c.entity.framed_item.lore.get[2].to[9999].after[li@]>' save:new }
-        - adjust <c.entity> framed:<entry[new].result> }
-        
-      - determine CANCELLED }
-    
-    # ===== Buy ===== #
-    - if '<def[name].contains[ <blue>Buy: ]>' {
-      - determine passively CANCELLED 
-      - define price '<def[name].after_last[$]>'
-      - if <player.money.is[OR_LESS].to[<def[price]>]> {
-        - narrate "<red>Not enough money."
-        - queue clear }
-      - take money qty:<def[price]>
-      
-      - if '<c.entity.framed_item.lore.get[1].contains[<red>- run ]||false>' {
-        - run '<c.entity.framed_item.lore.get[1].after[run ]>'
-        - queue clear }
-      
-      - define name <def[name].before_last[<blue>]>
-      - inject locally name
-      - give <entry[new].result>
-      }
-    
-    # ===== Sell ===== #
-    - if '<def[name].contains[ <blue>Sell: ]>' {
-      - determine passively CANCELLED
-      - define price '<def[name].after_last[$]>'
-      - define name <def[name].before_last[<blue>]>
-      - inject locally name
-      - if <player.inventory.contains[<entry[new].result>].not> queue clear
-      - take <entry[new].result>
-      - give money qty:<def[price]>
-      }
-    - narrate <player.money>
-    
-    on shop command:
-    - determine passively FULFILLED
-    - flag player shop:!
-    - wait 1s
-    - choose <c.args.get[1]>:
-      - case clear:
-        - flag player shop:!
-      - case remove:
-        - flag player shop:remove/ d:5m
-      - case buy:
-        - flag player shop:buy/<c.args.get[2]||1> d:5m
-      - case sell:
-        - flag player shop:sell/<c.args.get[2]||1> d:5m
-      - case task:
-        - flag player 'shop:task/<c.raw_args.after[task ]>' d:5m
-      - case help:
-        - narrate 'Help goes here.'
-      - default:
-        - narrate '/shop [remove/buy/sell/task/help/clear] [price/taskname]'
-    - if <player.has_flag[shop].not> queue clear
-    - wait 2t
-    - while <player.has_flag[shop]> {
-      - adjust <player> 'action_bar:<aqua>shopmode: <dark_aqua><player.flag[shop].before[/]>'
-      - wait 1s
-      }
-
-testtask:
-  type: task
-  script:
-  - narrate hi