当 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 一个 IMessageChannel
对象。
如果您希望您的机器人通过用户标记频道来查找频道。有 Context.Tags
,其中 returns 标记对象列表(如 ITag
)。只需遍历它并获取标记的通道对象。
(关于 ITag
对象的文档是 here。)
对于获取消息,如果您指的是过去的消息,IMessageChannel
对象有 GetMessagesAsync
方法。
所以你可以做 var messages = Context.Channel.GetMessagesAsync(2);
,messages
将是一个包含最近发送消息的 2 个元素的列表。
(该方法的文档是 here。)
(注意:列表本身也会包含用户刚刚发送给机器人的消息。如果你想要之前的 2 条消息,你可以获得 3 条消息并忽略第一个元素。)
最后,只需循环遍历消息列表或其他内容,.NET 上有一个 String.StartWith()
方法可以让您的生活更轻松。
(它在 .NET 文档的 here 中)
首先,我是新手。
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.
首先,您可以通过 Context.Channel
获取频道,它 returns 一个 IMessageChannel
对象。
如果您希望您的机器人通过用户标记频道来查找频道。有 Context.Tags
,其中 returns 标记对象列表(如 ITag
)。只需遍历它并获取标记的通道对象。
(关于 ITag
对象的文档是 here。)
对于获取消息,如果您指的是过去的消息,IMessageChannel
对象有 GetMessagesAsync
方法。
所以你可以做 var messages = Context.Channel.GetMessagesAsync(2);
,messages
将是一个包含最近发送消息的 2 个元素的列表。
(该方法的文档是 here。)
(注意:列表本身也会包含用户刚刚发送给机器人的消息。如果你想要之前的 2 条消息,你可以获得 3 条消息并忽略第一个元素。)
最后,只需循环遍历消息列表或其他内容,.NET 上有一个 String.StartWith()
方法可以让您的生活更轻松。
(它在 .NET 文档的 here 中)