discord_bot/commands/admin/setPresence.js
SileNce5k 4132a61b51
All checks were successful
CI / CI (push) Successful in 1m23s
Setpresence: Add a force subcommand to update presence immediately
2025-06-09 21:57:10 +02:00

68 lines
No EOL
1.8 KiB
JavaScript

const savePresence = require("../../util/savePresence");
const setPresence = require("../../util/setPresence");
module.exports = {
name: 'setpresence',
description: 'Set the presence for the bot',
moreHelp: ["Presence types you can use:"
,"PLAY, LISTEN, WATCH, CUSTOM, COMPETING"
,"Presence type have to be the first argument"
,"Example: `<prefix>setpresence watch ${guilds} servers`",
,"Updates once a minute if custom variables are used."
,""
,"Custom Variables:"
,"${guilds},${prefix},${uptime},{members}"],
admin: true,
execute({message, client, args, prefix}) {
let forceUpdate = false;
if(args[0] === "force") {
forceUpdate = true;
args.shift();
}
if(args.length > 1){
message.channel.send(`You need at least two arguments for this command, see \`${prefix}help setpresence\``)
return;
}
let presenceType = args[0].toLocaleUpperCase();
let sendText = "Presence has been set.";
switch (presenceType) {
case "PLAY":
presenceType = 0;
break;
case "LISTEN":
presenceType = 2;
break;
case "WATCH":
presenceType = 3;
break;
case "CUSTOM":
presenceType = 4;
break;
case "COMPETING":
presenceType = 5;
break;
case "STREAM":
presenceType = 1;
break;
default:
presenceType = "INVALID";
}
if(presenceType === "INVALID"){
sendText = "Invalid presence type";
} else {
const firstArg = args[0].length + 1;
let temp = args.join(" ");
let presenceText = temp.slice(firstArg, temp.length)
savePresence(presenceType, presenceText, client);
if(forceUpdate)
setPresence({presenceText, presenceType, client})
else
sendText = `${sendText} It will update <t:${Math.floor((client.lastPresenceUpdate + 60000) / 1000)}:R>`
}
message.channel.send(sendText);
}
};