Last active
December 23, 2015 16:59
-
-
Save mudphone/6665289 to your computer and use it in GitHub Desktop.
Rename constant to use hyphens.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns cljminecraft.scratch | |
(:require [cljminecraft.core :as core] | |
[cljminecraft.bukkit :as bk] | |
[cljminecraft.blocks :as blocks] | |
[cljminecraft.events :as ev] | |
[cljminecraft.entity :as ent] | |
[cljminecraft.player :as plr] | |
[cljminecraft.util :as util] | |
[cljminecraft.logging :as log] | |
[cljminecraft.config :as cfg] | |
[cljminecraft.commands :as cmd] | |
[cljminecraft.recipes :as r] | |
[cljminecraft.items :as i] | |
[cljminecraft.files] | |
[cheshire.core :as ch] | |
[clojure.tools.nrepl.server :refer (start-server stop-server)]) | |
(:import [org.bukkit Location Material])) | |
;; M-x nrepl to connect to Minecraft server on port 4005 | |
;; or, use $ lein repl :connect 4005 | |
;; C-c C-k to eval this buffer | |
;;(in-ns 'cljminecraft.core) | |
;;(in-ns 'cljminecraft.scratch) | |
;;(ev/find-event "break") | |
;;(ev/describe-event "block.block-break") | |
(defn mybreakfn [ev] | |
{:msg (format "You broke a %s" (.getBlock ev))}) | |
(defn unregister-all-events [] | |
(let [plugin @core/clj-plugin] | |
(log/info "Unregistering all events for plugin %s" (.getName plugin)) | |
(reset! ev/registered-events #{}) | |
(org.bukkit.event.HandlerList/unregisterAll plugin))) | |
;;(ev/register-event @core/clj-plugin "block.block-break" #'mybreakfn) | |
;;(unregister-all-events) | |
(defn mybreakfn [ev] | |
{:msg (format "You broke a %s" (.getType (.getBlock ev)))}) | |
(defn first-player [] | |
(first (bk/online-players))) | |
;;(def me (first-player)) | |
(defn max-health [player] | |
(.setHealth player (.getMaxHealth player))) | |
;;(.sendMessage me "hello") | |
;;(.getLocation me) | |
;; (def loc (.getLocation me)) | |
;; (.getY loc) | |
;; (.getX loc) | |
;; (.getZ loc) | |
;; (.getWorld loc) | |
;; (.setType (.getBlock (.getLocation me)) org.bukkit.Material/STONE) | |
(defn create-stone-at-loc [loc] | |
(-> (.getBlock loc) | |
(.setType Material/STONE))) | |
(defn create-stone-tower-at-loc | |
([loc height] | |
(doseq [dy (range 0 height)] | |
(create-stone-at-loc (new Location (.getWorld loc) (.getX loc) (+ dy (.getY loc)) (.getZ loc))))) | |
([loc] | |
(create-stone-tower-at-loc loc 10))) | |
(defn target-loc-of-player [player] | |
(.getLocation (.getTargetBlock player nil 256))) | |
(defn create-stone-at-target-of-player [player] | |
(-> (.getTargetBlock player nil 256) | |
(.setType Material/STONE))) | |
(defn create-stone-at-loc-of-player [player] | |
(create-stone-at-loc (.getLocation player))) | |
(def BIRTH-DATA-FILE "/Users/koba/work/MinecraftMods/clj-minecraft/data/birth.json") | |
(def birth-data (ch/parse-string (slurp BIRTH-DATA-FILE))) | |
(def sorted-birth-data (sort-by #(Integer. (% "year")) < birth-data)) | |
(def rates (map #(int (Float. (% "rate_per_1000_resident_population"))) sorted-birth-data)) | |
(defn create-birth-graph-at-target-of-player [player] | |
(let [loc (target-loc-of-player player)] | |
(doseq [dx (range 0 (count rates)) | |
:let [loc (new Location (.getWorld loc) (+ dx (.getX loc)) (.getY loc) (.getZ loc))]] | |
(create-stone-tower-at-loc loc (nth rates dx))))) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment