LOSE Bot: A Custom Hypixel Guild Discord Bot

Project Overview

LOSE Bot is a custom Discord bot designed for the Legion of Super Evil Hypixel Guild. It facilitates communication between in-game players and users in the Discord server.
Tech Stack
LanguageTypescript
PlatformDiscord
DatabaseMySQL (Prisma)
BackendNode.js
Version ControlGitHub
ContainerizationDocker
DeploymentSelf-Hosted

Key Features & Development Challenges

Throughout the development, different versions improved the reliability and efficiency of command handling. Commands are dynamically loaded from a list, ensuring flexibility in functionality. Error handling has been meticulously implemented to avoid crashes, making the bot more robust.
A challenging feature was facilitating user statistics collection for debugging and improving the bot. This includes Minecraft and Discord message counts, and Discord command usage count. The bot also deals with the privacy aspect, allowing users to opt out of the statistics collection.
The bot includes a Hypixel linking feature that underwent a rigorous beta testing phase to ensure its robustness. This feature has seen several iterations to improve its efficiency and user experience.
One innovative feature is the ability for users to interact with Minecraft players directly from Discord. This included the creation of a custom socket server and a custom Minecraft packet parser. Although this component presented significant challenges, it added a unique interactive element to the bot's feature set.

Development Practices & Future Updates

The project follows a disciplined version control practice using GitHub. Its Docker-centered environment eases the transition from development to deployment, making the bot self-hostable.
Future updates should continually refine existing features, improve performance, and add more interactive elements to the bot. As the bot's feature set expands, so too does the opportunity for learning and tackling new development challenges.

Visit the

Discord

to interact with the bot firsthand.