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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
| client.on('ready', function () {
console.log("Je suis connecté !");
const table = sql.prepare("SELECT count(*) FROM sqlite_master WHERE type='table' AND name = 'data';").get();
if (!table['count(*)']) {
sql.prepare("CREATE TABLE data (id TEXT PRIMARY KEY, user TEXT, msgSent INTEGER, msgPts DECIMAL(5,2), vocTime INTEGER, vocPts DECIMAL(5,2));").run();
sql.prepare("CREATE UNIQUE INDEX idx_data_id ON data (id);").run();
sql.pragma("synchronous = 1");
sql.pragma("journal_mode = wal");
}
client.getMsg = sql.prepare("SELECT id, user, msgSent, msgPts FROM data WHERE id = ?");
client.setMsg = sql.prepare("INSERT OR REPLACE INTO data (id, user, msgSent, msgPts) VALUES (@id, @user, @msgSent, @msgPts);");
client.getVoc = sql.prepare("SELECT id, user, vocTime, vocPts FROM data WHERE id = ?");
client.setVoc = sql.prepare("INSERT OR REPLACE INTO data (id, user, vocTime, vocPts) VALUES (@id, @user, @vocTime, @vocPts);");
})
client.on("message", message => {
if (message.author.bot) return;
let msg;
if (message.guild) {
msg = client.getMsg.get(message.author.id);
if (!msg) {
msg = { id: message.author.id, user: message.member.displayName, msgSent: 0, msgPts: 0}
}
msg.msgSent++
msg.msgPts = (msg.msgSent*0.12).toFixed(2);
if (msg.msgPts > 300) {msg.msgPts = 300}
console.log(msg.id)
client.setMsg.run(msg);
}
if (message.content.indexOf(prefix) !== 0) return;
const args = message.content.slice(prefix.length).trim().split(/ +/g);
const command = args.shift().toLowerCase();
if(command === "points") {
if (msg.msgSent<2) {
message.channel.send("Vous avez envoyé " + msg.msgSent + " message!")
message.channel.send("Vous avez cumulé " + msg.msgPts + " points")
} else {
message.channel.send("Vous avez envoyé " + msg.msgSent + " messages!")
message.channel.send("Vous avez cumulé " + msg.msgPts + " points")
}
}
})
client.on('voiceStateUpdate', (oldMember,newMember) => {
let newMemberChannel = newMember.voiceChannel
let oldMemberChannel = oldMember.voiceChannel
let userData = JSON.parse(fs.readFileSync('Storage/voiceData.json'))
if (oldMemberChannel === undefined) {
let date = new Date()
let oldDate = date.getTime()
if (!userData[oldMember.id]) userData[oldMember.id] = {
oldDate: 0
}
userData[oldMember.id].oldDate = oldDate
fs.writeFile('Storage/voiceData.json', JSON.stringify((userData), null, 4), (err) => {
if (err) console.error(err);
})
oldMember.createDM().then(channel => {
channel.send(oldMember.displayName + " s'est connecté !")
})
}
if (newMemberChannel === undefined && oldMemberChannel !== undefined) {
let date = new Date()
let newDate = date.getTime()
let oldDate = userData[oldMember.id].oldDate
let voc
voc = client.getVoc.get(oldMember.id)
if (!voc) {
voc = { id: oldMember.id, user: oldMember.displayName, vocTime: 0, vocPts: 0}
}
let vocTime = (newDate - oldDate)/60000
let vocPts, vocPtsI
voc.vocTime = parseInt(vocTime)
vocPts = voc.vocTime*0.06
vocPtsI = voc.vocPts
voc.vocPts = vocPtsI + vocPts
if (voc.vocPts > 700) {voc.vocPts = 700}
console.log(voc.id)
client.setVoc.run(voc)
newMember.createDM().then(channel => {
channel.send(newMember.displayName + " s'est déconnecté !")
channel.send("Durée passée dans un salon vocal : " + Math.round(vocTime*60)/1 + " s soit " + voc.vocTime + " m")
channel.send("Vous avez cumulé " + "**" + voc.vocPts + "**" + " pts")
})
}
}) |
Partager