Logo OmniDevvKANA Web
Kembali ke katalog plugin

rpg

daily

Klaim hadiah harian RPG: 500 koin dan 20 XP

Claim the daily RPG reward: 500 coins and 20 XP

plugins/rpg/daily.js

Lokasi file di repo kana-md

1

Perintah termasuk alias

1.7 KB

Ukuran file sumber

4/11/2026

Update terakhir, commit eae5127

Daftar perintah

Ketuk tombol salin untuk menyalin perintah, lalu tempel di chat WhatsApp bot KANA.

.daily

Cara pakai

.daily

Contoh

.daily

Kode sumber plugin

Unduh .js

Cara pasang: simpan file ini ke folder plugins/rpg/ di bot KANA kamu, lalu restart bot. Pemilik source code lain bisa mengambil update plugin terbaru dari halaman ini kapan saja.

import { sendButtons } from '../../src/ui/buttons.js'
import { claim } from '../../src/rpg/engine.js'

export const config = {
  name: 'daily',
  alias: [],
  category: 'rpg',
  description: { id: 'Klaim hadiah harian RPG: 500 koin dan 20 XP', en: 'Claim the daily RPG reward: 500 coins and 20 XP' },
  usage: '.daily',
  example: '.daily',
  cooldown: 3,
}

export const i18n = {
  id: {
    daily: {
      ok: '🎁 Yeyy, hadiah harian datang! Kamu dapat {coins} koin dan {xp} XP~\nSaldo sekarang: {balance} koin 💰\n{mood}',
      wait: 'Mouu, hadiah hariannya udah kamu ambil hari ini~ Balik lagi besok yaa 🥺',
      btnHourly: 'Klaim Per Jam',
      btnWeekly: 'Klaim Mingguan',
      btnMenu: 'Menu RPG',
    },
  },
  en: {
    daily: {
      ok: '🎁 Yayy, the daily reward is here! You got {coins} coins and {xp} XP~\nBalance now: {balance} coins 💰\n{mood}',
      wait: 'Mouu, you already took today daily reward~ Come back tomorrow 🥺',
      btnHourly: 'Hourly Claim',
      btnWeekly: 'Weekly Claim',
      btnMenu: 'RPG Menu',
    },
  },
}

export const test = { input: '.daily', expect: /hadiah/i }

export async function handler(ctx) {
  const res = await claim(ctx.storage, ctx.senderDigits, 'daily')
  const body = res.ok
    ? ctx.t('daily.ok', { coins: res.reward.coins, xp: res.reward.xp, balance: res.balance, mood: ctx.say('senang') })
    : ctx.t('daily.wait')
  return sendButtons(ctx.sock, ctx.chat, {
    title: 'KANA RPG',
    body,
    footer: ctx.t('menu.footer'),
    replies: [
      { text: ctx.t('daily.btnHourly'), id: '.hourly' },
      { text: ctx.t('daily.btnWeekly'), id: '.weekly' },
      { text: ctx.t('daily.btnMenu'), id: '.menurpg' },
    ],
    textFallback: body,
  })
}