A free and open-source Discord bot for looking up cards and other useful information about the Yu-Gi-Oh! Trading Card Game and Official Card Game. This is the repository for the rewrite to take advantage of new features offered by Discord and improve reliability.
Features implemented here will be gradually rolled out to the live bot. For documentation, please refer to the old Bastion Classic repository.
Throughout 2021, Discord has introduced a number of new features at a faster pace than ever before, including application interactions and threads. These require a major update to Bastion because the old underlying library to work with Discord is not keeping pace with the new direction of Discord. Furthermore, Discord is enforcing the use of Slash Commands over traditional message-based commands for verified bots, effective April 2022.
We will apply for message content privileges to retain the inline <>
card searching feature, but
the final arbiter for that feature will be Discord. In the meantime, we will progressively migrate
as many Bastion commands as possible to the new Slash Command system.
Please make sure you use an invite link that automatically grants the following permissions.
- Create slash commands. If Bastion joined your server after March 22, 2021, and you did not use the link above to invite it, you will need to reinvite with the above link. You do not need to kick the bot.
- Send Messages
- Send Messages in Threads
- Embed Links: Bastion displays card information in a Discord rich embed.
- Attach Files: Bastion attaches card images for trivia.
- Read Message History
- Use External Emojis: Bastion ues certain emojis for Yu-Gi-Oh icons in its embeds.
- Add Reactions: Bastion uses "reaction buttons" for advanced control of outputs.
If you do not want Bastion to be used in a channel, deny it the View Channel permission. Otherwise, all of the above permissions must be granted to Bastion in each channel it is available in for it to work correctly. If you do not want Slash Commands to be used in a channel, deny the Use Application Commands permission for the individuals or roles in question.
Bastion is written in TypeScript. It targets Node.js 16.6+ and can be run with or without Docker. It uses Discord.js to talk to Discord.
Please use Australian English spellings.
See PRIVACY.md for Bastion's Privacy Policy.
Copyright ยฉ 2021โ2022 Luna Brand, Kevin Lu. See COPYING for more details.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.