我正在尝试使用Restcord在Discord上创建私有渠道,Restcord是一个非常紧密地映射到Discord API的PHP库。
当前,我已经设法创建了语音通道,但是服务器上的所有用户都可以查看并加入该通道。如何制作频道,以便仅在受邀请时才可用?
我当前的测试代码是:
$discord = new \RestCord\DiscordClient(['token' => config('services.discord.bot_token')]);
$channel = $discord->guild->createGuildChannel([
'guild.id' => config('services.discord.guild_id'),
'name' => 'lobby_' . uniqid(),
'type' => 2, // Voice
'permission_overwrites' => [
],
]);
$invitation = $discord->channel->createChannelInvite([
'channel.id' => $channel->id,
]);
return "https://discordapp.com/invite/{$invitation->code}";
在此先感谢您使用Restcord或直接使用API所提供的任何帮助。
答案 0 :(得分:0)
您需要使用permission_overwrites
字段。此字段接受overwrite object类型的数组。
示例:
$discord = new \RestCord\DiscordClient(['token' => <token>]);
$channel = $discord->guild->createGuildChannel([
'guild.id' => config(<your guild ID>),
'name' => '<channel name>',
'type' => 2, // Voice
'permission_overwrites' => [
'id' => <role OR user id>,
'type' => 'role' (if id is role) OR 'user' (if id is single user),
'allow' => <permission ID for allowed permissions>,
'deny' => <permissions ID for denied permissions>
]
]);
请注意,如果将“ allow”和“ deny”保留为0(默认值),则ID为“ id”的角色/用户将具有与在服务器范围内定义的相同的权限。要获取某组权限的权限ID,请使用this one之类的Discord权限计算器(此处的ID称为权限编号)。
希望有帮助!