Add !message

cshd
Dragory 2020-08-17 00:39:39 +03:00
parent 16a3af07ef
commit d85a2dad5d
No known key found for this signature in database
GPG Key ID: 5F387BA66DF8AAC1
2 changed files with 35 additions and 0 deletions

View File

@ -75,6 +75,13 @@ This is mainly useful when reporting messages to Discord's Trust & Safety team.
### `!id`
Prints the user's ID.
### `!dm_channel_id`
Prints the ID of the current DM channel with the user
### `!message <number>`
Shows the DM channel ID, DM message ID, and message link of the specified user reply.
`<number>` is the message number shown in brackets before the user reply in the thread.
## Anywhere on the inbox server
These commands can be used anywhere on the inbox server, even outside Modmail threads.

View File

@ -1,3 +1,6 @@
const ThreadMessage = require("../data/ThreadMessage");
const utils = require("../utils");
module.exports = ({ bot, knex, config, commands }) => {
commands.addInboxThreadCommand("id", [], async (msg, args, thread) => {
thread.postSystemMessage(thread.user_id);
@ -7,4 +10,29 @@ module.exports = ({ bot, knex, config, commands }) => {
const dmChannel = await thread.getDMChannel();
thread.postSystemMessage(dmChannel.id);
});
commands.addInboxThreadCommand("message", "<messageNumber:number>", async (msg, args, thread) => {
/** @type {ThreadMessage} */
const threadMessage = await thread.findThreadMessageByMessageNumber(args.messageNumber);
if (! threadMessage) {
thread.postSystemMessage("No message in this thread with that number");
return;
}
const channelId = threadMessage.dm_channel_id;
// In specific rare cases, such as createThreadOnMention, a thread message may originate from a main server
const channelIdServer = utils.getMainGuilds().find(g => g.channels.has(channelId));
const messageLink = channelIdServer
? `https://discord.com/channels/${channelIdServer.id}/${channelId}/${threadMessage.dm_message_id}`
: `https://discord.com/channels/@me/${channelId}/${threadMessage.dm_message_id}`;
const parts = [
`Details for message \`[${threadMessage.message_number}]\`:`,
`Channel ID: \`${channelId}\``,
`Message ID: \`${threadMessage.dm_message_id}\``,
`Link: <${messageLink}>`,
];
thread.postSystemMessage(parts.join("\n"));
});
};