Что ж, я хочу, чтобы каждый раз, когда владелец выполняет эту команду test! Update, он сначала проверяет, имеет ли канал с именем test вид только для @everyone, прежде чем он пойдет дальше ... как я могу этого добиться?
вот как я создаю канал прямо сейчас,
init: (msg) => {
if (!msg.member.hasPermission('ADMINISTRATOR')) {
return sendEmbed(msg, 'You need to have the administrator permission to do this.')
}
//checks if channel excist some=exist
if (msg.guild.channels.some(r => r.name === "test")) {
//sendEmbed(msg, 'you already have a channel called test.')
} else {
msg.guild.createChannel('test', {
type: 'channel',
permissionOverwrites: [
{
id: msg.guild.defaultRole.id, // @everyone role
allow: ['READ_MESSAGES']
}
]
});
sendEmbed(msg, '#test created.')
}
const channel = client.guilds.get(msg.guild.id).channels.find(r => r.name === "test");
if (channel) {
sql.run('UPDATE settings SET partner = ? WHERE guildid = ?', [channel.id, msg.guild.id])
sendEmbed(msg, 'Success!')
} else {
sendEmbed(msg, 'please re-run this command to finalize')
}
},
А вот и тест! Update
update: (msg) => {
i really dont know what to put here to check first the channel permissions before executing..
},
РЕШЕНИЕ Спасибо MakeHellTal, у меня это сработало:
const channel = client.guilds.get(msg.guild.id).channels.find(r => r.name === "test");
let everyone = msg.guild.roles.find(r => r.name === '@everyone');
let perms = channel.permissionsFor(everyone).serialize();
if (perms.VIEW_CHANNEL && perms.READ_MESSAGE_HISTORY && !perms.SEND_MESSAGES) {
}else{
console.log("not working")
}