Commit Graph

260 Commits

Author SHA1 Message Date
Bea 882c695484 Make slash commands interface and load them dynamically
continuous-integration/drone/push Build is passing Details
Slash commands are now loaded dynamically by implementing a SlashCommand interface and storing them in a loaded commands map.
2022-11-22 14:32:22 +01:00
Bea 7ae4790d5c Add bot owner info to botinfo command
continuous-integration/drone/push Build is passing Details
2022-11-22 00:45:58 +01:00
Bea 51de18206e Refactor clearchat class 2022-11-22 00:35:10 +01:00
Bea d3db53a451 Cleanup imports 2022-11-22 00:34:37 +01:00
Bea 656dff4b26 Refactor packages
continuous-integration/drone/push Build is passing Details
2022-11-22 00:31:52 +01:00
Bea 8faa9c4677 Refactor datasource classes
continuous-integration/drone/push Build is passing Details
2022-11-22 00:28:33 +01:00
Bea f9e1578899 Fix heartbeat error not always being logged
continuous-integration/drone/push Build is passing Details
2022-11-22 00:12:24 +01:00
Bea 72115cbec2 Bump version
continuous-integration/drone/push Build is passing Details
2022-11-22 00:08:36 +01:00
Bea 843ee43275 Finish implementing configuration file
continuous-integration/drone/push Build is passing Details
Configuration file is now fully functional.
Startup arguments for bot token and heartbeat key have now been removed.
2022-11-22 00:04:34 +01:00
Bea b6bf366822 Allow reading values from config
continuous-integration/drone/push Build is passing Details
2022-11-21 23:36:42 +01:00
Bea c650caa090 Finish configuration init method
continuous-integration/drone/push Build is passing Details
This method runs every time the bot starts, and ensures that all values are always present in the config file.
2022-11-21 23:28:33 +01:00
Bea f74ae43673 Refactor Config class
continuous-integration/drone/push Build is passing Details
2022-11-21 20:20:11 +01:00
Bea e396ce6417 Start implementing yaml loading
continuous-integration/drone/push Build is failing Details
2022-11-21 20:20:03 +01:00
Bea 66d27fe1fe Start implementing config file 2022-11-21 20:04:28 +01:00
Bea d9d0ce3236 Bump version
continuous-integration/drone/push Build is passing Details
2022-11-21 19:55:04 +01:00
Bea a5ddbf0d2e Implement heartbeat for uptime monitoring
continuous-integration/drone/push Build is passing Details
You can now monitor the bot's uptime via any external tool that supports push heartbeats. The bots sends a GET request every 30 seconds to show that it's online. The URL is hardcoded for the moment, but very easy to change.
2022-11-21 19:54:49 +01:00
Bea 0bcb5d58f4 Set message expiration time to 15 seconds
continuous-integration/drone/push Build is passing Details
2022-11-21 19:11:18 +01:00
Bea 531ff66bae Bump version
continuous-integration/drone/push Build is passing Details
2022-11-21 19:07:49 +01:00
Bea da511f2913 Database overhaul to fix #3
continuous-integration/drone/push Build is passing Details
We are now tracking whether messages are sent privately on in a guild, and acting accordingly.
2022-11-21 19:07:34 +01:00
Bea 0aec543a46 Bump version
continuous-integration/drone/push Build is passing Details
2022-11-21 16:28:31 +01:00
Bea 326ad68e38 Add emoji to invite command button
continuous-integration/drone/push Build is passing Details
2022-11-21 16:24:21 +01:00
Bea 163619a7f8 Improve registered commands caching
continuous-integration/drone/push Build is passing Details
Discord's API is slow in updating and registering new commands, so we set up a runnable to periodically check.
2022-11-21 16:24:09 +01:00
Bea b015fddf3c Make invite command nicer
continuous-integration/drone/push Build is passing Details
2022-11-21 16:11:16 +01:00
Bea 5e4e438340 Make minimal text changes 2022-11-21 15:59:27 +01:00
Bea b35b962ac6 Implement basic say command
continuous-integration/drone/push Build is passing Details
2022-11-21 15:37:12 +01:00
Bea 4382f7d490 Fix issue tracker link
continuous-integration/drone/push Build is passing Details
2022-11-21 15:17:03 +01:00
Bea 3038be9a28 Actually register help command
continuous-integration/drone/push Build is passing Details
2022-11-21 15:14:57 +01:00
Bea 24bb560d93 Register help command
continuous-integration/drone/push Build is passing Details
2022-11-21 15:13:32 +01:00
Bea 78d5bd6beb Make some messages nicer 2022-11-21 15:07:46 +01:00
Bea 3ff154eec6 Rename methods
continuous-integration/drone/push Build is passing Details
2022-11-21 15:04:12 +01:00
Bea e9f475cb59 Refactor code and packages
continuous-integration/drone/push Build is passing Details
2022-11-21 15:02:40 +01:00
Bea cdc45d62f2 Move uptime string generator to config class
continuous-integration/drone/push Build is passing Details
2022-11-21 15:00:37 +01:00
Bea 6998cc92e5 Bump version
continuous-integration/drone/push Build is passing Details
2022-11-21 14:55:01 +01:00
Bea 996cedb154 Finish botinfo command
continuous-integration/drone/push Build is passing Details
I don't know what else to add, and it looks nice now.
2022-11-21 14:54:45 +01:00
Bea d2caccf080 Finish uptime string generator 2022-11-21 14:44:48 +01:00
Bea 79c8f1a95e Start implementing bot info command
continuous-integration/drone/push Build is failing Details
2022-11-21 12:19:35 +01:00
Bea 6e9291c535 Implement messages error handling in database
continuous-integration/drone/push Build is passing Details
Invalid messages will now be purged from database (if bot was kicked from a guild, if a channel was deleted, ...).
2022-11-21 11:23:52 +01:00
Bea 083fef3911 Fix expired coinflip channel id bug
continuous-integration/drone/push Build is passing Details
2022-11-21 11:19:23 +01:00
Bea f73b489844 Bump version
continuous-integration/drone/push Build is passing Details
2022-11-21 11:15:23 +01:00
Bea 0da3eecd29 Restrict reflip button to user who ran the command
continuous-integration/drone/push Build is passing Details
2022-11-21 11:14:07 +01:00
Bea 7562e956bc Remove leftover debug log
continuous-integration/drone/push Build is passing Details
2022-11-21 00:29:22 +01:00
Bea 97980f8ed9 Bump version
continuous-integration/drone/push Build is passing Details
2022-11-21 00:28:51 +01:00
Bea 5ee7321978 Implement functional reply tracker
Now, with commands that support it, only the user who ran the command/triggered the interaction can use its buttons.
2022-11-21 00:27:57 +01:00
Bea 98a162a33b Implement SQLite database solving #1
continuous-integration/drone/push Build is passing Details
A new basic database has been laid out, with support for message expiry and disabling buttons for old messages.
2022-11-21 00:14:13 +01:00
Bea 7ffd3442c2 Remove code duplication in coinflip command 2022-11-20 22:23:26 +01:00
Bea 3a5b2a23c1 Add clearchat dismiss button 2022-11-20 22:23:14 +01:00
Bea 3d626bb46f Move command handling out of constructor, add coin reflip command
continuous-integration/drone/push Build is passing Details
Having heavy code run in a constructor is bad practice. We made separate methods for command handling.
2022-11-20 22:09:58 +01:00
Bea c44251ddb7 Move avatar resolutions to config class
continuous-integration/drone/push Build is passing Details
2022-11-20 19:00:27 +01:00
Bea 913e8e023a Refactor command packages
continuous-integration/drone/push Build is passing Details
2022-11-20 18:56:57 +01:00
Bea 3474593dc9 Implement command force-refresh arg
continuous-integration/drone/push Build is passing Details
2022-11-20 18:54:13 +01:00
Bea 3578de17c8 Implement avatar resolution autocomplete
continuous-integration/drone/push Build is failing Details
2022-11-20 18:53:28 +01:00
Bea 679d16e1fa Change avatar embed format
continuous-integration/drone/push Build is passing Details
2022-11-20 18:22:32 +01:00
Bea 33d81acc64 Improve internal documentation
continuous-integration/drone/push Build is passing Details
2022-11-20 18:11:00 +01:00
Bea 044445890f Improve avatar command
continuous-integration/drone/push Build is passing Details
Avatar command now produces an embed with links to all possible resolutions
2022-11-20 18:06:07 +01:00
Bea 3e1ba12314 Implement avatar grabber command
continuous-integration/drone/push Build is passing Details
2022-11-20 17:19:40 +01:00
Bea 4817bacf5c Improve invite command
continuous-integration/drone/push Build is passing Details
2022-11-20 16:20:50 +01:00
Bea 18db0282d5 Implement invite link command
continuous-integration/drone/push Build is passing Details
2022-11-20 16:07:04 +01:00
Bea b14850acaa Bump bot version
continuous-integration/drone/push Build is passing Details
2022-11-20 06:15:14 +01:00
Bea e592111d1b Update base JDA version
continuous-integration/drone/push Build is passing Details
2022-11-20 06:13:52 +01:00
Bea cd46d601ec Remove pause feature
continuous-integration/drone/push Build is passing Details
2022-11-20 06:07:25 +01:00
Bea c6ee0f3ae1 Sort commands alphabetically
continuous-integration/drone/push Build is passing Details
2022-11-20 06:05:07 +01:00
Bea f156727413 Optimize imports
continuous-integration/drone/push Build is passing Details
2022-11-20 06:04:34 +01:00
Bea a2c1944a32 Move to class-based command handling
continuous-integration/drone/push Build is passing Details
Having everything in a single class is bad practice, so different classes for each command were made.
2022-11-20 06:04:00 +01:00
Bea dd4ffe252e Add command to stop bot process
continuous-integration/drone/push Build is passing Details
Previously, anyone could send the keywords in chat and kill the bot. Now, only the set bot owner can run the command.
2022-11-20 05:57:58 +01:00
Bea bd76562bcc Remove "flip a coin" message-command
continuous-integration/drone/push Build is passing Details
We have /coinflip now
2022-11-20 05:48:31 +01:00
Bea cc671499cd Fix null argument error in clearchat
continuous-integration/drone/push Build is passing Details
2022-11-20 05:47:29 +01:00
Bea 96953bddcb Make messages prettier
continuous-integration/drone/push Build is passing Details
2022-11-20 05:43:17 +01:00
Bea 7d9c820243 Implement fully functional clearchat command
continuous-integration/drone/push Build is passing Details
The command now supports potentially-infinite message deletion and exception catching (eg messages older than 2 weeks). No longer limited to 100 messages per run.
2022-11-20 05:33:04 +01:00
Bea e1ecc310cc Remove dangerous old clearchat message
continuous-integration/drone/push Build is passing Details
Previous clearchat message had no permissions set (it was just a demo) and didn't support slash commands.
2022-11-20 03:53:53 +01:00
Bea fca7c2d26f Fix command registration
continuous-integration/drone/push Build is passing Details
2022-11-20 03:52:15 +01:00
Bea 813107a2f9 Attempt to fix commands getting unregistered
continuous-integration/drone/push Build is passing Details
2022-11-20 03:49:53 +01:00
Bea bfb4aae2aa Register clear command 2022-11-20 03:42:59 +01:00
Bea f2dc70569d Implement basic clear-chat slash command 2022-11-20 03:41:51 +01:00
Bea 771e115bbd Update startup method
continuous-integration/drone/push Build is passing Details
Small changes to improve stability and readability.
2022-11-20 03:25:51 +01:00
Bea fddabae3c3 Make commands util class grab API instance
continuous-integration/drone/push Build is passing Details
Instead of passing it as an argument, let the class grab the instance itself.
2022-11-20 03:18:14 +01:00
Bea 8b9ce25684 Add shutdown interrupt signal listener
This way, we can nicely close the API connection and perform general cleanup.
2022-11-20 03:17:37 +01:00
Bea b43b882cab Add coinflip slash command
continuous-integration/drone/push Build is passing Details
2022-11-20 03:07:43 +01:00
Bea fb69dcd863 Implement basic slash commands support
continuous-integration/drone/push Build is passing Details
2022-11-20 03:01:46 +01:00
Bea add9dc0632 Update a comment
continuous-integration/drone/push Build is passing Details
2022-08-26 20:57:23 +02:00
Bea 8b2fee6aec Optimize args extraction
continuous-integration/drone/push Build is passing Details
2022-08-26 20:43:49 +02:00
Bea ff4ffba45d Implement verbosity-changer command at runtime
continuous-integration/drone/push Build is passing Details
2022-08-26 20:43:12 +02:00
Bea d085a671c5 Update pause message
continuous-integration/drone/push Build is passing Details
2022-08-26 20:29:29 +02:00
Bea 3cf8a1c92a Lower invite-link logging delay 2022-08-26 20:29:10 +02:00
Bea a18b34b784 Add pause command to halt processing
continuous-integration/drone/push Build is passing Details
Useful for now since I have two instances of the bot running in the same servers and I don't want both of them to respond.
2022-08-26 20:27:46 +02:00
Bea aa223df480 Implement JavaDocs
continuous-integration/drone/push Build is passing Details
JavaDocs can be generated with mvn javadoc:javadoc and will be available in target/site/apidocs.
2022-08-26 16:25:41 +02:00
Bea 70570624e1 Move shutdown log to delayed actions
continuous-integration/drone/push Build is passing Details
2022-08-26 03:50:43 +02:00
Bea d15132e6d6 Add shutdown event to logs
continuous-integration/drone/push Build is passing Details
2022-08-26 03:48:55 +02:00
Bea 3416c13f10 Add small delay before shutdown
continuous-integration/drone/push Build is passing Details
2022-08-26 03:48:15 +02:00
Bea ffab94f525 Add basic shutdown command
continuous-integration/drone/push Build is passing Details
2022-08-26 03:46:36 +02:00
Bea 0c09a03255 Improve message deletion command
continuous-integration/drone/push Build is passing Details
It's now supported on all TextChannels, not only GuildMessageChannels
2022-08-26 03:39:57 +02:00
Bea e4ecd15867 Add simple greeting message
continuous-integration/drone/push Build is passing Details
2022-08-26 01:47:01 +02:00
Bea 63bed66073 Improve message deletion command
continuous-integration/drone/push Build is passing Details
Now you can specify how many messages to clear, and we aren't spamming Discord's API.
2022-08-26 01:44:53 +02:00
Bea 76c2c9e171 Move logger's anonymous runnable to lambda
continuous-integration/drone/push Build is passing Details
2022-08-26 01:15:57 +02:00
Bea 59c5e09f14 Add demo clear-chat command
continuous-integration/drone/push Build is passing Details
This command is very unoptimized (spawning 12 threads) and sometimes hits 429 errors, but it works until things get more serious. Also it's hardcoded to only delete 10 messages.
2022-08-26 01:15:10 +02:00
Bea a875053435 Make the bot play Project DIVA
continuous-integration/drone/push Build is passing Details
2022-08-26 00:39:55 +02:00
Bea 00e30bd073 Add support for attachments in message logger
continuous-integration/drone/push Build is passing Details
2022-08-26 00:20:29 +02:00
Bea 7d068892e2 Include user tag in message logger
continuous-integration/drone/push Build is passing Details
2022-08-26 00:15:47 +02:00
Bea a48daf7c8d Add coin-flip with random utils class and allow verbosity as arg
continuous-integration/drone/push Build is passing Details
2022-08-26 00:13:31 +02:00
Bea a032712450 Add verbose message logger 2022-08-26 00:13:06 +02:00
Bea 59a63b724a Add basic ping response
continuous-integration/drone/push Build is passing Details
2022-08-25 23:20:51 +02:00
Bea 1cff5890bf Fix user-id and invite-link messages sometimes being swapped in logs
continuous-integration/drone/push Build is passing Details
2022-08-25 23:03:33 +02:00
Bea 7bbb22535a Make minor changes
continuous-integration/drone/push Build is passing Details
2022-08-25 22:59:47 +02:00
Bea 1f12dcbb1c Add basic README and ASCII logo
continuous-integration/drone/push Build is passing Details
2022-08-25 22:54:08 +02:00
Bea 94c126e32b Fix logger timestamp not showing time
continuous-integration/drone/push Build is passing Details
2022-08-25 22:43:04 +02:00
Bea 188eafa2ee Add a delayed log method
continuous-integration/drone/push Build is passing Details
2022-08-25 22:37:32 +02:00
Bea 4853e7e07c Add invite-link generation and logging
continuous-integration/drone/push Build is passing Details
The bot will now automatically find its own user-id and generate an invite link, then it will log the link.
2022-08-25 22:29:14 +02:00
Bea 58963d2653 Make bot token a startup argument
continuous-integration/drone/push Build is passing Details
2022-08-25 22:20:05 +02:00
Bea d75aa7ad19 Add playing state
continuous-integration/drone/push Build is passing Details
2022-08-25 22:18:36 +02:00
Bea 5d576b08eb Add Logger class 2022-08-25 22:13:39 +02:00
Bea 5d34048ae6 Add basic project structure with Maven and JDA 2022-08-25 21:51:00 +02:00