Alpha
Alpha: A mod for On-Together to provide common utilities and features.
CHANGELOG
Changelog
All notable changes to Alpha will be documented here. The format follows Keep a Changelog.
[0.0.1] - 2026-03-18
Added
-
AlphaPlugin— BepInEx plugin entry point providing shared static state for consuming mods:- Static
CommandManager(ChatCommandManager) for cross-mod slash command registration. RunOnMainThread(Action)for scheduling Unity main-thread work from background threads.- BepInEx config entries:
EnableFeature,ShowCommand,CleanChatSinkTags,GlobalMessageLimitCount,LocalMessageLimitCount,ChatLogLocalRange.
- Static
-
IChatCommand— Interface for implementing in-game slash commands withName,ShortName,Description,Namespace, andExecute(string[]). -
ChatCommandManager— Registers and dispatchesIChatCommandimplementations; auto-creates a/{namespace}help(and short-form/{ns[0]}h) command the first time any command for a new namespace is registered. -
ChatCommandArgs— Parses/command arg1 arg2 …chat input into a structuredName+Argsrecord withTryParse. -
NamespaceHelpCommand— Auto-generated help command per namespace; supports plain listing,verbose(with descriptions), and single-command lookup. -
ChatUtils:AddGlobalNotification— posts a notification to the in-game chat.SendMessageAsync— sends a chat message (capped at 250 characters).SendChunkedMessageAsync— splits long messages into ≤250-char chunks using a pluggable chunking strategy.CleanTMPTags— strips TextMeshPro formatting tags from strings.CleanCommand— hides processed slash commands from the chat input field.UISendMessage— programmatically injects and submits text via the UI input field.
-
IStringChunker— Interface for splitting text into bounded-length segments.WordBoundaryChunker— splits on whitespace, preserving whole words.HardCutChunker— hard-cuts at the character limit.
-
PlayerUtils:GetUserName/GetUserNameNoFormat— local player display name (raw and TMP-stripped).GetSteamPlayerIdString— cached Steam player ID string.GetPlayerId/GetPlayerIdForced— localPlayerIDaccessors.
-
TextChannelManagerPatch— Harmony patches onTextChannelManager:OnEnterPressedprefix — intercepts slash commands and routes them throughCommandManager.AddNotificationpostfix — strips TMP tags for notification sinks.SendMessageAsyncpostfix — strips TMP tags from outgoing messages whenCleanChatSinkTagsis enabled.OnChannelMessageReceivedpostfix — relays incoming messages to sinks, filtered by ban/mute list, self-filter, and local-range distance.