Я в программировании и скриптинге не особо силён. Поэтому хотел у вас попросить совета с чего начать и т.д.
guild.channels.create('new-channel', {
type: 'GUILD_TEXT',
permissionOverwrites: [{ // (1)
id: message.guild.id, // @ everyone
deny: [Permissions.FLAGS.VIEW_CHANNEL],
},
{ // (2)
id: message.author.id, // автор сообщения
allow: [Permissions.FLAGS.VIEW_CHANNEL],
},
{ // (3)
id: message.guild.roles.cache.find(role => role.name === "название_роли").id, // роль
deny: [Permissions.FLAGS.VIEW_CHANNEL]
}
],
});
id
- ID участника сервера (ID сервера для @ everyone) или ID роли, для которой вы устанавливаете привилегии.deny/allow
- запретить/разрешить какие-либо привилегии для пользователя или роли.channel.permissionOverwrites.create(message.guild.id, { /* привилегии */ });
/* опять же, message.guild.id (ID сервера) для @ everyone.
или ID конкретного пользователя/роли.
*/
const config = require("./config.json")
const { Client, Intents } = require('discord.js');
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });
client.on('ready', () => {
console.log(`бот запущен`);
});
client.on('messageCreate', message => {
let array = message.content.split(" ");
if (array[0] === "!role") {
let member = message.mentions.members.first() || message.guild.members.cache.get(array[1].replace(/[^\d]/g, ''))
let role = message.guild.roles.cache.find(r => r.name ===
"название_роли"); // или message.guild.roles.cache.get("ID_роли"), если вы хотите обнаружить роль по её ID.
member.roles.add(role).then((Member) => {
setTimeout(() => {
Member.roles.remove(role)
}, Number(array[2]));
})
}
});
client.login(config.token);
array
и разбито на части:["!команда", "аргумент1", "аргумент2" и так далее...]
!role @user время
, array
будет выглядеть как ["!role", "<@id_юзера>", "время"].array[2]
array[2]
. правила()
- значит дальнейшие действия будем совершать именно в рамках этой функции.exampleEmbed
- в которой, грубо говоря, находится embed.mess.author.send(...)
let adminRole = // здесь любой вариант из описания ответа
if (!mess.member.roles.cache.has(adminRole)) return;
/*
! вначале означает "обратное действие".
если бы его не было, команда бы сработала только для тех, у кого нет роли.
*/
member.send("сообщение")