There were some bugs that @h4shy tested for (Thank you so much! :D) They were eventually fixed, and I also got some suggestions that would create competition between other chat plugins.
Redesigned APIs fill the update, which is PACKED with new API additions and improvements.
User
Fixes
- Fixed where you can't disable broadcasts
- Fixed the issue where it is possible that the usernames outside of the message can be mentioned, for example:
Previous:
[Member] FlameyosFlow >> Hey there FlameyosFlow how are you?
Now:
[Member] FlameyosFlow >> Hey there FlameyosFlow how are you?
(Fixed using the new SerializedMessage API)
Improvements
Improved mentioning system, now you can add symbols next to a username, for example:
Previous:
"[Member] FlameyosFlow >> Hey there FlameyosFlow how are you?"
"[Member] FlameyosFlow >> I'm good, what about you, FlameyosFlow?" (Does not mention because of '?')
Now:
"[Member] FlameyosFlow >> Hey there FlameyosFlow how are you?"
"[Member] FlameyosFlow >> I'm good, what about you, FlameyosFlow?" (Can now mention)
Developers
Additions
-
Added new methods for WordReplacementManager: WordReplacementManager#addWordMapper WordReplacementManager#removeWordMapper WordReplacementManager#clearWordMappers
-
Added new action events on action execute: PreTitleExecuteEvent PreSoundExecuteEvent PreActionBarExecuteEvent PreCommandExecuteEvent PreSendMessageExecuteEvent
-
New SerializedMessage data class to improve performance, and even used to fix a bug for mentioning!
Improvements
- ChatFormatMessageModifier priority set to LOWEST so it can execute last.
Breaking changes
- Removed ChatManager#processChat and processed it directly inside of PrimaryChatListener
- MessageModifier#modify now no longer returns a value and takes in a SerializedMessage instead of RawDataRegistry<String>
- RawDataRegistry<String> PostChatProcessEvent#getDataRegistry ->SerializedMessage PostChatProcessEvent#getData
- Option<GroupedDataRegistry> MentionsManager#changeMentionsLook(final Player player, final String message) -> void MentionsManager#changeMentionsLook(final Player player, final SerializedMessage message)
- String getFormat(final String message, final Player player) -> SerializedMessage getFormat(final SerializedMessage message, final Player player)
- void editMessage(RawDataRegistry dataRegistry); -> void editMessage(SerializedMessage dataRegistry);
- String ChatProvider#getFormat(String message, String groupFormat, Player player); -> ChatProvider#SerializedMessage getFormat(SerializedMessage message, String groupFormat, Player player);
- ChatRenderer ProcessedChatRenderer#createChatRenderer(RawDataRegistry rawDataRegistry); -> ChatRenderer ProcessedChatRenderer#createChatRenderer(SerializedMessage rawDataRegistry);
- DefaultChatRenderer now takes in a SerializedMessage instead of a RawDataRegistry
This release has new features and improvements to make EnhancedCommunications closer to achieving dominance in the chat experience management category!
Additions
Broadcasts - Async
This month I bring you chat broadcasts, I worked on this so the user can benefit from it AND a great API for the developer to use as well!
User
- Choose the broadcast interval by seconds.
- Choose the worlds you want the broadcast to be in OR make it global by typing "GLOBAL"
- Choose the lore Uses MiniMessage
Developer
- New PreBroadcastAnnounceEvent to check details about the broadcast and the worlds (and its viewers) CANCELLABLE
- You can manually add/remove broadcasts from ChatManager#getAutoBroadcastManager
Word replacements
This month I bring you word replacements:
- Create any word replacements (<3 to ❤️ for example)
- Precached the words after splitting them to ensure the server is smooth (can be refreshed by using /communications reload)
Improvements
- Added javadocs to everything
- Some performance improvements
Fixes
- Fix an issue with resolving mentions.
Features (1.0.2)
- Make EnhancedCommunications Folia Compatible.
Improvements
- Make mentions manager more readable.
- Put length in a variable.
Fixes
- Removed extra unnecessary debug
Improvements (API)
- Used a custom modifier priority (for MessageModifierManager) instead of reversing a comparator for bukkit's EventPriority