Paste #21589: LuckyBlocks

Date: 2015/10/25 23:37:51 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


# Author Seq 
# LuckyBlocks v1.6
# Denizen Script to create LuckyBlock plugin
LuckyBlockLoad:
  type: world
  events:
    on server start:
    - flag server "LuckyBlockStatus:false"
LuckyBlock_Commands:
  type: command
  name: luckyblock
  description: Commands for LuckyBlocks.
  usage: /luckyblock
  script:
    - define arg_size <context.args.size>
    - if %arg_size% == 0 {
      - run LuckyBlockInfo
      - determine fulfilled
      }
      else { 
      - if <context.args.get[1]> != ver && <context.args.get[1]> != help && <context.args.get[1]> != give && <context.args.get[1]> != stop && <context.args.get[1]> != start {
        - narrate '<red>Unknown Argument(s)!'
        - determine fulfilled
        }
        else if <context.args.get[1]> == "stop" {
        - if <flag.server[LuckyBlockStatus]> == false {
          - narrate '<gold>LuckyBlocks is already <dark_red>false<gold>!'
          - determine fulfilled
          }
          else { 
          - narrate '<red>Stopping LuckyBlock.'
          - flag server "LuckyBlockStatus:false"
          - determine fulfilled
        }
      }
        else if <context.args.get[1]> == "start" {
        - if <flag.server[LuckyBlockStatus]> == true {
          - narrate '<gold>LuckyBlocks is already <green>true<gold>!'
          - determine fulfilled
          }
          else {
          - narrate '<green>Starting LuckyBlock.'
          - flag server "LuckyBlockStatus:true"
          - run BlockListener
          - determine fulfilled  
        } 
      }        
        else if <context.args.get[1]> == "help" {
        - narrate '<white>Command Usage:'
        - narrate '<gold>/luckyblock <yellow><&lt>Arguments<&gt>' 
        - narrate '<gold>/luckyblock<white> Basic instructions for using LuckyBlocks in game.'
        - narrate '<gold>/luckyblock <yellow>ver<white> Diplays current version of dLuckyBlock.'
        - narrate '<gold>/luckyblock <yellow>give <&lt>Player<&gt> <&lt>Qty<&gt><white> Gives LuckyBlock(s).'
        - determine fulfilled
        }
        else if <context.args.get[1]> == "ver" {
        - narrate '<gold>LuckyBlock v1.6<yellow> by SeqSEE'
        - determine fulfilled
        }
        else if <context.args.get[1]> == "give" {
        - define Player <server.match_player[<context.args.get[2]>]||null>
        - if <def[Player]> == null {              
          - give i@sponge qty:1
          - determine fulfilled
          }
          else {
          - if <context.args.get[3].length> == 0 {
            - give i@sponge qty:1 player:<def[Player]>
            - determine fulfilled
            }
            else {
            - if <context.args.get[3]> == null {
              - give i@sponge qty:1 player:<def[Player]>
              - determine fulfilled
              }
              else if <context.args.get[3]> matches number {
              - give i@sponge qty:<context.args.get[3]> player:<def[Player]>
              - determine fulfilled
              }
              else {
              - narrate "<red><context.args.get[3]> is not a valid quantity!"
              - determine fulfilled
              }
            }

          } 
        }

        }

LuckyBlockInfo:
  type: task
  debug: false
  script:
    - narrate "<gold>LuckyBlocks Active:<white> <server.flag[LuckyBlockStatus]>"
    - wait 1
    - narrate "<yellow>Place LuckyBlocks and break them for surprises!"
    - wait 1 
    - narrate "<yellow>Wet LuckyBlocks are more potent, so to speak."   
BlockListener:
  type: world 
  debug: false
  events:
    on player breaks block:
    - if <server.flag[LuckyBlockStatus]> == true {
      - flag "BlockLocation:<context.location>"
      - if <context.material> == m@sponge {
        - run 'DryBroken'
        - determine passively "NOTHING"        
        }
        else if <context.material> == m@sponge,1 {
        - run 'WetBroken'
        - determine passively "NOTHING"
        }
      }        
      else if <server.flag[LuckyBlockStatus]> == false {
      }
DryBroken:
  type: task
  debug: false
  script:
  - random 8
  - run Popcorn
  - drop i@gold_ingot <player.flag[BlockLocation]> qty:32
  - spawn zombie|zombie|zombie <player.flag[BlockLocation]>
  - drop i@iron_sword|i@iron_chestplate|i@iron_leggings|i@iron_helmet| <player.flag[BlockLocation]> qty:1
  - run SkeleBats
  - explode power:5 <player.flag[BlockLocation]> fire breakblocks
  - drop i@iron_ingot <player.flag[BlockLocation]> qty:64
  - drop i@diamond <player.flag[BlockLocation]> qty:16
WetBroken:
  type: task
  debug: false
  script:
  - random 9
  - run ZombiesOnChickens
  - run BombBats 
  - drop i@diamond_block <player.flag[BlockLocation]> qty:1
  - drop i@gold_block <player.flag[BlockLocation]> qty:5
  - spawn creeper|creeper|creeper|creeper|creeper <player.flag[BlockLocation]> persistent
  - drop i@diamond_sword|i@diamond_chestplate|i@diamond_leggings|i@diamond_helmet| <player.flag[BlockLocation]>
  - run SpiderJokeys
  - run Skelombie
  - run BurriedAlive
GiveLightDamage:
  type: task
  debug: false
  script:
  # Gives player light damage.
  - hurt 2.5 <player> 
GiveMediumDamage:
  type: task
  debug: false
  script:
  # Gives player medium damage.
  - hurt 5 <player> 
GiveHeavyDamage:
  type: task
  debug: false
  script:
  # Gives player heavy damage.
  - hurt 10 <player> 
BombBats:
  type: task
  debug: false
  script:
  - repeat 6 {
    - mount e@primed_tnt|bat <player.flag[BlockLocation]>
    }
SkeleBats:
  type: task
  debug: false
  script:
  - repeat 6 {
    - mount e@Skeleton|bat <player.flag[BlockLocation]>
    }
SpiderJokeys:
  type: task
  debug: false
  script:
  - repeat 6 {
    - mount e@Skeleton|Spider <player.flag[BlockLocation]>
  }
ZombiesOnChickens:
  type: task
  debug: false
  script:
  - repeat 6 {
    - mount e@Zombie|chicken <player.flag[BlockLocation]>
    }
Skelombie:
  type: task
  debug: false
  script:
  - repeat 6 {
    - mount e@Skeleton|zombie <player.flag[BlockLocation]>
    }
Popcorn:
  type: task
  debug: false
  script:
  - shoot <player> origin:<player.location> destination:<player.location.add[0,20,0]> script:GiveMediumDamage
  - narrate "Popcorn!"
BurriedAlive:
  type: task
  debug: false
  script:
  - teleport <player> <player.location.sub[0,4,0]> 
  - run GiveHeavyDamage
  - narrate "Burried Alive!"