如何解决我可以创建一个命令来创建一个频道,但我还需要添加什么来为其设置权限?
我正在通过各种方式慢慢学习 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)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。