Discord.NET 不响应特定命令 (C#)

Discord.NET Not Responding to Certain Command (C#)

我正在尝试使用 discord.net 创建一个 discord 机器人,它从商店中获取所有变体 ID 并发送格式如下的 discord 消息:

var1
var2
var3
etc

经过测试,我找到了一种抓取和反序列化数据的方法,但是由于 discord 的限制,我不得不使用 RunMode Async 以防止它们关闭连接。使用它并尝试执行命令时,机器人 returns 没有响应。这是我的命令代码:

using System;
using System.Reflection;
using System.Threading.Tasks;
using Discord;
using Discord.Commands;
using Discord.WebSocket;
using Microsoft.Extensions.DependencyInjection;
using Newtonsoft.Json;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using QuickType;

namespace ShopifyATC.modules
{
    public class VariantScraper: ModuleBase<SocketCommandContext>
    {
        
        [Command("variant", RunMode = RunMode.Async)]
        public async Task Variant(string varUrl)
        {

            var shopifyId = await GrabShopifyVar(varUrl);
            var bip = "";
            

            
            while (shopifyId.Product != null)
                foreach (var variant in shopifyId.Product.Variants)
                {
                    bip += $"{variant}\n";
                }
            
            
            static async Task<Temperatures> GrabShopifyVar(string varUrl)
            {
                var httpClient = new HttpClient();

                var variantGrabRequest = new HttpRequestMessage
                {
                    RequestUri = new Uri(varUrl += ".json"),
                    Method = HttpMethod.Get
                };
                variantGrabRequest.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36");

                var variantGrabResponse = await httpClient.SendAsync(variantGrabRequest);

                var variantGrabContent = 
                    await variantGrabResponse.Content.ReadAsStringAsync();

                var variantGrabResponseData =
                    JsonConvert.DeserializeObject<Temperatures>(variantGrabContent);
                return variantGrabResponseData;
            }

            await Context.Channel.SendMessageAsync(bip);
            Console.WriteLine("n");
        }
    }


}

知道如何解决这个问题或为什么会这样吗?如果我不使用 RunMode Async discord 将关闭连接并且 returns 以下内容:“MessageReceived 处理程序正在阻止网关任务。”

谢谢,

while 循环永远不会停止,因此您的操作永远不会完成。这就是命令方块的原因。