在使用Discord.js创建临时通道时,如果用户角色为空,可以通过以下步骤来实现:
以下是一个使用Discord.js创建临时通道的示例代码,即使用户角色为空也能正常工作:
const Discord = require('discord.js');
const client = new Discord.Client();
client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}!`);
});
client.on('message', async message => {
if (message.content === '!create-temp-channel') {
const guild = message.guild;
const user = message.author;
// 检查用户是否有创建通道的权限
if (!guild.me.permissions.has('MANAGE_CHANNELS')) {
return message.reply('我没有权限创建通道。');
}
// 创建临时通道
const channelName = `temp-${user.username}-${Date.now()}`;
const category = guild.channels.cache.find(cat => cat.name === '临时通道'); // 假设有一个名为“临时通道”的分类
const tempChannel = await guild.channels.create(channelName, {
type: 'text',
parent: category ? category.id : null,
permissionOverwrites: [
{
id: user.id,
allow: ['VIEW_CHANNEL', 'SEND_MESSAGES'],
},
{
id: guild.id,
deny: ['VIEW_CHANNEL'],
},
],
});
message.reply(`临时通道已创建:${tempChannel.url}`);
// 设置定时器删除通道(例如,1小时后删除)
setTimeout(() => {
tempChannel.delete().then(() => {
console.log(`临时通道 ${tempChannel.name} 已删除。`);
}).catch(console.error);
}, 3600000); // 1小时 = 3600000毫秒
}
});
client.login('YOUR_BOT_TOKEN');
setTimeout
来设置通道在一定时间后自动删除。通过以上步骤和代码示例,可以在用户角色为空的情况下成功创建临时通道,并确保其在特定时间后自动删除。
领取专属 10元无门槛券
手把手带您无忧上云