Lyuze 3.0 is a modern, modular, and extensible Discord bot built with C# and Discord.NET. It leverages .NET's Generic Host for robust application lifecycle management and Dependency Injection, making it easy to develop and maintain. The bot features a range of functionalities, including administrative tools, anime-related commands, user profiles with leveling, and reaction roles.
Lyuze 3.0 is designed for self-hosting, offering full control and customization to its deployers.
- Administration & Moderation:
- Purge messages, kick, ban, and unban users.
- Owner-only commands for bot control (
/kill).
- Anime & Image Search:
- Get random anime quotes (
/aquote). - Trace anime source from images (
/trace). - Find image sources using SauceNao (
/sauce). - Fetch random waifu images by tag (
/waifu).
- Get random anime quotes (
- User Profiles & Leveling:
- View and customize user profiles (
/profile). - Set custom profile backgrounds (
/setprofilebg). - Update "About Me" sections (
/setprofileaboutme). - Control profile visibility (
/setprofilestatus). - Toggle level-up notifications (
/setplvlnotifications). - XP gain from messages and slash commands.
- View and customize user profiles (
- Reaction Roles:
- Set up and manage reaction role messages (
/setup_reaction_roles,/add_reaction_roles). - Remove roles from users (
/remove_role).
- Set up and manage reaction role messages (
- Robust Architecture:
- Clean architecture with clear separation of concerns.
- Extensive use of Dependency Injection.
- MongoDB for data persistence.
- Asynchronous event handling.
Curious about what's next for Lyuze Bot? Check out our development roadmap to see upcoming features, planned improvements, and how you can contribute to shaping the future of the bot.
To get Lyuze 3.0 up and running quickly, follow the detailed setup guide in docs/SETUP.md. This guide covers everything from prerequisites to Discord application setup and MongoDB Atlas configuration.
- .NET 8.0 SDK or newer.
- A Discord Bot Token.
- A MongoDB instance (e.g., a free tier cluster on MongoDB Atlas).
For detailed instructions on obtaining these and configuring them, refer to docs/SETUP.md.
- Clone the repository:
git clone https://github.com/your-repo/Lyuze-Bot.git cd "Lyuze 3.0/Lyuze Bot"
- Configure Settings:
- Navigate to the
Resources/Settings/directory (it will be created on first run if it doesn't exist). - Create or edit
settings.jsonwith your bot's configuration. A template will be generated if the file is missing. - Refer to
docs/CONFIGURATION.mdfor detailed configuration instructions.
- Navigate to the
- Build the project:
dotnet build
- Run the bot:
The bot should connect to Discord and log its startup process.
dotnet run --project "Lyuze Bot.csproj"
Lyuze 3.0 uses a settings.json file for all its configuration. This file is located in the Resources/Settings/ directory relative to the application's base directory. It contains critical information such as your Discord bot token, API keys for external services, and database connection strings.
IMPORTANT: Never share your settings.json file, especially if it contains sensitive information like API keys or bot tokens.
For a detailed guide on configuring the bot, including all available keys and how to set them up, please see docs/CONFIGURATION.md.
Lyuze 3.0 supports a variety of slash commands, user commands, and message commands. These are organized into modules based on their functionality.
For a complete list of commands, their descriptions, and required permissions, refer to docs/COMMANDS.md.
- Bot not coming online:
- Check your
settings.jsonfor correct Discord bot token andGuildId. - Ensure your bot has the necessary Gateway Intents enabled in the Discord Developer Portal (especially
Message Content Intentif you use message-based features). - Review the console output for any error messages during startup.
- Check your
- Commands not appearing/working:
- Ensure your bot has the
applications.commandsscope authorized in its OAuth2 URL. - Verify the
GuildIdinsettings.jsonis correct for the guild where you expect commands to be registered. - Check the bot's permissions in the Discord server.
- Ensure your bot has the
If you plan to contribute to Lyuze 3.0 or develop new features, please refer to docs/DEVELOPMENT.md for guidelines on setting up your development environment, coding conventions, and adding new commands or services. This document is intended for contributors and maintainers, providing practical guidance for working with the codebase.
Dive deeper into Lyuze Bot's features and development:
- Anime Image Search: Explore how to use and extend the anime image search functionalities. In-depth:
docs/ANIME-IMAGE-SEARCH.md - Architecture: Understand the core design principles and structure of Lyuze Bot. In-depth:
docs/ARCHITECTURE.md - Commands: A comprehensive guide to all available commands and their usage. In-depth:
docs/COMMANDS.md - Configuration: Learn how to configure Lyuze Bot to your server's needs. In-depth:
docs/CONFIGURATION.md - Development: Get started with developing and contributing to Lyuze Bot. In-depth:
docs/DEVELOPMENT.md - Moderation: Details on moderation commands and how to keep your server safe. In-depth:
docs/MODERATION.md - Setup: Step-by-step instructions to get Lyuze Bot up and running. In-depth:
docs/SETUP.md - Roadmap: Discover upcoming features and planned improvements for Lyuze Bot. In-depth:
docs/ROADMAP.md