This Bot aims to provide a virtual TODO list inside your discord server. Instead of relying on commands for interacting with the bot, I tried my best to make the entire "user interface" with reactions. That way your users dont have to learn hundrets of new commands and how to use them.
After inviting the Bot to your server, run the command /settings set todochannel: #yourchannel
. This generates a new config and saves your todochannel. Your TODOS or tasks will then be posted in that channel.
To view all the commands the bot supports, run the /help
command. If you want to get more specific information about a command run the command /help
with the command that you want information about as frist argument. So if you wanted to get information about the todo command, you would want to run the command like so: /help todo
.
Available Commands:
assign
Assign someone to a task no matter if they want or not.
Name | Description | Type | Required? |
---|---|---|---|
user | The user you want to assign. | User | βοΈ |
id | ID of the task that you want to assing the user to. | String (Text) | βοΈ |
Welcome to the documentation of the assign
command. It is used to assign members to tasks.
blacklist
Blacklist user(s) and/or channel(s)
Name | Description | Type | Required? |
---|---|---|---|
user | The user you want to blacklist | User | β |
channel | The channel you want to blacklist | Channel | β |
Name | Description | Type | Required? |
---|---|---|---|
user | The user you want to blacklist | User | β |
channel | The channel you want to blacklist | Channel | β |
No arguments required. Description:
Show your current blacklists.
help
Show all available commands and their usage.
Name | Description | Type | Required? |
---|---|---|---|
command | The command you want specific infomation about. | String (Text) | β |
list
List todos for your server. Use the π emoji to repot the currently open todo. Use the arrow emojis to navigate.
reminder
Create, edit and view reminders
Name | Description | Type | Required? |
---|---|---|---|
time | After this timespan you will be reminded. | Number (0, 1, 2, 3, 4 ...) | βοΈ |
unit | Minutes? Hours? Seconds? Choose now. | String (Text) | βοΈ |
content | Reminder Text that will be shown when the reminder expires. | String (Text) | βοΈ |
participants | Choose another user or users that should also be reminded. | User | β |
participatingRoles | Choose a role that should be reminded. | Role | β |
No arguments required. Description:
View your reminder(s).
settings
View and edit bot settings.
Name | Description | Type | Required? |
---|---|---|---|
prefix | The prefix the bot will use for your custom commands or tags. | String (Text) | β |
todochannel | The channel that will be used to post your todos in. | Channel | β |
readonlychannel | The channel that will be used to keep your community updated. | Channel | β |
userrole | Add a new userrole. Userroles can interact with the bot but cannot change bot settings. | Role | β |
staffrole | Add a new staffrole. Staffroles can edit bot settings and force assign users. | Role | β |
language | The language the bot uses to talk to you. | String (Text) | β |
autopurge | Toggle messages being auto purged in the todochannel. | Boolean (true or false) | β |
todomode | Toggle between simple (one channel) and advanced (multiple channels) mode | String (Text) | β |
No arguments required. Description:
View your current settings.
Name | Description | Type | Required? |
---|---|---|---|
userrole | Add a new userrole. Userroles can interact with the bot but cannot change bot settings. | Role | β |
staffrole | Add a new staffrole. Staffroles can edit bot settings and force assign users. | Role | β |
If you set a readonly channel, you can from now on use the share
reaction to share the todo to the channel that you configured. All changes to that TODO will be mirrored to that channel, so if someone finishes a task, edits the todo or closes it, everything will be shown in the read only channel.
These roles are used to determine permissions. "USERs" are users that can interact with the bot. People with the "STAFF" role are users that can change and edit bot settings and force assing users. Having the discord permission MANAGE GUILD
will override this permission system and allow you to edit the bots settings.
If you enable this setting, all messages that are sent in your configured todo channel and are not from the bot or a user without the STAFF
role will be deleted. This is useful if you want to use your todochannel for tasks only and keep the chatting in other channels.
As you may have seen, there are 2 choices for this: simple
and advanced
:
Simple
In this mode all "todo activity" will happen in the preconfigured TODO channel. Means if you run the todo command in lets say the
general
channel, your todo will pop up in the configured todo channel (lets call ittasks
).
Advanced
In this mode, the todos will be created in the channel, where the todo command is run in. So lets say you run the todo command in the
general
channel, the todo will pop up in this verygeneral
channel.
shorten
Shorten a link.
Name | Description | Type | Required? |
---|---|---|---|
Link | The link that you want to get shortened. | String (Text) | βοΈ |
Domain | The domain you want to use for your shortened link. | String (Text) | β |
suggest
Suggest new features to be added into the bot
Name | Description | Type | Required? |
---|---|---|---|
text | Your suggestion | String (Text) | βοΈ |
image | If you want to attach an image, paste the link here | String (Text) | β |
hidden | Hide the server where this suggestion was sent | Boolean (true or false) | β |
tag
Bild your own commands like a pro.
Name | Description | Type | Required? |
---|---|---|---|
name | The name of your new command/tag. | String (Text) | βοΈ |
content | This is the content that will be sent when your custom command is run. | String (Text) | βοΈ |
Name | Description | Type | Required? |
---|---|---|---|
name | The command you want to delete. | String (Text) | βοΈ |
Name | Description | Type | Required? |
---|---|---|---|
name | Name of the command you want to edit. | String (Text) | βοΈ |
content | The content that you want to save as the new tag | String (Text) | βοΈ |
No arguments required. Description:
List available tags.
todo
Create a new TODO object
Name | Description | Type | Required? |
---|---|---|---|
title | Title of the TODO object | String (Text) | βοΈ |
tasks | The tasks that belong to this todo. Seperate them with a semicolon (;). Maximum 10 tasks allowed! | String (Text) | β |
content | Content of the TODO object | String (Text) | β |
url | Attach a link to the todo | String (Text) | β |
image | Attach an image to the todo. Has to be a discord attachment link. | String (Text) | β |
category | The category this todo should belong to. | String (Text) | β |
loop | Create repeating tasks | Boolean (true or false) | β |
If you want to attach an image to your task, you can simply upload an image and give it a title like so: {{thisismytitle}} ("thisismytitle" will then be the title to reference).
When creating your task then reference the image with your title in the image options. The image will then be embedded into your todo list. Note: The image will be available 24hrs after uploading (for every guild member). This is due to the bot caching the links to images that are uploaded with the special tags (the double curly brackets {{}}).
For attaching normal links, just put them in the url option, if will then be shown as attachment in your todo list.
var
Set, view, edit and delete configvariables. Use them in your tags like so: <%foo%> to be replaced with the variable 'foo'
Name | Description | Type | Required? |
---|---|---|---|
name | How you want your variable to be named. | String (Text) | βοΈ |
value | The value your variable should hold. | String (Text) | βοΈ |
No arguments required. Description:
Show your already registered variables
Name | Description | Type | Required? |
---|---|---|---|
name | Name of the variable you want to edit | String (Text) | βοΈ |
value | The new value for your variable | String (Text) | βοΈ |
Name | Description | Type | Required? |
---|---|---|---|
name | Name of the variable you want to delete | String (Text) | βοΈ |
There are 2 permission levels: USER
and STAFF
. They are determined by roles.
To set the role, use the settings command like so:
(yes multiple roles are allowed)
To remove a role from the user of staffroles array just use the /settings remove userrole: | staffrole:
command
Tags are a way to essentially build your own custom commands. Let the bot learn new tags by using the /tag learn
command.
Delete a custom command by using the /tag unlearn
command followed by the name of your tag.
Click here to read about placeholders in custom commands
Placeholders are words that you can place inside your tags, that will be replaced with a certain value, when the custom command is run.
Available Placeholders:
+ <MEMCOUNT> => Will be rpelaced with the membercount of the current guild
+ <JOIN_POS> => Will be replaced by the join position of the message author
+ <EMBED> => Will generate an embed with your tag message. Optional Parameters are <COLOR> BLUE </COLOR>, (make sure to include a space after the color tags) <IMG> img.todo-bot.xyz/bliDnJn </IMG>, <THUMB> img.todo-bot.xyz/bZLhbHl </THUMB>
+ <PROCESSED> => Will be replaced with the amount of processed tasks by the message author
+ <SUBMITTED> => Will be replaced with the amount of submitted tasks by the message author
+ <MSG_AUTHOR> => Will tag the message author
+ <MSG_AUTHOR_ID> => Will be replaced with the message author id
+ <MSG_AUTHOR_NAME> => Will be replaced with the message authors username, so in my case "MeerBiene"
+ <MSG_AUTHOR_TAG> => Will be replaced with the message authors tag, so in my case "MeerBiene#7060"
+ <GUILD_NAME> => Will be replaced with the guilds name where the message was sent
Notes:
-
All placeholders are ignorecase, so you can use them like
<join_pos>
or<guild_name>
-
You can combine all the placeholders, so you can use the
<guild_name>
placeholder within an embed
Click here to read about variables in custom commands
Variables are a way to store key-value pairs for your guild/server, so you can use them in your tags. This is useful if you have a discord for lets say a game server where the ip could change. To follow our example, we would create a variable called ip
and store the ip adress:
Note:
- The lowest possible time is 1m (1 Minute)!
If you want to mention certain users or roles when the reminder finished, just mention them in the reminders content when creating a new reminder.
For repeating reminders, simply set the loop
property to true when creating the reminder. Keep in mind that the lowest possible time for repeating reminders is 1 hour!
If you like this bot and or it helps you, consider leaving a star β here on github. If you want to donate you can do so vide github sponsors. Your profile or organization will then be placed below.
Sponsors(0):
All contributions are welcome! Wheter its just submitting bugs and/or requesting features, or contributing to the codebase directly via pull requests.
For information on the development setup, check out the contributing guidelines.
All Contributors will be listed below:
- Julian Puffler Github | Code Contributor
- Husky Github | Code Contributor, Feedback giver
- Oldmagic Github | Code Contributor, Translator πΈπͺ
If you are reading this, I still need help with localization(language support), if you want to help, join the Support Discord and ping me.
Whether you need help with the bot, want to try the bot and see it in action, want to suggest new features, or just want to flame me for my bad code, join the support server with the button above.
You can also use Github Issues if you dont want to join the discord.
Theres also a /suggest
command for sending suggestions to the support server where ppl can up or downvote them.
I also do regular votes on new features in there, so if you want to have a say in the features that will be implemented, you know what to do.