当 Discord-bot 在频道中找不到角色时执行操作

Do stuff when Discord-bot doesn't find character in a channel

首先,我是新手。

string neededCharacter = ">";

if (Dont.FindCharacterTwoTimesInARow.Equals(neededCharacter)) //If you don't find neededCharacter in sent messages two times in a row
{

   if (ChannelName.Equal("channel_name")) //look for the specific channel
   {

      //send message to the channel, stating that the character hasn't been found
      await Context.Channel.SendMessageAsync("'>' not found two times in a row");

   }

}

请注意 ChannelName.Equal("channel_text")Dont.FindCharacterTwoTimesInARow.Equals(neededCharacter) 显然不是真实的东西,它们只是 "show" 我想在那里做的事情。

如果有人能告诉我这样的事情是如何可能的,那就太好了。提前致谢。

因为您在这里使用 Context 对象。我假设您在 Discord.NET.

中使用 CommandModule

首先,您可以通过 Context.Channel 获取频道,它 returns 一个 IMessage​Channel 对象。

如果您希望您的机器人通过用户标记频道来查找频道。有 Context.Tags,其中 returns 标记对象列表(如 ITag)。只需遍历它并获取标记的通道对象。
(关于 ITag 对象的文档是 here。)

对于获取消息,如果您指的是过去的消息,IMessage​Channel 对象有 GetMessagesAsync 方法。
所以你可以做 var messages = Context.Channel.GetMessagesAsync(2);messages 将是一个包含最近发送消息的 2 个元素的列表。
(该方法的文档是 here。)

(注意:列表本身也会包含用户刚刚发送给机器人的消息。如果你想要之前的 2 条消息,你可以获得 3 条消息并忽略第一个元素。)

最后,只需循环遍历消息列表或其他内容,.NET 上有一个 String.StartWith() 方法可以让您的生活更轻松。
(它在 .NET 文档的 here 中)