diff --git a/package-lock.json b/package-lock.json index febaf51..76eae97 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "denim_3001", - "version": "3001.29.2", + "version": "3001.29.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "denim_3001", - "version": "3001.29.2", + "version": "3001.29.3", "license": "ISC", "dependencies": { "@discordjs/opus": "github:discordjs/opus", diff --git a/package.json b/package.json index 3f45ed8..a977e8e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "denim_3001", - "version": "3001.29.2", + "version": "3001.29.3", "description": "Toto je velmi kvalitní bot.", "repository": { "url": "https://github.com/Histmy/Denim-Bot/" diff --git a/src/modules/spink.ts b/src/modules/spink.ts index 06e2a9f..dc6112d 100644 --- a/src/modules/spink.ts +++ b/src/modules/spink.ts @@ -34,26 +34,11 @@ const syncSpink = () => { syncSpink(); -const handleSpink = async (act: "spinkacek" | "vstavacek", member: GuildMember, guild: Guild) => { - const spink = act == "spinkacek"; - const ok = spink +const handleSpink = async (act: "spinkacek" | "vstavacek", member: GuildMember) => { + const ok = act == "spinkacek" ? await contactSpinkServer(act, member.id, member.user.username, member.user.avatarURL()) : await contactSpinkServer(act, member.id); - if (!ok.startsWith("OK")) return false; - - const c = guild.roles.cache; - const spinkRole = c.find(r => r.name == "spink"); - const adminRole = c.find(r => r.name == "admin"); - - if (spink) { - if (spinkRole) member.roles.add(spinkRole); - if (adminRole) member.roles.remove(adminRole); - } else { - if (spinkRole) member.roles.remove(spinkRole); - if (adminRole) member.roles.add(adminRole); - } - - return ok; + return ok.startsWith("OK") ? ok : false; }; module.exports = { @@ -63,7 +48,7 @@ module.exports = { als: ["spink", "spoink", "spinkake", "spoinkacek", "gn", "<:spinkacek:761652251966046208>", "<:gn:887124590583746590>"], run: async (mes: Message) => { if (mes.author.bot) return `až někdy${emouty.kapp}`; - if (await handleSpink("spinkacek", mes.member!, mes.guild!)) { + if (await handleSpink("spinkacek", mes.member!)) { mes.react(emouty.spinkacek); const uz = budouciSpinky[mes.author.id]; if (uz) { @@ -80,7 +65,7 @@ module.exports = { run: async (mes: Message) => { if (mes.author.bot) return emouty.sjeta; - const odpoved = await handleSpink("vstavacek", mes.member!, mes.guild!); + const odpoved = await handleSpink("vstavacek", mes.member!); if (!odpoved) return "uz jsi vzhuru ty hajzle"; const cas = Number(odpoved.slice(3)); const formatedCas = formatCas(cas); @@ -125,15 +110,15 @@ module.exports = { delete budouciSpinky[mes.author.id]; } - budouciSpinky[mes.author.id] = setTimeout(() => contactSpinkServer("spinkacek", mes.author.id, mes.author.username, mes.author.avatarURL()), Number(spink) - tedT); + budouciSpinky[mes.author.id] = setTimeout(() => handleSpink("spinkacek", mes.member!), Number(spink) - tedT); return `tvuj spinkacek byl naplanovan na ${formatter.format(spink)}`; }, ps: { als: ["poslednispink"], run: (mes: Message) => { - const cas = Number(new Date()) - Number(new Date(spinkacky[mes.author.id].timeup)) - return `uz jsi vzhuru ${formatCas(cas / 1000)}`; + const cas = Number(new Date()) - Number(new Date(spinkacky[mes.author.id].timeup)); + return `uz jsi vzhuru ${formatCas(cas / 1000)}`; } } }, @@ -147,10 +132,25 @@ module.exports = { super_on_message: (mes: Message, cmd?: string) => { if (mes.author.id === '831318260493844494') { syncSpink(); - if (mes.content[0] !== 's') return; const uzivatel = mes.content.match(/(?<=discord_)\d+/)?.[0]; if (!uzivatel) return; for (const [_, guild] of mes.client.guilds.cache) { + const member = guild.members.cache.get(uzivatel); + if (!member) continue; + + const c = guild.roles.cache; + const spinkRole = c.find(r => r.name == "spink"); + const adminRole = c.find(r => r.name == "admin"); + const mr = member.roles; + + if (mes.content[0] == "s") { + if (spinkRole) mr.add(spinkRole); + if (adminRole) mr.remove(adminRole); + } else { + if (spinkRole) mr.remove(spinkRole); + if (adminRole) mr.add(adminRole); + continue; + } for (const [_, channel] of guild.channels.cache) { if (channel.type !== "GUILD_VOICE") continue; for (const [_, member] of channel.members) {