1
0
mirror of https://github.com/toast-ts/Daggerbot-TS.git synced 2024-09-29 08:20:59 -04:00

little progress, yay automod now operational

This commit is contained in:
toast-ts 2022-11-19 03:54:40 +11:00
parent 3e94afb222
commit 8a90bb119b
8 changed files with 138 additions and 44 deletions

64
src/Daggerbot.config.json Normal file
View File

@ -0,0 +1,64 @@
{
"embedColor": "#0052cf",
"embedColorGreen": "#57f287",
"embedColorYellow": "#ffea00",
"embedColorRed": "#e62c3b",
"embedColorBCA": "#ff69b4",
"LRSstart": 1661236321433,
"botSwitches": {
"registerCommands": true,
"commands": false,
"logs": true,
"automod": true,
"mpstats": true,
"mpstatsDebug": false,
"autores": true
},
"eval": {
"allowed": true,
"whitelist": [
"190407856527376384",
"615761944154210305",
"593696856165449749",
"633345781780185099",
"506022868157595648",
"215497515934416896",
"309373272594579456"
]
},
"mainServer": {
"id": "468835415093411861",
"staffRoles": [
"admin",
"dcmod",
"mpmanager",
"mpmod",
"vtcmanager",
"vtcstaff",
"ytmod"
],
"roles": {
"admin": "468842789053136897",
"bottech": "1011341005389307925",
"dcmod": "468841295150972929",
"mpmanager": "1028735939813585029",
"mpmod": "572151330710487041",
"vtcmanager": "1028735871370940490",
"vtcstaff": "801945627268481046",
"ytmod": "734888335851388958",
"mphelper": "1034453973412884500",
"mpplayer": "798285830669598762",
"vtcmember": "802282391652663338"
},
"channels": {
"console": "1011318687065710663",
"errors": "1009754872188506192",
"thismeanswar": "930588618085502987",
"bot_status": "1009753780188884992",
"logs": "548032776830582794",
"welcome": "621134751897616406",
"botcommands": "468888722210029588"
}
}
}

View File

@ -428,7 +428,7 @@ class userLevels extends Database {
}
} else if (data.messages >= this.algorithm(data.level+1)){// If user's message count meets/exceeds message requirement for next level...
this._content[userid].level++;// Level them up.
(this.client.channels.resolve(this.client.config.mainServer.channels.thismeanswar) as Discord.TextChannel).send({content: `<@${userid}> has reached level **${data.level}**. GG!`})
(this.client.channels.resolve(this.client.config.mainServer.channels.thismeanswar) as Discord.TextChannel).send({content: `<@${userid}> has reached level **${data.level}**. GG!`, allowedMentions: {parse: ['users']}})
}
} else {// If user doesn't exist on file, create an object for it.
this._content[userid] = {messages: 1, level: 0};

View File

@ -12,7 +12,7 @@ export default {
//if (member && adminPerm) return interaction.reply('You cannot bonk an admin!')
if (member) {
const embed = new client.embed().setColor(client.config.embedColor)
.setDescription(`> <@${member.id}> has been bonked!\n${reason?.length == null ? '' : `> Reason: ${reason}`}`)
.setDescription(`> <@${member.id}> has been bonked!\n${reason?.length == null ? '' : `> Reason: **${reason}**`}`)
.setImage('https://media.tenor.com/7tRddlNUNNcAAAAd/hammer-on-head-minions.gif')
.setFooter({text: `Bonk count for ${member.tag}: ${await client.bonkCount.getUser(member.id).toLocaleString('en-US')}`})
interaction.reply({embeds: [embed]})

View File

@ -3,7 +3,7 @@ import { TClient } from 'src/client';
import { Punishment } from "src/typings/interfaces";
export default {
async run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
if (!interaction.member.roles.cache.has(client.config.mainServer.roles.dcmod)) return client.youNeedRole(interaction, 'dcmod')
if (!client.isStaff(interaction.member)) return client.youNeedRole(interaction, 'dcmod');
const Subb = interaction.options.getSubcommand();
const caseId = interaction.options.getInteger('id');
if (Subb == 'update'){

View File

@ -27,11 +27,11 @@ async function MPdata(client:TClient, interaction:Discord.ChatInputCommandIntera
return FSserver
}
export default {
export default { //468835769092669461
async run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
if (interaction.channelId == '468835769092669461' && !client.isStaff(interaction.member) && ['status', 'players'].includes(interaction.options.getSubcommand())) {
if (interaction.channelId == '904192878140608563' && !client.isStaff(interaction.member) && ['status', 'players'].includes(interaction.options.getSubcommand())) {
interaction.reply(`Please use <#739084625862852715> for \`/mp status/players\` commands to prevent clutter in this channel.`).then((msg)=>{
setTimeout(()=>{interaction.deleteReply()}, 500)
setTimeout(()=>{interaction.deleteReply()}, 5000)
});
return;
}

File diff suppressed because one or more lines are too long

View File

@ -1,22 +1,22 @@
{
"190407856527376384": {
"messages": 53026,
"messages": 53027,
"level": 59
},
"593696856165449749": {
"messages": 51467,
"messages": 51469,
"level": 58
},
"141304507249197057": {
"messages": 67632,
"messages": 67635,
"level": 67
},
"533707949831487488": {
"messages": 57042,
"messages": 57043,
"level": 61
},
"532662366354276352": {
"messages": 33785,
"messages": 33790,
"level": 47
},
"824043915539513406": {
@ -24,7 +24,7 @@
"level": 35
},
"178941218510602240": {
"messages": 6396,
"messages": 6399,
"level": 20
},
"215497515934416896": {
@ -32,15 +32,15 @@
"level": 46
},
"301350210926280704": {
"messages": 14343,
"messages": 14346,
"level": 30
},
"695323013813633076": {
"messages": 14092,
"messages": 14095,
"level": 30
},
"389237487094071337": {
"messages": 12256,
"messages": 12257,
"level": 28
},
"716355511552966737": {
@ -76,7 +76,7 @@
"level": 18
},
"468837263577579524": {
"messages": 7696,
"messages": 7698,
"level": 22
},
"734703851558535188": {
@ -148,7 +148,7 @@
"level": 0
},
"169891949464125441": {
"messages": 541,
"messages": 542,
"level": 6
},
"718453763932946432": {
@ -228,7 +228,7 @@
"level": 2
},
"645342896312156181": {
"messages": 696,
"messages": 699,
"level": 6
},
"488505753133645826": {
@ -400,7 +400,7 @@
"level": 0
},
"903147621961588757": {
"messages": 15,
"messages": 16,
"level": 1
},
"386627658773168137": {
@ -528,7 +528,7 @@
"level": 0
},
"818595993121062974": {
"messages": 48,
"messages": 49,
"level": 1
},
"273755695680192513": {
@ -1340,7 +1340,7 @@
"level": 0
},
"98464148379148288": {
"messages": 1507,
"messages": 1510,
"level": 10
},
"1025723411680460840": {
@ -1656,7 +1656,7 @@
"level": 0
},
"937750032344571934": {
"messages": 103,
"messages": 105,
"level": 2
},
"873149038709571594": {
@ -1840,7 +1840,7 @@
"level": 0
},
"682165767109738507": {
"messages": 106,
"messages": 107,
"level": 2
},
"127840266701766656": {
@ -2488,7 +2488,7 @@
"level": 0
},
"284482432684785664": {
"messages": 3,
"messages": 4,
"level": 0
},
"727948378067173407": {
@ -2696,11 +2696,11 @@
"level": 0
},
"562257805927776286": {
"messages": 8,
"messages": 12,
"level": 0
},
"995622955897864272": {
"messages": 96,
"messages": 98,
"level": 2
},
"153323923633733632": {
@ -2772,11 +2772,23 @@
"level": 0
},
"248226483967885312": {
"messages": 3,
"messages": 4,
"level": 0
},
"985545842368864326": {
"messages": 2,
"level": 0
},
"760459018539106315": {
"messages": 1,
"level": 0
},
"169553969025253376": {
"messages": 2,
"level": 0
},
"288711706535002125": {
"messages": 1,
"level": 0
}
}

View File

@ -3,7 +3,6 @@ import { TClient } from '../client';
export default {
name: 'messageCreate',
execute: async(client:TClient, message:Discord.Message)=>{
if (!client.config.botSwitches.commands && !client.config.eval.whitelist.includes(message.author.id)) return
if (message.author.bot) return;
if (message.channel.type === ChannelType.DM) return;
const msgarr = message.content.toLowerCase().split(' ');
@ -17,10 +16,10 @@ export default {
// Arrary of channel ids for automod to be disabled in
]
if (client.bannedWords._content.some((x: any)=>msgarr.includes(x)) && !message.member.roles.cache.has(client.config.mainServer.roles.dcmod) && message.guildId == client.config.mainServer.id && !Whitelist.includes(message.channelId) && client.config.botSwitches.automod){
if (client.bannedWords._content.some((x)=>msgarr.includes(x)) && !message.member.roles.cache.has(client.config.mainServer.roles.dcmod) && message.guildId == client.config.mainServer.id && !Whitelist.includes(message.channelId) && client.config.botSwitches.automod){
automodded = true;
message.delete();
message.channel.send('That word is banned here.').then((x: any)=>setTimeout(()=>x.delete(), 5000));
message.channel.send('That word is banned here.').then((x)=>setTimeout(()=>x.delete(), 5000));
if (client.repeatedMessages[message.author.id]){
// add this message to the list
client.repeatedMessages[message.author.id].set(message.createdTimestamp, {cont: 0, ch: message.channelId});
@ -33,10 +32,10 @@ export default {
const threshold = 30000;
// message mustve been sent after (now - threshold), so purge those that were sent earlier
client.repeatedMessages[message.author.id] = client.repeatedMessages[message.author.id].filter((x: any, i: any)=>i >= Date.now() - threshold)
client.repeatedMessages[message.author.id] = client.repeatedMessages[message.author.id].filter((x, i)=>i >= Date.now() - threshold)
// a spammed message is one that has been sent atleast 4 times in the last threshold milliseconds
const spammedMessage = client.repeatedMessages[message.author.id]?.find((x:any)=>{
const spammedMessage = client.repeatedMessages[message.author.id]?.find((x)=>{
return client.repeatedMessages[message.author.id].size >= 4;
});
@ -66,14 +65,27 @@ export default {
const bannedChannels = [
'516344221452599306', // #mp-moderators
'742324777934520350', // #discord-moderators
'904192878140608563'
]
if (message.content.toLowerCase().includes('tenor.com/view') || message.content.toLowerCase().includes('giphy.com/gifs/') || message.content.toLowerCase().includes('giphy.com/media/') && bannedChannels.includes(message.channelId)) {
const gifURL = [
'tenor.com/view',
'giphy.com/gifs',
'giphy.com/media'
]
if (gifURL.some(e=>message.content.toLowerCase().includes(e)) && bannedChannels.includes(message.channelId)) {
message.reply('Gifs are not allowed in this channel.').then((msg: any)=>message.delete())
}
// Autoresponse:tm:
if (client.config.botSwitches.autores && !automodded) {
const MorningArray = ['good morning', 'morning all', 'morning everyone', 'morning lads']
const AfternoonArray = ['good afternoon', 'afternoon all']
const EveningArray = ['good evening', 'evening all', 'evening everyone']
const NightArray = ['night all', 'night everyone']
const PasswordArray = ['whats the password', 'what\'s the password', 'password pls']
const cantRead = ['i cant read', 'i can\'t read', 'cant read', 'can\'t read']
const NawdicBrokeIt = ['break', 'broke', 'broken']
const deadChat = ['dead chat', 'chat is dead', 'dead server']
if (message.mentions.members.has('309373272594579456') && !client.isStaff(message.member) && message.type != 19){
message.reply('Please don\'t tag Daggerwin, read rule 14 in <#468846117405196289>')
}
@ -81,34 +93,40 @@ export default {
message.reply('Please don\'t tag Monster unless it\'s important!')
}
if (message.content.toLowerCase().startsWith(`*mp players`) || message.content.toLowerCase().startsWith(`*mp status`)){
message.reply('Prefix-based MP commands has been moved to `/mp players` and `/mp status`')
message.reply('Prefix-based MP commands has moved to `/mp players` and `/mp status`')
}
if (message.content.toLowerCase().includes('whats the password') || message.content.toLowerCase().includes('what\'s the password') || message.content.toLowerCase().includes('password pls')){
if (message.content.toLowerCase().startsWith(`*lrs`) || message.content.toLowerCase().startsWith(`*rank`)){
message.reply('Prefix-based LRS command has moved to `/rank view`')
}
if (message.content.toLowerCase().startsWith(`*mp series`) || message.content.toLowerCase().startsWith(`*mp info`)){
message.reply('Prefix-based info commands has moved to `/faq`')
}
if (PasswordArray.some(e=>message.content.toLowerCase().includes(e))){
message.reply('Password and other details can be found in <#543494084363288637>')
}
if (message.content.toLowerCase().includes('i cant read') || message.content.toLowerCase().includes('i can\'t read')){
if (cantRead.some(e=>message.content.toLowerCase().includes(e))){
message.reply('https://tenor.com/view/aristocats-george-pen-cap-meticulous-gif-5330931')
}
if (message.content.toLowerCase().includes('is daggerbot working')){
message.reply('https://tenor.com/view/i-still-feel-alive-living-existing-active-singing-gif-14630579')
}
if (message.content.toLowerCase().includes('dead chat') || message.content.toLowerCase().includes('chat is dead')){
if (deadChat.some(e=>message.content.toLowerCase().includes(e))){
message.reply('https://cdn.discordapp.com/attachments/925589318276382720/1011333656167579849/F57G5ZS.png')
}
if (message.content.toLowerCase().includes('nawdic') && (message.content.toLowerCase().includes('break') || message.content.toLowerCase().includes('broke') || message.content.toLowerCase().includes('broken'))){
if (message.content.toLowerCase().includes('nawdic') && (NawdicBrokeIt.some(e=>message.content.toLowerCase().includes(e)))){
const embed = new client.embed().setTitle('*Nawdic has done an oopsie*').setImage('https://c.tenor.com/JSj9ie_MD9kAAAAC/kopfsch%C3%BCtteln-an-kopf-fassen-oh-no.gif').setColor(client.config.embedColor)
message.reply({embeds: [embed]})
}
if (message.content.toLowerCase().startsWith('good morning') || message.content.toLowerCase().startsWith('morning all') || message.content.toLowerCase().startsWith('morning everyone')){
if (MorningArray.some(e=>message.content.toLowerCase().startsWith(e))){
message.reply(`Good morning **${message.member.displayName}**!`)
}
if (message.content.toLowerCase().startsWith('good afternoon') || message.content.toLowerCase().startsWith('afternoon all')){
if (AfternoonArray.some(e=>message.content.toLowerCase().startsWith(e))){
message.reply(`Afternoon **${message.member.displayName}**!`)
}
if (message.content.toLowerCase().startsWith('good evening') || message.content.toLowerCase().startsWith('evening all')){
if (EveningArray.some(e=>message.content.toLowerCase().startsWith(e))){
message.reply(`Good evening **${message.member.displayName}**!`)
}
if (message.content.toLowerCase().startsWith('night all') || message.content.toLowerCase().startsWith('night everyone')){
if (NightArray.some(e=>message.content.toLowerCase().startsWith(e))){
message.reply(`Night **${message.member.displayName}**`)
}
}