Feature: message styling IPC for per-message background, fade and hide#188
Open
Shuro wants to merge 1 commit into
Open
Feature: message styling IPC for per-message background, fade and hide#188Shuro wants to merge 1 commit into
Shuro wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements the styling IPC proposed in #186.
Two gates, following the typing IPC conventions:
ChatTwo.StyleVersion->int(1)ChatTwo.SetMessageStyleProvider(string gateName)- registers a provider gate owned by the calling plugin, empty string unregisters, one provider at a time.The provider is called once per incoming message on the message processing thread and returns
(uint BackgroundRgba, float Alpha). Style is stamped on theMessageat ingestion (not persisted - history from older sessions renders unstyled, no DB change). Provider errors fall back to unstyled.Rendering:
TableSetBgColor(RowBg0)(composes with the checkerboard PR Feature: checkerboard rows option for the modern layout #187 - explicit row colors take priority overRowBgalternation).finallyso a draw exception can't leave the list split.StyleIpcis constructed beforeIpcManagerso the gates already exist when theChatTwo.Availablebroadcast triggers consumer re-registration.ipc.md gained a "Message Styling IPC" section with the full contract (signature, threading, alpha semantics) and a consumer example.
Tested in game (with a test provider plugin)
Disclosure:
This was co-developed with AI assistance (Claude Code).
I've reviewed the code and tested it in game myself.
All in one Preview:
