-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmessageCreate.js
More file actions
48 lines (36 loc) · 1.38 KB
/
messageCreate.js
File metadata and controls
48 lines (36 loc) · 1.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
const { ChannelType, Events, PermissionFlagsBits, EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require('discord.js');
const fs = require("fs");
const path = require("path");
//LEVEL SİSTEMİ
const levelPath = path.join(__dirname, "./Database/levelData.json");
if (!fs.existsSync(levelPath)) fs.writeFileSync(levelPath, "{}");
client.on("messageCreate", async (message) => {
if (!message.guild || message.author.bot) return;
const xpPerMessage = 1;
const cooldown = 3 * 1000; //1 Dakika Cooldown - UnutmArviS
let data = JSON.parse(fs.readFileSync(levelPath, "utf8"));
const userId = message.author.id;
const guildId = message.guild.id;
if (!data[guildId]) data[guildId] = {};
if (!data[guildId][userId]) {
data[guildId][userId] = {
xp: 0,
level: 1,
lastMessage: 0
};
}
const userData = data[guildId][userId];
const now = Date.now();
if (now - userData.lastMessage < cooldown) return;
userData.xp += xpPerMessage;
userData.lastMessage = now;
const neededXP = userData.level * 100;
if (userData.xp >= neededXP) {
userData.level++;
userData.xp = userData.xp - neededXP;
message.channel.send({
content: `Tebrikler <@${userId}>, seviye atladın. Yeni seviyen: **${userData.level}**`
});
}
fs.writeFileSync(levelPath, JSON.stringify(data, null, 2));
});