I am happy to announce v4.2.0! π
This update brings 2 new quality of life features, some improvements and bugfixes!
Featuresβ
Notification Rewriteβ
Customizationβ
event_start_notificationnow allows full* customization for Premium users.event user notifyalso allows full* customization now, but fΓΌr all users (as before).
You can both edit the Text Message field of a Discord message (this is where you can for example ping @user) and the Embed Message (in here you can use for example links with [link name](link url))
* Sadly only the Embed Description is currently up for customization. The Embed Title isn't enabled yet due to a Discord limitation for which I need to find a workaround.
There are 2 differences from the event user notify command to the event_start_notification:
event user notifyis a manual (one time) trigger.event user notifyallows customization of messages also for none Premium users!
New Commandsβ
event_start_notification edit messageto edit the notificationsmessageevent_start_notification edit notify_typeto edit the notificationsnotify_typeevent_start_notification listto list all entries
Premiumβ
Premium users can now use more than 1 event_start_notification per server. This allows you to send different messages at "1 day" before event start and another one "5 minutes" before the event starts.
Or you can send a message once to users that aren't signed up yet and another message to users that are signed up.
Relative Date/Time Supportβ
Till now you needed to enter a full date/time when creating an event. Like 2023-05-14 20:00.
NOW you can use stuff like
tomorrow 20:00 or today 1h!
So what are valid options and how to they resolve?
now=> creates an event with the date of today and a start/end time of nowtoday=> creates an event with the date of today and no start/end timetomorrow=> creates an event with the date of tomorrow and no start/end time
Combine!
You can combine now, today and tomorrow with either a precise time (like 08:00pm) or a relative time (1h 10m)
Examples:
today 20:30will resolve in the date of today and the start/end time of 20:30today 1d 30mwill resolve to the date of tomorrow (1d) and the time of you executing the command + 30 minutes. So this would actually be the same astomorrow 30m.
Read more about that feature here.
Bugfixesβ
- Fixed issue that a "channel" notification (former "ping" message) got printed with "Pinged 0 users" if no users met the required sign up state.
- Fixed issue that the wrong event start time was shown in the notification message footer.
- Fixed issue that events do not get created via a repeating event entry, once the repeating event entry was deactivated once. Even after setting it to
activeagain. - Fixed issue that events with an end time in the past did not get deleted immediately if the
event_deletion_timewas over. Instead they got deleted with a delay of a few minutes. This is currently mainly caused by repeating event entries if they get activated again. On activate the bot creates all missed events. Since the deletion does not happen instantly, it causes a lot of confusion and also unnecessary API calls (like sending notification messages, creating and deleting voice channels, ...). I am working on a solution that the bot will skip those events in general. But till than, this is a workaround. - You now get a "missing permission" error if the bot misses access to the channel during the
event user notifycommand. - If the
signup_templatehad invalid limit fields (due to manual edit of the .json file), so sign ups were possible. This is now fixed by ignoring invalid fields and using default values for missing fields. - Fixed an issue that Discord server with a timzone in UTC+2 (or higher) were not possible to create events within the new future (next few hours).
Improvementsβ
- Most missing permission message now have a link directly to the doc page with additional information about the permission required.
Other Changesβ
- Related to the Notification Rewrite, the notification types were renamed from "ping" and "message" to "Channel" and "DM" because the "ping" message got always printed to a server channel, while the "message" was always a DM to a user.
Added the fields:
${signup_state}resolves to "sigend up", "not sigend up" or "confirmed", depending on the choosenstate.${maching_users}resolves to all users that match thestateand mentions (@user) them.
Those fields can be used with the different notification commands. Read here for more information.