Comment puis-je mentionner les rôles de guilde en C # avec la bibliothèque Discord.net?
3 Réponses :
J'ai trouvé un moyen de faire ceci:
MentionUtils.MentionRole(id)
Ou utilisez la propriété .Mention
sur l'objet Role
Il est également possible d'utiliser la mention brute d'un rôle, c'est-à-dire le contenu de la propriété .Mention
dans un objet de rôle.
Le format est le suivant: p >
Cela diffère de la mention d'un utilisateur individuel par le caractère &
, qui spécifie qu'il mentionne le rôle, pas un user.
Vous pouvez obtenir l'ID de rôle à partir de la propriété .ID
, ou en cliquant avec le bouton droit sur le rôle dans la liste des rôles, si vous souhaitez le coder en dur.
Exemple de commande de mention d'un rôle par son nom:
[Command("mention")] public async Task MentionRole(string name) { SocketRole role = Context.Guild.Roles.First(x => x.Name == name); //Get the first role that matches the name provided await ReplyAsync($"<@&{role.Id}>"); //Format the string that mentions the role (ex. <@&739515238742753371>) await ReplyAsync(role.Mention); //Optionally, you can use the integrated property that returns the exact same string as we formatted above //The mention is instantly sent as a reply to the command }
Vous pouvez également avec iRole
[Command("roleinfo")] public async Task mentionRoleAsync(IRole role) { var embed = new EmbedBuilder(); embed.WithDescription("Role ID : " + role.Id + Environment.NewLine + "Role Name : " + role.Name + Environment.NewLine + "Role Mention : " + role.Mention + Environment.NewLine + "Role Mention : " + role.Mention + Environment.NewLine + "Role Color : " + role.Color.ToString() + Environment.NewLine + "Role Created at : " + role.CreatedAt); await Context.Channel.SendMessageAsync("", false, embed); }
Bienvenue dans SO, pensez à ajouter un peu plus de contenu à votre question. Dans sa forme actuelle, ce n'est pas très clair ni utile pour les autres.