Releases: KarlOfDuty/SupportBoi
Release 4.0.0
Changelog
Hotfix 2025-01-27 9:00: Fixed a dependency breaking transcripts.
Hotfix 2025-01-27 18:00: Updated to the new file size limit in the Discord API.
Major features
-
Added interview system to automatically interview the ticket creator when their ticket is created.
- Added functionality to set different interview templates for different ticket categories. These decide which questions the bot will ask and how it will react to responses. Read more here.
- Added an interview template JSON schema for autocomplete and error checking features in your text editor. Guides available for VS Code and Jetbrains editors in the interview templates documentation.
- Added admin and moderation commands for the new interview system:
/interview restart
: Restarts an ongoing interview or starts up a new one in the current ticket. Uses an updated template if available./interview stop
: Stops an ongoing interview./interviewtemplate get <category>
: Gets the interview template for a specific category. If one doesn't exist it gets a basic one to start out from./interviewtemplate set <template>
: Sets the interview template for a specific category. The category is decided by the category id inside of the template file./interviewtemplate delete <category>
: Deletes the interview template for a specific category.
- Added config options for deleting interview messages after an interview is completed, and turning the interview system on and off.
-
Added zip transcripts. Transcripts now include all assets needed to render them as long as they can be compressed to 25MiB.
- If a transcript zip is too large to upload the html will be sent on its own instead. An administrator can still grab the zip from the transcripts directory in order to view the proper transcript.
Minor features
- Added reason message to
/close
- Added option to pin the first message in a ticket to make it easy to quickly scroll to the top.
- Added command line arguments:
--config
,--transcripts
,--leave
,--help
,--version
- Added much more logging. Any commands that make any changes should now log to the log channel.
- Added
delete-messages-after-interview-end
config option.
Changes
- Renamed
/admin listinvalid
to/listinvalid
to enable setting separate permissions for it. - Made
/say
command paginated to fit large numbers of messages. - Switched from using a category mention to using the text name to make it more clear to those who cannot see the category.
- Made
/listinvalid
show tickets where the creator has left the server as well. - Updated from .NET 6.0 to .NET 9.0.
- Updated all libraries, like the Discord API and transcriber.
- Updated documentation with new features.
- Switched MySQL library to a slightly more efficient one.
- Added more information to status command.
- Implemented a new custom console logging handler.
- Added ticket number in the footer of many logs for when the ticket is eventually closed.
- Add transcript dir parameter to config.
- Add non-selfcontained build to jenkins and releases.
- Only assign staff members with channel access when randomly assigning.
- Unassign staff member from tickets when they are removed from staff.
- Fixed and improved several command feedback messages and log messages.
Bugfixes
- Fixed users not being re-added to tickets when they rejoin the server.
- Fixed an exception sometimes thrown when using the blacklist command.
- Fixed disabling the ticket per user limit in the config.
- Fixed checking if the ticket is already in the destination category when using the
/move
command. - Fixed
/summary
command description. - Fixed errors when a user presses the close issue button several times.
- Fixed
/move
command breaking if attempting to move to a full category. - Reload command no longer restarts the discord client which prevents some bugs.
Full Changelog: 3.0.0...4.0.0
Release Candidate 4.0.0-RC3
Changelog
Interview Updates
- Added a step reference system to interviews. This lets administrators define steps in the
definitions
property of an interview template which can then be referenced from the normal interview tree, and from the definitions themselves. It can allow for reducing interview config complexity, repeating the same step in different places of the interview, allowing the user to "go back" to a previous step, etc. - Replaced the
END_WITH_SUMMARY
andEND_WITHOUT_SUMMARY
with anINTERVIEW_END
step type, and added theadd-summary
property which can now be used on any step type. - Added the
step-references
property to steps which works similarly tosteps
but just imports steps from thedefinitions
instead of defining new ones. It also contains theafter-reference-step
property which is where the interview will continue when the referenced step tree ends. - Added the new step type
REFERENCE_END
which can be used in step definitions to jump back to the normal interview tree, outside of the referenced tree, - Added the
answer-delimiter
property to steps. By default, if a user answers the same question multiple times the new answer will overwrite the old one in the interview summary. If this property is set the answers will instead be merged together with this string used as delimiter. - Added some more interview template validation.
- Merged
delete-messages-after-summary
anddelete-messages-after-no-summary
intodelete-messages-after-interview-end
in the config. - The
interviews
database table now has a newdefinitions
column of theJSON
type.
Fixes
- Fix guild list showing every few hours in the console.
- Fix the reload command's log message.
- Reload command no longer restarts the discord client which prevents some bugs.
- Fix bot status disappearing after a while.
Full Changelog: 4.0.0-RC2...4.0.0-RC3
Release Candidate 4.0.0-RC2
Changes and fixes
- Fixed and improved several command feedback messages and log messages.
- Made transcripts use a more aggressive compression method.
- Unassign staff member from tickets when they are removed from staff.
- Add non-selfcontained build to jenkins and releases.
- Add transcript dir parameter to config.
- Fix roles and guilds repeatedly printing to console log.
- Only assign staff members with channel access when randomly assigning.
Full Changelog: 4.0.0-RC1...4.0.0-RC2
Release Candidate 4.0.0-RC1
Changelog 4.0.0-RC1
Major features
-
Added interview system to automatically interview the ticket creator when their ticket is created.
- Added functionality to set different interview templates for different ticket categories. These decide which questions the bot will ask and how it will react to responses. Read more here.
- Added an interview template JSON schema for autocomplete and error checking features in your text editor. Guides available for VS Code and Jetbrains editors in the interview templates documentation.
- Added admin and moderation commands for the new interview system:
/interview restart
: Restarts an ongoing interview or starts up a new one in the current ticket. Uses an updated template if available./interview stop
: Stops an ongoing interview./interviewtemplate get <category>
: Gets the interview template for a specific category. If one doesn't exist it gets a basic one to start out from./interviewtemplate set <template>
: Sets the interview template for a specific category. The category is decided by the category id inside of the template file./interviewtemplate delete <category>
: Deletes the interview template for a specific category.
- Added config options for deleting interview messages after an interview is completed, and turning the interview system on and off.
-
Added zip transcripts. Transcripts now include all assets needed to render them as long as they can be compressed to 25MiB.
- If a transcript zip is too large to upload the html will be sent on its own instead. An administrator can still grab the zip from the transcripts directory in order to view the proper transcript.
Minor features
- Added reason message to
/close
- Added option to pin the first message in a ticket to make it easy to quickly scroll to the top.
- Added command line arguments:
--config
,--transcripts
,--leave
,--help
,--version
- Added much more logging. Any commands that make any changes should now log to the log channel.
Changes
- Renamed
/admin listinvalid
to/listinvalid
to enable setting separate permissions for it. - Made
/say
command paginated to fit large numbers of messages. - Switched from using a category mention to using the text name to make it more clear to those who cannot see the category.
- Made
/listinvalid
show tickets where the creator has left the server as well. - Updated from .NET 6.0 to .NET 8.0.
- Updated all libraries, like the Discord API and transcriber.
- Updated documentation with new features.
- Switched MySQL library to a slightly more efficient one.
- Added more information to status command.
- Implemented a new custom console logging handler.
- Added ticket number in the footer of many logs for when the ticket is eventually closed.
Bugfixes
- Fixed users not being re-added to tickets when they rejoin the server.
- Fixed an exception sometimes thrown when using the blacklist command.
- Fixed disabling the ticket per user limit in the config.
- Fixed checking if the ticket is already in the destination category when using the
/move
command. - Fixed
/summary
command description. - Fixed errors when a user presses the close issue button several times.
- Fixed
/move
command breaking if attempting to move to a full category.
Full Changelog: 3.0.0...4.0.0-RC1
Release 3.0.0
Changelog
- Updated command system to slash commands.
- Most commands have been completely overhauled.
- Added new commands:
/createbuttonpanel
,/createselectionbox
,/addcategory
,/removecategory
,/admin listinvalid
. - Removed reaction based new ticket system.
- Added button and selection box based new ticket systems.
- Added support for users to open tickets in specific categories.
- Removed permission system, make sure to turn off command permissions for the everyone role in
Settings->Integrations->Bot->Command Permissions
before you update and set the command permissions after you have updated. - Removed several config entries, it is recommended that you regenerate your config.
IT IS HIGHLY RECOMMENDED TO FOLLOW THE GUIDE IN THE README TO SET UP THE BOT AGAIN AS SO MUCH HAS CHANGED
New Contributors
- @jkmartindale made their first contribution in #56
- @Fruitloopins made their first contribution in #57
Full Changelog: 2.6.1...3.0.0
Release 2.6.1-B
Changelog
Just updated the Discord API to a release version instead of a beta version, and updated the transcript library.
Should now support things like rendering stickers in transcripts.
Full Changelog: 2.6.1-A...2.6.1-B
Release 2.6.1-A
Changelog
- Updated to .NET 6.0
- Updated dependencies
- Fixed unpacking of some Oauth parameter on startup
- Fixed Jenkins builds
Full Changelog: 2.6.1...2.6.1-A
Release 2.6.1
Changelog
-
Added
say
,addmessage
andremovemessage
commands for often used messages (Example at the bottom). -
Added messages in tickets when the user who opened them leaves or rejoins the server
-
IMPORTANT! The bot will now automatically re-add users to their tickets when they rejoin the server. If you want to hide a ticket from the one who opened it make sure to use the 'unsetticket' command to remove them from it.
-
Disallowed tickets from being created from other tickets
-
Updated Discord API to DSharpPlus 4.1.0
-
Updated to .NET 5.0
-
Updated DiscordChatExporter to commit 092f0ca, transcripts will now look much better again
Hotfix 2.5.1
Fixed another bug where tickets sometimes would refuse to close.
Release 2.5.0
Changelog:
-
Updated Discord API version.
-
Removed Google API integration. (None of the users who answered my polls in Discord and Github used it at all, including me)
-
Replaced
presence-game
config withpresence-type
andpresence-text
. -
Added a role parameter to the
rassign
command, use this to randomly assign a ticket to staff members with a specific role only. -
Added config
random-assign-role-override
. If true therassign
command will give out tickets to anyone with the specified role regardless of if they are set as inactive or not. This only affects the command when a role is specified. -
Set bot intents so the Discord API is happier, you should not have to set either of the intents on your bot settings page unless they change it in the future.
-
Fixed bug where tickets would sometimes refuse to close if either the bot crashed or lost connection to Discord when attempting to close it previously.
Remember to check the readme for the updated config.