From 3c7fccc87d45be2a165b346c58ebf7cb6e14d0f6 Mon Sep 17 00:00:00 2001 From: Braeden Sowinski Date: Tue, 4 Apr 2023 12:44:51 -0700 Subject: [PATCH] ban/unban commands --- commands/ban-player.js | 47 ++++++++++++++++++++++++++++++++++++++++ commands/unban-player.js | 47 ++++++++++++++++++++++++++++++++++++++++ package.json | 2 +- 3 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 commands/ban-player.js create mode 100644 commands/unban-player.js diff --git a/commands/ban-player.js b/commands/ban-player.js new file mode 100644 index 0000000..5248d9f --- /dev/null +++ b/commands/ban-player.js @@ -0,0 +1,47 @@ +const { EmbedBuilder } = require('discord.js'); +const bitfieldCalculator = require('discord-bitfield-calculator'); +const { HandlePlayerBan } = require('../util/NitradoAPI'); + +module.exports = { + name: "ban-player", + debug: false, + global: false, + description: "Ban a player from the DayZ Server.", + usage: "", + permissions: { + channel: ["VIEW_CHANNEL", "SEND_MESSAGES", "EMBED_LINKS"], + member: [], + }, + options: [{ + name: "gamertag", + description: "gamertag of the player to ban.", + value: "gamertag", + type: 3, + required: true, + }], + SlashCommand: { + /** + * + * @param {require("../structures/QuarksBot")} client + * @param {import("discord.js").Message} message + * @param {string[]} args + * @param {*} param3 + */ + run: async (client, interaction, args, { GuildDB }, start) => { + const permissions = bitfieldCalculator.permissions(interaction.member.permissions); + let canUseCommand = false; + + if (permissions.includes("MANAGE_GUILD")) canUseCommand = true; + if (GuildDB.hasBotAdmin && interaction.member.roles.filter(e => GuildDB.botAdminRoles.indexOf(e) !== -1).length > 0) canUseCommand = true; + if (!canUseCommand) return interaction.send({ content: 'You don\'t have the permissions to use this command.' }); + + HandlePlayerBan(client, args[0].value, true); + + let banned = new EmbedBuilder() + .setColor(client.config.Colors.Default) + .setDescription(`Successfully **banned** **${args[0].value}** from the DayZ Server`); + + return interaction.send({ embeds: [banned] }); + }, + }, +} \ No newline at end of file diff --git a/commands/unban-player.js b/commands/unban-player.js new file mode 100644 index 0000000..690fcb4 --- /dev/null +++ b/commands/unban-player.js @@ -0,0 +1,47 @@ +const { EmbedBuilder } = require('discord.js'); +const bitfieldCalculator = require('discord-bitfield-calculator'); +const { HandlePlayerBan } = require('../util/NitradoAPI'); + +module.exports = { + name: "unban-player", + debug: false, + global: false, + description: "Unban a player from the DayZ Server.", + usage: "", + permissions: { + channel: ["VIEW_CHANNEL", "SEND_MESSAGES", "EMBED_LINKS"], + member: [], + }, + options: [{ + name: "gamertag", + description: "gamertag of the player to ban.", + value: "gamertag", + type: 3, + required: true, + }], + SlashCommand: { + /** + * + * @param {require("../structures/QuarksBot")} client + * @param {import("discord.js").Message} message + * @param {string[]} args + * @param {*} param3 + */ + run: async (client, interaction, args, { GuildDB }, start) => { + const permissions = bitfieldCalculator.permissions(interaction.member.permissions); + let canUseCommand = false; + + if (permissions.includes("MANAGE_GUILD")) canUseCommand = true; + if (GuildDB.hasBotAdmin && interaction.member.roles.filter(e => GuildDB.botAdminRoles.indexOf(e) !== -1).length > 0) canUseCommand = true; + if (!canUseCommand) return interaction.send({ content: 'You don\'t have the permissions to use this command.' }); + + HandlePlayerBan(client, args[0].value, false); + + let banned = new EmbedBuilder() + .setColor(client.config.Colors.Default) + .setDescription(`Successfully **unbanned** **${args[0].value}** from the DayZ Server`); + + return interaction.send({ embeds: [banned] }); + }, + }, +} \ No newline at end of file diff --git a/package.json b/package.json index af2c18e..ad2a6bf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dayz-armbands", - "version": "6.1.0", + "version": "6.3.0", "description": "A General Purpose Discord Bot for DayZ Servers.", "main": "index.js", "nodemonConfig": {