discordjs / Commando

Official command framework for discord.js
Apache License 2.0
497 stars 245 forks source link

Default eval command is confusing when used in self-bot mode #159

Closed evaera closed 6 years ago

evaera commented 6 years ago

When using Commando on a self-bot, the built-in eval command has a confusing quirk. When editable commands are enabled (i.e. commandEditableDuration isn't 0), the output of the eval command is deleted instantly, as soon as it's evaluated. This is because the code tries to edit the original command message with the output if it can, and then returns that same message as the response message.

But the act of editing the command message, which is now the response message, into something that isn't a command (the output of the eval command), causes the response message to be deleted, which is also the command message. Thus, the single message used throughout this process is sent by the user, evaluated, edited to the output, and then deleted, all within a very short time.

The obvious fix is to just set commandEditableDuration to 0, but I think that's a useful feature and this whole thing confused me for a good 10 minutes until I figured it out. It'd be nice if this little gotcha could be addressed somehow. Thanks

Gawdl3y commented 6 years ago

I never had this happen when I was testing it out, though that was ages ago - regardless, selfbot mode is going to be removed in the near future, as selfbots are no longer supported (even in plain d.js) and are against the Discord TOS.