You can use context menus to report a specific message to staff. Requires you to have a context menu item that you create by calling this API: https://autocode.com/lib/discord/contextmenu/#items-create. The context menu item must be named "Report" for this snippet to work.
const lib = require('lib')({token: process.env.STDLIB_SECRET_TOKEN});
await lib.discord.channels['@0.2.0'].messages.create({
channel_id: `${process.env.REPORTLOG_CHANNEL}`,
content: ``,
tts: false,
embeds: [
{
type: 'rich',
title: ``,
description: `**User Reported a message**\n Reported By: <@${context.params.event.member.user.id}>\n\n[Click here to see](https://discord.com/channels/${process.env.GUILDID}/${context.params.event.data.resolved.messages[0].channel_id}/${context.params.event.data.resolved.messages[0].id})`,
color: 0xff0000,
},
],
});
let message = context.params.event;
let sleep = async (ms) => {
return new Promise((resolve) => {
setTimeout(resolve, ms);
});
};
try {
let done = await lib.discord.users['@0.1.0'].dms.create({
recipient_id: context.params.event.member.user.id,
content: `<@${context.params.event.member.user.id}> ✅ **Reported To staff**`,
});
} catch (err) {
let done = await lib.discord.channels['@0.1.1'].messages.create({
channel_id: `${context.params.event.data.resolved.messages[0].channel_id}`,
content: `<@${context.params.event.member.user.id}> ✅ **Done**`,
message_reference: {
message_id: `${context.params.event.data.resolved.messages[0].id}`,
},
});
await sleep(8000);
await lib.discord.channels['@0.1.2'].messages.destroy({
message_id: done.id,
channel_id: context.params.event.data.resolved.messages[0].channel_id,
});
}