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_
Western-3DSlicer-Modules - Point-Set Registrations for Ultrasound Probe Calibrations

Point-Set Registrations for Ultrasound Probe Calibrations -Undergraduate Thesis-

Matteo Tanzi 0 May 04, 2022
PyTorch implementation for "Mining Latent Structures with Contrastive Modality Fusion for Multimedia Recommendation"

MIRCO PyTorch implementation for paper: Latent Structures Mining with Contrastive Modality Fusion for Multimedia Recommendation Dependencies Python 3.

Big Data and Multi-modal Computing Group, CRIPAC 9 Dec 08, 2022
Api for getting bin info and getting encrypted card details for adyen.

Bin Info And Adyen Cse Enc Python api for getting bin info and getting encrypted

Roldex Stark 8 Dec 30, 2022
PyTorch implementation of NeurIPS 2021 paper: "CoFiNet: Reliable Coarse-to-fine Correspondences for Robust Point Cloud Registration"

PyTorch implementation of NeurIPS 2021 paper: "CoFiNet: Reliable Coarse-to-fine Correspondences for Robust Point Cloud Registration"

76 Jan 03, 2023
The Body Part Regression (BPR) model translates the anatomy in a radiologic volume into a machine-interpretable form.

Copyright © German Cancer Research Center (DKFZ), Division of Medical Image Computing (MIC). Please make sure that your usage of this code is in compl

MIC-DKFZ 40 Dec 18, 2022
Narya API allows you track soccer player from camera inputs, and evaluate them with an Expected Discounted Goal (EDG) Agent

Narya The Narya API allows you track soccer player from camera inputs, and evaluate them with an Expected Discounted Goal (EDG) Agent. This repository

Paul Garnier 121 Dec 30, 2022
An efficient 3D semantic segmentation framework for Urban-scale point clouds like SensatUrban, Campus3D, etc.

An efficient 3D semantic segmentation framework for Urban-scale point clouds like SensatUrban, Campus3D, etc.

Zou 33 Jan 03, 2023
Public implementation of "Learning from Suboptimal Demonstration via Self-Supervised Reward Regression" from CoRL'21

Self-Supervised Reward Regression (SSRR) Codebase for CoRL 2021 paper "Learning from Suboptimal Demonstration via Self-Supervised Reward Regression "

19 Dec 12, 2022
Non-Imaging Transient Reconstruction And TEmporal Search (NITRATES)

Non-Imaging Transient Reconstruction And TEmporal Search (NITRATES) This repo contains the full NITRATES pipeline for maximum likelihood-driven discov

13 Nov 08, 2022
Python library to receive live stream events like comments and gifts in realtime from TikTok LIVE.

TikTokLive A python library to connect to and read events from TikTok's LIVE service A python library to receive and decode livestream events such as

Isaac Kogan 277 Dec 23, 2022
Memory efficient transducer loss computation

Introduction This project implements the optimization techniques proposed in Improving RNN Transducer Modeling for End-to-End Speech Recognition to re

Fangjun Kuang 51 Nov 25, 2022
Automatic Calibration for Non-repetitive Scanning Solid-State LiDAR and Camera Systems

ACSC Automatic extrinsic calibration for non-repetitive scanning solid-state LiDAR and camera systems. System Architecture 1. Dependency Tested with U

KINO 192 Dec 13, 2022
(NeurIPS 2021) Realistic Evaluation of Transductive Few-Shot Learning

Realistic evaluation of transductive few-shot learning Introduction This repo contains the code for our NeurIPS 2021 submitted paper "Realistic evalua

Olivier Veilleux 14 Dec 13, 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
A template repository for submitting a job to the Slurm Cluster installed at the DISI - University of Bologna

Cluster di HPC con GPU per esperimenti di calcolo (draft version 1.0) Per poter utilizzare il cluster il primo passo è abilitare l'account istituziona

20 Dec 16, 2022
Code for the SIGGRAPH 2021 paper "Consistent Depth of Moving Objects in Video".

Consistent Depth of Moving Objects in Video This repository contains training code for the SIGGRAPH 2021 paper "Consistent Depth of Moving Objects in

Google 203 Jan 05, 2023
A large-scale benchmark for co-optimizing the design and control of soft robots, as seen in NeurIPS 2021.

Evolution Gym A large-scale benchmark for co-optimizing the design and control of soft robots. As seen in Evolution Gym: A Large-Scale Benchmark for E

121 Dec 14, 2022
Implementation of "GNNAutoScale: Scalable and Expressive Graph Neural Networks via Historical Embeddings" in PyTorch

PyGAS: Auto-Scaling GNNs in PyG PyGAS is the practical realization of our G NN A uto S cale (GAS) framework, which scales arbitrary message-passing GN

Matthias Fey 139 Dec 25, 2022
This repository contains the source codes for the paper AtlasNet V2 - Learning Elementary Structures.

AtlasNet V2 - Learning Elementary Structures This work was build upon Thibault Groueix's AtlasNet and 3D-CODED projects. (you might want to have a loo

Théo Deprelle 123 Nov 11, 2022
A deep neural networks for images using CNN algorithm.

Example-CNN-Project This is a simple project showing how to implement deep neural networks using CNN algorithm. The dataset is taken from this link: h

Mohammad Amin Dadgar 3 Sep 16, 2022