Bonjour,

J'ai un soucis actuellement avec mon code : je n'arrive pas � ins�rer des donn�es dans ma base de donn�es SQLite.

Voici le code :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
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")
    })
  }
})
Lorsque j'envoie que des messages, le total des messages envoy�s s'inscrit bien dans ma base de donn�es. Mais si je rejoins un channel vocal, il me r�initialise ma base de donn�es et ins�re les nouvelles valeurs par rapport au vocal. Et inversement!
J'aimerai savoir si c' possible de r�unir toutes ces informations sans �craser les anciennes donn�es et donc d'avoir tout dans une seule base de donn�es.

Merci pour votre future aide