Commit Graph

232 Commits

Author SHA1 Message Date
akastijn 7cc7cca129 Update cosmos-api to version 1.21.8 and adjust repository URL in settings.gradle.kts. 2025-07-29 22:54:06 +02:00
akastijn 3bfd358e78 Add support for custom channel aliases and improve string formatting consistency 2025-07-29 19:11:14 +02:00
akastijn eb30750134 Refactor switch statements to use enhanced -> syntax and update dependencies to include cosmos-api. 2025-07-29 19:10:20 +02:00
Teriuihi fc7860145f Updated to 1.21 by switching to cosmos 2025-06-21 00:53:55 +02:00
Teriuihi 1dd19f0543 Update dependencies and build configuration 2025-06-20 23:26:54 +02:00
Teriuihi e74361a7b7 Add "local" chat channels with proximity-based messaging
Introduced a "local" channel type to restrict chat visibility based on player proximity, configurable via `LOCAL_DISTANCE`. Added channel spy functionality to monitor "local" messages. Updated constructors and configuration to support this new feature.
2025-03-22 18:19:25 +01:00
Teriuihi 769859a617 Fix bypass permission logic for ignored players in chat
Updated the filtering logic to correctly handle the "chat.ignorebypass" permission, ensuring players with bypass permission are not excluded due to ignore settings. Adjusted related conditionals in ChatHandler and ChatListener, and refactored patterns without altering functionality.
2025-03-22 02:44:42 +01:00
Teriuihi 5212954946 Refactor config reload and server name handling.
Replaced inconsistent `ReloadConfig` usage with `reloadConfig` across the codebase for better naming consistency. Introduced `ServerName` utility to standardize server name retrieval and improve maintainability. Added logging enhancements for better debugging of muted users and blocked messages.
2025-03-21 22:55:57 +01:00
Teriuihi f1b8af6136 Merge branch 'ignore_fix' 2025-03-21 20:35:06 +01:00
Teriuihi 9e437079e4 Remove Galaxy dependency
Switched back to paper since we don't use any features from Galaxy that aren't already in paper
2025-03-21 20:34:45 +01:00
Len bfc9af69d0 Fix URL clicking in chat. 2025-02-09 18:04:55 +01:00
Len ea705c879f Allow nick request from nick preview message 2025-02-07 20:45:21 +01:00
Teriuihi 45eceaf4a6 Merge branch 'main' into ignore_fix 2025-01-02 00:37:11 +01:00
Teriuihi c5eebb7e88 Merge remote-tracking branch 'origin/main' 2025-01-02 00:36:11 +01:00
Teriuihi 5e34e6e7fa Don't ignore users with bypass permission
Refactored chat logic to respect 'chat.ignorebypass' permission for both senders and receivers. This only applies to cases where a user is sending text to another user, checks for login/out messages were not fixed
2025-01-02 00:30:55 +01:00
Teriuihi c5c60d25b1 Cleanup 2025-01-02 00:22:03 +01:00
Len 804e619e8a Add workaround to display nickname when tagging a player in chat. 2024-10-06 19:29:31 +02:00
Teriuihi b3e545a0c8 Log custom messages sent in custom channels
Added a log statement to capture and log information whenever a message is sent in a custom channel. This includes the player's name, the channel name, and the message content for better monitoring and debugging.
2024-09-25 20:03:12 +02:00
Stijn 73e67eed6c
Vote mute (#3)
* Implement chat log handler with database support

The code changes introduce the ability to log chat messages. A new ChatLogHandler class has been added that manages the queue of chat log messages, both storing them in memory and writing them to a database. New columns have been added to the database and the interactivity with the database is handled using prepared statements to improve security and performance. The chat messages are deleted from the database after a certain period, which can be configured.

* Add start of VoteToMute functionality in chat system

Implemented VoteToMute system enabling initiated voting for muting a player in chat. This includes creating new classes "ActiveVoteToMute", "VoteToMute", and "VoteToMuteStarter". The "VoteToMute" class handles the voting command logic, it allows players to vote on whether to mute other players. The code also adds a call to register this new command in the main VelocityChat class.

* Replace Object2ObjectOpenHashMap with HashMap

The usage of Object2ObjectOpenHashMap in storing chat logs and the chat log handler was switched to HashMap. This was done to ensure the plugin can be run on proxy as velocity does not include this library

* Add VoteToMuteHelper and enhance ActiveVoteToMute

Implemented a new module titled VoteToMuteHelper to enhance the voting system and augment the user experience. This module enhances the system by providing relevant player suggestions and setting up the mute player. Made updates to the ActiveVoteToMute module to handle potential voters and mute the player if the vote is passed. VoteToMute module is also updated to include the total eligible players. The code is made robust by adding appropriate error checks.

* Enable optional logging in ChatLogHandler

Modified the ChatLogHandler to support optional logging by introducing a new argument in the getInstance() method. This argument sets the logging state during instantiation. This facilitates better flexibility when using the ChatLogHandler across different sections of the code base as logging requirements may differ.

* Add mute vote results sent to Discord and staff presence check

Enhanced the vote-to-mute feature by adding a function that sends the mute vote results to a general channel on Discord. A 'staff presence' check has also been added which prevents the mute vote from being initiated if a staff member is online, instead, it prompts users to directly contact a staff member for help.

* Fix chat log message deletion query

Corrected the SQL query in the `deleteOldMessages` method within `ChatLogQueries.java`. Originally, it was incorrectly deleting newer messages rather than older ones due to an incorrect comparison symbol. It has now been adjusted to properly delete older messages based on the provided duration.

* Add player muted logging and abstract embed building

The update introduces a log entry indicating when a player has been muted due to voting. The embed creation for this process has been isolated and extracted into a separate function. This contributes to better code modularity and organization.

* Implement logging for ChatLogHandler

The ChatLogHandler now includes logging for better troubleshooting and understanding of the server state. Logging triggers when chat logging is disabled, when it starts, and also if there's a failure in saving chat messages to the database.

* Refactor death message display in PlayerListener

The commit refactors the method for displaying player death messages in the PlayerListener class. Specifically, it adds functionality to replace usernames with display names in death notifications. More descriptive death messages with themed colors and icons are now shown.

* Refine ChatPlugin and improve "vote to mute" logic

Modified ChatPlugin to include "thisPlugin" within the ShutdownListener initialization. Additionally, adjusted the mute vote failure message color from green to red in ActiveVoteToMute file and added a condition to return false if there are no votes. Also, made improvements to the pagination logic in the VoteToMuteStarter file. Lastly, improved the chat logging mechanics in ChatLogHandler by adding and refining various log information for capturing action details.

* Update vote validation and argument naming

Updated the method "votePassed" in "ActiveVoteToMute" to consider a scenario where no votes have been made for muting. Also, corrected the argument name from "yesno" to "yesNo" in "VoteToMuteHelper" to match with its name in the command constructor

* Update vote to mute functionality in chat system

Several changes were made to update the vote to mute functionality in the chat system. The threshold for eligible players online for vote has been changed from 10 to 6. In addition, improvements have been made to prevent the vote from ending prematurely. Lastly, feedback messages to users when they cast their vote and an update to the vote start message format have been implemented.

* Update vote-to-mute feature

The vote-to-mute feature is updated to include information about the vote initiating player. Also, the duration to retrieve chat logs increased from 5 minutes to 10 minutes. Lastly, eligible players are now notified live about the voting progress.

* Fix message validation and chat log order

Corrected conditional logic in VoteToMuteHelper to validate messages properly and adjusted sorting of chat logs in VoteToMuteStarter to display in reverse chronological order. The update now accurately verifies the existence of selected messages and presents recent logs first for more user-friendly navigation.
2024-07-27 23:16:18 +02:00
Len c9e819645a Update build.gradle.kts 2024-07-27 22:33:39 +02:00
Len 33dc113b36 Revert "Remove chat decorators"
This reverts commit bd48c3f0ca.
2024-07-27 16:05:15 +02:00
Len ba8ba373fd Remove CMI 2024-07-27 16:05:11 +02:00
Len c3e27edb7e Move down receivers in ChatListener.java 2024-07-27 11:17:34 +02:00
Len bd48c3f0ca Remove chat decorators 2024-07-27 11:03:55 +02:00
Len 71a8c652dc Update to 1.21 2024-07-21 18:57:58 +02:00
Len 13e4966a12 Revert "Update to 1.21?"
This reverts commit 3ea078237d.
2024-07-19 21:09:26 +02:00
Len 3ea078237d Update to 1.21? 2024-07-06 11:00:58 +02:00
Len c97f5a54d7 invert boolean check 2024-07-06 11:00:58 +02:00
Teriuihi 99f66c3b4b Prevent empty stack exception in PlayerListener
An additional condition is added to prevent an exception from being thrown when attempting to peek an empty stack in the PlayerListener.java file. This should resolve issues where checking if the playerDeathsStack is before the cut off time caused an empty stack exception error.
2024-04-28 21:38:12 +02:00
Teriuihi de24ca4437 Refactor PlayerListener for mute handling and text prioritization
Improved the PlayerListener class by adjusting event handling priority and adding nullability constraints for PlayerDeathEvent for better program robustness. Also removed a now unused import of the TextComponent class for cleaner codebase management.
2024-04-13 16:15:35 +02:00
Teriuihi e351e86bea Add mute handling and text styling in PlayerListener
Enhanced PlayerListener feature by incorporating checks for server mute status before sending death messages. Additionally, styled the death messages by adding text color and italics when mute state is false to improve readability.
2024-04-10 22:02:01 +02:00
Teriuihi a377bdfe48 Implement player death message limits
The code now includes player death message limits, with a configured maximum number of messages per defined period. This was added in the PlayerListener class and configuration options were placed in Config.java. This change will restrict spamming of death messages.
2024-04-06 13:11:05 +02:00
Teriuihi 034de90062 Implement evidence for automatic ban for 'punish' filter violations
When a user who violate the 'punish' filter rules is automatically banned, there will now be a post about it in the #evidence channel.
2024-03-02 20:41:59 +01:00
Teriuihi bd8fa02f1e Add 'punish' filter and automatic banning functionality
Extended the RegexManager filterText method to include a 'punish' case that triggers an automatic ban for users who violate the filter. This commit also updates the PluginMessageListener to handle 'punish' commands, thus completing the execution of an auto-ban function.
2024-03-02 19:18:13 +01:00
Len eb7c1dd1e1 Update to 1.20.4 2023-12-17 12:37:21 +01:00
Teriuihi 278129e8d8 Changed pinging to prevent ping for not @'d user
Allowed \ to escape ping
2023-08-14 01:29:06 +02:00
Teriuihi f1deebf49e Merge remote-tracking branch 'origin/main' 2023-08-11 22:30:34 +02:00
Teriuihi 3e29fc7d17 Added minimum hex value for nick colors 2023-08-11 22:30:23 +02:00
Len ffa90b5c94 add MENTIONPLAYERTAG to Config.java 2023-07-15 17:45:03 +02:00
Len 9d7f944c88 Fix Tagging players and triggering a replacematcher not resetting chatcolor 2023-07-15 17:42:12 +02:00
Teriuihi 4b930e62c3 Log party messages that are from a toggled user on the local server as well 2023-07-10 23:33:42 +02:00
Teriuihi ce5ea19961 Removed unused imports 2023-07-07 23:16:15 +02:00
Teriuihi 591ca93981 Fixed first join messages only working if chat user is not loaded yet 2023-07-07 23:15:45 +02:00
Teriuihi d7cfe97644 Added first join messages back 2023-06-26 21:40:15 +02:00
Teriuihi c86a344d49 Trying a different way to see if a player is a new player 2023-06-22 02:00:51 +02:00
Teriuihi 55918670bc Maybe fixed mentions 2023-06-20 00:40:44 +02:00
Teriuihi f3c7a312c0 Added first join messages 2023-06-20 00:35:46 +02:00
Teriuihi 9b7868bea7 Fix mentions happening within words 2023-06-17 23:58:33 +02:00
Teriuihi 6c6b798677 Fix load order 2023-04-23 22:48:33 +02:00
Teriuihi 0c1b197054 Don't send players a ping sound if they have the player that's pinging them ignored 2022-11-25 19:49:37 +01:00