diff --git a/commands/slashcommands/utility/linkmc.js b/commands/slashcommands/utility/linkmc.js index e971f18..44acad7 100644 --- a/commands/slashcommands/utility/linkmc.js +++ b/commands/slashcommands/utility/linkmc.js @@ -23,15 +23,18 @@ module.exports = { */ async execute(interaction) { let mcusr = interaction.options.getString("mcusername") + let collection = await dbclient.db("ntcmcbot").collection("users"); + let userdb = await collection.findOne({DISCORDID: interaction.member.id}) + interaction.deferReply() let highest = "default"; switch(true) { - case interaction.member.roles.cache.has(process.env.DISCORDSTAFF_ROLE): - highest = "discordstaff"; - break; case interaction.member.roles.cache.has(process.env.MCSTAFF_ROLE): highest = "mcstaff"; break; + case interaction.member.roles.cache.has(process.env.DISCORDSTAFF_ROLE): + highest = "discordstaff"; + break; case interaction.member.roles.cache.has(process.env.PATREON_ROLE): highest = "patreon"; break; @@ -40,7 +43,7 @@ module.exports = { break; } - let collection = await dbclient.db("ntcmcbot").collection("users"); + collection = await dbclient.db("ntcmcbot").collection("users"); // perform actions on the collection object collection.updateOne( { DISCORDID: `${interaction.member.id}` }, // Query parameter @@ -51,11 +54,6 @@ module.exports = { }}, { upsert: true } // Options ) - collection = await dbclient.db("ntcmcbot").collection("users"); - if(interaction.member.id === await collection.findOne({MCUSR: mcusr}).DISCORDID){ - console.log("beans") - } - const rcon = new Rcon({ host: `${process.env.MCHOST}`, @@ -71,10 +69,11 @@ module.exports = { connected = false error = e } - - - let clear = await rcon.send(`lp user ${mcusr} parent clear`) - let res = await rcon.send(`lp user ${mcusr} parent add ${highest}`); + console.log(userdb) + if(userdb.USRROLE != undefined){ + let clear = await rcon.send(`lp user ${mcusr} group remove ${userdb.USRROLE}`) + } + let res = await rcon.send(`lp user ${mcusr} group add ${highest}`); console.log(res) await sendResponse(interaction, `added ${mcusr} to the role ${highest}`); await rcon.end(); diff --git a/commands/slashcommands/utility/updateroles.js b/commands/slashcommands/utility/updateroles.js index dcc4f49..692227d 100644 --- a/commands/slashcommands/utility/updateroles.js +++ b/commands/slashcommands/utility/updateroles.js @@ -21,18 +21,18 @@ module.exports = { await interaction.deferReply() const collection = dbclient.db("ntcmcbot").collection("users"); const cursor = await collection.find().forEach(async function(user){ - console.log(user.DISCORDID) + let member = await interaction.guild.members.cache.get(user.DISCORDID) console.log(`checking ${member.user.username}`) let highest = "stdusr"; switch(true) { - case interaction.member.roles.cache.has(process.env.DISCORDSTAFF_ROLE): - highest = "discordstaff"; - break; case interaction.member.roles.cache.has(process.env.MCSTAFF_ROLE): highest = "mcstaff"; break; + case interaction.member.roles.cache.has(process.env.DISCORDSTAFF_ROLE): + highest = "discordstaff"; + break; case interaction.member.roles.cache.has(process.env.PATREON_ROLE): highest = "patreon"; break; @@ -41,7 +41,6 @@ module.exports = { break; } - console.log(user.USRROLE) if(highest != user.USRROLE){ collection.updateOne( { DISCORDID: `${user.DISCORDID}` }, // Query parameter @@ -67,8 +66,8 @@ module.exports = { } - let clear = await rcon.send(`lp user ${user.MCUSR} parent clear`) - let res = await rcon.send(`lp user ${user.MCUSR} parent add ${highest}`); + let clear = await rcon.send(`lp user ${user.MCUSR} group remove ${user.USRROLE}`) + let res = await rcon.send(`lp user ${user.MCUSR} group add ${highest}`); changed.push(`${member.user.username}(${user.MCUSER}) -> ${highest}`) } if (changed.length <= 0){ diff --git a/events/client/ready.js b/events/client/ready.js index 711685d..2b2badf 100644 --- a/events/client/ready.js +++ b/events/client/ready.js @@ -21,17 +21,19 @@ module.exports = { let guild = client.guilds.cache.get(`${process.env.GUILD_ID}`) const collection = dbclient.db("ntcmcbot").collection("users"); const cursor = collection.find().forEach(async function(user){ + let member = guild.members.cache.get(`${user.DISCORDID}`) console.log(`updating ${member.name}`) let highest = "default"; switch(true) { - case interaction.member.roles.cache.has(process.env.DISCORDSTAFF_ROLE): - highest = "discordstaff"; - break; + case interaction.member.roles.cache.has(process.env.MCSTAFF_ROLE): highest = "mcstaff"; break; + case interaction.member.roles.cache.has(process.env.DISCORDSTAFF_ROLE): + highest = "discordstaff"; + break; case interaction.member.roles.cache.has(process.env.PATREON_ROLE): highest = "patreon"; break; @@ -40,7 +42,6 @@ module.exports = { break; } - console.log(user.USRROLE) if(highest != user.USRROLE){ interaction.deferReply() collection.updateOne( @@ -67,11 +68,8 @@ module.exports = { } - let clear = await rcon.send(`lp user ${mcusr} parent clear`) - let res = await rcon.send(`lp user ${user.MCUSR} parent add ${highest}`); - sendResponse(interaction, `did it boss`) - }else { - sendReply(interaction, `nothing to do here boss`) + let clear = await rcon.send(`lp user ${mcusr} group remove ${user.USRROLE}`) + let res = await rcon.send(`lp user ${user.MCUSR} group add ${highest}`); } }) })