UNPKG

@getsolara/solara.db

Version:

Optional database functionality for @getsolara/solara.js using quick.db

33 lines 1.73 kB
module.exports = { name: "$setUserVar", description: "Sets a variable associated with a specific user (optionally per-server). Args: varName;value;userID;[scope=global]", takesBrackets: true, execute: async (context, args) => { if (!context.client.db) { return "[Error: $setUserVar requires database features to be enabled. Ensure @getsolara/solara.db is installed and configured correctly in SolaraClient options.]"; } if (args.length < 3) return "[Error: $setUserVar requires varName, value, and userID]"; const varName = args[0].trim(); const value = args[1]; const userId = args[2].trim(); const scope = args[3]?.trim().toLowerCase() || 'global'; if (!varName) return "[Error: Variable name cannot be empty for $setUserVar]"; if (!/^\d{17,19}$/.test(userId)) return "[Error: Invalid userID provided to $setUserVar]"; let dbKey; if (scope === 'local') { if (!context.guild) return "[Error: Local scope for $setUserVar requires a guild context]"; dbKey = `userGuildVars_${context.guild.id}_${userId}_${varName}`; } else if (scope === 'global') { dbKey = `userVars_${userId}_${varName}`; } else { return "[Error: Invalid scope for $setUserVar. Use 'global' or 'local'.]"; } try { await context.client.db.set(dbKey, value); return ""; } catch (e) { console.error(`Solara.db Error ($setUserVar): Failed to set variable '${dbKey}'. Error: ${e.message}`); return `[DB Error setting user variable '${varName}': ${e.message}]`; } } };