RohBot.CommandTarget.Send C# (CSharp) Method

Send() public method

public Send ( string message ) : void
message string
return void
        public void Send(string message)
        {
            if (IsWeb)
                Connection.SendSysMessage(message);
            else if (IsRoom)
                Room.Send(message);
            else if (IsPrivateChat)
                PrivateChat.Send(message);
        }

Usage Example

Exemplo n.º 1
0
        public static bool Handle(CommandTarget target, string message, string commandHeader)
        {
            if (string.IsNullOrWhiteSpace(message) || !message.StartsWith(commandHeader))
                return false;

            try
            {
                var commandStr = message.Substring(commandHeader.Length);

                if (string.IsNullOrWhiteSpace(commandStr))
                    return false;

                var reader = new StringReader(commandStr);
                var type = (ReadWord(reader) ?? "").ToLower();
                Command command = null;
                string format = null;

                Func<string, bool> tryResolve = s =>
                {
                    if (!Commands.TryGetValue(s, out command))
                        return false;

                    format = command.Format(target, type);
                    if (format == null)
                        return false;

                    return true;
                };

                // TODO: is there a better way to do this?
                if (!target.IsRoom || !tryResolve(target.Room.CommandPrefix + type))
                    if (!target.IsRoom || !tryResolve(target.Room.CommandPrefix))
                        if (!tryResolve(type))
                            if (!tryResolve(""))
                                return true;

                var parameters = new List<string>();

                foreach (var p in format)
                {
                    var param = "";

                    switch (p)
                    {
                        case '-':
                            param = ReadWord(reader);
                            break;
                        case ']':
                            param = ReadRemaining(reader);
                            break;
                    }

                    if (param == null)
                        break;

                    parameters.Add(param);
                }

                command.Handle(target, type, parameters.ToArray());
                return true;
            }
            catch (Exception e)
            {
                if (target != null)
                    target.Send("Command failed.");

                Program.Logger.Error("Command failed: ", e);
                return true;
            }
        }
All Usage Examples Of RohBot.CommandTarget::Send