From ba99719c2040e1f5b836987a7e1997f1617880c8 Mon Sep 17 00:00:00 2001 From: SileNce5k Date: Mon, 9 Jun 2025 20:38:34 +0200 Subject: [PATCH 1/3] Update setPresence custom variable logic --- util/setPresence.js | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/util/setPresence.js b/util/setPresence.js index 7f99e37..ea6f166 100644 --- a/util/setPresence.js +++ b/util/setPresence.js @@ -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 { From e92210e856fe8b345637d9fed853445550841e81 Mon Sep 17 00:00:00 2001 From: SileNce5k Date: Mon, 9 Jun 2025 21:47:37 +0200 Subject: [PATCH 2/3] Save globalPrefix in the settings map --- server.js | 3 ++- server/message.js | 6 +++--- util/setPresence.js | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/server.js b/server.js index c82911c..871dc93 100644 --- a/server.js +++ b/server.js @@ -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); }); diff --git a/server/message.js b/server/message.js index fb15f3b..169e206 100644 --- a/server/message.js +++ b/server/message.js @@ -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) diff --git a/util/setPresence.js b/util/setPresence.js index ea6f166..62b4633 100644 --- a/util/setPresence.js +++ b/util/setPresence.js @@ -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 = ""; From 47dba48c764644b84c4ecf312b79ba832bb25de4 Mon Sep 17 00:00:00 2001 From: SileNce5k Date: Mon, 9 Jun 2025 21:53:32 +0200 Subject: [PATCH 3/3] Setpresence: Add a force subcommand to update presence immediately --- commands/admin/setPresence.js | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/commands/admin/setPresence.js b/commands/admin/setPresence.js index 9683fd7..5dbfd51 100644 --- a/commands/admin/setPresence.js +++ b/commands/admin/setPresence.js @@ -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,7 +56,10 @@ module.exports = { let temp = args.join(" "); let presenceText = temp.slice(firstArg, temp.length) savePresence(presenceType, presenceText, client); - sendText = `${sendText} It will update ` + if(forceUpdate) + setPresence({presenceText, presenceType, client}) + else + sendText = `${sendText} It will update ` } message.channel.send(sendText);