Yggdrasil - A simplistic bot designed to streamline your server experience

Overview

Ygggdrasil

A simplistic bot designed to streamline your server experience.

Design Ideas

  • Seperate commands into submodules
  • Nothing too fancy -> Descriptive commands, recurring command structure, embeds responses only if not possible otherwise

Disclaimer

This bot is currently in development and probably won't work fine just now. Try at your own risk!

Features

Restrictions (by Discord)

  • An app can have up to 50 top-level global commands (50 commands with unique names)
  • An app can have up to an additional 50 guild commands per guild
  • An app can have up to 10 subcommand groups on a top-level command
  • An app can have up to 10 subcommands within a subcommand group
  • Choices can have up to 10 values per option
  • Commands can have up to 10 options per command

Limitations on command names

Limitations on nesting subcommands and groups

Command Structure

Base

base # base
|
|__ reload_extension # command
-> Reloads an extension by name.
|
|__ purge_application_commands # command
-> Purge all slashCommands for this application.

Admin

admin # extension
|
|__ bot # command (prefixCommand slashCommand)
    |
    |__ restart # subcommand (prefixCommand) (bot owner only)
    -> Restarts the bot.
    |
    |__ shutdown # subcommand (prefixCommand) (bot owner only)
    -> Shuts down the bot.
    |
    |__ ping # subcommand (slashCommand)
    -> Lets the bot ping Discord and prints the Ping to the current channel.
|
|__ admin # command (prefixCommand)
    |
    |__ kick # subcommand (prefixCommand) (KICK_MEMBERS only)
    -> Kicks a specified user.
    |
    |__ ban # subcommand (prefixCommand) (BAN_MEMBERS only)
    -> Kicks a specified user.
    |
    |__ unban # subcommand (prefixCommand) (BAN_MEMBERS only)
    -> Kicks a specified user.
|
|__ server # command (prefixCommand)
    |
    |__ announce # subcommand (prefixCommand) (ADMINISTRATOR only)
    -> Takes an Embed as Webhook embed json as text and sends it to the announcement channel.
    |
    |__ clear # subcommand (prefixCommand) (MANAGE_MESSAGES only)
    -> Purges the current channel by 1 message, unless specified otherwise (Admin only).

Dice

dice # extension
|
|__ dice # command (prefixCommand, slashCommand)
    |
    |__ roll # subcommand (prefixCommand, slashCommand)
    -> Throws dice eg.: 3d6
    |
    |__ hroll # subcommand (prefixCommand)
    -> Throws dice eg.: 3d6, responds with epemeral message

Should we allow prefixCommand here?

Experience

experience # extension
|
|__ experience # command (prefixCommand, slashCommand)
    |
    |__ xp # subcommand (slashCommand)
    -> Prints the current stats of the user.
    |
    |__ leaderboard # subcommand (slashCommand)
    -> Print the top-ten members of the guild and the users relation to them.
    |
    |__ updateUser # subcommand (prefixCommand) (ADMINISTRATOR only)
    -> Overwrites the data of a given user in the database, or creates new if not present.

Will later receive an update with role/permission changes based on level of members.

Misc

misc # extension
|
|__ misc # command
    |
    |__ datecounter # subcommand (slashCommand)
    -> Prints the number of days from or to a given date.
    |
    |__ echo # subcommand (slashCommand)
    -> Echos text as Embed title.
    |
    |__ embed # subcommand (slashCommand)
    -> Echos text as Embed.
    |
    |__ fibonacci # subcommand (slashCommand)
    -> Prints the n-Fibonacci number.
    |
    |__ reverse # subcommand (slashCommand)
    -> Reverses the letter order of the text given and print it.

Voice

voice # extension
|
|__ setCategoryId # command (prefixCommand) (ADMINISTRATOR only)
-> Sets the category id of the Category for temporary voicechannel to be created in.
|
|__ setChannelId # command (prefixCommand) (ADMINISTRATOR only)
-> Sets the channel id of the channel to listen to for user join.
|
|__ voice # command
    |
    |__ claim # subcommand (slashCommand)
    -> Lets the user claim the current channel.
    |
    |__ limit # subcommand (slashCommand)
    -> Lets the user limit the number of member in their channel.
    |
    |__ lock # subcommand (slashCommand)
    -> Locks the users channel.
    |
    |__ name # subcommand (slashCommand)
    -> Changes the channelname of the users channel.
    |
    |__ permit # subcommand (slashCommand)
    -> Permits a given user to join the users channel, even if it's locked.
    |
    |__ reject # subcommand (slashCommand)
    -> Revokes the permission given to a user to join the users channel.
    |
    |__ unlock # subcommand (slashCommand)
    -> Unlocks the users channel.
    |
    |__ bitrate # subcommand (slashCommand)
    -> Changes the users channels bitrate.

Wolfram

wolfram # extension
|
|__ wolfram # command
    |
    |__ ask # subcommand (prefixCommand, slashCommand)
    -> Send a Wolframalpha query.

Should we allow prefixCommand here?

Running the bot

Run the bot: docker-compose up -d

View the current logs: docker-compose logs -f

Stop the bot: docker-compose down

Debugging commands

Connect to Postgres (Yggdrasil DB): docker exec -it PostgreSQL psql -U postgres yggdrasil

Backup Postgres (Yggdrasil DB): docker exec -it postgres pg_dump -U postgres yggdrasil > outfile

Owner
Sntx_
Sntx_
This is an official implementation for "SimMIM: A Simple Framework for Masked Image Modeling".

SimMIM By Zhenda Xie*, Zheng Zhang*, Yue Cao*, Yutong Lin, Jianmin Bao, Zhuliang Yao, Qi Dai and Han Hu*. This repo is the official implementation of

Microsoft 674 Dec 26, 2022
This is the repository for our paper SimpleTrack: Understanding and Rethinking 3D Multi-object Tracking

SimpleTrack This is the repository for our paper SimpleTrack: Understanding and Rethinking 3D Multi-object Tracking. We are still working on writing t

TuSimple 189 Dec 26, 2022
Python Implementation of the CoronaWarnApp (CWA) Event Registration

Python implementation of the Corona-Warn-App (CWA) Event Registration This is an implementation of the Protocol used to generate event and location QR

MaZderMind 17 Oct 05, 2022
[NeurIPS 2021] A weak-shot object detection approach by transferring semantic similarity and mask prior.

TransMaS This repository is the official pytorch implementation of the following paper: NIPS2021 Mixed Supervised Object Detection by TransferringMask

BCMI 49 Jul 27, 2022
Info and sample codes for "NTU RGB+D Action Recognition Dataset"

"NTU RGB+D" Action Recognition Dataset "NTU RGB+D 120" Action Recognition Dataset "NTU RGB+D" is a large-scale dataset for human action recognition. I

Amir Shahroudy 578 Dec 30, 2022
Aws-machine-learning-university-accelerated-tab - Machine Learning University: Accelerated Tabular Data Class

Machine Learning University: Accelerated Tabular Data Class This repository contains slides, notebooks, and datasets for the Machine Learning Universi

AWS Samples 916 Dec 23, 2022
Code for "The Intrinsic Dimension of Images and Its Impact on Learning" - ICLR 2021 Spotlight

dimensions Estimating the instrinsic dimensionality of image datasets Code for: The Intrinsic Dimensionaity of Images and Its Impact On Learning - Phi

Phil Pope 41 Dec 10, 2022
Top #1 Submission code for the first https://alphamev.ai MEV competition with best AUC (0.9893) and MSE (0.0982).

alphamev-winning-submission Top #1 Submission code for the first alphamev MEV competition with best AUC (0.9893) and MSE (0.0982). The code won't run

70 Oct 29, 2022
This repository is for our EMNLP 2021 paper "Automated Generation of Accurate & Fluent Medical X-ray Reports"

Introduction: X-Ray Report Generation This repository is for our EMNLP 2021 paper "Automated Generation of Accurate & Fluent Medical X-ray Reports". O

no name 36 Dec 16, 2022
A simple code to perform canny edge contrast detection on images.

CECED-Canny-Edge-Contrast-Enhanced-Detection A simple code to perform canny edge contrast detection on images. A simple code to process images using c

Happy N. Monday 3 Feb 15, 2022
Open source repository for the code accompanying the paper 'PatchNets: Patch-Based Generalizable Deep Implicit 3D Shape Representations'.

PatchNets This is the official repository for the project "PatchNets: Patch-Based Generalizable Deep Implicit 3D Shape Representations". For details,

16 May 22, 2022
This tutorial repository is to introduce the functionality of KGTK to first-time users

Welcome to the KGTK notebook tutorial The goal of this tutorial repository is to introduce the functionality of KGTK to first-time users. The Knowledg

USC ISI I2 58 Dec 21, 2022
Implementation of the Remixer Block from the Remixer paper, in Pytorch

Remixer - Pytorch Implementation of the Remixer Block from the Remixer paper, in Pytorch. It claims that substituting the feedforwards in transformers

Phil Wang 35 Aug 23, 2022
RoadMap and preparation material for Machine Learning and Data Science - From beginner to expert.

ML-and-DataScience-preparation This repository has the goal to create a learning and preparation roadMap for Machine Learning Engineers and Data Scien

33 Dec 29, 2022
Real-world Anomaly Detection in Surveillance Videos- pytorch Re-implementation

Real world Anomaly Detection in Surveillance Videos : Pytorch RE-Implementation This repository is a re-implementation of "Real-world Anomaly Detectio

seominseok 62 Dec 08, 2022
Social Fabric: Tubelet Compositions for Video Relation Detection

Social-Fabric Social Fabric: Tubelet Compositions for Video Relation Detection This repository contains the code and results for the following paper:

Shuo Chen 7 Aug 09, 2022
An end-to-end framework for mixed-integer optimization with data-driven learned constraints.

OptiCL OptiCL is an end-to-end framework for mixed-integer optimization (MIO) with data-driven learned constraints. We address a problem setting in wh

Holly Wiberg 57 Dec 26, 2022
Official implement of Paper:A deeply supervised image fusion network for change detection in high resolution bi-temporal remote sening images

A deeply supervised image fusion network for change detection in high resolution bi-temporal remote sensing images 深度监督影像融合网络DSIFN用于高分辨率双时相遥感影像变化检测 Of

Chenxiao Zhang 135 Dec 19, 2022
Barbershop: GAN-based Image Compositing using Segmentation Masks (SIGGRAPH Asia 2021)

Barbershop: GAN-based Image Compositing using Segmentation Masks Barbershop: GAN-based Image Compositing using Segmentation Masks Peihao Zhu, Rameen A

Peihao Zhu 928 Dec 30, 2022
This project demonstrates the use of neural networks and computer vision to create a classifier that interprets the Brazilian Sign Language.

LIBRAS-Image-Classifier This project demonstrates the use of neural networks and computer vision to create a classifier that interprets the Brazilian

Aryclenio Xavier Barros 26 Oct 14, 2022