Skip to content

Instantly share code, notes, and snippets.

@bgnori
Created May 4, 2012 14:35
Show Gist options
  • Save bgnori/2595150 to your computer and use it in GitHub Desktop.
Save bgnori/2595150 to your computer and use it in GitHub Desktop.
(defn make-arrow-skill-updater [skill-name]
(defn updater [player]
(c/broadcast (.getDisplayName player) " changed arrow-skill to " (last skill-name))
(swap! arrow-skill assoc (.getDisplayName player) (first skill-name))
))
(defn skillchange [player block block-against]
(when (and
(every? identity (map
#(=
(.getType (.getBlock (.add (.clone (.getLocation block-against)) %1 0 %2)))
Material/STONE)
[0 0 -1 1] [-1 1 0 0]))
(every? identity (map
#(not=
(.getType (.getBlock (.add (.clone (.getLocation block-against)) %1 0 %2)))
Material/STONE)
[-1 1 0 0] [-1 1 0 0])))
(let [table {Material/GLOWSTONE (make-arrow-skill-updater ['strong "STRONG"])
Material/TNT (make-arrow-skill-updater [arrow-skill-explosion "EXPLOSION"])
Material/TORCH (make-arrow-skill-updater [arrow-skill-torch "TORCH"])
Material/REDSTONE_TORCH_ON (make-arrow-skill-updater [arrow-skill-pull "PULL"])
Material/YELLOW_FLOWER (make-arrow-skill-updater [arrow-skill-teleport "TELEPORT"])
Material/RED_ROSE (make-arrow-skill-updater [arrow-skill-fire "FIRE"])
Material/SAPLING (make-arrow-skill-updater [arrow-skill-tree "TREE"])
Material/WORKBENCH (make-arrow-skill-updater [arrow-skill-ore "ORE"])
Material/BROWN_MUSHROOM (make-arrow-skill-updater ['fly "FLY"])
Material/CACTUS (make-arrow-skill-updater [arrow-skill-shotgun "SHOTGUN"])
Material/RAILS (make-arrow-skill-updater ['cart "CART"])
Material/BOOKSHELF (make-arrow-skill-updater ['mobchange "MOBCHANGE"])
Material/STONE (make-arrow-skill-updater ['sniping "SNIPING"])
Material/SNOW_BLOCK (make-arrow-skill-updater [arrow-skill-ice "ICE"])}]
(if-let [skill-handler (table (.getType block))]
;then
(skill-handler player)
;else
(prn "no effect is defined for " block)))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment