const voteSchema = require('./models/voteSchema') const vipSchema = require('./models/vipSchema') const init = async (client) => { console.log('[EXPRESS] STARTING SERVER') const express = require('express') const app = express() const Topgg = require('@top-gg/sdk') const {QuickDB} = require("quick.db") const db = new QuickDB() // add your top.gg webhook authorization (not bot token) const webhook = new Topgg.Webhook('thanhnamgene1') app.post("/yubabehook", webhook.listener(async vote => { //Cài đặt thời gian khi uservote để nhắc vote! await db.set(`${vote.user}.voteTimestamp`, Date.now()) //Xóa key khi đã nhắc của lần trước! await db.delete(`${vote.user}.reminded`) let member = await client.users.cache.find(user => user.id === vote.user) let votes = 0 let streaks = 0 let user = await voteSchema.findOne({ memberid: vote.user }) if (user) votes = user.vote, streaks = user.streak let timeout = 86400000 let lastused = await client.cd(vote.user, `voting`) let used = client.checkcd(lastused, timeout) let cooldown = used.after let msg = `` if (!user) { let add = new voteSchema({ memberid: vote.user, type: vote.type, isWeekend: vote.isWeekend, query: vote.query, vote: 1, streak: 1 }) await add.save() msg = `Cảm ơn bạn đã vote cho Yubabe` } else if (user && !cooldown) { user.vote += 1 user.streak += 1 await user.save() msg = `Bạn đã vote liên tục cho Yubabe` } else if (user && cooldown) { user.vote += 1 user.streak = 1 await user.save() streaks = 0 msg = `Bạn đã bỏ lỡ streak điểm danh liên tục [24h]` } await client.timeout(vote.user, `voting`) if (vote.isWeekend) { await client.addgem(vote.user, `<:GEMBOX:982028743952441355>`, 3, 0) const guilds = client.guilds.cache.find(c => c.id === "995424086916350052"); const ChRules = guilds.channels.cache.find(c => c.id === '995683855975591966') await ChRules.send(`**${member.username}** đã vote cho Yubabe, và đã được tặng 3 <:GEMBOX:982028743952441355> cho vote cuối tuần, bạn ấy đã vote ${votes + 1} lần, streak : ${streaks + 1}. ${msg}`) await member.send(`<@${vote.user}> bạn đã vote cho Yubabe, và đã được tặng 3 <:GEMBOX:982028743952441355> cho vote cuối tuần, bạn đã vote ${votes + 1} lần, streak : ${streaks + 1}. ${msg}`).catch(e => console.log(e)) console.log(req.vote) } else { await client.addgem(vote.user, `<:GEMBOX:982028743952441355>`, 1, 0) const guilds = client.guilds.cache.find(c => c.id === "995424086916350052"); const ChRules = guilds.channels.cache.find(c => c.id === '995683855975591966') await ChRules.send(`**${member.username}** đã vote cho Yubabe, và đã được tặng 1 <:GEMBOX:982028743952441355>, bạn ấy đã vote ${votes + 1} lần, streak : ${streaks + 1}. ${msg}`) await member.send(`<@${vote.user}> bạn đã vote cho Yubabe, và đã được tặng 1 <:GEMBOX:982028743952441355>, bạn đã vote ${votes + 1} lần, streak : ${streaks + 1}. ${msg}`).catch(e => console.log(e)) } if (user) { if (user.streak == 100) { await client.addgem(vote.user, `<:G_gem_04:982028744057294848>`, 3, 0) const guilds = client.guilds.cache.find(c => c.id === "995424086916350052"); const ChRules = guilds.channels.cache.find(c => c.id === '995683855975591966') await ChRules.send(`**${member.username}** đã vote cho Yubabe 100 lần, và đã được tặng 6 <:G_gem_04:982028744057294848>, bạn ấy đã vote ${votes + 1} lần, streak : ${streaks + 1}`) member.send(`<@${vote.user}> bạn đã vote cho Yubabe 100 lần, và được tặng 6 <:G_gem_04:982028744057294848>.`).catch(e => console.log(e)) } } console.log(req.vote) let vip = false let pro = false const provip = await vipSchema.findOne({ memberid: member.id }) if (provip) { const date = await client.datepassport(member.id) const status = await client.checkpassport(date) let end = status.after if (!end && provip.type == `<:VIPPassport:988093810955411456>`) vip = true if (!end && provip.type == `<:ProPassport:988093838348410930>`) pro = true } if (!pro && !vip) { return } else if (pro) { await client.addgem(member.id, `<:PRO_GEMBOX:982028744057298964>`, 3, 0) let lương = Math.floor(Math.random() * 9) * 100 client.cong(member.id, parseInt(lương)); await member.send(`**${member.username}** đã vote cho Yubabe, bạn được tặng thêm 3 <:PRO_GEMBOX:982028744057298964> và **${parseInt(lương).toLocaleString('En-us')} Ycoin ** **[PRO-PASSPORT]**`).catch(e => console.log(e)) const guilds = client.guilds.cache.find(c => c.id === "995424086916350052"); const ChRules = guilds.channels.cache.find(c => c.id === '995683855975591966') await ChRules.send(`**${member.username}** đã vote cho Yubabe, bạn được tặng thêm 3 <:PRO_GEMBOX:982028744057298964> và **${parseInt(lương).toLocaleString('En-us')} Ycoin ** **[PRO-PASSPORT]**`) } else if (vip) { await client.addgem(member.id, `<:VIP_GEMBOX:982028743889543278>`, 1, 0) await client.addgem(member.id, `<:PRO_GEMBOX:982028744057298964>`, 2, 0) let lương = Math.floor(Math.random() * 9) * 300 client.cong(member.id, parseInt(lương)); await member.send(`**${member.username}** đã vote cho Yubabe, bạn được tặng thêm 1 <:VIP_GEMBOX:982028743889543278> , 2 <:PRO_GEMBOX:982028744057298964> và **${parseInt(lương).toLocaleString('En-us')} Ycoin ** [VIP-PASSPORT]**`).catch(e => console.log(e)) const guilds = client.guilds.cache.find(c => c.id === "995424086916350052"); const ChRules = guilds.channels.cache.find(c => c.id === '995683855975591966') ChRules.send(`**${member.username}** đã vote cho Yubabe, bạn được tặng thêm 1 <:VIP_GEMBOX:982028743889543278> , 2 <:PRO_GEMBOX:982028744057298964> và **${parseInt(lương).toLocaleString('En-us')} Ycoin ** [VIP-PASSPORT]**`) } })) // attach the middlewar app.listen(8080, () => console.log('SERVER READY')) } module.exports.init = init