bot admin
This commit is contained in:
3 files changed
+116
-13
No files matched your search
@@ -68,6 +68,13 @@ module.exports = {
|
||||
return interaction.send(`You are not allowed to use the bot in this channel.`);
|
||||
}
|
||||
|
||||
const permissions = bitfieldCalculator.permissions(interaction.member.permissions);
|
||||
let canUseCommand = false;
|
||||
|
||||
if (permissions.includes("MANAGE_GUILD")) canUseCommand = true;
|
||||
if (client.exists(GuildDB.botAdmin) && interaction.member.roles.includes(GuildDB.botAdmin)) canUseCommand = true;
|
||||
if (!canUseCommand) return interaction.send('You don\'t have the permissions to use this command.');
|
||||
|
||||
let targetUserID = args[0].options[0].value.replace('<@!', '').replace('>', '');
|
||||
let banking = await client.dbo.collection("banks").findOne({"account.userID": targetUserID}).then(banking => banking);
|
||||
|
||||
|
||||
+107
-13
@@ -210,6 +210,33 @@ module.exports = {
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "bot_admin_role",
|
||||
description: "Set/remove bot admin role",
|
||||
value: "bot_admin_role",
|
||||
type: 2,
|
||||
options: [
|
||||
{
|
||||
name: "set",
|
||||
description: "Set role",
|
||||
value: "role",
|
||||
type: 8,
|
||||
options: [{
|
||||
name: "role",
|
||||
description: "Role to set",
|
||||
value: "role",
|
||||
type: 8,
|
||||
required: true,
|
||||
}]
|
||||
},
|
||||
{
|
||||
name: "remove",
|
||||
description: "Remove role",
|
||||
value: "remove",
|
||||
type: 1,
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
name: "commercial_role",
|
||||
description: "Set/remove commercial role",
|
||||
@@ -324,20 +351,11 @@ module.exports = {
|
||||
}
|
||||
|
||||
const permissions = bitfieldCalculator.permissions(interaction.member.permissions);
|
||||
|
||||
let canUseCommand = false;
|
||||
|
||||
if (permissions.includes("MANAGE_GUILD")) {
|
||||
canUseCommand = true;
|
||||
}
|
||||
|
||||
if (client.exists(GuildDB.botAdmin) && interaction.member.roles.includes(GuildDB.botAdmin)) {
|
||||
canUseCommand = true;
|
||||
}
|
||||
|
||||
if (!canUseCommand) {
|
||||
return interaction.send('You don\'t have the permissions to use this command.');
|
||||
}
|
||||
if (permissions.includes("MANAGE_GUILD")) canUseCommand = true;
|
||||
if (client.exists(GuildDB.botAdmin) && interaction.member.roles.includes(GuildDB.botAdmin)) canUseCommand = true;
|
||||
if (!canUseCommand) return interaction.send('You don\'t have the permissions to use this command.');
|
||||
|
||||
if (args[0].name == 'allowed_channels') {
|
||||
const channelid = args[0].options[0].options[0].value;
|
||||
@@ -1087,9 +1105,82 @@ module.exports = {
|
||||
|
||||
return ButtonInteraction.update({ content: '', embeds: [successEmbed], components: [] });
|
||||
});
|
||||
return;
|
||||
}
|
||||
return;
|
||||
|
||||
} else if (args[0].name == 'bot_admin_role') {
|
||||
|
||||
if (args[0].options[0].name == 'set') {
|
||||
const roleId = args[0].options[0].options[0].value;
|
||||
|
||||
client.dbo.collection("guilds").updateOne({"server.serverID":GuildDB.serverID},{$set:{"server.botAdmin": roleId}}, function(err, res) {
|
||||
if (err) {
|
||||
client.log(err);
|
||||
const embed = new MessageEmbed()
|
||||
.setDescriptions(`**Internal Error:** ${err}\nContact the Developers\nhttps://discord.gg/YCXhvy9uZw`)
|
||||
.setColor("RED")
|
||||
|
||||
return interaction.send({ embeds: [embed] });
|
||||
}
|
||||
});
|
||||
|
||||
const successEmbed = new MessageEmbed()
|
||||
.setDescription(`Successfully set <@&${roleId}> as a bot admin role.\nUsers with this role can use restricted commands.`)
|
||||
.setColor('GREEN');
|
||||
|
||||
return interaction.send({ embeds: [successEmbed] });
|
||||
|
||||
} else if (args[0].options[0].name== 'remove') {
|
||||
const prompt = new MessageEmbed()
|
||||
.setTitle(`Are you sure you want to remove this role as a bot admin?`)
|
||||
.setColor(client.config.EmbedColor)
|
||||
|
||||
const opt = new MessageActionRow()
|
||||
.addComponents(
|
||||
new MessageButton()
|
||||
.setCustomId(`yes-${interaction.member.user.id}`)
|
||||
.setLabel("Yes")
|
||||
.setStyle("DANGER"),
|
||||
new MessageButton()
|
||||
.setCustomId(`no-${interaction.member.user.id}`)
|
||||
.setLabel("No")
|
||||
.setStyle("SUCCESS")
|
||||
)
|
||||
|
||||
interaction.send({ embeds: [prompt], components: [opt], ephemeral: true });
|
||||
|
||||
client.on("interactionCreate", ButtonInteraction => {
|
||||
if(!ButtonInteraction.isButton()) return;
|
||||
const queryString = ButtonInteraction.customId;
|
||||
if (!queryString.endsWith(ButtonInteraction.member.user.id)) {
|
||||
return ButtonInteraction.reply({
|
||||
content: "This button is not for you",
|
||||
ephemeral: true
|
||||
})
|
||||
}
|
||||
let action = '';
|
||||
if (queryString==`yes-${interaction.member.user.id}`) {
|
||||
action = 'removed';
|
||||
client.dbo.collection("guilds").updateOne({"server.serverID":GuildDB.serverID}, {$set: {"server.botAdmin": null}}, function(err, res) {
|
||||
if (err) {
|
||||
client.log(err);
|
||||
const embed = new MessageEmbed()
|
||||
.setDescriptions(`**Internal Error:** ${err}\nContact the Developers\nhttps://discord.gg/YCXhvy9uZw`)
|
||||
.setColor("RED")
|
||||
|
||||
return interaction.send({ embeds: [embed] });
|
||||
}
|
||||
});
|
||||
} else if (queryString==`no-${interaction.member.user.id}`) action = 'kept';
|
||||
|
||||
const successEmbed = new MessageEmbed()
|
||||
.setColor("GREEN")
|
||||
.setTitle(`Successfully ${action} <@&${roleId}> as dispatcher role.`)
|
||||
|
||||
return ButtonInteraction.update({ content: '', embeds: [successEmbed], components: [] });
|
||||
});
|
||||
}
|
||||
return;
|
||||
} else if (args[0].name == 'only_officers_search') {
|
||||
const setting = args[0].options[0];
|
||||
client.dbo.collection("guilds").updateOne({"server.serverID":GuildDB.serverID}, {$set: {"server.onlyOfficersSearch": setting}}, function(err, res) {
|
||||
@@ -1132,6 +1223,8 @@ module.exports = {
|
||||
const dispatchRoleColor = GuildDB.dispatcherRole ? `+ ` : '- ';
|
||||
const dispatchChannel = GuildDB.dispatchChannel ? `\n╚➤ <#${GuildDB.dispatcherRole}>` : '';
|
||||
const dispatchChannelColor = GuildDB.dispatchChannel ? `+ ` : '- ';
|
||||
const botAdminRole = GuildDB.botAdmin ? `\n╚➤ <#${GuildDB.botAdmin}>` : '';
|
||||
const botAdminRoleColor = GuildDB.botAdmin ? `+ ` : '- ';
|
||||
|
||||
const settingsEmbed = new MessageEmbed()
|
||||
.setColor(client.config.EmbedColor)
|
||||
@@ -1149,6 +1242,7 @@ module.exports = {
|
||||
{ name: 'Only Officers Search?', value: `\`\`\`diff\n${oosColor}${oos}\`\`\``, inline: true },
|
||||
{ name: 'Has Disptach Role?', value: `\`\`\`diff\n${dispatchRoleColor}${client.exists(GuildDB.dispatcherRole)}\`\`\`${dispatchRole}`, inline: true },
|
||||
{ name: 'Has Dispatch Channel?', value: `\`\`\`diff\n${dispatchChannelColor}${client.exists(GuildDB.dispatchChannel)}\`\`\`${dispatchChannel}`, inline: true },
|
||||
{ name: 'Has bot admin role?', value: `\`\`\`diff\n${botAdminRoleColor}${client.exists(GuildDB.botAdmin)}\`\`\`${botAdminRole}`, inline: true },
|
||||
);
|
||||
|
||||
return interaction.send({ embeds: [settingsEmbed] });
|
||||
|
||||
@@ -150,6 +150,7 @@ class QuarksBot extends Client {
|
||||
dispatchChannel: null,
|
||||
startingBalance: 1000.00,
|
||||
incomeRoles: [],
|
||||
botAdmin: null,
|
||||
commercialRole: null,
|
||||
officerRole: null,
|
||||
dispatcherRole: null,
|
||||
@@ -176,6 +177,7 @@ class QuarksBot extends Client {
|
||||
officerRole: guild.server.officerRole,
|
||||
dispatcherRole: guild.server.dispatcherRole,
|
||||
onlyOfficersSearch: guild.server.onlyOfficersSearch,
|
||||
botAdmin: guild.server.botAdmin,
|
||||
}
|
||||
return guildData;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user