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_
Region-aware Contrastive Learning for Semantic Segmentation, ICCV 2021

Region-aware Contrastive Learning for Semantic Segmentation, ICCV 2021 Abstract Recent works have made great success in semantic segmentation by explo

Hanzhe Hu 30 Dec 29, 2022
Third party Pytorch implement of Image Processing Transformer (Pre-Trained Image Processing Transformer arXiv:2012.00364v2)

ImageProcessingTransformer Third party Pytorch implement of Image Processing Transformer (Pre-Trained Image Processing Transformer arXiv:2012.00364v2)

61 Jan 01, 2023
PyTorch implementation of GLOM

GLOM PyTorch implementation of GLOM, Geoffrey Hinton's new idea that integrates concepts from neural fields, top-down-bottom-up processing, and attent

Yeonwoo Sung 20 Aug 17, 2022
Instance Semantic Segmentation List

Instance Semantic Segmentation List This repository contains lists of state-or-art instance semantic segmentation works. Papers and resources are list

bighead 87 Mar 06, 2022
bespoke tooling for offensive security's Windows Usermode Exploit Dev course (OSED)

osed-scripts bespoke tooling for offensive security's Windows Usermode Exploit Dev course (OSED) Table of Contents Standalone Scripts egghunter.py fin

epi 268 Jan 05, 2023
Learning Correspondence from the Cycle-consistency of Time (CVPR 2019)

TimeCycle Code for Learning Correspondence from the Cycle-consistency of Time (CVPR 2019, Oral). The code is developed based on the PyTorch framework,

Xiaolong Wang 706 Nov 29, 2022
Collects many various multi-modal transformer architectures, including image transformer, video transformer, image-language transformer, video-language transformer and related datasets

The repository collects many various multi-modal transformer architectures, including image transformer, video transformer, image-language transformer, video-language transformer and related datasets

Jun Chen 139 Dec 21, 2022
The source code of the paper "Understanding Graph Neural Networks from Graph Signal Denoising Perspectives"

GSDN-F and GSDN-EF This repository provides a reference implementation of GSDN-F and GSDN-EF as described in the paper "Understanding Graph Neural Net

Guoji Fu 18 Nov 14, 2022
A PyTorch Implementation of Neural IMage Assessment

NIMA: Neural IMage Assessment This is a PyTorch implementation of the paper NIMA: Neural IMage Assessment (accepted at IEEE Transactions on Image Proc

yunxiaos 418 Dec 29, 2022
2D Human Pose estimation using transformers. Implementation in Pytorch

PE-former: Pose Estimation Transformer Vision transformer architectures perform very well for image classification tasks. Efforts to solve more challe

Panteleris Paschalis 23 Oct 17, 2022
PyTorch version implementation of DORN

DORN_PyTorch This is a PyTorch version implementation of DORN Reference H. Fu, M. Gong, C. Wang, K. Batmanghelich and D. Tao: Deep Ordinal Regression

Zilin.Zhang 3 Apr 27, 2022
SwinTrack: A Simple and Strong Baseline for Transformer Tracking

SwinTrack This is the official repo for SwinTrack. A Simple and Strong Baseline Prerequisites Environment conda (recommended) conda create -y -n SwinT

LitingLin 196 Jan 04, 2023
Dogs classification with Deep Metric Learning using some popular losses

Tsinghua Dogs classification with Deep Metric Learning 1. Introduction Tsinghua Dogs dataset Tsinghua Dogs is a fine-grained classification dataset fo

QuocThangNguyen 45 Nov 09, 2022
Multiple Object Extraction from Aerial Imagery with Convolutional Neural Networks

This is an implementation of Volodymyr Mnih's dissertation methods on his Massachusetts road & building dataset and my original methods that are publi

Shunta Saito 255 Sep 07, 2022
Welcome to The Eigensolver Quantum School, a quantum computing crash course designed by students for students.

TEQS Welcome to The Eigensolver Quantum School, a crash course designed by students for students. The aim of this program is to take someone who has n

The Eigensolvers 53 May 18, 2022
Offline Multi-Agent Reinforcement Learning Implementations: Solving Overcooked Game with Data-Driven Method

Overcooked-AI We suppose to apply traditional offline reinforcement learning technique to multi-agent algorithm. In this repository, we implemented be

Baek In-Chang 14 Sep 16, 2022
Array Camera Ptychography

Array Camera Ptychography This repository provides the code for the following papers: Schulz, Timothy J., David J. Brady, and Chengyu Wang. "Photon-li

Brady lab in Optical Sciences 1 Nov 15, 2021
RoFormer_pytorch

PyTorch RoFormer 原版Tensorflow权重(https://github.com/ZhuiyiTechnology/roformer) chinese_roformer_L-12_H-768_A-12.zip (提取码:xy9x) 已经转化为PyTorch权重 chinese_r

yujun 283 Dec 12, 2022
Official repository for "Action-Based Conversations Dataset: A Corpus for Building More In-Depth Task-Oriented Dialogue Systems"

Action-Based Conversations Dataset (ABCD) This respository contains the code and data for ABCD (Chen et al., 2021) Introduction Whereas existing goal-

ASAPP Research 49 Oct 09, 2022
Locally Enhanced Self-Attention: Rethinking Self-Attention as Local and Context Terms

LESA Introduction This repository contains the official implementation of Locally Enhanced Self-Attention: Rethinking Self-Attention as Local and Cont

Chenglin Yang 20 Dec 31, 2021