2022-06-10 16:19:47 +03:00
//@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 ) {
2022-07-09 20:30:31 +03:00
return message . reply ( 'Only the server owner can do this!' ) ;
2022-06-10 16:19:47 +03:00
}
2022-07-31 10:11:55 +03:00
// // @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!");
// }
bot . mongoconnection . then ( async ( client ) => {
// if (err) { return console.log(err); }
//Initialize
CreateNewCollection ( message , client , server , owner . user . id ) ;
2022-06-10 16:19:47 +03:00
const db = client . db ( server ) ;
const dbo = db . collection ( 'SETUP' ) ;
//Chose the appropriate command
command = args [ 0 ] ;
2022-06-10 20:48:43 +03:00
2022-07-09 20:30:31 +03:00
if ( ! command ) {
message . channel . send ( 'Please use the following format _!setup help <welcome, logs>_' ) ;
} else if ( command == 'welcome_channel' ) {
2022-06-10 21:19:14 +03:00
if ( args . length != 2 ) { return message . reply ( 'The command format is _!setup welcome_channel <channel name>_' ) ; }
2022-06-10 16:19:47 +03:00
// setWelcomeChannel(dbo, message, args[1]);
const channel = message . guild . channels . cache . find ( ch => ch . name === args [ 1 ] ) ;
2022-07-09 20:30:31 +03:00
if ( ! channel ) { return message . reply ( 'The specified channel does not exist!' ) ; }
2022-06-10 16:19:47 +03:00
dbo . updateOne ( { welcomechannel : { $exists : true } } , { $set : { welcomechannel : ` ${ channel . id } ` } } ) ;
2022-07-09 20:30:31 +03:00
message . reply ( ` Set ${ channel } as the new welcome channel ` )
2022-06-10 20:48:43 +03:00
} else if ( command == 'welcome_message' ) {
2022-06-10 21:19:14 +03:00
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 } } )
2022-07-09 20:30:31 +03:00
} 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 } } )
2022-08-17 12:09:40 -07:00
} else if ( command == 'announcement_role' ) {
const role = message . mentions . roles . first ( ) . id ;
dbo . updateOne ( { _id : 'announcement' } , { $set : { 'role' : role } } ) ;
} else if ( command == "announcement_channel" ) {
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 : 'announcement' } , { $set : { 'channel' : channel } } ) ;
}
2022-07-09 20:30:31 +03:00
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' ) {
2022-07-10 21:22:07 +03:00
temp = 'To enable logging, use the command _!setup keep\\_logs true_ and _!setup log\\_channel_ [channel name] to set the logging channel!\n' ;
2022-07-09 20:30:31 +03:00
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' ;
2022-08-17 12:09:40 -07:00
} else if ( args [ 1 ] == 'announcement' ) {
temp = "To pick the announcement channel, use _!setup announcement\\_channel_\nTo pick the announcement role, use _!setup announcement\\_role_" ;
} else { temp = 'Use _!setup Please use the following format: _!setup help [welcome, logs, announcement]_\nExample: _!setup help welcome_' ; }
2022-07-09 20:30:31 +03:00
message . reply ( temp ) ;
2022-06-10 16:19:47 +03:00
}
} ) ;
}
module . exports = {
name : 'setup' ,
2022-07-12 20:10:35 +03:00
description : 'Set up server features' ,
2022-06-10 16:19:47 +03:00
execute
}