mirror of
https://github.com/ION606/selmerBot.git
synced 2026-05-15 05:36:54 +00:00
109 lines
5.1 KiB
JavaScript
109 lines
5.1 KiB
JavaScript
//@ts-check
|
|
const { MongoClient, ServerApiVersion } = require('mongodb');
|
|
const { CreateNewCollection } = require("../db/econ");
|
|
|
|
|
|
async function setWelcomeChannel(dbo, message, channelname) {
|
|
const channel = message.guild.channels.cache.find(ch => ch.name === channelname);
|
|
dbo.insertOne({welcomechannel: channel});
|
|
}
|
|
|
|
|
|
|
|
async function execute(bot, message, args, command, Discord, mongouri, items, xp_collection) {
|
|
const server = message.guild.id;
|
|
const owner = message.guild.members.cache.get(message.guild.ownerId);
|
|
|
|
if (message.author.id != message.guild.ownerId) {
|
|
return message.reply('Only the server owner can do this!');
|
|
}
|
|
|
|
// @ts-ignore
|
|
const client = new MongoClient(mongouri, { useNewUrlParser: true, useUnifiedTopology: true, serverApi: ServerApiVersion.v1 });
|
|
if (client.writeConcern || client.writeConcern) {
|
|
client.close();
|
|
return message.reply("Something went wrong with the database, please try again later and contact support if this problem persists!");
|
|
}
|
|
|
|
//Initialize
|
|
CreateNewCollection(message, client, server, owner.user.id);
|
|
|
|
client.connect(err => {
|
|
if (err) { return console.log(err); }
|
|
|
|
const db = client.db(server);
|
|
const dbo = db.collection('SETUP');
|
|
|
|
//Chose the appropriate command
|
|
command = args[0];
|
|
|
|
if (!command) {
|
|
message.channel.send('Please use the following format _!setup help <welcome, logs>_');
|
|
} else if (command == 'welcome_channel') {
|
|
if (args.length != 2) { return message.reply('The command format is _!setup welcome_channel <channel name>_'); }
|
|
// setWelcomeChannel(dbo, message, args[1]);
|
|
const channel = message.guild.channels.cache.find(ch => ch.name === args[1]);
|
|
if (!channel) { return message.reply('The specified channel does not exist!'); }
|
|
|
|
dbo.updateOne({welcomechannel: {$exists: true}}, {$set: {welcomechannel: `${channel.id}`}});
|
|
message.reply(`Set ${channel} as the new welcome channel`)
|
|
} else if (command == 'welcome_message') {
|
|
if (args.length < 2) { return message.reply('The command format is _!setup welcome\\_message_\nUse _{sn}_ to insert the server name, _{un}_ to insert the user name, and _{ut}_ to insert the user tag\nExample: _!setup welcome\\_message Welcome to {sn} Sir {un}#{ut}_'); }
|
|
let msg = "";
|
|
for (let i = 1; i < args.length; i ++ ) {
|
|
msg += args[i] + ' ';
|
|
}
|
|
|
|
if (msg.length > 30) { return message.reply('Please specify a welcome message under 30 characters!'); }
|
|
dbo.updateOne({welcomemessage: {$exists: true}}, {$set: {welcomemessage: msg}})
|
|
} else if (command == 'keep_logs') {
|
|
if (args.length != 2) { return message.reply('Please specify a parameter\nExample: _!setup keep\\_logs true'); }
|
|
|
|
let keeplogs = false;
|
|
if (args[1] == 'true') { keeplogs = true; }
|
|
|
|
dbo.updateOne({ _id: 'LOG'}, {$set: {keepLogs: keeplogs}});
|
|
|
|
message.reply(`Toggled log keeping to ${keeplogs}. Please use _!setup log_channel_ to choose the log channel`);
|
|
} else if (command == 'log_channel') {
|
|
if (args.length != 2) { return message.reply('Please specify a parameter\nExample: _!setup log\\_channel true_'); }
|
|
|
|
const channel = message.guild.channels.cache.find(ch => ch.name === args[1]);
|
|
if (!channel) { return message.reply('The specified channel does not exist!'); }
|
|
|
|
dbo.updateOne({_id: 'LOG'}, {$set: {logchannel: `${channel.id}`}});
|
|
message.reply(`Made ${channel} the new Selmer Bot Logs channel!`);
|
|
} else if (command == 'log_severity') {
|
|
const tier = args[1];
|
|
const l = ['none', 'low', 'medium', 'high'];
|
|
if (!l.includes(tier)) { return message.reply("Please select an existing tier ('none', 'low', 'medium', 'high')"); }
|
|
|
|
dbo.updateOne({_id: 'LOG'}, {$set: {severity: tier}})
|
|
}
|
|
|
|
else if (command == 'help') {
|
|
let temp;
|
|
if (args[1] == 'welcome') {
|
|
temp = 'Use _!setup welcome\\_channel [channel name]_ to set the welcome channel and _!setup welcome\\_message [message]_ to set a welcome message!\n';
|
|
} else if (args[1] == 'logs') {
|
|
temp = 'To enable logging, use the command _!setup keep\\_logs true_ and _!setup log\\_channel_ to set up the logging channel!\n';
|
|
temp += 'Use _!setup keep\\_logs false_ to disable logging and _!setup log\\_severity [none, low, medium, high]_ to set the threshold\n';
|
|
temp += '__Severities:__\n*none* - unmute, unban\n*low* - mute\n*medium* - kick\n*high* - ban\nEvery tier also includes all notifs for ***higher*** tiers (AKA _!setup log\\_severity none_ will log everything from every severity)\n';
|
|
} else { temp = 'Please use the following format: _!setup help [welcome, logs]_\nExample: _!setup help welcome_'; }
|
|
|
|
message.reply(temp);
|
|
}
|
|
});
|
|
|
|
client.close();
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
module.exports = {
|
|
name: 'setup',
|
|
description: 'N/A',
|
|
execute
|
|
} |