- Update package
apt update && apt upgrade- Install nodejs
apt install nodejs -y- Install ffmpeg (ini diperlukan untuk mengkonversi ke format webp terutama pada "stiker")
apt install ffmpeg -y- Install git
apt install git- Cloning repo
git clone https://github.com/Rifza123/Experimental-Bell.git- Saat Anda mendapatkan kode sumber ini, pastikan untuk menginstal semua modul yang diperlukan dengan menjalankan perintah ini di terminal atau command prompt:
cd /halaman/mengarah/ke/Experimental-Bellnpm install- Setelah selesai menginstal, jalankan bot dengan perintah:
npm start-
Setelah bot dijalankan, akan ada opsi untuk menghubungkan ke nomor WhatsApp Anda melalui QR atau pairing.
-
Jika Anda memilih QR, Anda memerlukan perangkat tambahan. Disarankan untuk menggunakan opsi pairing.
-
Jika Anda memilih pairing:
- Masukkan nomor WhatsApp Anda, contoh: 62831109XXXXX.
- Salin kode yang ditampilkan.
- Buka WhatsApp Anda dan ikuti langkah-langkah berikut:
- Klik titik tiga di kanan atas.
- Pilih "Perangkat tertaut" > "Masuk dengan nomor telepon".
- Masukkan kode yang Anda salin tadi.
- Tunggu proses koneksi, ini bisa memakan waktu.
Jika mengalami kesulitan, coba hapus folder lib/connection/session dan jalankan ulang bot.
const fs = 'fs'.import();
// Atau bisa gunakan await untuk mengatasi promise
//const fs = await "fs".import()Impor fungsi selalu dimulai dari awal, jadi tidak perlu kembali mundur dengan cara ../../. Semua dimulai dari awal!
Misalnya, jika kita ingin mengimpor events.js yang terletak di ./tolkit/events.js dari ./helpers/client.js, maka cara pengambilannya adalah:
const events = await './tolkit/events.js'.r();Eksperimen terbaru menambahkan kemampuan rekayasa command dengan memanfaatkan ev.on() dan ev.emit().
Fitur ini memungkinkan Anda menjalankan event secara manual, memodifikasi input secara dinamis, dan membuat alur command interaktif yang sangat berguna untuk sistem AI yang hemat code.
Berikut adalah bagian-bagian yang tersedia dalam events ini:
ev.on(
{
cmd: [''], // Ini adalah cmd fitur yang digunakan sebagai pemanggil event, Anda bisa meletakkan banyak cmd
listmenu: [''], // Bagian ini akan terlihat dalam menu
tag: '', // Tag ini menentukan di menu bagian mana list menu akan ditempatkan
energy: 7, // Harga penggunaan energi pada event ini
premium: false, //Mengharuskan premium/tidak untuk menggunakan fitur ini
args: 'Masukkan teks!', // Mengharuskan input teks/quoted teks
badword: false, //Memblokir badword pada args
media: {
// Membutuhkan media
type: ['audio'], // Membutuhkan media bertipe audio (tipe terdiri dari audio, document, video, image, sticker) bisa digunakn bersama did alam array
msg: 'Reply audionya?', // Respon jika tidak ada audio yang di-reply
etc: {
// Lain-lain
seconds: 360, // Maksimal audio 360 detik
msg: 'Audio tidak boleh lebih dari 360 detik!', // Respon jika lebih dari 360 detik
},
save: false, // Jika true maka media akan disimpan dalam bentuk file audio.mp3
},
urls: {
//Membutuhkan url
formats: ['pinterest.com', 'pin.it'], //Format url
msg: true, //respon message or msg: 'isi pesan balasan'
},
isMention: true, //Membutuhkan mention (tag/reply/input nomor)
isQuoted: false, //membutuhkan quoted,
onlyGame: [ 'tebakgambar', 'tebakanime' ], //Jika anda menambahkan onlyGame, event ini hanya bisa digunakan saat bermain salah satu game dalam array
},
({ media }) => {
// media adalah kembalian dari media yang di-download,
// jika save false maka media adalah buffer,
// jika save true maka media adalah nama file yang tersimpan
}
);Tambahkan file baru di ./helpers/Events/ atau gunakan pola berikut di file mana saja:
Menambahkan atau mengubah file di dalam folder ./helpers/Events secara otomatis terdeteksi.
ev.on(
{
cmd: ['ai'], // Command pemicu
listmenu: ['ai'], // Tampil di menu dengan nama AI
tag: 'tools', // Kategori menu
energy: 5, // Energi yang digunakan
},
async ({ cht }) => {
await cht.reply('Hai! Ini adalah balasan dari event ai.');
}
);Anda bisa memanggil event lain secara paksa menggunakan ev.emit().
Misalnya, kita ingin mengganti command dan pertanyaan (cht.cmd dan cht.q) sebelum menjalankan ulang event:
// Ubah command & input
cht.cmd = 'ai';
cht.q = 'Hai';
// Jalankan event 'ai' dengan data yang sudah dimodifikasi
ev.emit('ai', { cht });Dengan cara ini, Anda bisa:
- Mengalihkan user ke command lain.
- Menyusun alur percakapan interaktif.
- Membuat sistem multi-step AI atau chatbot yang fleksibel.
Berikut contoh nyata bagaimana event lain bisa memicu event tambahan: //code ini diterapkan di ./helpers/interactive.js
let _ai = await bell(text)
let config = _ai?.data || {};
switch (config?.cmd) {
case 'sticker':
await cht.reply(config?.msg || 'ok', { replyAi: false });
return ev.emit('s');
case 'afk':
await cht.reply(config?.msg || 'ok', { replyAi: false });
cht.q = config?.cfg?.reason;
return ev.emit('afk');
case 'bard':
await cht.reply(config?.msg || 'ok', { replyAi: false });
cht.q = config.cfg?.query;
return ev.emit('bard');
}Contoh di atas menunjukkan:
- Rekayasa command:
config.cmdmenentukan event mana yang dijalankan. - Pengubahan input:
cht.qbisa diisi ulang untuk menyesuaikan pertanyaan.
- π Dynamic Flow: Alihkan perintah ke event lain dengan input yang disesuaikan.
- πΉοΈ Command Engineering: Mengatur logika kompleks (AI, game, dsb.) tanpa duplikasi kode.
- π― Interaktif: Buat chatbot multi-tahap atau sistem cerdas.
Terima kasih kepada semua yang telah berkontribusi dan mendukung pengembangan project ini.
Setiap masukan, ide, dan bantuan sangat berarti!
- Azfir (rifza.p.p)
- GitHub
- YouTube
- WhatsApp Channel
- Peran: Semua kontribusi utama, pengelolaan dan pengembangan penuh proyek.
-
Hanif Skizo
- Kontribusi: Penambahan fitur game chess.js.
-
Barr
- Kontribusi: Pembuatan modul autoBackup (detector.js), listUser (owner.js) dan antiimg/antivid/antidoct/antistk/antistkpck/antivoice.
MIT Β© Rifza