@getsolara/solara.db
Version:
Optional database functionality for @getsolara/solara.js using quick.db
32 lines • 1.67 kB
JavaScript
module.exports = {
name: "$deleteUserVar",
description: "Deletes a variable associated with a specific user (optionally per-server). Args: varName;userID;[scope=global]",
takesBrackets: true,
execute: async (context, args) => {
if (!context.client.db) {
return "[Error: $deleteUserVar requires database features to be enabled. Ensure @getsolara/solara.db is installed and configured correctly.]";
}
if (args.length < 2) return "[Error: $deleteUserVar requires varName and userID]";
const varName = args[0].trim();
const userId = args[1].trim();
const scope = args[2]?.trim().toLowerCase() || 'global';
if (!varName) return "[Error: Variable name cannot be empty for $deleteUserVar]";
if (!/^\d{17,19}$/.test(userId)) return "[Error: Invalid userID for $deleteUserVar]";
let dbKey;
if (scope === 'local') {
if (!context.guild) return "[Error: Local scope for $deleteUserVar 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 $deleteUserVar. Use 'global' or 'local'.]";
}
try {
await context.client.db.delete(dbKey);
return "";
} catch (e) {
console.error(`Solara.db Error ($deleteUserVar): Failed to delete key '${dbKey}'. Error: ${e.message}`);
return `[DB Error deleting user variable '${varName}': ${e.message}]`;
}
}
};