Last active
April 18, 2018 21:35
-
-
Save armstnp/2ed2ba918befa41aba887151aef81db0 to your computer and use it in GitHub Desktop.
A quick-and-dirty echo bot using JDA in Clojure
This file contains hidden or 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 astralaria-clj.discord.jda-bind | |
(:require [astralaria-clj.util :refer :all]) | |
(:import [net.dv8tion.jda.core AccountType JDABuilder Permission] | |
[net.dv8tion.jda.core.hooks ListenerAdapter] | |
[java.lang Object] | |
[net.dv8tion.jda.core.events.message MessageReceivedEvent])) | |
(def bot-token "*****") | |
(defn echo-message [^MessageReceivedEvent event] | |
(let [msg (-> event .getMessage .getContentDisplay) | |
author (.getAuthor event) | |
channel (.getChannel event)] | |
(when-not (.isBot author) | |
(.queue (.sendMessage channel msg))))) | |
(def listener | |
(proxy [ListenerAdapter] [] | |
(onMessageReceived [event] (echo-message event)))) | |
(-> | |
AccountType/BOT | |
JDABuilder. | |
(.setToken bot-token) | |
(.addEventListener (into-array Object [listener])) | |
.buildBlocking | |
.asBot | |
(as-> bot | |
{:bot bot | |
:invite (.getInviteUrl | |
bot | |
(enum-coll Permission VIEW_CHANNEL MESSAGE_READ MESSAGE_WRITE))})) |
This file contains hidden or 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 astralaria-clj.util) | |
(defn ^:private -enum-coll [enum-class & enum-vals] | |
(let [enum-name (str enum-class)] | |
`[~@(map #(symbol enum-name (str %)) enum-vals)])) | |
(defmacro enum-coll [& forms] | |
(apply -enum-coll forms)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment