Logo OmniDevvKANA Web
Masuk
Kembali ke katalog plugin

fun

cekkhodam

Cek khodam penjagamu untuk hiburan, hasil tetap untuk nama yang sama

Check your guardian khodam for fun, same name always gives the same result

plugins/fun/cekkhodam.js

Lokasi file di repo kana-md

2

Perintah termasuk alias

2.4 KB

Ukuran file sumber

4/11/2026

Update terakhir, commit 5d6f23b

Daftar perintah

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

.cekkhodam.khodam

Cara pakai

.cekkhodam [nama]

Contoh

.cekkhodam Budi

Kode sumber plugin

Unduh .js

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

import { KHODAMS } from '../../src/data/fun.js'
import { sendButtons } from '../../src/ui/buttons.js'

export const config = {
  name: 'cekkhodam',
  alias: ['khodam'],
  category: 'fun',
  description: { id: 'Cek khodam penjagamu untuk hiburan, hasil tetap untuk nama yang sama', en: 'Check your guardian khodam for fun, same name always gives the same result' },
  usage: '.cekkhodam [nama]',
  example: '.cekkhodam Budi',
  cooldown: 3,
}

// Deterministik: hash nama yang sama selalu memilih khodam yang sama.
export function khodamFor(name) {
  const s = String(name ?? '').toLowerCase().trim()
  let hash = 2166136261
  for (let i = 0; i < s.length; i++) {
    hash ^= s.charCodeAt(i)
    hash = Math.imul(hash, 16777619)
  }
  return KHODAMS[Math.abs(hash) % KHODAMS.length]
}

export const i18n = {
  id: {
    cekkhodam: {
      result: 'šŸ‘» CEK KHODAM šŸ‘»\n\nKhodam penjaga {name} adalah...\n\n✨ {khodam} ✨\nSifatnya: {trait}\n\nJaga dia baik-baik yaa, jangan lupa kasih gorengan sesekali~ {mood}\n\n{disclaimer}',
      disclaimer: 'Catatan: ini cuma permainan hiburan dari KANA yaa, bukan beneran ada khodamnya. Jangan dianggap serius~',
      againBtn: 'šŸ‘» Cek Lagi',
      jodohBtn: 'šŸ’• Cek Jodoh',
      footer: 'Cek-cek hiburan KANA',
    },
  },
  en: {
    cekkhodam: {
      result: 'šŸ‘» KHODAM CHECK šŸ‘»\n\nThe guardian khodam of {name} is...\n\n✨ {khodam} ✨\nTrait: {trait}\n\nTake good care of them, and offer fried snacks once in a while~ {mood}\n\n{disclaimer}',
      disclaimer: 'Note: this is just a fun game from KANA, there is no real khodam. Do not take it seriously~',
      againBtn: 'šŸ‘» Check Again',
      jodohBtn: 'šŸ’• Love Check',
      footer: 'KANA fun checks',
    },
  },
}

export const test = { input: '.cekkhodam Budi', expect: /khodam/i }

export async function handler(ctx) {
  const name = (ctx.text || '').trim() || ctx.pushName || ctx.senderDigits
  const khodam = khodamFor(name)
  const body = ctx.t('cekkhodam.result', {
    name,
    khodam: khodam.name[ctx.lang] ?? khodam.name.id,
    trait: khodam.trait[ctx.lang] ?? khodam.trait.id,
    mood: ctx.say('senang'),
    disclaimer: ctx.t('cekkhodam.disclaimer'),
  })
  return sendButtons(ctx.sock, ctx.chat, {
    title: 'KANA',
    body,
    footer: ctx.t('cekkhodam.footer'),
    replies: [
      { text: ctx.t('cekkhodam.againBtn'), id: '.cekkhodam' },
      { text: ctx.t('cekkhodam.jodohBtn'), id: '.cekjodoh' },
    ],
    textFallback: body,
  })
}