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_
ROMP: Monocular, One-stage, Regression of Multiple 3D People, ICCV21

Monocular, One-stage, Regression of Multiple 3D People ROMP, accepted by ICCV 2021, is a concise one-stage network for multi-person 3D mesh recovery f

Yu Sun 937 Jan 04, 2023
Revisiting, benchmarking, and refining Heterogeneous Graph Neural Networks.

Heterogeneous Graph Benchmark Revisiting, benchmarking, and refining Heterogeneous Graph Neural Networks. Roadmap We organize our repo by task, and on

THUDM 176 Dec 17, 2022
Official Implementation of "Third Time's the Charm? Image and Video Editing with StyleGAN3" https://arxiv.org/abs/2201.13433

Third Time's the Charm? Image and Video Editing with StyleGAN3 Yuval Alaluf*, Or Patashnik*, Zongze Wu, Asif Zamir, Eli Shechtman, Dani Lischinski, Da

531 Dec 20, 2022
Codes for our IJCAI21 paper: Dialogue Discourse-Aware Graph Model and Data Augmentation for Meeting Summarization

DDAMS This is the pytorch code for our IJCAI 2021 paper Dialogue Discourse-Aware Graph Model and Data Augmentation for Meeting Summarization [Arxiv Pr

xcfeng 55 Dec 27, 2022
Boundary-preserving Mask R-CNN (ECCV 2020)

BMaskR-CNN This code is developed on Detectron2 Boundary-preserving Mask R-CNN ECCV 2020 Tianheng Cheng, Xinggang Wang, Lichao Huang, Wenyu Liu Video

Hust Visual Learning Team 178 Nov 28, 2022
A simple and extensible library to create Bayesian Neural Network layers on PyTorch.

Blitz - Bayesian Layers in Torch Zoo BLiTZ is a simple and extensible library to create Bayesian Neural Network Layers (based on whats proposed in Wei

Pi Esposito 722 Jan 08, 2023
Code for EMNLP 2021 paper Contrastive Out-of-Distribution Detection for Pretrained Transformers.

Contra-OOD Code for EMNLP 2021 paper Contrastive Out-of-Distribution Detection for Pretrained Transformers. Requirements PyTorch Transformers datasets

Wenxuan Zhou 27 Oct 28, 2022
DeepCAD: A Deep Generative Network for Computer-Aided Design Models

DeepCAD This repository provides source code for our paper: DeepCAD: A Deep Generative Network for Computer-Aided Design Models Rundi Wu, Chang Xiao,

Rundi Wu 85 Dec 31, 2022
Evaluating Cross-lingual Sentence Representations

XNLI: The Cross-Lingual NLI Corpus XNLI is an evaluation corpus for language transfer and cross-lingual sentence classification in 15 languages. New:

Meta Research 395 Dec 19, 2022
Estimation of human density in a closed space using deep learning.

Siemens HOLLZOF challenge - Human Density Estimation Add project description here. Installing Dependencies: Install Python3 either system-wide, user-w

3 Aug 08, 2021
Automatic meme generation model using Tensorflow Keras.

Memefly You can find the project at MemeflyAI. Contributors Nick Buukhalter Harsh Desai Han Lee Project Overview Trello Board Product Canvas Automatic

BloomTech Labs 2 Jan 13, 2022
A Marvelous ChatBot implement using PyTorch.

PyTorch Marvelous ChatBot [Update] it's 2019 now, previously model can not catch up state-of-art now. So we just move towards the future a transformer

JinTian 223 Oct 18, 2022
Unsupervised Discovery of Object Radiance Fields

Unsupervised Discovery of Object Radiance Fields by Hong-Xing Yu, Leonidas J. Guibas and Jiajun Wu from Stanford University. arXiv link: https://arxiv

Hong-Xing Yu 148 Nov 30, 2022
BoxInst: High-Performance Instance Segmentation with Box Annotations

Introduction This repository is the code that needs to be submitted for OpenMMLab Algorithm Ecological Challenge, the paper is BoxInst: High-Performan

88 Dec 21, 2022
Integrated physics-based and ligand-based modeling.

ComBind ComBind integrates data-driven modeling and physics-based docking for improved binding pose prediction and binding affinity prediction. Given

Dror Lab 44 Oct 26, 2022
Towards Fine-Grained Reasoning for Fake News Detection

FinerFact This is the PyTorch implementation for the FinerFact model in the AAAI 2022 paper Towards Fine-Grained Reasoning for Fake News Detection (Ar

Ahren_Jin 15 Dec 15, 2022
More than a hundred strange attractors

dysts Analyze more than a hundred chaotic systems. Basic Usage Import a model and run a simulation with default initial conditions and parameter value

William Gilpin 185 Dec 23, 2022
Code for ICLR 2020 paper "VL-BERT: Pre-training of Generic Visual-Linguistic Representations".

VL-BERT By Weijie Su, Xizhou Zhu, Yue Cao, Bin Li, Lewei Lu, Furu Wei, Jifeng Dai. This repository is an official implementation of the paper VL-BERT:

Weijie Su 698 Dec 18, 2022
Framework for training options with different attention mechanism and using them to solve downstream tasks.

Using Attention in HRL Framework for training options with different attention mechanism and using them to solve downstream tasks. Requirements GPU re

5 Nov 03, 2022
Object Detection and Multi-Object Tracking

Object Detection and Multi-Object Tracking

Bobby Chen 1.6k Jan 04, 2023