From 4970f1a10f4de9e1ae47a412f7b0937aca04ebd6 Mon Sep 17 00:00:00 2001 From: ayeuhugyu Date: Sat, 9 Sep 2023 15:32:01 -0700 Subject: [PATCH] fixed some crashes relating to dmming users outside a guild, also fixed recursive p/says --- src/commands/dmuser.js | 109 ++++++++++++++++++++++++++++------------- src/commands/say.js | 67 ++++++++++++++++--------- 2 files changed, 120 insertions(+), 56 deletions(-) diff --git a/src/commands/dmuser.js b/src/commands/dmuser.js index f313159..09f4754 100644 --- a/src/commands/dmuser.js +++ b/src/commands/dmuser.js @@ -11,8 +11,10 @@ function delay(time) { module.exports = { name: "dmuser", description: "forces bot to dm a user something (this will ghost ping them)", - execute(message, args, client) { + execute(message, args) { const user = message.mentions.users.first(); + const guild = message.guild; + if (!user) { return; } @@ -22,44 +24,83 @@ module.exports = { console.log(typeof user); console.log(user.username); - //const usercache = client.users.fetch(user.id, false, true); const msg = msgnoprefix.slice(0, 2000); + let ableToSend = true; + if (msg !== "") { - user.send(msg); - message.delete(); - fs.appendFileSync( - "../pepperbot/src/logs/forcesay.log", - Date() + - " " + - message.author.username + - " (" + - message.author + - ") forced bot to dm " + - user.username + - msg + - "\n", - (err) => { - if (err !== null) { - console.error(err); - fs.appendFileSync( - "../pepperbot/src/logs/errors.log", - err + " from: " + message.content + " at " + Date() - ); + user.send(msg).catch(() => { + message.channel.send( + `cannot send message to ${user}, this is usually caused by them not being inside the server` + ); + fs.appendFileSync( + "../pepperbot/src/logs/forcesay.log", + Date() + + " " + + message.author.username + + " (" + + message.author + + ") attempted to force bot to dm " + + user.username + + msg + + "\n", + (err) => { + if (err !== null) { + console.error(err); + fs.appendFileSync( + "../pepperbot/src/logs/errors.log", + err + " from: " + message.content + " at " + Date() + ); + } } - } - ); - console.log( - Date() + - message.author.username + - " (" + - message.author + - ") forced bot to dm " + - user.username + - msg + - "\n" - ); + ); + console.log( + Date() + + message.author.username + + " (" + + message.author + + ") attempted to force bot to dm " + + user.username + + msg + + "\n" + ); + ableToSend = false; + }); + message.delete(); + if (ableToSend) { + fs.appendFileSync( + "../pepperbot/src/logs/forcesay.log", + Date() + + " " + + message.author.username + + " (" + + message.author + + ") forced bot to dm " + + user.username + + msg + + "\n", + (err) => { + if (err !== null) { + console.error(err); + fs.appendFileSync( + "../pepperbot/src/logs/errors.log", + err + " from: " + message.content + " at " + Date() + ); + } + } + ); + console.log( + Date() + + message.author.username + + " (" + + message.author + + ") forced bot to dm " + + user.username + + msg + + "\n" + ); + } } }, }; diff --git a/src/commands/say.js b/src/commands/say.js index b01a595..10651a9 100644 --- a/src/commands/say.js +++ b/src/commands/say.js @@ -1,30 +1,53 @@ -const fs = require('fs') +const fs = require("fs"); -const prefix = process.env.PREFIX +const prefix = process.env.PREFIX; function delay(time) { - return new Promise(resolve => { - setTimeout(resolve, time); - }); + return new Promise((resolve) => { + setTimeout(resolve, time); + }); } module.exports = { - name: 'say', - description: 'forces bot to say something', - execute(message, args){ - const msgnoprefix = message.content.slice(prefix.length + this.name.length) - const msg = msgnoprefix.slice(0, 2000) + name: "say", + description: "forces bot to say something", + execute(message, args) { + if (message.author.bot) return; + const msgnoprefix = message.content.slice(prefix.length + this.name.length); + const msg = msgnoprefix.slice(0, 2000); - if (msg !== '') { - message.channel.send(msg) - message.delete() - fs.appendFileSync("../pepperbot/src/logs/forcesay.log", Date() + " " + message.author.username + " (" + message.author + ") forced bot to say " + msg + "\n", (err) => { - if (err !== null) { - console.error(err) - fs.appendFileSync("../pepperbot/src/logs/errors.log", err + ' from: ' + message.content + " at " + Date()) - } - }) - console.log(Date() + " " + message.author.username + " (" + message.author + ") forced bot to say " + msg) - } + if (msg !== "") { + message.channel.send(msg); + message.delete(); + fs.appendFileSync( + "../pepperbot/src/logs/forcesay.log", + Date() + + " " + + message.author.username + + " (" + + message.author + + ") forced bot to say " + + msg + + "\n", + (err) => { + if (err !== null) { + console.error(err); + fs.appendFileSync( + "../pepperbot/src/logs/errors.log", + err + " from: " + message.content + " at " + Date() + ); + } + } + ); + console.log( + Date() + + " " + + message.author.username + + " (" + + message.author + + ") forced bot to say " + + msg + ); } -} \ No newline at end of file + }, +};