Skip to content

Instantly share code, notes, and snippets.

@KOULIKS94
Created March 21, 2025 07:22
Show Gist options
  • Select an option

  • Save KOULIKS94/2e5ec00b4ae12a6aec0e228a10f710a9 to your computer and use it in GitHub Desktop.

Select an option

Save KOULIKS94/2e5ec00b4ae12a6aec0e228a10f710a9 to your computer and use it in GitHub Desktop.
const { command } = require("../lib");
const xpData = {}; // Temporary storage (Use a database for persistent storage)
// Function to add XP per message
async function addXP(sender) {
if (!xpData[sender]) xpData[sender] = { xp: 0, level: 1 };
xpData[sender].xp += 10; // Earn 10 XP per message
const nextLevelXP = xpData[sender].level * 100; // XP needed for next level
if (xpData[sender].xp >= nextLevelXP) {
xpData[sender].level++;
xpData[sender].xp = 0; // Reset XP after leveling up
return `๐ŸŽ‰ *Level Up!* ${sender} is now *Level ${xpData[sender].level}* ๐Ÿš€`;
}
return null;
}
// XP System (Triggered on every message)
command(
{
on: "message",
type: "group",
onlyGroup: true,
},
async (message) => {
if (message.isBot) return; // Ignore bot messages
const levelUpMessage = await addXP(message.sender);
if (levelUpMessage) await message.send(levelUpMessage);
}
);
// Command to check XP & Level
command(
{
pattern: "xp",
desc: "Check your XP & Level",
type: "group",
onlyGroup: true,
},
async (message) => {
const user = xpData[message.sender] || { xp: 0, level: 1 };
await message.send(`๐ŸŽฎ *Your XP:* ${user.xp} \n๐Ÿ† *Your Level:* ${user.level}`);
}
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment