- About the Project
- Core Features
- Architecture & Tech Stack
- Getting Started
- Configuration
- Command Reference
- Contributing
- License
AIO-Bot is an all-in-one Discord application designed to streamline server management and enhance user engagement. Built on the modern Discord.js v14 framework, it provides a robust suite of tools encompassing moderation, detailed server telemetry, entertainment features, and developer utilities.
Whether utilizing Discord's modern Application Commands (Slash Commands) or traditional Prefix Commands, AIO-Bot delivers a highly responsive and modular experience.
- Hybrid Command Infrastructure: Seamlessly supports both Slash Commands (
/) and customizable Prefix Commands (=). - Comprehensive Moderation: A complete suite for managing server integrity, including timeouts, bans, channel locks, and a robust warning system.
- Persistent Storage: Leverages MongoDB via Mongoose for persistent state management and data storage.
- Advanced Event Logging: Automatically tracks and logs critical server events, including member joins, moderation actions, and channel state mutations.
- Developer & Owner Utilities: Includes modular command hot-reloading, an integrated JavaScript evaluation console, and system diagnostic readouts.
AIO-Bot is built with scalability and maintainability in mind, utilizing standard industry practices:
- Runtime: Node.js (v18+)
- Library: Discord.js (v14) for Discord API interactions.
- Database: MongoDB with Mongoose for Object Data Modeling (ODM).
- Linting: ESLint configured for strict code quality enforcement.
- Environment Management: Dotenv for secure configuration injection.
Before running AIO-Bot, ensure you have the following installed and configured:
- Node.js v18.0.0 or higher
npm(Node Package Manager)- A Discord Bot Application Token (obtainable via the Discord Developer Portal)
- A MongoDB Cluster (e.g., MongoDB Atlas)
-
Clone the repository:
git clone https://github.com/WIZARDOF-OZ/AIO-Discord-Bot.git cd AIO-Discord-Bot -
Install dependencies:
npm install
-
Configure the environment: Create a
.envfile in the root directory based on.env.example:TOKEN=your-discord-bot-token MONGO_URI=mongodb://user:password@cluster-url... client_id=your-application-client-id guildId=your-test-server-id
(Note: If utilizing MongoDB Atlas, ensure you disable the SRV toggle if experiencing local DNS resolution issues, as documented).
-
Register Application Commands: Deploy the slash commands to your Discord server:
npm run cmd
-
Initialize the Application:
npm run start
(For active development, utilize
npm run devto enablenodemonauto-restarting).
Core bot behavior can be modified within src/config.js:
module.exports = {
owners: ["YOUR_DISCORD_ID"], // Array of user IDs with owner privileges
prefix: "=", // Default prefix for classic commands
// ...additional configurations
};View Slash Commands (/)
| Category | Command | Description |
|---|---|---|
| Info | /help |
Display the interactive command list. |
/userinfo |
Show detailed member profile information. | |
/serverinfo |
Show server statistics and settings. | |
/roleinfo |
Show role properties and permissions. | |
| Fun | /avatar |
Get a user's avatar in high resolution. |
/roll |
Roll dice and return the results. | |
/ping |
Check the bot's websocket latency. | |
/meme, /joke |
Fetch random entertainment media. | |
| Moderation | /ban, /kick |
Remove users from the server. |
/timeout |
Temporarily restrict a member's access. | |
/lock, /unlock |
Manage channel read/write permissions. | |
/warn |
Add a warning to a user's database record. | |
| Utility | /botinfo |
Show bot uptime, memory usage, and server counts. |
/reload |
Hot-reload a command without restarting the application. | |
/eval |
Evaluate raw JavaScript code (Owner only). |
View Prefix Commands (=)
| Category | Command | Description |
|---|---|---|
| Fun | =ping |
Ping the bot. |
=avatar |
Retrieve a user's avatar. | |
=8ball |
Ask the magic 8-ball a question. | |
| Moderation | =purge |
Bulk delete messages in a channel. |
=slowmode |
Configure the slowmode of a channel. | |
| Developer | =reload |
Hot-reload specific systems. |
Contributions, issues, and feature requests are welcome. If you wish to contribute to the codebase:
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/NewFeature) - Commit your Changes (
git commit -m 'Add NewFeature') - Push to the Branch (
git push origin feature/NewFeature) - Open a Pull Request
Quality Assurance: Please ensure that any submitted code passes the existing linting rules. Run npm run lint before committing your changes.
Distributed under the MIT License. See LICENSE for more information.