Nurutomo / wabot-aq

WhatsApp Bot
GNU General Public License v3.0
690 stars 1.38k forks source link

Error command !pay & !paylimit #346

Closed xaryow closed 3 years ago

xaryow commented 3 years ago

TypeError: Cannot read property 'exp' of undefined at WAConnection.handler (C:\Users\admin\Desktop\wabot-aq\plugins\pay.js:19:8) at WAConnection.handler (C:\Users\admin\Desktop\wabot-aq\handler.js:245:26) at processTicksAndRejections (internal/process/task_queues.js:95:5)

TypeError: Cannot read property 'limit' of undefined at WAConnection.handler (C:\Users\admin\Desktop\wabot-aq\plugins\paylimit.js:19:10) at WAConnection.handler (C:\Users\admin\Desktop\wabot-aq\handler.js:245:26) at processTicksAndRejections (internal/process/task_queues.js:95:5)

ariffb25 commented 3 years ago

itu karena user tidak ada di database.json, aku mengatasi ini menggunakan try catch

let pajak = 0.02
let handler = async (m, { conn, text, command, usedPrefix }) => {
    if (!text) return conn.reply(m.chat, `contoh:\n${usedPrefix + command} @0 10\n\nperintah ini digunakan untuk memberi Limit ke pengguna lain.`, m, { contextInfo: { mentionedJid: ['0@s.whatsapp.net'] } })
    let who
    if (m.isGroup) who = m.mentionedJid[0]
    else who = m.chat
    if (!who) return conn.reply(m.chat, `contoh:\n${usedPrefix + command} @0 10\n\nperintah ini digunakan untuk memberi Limit ke pengguna lain.`, m, { contextInfo: { mentionedJid: ['0@s.whatsapp.net'] } })

    if (typeof global.DATABASE.data.users[who] == "undefined") {
        global.DATABASE._data.users[who] = {
            exp: 0,
            limit: 20,
            lastclaim: 0,
            registered: false,
            name: conn.getName(who, false),
            age: -1,
            regTime: -1,
            afk: -1,
            afkReason: '',
            banned: false,
            spam: 0,
            level: 0,
            autolevelup: false,
            warning: 0
        }
    }

    try {
        let txt = text.replace('@' + who.split`@`[0], '').trim()
        if (isNaN(txt)) return m.reply('Hanya angka')
        let poin = parseInt(txt)
        let limit = poin
        let pjk = Math.ceil(poin * pajak)
        limit += pjk
        if (limit < 1) return m.reply('Minimal 1')
        let users = global.DATABASE._data.users
        if (limit > users[m.sender].limit) return m.reply('Limit tidak mencukupi untuk mentransfer, karena ada biaya pajak')
        users[m.sender].limit -= limit
        users[who].limit += poin

        m.reply(`(${-poin} Limit) + (${-pjk} Limit (Pajak 2%)) = ( ${-limit} Limit)`)
        conn.fakeReply(m.chat, `+${poin} Limit`, who, m.text)
    } catch (e) {
        throw `Orang yang kamu tag tidak ada didatabase/blm menggunakan bot hari ini.`
    }
}
handler.help = ['pay *@user jumlah*']
handler.tags = ['xp']
handler.command = /^(gift|tf|pay|transfer)(limit)?$/
module.exports = handler
github-actions[bot] commented 3 years ago

stale issue