【问题标题】:Discord.NET How do I grant an user a role?Discord.NET 如何授予用户角色?
【发布时间】:2017-05-31 21:07:24
【问题描述】:

因此,我一直在编写我的 discord 机器人,并希望添加一个功能,以赋予用户特定角色,就像您是游戏中的玩家一样,您输入“作弊码”,它就会授予您作弊者角色。我怎样才能做到这一点?感谢您的帮助。

【问题讨论】:

  • 这不是代码工厂,因为您可以尝试Hack hands ...在这里,我们帮助...显示您尝试过的内容,我们将尝试帮助形成那里...

标签: c# role discord.net


【解决方案1】:

对于将来发现这一点的任何人,这是我赋予用户角色的方式:

var user = Context.User;
var role = Context.Guild.Roles.FirstOrDefault(x => x.Name == "RoleName");
await (user as IGuildUser).AddRoleAsync(role);

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    请学习这里的图书馆...:https://github.com/RogueException/Discord.Net

    回到问题, 您可以在 async 运算符命令中执行此操作 await e.User.AddRoles(x);。 x 将是角色变量。

    【讨论】:

    • 你是怎么得到x的?
    【解决方案3】:

    这应该可以解决问题 这是一个命令,它赋予用户一个不能在任何频道中交谈的角色,只有一个名为 jail 的频道

    using System;
    using System.Collections.Generic;
    using System.Text;
    using Discord;
    using Discord.Commands;
    using Discord.WebSocket;
    using Discord.Net;
    using System.Linq;
    using System.Threading.Tasks;
    
    namespace ConsoleApp1.commands
    {
    public class jail : ModuleBase<SocketCommandContext>
    {
    [Command("jail")]
    public async Task jail2 (IGuildUser user)
    {
    
    var role = Context.Guild.Roles.FirstOrDefault(x => x.Name.ToString() == "ROLE_NAME");     
    
    
    await (user as IGuildUser).AddRoleAsync(role);
    
    
    }
    
    }
    }
    

    【讨论】:

    • 请编辑您的答案以包括您对代码功能的描述,不要只是添加评论。
    • 我建议使用角色 ID 而不是名称,因为名称可能会更改并破坏您的代码,而 ID 是永久的。要获取角色 ID,请右键单击 discord 中的角色,然后选择“复制 ID”。确保开发者模式已激活。
    猜你喜欢
    • 2019-05-21
    • 1970-01-01
    • 2019-09-22
    • 1970-01-01
    • 2021-08-04
    • 2020-04-27
    • 1970-01-01
    • 2019-04-13
    • 2021-03-16
    相关资源
    最近更新 更多