Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        private string HandleCommand(string c, OnMessageReceivedArgs e)
        {
            bool sudo = Hub.IsSudo(e.ChatMessage.Username);

            if (!e.ChatMessage.IsSubscriber && Info.Hub.Config.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);
            }
        }