Paste #69596: Diff note for paste #69595

Date: 2020/05/25 10:38:05 UTC-07:00
Type: Diff Report

View Raw Paste Download This Paste
Copy Link


-Door_Closer:
-  type: world
-  debug: false
-  events:
-    after player right clicks *door|*_gate priority:2:
-      - if !<context.location.material.switched>:
-        - stop
-      - wait 2s
-      - waituntil <context.location.find.entities[player].within[3].size.is[==].to[0]>
-      - if <context.location.material.switched>:
-        - switch <context.location> state:off
-        - choose <context.location.material.name.after_last[_]>:
-          - case door:
-            - playsound <context.location> BLOCK_WOODEN_DOOR_CLOSE
-          - case trapdoor:
-            - playsound <context.location> BLOCK_WOODEN_TRAPDOOR_CLOSE
-          - case gate:
-            - playsound <context.location> BLOCK_FENCE_GATE_CLOSE
-
 Decorator_Tool:
   type: item
   material: stick
   display name: <blue>Decorator Tool
   lore:
   - Right-click to mark location as decorative.
   - Left-click to unmark location.
   - Shift-right-click to toggle block state.
 
 Decorate_Command:
   type: command
   name: decorate
   usage: /decorate
   permission: beruscripts.decorator
   description: Gives the player a Decorator Tool.
   script:
       - if !<player.inventory.contains[decorator_tool]>:
         - give decorator_tool
         - narrate "<aqua>You received a <blue>[Decorator Tool]<aqua>."
         - narrate "<gray>Right-click to decorate, left-click to un-decorate."
         - narrate "<gray>Right-click while sneaking to toggle open/closed."
       - else:
         - take scriptname:decorator_tool
         - narrate "<red>Removed your <blue>[Decorator Tool]<red>."
 
 Decorative_Blocks:
   type: world
   debug: false
   misc_blocks:
   - loom
   - crafting_table
   - cartography_table
   - anvil
   - chipped_anvil
   - damaged_anvil
   - enchanting_table
   - grindstone
   - smithing_table
   - stonecutter
   - fletching_table
   events:
     on player right clicks block priority:1:
       - if <server.has_flag[decorative_block.<context.location.simple>]>:
         - determine cancelled
     on player stands on material:
       - if <server.has_flag[decorative_block.<context.location.simple>]>:
         - determine cancelled
     # Decorator tool functionality.
     on player clicks block with decorator_tool:
       - determine passively cancelled
       - if <player.is_sneaking> && <context.click_type> == right_click_block:
         - switch <context.location>
         - stop
       - choose <context.click_type>:
         - case right_click_block:
           - if !<context.location.material.is_switchable> && !<context.location.has_inventory> && !<script.yaml_key[misc_blocks].contains[<context.location.material.name>]> && !<context.location.material.name.ends_with[_bed]>:
             - narrate "<dark_gray>You cannot make <context.location.material.item.formatted> decorative."
             - stop
           - if <server.has_flag[decorative_block.<context.location.simple>]>:
             - narrate "<dark_gray>This <gray><context.location.material.translated_name> <dark_gray>is already decorative!"
             - stop
           - narrate "<aqua>Made this <gray><context.location.material.translated_name> <aqua>decorative."
           - flag server decorative_block.<context.location.simple>
           - if <context.location.material.is_bisected> && !<context.location.material.name.ends_with[_trapdoor]>:
             - narrate "<aqua>(Also added adjacent block.)"
             - flag server decorative_block.<context.location.other_block.simple>
         - case left_click_block:
           - if !<server.has_flag[decorative_block.<context.location.simple>]>:
             - narrate "<dark_gray>This <gray><context.location.material.translated_name> <dark_gray>is not decorative!"
             - stop
           - narrate "<red>This <gray><context.location.material.translated_name> <red>is no longer decorative."
           - flag server decorative_block.<context.location.simple>:!
           - if <context.location.material.is_bisected> && !<context.location.material.name.ends_with[_trapdoor]>:
             - narrate "<red>(Also removed adjacent block.)"
             - flag server decorative_block.<context.location.other_block.simple>:!
     # Item protection. (Prevents decorator tool from being transfered to another inventory.)
     on player drops decorator_tool:
       - determine cancelled
     on player clicks in inventory with decorator_tool:
       - if <context.clicked_inventory.inventory_type> != PLAYER:
         - determine cancelled
     on player clicks decorator_tool in inventory:
       - if <context.is_shift_click> && <context.inventory.inventory_type> != PLAYER:
         - determine cancelled
     on player drags decorator_tool in inventory:
       - if <context.clicked_inventory.inventory_type> != PLAYER:
         - determine cancelled
     # If any player breaks a decorative block, alerts them and removes decoration flag.
     on player breaks block priority:1:
       - if <server.has_flag[decorative_block.<context.location.simple>]>:
         - narrate "<red>You broke a decorative <context.location.material.translated_name.to_lowercase>."
         - flag server decorative_block.<context.location.simple>:!
         - if <context.location.material.is_bisected> && !<context.location.material.name.ends_with[_trapdoor]>:
           - narrate "<red>(Also removed adjacent block.)"
           - flag server decorative_block.<context.location.other_block.simple>:!