private string HandleCommand(TwitchLibMessage m, string c, string args, bool whisper) { bool sudo() => m is ChatMessage ch && (ch.IsBroadcaster || Settings.IsSudo(m.Username)); bool disallowed() => Settings.SubOnlyBot && !((m is ChatMessage ch && IsSubscriber(ch)) || sudo()); switch (c) { // User Usable Commands case "trade" when !disallowed(): var _ = TwitchCommandsHelper.AddToWaitingList(args, m.DisplayName, m.Username, out string msg); return(msg); case "ts" when !disallowed(): return($"@{m.Username}: {Info.GetPositionString(ulong.Parse(m.UserId))}"); case "tc" when !disallowed(): return($"@{m.Username}: {TwitchCommandsHelper.ClearTrade(ulong.Parse(m.UserId))}"); case "code" when whisper && !disallowed(): return(TwitchCommandsHelper.GetCode(ulong.Parse(m.UserId))); // Sudo Only Commands case "tca" when !sudo(): case "pr" when !sudo(): case "pc" when !sudo(): case "tt" when !sudo(): case "tcu" when !sudo(): return("This command is locked for sudo users only!"); case "tca": Info.ClearAllQueues(); return("Cleared all queues!"); case "pr": return(Info.Hub.Ledy.Pool.Reload() ? $"Reloaded from folder. Pool count: {Info.Hub.Ledy.Pool.Count}" : "Failed to reload from folder."); case "pc": return($"The pool count is: {Info.Hub.Ledy.Pool.Count}"); case "tt": return(Info.Hub.Queues.Info.ToggleQueue() ? "Users are now able to join the trade queue." : "Changed queue settings: **Users CANNOT join the queue until it is turned back on.**"); case "tcu": return(TwitchCommandsHelper.ClearTrade(args)); default: return(null); } }
private string HandleCommand(string c, OnMessageReceivedArgs e) { bool sudo = Settings.IsSudo(e.ChatMessage.Username); if (!e.ChatMessage.IsSubscriber && Settings.SubOnlyBot && !sudo) { return(null); } if (c == "trade") { var chat = e.ChatMessage; var _ = TwitchCommandsHelper.AddToWaitingList(chat.Message.Substring(6).Trim(), chat.DisplayName, chat.Username, out string msg); return(msg); } switch (c) { case "tradestatus": return(Info.GetPositionString(ulong.Parse(e.ChatMessage.UserId))); case "tradeclear": return(TwitchCommandsHelper.ClearTrade(sudo, ulong.Parse(e.ChatMessage.UserId))); case "tradeclearall" when !sudo: return("This command is locked for sudo users only!"); case "tradeclearall": Info.ClearAllQueues(); return("Cleared all queues!"); case "poolreload" when !sudo: return("This command is locked for sudo users only!"); case "poolreload": return(Info.Hub.Ledy.Pool.Reload() ? $"Reloaded from folder. Pool count: {Info.Hub.Ledy.Pool.Count}" : "Failed to reload from folder."); case "poolcount" when !sudo: return("This command is locked for sudo users only!"); case "poolcount": return($"The pool count is: {Info.Hub.Ledy.Pool.Count}"); default: return(null); } }