微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我可以创建一个命令来创建一个频道,但我还需要添加什么来为其设置权限?

如何解决我可以创建一个命令来创建一个频道,但我还需要添加什么来为其设置权限?

我正在通过各种方式慢慢学习 C#,我目前的项目是一个使用 discord.net 的 discord bot 我想打一个commad创建谁使用命令来倾诉的管理团队“私人”通道。到目前为止,我有一个可以创建通道并为其命名的命令,但我是 C# 新手,我不确定如何处理权限覆盖。

如果可能的话,最好提供一个可能需要添加的示例以及对其工作原理的描述。 这是我目前拥有的命令的代码

        [Command("create-ticket")]
        [RequireUserPermission(GuildPermission.ManageChannels)]
        public async Task CreateChannel()
        {
            var ctx = Context;
            await ctx.Guild.CreateTextChannelAsync($"Support-#{TicketNo}");
            await ReplyAsync($"Support-#{TicketNo} channel has been created.");
            Console.WriteLine(Now.ToString("F") + " " + ctx.User.Mention + " created a support ticket.");
            TicketNo = TicketNo ++;
            
        }

解决方法

您可以在 CreateTextChannelAsync 中使用名称后的“func”参数来指定频道属性。例如:

List<Overwrite> permissions = new List<Overwrite>
{
    new Overwrite(guild.EveryoneRole.Id,PermissionTarget.Role,new OverwritePermissions(viewChannel: PermValue.Deny)),new Overwrite(yourRoleId,new OverwritePermissions(viewChannel: PermValue.Allow))
};
await guild.CreateTextChannelAsync("Name",x => x.PermissionOverwrites = permissions);

还可以在此处指定其他属性,例如频道主题和类别。

如果您需要更改这些属性,您可以以同样的方式使用 channel.ModifyAsync(func)。

Docs

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。