Paste #23404: Untitled Paste

Date: 2015/12/03 19:41:55 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


#-------------------------#
#--GadgetTool--v0.1-----#
#--------------------#
#----------------#
############
###CONFIG###
############
gadget_config:
  type: yaml data
  GadgetTool:
  #---------------------#
         #MODES#
  #---------------------#
    Modes:
      default:
        item: compass
      arrows:
        item: nether_fence
  #---------------------#
##########
###ITEM###
##########
gadget_item:
  type: item
  material: <s@gadget_config.yaml_key[GadgetTool.Modes.<player.flag[GadgetTool.Mode]>.item].as_item||<s@gadget_config.yaml_key[GadgetTool.Modes.default.item]>>
  display name: GadgetTool
  lore:
  - Mode<&co> <player.flag[GadgetTool.Mode]||default>
  - Versitile shapeshifting tool.
  - Use carefully and wisely.
#############
###COMMAND###
#############
gadget_command:
  type: command
  debug: true
  name: gadget
  description: GadgetTool command.
  usage: /gadget 
  aliases:
  - gg
  permission: gadget.command
  allowed help:
  - determine <player.is_op||<player.has_permission[gadget.command]>>
  script:
  - if <context.server||true> {
    - announce to_console "<&c>This command is for players only!"
    - queue clear
    }
  - if <player.has_permission[gadget.command].not||true> {
    - narrate "<&c>Sorry, you don't have permission to perform this command!"
    - queue clear
    }
  - define Args <context.args>
  - if <def[Args].size||0> == 0  {
    - flag player GadgetTool.Mode:default
    - if <player.inventory.contains.display[strict:GadgetTool]||false> {
      - take bydisplay:GadgetTool
      - inject s@gadget_update
      - queue clear
      }
    - inject s@gadget_update
    - queue clear
    }
  - if <s@gadget_config.list_keys[GadgetTool.Modes].contains[<def[Args].get[1]>].not||true> {
    - narrate "<&c>Sorry <&f><def[Args].get[1]> <&c>is not a valid mode!"
    - queue clear      
    }
  - flag player GadgetTool.Mode:<def[Args].get[1]>
  - if <player.inventory.contains.display[strict:GadgetTool]||false> {
    - take bydisplay:GadgetTool
    - inject s@gadget_update
    - queue clear
    }
  - inject s@gadget_update
####################
###EVENT##HANDLERS##
####################
gadget_handler:
  type: world
  debug: true
  events:
    on player left clicks with i@gadget_item:
    - determine passively cancelled
    - inject s@<player.flag[GadgetTool.Mode]||default>_left
    on player right clicks with i@gadget_item:
    - determine passively cancelled
    - inject s@<player.flag[GadgetTool.Mode]||default>_right
###########
###TASKS###
###########
gadget_update:
  type: task
  debug: true
  script:
  - give i@gadget_item
default_left:
  type: task
  debug: true
  script:
  - playeffect <player.location> effect:HUGE_EXPLOSION quantity:1
default_right:
  type: task
  debug: true
  script:
  - playeffect <player.location> effect:LARGE_SMOKE quantity:1 
arrows_left:
  type: task
  debug: true
  script:
  - playsound ZOMBIE_WOODBREAK <player.location> pitch:6 volume:1
  - shoot e@arrow speed:5 shooter:<player>
arrows_right:
  type: task
  debug: true
  script:
  - playsound ZOMBIE_WOODBREAK <player.location> pitch:6 volume:10
  - shoot small_fireball speed:5 shooter:<player>