Kembali ke katalog plugin
rpg
fishing
Memancing ikan, udang, kepiting, siapa tahu ikan legendaris
Fish for fish, shrimp, crabs, maybe a legendary fish
plugins/rpg/fishing.js
Lokasi file di repo kana-md
2
Perintah termasuk alias
1.9 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.
.fishing.mancingCara pakai
.fishing
Contoh
.fishing
Kode sumber plugin
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 { gather } from '../../src/rpg/engine.js'
import { ITEM_MAP } from '../../src/rpg/data.js'
export const config = {
name: 'fishing',
alias: ['mancing'],
category: 'rpg',
description: { id: 'Memancing ikan, udang, kepiting, siapa tahu ikan legendaris', en: 'Fish for fish, shrimp, crabs, maybe a legendary fish' },
usage: '.fishing',
example: '.fishing',
cooldown: 60,
}
export const i18n = {
id: {
fishing: {
ok: '🎣 Tarikk! Hasil pancingan kamu:\n{items}\nPlus {coins} koin~ 💰\n{mood}',
failed: 'Yahh, ikannya kabur semua... umpannya dimakan tok, mouu 🥺',
btnAgain: 'Mancing Lagi',
btnInventory: 'Tas Aku',
btnShop: 'Toko',
},
},
en: {
fishing: {
ok: '🎣 Reel it in! Your catch:\n{items}\nPlus {coins} coins~ 💰\n{mood}',
failed: 'Aww, all the fish escaped... they only ate the bait, mouu 🥺',
btnAgain: 'Fish Again',
btnInventory: 'My Bag',
btnShop: 'Shop',
},
},
}
export const test = { input: '.fishing', expect: /pancingan|ikannya/i }
export async function handler(ctx) {
const res = await gather(ctx.storage, ctx.senderDigits, 'fishing')
const items = res.items
.map(({ id, qty }) => {
const item = ITEM_MAP[id]
return `${item?.emoji ?? '❔'} ${item ? item.name[ctx.lang] ?? item.name.id : id} x${qty}`
})
.join('\n')
const body = res.failed
? ctx.t('fishing.failed')
: ctx.t('fishing.ok', { items, coins: res.coins, mood: ctx.say('senang') })
return sendButtons(ctx.sock, ctx.chat, {
title: 'KANA RPG',
body,
footer: ctx.t('menu.footer'),
replies: [
{ text: ctx.t('fishing.btnAgain'), id: '.fishing' },
{ text: ctx.t('fishing.btnInventory'), id: '.inventory' },
{ text: ctx.t('fishing.btnShop'), id: '.shop' },
],
textFallback: body,
})
}
