Commit Graph

38 Commits

Author SHA1 Message Date
Sheldan
732535850b [AB-xxx] adding support for user installable apps to varying commands 2025-02-03 22:54:15 +01:00
Sheldan
53b0c91360 [AB-XXX] replacing packaged xsd for liquibase with reference
using logging module for db and template deployment
updating deployment container dependencies
2024-02-19 00:18:06 +01:00
Sheldan
e31d257e6f [AB-240] changing invite filter to actively filter the server instead of only being based on the code
moving invite filter to separate module
updating to newer liquibase version
changing concept of immune roles which are directly associated to commands to immune roles which are immune against certain effects. these effects can be configured directly by the command (and a condition checks this effect), but they can be used in services as well, unrelated to commands
adding checks to not execute message received listeners for the wrong message types
adding metric support for 502 status
fixing duplicating help entries when two module definitions with the same key are present
2021-05-10 20:45:34 +02:00
Sheldan
cfe7786d4d [AB-200] fixing link embeds not working for users who left the server
fixing some issues with optional dependencies (autowired creates null instances etc)
fixing roll and roulette using not the proper default values
fixing setPrefix not creating an instance, in case it originated from a default config
fixing too many configuration properties in utility
2021-03-16 01:18:31 +01:00
Sheldan
2ed456c164 [AB-197] splitting utility maven module into separate maven modules
aligning some package names
removing some unnecessary computed values from liquibase
2021-03-12 18:48:56 +01:00
Sheldan
047c574319 [AB-190] migrating default config (featureMode, system config, post targets, feature flags) from tables to property files
not longer immediately instantiating the feature flag instance when a new server is found, but only when its config is changed or when a feature mod has its config changed
2021-02-11 00:19:17 +01:00
Sheldan
ea12d67e5f [AB-62] adding server id to more tables for easier joins and fixing structure at more places 2021-02-08 02:06:43 +01:00
Sheldan
038d5c3832 [AB-103] adding triggers to update created and updating attributes on tables
fixing error handling in installer
merging change sets to larger operations
adding check constraints
fixing suggestion id handling
applying naming conventions to various columns
adding indices to tables
adding user in server and user locking
2021-02-07 22:58:06 +01:00
Sheldan
2a2a3aea70 [AB-68] adding invite filter with commands to allow/disallow invites, remove stored filtered invite links and show filtered invite links
removing database entities from command context
2021-01-24 22:34:01 +01:00
Sheldan
69aa82e26e [AB-63] adding fun and entertainment related commands commands: roll, roulette, lovecalc, choose, 8ball 2020-12-14 22:33:10 +01:00
Sheldan
325264a325 [AB-150] creating repost detection feature including configuration and documentation
adding http and hash service
adding ability to add default emotes to a message to message service
adding message embedded listener to wrap the embedded event
adding custom channel groups which can be defined by modules, in case a change on a channel group (only created and updated) happens a listener is available in order to sync the state in dependant areas
changing command receiver re-throwing abstracto runtime exceptions in order to display them better
changing channel group parameter handler to throw an exception in case the channel group was not found
adding User in a server parameter handler
split channel not found exception to be able to differentiate between not found in database and not found in guild
changing exception handling in command received handler to handle the case for only one parameter handler future which failed (the whole single future failed, which was not reported)
changing parameter type of `removeFromChannelGroup` to AChannel in order to be able to delete channels in the database via ID
moving method to mock utils for mocking consumer
removing parameter validation from commands, as it should be done in the command received handler and parameter handlers anyway
2020-12-13 01:50:09 +01:00
Sheldan
b05a834b59 [AB-161] fixed composite foreign keys for multiple tables 2020-11-22 18:45:00 +01:00
Sheldan
9374dfb912 added liquibase for setup of databases and initial values
fixed some table names to be singular
migrated templates to separate repository
added seed data to initial version in liquibase migrations instead of property files (post targets, emotes etc) and created some default tables containing those default values
added separate artifacts to be used containing only the liquibase config
added shell script as a wrapper for ansible deployment, to handle an environment variable defining whether or not the deployment should be executed
added logback scan period
added licenses for ansible, liquibase, docker and docker-compose
2020-07-17 21:48:23 +02:00
Sheldan
ac93440546 added tests for utility module
refactored various commands and services
optimized code for message embeds
removed emoteUtils completely and moved to service
removed suggestion validation, because its now done via feature config
fixed regex for discord links
changed template to handle the case in which a member which suggested it originally left the server
added suggestion update exception in cases the message to edit, does not qualify as a suggestion
added check to not allow cross server quoting and added test case
refactored mocking for jda objects
2020-06-10 13:04:39 +02:00
Sheldan
feb92698ef added command to show the avatar of member 2020-05-27 15:29:23 +02:00
Sheldan
de4eeeacca added serverInfo help
added userInfo command
added offsetDateTime to the custom date formatter
2020-05-27 15:10:54 +02:00
Sheldan
be97e825cc added serverinfo command
added freemarker extension in order to split up elements in fields at a point which makes sense (necessary for emotes to render)
added additional check to split fields if they are indeed over the max length
2020-05-27 13:07:51 +02:00
Sheldan
d2264937b2 added the concept of feature modes, these are the modes in which a feature can operate, its basically a separate way how the feature does it jobs, for example mod mail might log or it might not. bot of these are different modes
refactored services for feature flag and feature config
2020-05-16 20:55:13 +02:00
Sheldan
cb1abaed7d moved some more templates to template config
fixed usage of post target exceptions
2020-05-13 17:45:55 +02:00
Sheldan
b13309a026 Split the logging of mod mail threads to a separate feature
fixed the default values of features in properties files
2020-05-11 16:15:02 +02:00
Sheldan
da8fea34da replaced a bunch of places where the database loaded objects were referenced across threads, this might have lead to problems when lazy loading them
fixed starboard post template
fixed starboard post deletion
2020-05-09 16:15:07 +02:00
Sheldan
59dc8c602a refactored command responses to use a central place for configuration in an extra module
fixed makeAffected role parameter
made command check name case insensitive
added name to parameter for decayAllWarnings
removed simple log from message edited listener
2020-04-30 22:29:49 +02:00
Sheldan
1fc459f65e added description/long help and usage to all the current commands and updated a few of existing ones
added help info objects to the commands who missed them
changed all commands to be templated and removed the hard coded strings to only rely on templates (other commands might only want to use the direct string)
fixed handling of null parameters/submodules in help command
fixed experience module not showing up in help command
2020-04-28 20:02:03 +02:00
Sheldan
8e7bc7d98f fixed some code smells 2020-04-27 20:23:02 +02:00
Sheldan
4800470f86 refactored features to be components instead, so we have more runtime config (for example template config etc), this can be done, because features depend on the code anyway and do not need to be done via property files, the property files only define the default values when starting up
fixed feature disabled message not being templated and refactored the way condition checks are handled by the command received handler, so we do not use exceptions for this, this handled by a specified state in the result and a separate post execution handler
added separate config module to the commands
added command to see which features are available, and their current state
fixed scheduler test
2020-04-26 11:38:27 +02:00
Sheldan
0f8a39a336 changed catch block in join listener for Exception, so the listener dont interrupt one another
fixed join template
added join listener to check if a joined user should be muted
changed cached message to be an intant instead
fixed wrong id in mute table
moved the timestamps for mute notifications to the footer
fixed a case for message embeds, when the embed does not have a description
2020-04-24 20:04:19 +02:00
Sheldan
ff8817f765 added duration field to reminder and restructured remind text
added general duration formatting to freemarker (its a builtin method currently
added source channel attribute to starboard post
added exception logging to immediate reminders
2020-04-21 21:54:47 +02:00
Sheldan
edb270e887 added command to sync roles for the whole server
added command to remove a role from the experience roles
added leaderboard command
added rank command
fixed missfire configuration for cron jobs (they should not be executed)
added ability to configure recovery for jobs
added tracking of message count
added join listener to automatically give the appropriate role for a joined user
added parameter to join listener containing the userInAServer
re-added command exception templates
added method to create a status message (basically only a single message is returned and expected)
added method to edit a single message in a channel to channel service
fixed cases in which there are no embeds, but we still used the embed principle of sending messages (only text was send)
added more functions to channel service to send messages with
moved joined listeners to their separate transaction
2020-04-12 19:35:42 +02:00
Sheldan
e84e384706 added ability to define and use default emotes (introduced them in starboard/embed deletion/command reactions/suggestions)
fixed post target validation for suggestions
2020-04-10 11:24:16 +02:00
Sheldan
ef8dcb61d9 added reminders command
fixed embedbuilder list not containing an initial embed builder
2020-04-08 16:22:58 +02:00
Sheldan
523aaaae2a added ability to delete embedded posts (only the author and the person embedding can delete them) (this requires the embeds to be stored, they are deleted if the embed is deleted)
added filter to only handle reactions not done by the bot
introduced completable future to the delete message wrapper
fixed multi embed handling always resulting in two embeds
added logging of template exceptions
refactored link embed handling to be in a service instead of the listener
2020-04-07 22:32:56 +02:00
Sheldan
bf94af66d5 reworked exception handling, different exceptions whether or why it failed, all of which are unchecked
added feature flags for commands/listeners
added enable/disable command
added feature flag handling to command received handler
added boolean parameter support
fixed 1 parameter commands
fixed posttargets not working on multiple servers, removed unique constraint on posttarget names
added setup validation to suggestions
added quartz property loader
moved join/leave logger to moderation
reworked the way the message listener are handled (separate listener around)
2020-04-04 12:55:01 +02:00
Sheldan
089862bf15 added starboard functionality (starboard/starstats)
added module to store/retrieve configuration (double and string values)
replaced a few null values with optionals (emote loading)
fixed creating channels on startup
added delete message/get emote utility to bot service
extended emote service to have utility methods to use emotes
added reactions to message cache
added empty message handling to  post target service, in case the template evaluates to empty
added ability to edit a message in a post target (standard message and embed)
added principle of config listeners, so default config can be created, for example starboard thresholds
added abstract reaction listeners for adding/removing/clearing
fixed foreign keys between channel and server
added emote utils to handle AEmote and Emotes
renamed emotes to be camelCase, so they are easier to type
2020-04-01 14:16:04 +02:00
Sheldan
03e81a025b added scheduling support
added remind command
added support for parameters with spaces (they are contained by ")
fixed support for remainder parameters
added maxlength support for parameters
added ability to embed templates, to have a text as well
moved properties to a more appropriate position
added method do parse a duration
2020-03-28 20:12:59 +01:00
Sheldan
8cd9068cfc added error message logging to reaction post execution
added validation to post target command
added templates for post target command
moved ping and echo model to interface
added show emote command
2020-03-22 12:34:52 +01:00
Sheldan
d95382b589 added mechanism to dynamically load properties defining postTargets and valid emoteNames
changed the output of the exception message
refactored emote management service
added service to define whether or not an emote is usable by the bot
2020-03-22 10:26:58 +01:00
Sheldan
9e9eb615c0 added dynamic post target loading
fixed some templates of commands
added fat jar maven config
2020-03-21 18:39:46 +01:00
Sheldan
df0c156743 added utility module
added ability to create/accept/reject suggestions them
made commands async, because a lot of operations behave like that
in case the database is needed in an async operation, this needs to be in a separate transactional service
fixed ordering of Long parameters (server > channel > message)
added initial emote handling (no adding of emotes yet)
fixed creation of AUserInAServer, in case the user did not exist yet, when loading
changed PostTargetService to return Futures instead of being a void, in order to be able to act on the message posted
set logging level to debug
fixed help for different commands (templates had wrong naming)
2020-03-21 14:31:59 +01:00