Click here to go back to read me
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
- Exiled config loading error caused by Instance property.
- A bug that could cause
PlayerDisplayto send hint after it was destructed. - A bug that caused
HintCollectionnot to remove key from the collection when its correspondingList<Hint>was empty. - A bug that caused
AbstractHintnot to unbindAbstractHint::OnContentUpdatefromAbstractHint::content::ContentUpdated. - A bug that caused unnecessary delay in hint update.
- A bug that caused
AutoContentto keep calling the function whenAutoContent::autoTextkept throwing exceptions. - A bug that could potentially cause
NullReferenceExceptioninPlayerDisplay::Destruct(). - Bugs that could cause thread issues in
TaskScheduler. - A bug in
AbstractHint,Hint, andDynamicHintthat caused deadlock when multiple instances in the samePlayerDisplaywere updated at the same time. - A bug that caused some methods in common hint to use wrong default display time.
- Set
CompatibilityAdaptorto disabled by default to ensure safety. - Moved dependencies to the GitHub repo.
- Improved code style based on code style restrictions.
- Improved performance of
PlayerDisplay::ScheduleUpdate(float, AbstractHint?). - Replaced
Hints.HintEffectPresets.TrailingPulseAlpha(1, 1, 1)withHints.AlphaEffect(1)to improve performance. - Rewrote
DefaultDisplayOutputandPatchesto ensure compatibility with the new version. - Made minor adjustments in
PlayerDisplayto prevent critical stability issues. - Improved tests naming and code style in
HintServiceMeow.Test. - Replaced
MECwithICoroutineinPlayerDisplayandCompatibilityAdaptorto remove the Unity dependency. - Made
RichTextParserPoolto clear status before returning aRichTextParser. - Made
HintParserindependent of Mirror. - Improved
HintParser's performance. Achieved up to 32% faster execution and reducing memory allocation by up to 76%. - Improved
HintServiceExamplefor a more detailed and comprehensive demonstration. - Improved performance of
HintExtensionandPlayerDisplayExtension.
PlayerDisplay::AddHint(params AbstractHint[]),RemoveHint(params AbstractHint[]),SetMinUpdateInterval(TimeSpan),AddHint(AbstractHint?, string),RemoveHint(AbstractHint?, string),ShowHint(AbstractHint, float, AfterShowAction), andShowHint(IEnumerable<AbstractHint>, float, AfterShowAction).- Mandatory code style restrictions when using Release mode. (Thanks to @Someone)
- Bug report template, feature request template, and Code of Conduct file.
- Cache in
HintCollection::AllGroupsandHintCollection::AllHints. - Debug log to
PlayerDisplay. - Unit tests to
PlayerDisplay,Cache,PeriodicRunner,UpdateAnalyzer,DynamicHint,HintCollection,Hint,CompatibilityAdaptor,HintParser,RichTextParser,ConcurrentTaskDispatcher,CoordinateTools,AutoContent,StringContent,Patcher(not activated yet),Patches(not activated yet),RichTextParserTool, andStringBuilderPool. Tests related to Harmony patches are not activated since Harmony cannot run in a test environment. HintServiceMeow.Benchmarkto measure the performance ofHintServiceMeow.
- Bug causing
PlayerDisplay::CoroutineMethodnot working correctly
- Bug causing
CoordinateTool::GetTextWidthto throw an exception when handling empty strings
- Bug causing the Compatibility Adapter (CA) not to clear hints correctly
- Centralized multi-thread actions to improve performance
- YamlDotNet dependency for better compatibility
- Breaking:
AutoTextparameter updated
- Part of code mistakenly using PluginAPI instead of LabAPI
- Support for LabAPI
- Support for NWAPI
- Hint update frequency limitation
- Various bugs
AutoTextcontinuing to call afterPlayerDisplayis destructed
- Various bugs
- Bug causing
RemoveAfterinPlayerDisplaynot working correctly - Minor adjustments to prevent bugs
- Overflow detection (not working correctly — please break lines manually as needed)
- Bug in
PlayerDisplaycausing removal by ID not working correctly - Namespace error in
HintContent— note: this may break plugins usingHintContents
- Standardized code style
- Re-implemented API for plugin frameworks
- Minor performance adjustments
- Bug causing hints to become stuck on screen
- Support for
\n(plain text) as a line break
- Issue in
RichTextParsercausing<br>line break tag not working correctly
- Replaced
MultiThreadToolwithMainThreadDispatcher
- Issue in
StringBuilderPoolthat could cause memory leaks
- Error handling in
PlayerDisplay.StartParserTask - Support for
<br>tag in text
- Delay time property in
TextUpdateArg
- Improved code quality
- Thread safety issue in
PlayerDisplay - Various issues
- More customizable properties in
PlayerDisplay
- Improved stability of Compatibility Adapter
- Improved performance
- Minor code quality improvements
- Bug that could cause update rate to be higher than expected
- Various bugs in extensions
- Thread safety issues in Hint Collection
- Bug causing crash on Linux systems
- Bug in
CompatibilityAdapterappearing when negativeDurationis passed - Thread safety issue in
TaskScheduler - Issue in
FontTool
- Improved code quality
- Issue in
Timing.CallDelayed
- Bug causing
CompatibilityAdapternot working correctly - Bug causing update management not working correctly
RemoveAfterandHideAfterproperties toPlayerDisplayandAbstractHint
- Rewrote update management code in
PlayerDisplay
- String builder pool to improve performance
- Use .NET 4.8 (instead of 4.8.1) as default version
- Improved NW API compatibility
- Minor naming updates
- Problem causing
ReceiveHintpatch to crash
- Line height not being included when calculating text height
FontToolsnot calculating character length correctlyRichTextParsernot handling line breaks correctly
- Bug causing line height not to be usable
- Minor updates and bug fixes
- Support for
casestyle andscriptstyle tags marginproperties in Dynamic Hint
- Bug causing rich text parser to handle alignment incorrectly
- Bug causing rich text parser to break lines incorrectly
- Support for
sizetag in hints
- Improved behavior of the Compatibility Adapter
- Bug causing server crash when getting the player display
- Bug causing Dynamic Hint to be displayed incorrectly
- Null reference problem in
PlayerDisplay - Bug causing empty lines to be handled incorrectly
- Bug causing Compatibility Adapter hints to flicker
- Bug causing multi-line hints not displayed correctly
- Improved
HintParserbehavior - Improved thread safety
- Support for
emunit inline-heightfor Compatibility Adapter
- Bug causing
Stylecomponent color not working - Bug causing
postag in Compatibility Adapter not working
- Multi-thread support for core functions
postag support in Compatibility AdapterStylecomponent in PlayerUI
- Compatibility Adapter cache potentially causing high memory usage
- Support for
color,b,itags in Compatibility Adapter - More methods to
PlayerDisplay
- Compatibility Adapter accuracy improved; font size issue resolved
- Performance improvements
- Improved code quality
- Various bugs
- Bug causing config not being applied for Compatibility Adapter
- Compatibility Adapter
- Performance improvements
LineHeightproperty for all hints
- Adjusted sync speed to improve display performance
- Bug causing text length to be calculated incorrectly
- Support for
\nin text
- Improved
DynamicHintperformance
- Various bugs
- Improved experience in font installation
- Bug in Dynamic Hint arranging
- Sync speed, auto text, and several new hint properties
- NW API support
- Rewrote core code
- Standardized code style
- Separated PlayerUI and CommonHint
- Hint config template
- Bug causing font file to be placed in the TEMP folder
- Bug preventing NW API from loading the plugin correctly
- Config class for hints
- Refresh event in
PlayerDisplay - Hint priority
- Customizable common hints
- Improved code quality
- Separated
PlayerUITemplatefromPlayerUIConfiginto a new plugin:CustomizableUIMeow
- Organized config
- Made
PlayerUIConfigmore customizable
- Used patch to block all hints from other plugins
- Various bugs
PlayerUIConfigconfig
- Bug causing
PlayerDisplayto crash when no hint is displayed on screen
- Various bugs
ReferenceHub UIseparated fromPlayerDisplayand extended with more methods
- Use events to update
ReferenceHubdisplay, increasing stability and decreasing costs
- Various bugs
- Common Hints
- Dynamic Hint support
- Maximum update rate limit (0.5/second)
- Various bugs
- Updated display based on hint content updates
- Initial release