csharp
public sealed class ChatPipelineThe filters a message goes through, in order.
Remarks
⚠ Ordered, and the order is a policy rather than an accident. The cheap structural checks come first because they reject most of what is rejected and cost nothing; a game-supplied word filter comes last because it is the expensive one and there is no point scanning a message that was too long anyway.
⚠ A rejection stops the pipeline. Running the rest to collect every reason would mean telling a rate-limited spammer which of their words are also on the list.
Fields and properties (3)
public int CountHow many filters it holds.
public IReadOnlyList<IChatFilter> FiltersThem, in the order they run.
public IChatFilter? LastRefusedByWhich filter refused the last message, or null.
Methods (2)
public ChatPipeline Add(IChatFilter filter)Adds a filter at the end.
public ChatVerdict Apply(ChatDraft draft, IChatContext context)Runs a message through.
Used by (3)
- ChatFilterTestsVixen.Gameplay.Chat.Tests
- ChatRouterVixen.Gameplay.Chat
- ChatRouterTestsVixen.Gameplay.Chat.Tests