#c# #discord #bots #discord.net
#c# #Discord #боты #discord.net
Вопрос:
Я кодирую бот на c # и пытаюсь выполнить команду !user @, которая предоставляет информацию о помеченном пользователе.
Вот как я получаю идентификатор пользователя
public async Task Info(string user)
Вот как я превращаю его просто в числа
user = user.Substring(3);
int k = user.Length;
user = user.Substring(0, k - 1);
Например: !user <@!749020331187896410> преобразуется в 749020331187896410
И это то, что я делаю, чтобы получить пользователя, как я бы сделал для Context.Message.Автор
var client = Context.Client;
ulong id = Convert.ToUInt64(user);
var socketUser = client.GetUser(id);
Я попытался добавить as SocketUser и as SocketGuildUser в последней строке, но все равно возвращает null
Справка :/
Комментарии:
1.
Server Members Intent
Включен ли он в вашем боте?2. Да, это сделало это, спасибо
3. Я публикую это как ответ, чтобы его можно было принять.
Ответ №1:
Вы должны включить намерение участников сервера в консоли разработчика Discord:
Ответ №2:
Это должно сработать
[Command("user")]
public async Task blizz_con(IGuildUser user)
{
await ReplyAsync(user.Id.ToString());
}
или, если вы непосредственно работаете с сообщением:
message.Author.id