private void OnPrivateMessage(PrivateMessageEvent e) { if (!this.ListeningBehavior.HasFlag(ListeningBehavior.PrivateMessage)) { return; } if (e.Message.Length == 0 || !e.Incoming) { return; } if (this.CommandPrefixes.Contains(e.Message[0])) { var player = e.Player; if (player == null) { return; } var cmd = new ParsedRequest(e.Message.Substring(1)); var source = new PlayerInvokeSource(player, PlayerInvokeOrigin.PrivateMessage, msg => Chat.Of(this.BotBits).PrivateMessage(player, msg)); new CommandEvent(source, cmd) .RaiseIn(this.BotBits); } }
private void OnChat(ChatEvent e) { if (!this.ListeningBehavior.HasFlag(ListeningBehavior.Chat)) { return; } if (e.Player == Players.Of(this.BotBits).OwnPlayer) { return; } if (e.Text.Length == 0) { return; } if (this.CommandPrefixes.Contains(e.Text[0])) { var request = new ParsedRequest(e.Text.Substring(1)); var source = new PlayerInvokeSource(e.Player, PlayerInvokeOrigin.Chat, msg => Chat.Of(this.BotBits).Say(msg)); new CommandEvent(source, request) .RaiseIn(this.BotBits); } }
public void ReadNextConsoleCommand() { var text = Console.ReadLine(); if (text == null) { return; } var request = new ParsedRequest(text); var source = new ConsoleInvokeSource(Console.WriteLine); new CommandEvent(source, request) .RaiseIn(this.BotBits); }
void HiCommand(IInvokeSource source, ParsedRequest request) { source.Reply("Hello"); }