Skip to content

Instantly share code, notes, and snippets.

@mudphone
Last active December 23, 2015 16:59
Show Gist options
  • Save mudphone/6665289 to your computer and use it in GitHub Desktop.
Save mudphone/6665289 to your computer and use it in GitHub Desktop.
Rename constant to use hyphens.
(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