/bastion-bot

A Discord bot for displaying information about Yu-Gi-Oh! cards in all official languages.

Primary LanguageTypeScriptGNU Affero General Public License v3.0AGPL-3.0

Bastion Invite to Discord

Bastion avatar

English 한국어 日本語 简体中文 繁體中文 Português Español Français Deutsch Italiano

A free and open-source Discord bot for looking up cards and other useful information about the Yu-Gi-Oh! Trading Card Game, Official Card Game, Rush Duel, and Master Duel video game.

Get started with searching for cards using <> in your messages! For Slash Command documentation, look in docs/commands. For everything else, please refer to the old Bastion Classic repository.

Thanks to YGOPRODECK for sponsoring Bastion. Prices provided by Bastion are YGOPRODECK affiliate links.

Card images and most card data are sourced from Yugipedia via YAML Yugi.

Invite to Discord   Discord App Directory

Discord permissions

Please make sure you use an invite link that automatically grants the following permissions.

  • Create commands in a server
  • 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: Bastion replies to messages that request card search.
  • Use External Emojis: Bastion uses 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, this can be managed per command in the Integrations tab of your server settings. Alternatively, you can blanket deny the Use Application Commands permission for the individuals or roles in question, but this will apply to all bots.

Support server

Support server invite

Contributing

codecov Continuous integration and deployment CodeQL Contract tests

Bastion is written in TypeScript. It targets Node.js 20+ and can be run with or without Docker. It uses Discord.js to talk to Discord.

Please use Australian English spellings.

Translations

Bastion intends to be fully localised to all regions with official Yu-Gi-Oh! releases. Translation work is incomplete and we appreciate any translator help. The localisation files are in the translations directory; for more information, please see the documentation for translators.

Privacy

See PRIVACY.md for Bastion's Privacy Policy.

Licence

Copyright © 2021–2024 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/>.