Dokumentasi Bot

Menambahkan Perintah/Fitur Baru (Plugin)

Bot ini menggunakan sistem plugin modular yang memudahkan penambahan fungsionalitas baru. Setiap fitur atau perintah idealnya diimplementasikan sebagai plugin terpisah.

Struktur Direktori Plugin

Anatomi Dasar File Plugin

Berikut adalah struktur dasar dari sebuah file plugin (misalnya, plugins/contoh-plugin.js):

// Impor modul yang diperlukan jika ada
// import fs from 'fs';

// Fungsi handler utama untuk plugin
let handler = async (m, { conn, text, args, usedPrefix, command, isOwner, isAdmin, ...otherProps }) => {
  // Logika perintah Anda di sini
  // Contoh:
  if (!text) throw `Masukkan teks setelah perintah! Contoh: ${usedPrefix + command} halo`;

  let pesanBalasan = `Anda mengirim: ${text}`;
  m.reply(pesanBalasan);

  // Untuk pengguna premium saja
  if (otherProps.isPrems) {
    // lakukan sesuatu
  }
};

// Properti untuk mendefinisikan bagaimana plugin bekerja
handler.help = ['contoh <teks>']; // Cara penggunaan yang akan tampil di menu
handler.tags = ['main'];          // Kategori plugin untuk pengelompokan di menu
handler.command = ['contoh', 'sample']; // Perintah untuk memicu plugin (bisa string, regex, atau array)
// handler.owner = true;             // Hanya untuk pemilik bot
// handler.group = true;             // Hanya bisa digunakan di grup
// handler.admin = true;             // Hanya untuk admin grup
// handler.botAdmin = true;          // Hanya jika bot adalah admin grup
// handler.premium = true;           // Hanya untuk pengguna premium
// handler.limit = true;             // Mengurangi limit pengguna
// handler.level = 5;                // Level minimum pengguna
// handler.register = true;          // Pengguna harus terdaftar
// handler.disabled = false;         // Set true untuk menonaktifkan plugin

export default handler;

Properti Penting Plugin

Fungsi handler plugin Anda harus memiliki beberapa properti statis yang menjelaskan cara kerjanya:

Langkah-langkah Membuat Plugin Baru

  1. Buat File: Buat file .js di direktori plugins/. Misalnya, plugins/utility-ping.js.
  2. Implementasi Handler: Tulis fungsi handler asinkron.
  3. Logika Perintah: Implementasikan logika Anda.
  4. Atur Properti: Definisikan handler.command, handler.help, handler.tags, dll.
  5. Ekspor Handler: export default handler;.
  6. Testing: Bot akan memuat plugin baru (terutama jika menggunakan `nodemon`) atau setelah restart.

Mengakses dan Memodifikasi Data Pengguna/Chat

Di dalam plugin, akses data pengguna melalui global.db.data.users[m.sender] atau objek user. Untuk data chat, gunakan global.db.data.chats[m.chat] atau objek chat.

Contoh:

let handler = async (m, { conn, user, chat }) => {
  // Menambah EXP pengguna
  user.exp += 100;

  // Menonaktifkan fitur welcome di grup
  if (m.isGroup) {
    chat.welcome = false;
  }

  m.reply(`EXP Anda sekarang: ${user.exp}`);
};
// ... properti lainnya
export default handler;

Perubahan pada global.db.data akan disimpan secara periodik.

Menambahkan Dependensi

Jika plugin Anda memerlukan library eksternal (npm package):

  1. Instal package: npm install nama-package atau yarn add nama-package.
  2. Impor package di file plugin: import namaPackage from 'nama-package';.

Tips Debugging