Usalia is a Discord bot intended to provide useful functionality to your Discord server. Powered by discordrb.
Ruby >= 2.7.2 Redis
Usalia is currently a private bot. You will need to create and run your own Discord app to add her to your server.
- Create a new Discord app
- Click "Create a Bot User"
- Insert your client ID into the following URL:
https://discordapp.com/oauth2/authorize?client_id=INSERT_CLIENT_ID_HERE&scope=bot&permissions=268659792
- Follow the URL to add the bot to your server (requires the Manage Server permission)
git clone https://github.com/mattantonelli/usalia-bot
cd usalia-bot
bundle install
- Set up the configuration file
cp config/config.yml.example config/config.yml
- Features that poll external services are disabled by default. Uncomment those if you wish to use them.
- Update the example values appropriately.
bundle exec ruby run.rb
Usalia requires the following permissions:
- Manage Roles
- Manage Channels
- Read Text Channels & See Voice Channels
- Send Messages
- Manage Messages
- Embed Links
- Read Message History
- Mention Everyone
- Add Reactions
Usalia is set up for Capistrano deployment. The deployment strategy is dependent on rbenv
and screen
. You can configure Usalia to deploy to your own server by updating config/deploy.rb
and config/deploy/production.rb
appropriately.
Creates a poll by adding reactions to the command message. The ๐ and ๐ reactions are added by default, but you can add your own emojis to the message to use those instead.
@Usalia poll Metal Gear Solid 2 is the best MGS title.
@Usalia poll Would you rather go for :coffee: or :ice_cream: ?
Converts time from one zone to another. This command tries to be smart about DST, and will correct the given zones appropriately (e.g. EST when it is actually EDT.) This command currently supports the continental US, the UK, and southeastern Australia.
@Usalia convert 8:00am EST to GMT
@Usalia convert 14:00 PST to EST
Rolls a random number from 1 to 999.
@Usalia random
Initiates a ready check for the mentioned users/roles. Users have 30 seconds to confirm they are ready by selecting a reaction on the bot's response message.
@Usalia ready @user1 @user2
@Usalia ready @role1 @role2
A request is a call for help that can be issued by users with the Mention Everyone permission when they react to a message with ๐ in any of the configured Request Channels. When Usalia sees the bell reaction added under these criteria, she will react to the message with the configured request reactions. A user with the Mention Everyone permission can also have the bot mention any users who reacted to the message by adding the ๐ฃ reaction.
Welcomes new members to the server in the configured Introductions channel.
Creates a temporary voice channel for the user's in game party members. Temporary channels are deleted after an hour if nobody is connected to the channel. A maximum of five channels can be active at a time.
To create a private channel, mention at least one other user. A temporary role will be assigned to the author and all mentioned users that will allow access to the channel.
@Usalia party
@Usalia party @user1 @user2
Disbands your party.
@Usalia disband
Looks up a Yu-Gi-Oh! card by name. All of the card's major information is provided as an embed, and a link is provided to the full-sized card image.
Card data provided by the Yu-Gi-Oh Prices API.
@Usalia yugioh blue-eyes white dragon
Broadcasts when a user starts streaming using the Twitch connection. Updates are sent to the configured Twitch channel after a user has enabled the feature for their account.
@Usalia stream <on/off/status>
Similar to the Stream command, but for specific Twitch users. These stream updates can be configured by an admin user.
@Usalia twitch <username> <on/off/status>
Posts FF Logs reports for users in their configured channels after they are uploaded. Logs must be uploaded within 24 hours after their start time. Logs for a given user can be posted in a single channel, as configured by an admin via commands.
@Usalia fflogs <owner> <on/off/status>
Posts the top YouTube search result for the given query.
@Usalia youtube <query>
Converts between Celsius and Fahrenheit.
@Usalia temp <value> <C/F>
Looks up a Magic: The Gathering card by name. All of the card's major information is provided as an embed, and a link is provided to the full-sized card image.
Card data provided by Magic: The Gathering - Developers.
@Usalia mtg chandra, fire of kaladesh
Posts a random skeleton GIF by jjjjjohn.
@Usalia skeleton
Provides times for upcoming FFXIV maintenance.
@Usalia maintenance
Provides a reminder message at the given time.
@Usalia remindme 1d steal the declaration of independence
@Usalia reminder @Usalia you're a good girl