~exprez135/go-hypixel

A collection of Go libraries and programs to interact with the Hypixel API ~ API, Engine, & Discord Bot
Add even more additional logging to PutFriends() in engine/api.go.
Add additional logging to PutFriends() in engine/api.go.
Try to track down breaking hang in GetFriendsList during notification sends by adding logging.

clone

read-only
https://git.sr.ht/~exprez135/go-hypixel
read/write
git@git.sr.ht:~exprez135/go-hypixel

You can also use your local clone with git send-email.

#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

  1. Clone the repository.

  2. Set environmental variables: export DISCORD_TOKEN="[discord bot token here] and export HYPIXEL_API="[hypixel api token here]".

  3. Build the project: go build

  4. Run the executable.

#Technical Information

#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

visualization of dependencies

Copyright 2020 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.