Пример #1
0
    public static void Take(TwitchModule module, string user, bool isWhisper)
    {
        if (isWhisper)
        {
            IRCConnection.SendMessage($"@{user}, taking modules is not allowed in whispers.");
        }
        else if (TwitchPlaySettings.data.AnarchyMode)
        {
            IRCConnection.SendMessage($"@{user}, taking modules is not allowed in anarchy mode.");
        }

        // Module is already claimed by the same user
        else if (module.PlayerName == user)
        {
            IRCConnection.SendMessageFormat(TwitchPlaySettings.data.ModuleAlreadyOwned, user, module.Code, module.HeaderText);
        }

        // Module is not claimed at all: just claim it
        else if (module.PlayerName == null)
        {
            IRCConnection.SendMessage(module.TryClaim(user).Message);
        }

        // Attempt to take over from another user
        else
        {
            module.AddToClaimQueue(user);
            if (module.TakeInProgress != null)
            {
                IRCConnection.SendMessageFormat(TwitchPlaySettings.data.TakeInProgress, user, module.Code, module.HeaderText);
            }
            else
            {
                IRCConnection.SendMessageFormat(TwitchPlaySettings.data.TakeModule, module.PlayerName, user, module.Code, module.HeaderText);
                module.TakeUser       = user;
                module.TakeInProgress = module.StartCoroutine(module.ProcessTakeover());
            }
        }
    }