auto clean whitespace

This commit is contained in:
SowinskiBraeden committed 2026-03-26 10:12:45 -07:00
1 parent 8abd3dadd1
commit 71cd1808d9
38 files changed
+1446 -1446

No files matched your search

+1 -1
View File
@@ -13,7 +13,7 @@ process.on('uncaughtException', async (error) => {
// Asynchronously write the error message to a log file using Promises // Asynchronously write the error message to a log file using Promises
await new Promise((resolve, reject) => { await new Promise((resolve, reject) => {
if (HandleActivePlayersList.lastSendMessage) HandleActivePlayersList.lastSendMessage.delete().catch(error => client.sendError(channel, `HandleActivePlayersList Error: \n${error}`)); // Remove previous embed message before closing if (HandleActivePlayersList.lastSendMessage) HandleActivePlayersList.lastSendMessage.delete().catch(error => client.sendError(channel, `HandleActivePlayersList Error: \n${error}`)); // Remove previous embed message before closing
fs.appendFile(path.join(__dirname, "./logs/Logs.log"), fs.appendFile(path.join(__dirname, "./logs/Logs.log"),
`{"level":"error","message":"${d.getHours()}:${d.getMinutes()} - ${d.getMonth()+1}:${d.getDate()}:${d.getFullYear()} | uncaughtException: ${error.stack}"}`, (logErr) => { `{"level":"error","message":"${d.getHours()}:${d.getMinutes()} - ${d.getMonth()+1}:${d.getDate()}:${d.getFullYear()} | uncaughtException: ${error.stack}"}`, (logErr) => {
if (logErr) { if (logErr) {
console.error('Error writing uncaughtException to log file:', logErr); console.error('Error writing uncaughtException to log file:', logErr);
+1 -1
View File
@@ -409,4 +409,4 @@ module.exports = {
} }
} }
} }
+15 -15
View File
@@ -15,11 +15,11 @@ const generateAlarmMenus = (alarms, customId, placeholder, description) => {
currentAlarmComponents.addOptions({ currentAlarmComponents.addOptions({
label: alarm.name, label: alarm.name,
description: description, description: description,
value: alarm.name, value: alarm.name,
}); });
}); });
alarmComponents.push(new ActionRowBuilder().addComponents(currentAlarmComponents)); alarmComponents.push(new ActionRowBuilder().addComponents(currentAlarmComponents));
id++; id++;
} }
return alarmComponents; return alarmComponents;
@@ -34,7 +34,7 @@ module.exports = {
permissions: { permissions: {
channel: ["VIEW_CHANNEL", "SEND_MESSAGES", "EMBED_LINKS"], channel: ["VIEW_CHANNEL", "SEND_MESSAGES", "EMBED_LINKS"],
member: ["MANAGE_GUILD"], member: ["MANAGE_GUILD"],
}, },
options: [ options: [
{ {
name: "create", name: "create",
@@ -229,7 +229,7 @@ module.exports = {
* @param {string[]} args * @param {string[]} args
* @param {*} param3 * @param {*} param3
*/ */
run: async (client, interaction, args, { GuildDB }) => { run: async (client, interaction, args, { GuildDB }) => {
const permissions = bitfieldCalculator.permissions(interaction.member.permissions); const permissions = bitfieldCalculator.permissions(interaction.member.permissions);
let canUseCommand = false; let canUseCommand = false;
@@ -293,9 +293,9 @@ module.exports = {
return interaction.send({ components: alarmComponents, flags: (1 << 6) }); return interaction.send({ components: alarmComponents, flags: (1 << 6) });
} else if (args[0].name == 'add-player' || args[0].name == 'remove-player') { } else if (args[0].name == 'add-player' || args[0].name == 'remove-player') {
const add = args[0].name == 'add-player'; const add = args[0].name == 'add-player';
if (GuildDB.alarms.length == 0) return interaction.send({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Default).setDescription(`**Notice:** No Existing Alarms to ${add?'Add':'Remove'} Player ${add?'to':'from'}.`)] }); if (GuildDB.alarms.length == 0) return interaction.send({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Default).setDescription(`**Notice:** No Existing Alarms to ${add?'Add':'Remove'} Player ${add?'to':'from'}.`)] });
const alarmComponents = generateAlarmMenus( const alarmComponents = generateAlarmMenus(
@@ -422,7 +422,7 @@ module.exports = {
if (interaction.customId.split('-')[1] == 'yes') { if (interaction.customId.split('-')[1] == 'yes') {
let alarm = GuildDB.alarms.find(alarm => alarm.name == interaction.customId.split('-')[2]); let alarm = GuildDB.alarms.find(alarm => alarm.name == interaction.customId.split('-')[2]);
client.dbo.collection('guilds').updateOne({ 'server.serverID': GuildDB.serverID }, { client.dbo.collection('guilds').updateOne({ 'server.serverID': GuildDB.serverID }, {
$pull: { $pull: {
'server.alarms': alarm, 'server.alarms': alarm,
@@ -430,17 +430,17 @@ module.exports = {
}, (err, res) => { }, (err, res) => {
if (err) return client.sendInternalError(interaction, err); if (err) return client.sendInternalError(interaction, err);
}); });
let successEmbed = new EmbedBuilder() let successEmbed = new EmbedBuilder()
.setColor(client.config.Colors.Green) .setColor(client.config.Colors.Green)
.setDescription(`**Success:** Successfully Deleted **${interaction.customId.split('-')[2]}**`); .setDescription(`**Success:** Successfully Deleted **${interaction.customId.split('-')[2]}**`);
return interaction.update({ embeds: [successEmbed], components: [] }); return interaction.update({ embeds: [successEmbed], components: [] });
} else { } else {
let successEmbed = new EmbedBuilder() let successEmbed = new EmbedBuilder()
.setColor(client.config.Colors.Green) .setColor(client.config.Colors.Green)
.setDescription(`The Zone Alarm **${interaction.customId.split('-')[2]}** will not be deleted.`); .setDescription(`The Zone Alarm **${interaction.customId.split('-')[2]}** will not be deleted.`);
return interaction.update({ embeds: [successEmbed], components: []}); return interaction.update({ embeds: [successEmbed], components: []});
} }
} }
@@ -449,14 +449,14 @@ module.exports = {
run: async(client, interaction, GuildDB) => { run: async(client, interaction, GuildDB) => {
let alarm = GuildDB.alarms.find(alarm => alarm.name == interaction.values[0]); let alarm = GuildDB.alarms.find(alarm => alarm.name == interaction.values[0]);
let alarmIndex = GuildDB.alarms.indexOf(alarm); let alarmIndex = GuildDB.alarms.indexOf(alarm);
let playerStat = await client.dbo.collection("players").findOne({"gamertag": interaction.customId.split('-')[2]}); let playerStat = await client.dbo.collection("players").findOne({"gamertag": interaction.customId.split('-')[2]});
if (!client.exists(playerStat)) return interaction.update({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Yellow).setDescription('**Not Found** This player cannot be found, the gamertag may be incorrect or this player has not logged onto the server before.')], components: [] }); if (!client.exists(playerStat)) return interaction.update({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Yellow).setDescription('**Not Found** This player cannot be found, the gamertag may be incorrect or this player has not logged onto the server before.')], components: [] });
let add = interaction.customId.split('-')[1] == 'add'; let add = interaction.customId.split('-')[1] == 'add';
if (add) alarm.ignoredPlayers.push(playerStat.playerID); if (add) alarm.ignoredPlayers.push(playerStat.playerID);
else alarm.ignoredPlayers = alarm.ignoredPlayers.filter((v) => { else alarm.ignoredPlayers = alarm.ignoredPlayers.filter((v) => {
return v != playerStat.playerID; return v != playerStat.playerID;
}); });
@@ -514,7 +514,7 @@ module.exports = {
value: alarm.rules[i] value: alarm.rules[i]
}); });
} }
const opt = new ActionRowBuilder().addComponents(alarmRules); const opt = new ActionRowBuilder().addComponents(alarmRules);
return interaction.update({ components: [opt], flags: (1 << 6) }); return interaction.update({ components: [opt], flags: (1 << 6) });
@@ -642,5 +642,5 @@ module.exports = {
return interaction.update({ embeds: [successEmbed], components: [] }); return interaction.update({ embeds: [successEmbed], components: [] });
} }
} }
} }
} }
+4 -4
View File
@@ -22,12 +22,12 @@ module.exports = {
*/ */
run: async (client, interaction, args, { GuildDB }) => { run: async (client, interaction, args, { GuildDB }) => {
if (GuildDB.customChannelStatus==true&&!GuildDB.allowedChannels.includes(interaction.channel_id)) if (GuildDB.customChannelStatus==true&&!GuildDB.allowedChannels.includes(interaction.channel_id))
return interaction.send({ content: `You are not allowed to use the bot in this channel.`, flags: (1 << 6) }); return interaction.send({ content: `You are not allowed to use the bot in this channel.`, flags: (1 << 6) });
let available = new StringSelectMenuBuilder() let available = new StringSelectMenuBuilder()
.setCustomId(`View-1-${interaction.member.user.id}`) .setCustomId(`View-1-${interaction.member.user.id}`)
.setPlaceholder('View an armband from list 1') .setPlaceholder('View an armband from list 1')
let availableNext = new StringSelectMenuBuilder() let availableNext = new StringSelectMenuBuilder()
.setCustomId(`View-2-${interaction.member.user.id}`) .setCustomId(`View-2-${interaction.member.user.id}`)
.setPlaceholder('View an armband from list 2') .setPlaceholder('View an armband from list 2')
@@ -55,7 +55,7 @@ module.exports = {
if (tracker > 25) { if (tracker > 25) {
opt2 = new ActionRowBuilder().addComponents(availableNext); opt2 = new ActionRowBuilder().addComponents(availableNext);
compList.push(opt2); compList.push(opt2);
} }
return interaction.send({ components: compList, flags: (1 << 6) }); return interaction.send({ components: compList, flags: (1 << 6) });
}, },
+4 -4
View File
@@ -64,7 +64,7 @@ module.exports = {
} }
let banking = await client.dbo.collection("users").findOne({"user.userID": interaction.member.user.id}).then(banking => banking); let banking = await client.dbo.collection("users").findOne({"user.userID": interaction.member.user.id}).then(banking => banking);
if (!banking) { if (!banking) {
banking = await createUser(interaction.member.user.id, GuildDB.serverID, GuildDB.startingBalance, client) banking = await createUser(interaction.member.user.id, GuildDB.serverID, GuildDB.startingBalance, client)
if (!client.exists(banking)) return client.sendInternalError(interaction, err); if (!client.exists(banking)) return client.sendInternalError(interaction, err);
@@ -91,7 +91,7 @@ module.exports = {
if (!client.exists(banking)) return client.sendInternalError(interaction, err); if (!client.exists(banking)) return client.sendInternalError(interaction, err);
} }
targetUserBanking = targetUserBanking.user; targetUserBanking = targetUserBanking.user;
if (!client.exists(targetUserBanking.guilds[GuildDB.serverID])) { if (!client.exists(targetUserBanking.guilds[GuildDB.serverID])) {
const success = addUser(banking.guilds, GuildDB.serverID, targetUserID, client, GuildDB.startingBalance); const success = addUser(banking.guilds, GuildDB.serverID, targetUserID, client, GuildDB.startingBalance);
if (!success) return client.sendInternalError(interaction, 'Failed to add bank'); if (!success) return client.sendInternalError(interaction, 'Failed to add bank');
@@ -141,7 +141,7 @@ module.exports = {
if (!client.exists(banking)) return client.sendInternalError(interaction, err); if (!client.exists(banking)) return client.sendInternalError(interaction, err);
} }
targetUserBanking = targetUserBanking.user; targetUserBanking = targetUserBanking.user;
if (!client.exists(targetUserBanking.guilds[GuildDB.serverID])) { if (!client.exists(targetUserBanking.guilds[GuildDB.serverID])) {
const success = addUser(banking.guilds, GuildDB.serverID, targetUserID, client, GuildDB.startingBalance); const success = addUser(banking.guilds, GuildDB.serverID, targetUserID, client, GuildDB.startingBalance);
if (!success) return client.sendInternalError(interaction, 'Failed to add bank'); if (!success) return client.sendInternalError(interaction, 'Failed to add bank');
@@ -162,4 +162,4 @@ module.exports = {
} }
}, },
}, },
} }
+11 -11
View File
@@ -70,7 +70,7 @@ module.exports = {
let banking; let banking;
if (args[0].name == 'set' || args[0].name == 'pay') { if (args[0].name == 'set' || args[0].name == 'pay') {
banking = await client.dbo.collection("users").findOne({"user.userID": interaction.member.user.id}).then(banking => banking); banking = await client.dbo.collection("users").findOne({"user.userID": interaction.member.user.id}).then(banking => banking);
if (!banking) { if (!banking) {
banking = await createUser(interaction.member.user.id, GuildDB.serverID, GuildDB.startingBalance, client) banking = await createUser(interaction.member.user.id, GuildDB.serverID, GuildDB.startingBalance, client)
if (!client.exists(banking)) return client.sendInternalError(interaction, err); if (!client.exists(banking)) return client.sendInternalError(interaction, err);
@@ -87,7 +87,7 @@ module.exports = {
let playerStat = await client.dbo.collection("players").findOne({"gamertag": args[0].options[0].value}); let playerStat = await client.dbo.collection("players").findOne({"gamertag": args[0].options[0].value});
if (!client.exists(playerStat)) return interaction.send({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Yellow).setDescription('**Not Found** This player cannot be found, the gamertag may be incorrect or this player has not logged onto the server before for at least ` 5 minutes `.')] }); if (!client.exists(playerStat)) return interaction.send({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Yellow).setDescription('**Not Found** This player cannot be found, the gamertag may be incorrect or this player has not logged onto the server before for at least ` 5 minutes `.')] });
if (args[0].options[1].value > banking.guilds[GuildDB.serverID].balance) { if (args[0].options[1].value > banking.guilds[GuildDB.serverID].balance) {
let nsf = new EmbedBuilder() let nsf = new EmbedBuilder()
.setDescription('**Bank Notice:** NSF. Non sufficient funds') .setDescription('**Bank Notice:** NSF. Non sufficient funds')
@@ -97,7 +97,7 @@ module.exports = {
} }
const newBalance = banking.guilds[GuildDB.serverID].balance - args[0].options[1].value; const newBalance = banking.guilds[GuildDB.serverID].balance - args[0].options[1].value;
client.dbo.collection("users").updateOne({ "user.userID": interaction.member.user.id }, { client.dbo.collection("users").updateOne({ "user.userID": interaction.member.user.id }, {
$set: { $set: {
[`user.guilds.${GuildDB.serverID}.balance`]: newBalance, [`user.guilds.${GuildDB.serverID}.balance`]: newBalance,
@@ -115,24 +115,24 @@ module.exports = {
playerStat.bountiesLength = playerStat.bounties.length; // Will ensure bounties length = # of bounties, even if bountiesLength does not exists in player stat. playerStat.bountiesLength = playerStat.bounties.length; // Will ensure bounties length = # of bounties, even if bountiesLength does not exists in player stat.
await UpdatePlayer(client, playerStat, interaction); await UpdatePlayer(client, playerStat, interaction);
const successEmbed = new EmbedBuilder() const successEmbed = new EmbedBuilder()
.setTitle('Success') .setTitle('Success')
.setDescription(`Successfully set a **$${args[0].options[1].value.toFixed(2).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2})}** bounty on \` ${playerStat.gamertag} \`\nThis can be viewed using </bounty view:1086786904671924267>`) .setDescription(`Successfully set a **$${args[0].options[1].value.toFixed(2).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2})}** bounty on \` ${playerStat.gamertag} \`\nThis can be viewed using </bounty view:1086786904671924267>`)
.setColor(client.config.Colors.Green); .setColor(client.config.Colors.Green);
return interaction.send({ embeds: [successEmbed], flags: (1 << 6) }); return interaction.send({ embeds: [successEmbed], flags: (1 << 6) });
} else if (args[0].name == 'pay') { } else if (args[0].name == 'pay') {
let playerStat = await client.dbo.collection("players").findOne({"discordID": interaction.member.user.id}); let playerStat = await client.dbo.collection("players").findOne({"discordID": interaction.member.user.id});
if (!client.exists(playerStat)) return interaction.send({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Yellow).setDescription('**Not Found** Your user ID could not be found, contact an Admin.')] }); if (!client.exists(playerStat)) return interaction.send({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Yellow).setDescription('**Not Found** Your user ID could not be found, contact an Admin.')] });
if (playerStat.bounties.length == 0) { if (playerStat.bounties.length == 0) {
const noBounty = new EmbedBuilder() const noBounty = new EmbedBuilder()
.setColor(client.config.Colors.Yellow) .setColor(client.config.Colors.Yellow)
.setDescription(`You have no bounties to pay off.`) .setDescription(`You have no bounties to pay off.`)
return interaction.send({ embeds: [noBounty] }); return interaction.send({ embeds: [noBounty] });
} }
@@ -150,14 +150,14 @@ module.exports = {
} }
const newBalance = banking.guilds[GuildDB.serverID].balance - (totalBounty * 2); const newBalance = banking.guilds[GuildDB.serverID].balance - (totalBounty * 2);
await client.dbo.collection("users").updateOne({"user.userID":interaction.member.user.id},{$set:{[`user.guilds.${GuildDB.serverID}.balance`]:newBalance}}, (err, res) => { await client.dbo.collection("users").updateOne({"user.userID":interaction.member.user.id},{$set:{[`user.guilds.${GuildDB.serverID}.balance`]:newBalance}}, (err, res) => {
if (err) return client.sendInternalError(interaction, err); if (err) return client.sendInternalError(interaction, err);
}); });
playerStat.bounties = []; playerStat.bounties = [];
playerStat.bountiesLength = 0; playerStat.bountiesLength = 0;
await UpdatePlayer(client, playerStat, interaction); await UpdatePlayer(client, playerStat, interaction);
const payedOff = new EmbedBuilder() const payedOff = new EmbedBuilder()
@@ -171,7 +171,7 @@ module.exports = {
const activeBounties = await client.dbo.collection("players").find({ const activeBounties = await client.dbo.collection("players").find({
"bountiesLength": { $gt: 0 } "bountiesLength": { $gt: 0 }
}).toArray(); }).toArray();
let bountiesEmbed = new EmbedBuilder() let bountiesEmbed = new EmbedBuilder()
.setColor(client.config.Colors.Default) .setColor(client.config.Colors.Default)
.setDescription('**Active Boutnies**'); .setDescription('**Active Boutnies**');
@@ -187,4 +187,4 @@ module.exports = {
} }
}, },
}, },
} }
+9 -9
View File
@@ -52,7 +52,7 @@ module.exports = {
const warnArmbadChange = new EmbedBuilder() const warnArmbadChange = new EmbedBuilder()
.setColor(client.config.Colors.Yellow) .setColor(client.config.Colors.Yellow)
.setDescription(`**Notice:**\n> The faction <@&${args[0].value}> already has an armband selected. Are you sure you would like to change this?`) .setDescription(`**Notice:**\n> The faction <@&${args[0].value}> already has an armband selected. Are you sure you would like to change this?`)
const opt = new ActionRowBuilder() const opt = new ActionRowBuilder()
.addComponents( .addComponents(
new ButtonBuilder() new ButtonBuilder()
@@ -71,7 +71,7 @@ module.exports = {
let available = new StringSelectMenuBuilder() let available = new StringSelectMenuBuilder()
.setCustomId(`Claim-${args[0].value}-1-${interaction.member.user.id}`) .setCustomId(`Claim-${args[0].value}-1-${interaction.member.user.id}`)
.setPlaceholder('Select an armband from list 1 to claim') .setPlaceholder('Select an armband from list 1 to claim')
let availableNext = new StringSelectMenuBuilder() let availableNext = new StringSelectMenuBuilder()
.setCustomId(`Claim-${args[0].value}-2-${interaction.member.user.id}`) .setCustomId(`Claim-${args[0].value}-2-${interaction.member.user.id}`)
.setPlaceholder('Select an armband from list 2 to claim') .setPlaceholder('Select an armband from list 2 to claim')
@@ -98,7 +98,7 @@ module.exports = {
if (tracker > 25) { if (tracker > 25) {
opt2 = new ActionRowBuilder().addComponents(availableNext); opt2 = new ActionRowBuilder().addComponents(availableNext);
compList.push(opt2); compList.push(opt2);
} }
return interaction.send({ components: compList }); return interaction.send({ components: compList });
}, },
@@ -106,7 +106,7 @@ module.exports = {
Interactions: { Interactions: {
Claim: { Claim: {
run: async (client, interaction, GuildDB) => { run: async (client, interaction, GuildDB) => {
if (!interaction.customId.endsWith(interaction.member.user.id)) if (!interaction.customId.endsWith(interaction.member.user.id))
return interaction.reply({ content: 'This interaction is not for you', flags: (1 << 6) }); return interaction.reply({ content: 'This interaction is not for you', flags: (1 << 6) });
let factionID = interaction.customId.split('-')[1]; let factionID = interaction.customId.split('-')[1];
@@ -134,7 +134,7 @@ module.exports = {
if (err) return client.sendInternalError(interaction, err); if (err) return client.sendInternalError(interaction, err);
}) })
} }
client.dbo.collection("guilds").updateOne({'server.serverID': GuildDB.serverID}, query, (err, res) => { client.dbo.collection("guilds").updateOne({'server.serverID': GuildDB.serverID}, query, (err, res) => {
if (err) return client.sendInternalError(interaction, err); if (err) return client.sendInternalError(interaction, err);
}) })
@@ -159,14 +159,14 @@ module.exports = {
ChangeArmband: { ChangeArmband: {
run: async (client, interaction, GuildDB) => { run: async (client, interaction, GuildDB) => {
if (!interaction.customId.endsWith(interaction.member.user.id)) if (!interaction.customId.endsWith(interaction.member.user.id))
return interaction.reply({ content: 'This interaction is not for you', flags: (1 << 6) }); return interaction.reply({ content: 'This interaction is not for you', flags: (1 << 6) });
if (interaction.customId.split('-')[1]=='yes') { if (interaction.customId.split('-')[1]=='yes') {
let available = new StringSelectMenuBuilder() let available = new StringSelectMenuBuilder()
.setCustomId(`Claim-${interaction.customId.split('-')[2]}-update-1-${interaction.member.user.id}`) .setCustomId(`Claim-${interaction.customId.split('-')[2]}-update-1-${interaction.member.user.id}`)
.setPlaceholder('Select an armband from list 1 to claim') .setPlaceholder('Select an armband from list 1 to claim')
let availableNext = new StringSelectMenuBuilder() let availableNext = new StringSelectMenuBuilder()
.setCustomId(`Claim-${interaction.customId.split('-')[2]}-update-2-${interaction.member.user.id}`) .setCustomId(`Claim-${interaction.customId.split('-')[2]}-update-2-${interaction.member.user.id}`)
.setPlaceholder('Select an armband from list 2 to claim') .setPlaceholder('Select an armband from list 2 to claim')
@@ -193,9 +193,9 @@ module.exports = {
if (tracker > 25) { if (tracker > 25) {
opt2 = new ActionRowBuilder().addComponents(availableNext); opt2 = new ActionRowBuilder().addComponents(availableNext);
compList.push(opt2); compList.push(opt2);
} }
return interaction.update({ embeds: [], components: compList }); return interaction.update({ embeds: [], components: compList });
} else { } else {
const cancel = new EmbedBuilder() const cancel = new EmbedBuilder()
+5 -5
View File
@@ -22,7 +22,7 @@ module.exports = {
*/ */
run: async (client, interaction, args, { GuildDB }) => { run: async (client, interaction, args, { GuildDB }) => {
if (GuildDB.customChannelStatus==true&&!GuildDB.allowedChannels.includes(interaction.channel_id)) { if (GuildDB.customChannelStatus==true&&!GuildDB.allowedChannels.includes(interaction.channel_id)) {
return interaction.send({ content: `You are not allowed to use the bot in this channel.`, flags: (1 << 6) }); return interaction.send({ content: `You are not allowed to use the bot in this channel.`, flags: (1 << 6) });
} }
const hasIncomeRole = GuildDB.incomeRoles.some(data => { const hasIncomeRole = GuildDB.incomeRoles.some(data => {
@@ -41,7 +41,7 @@ module.exports = {
let banking = await client.dbo.collection("users").findOne({"user.userID": interaction.member.user.id}).then(banking => banking); let banking = await client.dbo.collection("users").findOne({"user.userID": interaction.member.user.id}).then(banking => banking);
if (!banking) { if (!banking) {
banking = await createUser(interaction.member.user.id, GuildDB.serverID, GuildDB.startingBalance, client) banking = await createUser(interaction.member.user.id, GuildDB.serverID, GuildDB.startingBalance, client)
if (!client.exists(banking)) return client.sendInternalError(interaction, err); if (!client.exists(banking)) return client.sendInternalError(interaction, err);
@@ -54,7 +54,7 @@ module.exports = {
} }
if (!client.exists(banking.guilds[GuildDB.serverID].lastIncome)) banking.guilds[GuildDB.serverID].lastIncome = new Date('2000-01-01T00:00:00'); if (!client.exists(banking.guilds[GuildDB.serverID].lastIncome)) banking.guilds[GuildDB.serverID].lastIncome = new Date('2000-01-01T00:00:00');
let now = new Date(); let now = new Date();
let diff = (now - banking.guilds[GuildDB.serverID].lastIncome) / 1000; let diff = (now - banking.guilds[GuildDB.serverID].lastIncome) / 1000;
diff /= (60 * 60); diff /= (60 * 60);
@@ -96,7 +96,7 @@ module.exports = {
date.setHours(date.getHours() + GuildDB.incomeLimiter); date.setHours(date.getHours() + GuildDB.incomeLimiter);
diff = (date - now) / 1000; diff = (date - now) / 1000;
let timeTillIncome = client.secondsToDhms(diff); let timeTillIncome = client.secondsToDhms(diff);
const error = new EmbedBuilder() const error = new EmbedBuilder()
.setColor(client.config.Colors.Red) .setColor(client.config.Colors.Red)
.setDescription(`You've already collected your income this week. Wait **${timeTillIncome}** to collect again.`); .setDescription(`You've already collected your income this week. Wait **${timeTillIncome}** to collect again.`);
@@ -105,4 +105,4 @@ module.exports = {
} }
}, },
}, },
} }
+4 -4
View File
@@ -53,7 +53,7 @@ module.exports = {
let comp; let comp;
if (discord) comp = leaderboard.find(s => s.discordID == discord); if (discord) comp = leaderboard.find(s => s.discordID == discord);
if (gamertag) comp = leaderboard.find(s => s.gamertag == gamertag); if (gamertag) comp = leaderboard.find(s => s.gamertag == gamertag);
let self = leaderboard.find(s => s.discordID == interaction.member.user.id); let self = leaderboard.find(s => s.discordID == interaction.member.user.id);
if (!client.exists(comp)) return interaction.send({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Yellow).setDescription(`**Not Found** Unable to find any records with the gamertag or user provided.`)] }); if (!client.exists(comp)) return interaction.send({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Yellow).setDescription(`**Not Found** Unable to find any records with the gamertag or user provided.`)] });
@@ -90,7 +90,7 @@ module.exports = {
const diff = Math.abs(selfData.length - compData.length); const diff = Math.abs(selfData.length - compData.length);
if (selfData.length < compData.length) selfData.unshift(...(new Array(diff).fill(null, 0, diff))); if (selfData.length < compData.length) selfData.unshift(...(new Array(diff).fill(null, 0, diff)));
if (compData.length < selfData.length) compData.unshift(...(new Array(diff).fill(null, 0, diff))); if (compData.length < selfData.length) compData.unshift(...(new Array(diff).fill(null, 0, diff)));
const chart = { const chart = {
type: 'line', type: 'line',
data: { data: {
@@ -131,7 +131,7 @@ module.exports = {
}, },
}, },
}; };
const encodedChart = encodeURIComponent(JSON.stringify(chart)); const encodedChart = encodeURIComponent(JSON.stringify(chart));
const chartURL = `https://quickchart.io/chart?c=${encodedChart}&bkg=${encodeURIComponent("#ded8d7")}`; const chartURL = `https://quickchart.io/chart?c=${encodedChart}&bkg=${encodeURIComponent("#ded8d7")}`;
@@ -140,4 +140,4 @@ module.exports = {
return interaction.send({ embeds: [statsEmbed] }); return interaction.send({ embeds: [statsEmbed] });
}, },
}, },
} }
+1143 -1143
View File
File diff suppressed because it is too large. Load diff
+5 -5
View File
@@ -31,7 +31,7 @@ module.exports = {
type: CommandOptions.Integer, type: CommandOptions.Integer,
required: true, required: true,
choices: [ choices: [
{ name: '10-minutes', value: 10 }, { name: '15-minutes', value: 15 }, { name: '20-minutes', value: 20 }, { name: '25-minutes', value: 25 }, { name: '10-minutes', value: 10 }, { name: '15-minutes', value: 15 }, { name: '20-minutes', value: 20 }, { name: '25-minutes', value: 25 },
{ name: '30-minutes', value: 30 }, { name: '60-minutes', value: 60 }, { name: '90-minutes', value: 90 }, { name: '120-minutes', value: 120 }, { name: '30-minutes', value: 30 }, { name: '60-minutes', value: 60 }, { name: '90-minutes', value: 90 }, { name: '120-minutes', value: 120 },
] ]
}, },
@@ -134,7 +134,7 @@ module.exports = {
value: GuildDB.events[i].name value: GuildDB.events[i].name
}); });
} }
const eventsOptions = new ActionRowBuilder().addComponents(events); const eventsOptions = new ActionRowBuilder().addComponents(events);
return interaction.send({ components: [eventsOptions], flags: (1 << 6) }); return interaction.send({ components: [eventsOptions], flags: (1 << 6) });
@@ -146,7 +146,7 @@ module.exports = {
DeleteEvent: { DeleteEvent: {
run: async(client, interaction, GuildDB) => { run: async(client, interaction, GuildDB) => {
if (!interaction.customId.endsWith(interaction.member.user.id)) if (!interaction.customId.endsWith(interaction.member.user.id))
return interaction.reply({ content: 'This interaction is not for you', flags: (1 << 6) }); return interaction.reply({ content: 'This interaction is not for you', flags: (1 << 6) });
let event = GuildDB.events.find(e => e.name == interaction.values[0]); let event = GuildDB.events.find(e => e.name == interaction.values[0]);
@@ -162,9 +162,9 @@ module.exports = {
let successEmbed = new EmbedBuilder() let successEmbed = new EmbedBuilder()
.setColor(client.config.Colors.Green) .setColor(client.config.Colors.Green)
.setDescription(`**Success:** Successfully Deleted **${event.name} Event**`); .setDescription(`**Success:** Successfully Deleted **${event.name} Event**`);
return interaction.update({ embeds: [successEmbed], components: [] }); return interaction.update({ embeds: [successEmbed], components: [] });
} }
} }
} }
} }
+5 -5
View File
@@ -29,15 +29,15 @@ module.exports = {
*/ */
run: async (client, interaction, args, { GuildDB }) => { run: async (client, interaction, args, { GuildDB }) => {
if (GuildDB.customChannelStatus==true&&!GuildDB.allowedChannels.includes(interaction.channel_id)) if (GuildDB.customChannelStatus==true&&!GuildDB.allowedChannels.includes(interaction.channel_id))
return interaction.send({ content: `You are not allowed to use the bot in this channel.`, flags: (1 << 6) }); return interaction.send({ content: `You are not allowed to use the bot in this channel.`, flags: (1 << 6) });
// Return list of factions and their armband. // Return list of factions and their armband.
if (!args) { if (!args) {
let factions = new EmbedBuilder() let factions = new EmbedBuilder()
.setColor(client.config.Colors.Default) .setColor(client.config.Colors.Default)
.setTitle('Factions & Armbands') .setTitle('Factions & Armbands')
let description = ''; let description = '';
if (GuildDB.usedArmbands.length == 0) { if (GuildDB.usedArmbands.length == 0) {
@@ -48,9 +48,9 @@ module.exports = {
else description += `\n> <@&${factionID}> - *${data.armband}*`; else description += `\n> <@&${factionID}> - *${data.armband}*`;
} }
} }
factions.setDescription(description); factions.setDescription(description);
return interaction.send({ embeds: [factions] }); return interaction.send({ embeds: [factions] });
} }
+6 -6
View File
@@ -44,7 +44,7 @@ module.exports = {
const warnGTOverwrite = new EmbedBuilder() const warnGTOverwrite = new EmbedBuilder()
.setColor(client.config.Colors.Yellow) .setColor(client.config.Colors.Yellow)
.setDescription(`**Notice:**\n> The gamertag has previously been linked to <@${playerStat.discordID}>. Are you sure you would like to change this?`) .setDescription(`**Notice:**\n> The gamertag has previously been linked to <@${playerStat.discordID}>. Are you sure you would like to change this?`)
const opt = new ActionRowBuilder() const opt = new ActionRowBuilder()
.addComponents( .addComponents(
new ButtonBuilder() new ButtonBuilder()
@@ -61,7 +61,7 @@ module.exports = {
} }
playerStat.discordID = interaction.member.user.id; playerStat.discordID = interaction.member.user.id;
await UpdatePlayer(client, playerStat, interaction); await UpdatePlayer(client, playerStat, interaction);
let member = interaction.guild.members.cache.get(interaction.member.user.id); let member = interaction.guild.members.cache.get(interaction.member.user.id);
@@ -87,14 +87,14 @@ module.exports = {
OverwriteGamertag: { OverwriteGamertag: {
run: async(client, interaction, GuildDB) => { run: async(client, interaction, GuildDB) => {
if (!interaction.customId.endsWith(interaction.member.user.id)) if (!interaction.customId.endsWith(interaction.member.user.id))
return interaction.reply({ content: 'This interaction is not for you', flags: (1 << 6) }); return interaction.reply({ content: 'This interaction is not for you', flags: (1 << 6) });
if (interaction.customId.split('-')[1]=='yes') { if (interaction.customId.split('-')[1]=='yes') {
let playerStat = await client.dbo.collection("players").findOne({"gamertag": interaction.customId.split('-')[2]}); let playerStat = await client.dbo.collection("players").findOne({"gamertag": interaction.customId.split('-')[2]});
playerStat.discordID = interaction.member.user.id; playerStat.discordID = interaction.member.user.id;
await UpdatePlayer(client, playerStat, interaction); await UpdatePlayer(client, playerStat, interaction);
let member = interaction.guild.members.cache.get(interaction.member.user.id); let member = interaction.guild.members.cache.get(interaction.member.user.id);
@@ -123,6 +123,6 @@ module.exports = {
} }
} }
} }
} }
} }
+4 -4
View File
@@ -35,7 +35,7 @@ module.exports = {
const warnGTOverwrite = new EmbedBuilder() const warnGTOverwrite = new EmbedBuilder()
.setColor(client.config.Colors.Yellow) .setColor(client.config.Colors.Yellow)
.setDescription(`**Notice:**\n> Are you sure you want to unlink your gamertag? This will limit some automatic features.`); .setDescription(`**Notice:**\n> Are you sure you want to unlink your gamertag? This will limit some automatic features.`);
const opt = new ActionRowBuilder() const opt = new ActionRowBuilder()
.addComponents( .addComponents(
new ButtonBuilder() new ButtonBuilder()
@@ -56,14 +56,14 @@ module.exports = {
UnlinkGamertag: { UnlinkGamertag: {
run: async(client, interaction, GuildDB) => { run: async(client, interaction, GuildDB) => {
if (!interaction.customId.endsWith(interaction.member.user.id)) if (!interaction.customId.endsWith(interaction.member.user.id))
return interaction.reply({ content: 'This interaction is not for you', flags: (1 << 6) }); return interaction.reply({ content: 'This interaction is not for you', flags: (1 << 6) });
if (interaction.customId.split('-')[1]=='yes') { if (interaction.customId.split('-')[1]=='yes') {
let playerStat = await client.dbo.collection("players").findOne({"discordID": interaction.member.user.id}); let playerStat = await client.dbo.collection("players").findOne({"discordID": interaction.member.user.id});
playerStat.discordID = ""; playerStat.discordID = "";
await UpdatePlayer(client, playerStat, interaction); await UpdatePlayer(client, playerStat, interaction);
let connectedEmbed = new EmbedBuilder() let connectedEmbed = new EmbedBuilder()
@@ -82,4 +82,4 @@ module.exports = {
} }
} }
} }
} }
+12 -12
View File
@@ -32,7 +32,7 @@ module.exports = {
value: "support", value: "support",
type: CommandOptions.SubCommand, type: CommandOptions.SubCommand,
}, },
{ {
name: "credits", name: "credits",
description: "DayZ.R Bot Credits", description: "DayZ.R Bot Credits",
value: "credits", value: "credits",
@@ -58,15 +58,15 @@ module.exports = {
if (args[0].name == 'commands') { if (args[0].name == 'commands') {
let Commands = client.commands.filter((cmd) => { let Commands = client.commands.filter((cmd) => {
return !cmd.debug return !cmd.debug
}).map((cmd) => }).map((cmd) =>
`\`/${cmd.name}${cmd.usage ? " " + cmd.usage : ""}\` - ${cmd.description}` `\`/${cmd.name}${cmd.usage ? " " + cmd.usage : ""}\` - ${cmd.description}`
); );
let Embed = new EmbedBuilder() let Embed = new EmbedBuilder()
.setTitle('Commands') .setTitle('Commands')
.setColor(client.config.Colors.Default) .setColor(client.config.Colors.Default)
.setDescription(`${Commands.join("\n")} .setDescription(`${Commands.join("\n")}
DayZR Bot Version: v${client.config.Version}`); DayZR Bot Version: v${client.config.Version}`);
if (!args[0].options[0]) return interaction.send({ embeds: [Embed] }); if (!args[0].options[0]) return interaction.send({ embeds: [Embed] });
else { else {
@@ -77,7 +77,7 @@ module.exports = {
); );
if (!cmd) if (!cmd)
return interaction.send({ content: `❌ | Unable to find that command.` }); return interaction.send({ content: `❌ | Unable to find that command.` });
let embed = new EmbedBuilder() let embed = new EmbedBuilder()
.setDescription(cmd.description) .setDescription(cmd.description)
.setColor(client.config.Colors.Green) .setColor(client.config.Colors.Green)
@@ -85,7 +85,7 @@ module.exports = {
if (cmd.SlashCommand.options && cmd.SlashCommand.options[0].type == 1) { if (cmd.SlashCommand.options && cmd.SlashCommand.options[0].type == 1) {
let description = `${cmd.description}\n\n**Usage**\n`; let description = `${cmd.description}\n\n**Usage**\n`;
for (let i = 0; i < cmd.SlashCommand.options.length; i++) { for (let i = 0; i < cmd.SlashCommand.options.length; i++) {
if (cmd.SlashCommand.options[i].type == 1) { if (cmd.SlashCommand.options[i].type == 1) {
let param = ''; let param = '';
@@ -107,7 +107,7 @@ module.exports = {
const supportEmbed = new EmbedBuilder() const supportEmbed = new EmbedBuilder()
.setColor(client.config.Colors.Default) .setColor(client.config.Colors.Default)
.setDescription(`**__DayZ.R Bot Support__** .setDescription(`**__DayZ.R Bot Support__**
Are you experiencing troubles with the DayZ.R Bot? Are you experiencing troubles with the DayZ.R Bot?
Do you have questions or concerns? Do you have questions or concerns?
Do you require help to use the bot? Do you require help to use the bot?
@@ -126,22 +126,22 @@ module.exports = {
.setDescription(` .setDescription(`
**Bot Author:** mcdazzzled **Bot Author:** mcdazzzled
**Github:** https://github.com/SowinskiBraeden/dayz-reforger **Github:** https://github.com/SowinskiBraeden/dayz-reforger
${client.config.SupportServer} ${client.config.SupportServer}
`); `);
return interaction.send({ embeds: [creditsEmbed] }) return interaction.send({ embeds: [creditsEmbed] })
} else if (args[0].name == 'stats') { } else if (args[0].name == 'stats') {
const end = new Date().getTime(); const end = new Date().getTime();
const totalGuilds = await client.shard.fetchClientValues("guilds.cache.size").then(results => { const totalGuilds = await client.shard.fetchClientValues("guilds.cache.size").then(results => {
return results.reduce((acc, guildCount) => acc + guildCount, 0); return results.reduce((acc, guildCount) => acc + guildCount, 0);
}); });
const totalUsers = await client.shard.broadcastEval(c => { const totalUsers = await client.shard.broadcastEval(c => {
c.guilds.cache.reduce((acc, guild) => acc + guild.memberCount, 0); c.guilds.cache.reduce((acc, guild) => acc + guild.memberCount, 0);
}).then(data => data.reduce((acc, memberCount) => acc + memberCount, 0)); }).then(data => data.reduce((acc, memberCount) => acc + memberCount, 0));
const stats = new EmbedBuilder() const stats = new EmbedBuilder()
.setColor(client.config.Colors.Default) .setColor(client.config.Colors.Default)
.setTitle('DayZ Reforger Bot Statistics') .setTitle('DayZ Reforger Bot Statistics')
@@ -158,4 +158,4 @@ module.exports = {
} }
}, },
}, },
}; };
+22 -22
View File
@@ -21,7 +21,7 @@ module.exports = {
{ name: "Money", value: "money" }, { name: "Money", value: "money" },
{ name: "Total Time Played", value: "totalSessionTime" }, { name: "Total Time Played", value: "totalSessionTime" },
{ name: "Longest Game Session", value: "longestSessionTime" }, { name: "Longest Game Session", value: "longestSessionTime" },
{ name: "Kills", value: "kills" }, { name: "Kills", value: "kills" },
{ name: "Kill Streak", value: "killStreak" }, { name: "Kill Streak", value: "killStreak" },
{ name: "Best Kill Streak", value: "bestKillStreak" }, { name: "Best Kill Streak", value: "bestKillStreak" },
{ name: "Deaths", value: "deaths" }, { name: "Deaths", value: "deaths" },
@@ -60,7 +60,7 @@ module.exports = {
return interaction.send({ embeds: [warnNitradoNotInitialized], flags: (1 << 6) }); return interaction.send({ embeds: [warnNitradoNotInitialized], flags: (1 << 6) });
} }
const category = args[0].value; const category = args[0].value;
const limit = args[1].value; const limit = args[1].value;
@@ -72,28 +72,28 @@ module.exports = {
]).toArray(); ]).toArray();
} else { } else {
leaderboard = await client.dbo.collection("players").aggregate([ leaderboard = await client.dbo.collection("players").aggregate([
{ $sort: { [`${category}`]: -1 } } { $sort: { [`${category}`]: -1 } }
]).toArray(); ]).toArray();
} }
let leaderboardEmbed = new EmbedBuilder() let leaderboardEmbed = new EmbedBuilder()
.setColor(client.config.Colors.Default); .setColor(client.config.Colors.Default);
let title = category == 'kills' ? "Total Kills Leaderboard" : let title = category == 'kills' ? "Total Kills Leaderboard" :
category == 'killStreak' ? "Current Killstreak Leaderboard" : category == 'killStreak' ? "Current Killstreak Leaderboard" :
category == 'bestKillStreak' ? "Best Killstreak Leaderboard" : category == 'bestKillStreak' ? "Best Killstreak Leaderboard" :
category == 'deaths' ? "Total Deaths Leaderboard" : category == 'deaths' ? "Total Deaths Leaderboard" :
category == 'deathStreak' ? "Current Deathstreak Leaderboard" : category == 'deathStreak' ? "Current Deathstreak Leaderboard" :
category == 'worstDeathStreak' ? "Worst Deathstreak Leaderboard" : category == 'worstDeathStreak' ? "Worst Deathstreak Leaderboard" :
category == 'longestKill' ? "Longest Kill Leaderboard" : category == 'longestKill' ? "Longest Kill Leaderboard" :
category == 'money' ? "Money Leaderboard" : category == 'money' ? "Money Leaderboard" :
category == 'totalSessionTime' ? "Total Time Played" : category == 'totalSessionTime' ? "Total Time Played" :
category == 'longestSessionTime' ? "Longest Game Session" : category == 'longestSessionTime' ? "Longest Game Session" :
category == 'KDR' ? "Kill Death Ratio" : category == 'KDR' ? "Kill Death Ratio" :
category == 'connections' ? "Times Connected" : category == 'connections' ? "Times Connected" :
category == 'shotsLanded' ? "Shots Landed" : category == 'shotsLanded' ? "Shots Landed" :
category == 'timesShot' ? "Times Shot" : category == 'timesShot' ? "Times Shot" :
category == 'combatRating' ? "Combat Rating" : 'N/A Error'; category == 'combatRating' ? "Combat Rating" : 'N/A Error';
@@ -103,21 +103,21 @@ module.exports = {
let des = ``; let des = ``;
for (let i = 0; i < limit; i++) { for (let i = 0; i < limit; i++) {
if (leaderboard.length < limit && i == leaderboard.length) break; if (leaderboard.length < limit && i == leaderboard.length) break;
let stats = category == 'kills' ? `${leaderboard[i].kills} Kill${(leaderboard[i].kills>1||leaderboard[i].kills==0)?'s':''}` : let stats = category == 'kills' ? `${leaderboard[i].kills} Kill${(leaderboard[i].kills>1||leaderboard[i].kills==0)?'s':''}` :
category == 'killStreak' ? `${leaderboard[i].killStreak} Player Killstreak` : category == 'killStreak' ? `${leaderboard[i].killStreak} Player Killstreak` :
category == 'bestKillStreak' ? `${leaderboard[i].bestKillStreak} Player Killstreak` : category == 'bestKillStreak' ? `${leaderboard[i].bestKillStreak} Player Killstreak` :
category == 'deaths' ? `${leaderboard[i].deaths} Death${leaderboard[i].deaths>1||leaderboard[i].deaths==0?'s':''}` : category == 'deaths' ? `${leaderboard[i].deaths} Death${leaderboard[i].deaths>1||leaderboard[i].deaths==0?'s':''}` :
category == 'deathStreak' ? `${leaderboard[i].deathStreak} Deathstreak` : category == 'deathStreak' ? `${leaderboard[i].deathStreak} Deathstreak` :
category == 'worstDeathstreak' ? `${leaderboard[i].worstDeathStreak} Deathstreak` : category == 'worstDeathstreak' ? `${leaderboard[i].worstDeathStreak} Deathstreak` :
category == 'longestKill' ? `${leaderboard[i].longestKill}m` : category == 'longestKill' ? `${leaderboard[i].longestKill}m` :
category == 'money' ? `$${(leaderboard[i].user.guilds[GuildDB.serverID].balance).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2})}` : category == 'money' ? `$${(leaderboard[i].user.guilds[GuildDB.serverID].balance).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2})}` :
category == 'totalSessionTime' ? `**Total:** ${client.secondsToDhms(leaderboard[i].totalSessionTime)}\n> **Last Session:** ${client.secondsToDhms(leaderboard[i].lastSessionTime)}` : category == 'totalSessionTime' ? `**Total:** ${client.secondsToDhms(leaderboard[i].totalSessionTime)}\n> **Last Session:** ${client.secondsToDhms(leaderboard[i].lastSessionTime)}` :
category == 'longestSessionTime' ? `**Longest Game Session:** ${client.secondsToDhms(leaderboard[i].longestSessionTime)}` : category == 'longestSessionTime' ? `**Longest Game Session:** ${client.secondsToDhms(leaderboard[i].longestSessionTime)}` :
category == 'KDR' ? `**KDR: ${leaderboard[i].KDR.toFixed(2)}**` : category == 'KDR' ? `**KDR: ${leaderboard[i].KDR.toFixed(2)}**` :
category == 'connection' ? `**Connections: ${leaderboard[i].connections}**` : category == 'connection' ? `**Connections: ${leaderboard[i].connections}**` :
category == 'combatRating' ? `**Combat Rating:** ${leaderboard[i].combatRating}` : category == 'combatRating' ? `**Combat Rating:** ${leaderboard[i].combatRating}` :
category == 'shotsLanded' ? `**Shots Landed:** ${leaderboard[i].shotsLanded}` : category == 'shotsLanded' ? `**Shots Landed:** ${leaderboard[i].shotsLanded}` :
category == 'timesShot' ? `**Times Shot:** ${leaderboard[i].timesShot}` : 'N/A Error'; category == 'timesShot' ? `**Times Shot:** ${leaderboard[i].timesShot}` : 'N/A Error';
if (category == 'money') des += `**${i+1}.** <@${leaderboard[i].user.userID}> - **${stats}**\n` if (category == 'money') des += `**${i+1}.** <@${leaderboard[i].user.userID}> - **${stats}**\n`
@@ -128,7 +128,7 @@ module.exports = {
} }
if (['money', 'totalSessionTime', 'longestSessionTime', 'combatRating'].includes(category)) leaderboardEmbed.setDescription(des); if (['money', 'totalSessionTime', 'longestSessionTime', 'combatRating'].includes(category)) leaderboardEmbed.setDescription(des);
return interaction.send({ embeds: [leaderboardEmbed] }); return interaction.send({ embeds: [leaderboardEmbed] });
}, },
}, },
+4 -4
View File
@@ -37,14 +37,14 @@ module.exports = {
let newDt = await client.getDateEST(playerStat.time); let newDt = await client.getDateEST(playerStat.time);
let unixTime = Math.floor(newDt.getTime()/1000); let unixTime = Math.floor(newDt.getTime()/1000);
const destination = nearest(playerStat.pos, GuildDB.Nitrado.Mission); const destination = nearest(playerStat.pos, GuildDB.Nitrado.Mission);
let lastLocation = new EmbedBuilder() let lastLocation = new EmbedBuilder()
.setColor(client.config.Colors.Default) .setColor(client.config.Colors.Default)
.setDescription(`**Location - <t:${unixTime}>**\nYour last location was detected at **[${playerStat.pos[0]}, ${playerStat.pos[1]}](https://www.izurvive.com/chernarusplussatmap/#location=${playerStat.pos[0]};${playerStat.pos[1]})**\n${destination}`) .setDescription(`**Location - <t:${unixTime}>**\nYour last location was detected at **[${playerStat.pos[0]}, ${playerStat.pos[1]}](https://www.izurvive.com/chernarusplussatmap/#location=${playerStat.pos[0]};${playerStat.pos[1]})**\n${destination}`)
return interaction.send({ embeds: [lastLocation], flags: (1 << 6) }); return interaction.send({ embeds: [lastLocation], flags: (1 << 6) });
}, },
}, },
} }
+6 -6
View File
@@ -58,19 +58,19 @@ module.exports = {
let playerStat = await client.dbo.collection("players").findOne({"gamertag": args[0].options[0].value}); let playerStat = await client.dbo.collection("players").findOne({"gamertag": args[0].options[0].value});
if (playerStat == undefined) return interaction.send({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Yellow).setDescription(`**Not Found** This gamertag \` ${args[0].options[0].value} \` cannot be found, the gamertag may be incorrect or this player has not logged onto the server before for at least \` 5 minutes \`.`)] }); if (playerStat == undefined) return interaction.send({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Yellow).setDescription(`**Not Found** This gamertag \` ${args[0].options[0].value} \` cannot be found, the gamertag may be incorrect or this player has not logged onto the server before for at least \` 5 minutes \`.`)] });
if (client.exists(playerStat.discordID)) { if (client.exists(playerStat.discordID)) {
const found = new EmbedBuilder() const found = new EmbedBuilder()
.setColor(client.config.Colors.Yellow) .setColor(client.config.Colors.Yellow)
.setDescription(`**Record Found**\n> The gamertag \` ${playerStat.gamertag} \` is currently linked to <@${playerStat.discordID}>.`) .setDescription(`**Record Found**\n> The gamertag \` ${playerStat.gamertag} \` is currently linked to <@${playerStat.discordID}>.`)
return interaction.send({ embeds: [found] }); return interaction.send({ embeds: [found] });
} }
let notFound = new EmbedBuilder() let notFound = new EmbedBuilder()
.setColor(client.config.Colors.Default) .setColor(client.config.Colors.Default)
.setDescription(`**Record Not Found**\n The gamertag \` ${playerStat.gamertag} \` currently has no linked Discord account.`); .setDescription(`**Record Not Found**\n The gamertag \` ${playerStat.gamertag} \` currently has no linked Discord account.`);
return interaction.send({ embeds: [notFound] }) return interaction.send({ embeds: [notFound] })
} else if (args[0].name == 'gamertag') { } else if (args[0].name == 'gamertag') {
@@ -81,10 +81,10 @@ module.exports = {
const found = new EmbedBuilder() const found = new EmbedBuilder()
.setColor(client.config.Colors.Yellow) .setColor(client.config.Colors.Yellow)
.setDescription(`**Record Found**\n> The user <@${playerStat.discordID}> has linked the gamertag \` ${playerStat.gamertag} \`.`) .setDescription(`**Record Found**\n> The user <@${playerStat.discordID}> has linked the gamertag \` ${playerStat.gamertag} \`.`)
return interaction.send({ embeds: [found] }); return interaction.send({ embeds: [found] });
} }
}, },
}, },
} }
+4 -4
View File
@@ -12,7 +12,7 @@ module.exports = {
channel: ["VIEW_CHANNEL", "SEND_MESSAGES", "EMBED_LINKS"], channel: ["VIEW_CHANNEL", "SEND_MESSAGES", "EMBED_LINKS"],
member: [], member: [],
}, },
options: [], options: [],
SlashCommand: { SlashCommand: {
/** /**
* *
@@ -35,7 +35,7 @@ module.exports = {
const data = await FetchServerSettings(GuildDB.Nitrado, client, 'commands/player-list.js'); // Fetch server status const data = await FetchServerSettings(GuildDB.Nitrado, client, 'commands/player-list.js'); // Fetch server status
const e = data && data !== 1; // Check if data exists const e = data && data !== 1; // Check if data exists
const hostname = e ? data.data.gameserver.settings.config.hostname : 'N/A'; const hostname = e ? data.data.gameserver.settings.config.hostname : 'N/A';
const map = e ? Missions[data.data.gameserver.settings.config.mission] : 'N/A'; const map = e ? Missions[data.data.gameserver.settings.config.mission] : 'N/A';
const status = e ? data.data.gameserver.status : 'N/A'; const status = e ? data.data.gameserver.status : 'N/A';
@@ -57,7 +57,7 @@ module.exports = {
for (let i = 0; i < activePlayers.length; i++) { for (let i = 0; i < activePlayers.length; i++) {
des += `**- ${activePlayers[i].gamertag}**\n`; des += `**- ${activePlayers[i].gamertag}**\n`;
} }
const nodes = activePlayers.length === 0; const nodes = activePlayers.length === 0;
const serverEmbed = new EmbedBuilder() const serverEmbed = new EmbedBuilder()
.setColor(client.config.Colors.Default) .setColor(client.config.Colors.Default)
@@ -78,4 +78,4 @@ module.exports = {
return interaction.editReply({ embeds: [serverEmbed, activePlayersEmbed] }); return interaction.editReply({ embeds: [serverEmbed, activePlayersEmbed] });
}, },
}, },
} }
+24 -24
View File
@@ -22,7 +22,7 @@ module.exports = {
{ name: "Money", value: "money" }, { name: "Money", value: "money" },
{ name: "Total Time Played", value: "totalSessionTime" }, { name: "Total Time Played", value: "totalSessionTime" },
{ name: "Longest Game Session", value: "longestSessionTime" }, { name: "Longest Game Session", value: "longestSessionTime" },
{ name: "Kills", value: "kills" }, { name: "Kills", value: "kills" },
{ name: "Kill Streak", value: "killStreak" }, { name: "Kill Streak", value: "killStreak" },
{ name: "Best Kill Streak", value: "bestKillStreak" }, { name: "Best Kill Streak", value: "bestKillStreak" },
{ name: "Deaths", value: "deaths" }, { name: "Deaths", value: "deaths" },
@@ -56,7 +56,7 @@ module.exports = {
* @param {*} param3 * @param {*} param3
*/ */
run: async (client, interaction, args, { GuildDB }, start) => { run: async (client, interaction, args, { GuildDB }, start) => {
if (!client.exists(GuildDB.Nitrado) || !client.exists(GuildDB.Nitrado.ServerID) || !client.exists(GuildDB.Nitrado.UserID) || !client.exists(GuildDB.Nitrado.Auth)) { if (!client.exists(GuildDB.Nitrado) || !client.exists(GuildDB.Nitrado.ServerID) || !client.exists(GuildDB.Nitrado.UserID) || !client.exists(GuildDB.Nitrado.Auth)) {
const warnNitradoNotInitialized = new EmbedBuilder() const warnNitradoNotInitialized = new EmbedBuilder()
.setColor(client.config.Colors.Yellow) .setColor(client.config.Colors.Yellow)
@@ -69,7 +69,7 @@ module.exports = {
let discord = args[1] && args[1].name == 'discord' ? args[1].value : undefined; let discord = args[1] && args[1].name == 'discord' ? args[1].value : undefined;
let gamertag = args[1] && args[1].name == 'gamertag' ? args[1].value : undefined; let gamertag = args[1] && args[1].name == 'gamertag' ? args[1].value : undefined;
let self = !discord && !gamertag; // searching for self if both discord and gamertag are undefined; let self = !discord && !gamertag; // searching for self if both discord and gamertag are undefined;
let query; let query;
let leaderboard; let leaderboard;
let leaderboardPos; let leaderboardPos;
@@ -88,7 +88,7 @@ module.exports = {
leaderboardPos = leaderboard.indexOf(query); leaderboardPos = leaderboard.indexOf(query);
} else { } else {
leaderboard = await client.dbo.collection("players").aggregate([ leaderboard = await client.dbo.collection("players").aggregate([
{ $sort: { [`${category}`]: -1 } } { $sort: { [`${category}`]: -1 } }
]).toArray(); ]).toArray();
@@ -108,13 +108,13 @@ module.exports = {
category == 'bestkillStreak' ? "Best Killstreak" : category == 'bestkillStreak' ? "Best Killstreak" :
category == 'deaths' ? "Total Deaths" : category == 'deaths' ? "Total Deaths" :
category == 'deathStreak' ? "Current Deathstreak" : category == 'deathStreak' ? "Current Deathstreak" :
category == 'worstDeathStreak' ? "Worst Deathstreak" : category == 'worstDeathStreak' ? "Worst Deathstreak" :
category == 'longestKill' ? "Longest Kill" : category == 'longestKill' ? "Longest Kill" :
category == 'money' ? "Total Money" : category == 'money' ? "Total Money" :
category == 'totalSessionTime' ? "Total Time Played" : category == 'totalSessionTime' ? "Total Time Played" :
category == 'longestSessionTime' ? "Longest Game Session" : category == 'longestSessionTime' ? "Longest Game Session" :
category == 'KDR' ? "Kill Death Ratio" : category == 'KDR' ? "Kill Death Ratio" :
category == 'connections' ? "Times Connected" : category == 'connections' ? "Times Connected" :
category == 'shotsLanded' ? "Shots Landed" : category == 'shotsLanded' ? "Shots Landed" :
category == 'timesShot' ? "Times Shot" : category == 'timesShot' ? "Times Shot" :
category == 'combatRating' ? "Combat Rating" : 'N/A Error'; category == 'combatRating' ? "Combat Rating" : 'N/A Error';
@@ -134,14 +134,14 @@ module.exports = {
category == 'deaths' ? `${query.deaths} Death${query.deaths>1||query.deaths==0?'s':''}` : category == 'deaths' ? `${query.deaths} Death${query.deaths>1||query.deaths==0?'s':''}` :
category == 'deathStreak' ? `${query.deathStreak} Deathstreak` : category == 'deathStreak' ? `${query.deathStreak} Deathstreak` :
category == 'worstDeathStreak' ? `${query.worstDeathStreak} Deathstreak` : category == 'worstDeathStreak' ? `${query.worstDeathStreak} Deathstreak` :
category == 'longestKill' ? `${query.longestKill}m` : category == 'longestKill' ? `${query.longestKill}m` :
category == 'money' ? `$${(query.user.guilds[GuildDB.serverID].balance).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2})}` : category == 'money' ? `$${(query.user.guilds[GuildDB.serverID].balance).toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2})}` :
category == 'KDR' ? `${query.KDR.toFixed(2)} KDR` : category == 'KDR' ? `${query.KDR.toFixed(2)} KDR` :
category == 'connections' ? `${query.connections} connections` : category == 'connections' ? `${query.connections} connections` :
category == 'combatRating' ? `${query.combatRating}` : 'N/A Error'; category == 'combatRating' ? `${query.combatRating}` : 'N/A Error';
statsEmbed.addFields({ name: 'Leaderboard Position', value: `# ${leaderboardPos}`, inline: true }); statsEmbed.addFields({ name: 'Leaderboard Position', value: `# ${leaderboardPos}`, inline: true });
if ((category == 'shotsLanded' || category == 'timesShot') && !client.exists(query.shotsLanded)) query = insertPVPstats(query); if ((category == 'shotsLanded' || category == 'timesShot') && !client.exists(query.shotsLanded)) query = insertPVPstats(query);
if (category == 'totalSessionTime') { if (category == 'totalSessionTime') {
@@ -154,11 +154,11 @@ module.exports = {
{ name: 'Longest Game Session', value: client.secondsToDhms(query.longestSessionTime), inline: true }, { name: 'Longest Game Session', value: client.secondsToDhms(query.longestSessionTime), inline: true },
{ name: 'Last Session Time', value: client.secondsToDhms(query.lastSessionTime), inline: true } { name: 'Last Session Time', value: client.secondsToDhms(query.lastSessionTime), inline: true }
); );
} else if (category == 'shotsLanded') { } else if (category == 'shotsLanded') {
statsEmbed.addFields( statsEmbed.addFields(
{ name: 'Total Shots Landed', value: `${query.shotsLanded}`, inline: true }, { name: 'Total Shots Landed', value: `${query.shotsLanded}`, inline: true },
{ name: 'View Weapon stats', value: `</weapon-stats:1169369568104415262>`, inline: true } { name: 'View Weapon stats', value: `</weapon-stats:1169369568104415262>`, inline: true }
); );
const chart = { const chart = {
type: 'bar', type: 'bar',
@@ -189,18 +189,18 @@ module.exports = {
}, },
}, },
}; };
const encodedChart = encodeURIComponent(JSON.stringify(chart)); const encodedChart = encodeURIComponent(JSON.stringify(chart));
const chartURL = `https://quickchart.io/chart?bkg=${encodeURIComponent("#ded8d7")}&c=${encodedChart}`; const chartURL = `https://quickchart.io/chart?bkg=${encodeURIComponent("#ded8d7")}&c=${encodedChart}`;
statsEmbed.setImage(chartURL); statsEmbed.setImage(chartURL);
} else if (category == 'timesShot') { } else if (category == 'timesShot') {
statsEmbed.addFields( statsEmbed.addFields(
{ name: 'Total Times Shot', value: `${query.timesShot}`, inline: true }, { name: 'Total Times Shot', value: `${query.timesShot}`, inline: true },
{ name: 'View Weapon stats', value: `</weapon-stats:1169369568104415262>`, inline: true }, { name: 'View Weapon stats', value: `</weapon-stats:1169369568104415262>`, inline: true },
); );
const chart = { const chart = {
type: 'bar', type: 'bar',
data: { data: {
@@ -230,12 +230,12 @@ module.exports = {
}, },
}, },
}; };
const encodedChart = encodeURIComponent(JSON.stringify(chart)); const encodedChart = encodeURIComponent(JSON.stringify(chart));
const chartURL = `https://quickchart.io/chart?bkg=${encodeURIComponent("#ded8d7")}&c=${encodedChart}`; const chartURL = `https://quickchart.io/chart?bkg=${encodeURIComponent("#ded8d7")}&c=${encodedChart}`;
statsEmbed.setImage(chartURL); statsEmbed.setImage(chartURL);
} else if (category == 'combatRating') { } else if (category == 'combatRating') {
let data = query.combatRatingHistory; let data = query.combatRatingHistory;
@@ -318,8 +318,8 @@ module.exports = {
statsEmbed.setImage(chartURL); statsEmbed.setImage(chartURL);
} else statsEmbed.addFields({ name: title, value: stats, inline: true }); } else statsEmbed.addFields({ name: title, value: stats, inline: true });
return interaction.send({ embeds: [statsEmbed] }); return interaction.send({ embeds: [statsEmbed] });
}, },
}, },
} }
+5 -5
View File
@@ -11,7 +11,7 @@ module.exports = {
permissions: { permissions: {
channel: ["VIEW_CHANNEL", "SEND_MESSAGES", "EMBED_LINKS"], channel: ["VIEW_CHANNEL", "SEND_MESSAGES", "EMBED_LINKS"],
member: ["MANAGE_GUILD"], member: ["MANAGE_GUILD"],
}, },
options: [{ options: [{
name: "duration", name: "duration",
description: "Select the duration of the emp (30 or 60 minutes)", description: "Select the duration of the emp (30 or 60 minutes)",
@@ -32,7 +32,7 @@ module.exports = {
* @param {*} param3 * @param {*} param3
*/ */
run: async (client, interaction, args, { GuildDB }) => { run: async (client, interaction, args, { GuildDB }) => {
if (!client.exists(GuildDB.Nitrado) || !client.exists(GuildDB.Nitrado.ServerID) || !client.exists(GuildDB.Nitrado.UserID) || !client.exists(GuildDB.Nitrado.Auth)) { if (!client.exists(GuildDB.Nitrado) || !client.exists(GuildDB.Nitrado.ServerID) || !client.exists(GuildDB.Nitrado.UserID) || !client.exists(GuildDB.Nitrado.Auth)) {
const warnNitradoNotInitialized = new EmbedBuilder() const warnNitradoNotInitialized = new EmbedBuilder()
.setColor(client.config.Colors.Yellow) .setColor(client.config.Colors.Yellow)
@@ -45,7 +45,7 @@ module.exports = {
const duration = args[0].value; const duration = args[0].value;
let banking = await client.dbo.collection("users").findOne({"user.userID": interaction.member.user.id}).then(banking => banking); let banking = await client.dbo.collection("users").findOne({"user.userID": interaction.member.user.id}).then(banking => banking);
if (!banking) { if (!banking) {
banking = await createUser(interaction.member.user.id, GuildDB.serverID, GuildDB.startingBalance, client) banking = await createUser(interaction.member.user.id, GuildDB.serverID, GuildDB.startingBalance, client)
if (!client.exists(banking)) return client.sendInternalError(interaction, err); if (!client.exists(banking)) return client.sendInternalError(interaction, err);
@@ -67,13 +67,13 @@ module.exports = {
const price = duration == 30 ? GuildDB.empPrice : GuildDB.empPrice * 2; const price = duration == 30 ? GuildDB.empPrice : GuildDB.empPrice * 2;
const newBalance = banking.guilds[GuildDB.serverID].balance - price; const newBalance = banking.guilds[GuildDB.serverID].balance - price;
if (GuildDB.alarms.length == 0) return interaction.send({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Default).setDescription('**Notice:** No Existing Alarms to EMP.')], flags: (1 << 6) }); if (GuildDB.alarms.length == 0) return interaction.send({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Default).setDescription('**Notice:** No Existing Alarms to EMP.')], flags: (1 << 6) });
client.dbo.collection("users").updateOne({"user.userID":interaction.member.user.id},{$set:{[`user.guilds.${GuildDB.serverID}.balance`]:newBalance}}, (err, res) => { client.dbo.collection("users").updateOne({"user.userID":interaction.member.user.id},{$set:{[`user.guilds.${GuildDB.serverID}.balance`]:newBalance}}, (err, res) => {
if (err) return client.sendInternalError(interaction, err); if (err) return client.sendInternalError(interaction, err);
}); });
let alarms = new StringSelectMenuBuilder() let alarms = new StringSelectMenuBuilder()
.setCustomId(`EMPAlarmSelect-${interaction.member.user.id}`) .setCustomId(`EMPAlarmSelect-${interaction.member.user.id}`)
.setPlaceholder(`Select an Alarm to EMP.`) .setPlaceholder(`Select an Alarm to EMP.`)
+2 -2
View File
@@ -39,7 +39,7 @@ module.exports = {
* @param {*} param3 * @param {*} param3
*/ */
run: async (client, interaction, args, { GuildDB }) => { run: async (client, interaction, args, { GuildDB }) => {
if (!client.exists(GuildDB.Nitrado) || !client.exists(GuildDB.Nitrado.ServerID) || !client.exists(GuildDB.Nitrado.UserID) || !client.exists(GuildDB.Nitrado.Auth)) { if (!client.exists(GuildDB.Nitrado) || !client.exists(GuildDB.Nitrado.ServerID) || !client.exists(GuildDB.Nitrado.UserID) || !client.exists(GuildDB.Nitrado.Auth)) {
const warnNitradoNotInitialized = new EmbedBuilder() const warnNitradoNotInitialized = new EmbedBuilder()
.setColor(client.config.Colors.Yellow) .setColor(client.config.Colors.Yellow)
@@ -72,7 +72,7 @@ module.exports = {
} }
const newBalance = banking.guilds[GuildDB.serverID].balance - GuildDB.uavPrice; const newBalance = banking.guilds[GuildDB.serverID].balance - GuildDB.uavPrice;
client.dbo.collection("users").updateOne({"user.userID":interaction.member.user.id},{$set:{[`user.guilds.${GuildDB.serverID}.balance`]:newBalance}}, (err, res) => { client.dbo.collection("users").updateOne({"user.userID":interaction.member.user.id},{$set:{[`user.guilds.${GuildDB.serverID}.balance`]:newBalance}}, (err, res) => {
if (err) return client.sendInternalError(interaction, err); if (err) return client.sendInternalError(interaction, err);
}); });
+4 -4
View File
@@ -56,7 +56,7 @@ module.exports = {
) )
return interaction.send({ embeds: [prompt], components: [opt], flags: (1 << 6) }); return interaction.send({ embeds: [prompt], components: [opt], flags: (1 << 6) });
}, },
}, },
@@ -66,7 +66,7 @@ module.exports = {
run: async (client, interaction, GuildDB) => { run: async (client, interaction, GuildDB) => {
const choice = interaction.customId.split('-')[1]; const choice = interaction.customId.split('-')[1];
const targetUserID = interaction.customId.split('-')[2]; const targetUserID = interaction.customId.split('-')[2];
if (!interaction.customId.endsWith(interaction.member.user.id)) { if (!interaction.customId.endsWith(interaction.member.user.id)) {
return interaction.reply({ return interaction.reply({
content: "This button is not for you", content: "This button is not for you",
@@ -79,7 +79,7 @@ module.exports = {
.setTitle('Successfully reset user\'s data') .setTitle('Successfully reset user\'s data')
let banking = await client.dbo.collection("users").findOne({"user.userID": interaction.member.user.id}).then(banking => banking); let banking = await client.dbo.collection("users").findOne({"user.userID": interaction.member.user.id}).then(banking => banking);
let bankingReset = false; let bankingReset = false;
if (!banking) bankingReset = true if (!banking) bankingReset = true
else banking = banking.user else banking = banking.user
@@ -108,4 +108,4 @@ module.exports = {
} }
} }
} }
} }
+12 -12
View File
@@ -189,7 +189,7 @@ module.exports = {
return interaction.send({ embeds: [prompt], components: [opt], flags: (1 << 6) }); return interaction.send({ embeds: [prompt], components: [opt], flags: (1 << 6) });
} }
if (!client.exists(GuildDB.Nitrado) || !client.exists(GuildDB.Nitrado.ServerID)) return interaction.send({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Red).setDescription(`**Notice:**\nThis Discord guild has not been configured with a Nitrado DayZ server. To configure your guild, use </server initialize:1166877457559851011>`)] }); if (!client.exists(GuildDB.Nitrado) || !client.exists(GuildDB.Nitrado.ServerID)) return interaction.send({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Red).setDescription(`**Notice:**\nThis Discord guild has not been configured with a Nitrado DayZ server. To configure your guild, use </server initialize:1166877457559851011>`)] });
if (args[0].name == 'credentials-status') { if (args[0].name == 'credentials-status') {
@@ -263,7 +263,7 @@ module.exports = {
} else if (args[0].name == "auto-restart") { } else if (args[0].name == "auto-restart") {
let msg = 'Auto server restart periodic check enabled.'; let msg = 'Auto server restart periodic check enabled.';
let pref = 0; let pref = 0;
// Enable/Disable a 10min periodic server status check. // Enable/Disable a 10min periodic server status check.
if (!client.arIntervalIds.has(GuildDB.serverID)) { if (!client.arIntervalIds.has(GuildDB.serverID)) {
client.arIntervalIds.set(GuildDB.serverID, setInterval(CheckServerStatus, client.arInterval, GuildDB.Nitrado, client)); client.arIntervalIds.set(GuildDB.serverID, setInterval(CheckServerStatus, client.arInterval, GuildDB.Nitrado, client));
@@ -283,7 +283,7 @@ module.exports = {
}); });
return interaction.send({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Yellow).setDescription(msg)], flags: (1 << 6) }); return interaction.send({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Yellow).setDescription(msg)], flags: (1 << 6) });
} else if (args[0].name == 'disable-base-damage') { } else if (args[0].name == 'disable-base-damage') {
const preference = args[0].options[0].value; const preference = args[0].options[0].value;
await interaction.deferReply({ flags: (1 << 6) }); await interaction.deferReply({ flags: (1 << 6) });
@@ -292,7 +292,7 @@ module.exports = {
if (disableBaseDamageFailed) return interaction.editReply({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Red).setDescription('Failed to set **disableBaseDamage**. This can result from a variety of reasons:\nNitrado servers may be experiencing issues\nThe DayZ.R Bot may be experiencing issues\nYour Nitrado credentials were entered incorrectly')], flags: (1 << 6) }); if (disableBaseDamageFailed) return interaction.editReply({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Red).setDescription('Failed to set **disableBaseDamage**. This can result from a variety of reasons:\nNitrado servers may be experiencing issues\nThe DayZ.R Bot may be experiencing issues\nYour Nitrado credentials were entered incorrectly')], flags: (1 << 6) });
return interaction.editReply({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Green).setDescription(`Successfully set **disableBaseDamage** to ${preference}.\nRestart the DayZ server to apply these changes.`)], flags: (1 << 6) }); return interaction.editReply({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Green).setDescription(`Successfully set **disableBaseDamage** to ${preference}.\nRestart the DayZ server to apply these changes.`)], flags: (1 << 6) });
} else if (args[0].name == 'disable-container-damage') { } else if (args[0].name == 'disable-container-damage') {
const preference = args[0].options[0].value; const preference = args[0].options[0].value;
await interaction.deferReply({ flags: (1 << 6) }); await interaction.deferReply({ flags: (1 << 6) });
@@ -301,16 +301,16 @@ module.exports = {
if (disableContainerDamageFailed) return interaction.editReply({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Red).setDescription('Failed to set **disableContainerDamage**. This can result from a variety of reasons:\nNitrado servers may be experiencing issues\nThe DayZ.R Bot may be experiencing issues\nYour Nitrado credentials were entered incorrectly')], flags: (1 << 6) }); if (disableContainerDamageFailed) return interaction.editReply({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Red).setDescription('Failed to set **disableContainerDamage**. This can result from a variety of reasons:\nNitrado servers may be experiencing issues\nThe DayZ.R Bot may be experiencing issues\nYour Nitrado credentials were entered incorrectly')], flags: (1 << 6) });
return interaction.editReply({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Green).setDescription(`Successfully set **disableContainerDamage** to ${preference}.\nRestart the DayZ server to apply these changes.`)], flags: (1 << 6) }); return interaction.editReply({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Green).setDescription(`Successfully set **disableContainerDamage** to ${preference}.\nRestart the DayZ server to apply these changes.`)], flags: (1 << 6) });
} }
} }
}, },
Interactions: { Interactions: {
NitradoCredentials: { NitradoCredentials: {
run: async(client, interaction, GuildDB) => { run: async(client, interaction, GuildDB) => {
if (!interaction.customId.endsWith(interaction.member.user.id)) if (!interaction.customId.endsWith(interaction.member.user.id))
return interaction.reply({ content: 'This interaction is not for you', flags: (1 << 6) }); return interaction.reply({ content: 'This interaction is not for you', flags: (1 << 6) });
const Nitrado = { const Nitrado = {
@@ -344,21 +344,21 @@ module.exports = {
const NitradoCredentials = new ModalBuilder() const NitradoCredentials = new ModalBuilder()
.setTitle('Connect your Nitrado Server') .setTitle('Connect your Nitrado Server')
.setCustomId(`NitradoCredentials-${interaction.member.user.id}`); .setCustomId(`NitradoCredentials-${interaction.member.user.id}`);
const ServerID = new ActionRowBuilder().addComponents(new TextInputBuilder() const ServerID = new ActionRowBuilder().addComponents(new TextInputBuilder()
.setCustomId('ServerIDInput') .setCustomId('ServerIDInput')
.setLabel('Your Nitrado Server ID') .setLabel('Your Nitrado Server ID')
.setStyle(TextInputStyle.Short) .setStyle(TextInputStyle.Short)
.setRequired(true) .setRequired(true)
); );
const UserID = new ActionRowBuilder().addComponents(new TextInputBuilder() const UserID = new ActionRowBuilder().addComponents(new TextInputBuilder()
.setCustomId('UserIDInput') .setCustomId('UserIDInput')
.setLabel('Your Nitrado User ID') .setLabel('Your Nitrado User ID')
.setStyle(TextInputStyle.Short) .setStyle(TextInputStyle.Short)
.setRequired(true) .setRequired(true)
); );
const Auth = new ActionRowBuilder().addComponents(new TextInputBuilder() const Auth = new ActionRowBuilder().addComponents(new TextInputBuilder()
.setCustomId('AuthInput') .setCustomId('AuthInput')
.setLabel('Your Nitrado Authentication Token') .setLabel('Your Nitrado Authentication Token')
@@ -366,9 +366,9 @@ module.exports = {
.setStyle(TextInputStyle.Short) .setStyle(TextInputStyle.Short)
.setRequired(true) .setRequired(true)
); );
NitradoCredentials.addComponents(ServerID, UserID, Auth); NitradoCredentials.addComponents(ServerID, UserID, Auth);
// TODO: Figure out how to remove the prompt buttons and the embed. // TODO: Figure out how to remove the prompt buttons and the embed.
return interaction.showModal(NitradoCredentials); return interaction.showModal(NitradoCredentials);
} else { } else {
+8 -8
View File
@@ -61,7 +61,7 @@ module.exports = {
return interaction.send({ embeds: [warnNitradoNotInitialized], flags: (1 << 6) }); return interaction.send({ embeds: [warnNitradoNotInitialized], flags: (1 << 6) });
} }
let discord = args[1] && args[1].name == 'discord' ? args[1].value : undefined; let discord = args[1] && args[1].name == 'discord' ? args[1].value : undefined;
let gamertag = args[1] && args[1].name == 'gamertag' ? args[1].value : undefined; let gamertag = args[1] && args[1].name == 'gamertag' ? args[1].value : undefined;
let self = !discord && !gamertag; // searching for self if both discord and gamertag are undefined let self = !discord && !gamertag; // searching for self if both discord and gamertag are undefined
@@ -71,13 +71,13 @@ module.exports = {
// Searching by Discord // Searching by Discord
if (discord) query = await client.dbo.collection("players").findOne({"discordID": discord}); if (discord) query = await client.dbo.collection("players").findOne({"discordID": discord});
// Searching by Gamertag // Searching by Gamertag
if (gamertag) query = await client.dbo.collection("players").findOne({"gamertag": gamertag}); if (gamertag) query = await client.dbo.collection("players").findOne({"gamertag": gamertag});
// Searching for self // Searching for self
if (self) query = await client.dbo.collection("players").findOne({"discordID": interaction.member.user.id}); if (self) query = await client.dbo.collection("players").findOne({"discordID": interaction.member.user.id});
if (!client.exists(query)) return interaction.send({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Yellow).setDescription(`**Not Found** Unable to find any records with the gamertag or user provided.`)] }); if (!client.exists(query)) return interaction.send({ embeds: [new EmbedBuilder().setColor(client.config.Colors.Yellow).setDescription(`**Not Found** Unable to find any records with the gamertag or user provided.`)] });
let weaponSelect = new StringSelectMenuBuilder() let weaponSelect = new StringSelectMenuBuilder()
@@ -103,7 +103,7 @@ module.exports = {
run: async(client, interaction, GuildDB) => { run: async(client, interaction, GuildDB) => {
if (!interaction.customId.endsWith(interaction.member.user.id)) if (!interaction.customId.endsWith(interaction.member.user.id))
return interaction.reply({ content: 'This interaction is not for you', flags: (1 << 6) }); return interaction.reply({ content: 'This interaction is not for you', flags: (1 << 6) });
const weapon = interaction.values[0].split("_")[1]; const weapon = interaction.values[0].split("_")[1];
const weaponClass = interaction.values[0].split("_")[0]; const weaponClass = interaction.values[0].split("_")[0];
const playerID = interaction.customId.split('-')[1]; const playerID = interaction.customId.split('-')[1];
@@ -163,12 +163,12 @@ module.exports = {
}, },
}, },
}; };
const encodedChart = encodeURIComponent(JSON.stringify(chart)); const encodedChart = encodeURIComponent(JSON.stringify(chart));
const chartURL = `https://quickchart.io/chart?bkg=${encodeURIComponent("#ded8d7")}&c=${encodedChart}`; const chartURL = `https://quickchart.io/chart?bkg=${encodeURIComponent("#ded8d7")}&c=${encodedChart}`;
stats.setImage(chartURL); stats.setImage(chartURL);
return interaction.update({ components: [], embeds: [stats] }); return interaction.update({ components: [], embeds: [stats] });
} }
} }
+1 -1
View File
@@ -18,7 +18,7 @@ const PresenceStatus = {
}; };
module.exports = { module.exports = {
Dev: process.env.Dev || "DEV.", Dev: process.env.Dev || "DEV.",
Version: package.version, // (major).(minor).(patch) Version: package.version, // (major).(minor).(patch)
Admins: ["362791661274660874", "329371697570381824"], // Admins of the bot Admins: ["362791661274660874", "329371697570381824"], // Admins of the bot
SupportServer: "https://discord.gg/KVFJCvvFtK", // Support Server Link SupportServer: "https://discord.gg/KVFJCvvFtK", // Support Server Link
+94 -94
View File
@@ -32,286 +32,286 @@ const destinations = {
coord: [1481.47, 11933.38], coord: [1481.47, 11933.38],
}, { }, {
name: 'Novaya Petrovka', name: 'Novaya Petrovka',
coord: [3437.31, 13010.46], coord: [3437.31, 13010.46],
}, { }, {
name: 'Zaprundoe', name: 'Zaprundoe',
coord: [5171.52, 12753.83], coord: [5171.52, 12753.83],
}, { }, {
name: 'Ratnoe', name: 'Ratnoe',
coord: [6174.72, 12722.72], coord: [6174.72, 12722.72],
}, { }, {
name: 'Severograd', name: 'Severograd',
coord: [7986.69, 12699.39], coord: [7986.69, 12699.39],
}, { }, {
name: 'Svergino', name: 'Svergino',
coord: [9464.27, 13718.14], coord: [9464.27, 13718.14],
}, { }, {
name: 'West Novodmitrovsk', name: 'West Novodmitrovsk',
coord: [10988.51, 14344.17], coord: [10988.51, 14344.17],
}, { }, {
name: 'East Novodmitrovsk', name: 'East Novodmitrovsk',
coord: [12143.35, 14336.39], coord: [12143.35, 14336.39],
}, { }, {
name: 'North Novodmitrovsk', name: 'North Novodmitrovsk',
coord: [11544.55, 14764.11], coord: [11544.55, 14764.11],
}, { }, {
name: 'Cernaya Polyana', name: 'Cernaya Polyana',
coord: [12112.25, 13760.91], coord: [12112.25, 13760.91],
}, { }, {
name: 'Turovo', name: 'Turovo',
coord: [13585.94, 14060.32], coord: [13585.94, 14060.32],
}, { }, {
name: 'Karmanovka', name: 'Karmanovka',
coord: [12679.95, 14678.56], coord: [12679.95, 14678.56],
}, { }, {
name: 'Dobroe', name: 'Dobroe',
coord: [12956.02, 15051.85], coord: [12956.02, 15051.85],
}, { }, {
name: 'Belaya Polyana', name: 'Belaya Polyana',
coord: [14161.41, 14942.97], coord: [14161.41, 14942.97],
}, { }, {
name: 'Svetlojarsk', name: 'Svetlojarsk',
coord: [14001.99, 13251.54], coord: [14001.99, 13251.54],
}, { }, {
name: 'Olsha', name: 'Olsha',
coord: [13348.75, 12897.70], coord: [13348.75, 12897.70],
}, { }, {
name: 'Black Lake', name: 'Black Lake',
coord: [13438.18, 12127.80], coord: [13438.18, 12127.80],
}, { }, {
name: 'Krasno Airfield', name: 'Krasno Airfield',
coord: [12018.93, 12586.63], coord: [12018.93, 12586.63],
}, { }, {
name: 'Krasnostav', name: 'Krasnostav',
coord: [11163.49, 12248.34], coord: [11163.49, 12248.34],
}, { }, {
name: 'Rify', name: 'Rify',
coord: [13811.46, 11210.15], coord: [13811.46, 11210.15],
}, { }, {
name: 'Khelmn', name: 'Khelmn',
coord: [12287.22, 10840.75], coord: [12287.22, 10840.75],
}, { }, {
name: 'North Berezino', name: 'North Berezino',
coord: [12905.47, 10059.19], coord: [12905.47, 10059.19],
}, { }, {
name: 'Central Berezino', name: 'Central Berezino',
coord: [12423.31, 9600.36], coord: [12423.31, 9600.36],
}, { }, {
name: 'South Berezino', name: 'South Berezino',
coord: [11968.38, 9079.32], coord: [11968.38, 9079.32],
}, { }, {
name: 'Dubrovka', name: 'Dubrovka',
coord: [10362.48, 9837.55], coord: [10362.48, 9837.55],
}, { }, {
name: 'Vyshnaya Dubrovka', name: 'Vyshnaya Dubrovka',
coord: [9891.99, 10432.47], coord: [9891.99, 10432.47],
}, { }, {
name: 'North Solnichniy', name: 'North Solnichniy',
coord: [13123.22, 7100.15] coord: [13123.22, 7100.15]
}, { }, {
name: 'Solnichniy', name: 'Solnichniy',
coord: [13418.74, 6248.60], coord: [13418.74, 6248.60],
}, { }, {
name: 'Orlovets', name: 'Orlovets',
coord: [12201.68, 7275.12], coord: [12201.68, 7275.12],
}, { }, {
name: 'Polana', name: 'Polana',
coord: [10743.54, 8134.45], coord: [10743.54, 8134.45],
}, { }, {
name: 'Gorka', name: 'Gorka',
coord: [9487.60, 8811.03], coord: [9487.60, 8811.03],
}, { }, {
name: 'Radio Zenit', name: 'Radio Zenit',
coord: [8128.62, 9230.97], coord: [8128.62, 9230.97],
}, { }, {
name: 'Dolina', name: 'Dolina',
coord: [11276.25, 6594.66], coord: [11276.25, 6594.66],
}, { }, {
name: 'Devil\'s Castle', name: 'Devil\'s Castle',
coord: [6890.18, 11439.56], coord: [6890.18, 11439.56],
}, { }, {
name: 'Zolotar Castle (Black Mountain)', name: 'Zolotar Castle (Black Mountain)',
coord: [10189.45, 12038.37], coord: [10189.45, 12038.37],
}, { }, {
name: 'Kamensk', name: 'Kamensk',
coord: [6684.09, 14410.27], coord: [6684.09, 14410.27],
}, { }, {
name: 'MB Kamensk', name: 'MB Kamensk',
coord: [7862.27, 14698.01], coord: [7862.27, 14698.01],
}, { }, {
name: 'Quarry', name: 'Quarry',
coord: [8614.66, 13333.19], coord: [8614.66, 13333.19],
}, { }, {
name: 'Nagornoe', name: 'Nagornoe',
coord: [9262.08, 14620.24], coord: [9262.08, 14620.24],
}, { }, {
name: 'Stary Yar', name: 'Stary Yar',
coord: [4965.44, 15028.52], coord: [4965.44, 15028.52],
}, { }, {
name: 'Tisy', name: 'Tisy',
coord: [3425.65, 14783.55], coord: [3425.65, 14783.55],
}, { }, {
name: 'MB Tisy', name: 'MB Tisy',
coord: [1543.68, 14052.54], coord: [1543.68, 14052.54],
}, { }, {
name: 'Topolniki', name: 'Topolniki',
coord: [2834.62, 12388.32], coord: [2834.62, 12388.32],
}, { }, {
name: 'North NWAF', name: 'North NWAF',
coord: [4024.45, 11738.96], coord: [4024.45, 11738.96],
}, { }, {
name: 'Central NWAF', name: 'Central NWAF',
coord: [4249.98, 10766.87], coord: [4249.98, 10766.87],
}, { }, {
name: 'South NWAF', name: 'South NWAF',
coord: [4864.34, 9588.70], coord: [4864.34, 9588.70],
}, { }, {
name: 'Grishino', name: 'Grishino',
coord: [5976.41, 10300.27], coord: [5976.41, 10300.27],
}, { }, {
name: 'Kabanino', name: 'Kabanino',
coord: [5284.28, 8604.94], coord: [5284.28, 8604.94],
}, { }, {
name: 'Stary Sobor', name: 'Stary Sobor',
coord: [6058.07, 7792.28], coord: [6058.07, 7792.28],
}, { }, {
name: 'Novy Sobor', name: 'Novy Sobor',
coord: [7088.48, 7648.41], coord: [7088.48, 7648.41],
}, { }, {
name: 'MB VMC', name: 'MB VMC',
coord: [4483.28, 8286.10], coord: [4483.28, 8286.10],
}, { }, {
name: 'Vybor', name: 'Vybor',
coord: [3814.48, 8904.35], coord: [3814.48, 8904.35],
}, { }, {
name: 'Pustoshka', name: 'Pustoshka',
coord: [3060.14, 7905.04], coord: [3060.14, 7905.04],
}, { }, {
name: 'Lopatino', name: 'Lopatino',
coord: [2725.74, 10016.42], coord: [2725.74, 10016.42],
}, { }, {
name: 'Vavilovo', name: 'Vavilovo',
coord: [2228.03, 11039.06], coord: [2228.03, 11039.06],
}, { }, {
name: 'Kalinka', name: 'Kalinka',
coord: [3301.22, 11249.03], coord: [3301.22, 11249.03],
}, { }, {
name: 'Biathlon Arena', name: 'Biathlon Arena',
coord: [493.82, 11093.50], coord: [493.82, 11093.50],
}, { }, {
name: 'Krona Castle', name: 'Krona Castle',
coord: [1395.92, 9246.52], coord: [1395.92, 9246.52],
}, { }, {
name: 'Myshkino', name: 'Myshkino',
coord: [2010.28, 7317.90], coord: [2010.28, 7317.90],
}, { }, {
name: 'Polesovo', name: 'Polesovo',
coord: [5929.75, 13523.72], coord: [5929.75, 13523.72],
}, { }, {
name: 'Kalinovka', name: 'Kalinovka',
coord: [7516.20, 13457.62], coord: [7516.20, 13457.62],
}, { }, {
name: 'Skalisty Island', name: 'Skalisty Island',
coord: [13620.93, 3040.70], coord: [13620.93, 3040.70],
}, { }, {
name: 'Kamyshovo', name: 'Kamyshovo',
coord: [12061.70, 3526.74], coord: [12061.70, 3526.74],
}, { }, {
name: 'Elektrozavodsk', name: 'Elektrozavodsk',
coord: [10273.05, 2010.28], coord: [10273.05, 2010.28],
}, { }, {
name: 'Cherno. Prigorodki', name: 'Cherno. Prigorodki',
coord: [7733.95, 3182.62], coord: [7733.95, 3182.62],
}, { }, {
name: 'Chernogorsk', name: 'Chernogorsk',
coord: [6573.28, 2544.93], coord: [6573.28, 2544.93],
}, { }, {
name: 'Cherno. Dubovo', name: 'Cherno. Dubovo',
coord: [6672.43, 3616.18], coord: [6672.43, 3616.18],
}, { }, {
name: 'Cherno. Vysotovo', name: 'Cherno. Vysotovo',
coord: [5686.73, 2552.71], coord: [5686.73, 2552.71],
}, { }, {
name: 'Cherno. Novoselki', name: 'Cherno. Novoselki',
coord: [6139.72, 3239.01], coord: [6139.72, 3239.01],
}, { }, {
name: 'Balota Airfield', name: 'Balota Airfield',
coord: [5054.87, 2344.68], coord: [5054.87, 2344.68],
}, { }, {
name: 'Balota', name: 'Balota',
coord: [4463.84, 2441.89], coord: [4463.84, 2441.89],
}, { }, {
name: 'Komarovo', name: 'Komarovo',
coord: [3670.61, 2457.44], coord: [3670.61, 2457.44],
}, { }, {
name: 'Prison Island', name: 'Prison Island',
coord: [2702.41, 1296.77], coord: [2702.41, 1296.77],
}, { }, {
name: 'Kamenka', name: 'Kamenka',
coord: [1905.30, 2231.92], coord: [1905.30, 2231.92],
}, { }, {
name: 'MB Pavlovo', name: 'MB Pavlovo',
coord: [2130.82, 3363.43], coord: [2130.82, 3363.43],
}, { }, {
name: 'Pavlovo', name: 'Pavlovo',
coord: [1675.88, 3845.59], coord: [1675.88, 3845.59],
}, { }, {
name: 'Bor', name: 'Bor',
coord: [3324.55, 3985.57], coord: [3324.55, 3985.57],
}, { }, {
name: 'Nadezhdino', name: 'Nadezhdino',
coord: [5867.54, 4790.46], coord: [5867.54, 4790.46],
}, { }, {
name: 'Mogilevka', name: 'Mogilevka',
coord: [7570.64, 5140.41], coord: [7570.64, 5140.41],
}, { }, {
name: 'Pusta', name: 'Pusta',
coord: [9192.09, 3861.14], coord: [9192.09, 3861.14],
}, { }, {
name: 'Staroye', name: 'Staroye',
coord: [10136.96, 5443.71], coord: [10136.96, 5443.71],
}, { }, {
name: 'MSTA', name: 'MSTA',
coord: [11334.57, 5486.48], coord: [11334.57, 5486.48],
}, { }, {
name: 'Tulga', name: 'Tulga',
coord: [12753.83, 4405.51], coord: [12753.83, 4405.51],
}, { }, {
name: 'Guglovo', name: 'Guglovo',
coord: [8437.74, 6680.21], coord: [8437.74, 6680.21],
}, { }, {
name: 'Vyshnoye', name: 'Vyshnoye',
coord: [6586.88, 6054.18], coord: [6586.88, 6054.18],
}, { }, {
name: 'Rogovo', name: 'Rogovo',
coord: [4763.24, 6765.75], coord: [4763.24, 6765.75],
}, { }, {
name: 'Pulkovo', name: 'Pulkovo',
coord: [4969.33, 5614.79], coord: [4969.33, 5614.79],
}, { }, {
name: 'Green Mountain', name: 'Green Mountain',
coord: [3707.55, 6003.63], coord: [3707.55, 6003.63],
}, { }, {
name: 'Zelenogorsk', name: 'Zelenogorsk',
coord: [2581.87, 5190.96], coord: [2581.87, 5190.96],
}, { }, {
name: 'Sosnovka', name: 'Sosnovka',
coord: [2527.43, 6369.14], coord: [2527.43, 6369.14],
}, { }, {
name: 'Plotina Tishina Damn', name: 'Plotina Tishina Damn',
coord: [1193.73, 6363.30], coord: [1193.73, 6363.30],
}, { }, {
name: 'Zvir', name: 'Zvir',
coord: [571.59, 5294.00], coord: [571.59, 5294.00],
}, { }, {
name: 'Shakhovka', name: 'Shakhovka',
coord: [9658.69, 6555.78], coord: [9658.69, 6555.78],
}, { }, {
name: 'Black Forrest', name: 'Black Forrest',
coord: [9021.00, 7792.28], coord: [9021.00, 7792.28],
}, { }, {
name: 'Nizhneye', name: 'Nizhneye',
coord: [12971.57, 8142.23], coord: [12971.57, 8142.23],
}, { }, {
name: 'Rog Castle', name: 'Rog Castle',
coord: [11249.03, 4281.09], coord: [11249.03, 4281.09],
@@ -681,4 +681,4 @@ const destinations = {
coord: [11165.63, 7910.63], coord: [11165.63, 7910.63],
}, },
], ],
} }
+4 -4
View File
@@ -57,7 +57,7 @@ module.exports = {
longestKill: 0, longestKill: 0,
deathStreak: 0, deathStreak: 0,
worstDeathStreak: 0, worstDeathStreak: 0,
// In depth PVP Stats // In depth PVP Stats
shotsLanded: 0, shotsLanded: 0,
timesShot: 0, timesShot: 0,
@@ -75,7 +75,7 @@ module.exports = {
highestCombatRating: 800, highestCombatRating: 800,
lowestCombatRating: 800, lowestCombatRating: 800,
combatRatingHistory: [800], combatRatingHistory: [800],
// General Session Data // General Session Data
lastConnectionDate: null, lastConnectionDate: null,
lastDisconnectionDate: null, lastDisconnectionDate: null,
@@ -87,13 +87,13 @@ module.exports = {
lastPos: [], lastPos: [],
time: null, time: null,
lastTime: null, lastTime: null,
// Session Stats // Session Stats
totalSessionTime: 0, totalSessionTime: 0,
lastSessionTime: 0, lastSessionTime: 0,
longestSessionTime: 0, longestSessionTime: 0,
connections: 0, connections: 0,
// Other // Other
bounties: [], bounties: [],
bountiesLength: 0, bountiesLength: 0,
+2 -2
View File
@@ -15,7 +15,7 @@ module.exports = {
"Signal Pistol": "https://static.wikia.nocookie.net/dayz_gamepedia/images/a/a7/Flaregun.png/revision/latest/scale-to-width-down/107?cb=20210501150913", "Signal Pistol": "https://static.wikia.nocookie.net/dayz_gamepedia/images/a/a7/Flaregun.png/revision/latest/scale-to-width-down/107?cb=20210501150913",
}, },
shotguns: { shotguns: {
"BK-12": "https://static.wikia.nocookie.net/dayz_gamepedia/images/c/cb/Izh18Shotgun.png/revision/latest/scale-to-width-down/256?cb=20220922184507", "BK-12": "https://static.wikia.nocookie.net/dayz_gamepedia/images/c/cb/Izh18Shotgun.png/revision/latest/scale-to-width-down/256?cb=20220922184507",
"BK-133": "https://static.wikia.nocookie.net/dayz_gamepedia/images/5/5c/MP-133-Shotgun.png/revision/latest/scale-to-width-down/256?cb=20210210190104", "BK-133": "https://static.wikia.nocookie.net/dayz_gamepedia/images/5/5c/MP-133-Shotgun.png/revision/latest/scale-to-width-down/256?cb=20210210190104",
"BK-43": "https://static.wikia.nocookie.net/dayz_gamepedia/images/c/c7/Izh43Shotgun.png/revision/latest/scale-to-width-down/256?cb=20210210185835", "BK-43": "https://static.wikia.nocookie.net/dayz_gamepedia/images/c/c7/Izh43Shotgun.png/revision/latest/scale-to-width-down/256?cb=20210210185835",
"Vaiga": "https://static.wikia.nocookie.net/dayz_gamepedia/images/c/c8/Vaiga.png/revision/latest/scale-to-width-down/256?cb=20220220185225", "Vaiga": "https://static.wikia.nocookie.net/dayz_gamepedia/images/c/c8/Vaiga.png/revision/latest/scale-to-width-down/256?cb=20220220185225",
@@ -65,7 +65,7 @@ module.exports = {
semiAutomaticRifles: { semiAutomaticRifles: {
"DMR": "https://static.wikia.nocookie.net/dayz_gamepedia/images/b/b4/M14.png/revision/latest/scale-to-width-down/350?cb=20231005142636", "DMR": "https://static.wikia.nocookie.net/dayz_gamepedia/images/b/b4/M14.png/revision/latest/scale-to-width-down/350?cb=20231005142636",
"SK 59/66": "https://static.wikia.nocookie.net/dayz_gamepedia/images/f/fe/SKS.png/revision/latest/scale-to-width-down/256?cb=20220517154633", "SK 59/66": "https://static.wikia.nocookie.net/dayz_gamepedia/images/f/fe/SKS.png/revision/latest/scale-to-width-down/256?cb=20220517154633",
"Sporter 22": "https://static.wikia.nocookie.net/dayz_gamepedia/images/5/5b/Sporter_22_Wood.png/revision/latest/scale-to-width-down/256?cb=20220518204154", "Sporter 22": "https://static.wikia.nocookie.net/dayz_gamepedia/images/5/5b/Sporter_22_Wood.png/revision/latest/scale-to-width-down/256?cb=20220518204154",
}, },
other: { other: {
"Crossbow": "https://static.wikia.nocookie.net/dayz_gamepedia/images/7/79/Crossbow.png/revision/latest/scale-to-width-down/212?cb=20180121164101", "Crossbow": "https://static.wikia.nocookie.net/dayz_gamepedia/images/7/79/Crossbow.png/revision/latest/scale-to-width-down/212?cb=20180121164101",
+1 -1
View File
@@ -1,3 +1,3 @@
module.exports = (client, guild) => { module.exports = (client, guild) => {
require("../util/RegisterSlashCommands").RegisterGuildCommands(client, guild.id); require("../util/RegisterSlashCommands").RegisterGuildCommands(client, guild.id);
}; };
+2 -2
View File
@@ -8,7 +8,7 @@ module.exports = async (client, interaction) => {
This file routes any menu, modal & button interactions This file routes any menu, modal & button interactions
from any command from any command
*/ */
let GuildDB = await GetGuild(client, interaction.guildId); let GuildDB = await GetGuild(client, interaction.guildId);
const interactionName = interaction.customId.split("-")[0]; const interactionName = interaction.customId.split("-")[0];
let interactionHandler = client.interactionHandlers.get(interactionName); let interactionHandler = client.interactionHandlers.get(interactionName);
@@ -18,4 +18,4 @@ module.exports = async (client, interaction) => {
} catch (err) { } catch (err) {
client.sendInternalError(interaction, err); client.sendInternalError(interaction, err);
} }
} }
+3 -3
View File
@@ -8,7 +8,7 @@ module.exports = {
if (!client.exists(guild.connectionLogsChannel)) return; if (!client.exists(guild.connectionLogsChannel)) return;
const channel = client.GetChannel(guild.connectionLogsChannel); const channel = client.GetChannel(guild.connectionLogsChannel);
if (!channel) return; if (!channel) return;
let newDt = await client.getDateEST(data.time); let newDt = await client.getDateEST(data.time);
let unixTime = Math.floor(newDt.getTime() / 1000); let unixTime = Math.floor(newDt.getTime() / 1000);
@@ -48,7 +48,7 @@ module.exports = {
// If lastHitBy (attacker) died after shooting this player // If lastHitBy (attacker) died after shooting this player
// then it does not count as combat logging, (the combat ended due to death) // then it does not count as combat logging, (the combat ended due to death)
let attacker = await client.dbo.collection("players").findOne({"gamertag": data.lastHitBy}); let attacker = await client.dbo.collection("players").findOne({"gamertag": data.lastHitBy});
if (attacker.lastDeathDate > data.lastDamageDate) return; if (attacker.lastDeathDate > data.lastDamageDate) return;
let unixTime = Math.floor(newDt.getTime() / 1000); let unixTime = Math.floor(newDt.getTime() / 1000);
const destination = nearest(data.pos, guild.Nitrado.Mission); const destination = nearest(data.pos, guild.Nitrado.Mission);
@@ -59,7 +59,7 @@ module.exports = {
const NAME = "DayZ.R Admin Logs"; const NAME = "DayZ.R Admin Logs";
const webhook = await GetWebhook(client, NAME, guild.connectionLogsChannel); const webhook = await GetWebhook(client, NAME, guild.connectionLogsChannel);
let content = { embeds: [combatLog] }; let content = { embeds: [combatLog] };
if (client.exists(guild.adminRole)) content.content = `<@&${guild.adminRole}>`; if (client.exists(guild.adminRole)) content.content = `<@&${guild.adminRole}>`;
WebhookSend(client, webhook, content); WebhookSend(client, webhook, content);
+10 -10
View File
@@ -96,7 +96,7 @@ module.exports = {
.setDescription(`**Zone Ping - <t:${unixTime}>**\n**${data.player}** was located within **${distance} meters** of the Zone **${alarm.name}**`) .setDescription(`**Zone Ping - <t:${unixTime}>**\n**${data.player}** was located within **${distance} meters** of the Zone **${alarm.name}**`)
.addFields({ name: '**Location**', value: `**[${data.pos[0]}, ${data.pos[1]}](https://www.izurvive.com/chernarusplussatmap/#location=${data.pos[0]};${data.pos[1]})**`, inline: false }) .addFields({ name: '**Location**', value: `**[${data.pos[0]}, ${data.pos[1]}](https://www.izurvive.com/chernarusplussatmap/#location=${data.pos[0]};${data.pos[1]})**`, inline: false })
); );
return; return;
} }
} }
@@ -116,7 +116,7 @@ module.exports = {
let uavEmbed = new EmbedBuilder() let uavEmbed = new EmbedBuilder()
.setColor(client.config.Colors.Default) .setColor(client.config.Colors.Default)
.setDescription(`**UAV Detection - <t:${unixTime}>**\n**${data.player}** was spotted in the UAV zone at **[${data.pos[0]}, ${data.pos[1]}](https://www.izurvive.com/chernarusplussatmap/#location=${data.pos[0]};${data.pos[1]})\n${destination}**`) .setDescription(`**UAV Detection - <t:${unixTime}>**\n**${data.player}** was spotted in the UAV zone at **[${data.pos[0]}, ${data.pos[1]}](https://www.izurvive.com/chernarusplussatmap/#location=${data.pos[0]};${data.pos[1]})\n${destination}**`)
client.users.fetch(uav.owner, false).then((user) => { client.users.fetch(uav.owner, false).then((user) => {
user.send({ embeds: [uavEmbed] }); user.send({ embeds: [uavEmbed] });
}); });
@@ -133,9 +133,9 @@ module.exports = {
let now = new Date(); let now = new Date();
let diff = Math.round((now.getTime() - uav.creationDate.getTime()) / 1000 / 60); // diff minutes let diff = Math.round((now.getTime() - uav.creationDate.getTime()) / 1000 / 60); // diff minutes
if (diff <= 30) continue; if (diff <= 30) continue;
uavs.splice(i, 1); uavs.splice(i, 1);
update = true; update = true;
@@ -154,9 +154,9 @@ module.exports = {
}, },
KillInAlarm: async (client, guildId, data) => { KillInAlarm: async (client, guildId, data) => {
let guild = await GetGuild(client, guildId); let guild = await GetGuild(client, guildId);
for (let i = 0; i < guild.alarms.length; i++) { for (let i = 0; i < guild.alarms.length; i++) {
let alarm = guild.alarms[i]; let alarm = guild.alarms[i];
if (alarm.disabled || !alarm.rules.includes('ban_on_kill')) continue; // ignore if alarm is disabled or not ban on kill; if (alarm.disabled || !alarm.rules.includes('ban_on_kill')) continue; // ignore if alarm is disabled or not ban on kill;
@@ -176,10 +176,10 @@ module.exports = {
.setColor(client.config.Colors.Default) .setColor(client.config.Colors.Default)
.setDescription(`**Zone Ping - <t:${unixTime}>**\n**${data.killer}** was located within **${distance} meters** of the Zone **${alarm.name}** __and has been banned for killing **${data.victim}**.__`) .setDescription(`**Zone Ping - <t:${unixTime}>**\n**${data.killer}** was located within **${distance} meters** of the Zone **${alarm.name}** __and has been banned for killing **${data.victim}**.__`)
.addFields({ name: '**Location**', value: `**[${data.killerPOS[0]}, ${data.killerPOS[1]}](https://www.izurvive.com/chernarusplussatmap/#location=${data.killerPOS[0]};${data.killerPOS[1]})**`, inline: false }) .addFields({ name: '**Location**', value: `**[${data.killerPOS[0]}, ${data.killerPOS[1]}](https://www.izurvive.com/chernarusplussatmap/#location=${data.killerPOS[0]};${data.killerPOS[1]})**`, inline: false })
const NAME = "DayZ.R Zone Alert"; const NAME = "DayZ.R Zone Alert";
const webhook = await GetWebhook(client, NAME, alarm.channel); const webhook = await GetWebhook(client, NAME, alarm.channel);
let content = { content: `<@&${alarm.role}>`, embeds: [alarmEmbed] }; let content = { content: `<@&${alarm.role}>`, embeds: [alarmEmbed] };
WebhookSend(client, webhook, content); WebhookSend(client, webhook, content);
@@ -224,10 +224,10 @@ module.exports = {
.setColor(client.config.Colors.Default) .setColor(client.config.Colors.Default)
.setDescription(`**Zone Ping - <t:${unixTime}>**\n**${info.player}** was located within **${distance} meters** of the Zone **${alarm.name}** __and has been banned for **placing a fireplace**.__`) .setDescription(`**Zone Ping - <t:${unixTime}>**\n**${info.player}** was located within **${distance} meters** of the Zone **${alarm.name}** __and has been banned for **placing a fireplace**.__`)
.addFields({ name: '**Location**', value: `**[${info.playerPOS[0]}, ${info.playerPOS[1]}](https://www.izurvive.com/chernarusplussatmap/#location=${info.playerPOS[0]};${info.playerPOS[1]})**`, inline: false }) .addFields({ name: '**Location**', value: `**[${info.playerPOS[0]}, ${info.playerPOS[1]}](https://www.izurvive.com/chernarusplussatmap/#location=${info.playerPOS[0]};${info.playerPOS[1]})**`, inline: false })
const NAME = "DayZ.R Zone Alert"; const NAME = "DayZ.R Zone Alert";
const webhook = await GetWebhook(client, NAME, alarm.channel); const webhook = await GetWebhook(client, NAME, alarm.channel);
let content = { content: `<@&${alarm.role}>`, embeds: [alarmEmbed] }; let content = { content: `<@&${alarm.role}>`, embeds: [alarmEmbed] };
WebhookSend(client, webhook, content); WebhookSend(client, webhook, content);
+1 -1
View File
@@ -12,4 +12,4 @@ module.exports = {
Float: 10, // AKA Number in Discord's Documentation Float: 10, // AKA Number in Discord's Documentation
Attachment: 11, Attachment: 11,
} }
}; };
+1 -1
View File
@@ -16,4 +16,4 @@ module.exports = {
decipher.final('utf8') decipher.final('utf8')
) // Decrypts data and converts to utf8 ) // Decrypts data and converts to utf8
} }
} }
+1 -1
View File
@@ -35,4 +35,4 @@ class Logger {
} }
} }
module.exports = Logger; module.exports = Logger;
+3 -3
View File
@@ -8,7 +8,7 @@ const { REST } = require('@discordjs/rest');
* @param {require("../structures/DayzRBot")} client * @param {require("../structures/DayzRBot")} client
*/ */
module.exports = { module.exports = {
// Register guild commands // Register guild commands
RegisterGuildCommands: async (client, guild) => { RegisterGuildCommands: async (client, guild) => {
const commands = []; const commands = [];
const commandFiles = fs.readdirSync(path.join(__dirname, "..", "commands")).filter(file => file.endsWith('.js')); const commandFiles = fs.readdirSync(path.join(__dirname, "..", "commands")).filter(file => file.endsWith('.js'));
@@ -50,7 +50,7 @@ module.exports = {
if (command.global) commands.push(command); if (command.global) commands.push(command);
} }
const rest = new REST({ version: '10' }).setToken(client.config.Token); const rest = new REST({ version: '10' }).setToken(client.config.Token);
try { try {
client.log('[global] Started refreshing global (/) commands.'); client.log('[global] Started refreshing global (/) commands.');
@@ -65,4 +65,4 @@ module.exports = {
client.error(error); client.error(error);
} }
} }
}; };
+3 -3
View File
@@ -6,7 +6,7 @@ module.exports = {
let theta = (thetat < 0) ? (360 + thetat) : thetat; let theta = (thetat < 0) ? (360 + thetat) : thetat;
let compass = ["S", "SW", "W", "NW", "N", "NE", "E", "SE", "S"]; let compass = ["S", "SW", "W", "NW", "N", "NE", "E", "SE", "S"];
let dir = compass[Math.round(theta / 45)]; let dir = compass[Math.round(theta / 45)];
return {distance, theta, dir} return {distance, theta, dir}
} }
} }