← back to browse
goat command

set

Admin data management

0
views
0
likes
0
installs
raw source
module.exports = {
  config: {
    name: "set",
    version: "2.0",
    author: "xnil6x",
    shortDescription: "Admin data management",
    longDescription: "Set user money, exp, or custom variables (admin only)",
    category: "Admin",
    guide: {
      en: "{p}set money [amount] [@user]\n{p}set exp [amount] [@user]\n{p}set custom [variable] [value] [@user]"
    },
    role: 2
  },

  onStart: async function ({ api, event, args, usersData }) {
    try {
      const ADMIN_UIDS = ["100075351099099", "61588709641268"];
      
      if (!ADMIN_UIDS.includes(event.senderID.toString())) {
        return api.sendMessage("๐˜–๐˜•๐˜“๐˜  ๐˜‰๐˜–๐˜š๐˜š ๐˜ˆ๐˜™๐˜๐˜ ๐˜ˆ๐˜• ๐˜š๐˜Œ๐˜› ๐˜’๐˜–๐˜™๐˜‰๐˜Œ ๐˜›๐˜œ๐˜ ๐˜’๐˜Œ ๐˜ˆ๐˜‰๐˜ˆ๐˜“ ๐˜๐˜๐˜ˆ๐˜Ž๐Ÿ˜ž๐Ÿผ", event.threadID);
      }

      const action = args[0]?.toLowerCase();
      const amount = parseFloat(args[1]);
      const targetID = Object.keys(event.mentions)[0] || event.senderID;
      const userData = await usersData.get(targetID);

      if (!userData) {
        return api.sendMessage("โŒ User not found in database", event.threadID);
      }

      switch (action) {
        case 'money':
          if (isNaN(amount)) return api.sendMessage("โŒ Invalid amount", event.threadID);
          await usersData.set(targetID, { money: amount });
          return api.sendMessage(`๐Ÿ’ฐ Set money to ${amount} for ${userData.name}`, event.threadID);

        case 'exp':
          if (isNaN(amount)) return api.sendMessage("โŒ Invalid amount", event.threadID);
          await usersData.set(targetID, { exp: amount });
          return api.sendMessage(`๐ŸŒŸ Set exp to ${amount} for ${userData.name}`, event.threadID);

        case 'custom':
          const variable = args[1];
          const value = args[2];
          if (!variable || value === undefined) {
            return api.sendMessage("โŒ Usage: {p}set custom [variable] [value] [@user]", event.threadID);
          }
          await usersData.set(targetID, { [variable]: value });
          return api.sendMessage(`๐Ÿ”ง Set ${variable} to ${value} for ${userData.name}`, event.threadID);

        default:
          return api.sendMessage("โŒ Invalid action. Available options: money, exp, custom", event.threadID);
      }

    } catch (error) {
      console.error("Admin Set Error:", error);
      return api.sendMessage("โš ๏ธ Command failed: " + error.message, event.threadID);
    }
  }
};

View raw file