Exemplo n.º 1
0
        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);
        }