Compare commits

...

3 commits

Author SHA1 Message Date
47dba48c76
Setpresence: Add a force subcommand to update presence immediately
All checks were successful
CI / CI (push) Successful in 1m23s
2025-06-09 22:03:37 +02:00
e92210e856
Save globalPrefix in the settings map
All checks were successful
CI / CI (push) Successful in 1m23s
2025-06-09 21:50:27 +02:00
ba99719c20
Update setPresence custom variable logic
All checks were successful
CI / CI (push) Successful in 1m25s
2025-06-09 20:38:34 +02:00
4 changed files with 37 additions and 12 deletions

View file

@ -1,5 +1,5 @@
const savePresence = require("../../util/savePresence");
const timeUntil = require("../../util/timer/timeUntil");
const setPresence = require("../../util/setPresence");
module.exports = {
name: 'setpresence',
@ -13,7 +13,16 @@ module.exports = {
,"Custom Variables:"
,"${guilds},${prefix},${uptime},{members}"],
admin: true,
execute({message, client, args}) {
execute({message, client, args, prefix}) {
let forceUpdate = false;
if(args.length > 1 && 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.";
@ -47,6 +56,9 @@ module.exports = {
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);

View file

@ -54,6 +54,7 @@ createAndLoadWhitelistTable(client.whitelist);
client.settings.set("presenceType", presenceType);
client.settings.set("presenceText", presenceText);
client.settings.set("globalPrefix", globalPrefix);
const reloadCommands = require("./util/reloadCommands.js");
const onMessage = require('./server/message');
@ -74,7 +75,7 @@ client.once('disconnect', () => {
});
client.on('messageCreate', async message => {
onMessage(client, owners, message, globalPrefix);
onMessage(client, owners, message);
});

View file

@ -1,6 +1,6 @@
const isWhitelisted = require('../util/isWhitelisted')
module.exports = function(client, owners, message, globalPrefix){
let prefix = globalPrefix;
module.exports = function(client, owners, message){
let prefix = client.settings.get("globalPrefix");
let serverPrefix = client.serverPrefixes.get(message.guild.id);
if (serverPrefix) {
prefix = serverPrefix;
@ -28,7 +28,7 @@ module.exports = function(client, owners, message, globalPrefix){
if (command.admin && owners.indexOf(message.author.id.toString()) == -1) return;
try {
console.log(`${message.author.username}(id: ${message.author.id}) executed ${command.name} with '${args}' as arguments`)
command.execute({ message: message, args: args, client: client, prefix: prefix, owners: owners, globalPrefix: globalPrefix})
command.execute({ message: message, args: args, client: client, prefix: prefix, owners: owners})
} catch (error) {
let divider = "------------------------"
console.log(divider)

View file

@ -2,7 +2,7 @@ const getGuildInfo = require("./getGuildInfo")
const parseMS = require('./parseMS');
const convertDateToISOString = require('./convertDateToISOString')
module.exports = function ({presenceText, presenceType, client}) {
const {globalPrefix} = require ('../data/config.json')
const globalPrefix = client.settings.get("globalPrefix")
const guildInfo = getGuildInfo(client);
let uptime = parseMS(client.uptime);
let uptimeFormat = "";
@ -18,10 +18,22 @@ module.exports = function ({presenceText, presenceType, client}) {
uptimeFormat = `less than a minute`
}
let regex = [/\${guilds}/g,/\${prefix}/g,/\${uptime}/g, /\${members}/g];
let replaceValue = [guildInfo.guildCount, globalPrefix, uptimeFormat, guildInfo.totalMembers];
for(let i = 0; i < regex.length; i++){
presenceText = presenceText.replace(regex[i], replaceValue[i]);
let presenceVariables = {
guilds: guildInfo.guildCount,
prefix: globalPrefix,
uptime: uptimeFormat,
members: guildInfo.totalMembers
}
const regex = /(?<=\${)(.*?)(?=})/g;
const matches = presenceText.match(regex);
if(matches){
matches.forEach(match => {
if(presenceVariables[match]){
presenceText = presenceText.replace(`\${${match}}`, presenceVariables[match]);
}
});
}
try {