Kembali ke katalog plugin
rpg
clanwar
Perang clan RPG harian: power clan kamu lawan clan lain
Daily RPG clan war: your clan power against another clan
plugins/rpg/clanwar.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.
.clanwar.perangclanCara pakai
.clanwar
Contoh
.clanwar
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 { clanWar } from '../../src/rpg/engine.js'
export const config = {
name: 'clanwar',
alias: ['perangclan'],
category: 'rpg',
description: { id: 'Perang clan RPG harian: power clan kamu lawan clan lain', en: 'Daily RPG clan war: your clan power against another clan' },
usage: '.clanwar',
example: '.clanwar',
cooldown: 10,
}
export const i18n = {
id: {
clanwar: {
noClan: 'Ehh, kamu belum punya clan nih... buat atau gabung dulu di .clan yaa 🥺',
cooldown: 'Mouu, clan kamu udah perang hari ini~ istirahat dulu, lanjut besok yaa 💤',
result: '⚔️ HASIL PERANG CLAN ⚔️\n{name} (power {myPower}) vs {opp} (power {oppPower})\n{verdict}\nHadiah masuk bank clan: {reward} koin 🏦 (bank sekarang {bank})\n{mood}',
win: '🎉 MENANG! Clan kita paling kuat hari ini~',
lose: 'Mouu, kalah kali ini... kumpulkan power lagi yaa 🥺',
btnClan: 'Info Clan',
btnDungeon: 'Dungeon',
btnProfile: 'Profil RPG',
},
},
en: {
clanwar: {
noClan: 'Eh, you do not have a clan yet... create or join one in .clan first 🥺',
cooldown: 'Mouu, your clan already fought today~ rest first, continue tomorrow 💤',
result: '⚔️ CLAN WAR RESULT ⚔️\n{name} (power {myPower}) vs {opp} (power {oppPower})\n{verdict}\nReward to clan bank: {reward} coins 🏦 (bank now {bank})\n{mood}',
win: '🎉 VICTORY! Our clan is the strongest today~',
lose: 'Mouu, we lost this time... gather more power 🥺',
btnClan: 'Clan Info',
btnDungeon: 'Dungeon',
btnProfile: 'RPG Profile',
},
},
}
export const test = { input: '.clanwar', expect: /clan/i }
export async function handler(ctx) {
const replies = [
{ text: ctx.t('clanwar.btnClan'), id: '.clan' },
{ text: ctx.t('clanwar.btnDungeon'), id: '.dungeon' },
{ text: ctx.t('clanwar.btnProfile'), id: '.rpg' },
]
const send = (body) =>
sendButtons(ctx.sock, ctx.chat, { title: 'KANA RPG', body, footer: ctx.t('menu.footer'), replies, textFallback: body })
const res = await clanWar(ctx.storage, ctx.senderDigits)
if (!res.ok) return send(res.reason === 'cooldown' ? ctx.t('clanwar.cooldown') : ctx.t('clanwar.noClan'))
return send(
ctx.t('clanwar.result', {
name: res.myClan,
myPower: res.myPower,
opp: res.oppName,
oppPower: res.oppPower,
verdict: res.win ? ctx.t('clanwar.win') : ctx.t('clanwar.lose'),
reward: res.reward,
bank: res.clanBank,
mood: res.win ? ctx.say('senang') : ctx.say('gagal'),
})
)
}
