Skip to content

Orion is a multi-purpose Discord bot designed for moderation, utility, and fun. It offers weather and currency APIs, news headlines, moderation tools, interactive mini-games, and more—all powered by discord.js.

Notifications You must be signed in to change notification settings

DwayneCrous/Orion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Orion Discord Bot

Orion is a multi-purpose Discord bot designed for moderation, utility, and fun. It offers weather and currency APIs, news headlines, moderation tools, interactive mini-games, and more—all powered by discord.js.


🚀 Features

  • Weather API: Get current weather for any location.

  • Bot Updates: Announce new features and bot changes interactively, with preview and @here notification.

  • Server Info: Get information about the server, including member count and creation date.

  • News Headlines: Get the top 3 latest news headlines for South Africa in the daily overview.

  • Currency Converter: Convert amounts between currencies.

  • Moderation Tools: Kick, ban, mute users, bulk delete messages, and filter bad words (case-insensitive, per-word toggling, instant moderation, and listing).

  • Bad Word Filter: Enable or disable filtering of specific words (case-insensitive, always stored and checked in lowercase), with instant message deletion and user notification.

  • List Bad Words: View all currently filtered words in a stylish embed (color: #1e66f5).

  • Polls: Create quick polls with custom questions, two options, and a timed voting period.

  • Mini-Games: Flip a coin, roll a dice, play rock-paper-scissors—all with interactive embeds.

  • User Utilities: Get any user's avatar with a single command.

  • Extras: Quick link to Dwayne's GitHub.


🛠️ Setup

  1. Clone the repository

    git clone https://github.com/DwayneCrous/Orion.git
    cd Orion
  2. Install dependencies

    npm install
  3. Configure environment variables

    Create a .env file in the root directory with the following:

    TOKEN=your_discord_bot_token
    CLIENT_ID=your_discord_client_id
    GUILD_ID=your_guild_id
    WEATHER_API_KEY=your_openweathermap_api_key
    NEWS_API_KEY=your_newsapi_key
    EXCHANGE_RATE_API_KEY=your_exchangerate_api_key
    WELCOME_CHANNEL_ID=your_welcome_channel_id
    BIRTHDAY_CHANNEL_ID=your_birthday_channel_id
    
  4. Register commands

    Run the command registration script:

    node src/register-commands.js
  5. Start the bot

    node src/index.js

📋 Commands

API & Utility Commands

  • /bot-updates [update:<string>]
    • Interactively compose and preview a bot update announcement. Edit the message before sending, then notify everyone online in the current channel with an embed and @here mention.
  • /get-avatar user:<user>
    • Get the avatar of any user.
  • /create-poll question:<string> option1:<string> option2:<string> duration:<minutes>
    • Create a poll with a custom question, two options, and a voting duration (in minutes). Users vote by reacting with 🟩 or 🟦. The bot announces the result when the poll ends.
  • /todays-overview
    • Get a daily overview with weather (now including a summary generated by Gemini) and top 3 news headlines for South Africa.
  • /get-weather location:<string> units:<Celsius|Fahrenheit>
    • Get current weather for a location.
  • /currency-convert amount:<number> from_currency:<string> to_currency:<string>
    • Convert currency amounts.
  • /server-info
    • Get information about the server, including member count, creation date, and server owner.
  • /remind-me time:<string> message:<string>
    • Set a personal reminder. The bot will DM you at the specified time.
  • /list-birthdays
    • List all registered user birthdays in the server.
  • /set-birthday date:<YYYY-MM-DD>
    • Set or update your birthday for birthday announcements.
  • /set-nickname user:<user> nickname:<string>
    • Change a user's nickname (requires permission).
  • /set-role user:<user> role:<role>
    • Assign a role to a user (requires permission).
  • /set-slowmode channel:<channel> duration:<seconds>
    • Set slowmode duration for a channel.

Moderation

  • /expunge-message amount:<1-100> channel:<channel>
    • Bulk delete messages in a channel, with feedback on success or errors.
  • /kick-user user:<user> reason:<string>
    • Kick a user from the server, with detailed error handling.
  • /ban-user user:<user> reason:<string>
    • Ban a user from the server, with detailed error handling.
  • /mute-user user:<user> duration:<seconds>
    • Temporarily mute a user, with feedback.
  • /bad-word-filter toggle:<Enable|Disable> word:<string>
    • Enable or disable filtering of specific words.
  • /list-bad-words
    • List all words currently in the bad word filter.

Mini-Games

  • /flip-coin
    • Flip a coin and get the result in an embed.
  • /dice-roll
    • Roll a dice (1-6) and see the result in an embed.
  • /rock-paper-scissors choice:<rock|paper|scissors>
    • Play against the bot with instant feedback and result embed.

Extras

  • /dwayne-github
    • Get a link to Dwayne's GitHub profile.

📝 Contributing

Pull requests and suggestions are welcome! Please open an issue for major changes.


📄 License

This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0).


👤 Author

Dwayne Crous

About

Orion is a multi-purpose Discord bot designed for moderation, utility, and fun. It offers weather and currency APIs, news headlines, moderation tools, interactive mini-games, and more—all powered by discord.js.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •