diff options
| author | 8cy <[email protected]> | 2020-07-27 04:10:57 -0700 |
|---|---|---|
| committer | 8cy <[email protected]> | 2020-07-27 04:10:57 -0700 |
| commit | 9ab23583551c495d3a212ef24a47696a8da460d2 (patch) | |
| tree | ff8b1de500f3a17dad78d6d6fee381f45078723f /server | |
| parent | fix: formatting in wc/gb json files (diff) | |
| download | dep-core-9ab23583551c495d3a212ef24a47696a8da460d2.tar.xz dep-core-9ab23583551c495d3a212ef24a47696a8da460d2.zip | |
big revamp n stuff
Diffstat (limited to 'server')
21 files changed, 324 insertions, 282 deletions
diff --git a/server/src/Config.ts b/server/src/Config.ts index 827f7c8..ff9b361 100644 --- a/server/src/Config.ts +++ b/server/src/Config.ts @@ -1,3 +1,4 @@ +// Config.ts export const token: string = "Njk5NDczMjYzOTk4MjcxNDg5.XpU5PQ.zDEhRT5HnfO0m4dyG-N86Dd1BVU"; export const prefix: string = "uwu!"; export const owners: string[] = ['217348698294714370']; @@ -21,5 +22,5 @@ export const captchaSettings: object = { color: false, size: 6 }; -export const verificationRole: string = "Disinfector"; +export const verificationRole: string = "Member"; export const verificationChannel: string = "verification";
\ No newline at end of file diff --git a/server/src/DevConfig.ts b/server/src/DevConfig.ts index 407cfc7..3fa189b 100644 --- a/server/src/DevConfig.ts +++ b/server/src/DevConfig.ts @@ -1,3 +1,4 @@ +// DevConfig.ts export const token: string = "NzEyMDg4MzY5MjA2OTE5MjY5.XsMd-Q.zuhGdb-S-BSdE1Gqyynp-xDutsg"; export const prefix: string = "uwu$"; export const owners: string[] = ['217348698294714370']; @@ -15,4 +16,11 @@ export const validIDs: string[] = [ '649676743195754550' // Soph ]; export const mongoDBUri: string = "mongodb+srv://sin:[email protected]/aki-web?retryWrites=true&w=majority"; -export const emmaServer: string = "663964105983393793";
\ No newline at end of file +export const emmaServer: string = "663964105983393793"; +export const captchaSettings: object = { + background: '#7289Da', + color: false, + size: 6 +}; +export const verificationRole: string = "Member"; +export const verificationChannel: string = "verification";
\ No newline at end of file diff --git a/server/src/commands/anime/Darling.ts b/server/src/commands/anime/Darling.ts index 286255b..7f2da84 100644 --- a/server/src/commands/anime/Darling.ts +++ b/server/src/commands/anime/Darling.ts @@ -1,12 +1,6 @@ import { Command } from 'discord-akairo'; import { Message } from 'discord.js'; -import Darling from '../../database/models/DarlingModel'; -import mongoose from 'mongoose'; -import { mongoDBUri } from '../../Config'; -mongoose.connect(mongoDBUri, { - useNewUrlParser: true, - useUnifiedTopology: true -}); +import { owners, prefix } from '../../Config'; export default class DarlingAnime extends Command { public constructor() { @@ -40,51 +34,54 @@ export default class DarlingAnime extends Command { }); } - public exec(msg: Message, { type }): Promise<Message> | any { - const darling = new Darling({ - _id: mongoose.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 - }); + public async exec(msg: Message, { type }): Promise<Message> { + const existing = this.client.settings.cache.guilds.get(msg.guild.id); + if (!existing) { + this.client.settings.new('guild', { + id: msg.guild.id, + premium: false, + prefix, + }); + } + let hasDarling = true; + if (existing.darling === undefined) { + hasDarling = false; + } else { + if (existing.darling.length !== 18) hasDarling = false; + } - return Darling.findOne({ guildID: msg.guild.id }, async (error, guild) => { - if (error) return console.error(error); - - if (guild) { - if (type === 'remove') { - //@ts-ignore - if (msg.author.id !== guild.userID || msg.author.id !== msg.guild.owner.id) - return msg.reply('Only my darling or the guild owner can remove the current darling.'); - - await Darling.findOneAndDelete({ guildID: msg.guild.id }); - return msg.channel.send('The current darling has been removed!'); - } else if (type === 'set') { - //@ts-ignore - return msg.channel.send(`I already have a darling! It's **${guild.username}**! To set a new darling, either the current darling or the guild owner has to do \`${this.client.commandHandler.prefix}darling remove\`.`); - } else if (type === 'check') { - //@ts-ignore - return msg.channel.send(`My darling is **${msg.guild.members.resolve(guild.userID).user.tag}**.`); - } - } else if (!guild) { - if (type === 'remove') { - return msg.channel.send('There is no darling set in this server.'); - } else if (type === 'set') { - await darling.save().catch(err => console.error(err)); - const quotes = [ - 'I think I have taken a liking to you. Won\'t you be my darling?', - 'I like the look in your eyes. It makes my heart race. You are now my darling!', - 'Wow, your taste makes my heart race. It bites and lingers... The taste of danger. You are now my darling!' - ]; - return msg.channel.send(quotes[Math.floor(Math.random() * quotes.length)]); - } else if (type === 'check') { - return msg.reply(`I haven't found my darling yet! To set one, do ${this.client.commandHandler.prefix}darling set.`); + if (hasDarling) { + if (type === 'remove') { + if (msg.author.id !== existing.darling) { + if (msg.guild.member(msg.author.id).hasPermission('MANAGE_GUILD') || owners.includes(msg.author.id)) + undefined; + else + return msg.reply('Only my darling or someone who has permissions to manage guild settings can remove the current darling!'); } + + await this.client.settings.set('guild', { id: msg.guild.id }, { darling: '' }); + return msg.reply('The previous darling has been removed!'); + } else if (type === 'set') { + return msg.channel.send(`I already have a darling! It's **${msg.guild.members.cache.get(existing.darling).user.tag}**! To set a new darling, either the current darling or someone who has permissions to manage guild settings can do \`${this.client.commandHandler.prefix}darling remove\`.`); + } else if (type === 'check') { + return msg.channel.send(`My darling **${msg.guild.members.cache.get(existing.darling).user.tag}**!`); } - }); + } else if (!hasDarling) { + if (type === 'remove') { + return msg.reply('There is no darling set in this server!'); + } else if (type === 'set') { + await this.client.settings.set('guild', { id: msg.guild.id }, { darling: msg.author.id }); + const quotes = [ + 'I think I have taken a liking to you. Won\'t you be my darling?', + 'I like the look in your eyes. It makes my heart race. You are now my darling!', + 'Wow, your taste makes my heart race. It bites and lingers... The taste of danger. You are now my darling!' + ]; + return msg.channel.send(quotes[Math.floor(Math.random() * quotes.length)]); + } else if (type === 'check') { + return msg.reply(`I haven't found my darling yet! To set one, do \`${this.client.commandHandler.prefix}darling set\`!`); + } + } + + undefined; } }
\ No newline at end of file diff --git a/server/src/commands/emma/FanArt.ts b/server/src/commands/emma/FanArt.ts index 5ac01f7..e193ba3 100644 --- a/server/src/commands/emma/FanArt.ts +++ b/server/src/commands/emma/FanArt.ts @@ -1,12 +1,7 @@ import { Command } from 'discord-akairo'; import { Message } from 'discord.js'; -import FanArt from '../../database/models/FanArtModel'; -import mongoose from 'mongoose'; -import { mongoDBUri, colour, emmaServer } from '../../Config'; -mongoose.connect(mongoDBUri, { - useNewUrlParser: true, - useUnifiedTopology: true -}); +import { colour, emmaServer, prefix } from '../../Config'; +import { TextChannel } from 'discord.js'; export default class FanArtEmma extends Command { public constructor() { @@ -44,29 +39,29 @@ export default class FanArtEmma extends Command { }); } - public exec(msg: Message, { type, comment }): Promise<Message> | any { + public async exec(msg: Message, { type, comment }): Promise<Message> { if (msg.guild.id.toString() !== emmaServer) return; - const welcome = new FanArt({ - _id: mongoose.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 existing = this.client.settings.cache.guilds.get(msg.guild.id); + if (!existing) { + this.client.settings.new('guild', { + id: msg.guild.id, + premium: false, + prefix, + }); + } + let hasFanart = true; + if (existing.fanart === undefined) { + hasFanart = false; + } else { + if (existing.fanart.length !== 18) hasFanart = false; + } const validTypes = ['set', 'remove', 'check']; if (type === 'submit') { - FanArt.findOne({ guildID: msg.guild.id }, async (error, guild) => { - if (error) return console.log(error); - - //@ts-ignore - let fanartServer = this.client.guilds.cache.get(guild.guildID); - //@ts-ignore - let fanartChannel = guild.channelID; + if (hasFanart) { + let fanartServer = emmaServer; + let fanartChannel = existing.fanart; if (msg.attachments.size) { msg.attachments.forEach(fanart => { @@ -87,12 +82,12 @@ export default class FanArtEmma extends Command { } else { return msg.reply(`No attachment was submitted! If you need help, please do \`${this.client.commandHandler.prefix}fanart help\`.`); } - }); + } } else if (type === 'help') { const embed = this.client.util.embed() .setTitle('Fanart - Help') .setColor(colour) - .setDescription('How to submmit fanart:') + .setDescription('How to submit fanart:') .setThumbnail(msg.guild.iconURL()) .addField('#1', 'Go to the `#media` channel.') .addField('#2', 'Click on the add media button in the bottom left corner of your screen and select a video or image.') @@ -102,31 +97,27 @@ export default class FanArtEmma extends Command { .addField('More Admin Info', 'You can only have **ONE** fanart channel (I think, I haven\'t tested it lol. If you change the name of the fanart channel, you will have to re-register with the bot by simply removing and re-setting the fanart channel'); return msg.channel.send(embed); } else if (validTypes.includes(type)) { - return FanArt.findOne({ guildID: msg.guild.id }, async (error, guild) => { - if (error) return console.error(error); - - if (guild) { - if (type === 'remove') { - await FanArt.findOneAndDelete({ guildID: msg.guild.id }); - return msg.channel.send('The current fanart channel has been unset!'); - } else if (type === 'set') { - //@ts-ignore - return msg.channel.send(`There already is a fanart channel set! It's ${guild.channelname}`); - } else if (type === 'check') { - //@ts-ignore - return msg.channel.send(`The current fanart channel is ${guild.channelname}!`); - } - } else if (!guild) { - if (type === 'remove') { - return msg.channel.send('There is no current fanart channel set for this guild!'); - } else if (type === 'set') { - await welcome.save().catch(err => console.error(err)); - return msg.channel.send(`The fanart channel has been set to ${msg.channel!}`); - } else if (type === 'check') { - return msg.reply(`There is no current fanart channel set for this guild! To set one, do ${this.client.commandHandler.prefix}fanart set in the channel you want to set it in!`); - } + if (hasFanart) { + if (type === 'remove') { + await this.client.settings.set('guild', { id: msg.guild.id }, { fanart: '' }); + return msg.reply('The previous fanart channel has been un-set!'); + } else if (type === 'set') { + return msg.channel.send(`There already is a fanart channel set! It's <#${msg.guild.channels.cache.get(existing.fanart).id}>!`); + } else if (type === 'check') { + return msg.channel.send(`The current fanart channel is <#${msg.guild.channels.cache.get(existing.fanart).id}>.`); } - }); + } else if (!hasFanart) { + if (type === 'remove') { + return msg.reply('There is no fanart channel set in this server!'); + } else if (type === 'set') { + await this.client.settings.set('guild', { id: msg.guild.id }, { fanart: (msg.channel as TextChannel).id }); + return msg.reply(`The fanart channel has been set to <#${msg.channel.id}>!`) + } else if (type === 'check') { + return msg.reply(`There is no fanart channel set in this server! To set one, do \`${this.client.commandHandler.prefix}fanart set\`!`); + } + } + + undefined; } } }
\ No newline at end of file diff --git a/server/src/commands/mod/Ban.ts b/server/src/commands/mod/Ban.ts index 3e81bfb..18060c4 100644 --- a/server/src/commands/mod/Ban.ts +++ b/server/src/commands/mod/Ban.ts @@ -49,8 +49,8 @@ export default class BanMod extends Command { if (msg.mentions.members.first()) { user = msg.mentions.members.first(); - await user.send(`You have been banned from **${msg.guild.name}** for the following reason(s): "**${reason}**".`); - // .catch(() => console.log('[ERROR] Could not send message to banned user.')); + await user.send(`You have been banned from **${msg.guild.name}** for the following reason(s): "**${reason}**".`) + .catch(() => console.log('[ERROR] Could not send message to this user.')); return user.ban({ reason: `Banned by: ${msg.author.username} for the following reason(s): ${reason}.`}) .then(() => msg.reply(`${user.user.username} was successfully banned with the following reason(s): "**${reason}**".`)) diff --git a/server/src/commands/mod/Kick.ts b/server/src/commands/mod/Kick.ts index da1a91f..f19e34f 100644 --- a/server/src/commands/mod/Kick.ts +++ b/server/src/commands/mod/Kick.ts @@ -47,9 +47,12 @@ export default class KickMod extends Command { if (!reason) reason = 'No reason has been specified.'; if (user === msg.author.id) return msg.channel.send('You can\'t kick yourself!'); - await user.send(`You have been kick from **${msg.guild.name}** for the following reason(s): "**${reason}**".`); - // .catch(() => console.log('[ERROR] Could not send message to banned user.')); + user = msg.guild.members.cache.get(user); + + await user.send(`You have been kick from **${msg.guild.name}** for the following reason(s): "**${reason}**".`) + .catch(() => console.log('[ERROR] Could not send message to this user.')); + // TODO: fix reason showing up as [Object object] return user.kick({ reason: `Kicked by: ${msg.author.username} for the following reason(s): ${reason}.`}) .then(() => msg.reply(`${user.user.username} was successfully kick with the following reason(s): "**${reason}**".`)) .catch(err => console.error(err)); diff --git a/server/src/commands/owner/Database.ts b/server/src/commands/owner/Database.ts new file mode 100644 index 0000000..cd88dfc --- /dev/null +++ b/server/src/commands/owner/Database.ts @@ -0,0 +1,43 @@ +import { Command } from 'discord-akairo'; +import { Message } from 'discord.js'; +import { prefix } from '../../Config'; + +export default class DatabaseOwner extends Command { + public constructor() { + super('database', { + aliases: ['database'], + category: 'owner', + description: { + content: 'Allows you to interact with certain aspects of the bot\'s database.', + usage: '[type]', + examples: [ + 'check ' + ] + }, + ratelimit: 3, + ownerOnly: true, + args: [ + { + id: 'type', + type: 'string', + prompt: { + start: 'What type of interaction would you like to have?' + } + } + ] + }); + } + + public async exec(msg: Message, { type }): Promise<Message> { + if (type === 'set') { + await this.client.settings.new('guild', { + id: msg.guild.id, + premium: false, + prefix, + }); + return msg.reply('Current guild has been added to database.') + } + + undefined; + } +}
\ No newline at end of file diff --git a/server/src/commands/server/Goodbye.ts b/server/src/commands/server/Goodbye.ts index bc341b8..7bafc4b 100644 --- a/server/src/commands/server/Goodbye.ts +++ b/server/src/commands/server/Goodbye.ts @@ -1,12 +1,7 @@ import { Command } from 'discord-akairo'; import { Message } from 'discord.js'; -import Goodbye from '../../database/models/GoodbyeModel'; -import mongoose from 'mongoose'; -import { mongoDBUri } from '../../Config'; -mongoose.connect(mongoDBUri, { - useNewUrlParser: true, - useUnifiedTopology: true -}); +import { TextChannel } from 'discord.js'; +import { prefix } from '../../Config'; export default class GoodbyeServer extends Command { public constructor() { @@ -40,42 +35,42 @@ export default class GoodbyeServer extends Command { }); } - public exec(msg: Message, { type }): Promise<Message> | any { - const goodbye = new Goodbye({ - _id: mongoose.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 - }); + public async exec(msg: Message, { type }): Promise<Message> { + const existing = this.client.settings.cache.guilds.get(msg.guild.id); + if (!existing) { + this.client.settings.new('guild', { + id: msg.guild.id, + premium: false, + prefix, + }); + } + let hasGoodbye = true; + if (existing.goodbye === undefined) { + hasGoodbye = false; + } else { + if (existing.goodbye.length !== 18) hasGoodbye = false; + } - return Goodbye.findOne({ guildID: msg.guild.id }, async (error, guild) => { - if (error) return console.error(error); - - if (guild) { - if (type === 'remove') { - await Goodbye.findOneAndDelete({ guildID: msg.guild.id }); - return msg.channel.send('The current goodbye channel has been unset!'); - } else if (type === 'set') { - //@ts-ignore - return msg.channel.send(`There already is a goodbye channel set! It's ${guild.channelname}`); - } else if (type === 'check') { - //@ts-ignore - return msg.channel.send(`The current goodbye channel is ${guild.channelname}!`); - } - } else if (!guild) { - if (type === 'remove') { - return msg.channel.send('There is no current goodbye channel set for this guild!'); - } else if (type === 'set') { - await goodbye.save().catch(err => console.error(err)); - return msg.channel.send(`The goodbye channel has been set to ${msg.channel!}`); - } else if (type === 'check') { - return msg.reply(`There is no current goodbye channel set for this guild! To set one, do ${this.client.commandHandler.prefix}goodbye set in the channel you want to set it in!`); - } + if (hasGoodbye) { + if (type === 'remove') { + await this.client.settings.set('guild', { id: msg.guild.id }, { goodbye: '' }); + return msg.reply('The previous goodbye channel has been un-set!'); + } else if (type === 'set') { + return msg.channel.send(`There already is a goodbye channel set! It's <#${msg.guild.channels.cache.get(existing.goodbye).id}>!`); + } else if (type === 'check') { + return msg.channel.send(`The current goodbye channel is <#${msg.guild.channels.cache.get(existing.goodbye).id}>.`); } - }); + } else if (!hasGoodbye) { + if (type === 'remove') { + return msg.reply('There is no goodbye channel set in this server!'); + } else if (type === 'set') { + await this.client.settings.set('guild', { id: msg.guild.id }, { goodbye: (msg.channel as TextChannel).id }); + return msg.reply(`The goodbye channel has been set to <#${msg.channel.id}>!`) + } else if (type === 'check') { + return msg.reply(`There is no goodbye channel set in this server! To set one, do \`${this.client.commandHandler.prefix}goodbye set\`!`); + } + } + + undefined; } }
\ No newline at end of file diff --git a/server/src/commands/server/PFP.ts b/server/src/commands/server/PFP.ts index d5ac00b..4f15123 100644 --- a/server/src/commands/server/PFP.ts +++ b/server/src/commands/server/PFP.ts @@ -1,6 +1,6 @@ import { Command } from 'discord-akairo'; import { Message } from 'discord.js'; -import { colour } from '../../Config'; +import { colour, owners } from '../../Config'; export default class PFPServer extends Command { public constructor() { @@ -31,6 +31,9 @@ export default class PFPServer extends Command { } public exec(msg: Message, { user }): Promise<Message> { + if ((user.id === owners[1]) && (msg.author.id !== owners[1])) + msg.reply('Sin is special, their identity shall remain anonymous.'); + let embed = this.client.util.embed() .setColor(colour) diff --git a/server/src/commands/server/Welcome.ts b/server/src/commands/server/Welcome.ts index 6c116d9..bf2f8d3 100644 --- a/server/src/commands/server/Welcome.ts +++ b/server/src/commands/server/Welcome.ts @@ -1,12 +1,7 @@ import { Command } from 'discord-akairo'; import { Message } from 'discord.js'; -import Welcome from '../../database/models/WelcomeModel'; -import mongoose from 'mongoose'; -import { mongoDBUri } from '../../Config'; -mongoose.connect(mongoDBUri, { - useNewUrlParser: true, - useUnifiedTopology: true -}); +import { TextChannel } from 'discord.js'; +import { prefix } from '../../Config'; export default class WelcomeServer extends Command { public constructor() { @@ -40,42 +35,42 @@ export default class WelcomeServer extends Command { }); } - public exec(msg: Message, { type }): Promise<Message> | any { - const welcome = new Welcome({ - _id: mongoose.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 - }); + public async exec(msg: Message, { type }): Promise<Message> { + const existing = this.client.settings.cache.guilds.get(msg.guild.id); + if (!existing) { + this.client.settings.new('guild', { + id: msg.guild.id, + premium: false, + prefix, + }); + } + let hasWelcome = true; + if (existing.welcome === undefined) { + hasWelcome = false; + } else { + if (existing.welcome.length !== 18) hasWelcome = false; + } - return Welcome.findOne({ guildID: msg.guild.id }, async (error, guild) => { - if (error) return console.error(error); - - if (guild) { - if (type === 'remove') { - await Welcome.findOneAndDelete({ guildID: msg.guild.id }); - return msg.channel.send('The current welcome channel has been unset!'); - } else if (type === 'set') { - //@ts-ignore - return msg.channel.send(`There already is a welcome channel set! It's ${guild.channelname}`); - } else if (type === 'check') { - //@ts-ignore - return msg.channel.send(`The current welcome channel is ${guild.channelname}!`); - } - } else if (!guild) { - if (type === 'remove') { - return msg.channel.send('There is no current welcome channel set for this guild!'); - } else if (type === 'set') { - await welcome.save().catch(err => console.error(err)); - return msg.channel.send(`The welcome channel has been set to ${msg.channel!}`); - } else if (type === 'check') { - return msg.reply(`There is no current welcome channel set for this guild! To set one, do ${this.client.commandHandler.prefix}welcome set in the channel you want to set it in!`); - } + if (hasWelcome) { + if (type === 'remove') { + await this.client.settings.set('guild', { id: msg.guild.id }, { welcome: '' }); + return msg.reply('The previous welcome channel has been un-set!'); + } else if (type === 'set') { + return msg.channel.send(`There already is a welcome channel set! It's <#${msg.guild.channels.cache.get(existing.welcome).id}>!`); + } else if (type === 'check') { + return msg.channel.send(`The current welcome channel is <#${msg.guild.channels.cache.get(existing.welcome).id}>.`); } - }); + } else if (!hasWelcome) { + if (type === 'remove') { + return msg.reply('There is no welcome channel set in this server!'); + } else if (type === 'set') { + await this.client.settings.set('guild', { id: msg.guild.id }, { welcome: (msg.channel as TextChannel).id }); + return msg.reply(`The welcome channel has been set to <#${msg.channel.id}>!`) + } else if (type === 'check') { + return msg.reply(`There is no welcome channel set in this server! To set one, do \`${this.client.commandHandler.prefix}welcome set\`!`); + } + } + + undefined; } }
\ No newline at end of file diff --git a/server/src/database/index.ts b/server/src/database/index.ts index 3e56d53..ad14794 100644 --- a/server/src/database/index.ts +++ b/server/src/database/index.ts @@ -1,5 +1,5 @@ -import ReactionGuildModel from './models/ReactionGuildModel'; +import GuildModel from './models/GuildModel'; import ReactionModel from './models/ReactionModel'; import SettingsProvider from './structures/SettingsProvider'; -export { SettingsProvider, ReactionGuildModel, ReactionModel };
\ No newline at end of file +export { SettingsProvider, GuildModel, ReactionModel };
\ No newline at end of file diff --git a/server/src/database/models/DarlingModel.ts b/server/src/database/models/DarlingModel.ts deleted file mode 100644 index 3f98037..0000000 --- a/server/src/database/models/DarlingModel.ts +++ /dev/null @@ -1,10 +0,0 @@ -import mongoose from 'mongoose'; -const darlingSchema = new mongoose.Schema({ - _id: mongoose.Schema.Types.ObjectId, - username: String, - userID: String, - guildname: String, - guildID: String, - time: String -}); -export = mongoose.model('Darling', darlingSchema);
\ No newline at end of file diff --git a/server/src/database/models/FanArtModel.ts b/server/src/database/models/FanArtModel.ts deleted file mode 100644 index c2d983e..0000000 --- a/server/src/database/models/FanArtModel.ts +++ /dev/null @@ -1,12 +0,0 @@ -import mongoose from 'mongoose'; -const fanArtSchema = new mongoose.Schema({ - _id: mongoose.Schema.Types.ObjectId, - username: String, - userID: String, - guildname: String, - guildID: String, - channelname: String, - channelID: String, - time: String -}); -export = mongoose.model('FanArt', fanArtSchema);
\ No newline at end of file diff --git a/server/src/database/models/GoodbyeModel.ts b/server/src/database/models/GoodbyeModel.ts deleted file mode 100644 index 04cc7c4..0000000 --- a/server/src/database/models/GoodbyeModel.ts +++ /dev/null @@ -1,12 +0,0 @@ -import mongoose from 'mongoose'; -const goodbyeSchema = new mongoose.Schema({ - _id: mongoose.Schema.Types.ObjectId, - username: String, - userID: String, - guildname: String, - guildID: String, - channelname: String, - channelID: String, - time: String -}); -export = mongoose.model('Goodbye', goodbyeSchema);
\ No newline at end of file diff --git a/server/src/database/models/GuildModel.ts b/server/src/database/models/GuildModel.ts new file mode 100644 index 0000000..de079ec --- /dev/null +++ b/server/src/database/models/GuildModel.ts @@ -0,0 +1,36 @@ +import { Document, Schema, model } from 'mongoose'; + +export interface Guild extends Document { + id: string; + prefix: string; + premium: boolean; + expiresAt: Date; + darling?: string; + welcome?: string; + goodbye?: string; + fanart?: string; +} + +const Guild: Schema = new Schema({ + id: String, + prefix: String, + premium: Boolean, + expiresAt: Date, + darling: { + required: false, + type: String + }, + welcome: { + required: false, + type: String + }, + goodbye: { + required: false, + type: String + }, + fanart: { + required: false, + type: String + } +}, { strict: false }); +export default model<Guild>('Guild', Guild);
\ No newline at end of file diff --git a/server/src/database/models/ReactionGuildModel.ts b/server/src/database/models/ReactionGuildModel.ts deleted file mode 100644 index 6389b56..0000000 --- a/server/src/database/models/ReactionGuildModel.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Document, Schema, model } from 'mongoose'; - -export interface Guild extends Document { - id: string; - prefix: string; - premium: boolean; - expiresAt: Date; -} - -const Guild: Schema = new Schema({ - id: String, - prefix: String, - premium: Boolean, - expiresAt: Date -}, { strict: false }); -export default model<Guild>('Guild', Guild);
\ No newline at end of file diff --git a/server/src/database/models/WelcomeModel.ts b/server/src/database/models/WelcomeModel.ts deleted file mode 100644 index 2a26a6f..0000000 --- a/server/src/database/models/WelcomeModel.ts +++ /dev/null @@ -1,12 +0,0 @@ -import mongoose from 'mongoose'; -const welcomeSchema = new mongoose.Schema({ - _id: mongoose.Schema.Types.ObjectId, - username: String, - userID: String, - guildname: String, - guildID: String, - channelname: String, - channelID: String, - time: String -}); -export = mongoose.model('Welcome', welcomeSchema);
\ No newline at end of file diff --git a/server/src/database/structures/SettingsProvider.ts b/server/src/database/structures/SettingsProvider.ts index 0a2325a..c82c109 100644 --- a/server/src/database/structures/SettingsProvider.ts +++ b/server/src/database/structures/SettingsProvider.ts @@ -2,7 +2,7 @@ import { Collection } from 'discord.js'; import { connect, Model, connection, Connection } from 'mongoose'; import { Logger } from 'winston'; import ReactionModel, { Reaction } from '../models/ReactionModel'; -import GuildModel, { Guild } from '../models/ReactionGuildModel'; +import GuildModel, { Guild } from '../models/GuildModel'; import { MONGO_EVENTS } from '../utils/Constants' import BotClient from '../../client/BotClient'; import { mongoDBUri } from '../../Config'; diff --git a/server/src/listeners/client/guildMemberAdd.ts b/server/src/listeners/client/guildMemberAdd.ts index 6a54d22..5b406c8 100644 --- a/server/src/listeners/client/guildMemberAdd.ts +++ b/server/src/listeners/client/guildMemberAdd.ts @@ -1,7 +1,8 @@ import { Listener } from 'discord-akairo'; -import Welcome from '../../database/models/WelcomeModel'; import { GuildMember } from 'discord.js'; import wMRResponses from '../../json/guildMemberAdd.json'; +import { TextChannel } from 'discord.js'; +import { Message } from 'discord.js'; export default class GuildMemberAddListener extends Listener { public constructor() { @@ -12,21 +13,28 @@ export default class GuildMemberAddListener extends Listener { }); } - public exec(member: GuildMember): void { - Welcome.findOne({ guildID: member.guild.id }, async (error, g) => { - if (error) return this.client.logger.error(`[CLIENT ERROR] ${error}`); - if (!g) return; - + public exec(member: GuildMember): Promise<Message | void> { + const existing = this.client.settings.cache.guilds.get(member.guild.id); + let hasWelcome = true; + if (existing === undefined) { + hasWelcome = false; + } else { + if (existing.welcome.length !== 18) hasWelcome = false; + } + + if (hasWelcome) { const secret = Math.floor(Math.random() * 1000); if (secret === 420) { - //@ts-ignore - return member.guild.channels.cache.get(g.channelID).send(`${member.user.tag} (<@${member.id}>) has just got the secret welcome message! They had a **1/1000** chance of getting this! ✨`) + return (member.guild.channels.cache.get(existing.welcome) as TextChannel) + .send(`**${member.user.tag}** (<@${member.id}>) has just got the secret welcome message! They had a **1/1000** chance of getting this! ✨`) .then(m => { m.react('✨') }); } else { - const leaveMessage = await wMRResponses[Math.floor(Math.random() * wMRResponses.length)]; - //@ts-ignore - return member.guild.channels.cache.get(g.channelID).send(`${member.user.tag} (<@${member.id}>) ${leaveMessage}`); + const leaveMessage = wMRResponses[Math.floor(Math.random() * wMRResponses.length)]; + return (member.guild.channels.cache.get(existing.welcome) as TextChannel) + .send(`${member.user.tag} (<@${member.id}>) ${leaveMessage}`); } - }); + } + + undefined; } } diff --git a/server/src/listeners/client/guildMemberRemove.ts b/server/src/listeners/client/guildMemberRemove.ts index 40caa45..38e1b00 100644 --- a/server/src/listeners/client/guildMemberRemove.ts +++ b/server/src/listeners/client/guildMemberRemove.ts @@ -1,7 +1,8 @@ import { Listener } from 'discord-akairo'; -import Goodbye from '../../database/models/GoodbyeModel'; import { GuildMember } from 'discord.js'; import gMRResponses from '../../json/guildMemberRemove.json'; +import { TextChannel } from 'discord.js'; +import { Message } from 'discord.js'; export default class GuildMemberRemoveListener extends Listener { public constructor() { @@ -12,22 +13,28 @@ export default class GuildMemberRemoveListener extends Listener { }); } - public exec(member: GuildMember): void { - Goodbye.findOne({ guildID: member.guild.id }, async (error, g) => { - if (error) return this.client.logger.error(`[CLIENT ERROR] ${error}`); - if (!g) return; - + public exec(member: GuildMember): Promise<Message | void> { + const existing = this.client.settings.cache.guilds.get(member.guild.id); + let hasGoodbye = true; + if (existing === undefined) { + hasGoodbye = false; + } else { + if (existing.goodbye.length !== 18) hasGoodbye = false; + } + + if (hasGoodbye) { const secret = Math.floor(Math.random() * 1000); if (secret === 420) { - //@ts-ignore - return member.guild.channels.cache.get(g.channelID).send(`${member.user.tag} (<@${member.id}>) has just got the secret goodbye message! They had a **1/1000** chance of getting this! ✨`) + return (member.guild.channels.cache.get(existing.goodbye) as TextChannel) + .send(`**${member.user.tag}** (<@${member.id}>) has just got the secret welcome message! They had a **1/1000** chance of getting this! ✨`) .then(m => { m.react('✨') }); } else { - const leaveMessage = await gMRResponses[Math.floor(Math.random() * gMRResponses.length)]; - //@ts-ignore - return member.guild.channels.cache.get(g.channelID).send(`${member.user.tag} (<@${member.id}>) ${leaveMessage}`) - .then(m => { m.react('🇫') }); + const leaveMessage = gMRResponses[Math.floor(Math.random() * gMRResponses.length)]; + return (member.guild.channels.cache.get(existing.goodbye) as TextChannel) + .send(`${member.user.tag} (<@${member.id}>) ${leaveMessage}`); } - }); + } + + undefined; } } diff --git a/server/src/listeners/client/message.ts b/server/src/listeners/client/message.ts index 429f3cc..e34d321 100644 --- a/server/src/listeners/client/message.ts +++ b/server/src/listeners/client/message.ts @@ -46,5 +46,22 @@ export default class MessageListener extends Listener { msg.react('733301856054280253'); } } + + if (msg.guild.id === emmaServer) { + if (msg.content.toLowerCase().includes('chink') + || msg.content.toLowerCase().includes('fag') + || msg.content.toLowerCase().includes('faggot') + || msg.content.toLowerCase().includes('nig-nog') + || msg.content.toLowerCase().includes('nigga') + || msg.content.toLowerCase().includes('nigger') + || msg.content.toLowerCase().includes('nigguh') + || msg.content.toLowerCase().includes('street-shitter') + || msg.content.toLowerCase().includes('wigger') + || msg.content.toLowerCase().includes('wetback') + || msg.content.toLowerCase().includes('spic') + || msg.content.toLowerCase().includes('retard') + || msg.content.toLowerCase().includes('neonazi') + ) msg.delete(); + } } } |