Conversation
* Added the base module folders and module.json * Added all folders necessary and the configuration files for each folder * Added a test command * removed the manage file * Added, renamed and deleted some files as necessary and coded the models. * Renamed action.js to moderation.js, coded multiple things, added a new file for correct tracking. * Forgot to update module.json, now updated aswell * Added additional information in ping-protection.js * Disabled allowing reply pings, added the enable moderation and enable advanced configuration in moderation.json and made the choices inside depend on it because I forgot to :/ Added the options to enable/disable pings/modlogs/logs kept after leave and made the choices depend on it + made those choices with numbers select instead of integers for almost 0 user-error issues. * Added support for actually correct parameters and those parameters added into the message editor for the warning message * Added proper support for localization, and coded the events * Completed the full module and fixed some critical bugs that caused the bot to crash * Cleaned up some code notes I used for debugging * Completely finished the module and worked tirelessly for many hours to debug code, has been tested and is currently ongoing extensive testing to ensure absolutely everythig works as supposed to * Debugged absolutely everything, removed like 300 lines of code for polish while remaining the same functions. Removed a few locales that are unused and updated some locales for better understanding. Fully tested extensively. Not verified by GitHub because I code in VSCode. * Added the option to lower mod actions history * Made the deault value of pings to trigger action 10 instead of 5 in basic pings count config * Added the commands warnings for most commands Listed the warnings for all commands except the panel command as the bot already checks for administrator perms. * Almost completely rewrote the module to make sure the modules works as supposed to with SCNX. * Added "automod" abilities - Will now delete the original message by default with the message content and allows to configure both options * (not working correctly) added automod integration and some small changes * Fixed the * Removed the feature that didn't work (reposting), adds a custom message to the automod message block. Also the bot now deletes the rule it created if automod enabled = false * Fixed the bug of the bot still sending the warning and punishing if limit reached with reply pings even when it's allowed in config * Added a funny easter egg * Some QOL improvements, including merging the list commands * Added some new options in the config * Update configuration.json * Fix self-ping condition to allow self-pinging * Ping protection V1, in Discord.JS V14 * Ping Protection V1 * Changed code to the requested changes, and adjusted code logic to actually properly support multiple moderation actions (not tested before, and didn't work during testing) * Made adjustments to code as requested, and added an intent to main.js to make it work properly. * Fixed the missing footer on embeds. Fixed a small typo in the default waning message configuration and added an emoji to the why easter egg. --------- Co-authored-by: Kevinking500 <Kevinking500>
* Added the base module folders and module.json * Added all folders necessary and the configuration files for each folder * Added a test command * removed the manage file * Added, renamed and deleted some files as necessary and coded the models. * Renamed action.js to moderation.js, coded multiple things, added a new file for correct tracking. * Forgot to update module.json, now updated aswell * Added additional information in ping-protection.js * Disabled allowing reply pings, added the enable moderation and enable advanced configuration in moderation.json and made the choices inside depend on it because I forgot to :/ Added the options to enable/disable pings/modlogs/logs kept after leave and made the choices depend on it + made those choices with numbers select instead of integers for almost 0 user-error issues. * Added support for actually correct parameters and those parameters added into the message editor for the warning message * Added proper support for localization, and coded the events * Completed the full module and fixed some critical bugs that caused the bot to crash * Cleaned up some code notes I used for debugging * Completely finished the module and worked tirelessly for many hours to debug code, has been tested and is currently ongoing extensive testing to ensure absolutely everythig works as supposed to * Debugged absolutely everything, removed like 300 lines of code for polish while remaining the same functions. Removed a few locales that are unused and updated some locales for better understanding. Fully tested extensively. Not verified by GitHub because I code in VSCode. * Added the option to lower mod actions history * Made the deault value of pings to trigger action 10 instead of 5 in basic pings count config * Added the commands warnings for most commands Listed the warnings for all commands except the panel command as the bot already checks for administrator perms. * Almost completely rewrote the module to make sure the modules works as supposed to with SCNX. * Added "automod" abilities - Will now delete the original message by default with the message content and allows to configure both options * (not working correctly) added automod integration and some small changes * Fixed the * Removed the feature that didn't work (reposting), adds a custom message to the automod message block. Also the bot now deletes the rule it created if automod enabled = false * Fixed the bug of the bot still sending the warning and punishing if limit reached with reply pings even when it's allowed in config * Added a funny easter egg * Some QOL improvements, including merging the list commands * Added some new options in the config * Update configuration.json * Fix self-ping condition to allow self-pinging * Ping protection V1, in Discord.JS V14 * Ping Protection V1 * Changed code to the requested changes, and adjusted code logic to actually properly support multiple moderation actions (not tested before, and didn't work during testing) * Made adjustments to code as requested, and added an intent to main.js to make it work properly. * Fixed the missing footer on embeds. Fixed a small typo in the default waning message configuration and added an emoji to the why easter egg. * Ping Protection V1.1 * Quickly updated locales for better explanation about exceptions for whitelisted * Ping Protection V1.1 remastered * Another remastered version * Added categories in 2 configs * Used proper emoji's that SCNX supports * Used the new updated ones I suggested that were added (and hopefully also work) * Updated some small changes from Copilot --------- Co-authored-by: Kevinking500 <Kevinking500>
* feat(economy): implements "Artikel bearbeiten" Implements https://featureboard.net/suggestions/95f5a741-6d35-4b86-9c67-abd900dca76e * fix(economy): Adressed the issues copilot pointed out and also fixed them in createShopItem
* Weird things are happening. Tried to rebuild it * Weird things are happening. Tried to rebuild it * Next try, please work this time * temp-removed locales
|
"too complex to solve in the web edditor" what else am I supposed to do 😭 |
|
Oh, the latest commit for module name list cleaner temp removed locales which causes this.. |
There was a problem hiding this comment.
Pull request overview
This PR introduces a new Staff Management System module that adds management workflows (infractions/suspensions, promotions, staff reviews, activity checks, LoA/RA status handling, and shift tracking) plus supporting configs, models, commands, events, and locale strings. It also includes a small core interaction handler tweak to support commands that use subcommand groups.
Changes:
- Add the
staff-management-systemmodule: logic layer, commands, component interaction handlers, scheduled jobs, and Sequelize models. - Add dashboard config schemas for the module’s features (infractions, promotions, reviews, shifts, status, profiles, activity checks).
- Extend localization (
locales/en.json) with staff-management-system strings (and unrelated guess-the-number strings).
Reviewed changes
Copilot reviewed 25 out of 25 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
| src/events/interactionCreate.js | Treats SUB_COMMAND_GROUP as a subcommand container when dispatching slash commands. |
| modules/staff-management-system/staff-management.js | Core logic for staff management features (infractions, promotions, reviews, statuses, panels, activity checks). |
| modules/staff-management-system/module.json | Module metadata and config file registration. |
| modules/staff-management-system/models/ActivityCheck.js | Sequelize model for activity check records. |
| modules/staff-management-system/models/Infraction.js | Sequelize model for infractions/suspensions. |
| modules/staff-management-system/models/LoaRequest.js | Sequelize model for LoA/RA requests. |
| modules/staff-management-system/models/Promotion.js | Sequelize model for promotions. |
| modules/staff-management-system/models/StaffProfile.js | Sequelize model for staff profile + duty/status fields. |
| modules/staff-management-system/models/StaffReview.js | Sequelize model for staff reviews. |
| modules/staff-management-system/models/StaffShift.js | Sequelize model for shift logs. |
| modules/staff-management-system/events/interactionCreate.js | Component interaction routing for staff management UI, duty UI, LoA/RA actions, deletion. |
| modules/staff-management-system/events/guildMemberRemove.js | Auto-closes open shifts when a member leaves. |
| modules/staff-management-system/events/botReady.js | Schedules LoA/RA expiry jobs and checks expired suspensions periodically. |
| modules/staff-management-system/configs/configuration.json | Base roles + general log channel config schema. |
| modules/staff-management-system/configs/infractions.json | Infractions/suspensions config schema + templates. |
| modules/staff-management-system/configs/promotions.json | Promotions config schema + templates. |
| modules/staff-management-system/configs/reviews.json | Reviews config schema + templates. |
| modules/staff-management-system/configs/shifts.json | Shifts/leaderboard/quota config schema. |
| modules/staff-management-system/configs/status.json | LoA/RA status config schema + logging options. |
| modules/staff-management-system/configs/profiles.json | Staff profiles config schema + template. |
| modules/staff-management-system/configs/activity-checks.json | Activity check + automation config schema. |
| modules/staff-management-system/commands/staff-management.js | Slash command entrypoint for most staff management actions. |
| modules/staff-management-system/commands/status.js | Slash command for LoA/RA request/view/list/admin manage. |
| modules/staff-management-system/commands/duty.js | Slash command + button handlers for duty/shift tracking UX. |
| locales/en.json | Adds staff-management-system strings (and new guess-the-number strings). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
All changes have been fixed that Copilot mentioned here |
|
Just a quick note, I am quite the bit less available and more busy the last few days, and would likely stay like this for roughly the next week(s) as I am preparing and planning for my trip next month ^^ |
SCDerox
left a comment
There was a problem hiding this comment.
Great PR! Some small rather important things:
|
Due to a sudden finding of a critical bug (duty time still being recorded even while being on break) during the testing after changes, the next commit will unfortunately be delayed by quite the bit until I fix this ^^ |
|
Actually, no big delay (I sent that fairly late, I was working for this for more than 1 hour now). Will be committing it shortly |
SCDerox
left a comment
There was a problem hiding this comment.
Code Review
Found 9 issues (4 critical bugs, 1 security issue, 4 logic/data bugs):
del_allconfirmation bypassed — data deleted immediately without waiting for user confirmation (missingreturnafter collector setup)interaction.update()called onModalSubmitInteractionin LOA deny handler (method doesn't exist on modal submits)handleStatusEndcalled with wrong arguments —clientpassed whereinteractionexpected, crashes on every "End Early" button pressinteraction.update()called onModalSubmitInteractionin duty admin add-time handler (same root cause as #2)- Break recovery corrupts shift
startTimeon every bot restart by double-counting elapsed break time guildMemberRemoveusesfindOneinstead offindAll— orphans multiple open shifts- No authorization re-check on admin duty button handlers (force-end, void, add-time)
initActivityCheckAutomationnever called in botReady — automated checks never fire- Suspension
isSuspended: trueupsert only runs conditionally — leaves inconsistent state
Generated with Claude Code
SCDerox
left a comment
There was a problem hiding this comment.
Automated Agentic Code Review
Hey Kevin, thanks for your contribution on the staff management system -- this is a big module and a lot of solid work!
Heads up: This is an automated agentic review test that Simon is running. An AI agent (Claude Code) independently reviewed every file in this PR using multiple parallel review passes (bug scanning, security audit, UX review, cross-file consistency, and code quality analysis). Each finding was then independently scored for confidence, and only issues scoring above the threshold were included.
Found 9 high-priority issues (from the previous review comment) and 15 lower-priority issues (marked as "Minor" in this review).
The high-priority ones include 4 critical runtime crashes (wrong method calls on modal submits, argument mismatch, missing return), 1 security concern (missing auth re-checks on admin handlers), and 4 data integrity bugs. The minor ones cover validation gaps, UX improvements, i18n issues, and edge cases.
Please feel free to:
- Dismiss any findings that are wrong or not applicable -- automated reviews can produce false positives
- Ask for clarification on any comment if the reasoning isn't clear
- Provide feedback on whether this type of agentic review is useful, too noisy, or could be improved
Simon is testing this workflow and your feedback would be valuable for tuning it.
Thanks again for the contribution!
Generated with Claude Code
|
There we go. Most things are fixed now. |
SCDerox
left a comment
There was a problem hiding this comment.
Follow-up review (post-fix)
Great job addressing all 9 high-priority issues and most of the minor ones. Found 3 remaining issues and a locale cleanup pass:
Bugs:
- Manage panel not updated after status end/extend — original message still shows enabled buttons to other supervisors
- Null crash in
buildDutyAdminPayloadwhen target member left the server — admin sees error despite operation succeeding - Missing
checkDutyAdminPermissiononhandleDutyAdminAddTimeSubmitmodal handler (was added to the button handler but missed on the submission)
Locales:
- 3 missing keys that will show raw key names at runtime
- 39 unused keys (renamed leftovers) that can be cleaned up
|
yo what is claude yapping |
|
Changes done from the feedback, and removed unused localeskeys. Surprisingly, even after the removal of many locales keys, the module still has 355 locales keys which will be annoying for translators like me to do lol |
SCDerox
left a comment
There was a problem hiding this comment.
Automated AI Code Review
Great work addressing the previous 13 issues — all confirmed fixed. This follow-up review found 11 remaining issues (1 critical, 8 important, 2 minor). Most are interaction lifecycle issues (missing defers, stale panels) and one critical data integrity bug in voidInfraction.
Summary:
- 1 critical:
voidInfractionDB commit ordering - 8 important: defer/interaction lifecycle, audit log, pagination, race condition, performance
- 2 minor: code consistency
See inline comments for details and suggested fixes.
SCDerox
left a comment
There was a problem hiding this comment.
Automated AI Follow-up Review
Thanks for addressing 8 of the 11 issues — solid work. Two regressions were introduced in this commit that will cause crashes:
voidInfractionpermission check references undefinedmember— every void call failsendActivityCheckProcessdeleted variable definitions still referenced — crashes on every activity check completion
Also, the status end/extend panel issue was misunderstood (see reply on that thread) — it's about the original non-ephemeral message not being updated, not the ephemeral reply itself.
SCDerox
left a comment
There was a problem hiding this comment.
Ran an AI-assisted code review over this module and want to flag three things I'm fairly confident about — all three are eyeballed against the PR source (e33fd701) to make sure they aren't hallucinated. Feel free to dismiss anything that's actually intended behaviour; you know this module better than me.
Nice work on the overall scope here, by the way.
|
Quick i18n pass on the current state of the module (not strictly from this PR — also includes some follow-up revisions we have queued on
If you'd like, I can push these directly to |
|
Oh thanks for the offer, as these are fairly small changes (and due to me being too laxy to sync the changes from Git to the local version), and some minor fixes to what Claude/your AI suggested as changes, same for localization, i'll probably spend the small 15-30 mins fixing those small mistakes ^^ |
Staff Management System: a new module designed for management, by management
(Idk that sounded cool)
This PR introduces the Staff Management System, which directly also correlates to Seppe's suggestion.
Features in this module:
This time, unlike the PP module, data will be kept until deleted manually by management roles and above. Though this might be changed.
AI usage in this module: