diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/bot.ts | 21 | ||||
| -rw-r--r-- | src/commands/server/welcome.ts | 69 | ||||
| -rw-r--r-- | src/config.json | 2 | ||||
| -rw-r--r-- | src/models/welcome.ts | 13 |
4 files changed, 103 insertions, 2 deletions
@@ -1,13 +1,17 @@ import config from './config.json'; import { CommandoClient } from 'discord.js-commando'; //import WS from './ws/ws'; +import Welcome from './models/welcome.js'; +import mongo from 'mongoose'; +mongo.connect('mongodb://sin:[email protected]:47107/heroku_4qrjvmb9') import path from 'path'; import emoji from 'emoji-random'; require('./models/MusicGuild.js') const client = new CommandoClient({ commandPrefix: 'uwu!', - owner: '217348698294714370' + owner: '217348698294714370', + invite: 'https://discord.gg/DVwXUwx', }); //var ws = new WS('123456', process.env.PORT, client) @@ -61,6 +65,21 @@ client.on('error', console.error); client.on('guildCreate', guild => { console.log(`Joined server: ${guild.name}`) + guild.owner?.send('Hi! Thank you for inviting my bot to your server! To view the complete list of commands, do `uwu!help`. If you\'d like, you can also change the prefix using `uwu!prefix change <prefix>`. If you want to contact the lead developer for possible suggestions or to report a bug please join the support server: https://discord.gg/DVwXUwx. ' + emoji.random()) +}) + +client.on('guildMemberAdd', member => { + Welcome.findOne({ guildID: member.guild.id }, async (error, guild) => { + if (error) { + console.log(error) + } else if (!guild) { + return + } else if (guild) { + member.guild.channels.cache.get(guild.channelID).send(`<@${member.id}> has joined **${member.guild.name}**! ` + emoji.random()) + } else { + return + } + }) }) client.on('message', async msg => { diff --git a/src/commands/server/welcome.ts b/src/commands/server/welcome.ts new file mode 100644 index 0000000..9b92268 --- /dev/null +++ b/src/commands/server/welcome.ts @@ -0,0 +1,69 @@ +import { Command, CommandoMessage } from 'discord.js-commando'; +import emoji from 'emoji-random'; +import Welcome from '../../models/welcome.js'; +import mongo from 'mongoose'; +mongo.connect('mongodb://sin:[email protected]:47107/heroku_4qrjvmb9') + +module.exports = class WelcomeServer extends Command { + constructor(client) { + super(client, { + name: 'welcome', + group: 'server', + memberName: 'welcome', + description: 'Allows you to set, change or delete a server welcome message.', + userPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + clientPermissions: ['SEND_MESSAGES', 'READ_MESSAGE_HISTORY'], + examples: [ + 'uwu!welcome', + 'uwu!welcome set', + 'uwu!welcome remove' + ], + args: [ + { + key: 'wType', + prompt: 'Would you like to set, remove or change the current welcome channel?', + type: 'string', + default: '' + } + ] + }); + } + async run(msg: CommandoMessage, { wType }) { + const welcome = new Welcome({ + _id: mongo.Types.ObjectId(), + username: msg.author.username, + userID: msg.author.id, + guildname: msg.guild.name, + guildID: msg.guild.id, + channelname: msg.channel, + channelID: msg.channel.id, + time: msg.createdAt + }) + const guildExist = await Welcome.findOne({ guildID: msg.guild.id }) + + if (msg.member.hasPermission('MANAGE_GUILD')) { + Welcome.findOne({ guildID: msg.guild.id }, async (error, guild) => { + if (error) { + console.log(error) + } else if (guild && wType == 'remove') { + await Welcome.findOneAndDelete({ guildID: msg.guild.id }) + msg.say('The current welcome channel has been unset! ' + emoji.random()) + } else if (!guild && wType == 'remove') { + msg.reply('There is no current welcome channel set for this guild! ' + emoji.random()) + } else if (wType == 'set') { + await welcome.save() + .then(result => console.log(result)) + .catch(err => console.log(err)) + + msg.reply(`The welcome channel has been set to ${msg.channel}! ` + emoji.random()) + } else if (!guild) { + msg.reply('There is no current welcome channel set for this guild! To set one, do `uwu!welcome set` in the channel you want to set it in. ' + emoji.random()) + } else if (guild) { + msg.reply(`The current welcome channel is ${guild.channelname}. ` + emoji.random()) + } + }) + } else { + msg.reply('Insufficent permissions! ' + emoji.random()) + } + } +};
\ No newline at end of file diff --git a/src/config.json b/src/config.json index 8534377..6246952 100644 --- a/src/config.json +++ b/src/config.json @@ -1,5 +1,5 @@ { "secret":"Njk5NDczMjYzOTk4MjcxNDg5.XpU5oQ.btZuxVudhNllSQY6CxrXXtMJm9A", "yt-api-key":"AIzaSyCeG1lQAeInv4vjFv_eTL9IFAFNdQC9Nk8", - "version":"7.7.1" + "version":"7.8.0" }
\ No newline at end of file diff --git a/src/models/welcome.ts b/src/models/welcome.ts new file mode 100644 index 0000000..29700fc --- /dev/null +++ b/src/models/welcome.ts @@ -0,0 +1,13 @@ +import mongo from 'mongoose'; +const welcomeSchema = new mongo.Schema({ + _id: mongo.Schema.Types.ObjectId, + username: String, + userID: String, + guildname: String, + guildID: String, + channelname: String, + channelID: String, + time: String +}); + +export = mongo.model('Welcome', welcomeSchema)
\ No newline at end of file |