stardance has been extended another month! the new deadline is october 31 :)

You are browsing as a guest. Sign up (or log in) to start making projects!

SmartPing Discord

  • 11 Devlogs
  • 19 Total hours

Tired of remembering who to ping when it’s time for your daily minecraft session? Especially in a large server? Based on the python library hikari, backed up by a PostgreSQL database, SmartPing is here to fix this. This Discord bot allows users to create, join and ping groups of people without creating a role for every one

Ship #1

Sup, it sure has been a minute! With fully operational v1 of the bot, here’s what you need to know:

The SpartPing discord bot is a bot designed to call your friends for you, literally!

Mentioning users to attract their attention quickly becomes annoying, and when it’s time to assemble the crew, the message quickly becomes very long and mainly consists of “@ user1, @ user2, etc.”.

Discord solved this problem by adding roles that can be pinged, but that introduces new problems, that SmartPing is designed to solve:

  • Discord enforces a strict limit of 250 roles per server, and a large community might have better uses for those than organizing 15 people to play minecraft once a week. SmartPing solves this by organizing and mentioning users via its own system, independent of roles
  • You need a relatively high access level within a discord server to be able to create and manage, so the amount of people capable of that is limited, especially on a large server. Solution: since SmartPing is independent of the role system, call groups can be created and managed by regular users, with server admins always being able to intervene and take control if needed
  • Should you create a role, it is either only mentionable by administrators or everyone. Former is only viable for announcements, and cannot be used by users to organize themselves. Latter introduces the ability for users to spam the role. This is once again solved by SmartPing by enforcing a once-per-five-minutes ping policy that can only be circumvented by server admins

Development of this bot touched, among other things on asynchronous python code and event listeners/handlers, the latter of which is not implemented in hikari, so the handlers for the commands, autocomplete (did i mention the bot features autocomplete for group names?) and callback actions were written by me manually! I also had to touch up on my database knowledge, which, while is kind of annoying, was a lot of fun. I deployed to my dad’s (thanks, dad!) heroku server, where it is to stay for the foreseeable future

You can try the bot out yourself, today! After adding it to your server, start by using /group create to create your first call group and then go from there! All commands are available and documented through discord’s in-built slash command system

Peace!

  • 11 devlogs
  • 19h
  • 16.45x multiplier
  • 314 Stardust
  • Frictionless
Try project → See source code →
Open comments for this post

2h 1m 4s logged

The bot is slowly nearing completion!
I’ve finished implementing rest of the commands, such as setting group parameters, added better arg parsing, etc.. All that’s left now is to polish the code, add final touches and deploy it

0
0
25
Open comments for this post

1h 31m 52s logged

Group invites are now being handled properly!
This turned out not as hard as i thought it’d be, only requiring one top-level handler function, that could be arranged similarly to the other two i had for commands and autocomplete

TODO:

  • settatr for groups
0
0
26
Open comments for this post

2h 26m 22s logged

Most of the bot is now fully working! This includes:

  • Creating, joining, leaving and deleting groups
  • Calling groups
  • Checking user eligibility to call said groups based on group policies

TODO:

  • Invites to private groups
0
0
32
Open comments for this post

1h 14m 32s logged

Database code now allows for creating and joining groups, honoring users with admin permissions
I also created a dedicated error code system, instead of relying on try-catch to get all my info

0
0
25
Open comments for this post

2h 48m 31s logged

I have rewritten the bot to use Discord’s built in interactions, which enables it to send messages visible to the command issuer

TODO: database 🥲

0
0
12

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…