Logo OmniDevvKANA Web
Kembali ke katalog plugin

rpg

menurpg

Menu lengkap perintah RPG

Full RPG commands menu

plugins/rpg/menurpg.js

Lokasi file di repo kana-md

2

Perintah termasuk alias

2.6 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.

.menurpg.rpgmenu

Cara pakai

.menurpg

Contoh

.menurpg

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 { readFile } from 'node:fs/promises'
import { dirname, join } from 'node:path'
import { fileURLToPath } from 'node:url'
import { sendButtons } from '../../src/ui/buttons.js'

const here = dirname(fileURLToPath(import.meta.url))

export const config = {
  name: 'menurpg',
  alias: ['rpgmenu'],
  category: 'rpg',
  description: { id: 'Menu lengkap perintah RPG', en: 'Full RPG commands menu' },
  usage: '.menurpg',
  example: '.menurpg',
  cooldown: 3,
}

export const i18n = {
  id: {
    menurpg: {
      body: '⚔️ MENU RPG KANA ⚔️\n\n🎁 Klaim: .daily .hourly .weekly\n⛏️ Kumpul: .mining .fishing .hunting .farming\n🔨 Buat: .craft .recipes\n🛒 Ekonomi: .shop .buy .inventory .bank\n⚔️ Tarung: .duel .dungeon .clanwar\n🐾 Teman: .pet .job .clan\n👤 Profil: .rpg\n\n{mood}',
      caption: 'Menu RPG KANA ⚔️ pencet tombolnya yaa~',
      hint: 'Mau mulai dari mana nih?',
      btnDaily: 'Klaim Harian',
      btnMining: 'Tambang',
      btnFishing: 'Mancing',
      btnDungeon: 'Dungeon',
      btnShop: 'Toko',
      btnProfile: 'Profil RPG',
    },
  },
  en: {
    menurpg: {
      body: '⚔️ KANA RPG MENU ⚔️\n\n🎁 Claims: .daily .hourly .weekly\n⛏️ Gather: .mining .fishing .hunting .farming\n🔨 Make: .craft .recipes\n🛒 Economy: .shop .buy .inventory .bank\n⚔️ Battle: .duel .dungeon .clanwar\n🐾 Friends: .pet .job .clan\n👤 Profile: .rpg\n\n{mood}',
      caption: 'KANA RPG Menu ⚔️ tap a button~',
      hint: 'Where do you want to start?',
      btnDaily: 'Daily Claim',
      btnMining: 'Mining',
      btnFishing: 'Fishing',
      btnDungeon: 'Dungeon',
      btnShop: 'Shop',
      btnProfile: 'RPG Profile',
    },
  },
}

export const test = { input: '.menurpg', expect: /RPG/i }

export async function handler(ctx) {
  const body = ctx.t('menurpg.body', { mood: ctx.say('salam') })
  let image = null
  try {
    image = await readFile(join(here, '../../assets/rpg.jpg'))
  } catch {
    image = null
  }
  if (image) {
    await ctx.sock.sendMessage(ctx.chat, { image, caption: ctx.t('menurpg.caption') }, { quoted: ctx.raw })
  }
  return sendButtons(ctx.sock, ctx.chat, {
    title: 'KANA RPG',
    body: image ? ctx.t('menurpg.hint') + '\n\n' + body : body,
    footer: ctx.t('menu.footer'),
    replies: [
      { text: ctx.t('menurpg.btnDaily'), id: '.daily' },
      { text: ctx.t('menurpg.btnMining'), id: '.mining' },
      { text: ctx.t('menurpg.btnFishing'), id: '.fishing' },
      { text: ctx.t('menurpg.btnDungeon'), id: '.dungeon' },
      { text: ctx.t('menurpg.btnShop'), id: '.shop' },
      { text: ctx.t('menurpg.btnProfile'), id: '.rpg' },
    ],
    textFallback: body,
  })
}