void IChatMessageReceiver.ReceiveChatMessage(Client.Client sender, string message, ChatMode mode) { if (message.StartsWith("/")) { ChatCommandReceived?.Invoke(this, new ChatCommandReceivedEventArgs(sender, message, mode)); return; } ChatMessageReceived?.Invoke(this, new ChatMessageEventArgs(sender, message, mode)); if (mode == ChatMode.All) { SendMessageToAll($"{sender.ControlledNpc.CustomName ?? throw new NullReferenceException("Character custom name must not be null")}: {message}"); } }
private bool HandleCommand(SocketMessage message) { if (!message.Content.StartsWith(CommandPrefix)) { return(false); } var command = message.Content.Substring(1); var commandParts = command.Split((char[])null, StringSplitOptions.RemoveEmptyEntries); ChatCommandReceived?.Invoke(this, new ChatCommandEventArgs { ChatMessage = message, CommandText = command, CommandName = commandParts[0], CommandArguments = commandParts.Skip(1) }); return(true); }