コード例 #1
0
    protected override void OnMessageReceived(string userNickName, string userColorCode, string text, bool isWhisper)
    {
        if (_bombBinderCommander == null)
        {
            return;
        }

        if (!text.StartsWith("!") || text.Equals("!"))
        {
            return;
        }
        text = text.Substring(1).Trim();

        string[] split     = text.ToLowerInvariant().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
        string   textAfter = split.Skip(1).Join();

        switch (split[0])
        {
        case "binder":
            if ((TwitchPlaySettings.data.EnableMissionBinder && TwitchPlaySettings.data.EnableTwitchPlaysMode) || UserAccess.HasAccess(userNickName, AccessLevel.Admin, true) || TwitchPlaySettings.data.AnarchyMode)
            {
                _coroutineQueue.AddToQueue(_bombBinderCommander.RespondToCommand(userNickName, textAfter, null, isWhisper));
            }
            else
            {
                IRCConnection.Instance.SendMessage(TwitchPlaySettings.data.MissionBinderDisabled, userNickName);
            }
            break;

        case "freeplay":
            if ((TwitchPlaySettings.data.EnableFreeplayBriefcase && TwitchPlaySettings.data.EnableTwitchPlaysMode) || UserAccess.HasAccess(userNickName, AccessLevel.Admin, true) || TwitchPlaySettings.data.AnarchyMode)
            {
                _coroutineQueue.AddToQueue(_freeplayCommander.RespondToCommand(userNickName, textAfter, null, isWhisper));
            }
            else
            {
                IRCConnection.Instance.SendMessage(TwitchPlaySettings.data.FreePlayDisabled, userNickName);
            }
            break;

        default:
            _coroutineQueue.AddToQueue(TPElevatorSwitch.Instance.ProcessElevatorCommand(split));
            break;
        }
    }
コード例 #2
0
    protected override void OnMessageReceived(string userNickName, string userColorCode, string text)
    {
        if (_bombBinderCommander == null)
        {
            return;
        }

        Match binderMatch = Regex.Match(text, "^!binder (.+)", RegexOptions.IgnoreCase);

        if (binderMatch.Success)
        {
            _coroutineQueue.AddToQueue(_bombBinderCommander.RespondToCommand(userNickName, binderMatch.Groups[1].Value, null));
        }

        Match freeplayMatch = Regex.Match(text, "^!freeplay (.+)", RegexOptions.IgnoreCase);

        if (freeplayMatch.Success)
        {
            _coroutineQueue.AddToQueue(_freeplayCommander.RespondToCommand(userNickName, freeplayMatch.Groups[1].Value, null));
        }
    }