All Projects → CyberDiscovery → Cyberdisc Bot

CyberDiscovery / Cyberdisc Bot

Licence: mit
The bot for the Cyber Discovery Community Discord Server!

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Cyberdisc Bot

Switchblade
The open source Discord bot that solves all of your problems.
Stars: ✭ 285 (+163.89%)
Mutual labels:  discord-bot, hacktoberfest, discord
Javacord
An easy to use multithreaded library for creating Discord bots in Java.
Stars: ✭ 368 (+240.74%)
Mutual labels:  discord-bot, hacktoberfest, discord
Discord.js
discord.js is a powerful Node.js module that allows you to easily interact with the Discord API.
Stars: ✭ 16,432 (+15114.81%)
Mutual labels:  discord-bot, hacktoberfest, discord
Dtel
Telephone roleplay bot on Discord
Stars: ✭ 108 (+0%)
Mutual labels:  discord-bot, hacktoberfest, discord
Pengubot
Official PenguBot GitHub Repository
Stars: ✭ 98 (-9.26%)
Mutual labels:  discord-bot, hacktoberfest, discord
Bot
A Discord bot for all your needs. With memes, utilities, moderation & more, Fire is the only bot you'll need.
Stars: ✭ 79 (-26.85%)
Mutual labels:  discord-bot, hacktoberfest, discord
Discord bot.py
🍺 A simple discord bot that helps you getting started within discord.py
Stars: ✭ 313 (+189.81%)
Mutual labels:  discord-bot, hacktoberfest, discord
Shuffle
Shuffle: A general purpose security automation platform platform. We focus on accessibility for all.
Stars: ✭ 424 (+292.59%)
Mutual labels:  hacktoberfest, discord, cybersecurity
Ninjabotcore
C# Discord Bot Created Using .Net Core
Stars: ✭ 34 (-68.52%)
Mutual labels:  discord-bot, hacktoberfest, discord
Bot
The community bot for the Python Discord community
Stars: ✭ 460 (+325.93%)
Mutual labels:  discord-bot, hacktoberfest, discord
Sir Lancebot
A Discord bot started as a community project for Hacktoberfest 2018, later evolved to an introductory project for aspiring new developers starting out with open source development.
Stars: ✭ 105 (-2.78%)
Mutual labels:  discord-bot, hacktoberfest, discord
Promcord
📊 Analyze your entire discord guild in grafana using prometheus. Message, User, Game and Voice statistics...
Stars: ✭ 39 (-63.89%)
Mutual labels:  discord-bot, hacktoberfest, discord
Community Bot
The bot used on the TypeScript Community discord server
Stars: ✭ 46 (-57.41%)
Mutual labels:  discord-bot, hacktoberfest, discord
Nino
🔨 Advanced and cute moderation discord bot as an entry of Discord's Hack Week!
Stars: ✭ 78 (-27.78%)
Mutual labels:  discord-bot, discord
Open Sourcebot
An open source Discord bot created and run by TheSourceCode community.
Stars: ✭ 81 (-25%)
Mutual labels:  discord-bot, discord
Sylphy
👑 the better discord bot framework
Stars: ✭ 85 (-21.3%)
Mutual labels:  discord-bot, discord
Misaki
Misaki is Discord Bot designed for communities with commands ranging from gif based anime reactions, to head scratching trivia commands.
Stars: ✭ 78 (-27.78%)
Mutual labels:  discord-bot, discord
Spambot
Discord spambot to level up profiles on other bots.
Stars: ✭ 79 (-26.85%)
Mutual labels:  discord-bot, discord
Hibiki
🤖 The best all-in-one Discord bot! Automod, fun, music, utilities, and more. Customizable, easy-to-use, and fully translatable.
Stars: ✭ 86 (-20.37%)
Mutual labels:  discord-bot, discord
Discord.js Menu
💬 Easily create Discord.js v12 embed menus with reactions and unlimited customizable pages.
Stars: ✭ 89 (-17.59%)
Mutual labels:  discord-bot, discord

Cyber Discovery Discord Bot

Build Status Build Status Discord GitHub Python 3.8.x

The bot for the Cyber Discovery Community Discord Server!

Installation

Creating a Bot Token

First, head over to the Discord Developer Portal and create an application. Set a name, then go to the bots tab (on the left) and add a new bot. For testing purposes, it is best to have the bot private, so untick the Public Bot option.

You should then get the client ID of your bot and put it into this URL to join it to your Discord server:

https://discordapp.com/oauth2/authorize?&client_id=<insert client id here>&scope=bot&

Kubernetes

Kubernetes is the intended environment for running the Bot, as it allows for the deployment of a pre-configured environment which can be defined in code. To run Kubernetes on your computer you can use Minikube or deploy Kubernetes properly on a server.

Once you have installed Kubernetes you need to create the secret which will contain the bot token and database credentials.

kubectl create secret generic creds --from-literal BOT_TOKEN=<Discord Bot Token> --from-literal PGHOST=postgres --from-literal PGPORT=5432 --from-literal PGDATABASE=cyberdisc-db --from-literal PGUSER=postgres --from-literal PGPASSWORD=<Postgres Password> --from-literal SENTRY_URL=<Sentry URL> --from-literal DEPLOY=<Anything>

These settings will then be distributed to the containers when you create them like this:

kubectl apply -f https://raw.githubusercontent.com/CyberDiscovery/cyberdisc-bot/master/deployment.yaml

Bare Metal

You can also locally install the bot on your system. First install the dependencies with Poetry:

curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
poetry install

Or on Windows:

(Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py -UseBasicParsing).Content | python
poetry install

If you don't already have the required Python version (currently 3.8+) installed, install pyenv before running the above commands.

You will then need to set the bot token as an environment variable:

export BOT_TOKEN="<insert bot token here>"

Or on Windows:

set BOT_TOKEN="<insert bot token here>"

Finally, run the command poetry run cdbot in the root of the repository to run the bot on your machine. To access admin commands of the bot, set the environment variable ROOT_MEMBERS_ID to the ID of your administrators group.

Commands

General Commands

  • :help - Displays information about the usage and syntax of all commands.

Admin Commands

  • :readme [push | pull] [channel id] [interval] - pull will DM the user a copy of the JSON used for #readme. push will create the readme channel using the set JSON file.

Cyber Discovery Commands

  • :assess [1-14] - Displays information about the corresponding level in CyberStart Assess.
  • :essentials - Displays the remaining time until the start of CyberStart Essentials.
  • :fieldmanual - Returns a link to the CyberStart Game field manual.
  • :flag [base] [level] [challenge] - Generate a very legitimate™️ flag for CyberStart Game.
  • :game - Displays the remaining time until the start of CyberStart Game.
  • :level [base] [level] [challenge] - Display information about challenges from CyberStart Game.

Fun Commands

  • :agentj [text] - Creates an image of Agent J with the specified text.
  • :agentq [text] - Creates an image of Agent Q with the specified text.
  • :angryj [text] - Creates an image of Angry Agent J with the specified text.
  • :angrylyne [text] - Creates an image of Angry James Lyne with the specified text.
  • :baldj [text] - Creates an image of Bald James Lyne with the specified text.
  • :jibhat [text] - Creates an image of Jibhat with the specified text.
  • :lmgtfy [-d][-ie] [search] - Returns a LMGTFY URL for the given question. Adding -d will delete the message that instigated the command and -ie will enable the internet explainer feature on lmgtfy.
  • :hundred - Returns the number of people who have completed all of CyberStart Game.
  • :quotes [@mention] - Will return a random quote from the #quotes channel. Adding an username/mention will result in a random quote from that user being selected.
  • :quoteboard [1] - Return a leaderboard of the number of entries in #quotes sorted by user.
  • :quotecount [@mention] - Returns the number of quotes in the DB. Adding a username/mention will return the number of quotes from that user.
  • :react [emoji] - Reacts to the previous message with the space seperated emojis in the requesting message.
  • :xkcd [? | 1810] - Fetches xkcd comics. If the argument is left blank the latest comic is shown. A random comic is shown if the argument is a ?. Otherwise, a comic number can be used to fetch a specific comic.

Maths Commands

  • :challenge [number] - Get a KCL maths challenge. If no number is specified, the most recent will be used, else the number will be how many after the most recent should be retrieved.
  • :latex [latex] - Renders LaTeX. Can also be invoked by wrapping a string in $ or $$.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].