Поэтому я слушаю событие, когда кто-либо на сервере отправляет сообщение на любой текстовый канал с моим ботом.Я хочу обнаружить ненормативную лексику типа «ебать» и изменить его на «f * ck».Я не смог заменить свое сообщение обычным образом только отражением, но это не помогло, поскольку он заменил его только в экземпляре SocketMessage, но не изменило сообщение на сервере.
Есть ли какое-нибудь решение для этого?
Framework: 4.6 Discord.NET: 1.0.2
Код:
private async Task MsgRec(SocketMessage e)
{
try
{
if (e.Content.Contains("fuck"))
{
foreach(PropertyInfo info in typeof(SocketMessage).GetProperties())
{
if (info.Name == "Content")
{
info.SetValue(e,e.Content.Replace("fuck", "f*ck"));
}
}
}
}
catch (Exception ex)
{
await e.Author.SendMessageAsync(ex.StackTrace);
}
}
Обновление Я также пробовал это безлюбой успех:
var rMessage = (RestUserMessage) await e.Channel.GetMessageAsync(e.Id);
await rMessage.ModifyAsync(msg => msg.Content = e.Content.Replace("fuck", "f*ck"));