Adds an $announce command with similar syntax to $embedify to create, approve, and send announcements. Adds $pendingannouncements to list pending announcements.
Expected behavior
Announcement workflow:
$announce title ; announcement text
Spike replies with an embed representing the announcement (but the title prepended with Admin Announcement: to allow for reaction processing)
Admins and Bot Experts can react with the check to approve.
Creator can react with the X to cancel.
When the approval threshold is met, any admin or bot expert can react with the mailbox to send the announcement.
Screenshots
New npm dependencies
Testing Instructions
Prepwork:
[x] Change the REQUIRED_APPROVALS to 1
[x] Change line 305 of plugins/adminAnnounce/main.js to bot-lab
Testing:
[x] Remove bot experts from hasPermission, restart Simone, and make sure you cannot create a new announcement
[x] Add bot experts back and restart Simone. Create an announcement. Verify that the embed is sent to the same channel and that the check and x reactions appear.
[x] Remove bot experts from hasPermission and restart Simone. Verify that
[x] Terminal output shows the announcement was cached
[x] Your reactions disappear
[x] Spike's reaction remains
[x] Add bot experts back and restart Simone. Approve your announcement. Verify that the mailbox reaction appears.
[x] Verify that pendingannouncements command shows your announcement.
[x] Remove your approval reaction. Verify that the mailbox reaction disappears.
[x] Approve again to show the mailbox.
[x] React with the mailbox. Verify that the announcement is sent to bot-lab.
[x] Create another announcement, and verify that the X reaction cancels the announcement.
[x] Create another announcement, and verify that another user cannot cancel your announcement.
[x] Check the help menus for the appropriate content.
[x] Verify that there are no other unexpected side effects.
Additional context
Action Items:
[ ] Work with admins to make sure permissions are correct in announcements, pls-help, admin-notifications, and admin-spam for Spike. Needs message send, embed send, and react permissions.
Related bugs/feature requests
Describe the changes
Adds an
$announce
command with similar syntax to$embedify
to create, approve, and send announcements. Adds$pendingannouncements
to list pending announcements.Expected behavior
Announcement workflow:
$announce title ; announcement text
Admin Announcement:
to allow for reaction processing)Screenshots
New npm dependencies
Testing Instructions
Prepwork:
REQUIRED_APPROVALS
to 1plugins/adminAnnounce/main.js
tobot-lab
Testing:
hasPermission
, restart Simone, and make sure you cannot create a new announcementhasPermission
and restart Simone. Verify thatpendingannouncements
command shows your announcement.Additional context
Action Items: