如何在间隔后随机更改 Discord 机器人游戏 activity
How to change discord bots game activity randomly after a interval
我正试图让我的机器人经常更改其游戏状态。
这是我尝试过的:
使它成为一个命令这行得通但不能使用它,因为该命令总是 运行 因为循环使其他命令无法成为 运行.
[Command("randomplaying")]
[RequireUserPermission(GuildPermission.MentionEveryone)]
private async Task randomPlaying()
{
const int delay = 3000;
Random rand = new Random();
string[] serverActivity = File.ReadAllLines(Server.GameActivity.servergameactivitypath);
for (; ; )
{
int randomIndex = rand.Next(serverActivity.Length);
string gameActityText = serverActivity[randomIndex];
await Task.Delay(delay);
await Context.Client.SetGameAsync(gameActityText, "", ActivityType.Playing);
}
}
尝试在 Program.cs
内进行
private async Task randomPlaying()
{
const int delay = 3000;
Random rand = new Random();
string[] serverActivity = File.ReadAllLines(Commands.Server.GameActivity.servergameactivitypath);
for (; ; )
{
int randomIndex = rand.Next(serverActivity.Length);
string gameActityText = serverActivity[randomIndex];
await Task.Delay(delay);
await Context.Client.SetGameAsync(gameActityText, "", ActivityType.Playing);
}
}
并用
调用它
await randomPlaying();
这个方法什么都不做,甚至没有显示它的工作原理。
servergameactivitypath 代码是
public static string servergameactivitypath = AppDomain.CurrentDomain.BaseDirectory + "/config/gameactivity.txt";
public static void createGameActivityTXT()
{
File.WriteAllText(servergameactivitypath, "Hello There\nTest1\nTest2\nTest3");
}
}
使用:
private async Task randomPlaying()
{
const int delay = 3000;
Random rand = new Random();
string[] serverActivity = File.ReadAllLines(Commands.Server.GameActivity.servergameactivitypath);
for (; ; )
{
int randomIndex = rand.Next(serverActivity.Length);
string gameActityText = serverActivity[randomIndex];
await Task.Delay(delay);
await _client.SetGameAsync(gameActityText, "", ActivityType.Playing);
}
}
使用上面的 Task.Delay
在 MainAsync() 中调用
await randomPlaying()
我正试图让我的机器人经常更改其游戏状态。
这是我尝试过的: 使它成为一个命令这行得通但不能使用它,因为该命令总是 运行 因为循环使其他命令无法成为 运行.
[Command("randomplaying")]
[RequireUserPermission(GuildPermission.MentionEveryone)]
private async Task randomPlaying()
{
const int delay = 3000;
Random rand = new Random();
string[] serverActivity = File.ReadAllLines(Server.GameActivity.servergameactivitypath);
for (; ; )
{
int randomIndex = rand.Next(serverActivity.Length);
string gameActityText = serverActivity[randomIndex];
await Task.Delay(delay);
await Context.Client.SetGameAsync(gameActityText, "", ActivityType.Playing);
}
}
尝试在 Program.cs
内进行private async Task randomPlaying()
{
const int delay = 3000;
Random rand = new Random();
string[] serverActivity = File.ReadAllLines(Commands.Server.GameActivity.servergameactivitypath);
for (; ; )
{
int randomIndex = rand.Next(serverActivity.Length);
string gameActityText = serverActivity[randomIndex];
await Task.Delay(delay);
await Context.Client.SetGameAsync(gameActityText, "", ActivityType.Playing);
}
}
并用
调用它await randomPlaying();
这个方法什么都不做,甚至没有显示它的工作原理。
servergameactivitypath 代码是
public static string servergameactivitypath = AppDomain.CurrentDomain.BaseDirectory + "/config/gameactivity.txt";
public static void createGameActivityTXT()
{
File.WriteAllText(servergameactivitypath, "Hello There\nTest1\nTest2\nTest3");
}
}
使用:
private async Task randomPlaying()
{
const int delay = 3000;
Random rand = new Random();
string[] serverActivity = File.ReadAllLines(Commands.Server.GameActivity.servergameactivitypath);
for (; ; )
{
int randomIndex = rand.Next(serverActivity.Length);
string gameActityText = serverActivity[randomIndex];
await Task.Delay(delay);
await _client.SetGameAsync(gameActityText, "", ActivityType.Playing);
}
}
使用上面的 Task.Delay
在 MainAsync() 中调用await randomPlaying()