public static void Mine(TwitchModule module, string user, bool isWhisper) { if (isWhisper) { IRCConnection.SendMessage($"@{user}, using mine on modules is not allowed in whispers.", user, false); return; } // The module belongs to this user and there’s a takeover attempt in progress: cancel the takeover attempt if (module.PlayerName == user && module.TakeInProgress != null) { IRCConnection.SendMessageFormat(TwitchPlaySettings.data.ModuleIsMine, module.PlayerName, module.Code, module.HeaderText); module.StopCoroutine(module.TakeInProgress); module.TakeInProgress = null; module.TakeUser = null; } // The module isn’t claimed: just claim it else if (module.PlayerName == null) { IRCConnection.SendMessage(module.TryClaim(user).Message); } // Someone else has a claim on the module else if (module.PlayerName != user) { IRCConnection.SendMessageFormat(TwitchPlaySettings.data.AlreadyClaimed, module.Code, module.PlayerName, user, module.HeaderText); } // If the user has a claim on the module but there’s no takeover attempt, just ignore this command }
private static void ClaimViewOrPin(TwitchModule module, string user, bool isWhisper, bool view, bool pin) { if (isWhisper) { IRCConnection.SendMessage($"@{user}, claiming modules is not allowed in whispers.", user, false); return; } IRCConnection.SendMessage(module.TryClaim(user, view, pin).Message); }
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()); } } }