Table of Contents

Namespace BSGameLib.Chat

Classes

BaseChatEngine<T>

The base for a chat engine. It runs the command a message starts with, when the message starts with the command character, and raises events for the outcome. A subclass implements Handle(T, string) and decides what to do with lines that are not commands.

ChatHistory

The lines a player has sent, for stepping back through with Up and forward with Down. What they had typed before stepping back is kept, and comes back when they step past the newest.

CommandCompleter

Completes a command typed into a chat line, as Minecraft's chat does: the commands, then a group's commands, then each parameter's values where the game knows them, and the parts still to type shown as a hint. Words are separated by spaces and matched ignoring case.

CommandDescription

A registered command as a game can show or complete it: what it is called and typed as, what it takes, and for a group, the commands under it. Read from the engine with DescribeCommands().

CommandEventArgs<T>

Event data for a message that named a command: its source, keyword and text.

CommandExecutedEventArgs<T>

Event data for a command that ran.

CommandSpec

A command as a client completes it: what is typed for it, what it takes, and for a group, the commands under it. Plain data, unlike CommandDescription, so a server can send its players the commands each of them may use.

CompletionResult

What can be typed at the end of a chat line, from CommandCompleter.

MissingParameterEventArgs<T>

Event data for a required parameter that a command was given no value for.

ParameterSpec

A command's parameter as a client completes it: plain data, sent from a server to its players.

WrongParameterEventArgs<T>

A command was given a value one of its parameters cannot take: a word where a number goes, or a number too large.

Interfaces

IChatEngine<T>

A chat engine for messages from sources of type T.

ICommand

A command: something a player can run by typing its keyword.

ICommandContext

The context a command runs with: what was typed and the values of its parameters.

ICommandContext<T>

A command context whose source is of type T.

ICommandFactoryProvider

Creates the command objects for an engine's commands.

ICommandFactory<TCommand>

Creates the command objects for one command type.

ICommandGroup

A command that holds sub-commands, run by the keywords the player types after its own.

ICommandHandler<T>

Handles a command of type T. Nothing in BSGameLib calls it.

ICommandParameter

A parameter of a command: its name, position and type.

ICommandParameterValue

A parameter of a command with the value the player gave, if any.

ICommandParameterValue<T>

A parameter value of type T.

ICommandParameter<T>

A parameter whose value is of type T.

ICommandProvider

Supplies the command types an engine registers from their attributes.

IMessageContext

A message: its source and when it was handled.

IMessageContext<T>

A message whose source is of type T.

IMessageSource

The source of a chat message, such as a player. It has no members: an engine's game type holds what its commands need.