From 62f5abac9a6434c1ae9fc3dd360e6ec83b833745 Mon Sep 17 00:00:00 2001 From: litruv Date: Wed, 12 Jun 2019 03:15:40 +1000 Subject: [PATCH] Made the workweek update to most popular game --- database.js | 24 ++++++++++++++--- plugins/autovoicechannel.js | 5 ++-- plugins/workweek.js | 53 ++++++++++++++++++++++++++++++++++--- 3 files changed, 73 insertions(+), 9 deletions(-) diff --git a/database.js b/database.js index 5095054..5339823 100644 --- a/database.js +++ b/database.js @@ -72,12 +72,28 @@ function writeSetting(settingName, settingValue, guildId = 0) { return new Promise((resolve, reject) => { setTimeout(reject, 1000, new Error("Didn't write something within a second")) - connection.query(`INSERT INTO settings (setting, value, serverID) VALUES ('${settingName}', '${settingValue}', '${guildId}')`, + connection.query(`SELECT * FROM settings WHERE setting='${settingName}' AND serverID='${guildId}'`, function (error, results, fields) { - if (error) - reject(error) - resolve(results) + if (results.length > 0) { + //console.log(`UPDATE settings SET value=${settingValue} WHERE setting=${settingName} AND serverID=${guildId}`) + connection.query(`UPDATE settings SET value= ? WHERE setting= ? AND serverID= ?`, [settingValue, settingName, guildId], + function (error, results, fields) { + if (error) + reject(error) + resolve(results) + }) + } + else { + connection.query(`INSERT INTO settings (setting, value, serverID) VALUES ('${settingName}', '${settingValue}', '${guildId}')`, + function (error, results, fields) { + if (error) + reject(error) + resolve(results) + }) + + } }) + }) } diff --git a/plugins/autovoicechannel.js b/plugins/autovoicechannel.js index 2393d7d..bf8697d 100644 --- a/plugins/autovoicechannel.js +++ b/plugins/autovoicechannel.js @@ -77,8 +77,9 @@ module.exports = { } }) }) - if (newUserChannel == "269704205399359491" && newMember.id == "363951609002065931") { - newMember.setVoiceChannel("518212645229297705") + .catch(err) + { + console.log("No autovoice for " + newMember.guild.name) } } catch (e) { diff --git a/plugins/workweek.js b/plugins/workweek.js index d50a7e1..dd74889 100644 --- a/plugins/workweek.js +++ b/plugins/workweek.js @@ -13,17 +13,64 @@ module.exports = { var currentUpdate = Math.round((moment().day() * 24 * 60 + (moment().hour() * 60) + moment().minute()) / 15) fs.readFile("workweek.json", "utf8", function (err, data) { let workweek = JSON.parse(data) - client.user.setActivity(workweek.workweek[currentUpdate], { type: 'PLAYING' }) + if (workweek.workweek[currentUpdate] == "Movie") + client.user.setActivity(workweek.workweek[currentUpdate], { type: 'WATCHING' }) + else if (workweek.workweek[currentUpdate] == "Games") { + + getGames(client).then((games) => { + var mf = 1; + var m = 0; + var item; + + for (var i = 0; i < games.length; i++) { + for (var j = i; j < games.length; j++) { + if (games[i] == games[j]) + m++; + if (mf < m) { + mf = m; + item = games[i]; + } + } + m = 0; + } + + client.user.setActivity(item, { type: 'PLAYING' }) + }) + } + else + client.user.setActivity(workweek.workweek[currentUpdate], { type: 'PLAYING' }) }) } - on15Update() - client.on("message", (msg) => { if (msg.author.id != client.user.id) return setTimeout(() => { client.user.setStatus('online') }, 100) setTimeout(() => { client.user.setStatus('idle') }, 60000 * 5) }) + + + on15Update() } +} + +var getGames = (client) => { + return new Promise((resolve, reject) => { + let games = new Array() + var i = 0; + client.guilds.tap(guild => { + i++ + + guild.members.tap(user => { + if (user.presence.game != null) { + if (!user.user.bot) { + games.push(user.presence.game.name) + } + } + }) + + if (i == client.guilds.size) + resolve(games) + }) + }) } \ No newline at end of file