70 lines
2.4 KiB
JavaScript
Executable File
70 lines
2.4 KiB
JavaScript
Executable File
// authenticates you with the API standard library
|
|
// type `await lib.` to display API autocomplete
|
|
const lib = require('lib')({token: process.env.STDLIB_SECRET_TOKEN});
|
|
|
|
// our admin role ID and the guild ID for perm checks.
|
|
let role = `${process.env.DISCORD_ROLE_ID}`;
|
|
let serverInfo = await lib.discord.guilds['@0.2.3'].retrieve({
|
|
guild_id: `${process.env.DISCORD_GUILD_ID}`,
|
|
with_counts: false
|
|
});
|
|
let serverOwner = serverInfo.owner_id
|
|
|
|
// if they have admin perms and sent from an guild we specified earlier
|
|
// or if they're the server owner themselves.
|
|
if (context.params.event.member.roles.includes(role) || context.params.event.member.user.id === serverOwner) {
|
|
/* fetch options from the payload */
|
|
let status = context.params.event.data.options[0].value;
|
|
let type = context.params.event.data.options[1].value;
|
|
let name = context.params.event.data.options[2].value;
|
|
let url = context.params.event.data.options[3];
|
|
|
|
// Converting variable from URL option
|
|
if (!url) {
|
|
url = '';
|
|
} else {
|
|
url = url.value;
|
|
}
|
|
|
|
|
|
await lib.discord.users['@0.1.5'].me.status.update({
|
|
activity_name: name,
|
|
activity_type: type,
|
|
status: status,
|
|
url: url,
|
|
});
|
|
|
|
// TODO: Make this message invokation visible to sender only.
|
|
return await lib.discord.channels['@0.2.0'].messages.create({
|
|
channel_id: `${context.params.event.channel_id}`,
|
|
content: ``,
|
|
"tts": false,
|
|
"embeds": [
|
|
{
|
|
"type": "rich",
|
|
"title": `✅ Status message successfully updated`,
|
|
"description": `Your client should shown the changes immediately. Otherwise, please restart your Discord client.`,
|
|
"color": 0x00ff4c
|
|
}
|
|
],
|
|
response_type: 'CHANNEL_MESSAGE_WITH_SOURCE'
|
|
});
|
|
}
|
|
else {
|
|
// send a error message about missing perms and also pinging people with that role
|
|
let deny = await lib.discord.channels['@0.2.0'].messages.create({
|
|
channel_id: `${context.params.event.channel_id}`,
|
|
content: ``,
|
|
tts: false,
|
|
embeds: [
|
|
{
|
|
"type": "rich",
|
|
"title": `❌ You don't have enough permissions to do this!`,
|
|
"description": `<@${context.params.event.member.user.id}>, please ask a <@&${process.env.DISCORD_ROLE_ID}> to update te bot's status.`,
|
|
"color": 0xff0000
|
|
}
|
|
],
|
|
response_type: 'CHANNEL_MESSAGE_WITH_SOURCE'
|
|
});
|
|
}
|
|
|