Skip to content

Instantly share code, notes, and snippets.

@ddeaguiar
Created August 19, 2013 00:09
Show Gist options
  • Save ddeaguiar/6264782 to your computer and use it in GitHub Desktop.
Save ddeaguiar/6264782 to your computer and use it in GitHub Desktop.
tutorial.clj
(ns tutorial.core
(:require [cljminecraft.bukkit :as bk]
[cljminecraft.blocks :as bl]
[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 :as f]))
(defonce plugin (atom nil))
(defn random-command
[sender]
{:msg (format (cfg/get-string @plugin "diceroll.string") (inc (int (rand 6))))})
(defn- portal []
[(bl/up 4)
(bl/turn-right)
(bl/forward 3)
(bl/down 4)
(bl/turn-left)
(bl/turn-left)
(bl/forward 3)])
(defn- build-nether-portal! [player]
(let [ctx (bl/setup-context player)
air (bl/material :air)
obsidian (bl/material :obsidian)]
(bl/run-actions ctx air (bl/forward 5))
(bl/run-actions ctx obsidian (portal))))
(defn nether-portal-command
[sender]
(build-nether-portal! (get-player sender)) ;; does sender implement HasPlayer protocol?
{:msg "Created nether portal!"})
;; Plugin lifecycle
(defn start
[plugin-instance]
(log/info "%s" "in start tutorial")
(reset! plugin plugin-instance)
(cmd/register-command @plugin "tutorial.random" #'random-command))
(defn stop
[plugin]
(log/info "%s" "in stop tutorial"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment