Как отметил Алекс в своем комментарии,
Ваша команда входит в бесконечный цикл.
if (milliseconds >= 500) {
enabled = true;
while (enabled)
{
//Code
await Task.Delay(milliseconds);
}
}
Это помещает вашу команду в бесконечный цикл, который предотвращает запуск других команд. Причина, по которой это предотвращает запуск других команд в среде Async, заключается в том, что Async по-прежнему является просто одним потоком, а Discord.net по умолчанию вызывает вашу команду: await Command();
Когда ожидается асинхронный вызов, он блокирует вызов до завершения Задачи. Ваша задача никогда не будет выполнена из-за бесконечного цикла.
Есть несколько разных способов справиться с этим, но я бы посоветовал справиться с этим - запланировать перекрашивание. Посмотрите, как планировать выполнение задач на каждом временном интервале.
Как пример
public class TimerTask
{
private readonly Timer _taskTimer;
public TimerTask(Action action, int interval = 10000)
{
_taskTimer = new Timer { AutoReset = true, Interval = interval };
_taskTimer.Elapsed += (_, __) => action();
}
public void Start() { _taskTimer.Start(); }
public void Stop() { _taskTimer.Stop(); }
}