go-hypixel
go-hypixel consists of multiple sub-projects:
-
go-hypixel-api (/api): Go library for interacting for the Hypixel API.
-
go-hypixel-engine (/engine): project to store, parse, analyse, and return Hypixel data, gathered using go-hypixel-api. Settings and data caches are stored using BoltDB through the Storm toolkit. Client projects can request data from the engine.
- discord plugin (/engine/discord.go): discord bot which allows Discord users to get notifications about Hypixel information (e.g. friends going online and offline) or manually request that data using commands (e.g. !pstats [username] to see player stats about a Hypixel player). Written as part of the engine, its functions can be easily supplanted by other platform bots, either separately or at the same time (just run it as a goroutine from main)
Potentially, other client projects could be created to allow using the go-hypixel-engine with other services (e.g. over IRC, text messsage, Telegram, Matrix, etc.).
Usage
-
If you have go installed and GOPATH configured, just run go install go-hypixel
to fetch the source to $GOPATH/src, build, and install to $GOPATH/bin. Or, you
can clone the repository manually and build it with go build
.
-
Set environmental variables: export DISCORD_TOKEN="[discord bot token here]
and export HYPIXEL_API="[hypixel api token here]"
.
-
Run the executable.
Dependency List
├ git.sr.ht/~exprez135/go-hypixel
├ git.sr.ht/~exprez135/go-hypixel/engine
├ git.sr.ht/~exprez135/go-hypixel/api
└ github.com/tidwall/gjson
├ github.com/tidwall/match
└ github.com/tidwall/pretty
├ github.com/Necroforger/dgrouter
├ github.com/Necroforger/dgrouter/exrouter
├ github.com/Necroforger/dgrouter ~
└ github.com/bwmarrin/discordgo
├ github.com/gorilla/websocket
└ golang.org/x/crypto/nacl/secretbox
├ golang.org/x/crypto/internal/subtle
├ golang.org/x/crypto/poly1305
└ golang.org/x/crypto/salsa20/salsa
├ github.com/boltdb/bolt
├ github.com/bwmarrin/discordgo ~
└ github.com/tidwall/gjson ~
└ github.com/robfig/cron/v3
Copyright 2020-2021 Nathaniel Ijams nate@ijams.me
The works are licensed under the GNU Affero General Public License Version 3 (AGPLv3). See the LICENSE file.
Notes
go-hypixel-api is a derived work from an original project by Max Walsch. His original work is licensed under the Apache Version 2.0 license. My modifications and the Derivative Work as a whole is still licensed under the AGPL. See the api directory for patch files and more information.