Saat ini saya sedang memiliki kesukaan untuk membuat discord bot. Banyak kegunaan discord bot untuk server kita, seperti mengatur server, membuat game, memutar lagu, dsb. Namun saat ini saya fokus membuat discord bot untuk membantu kuliah ketika ada soal hitung-hitungan yang berulang-ulang.
Banyak bahasa yang disediakan untuk membuat discord bot. Namun yang menurut saya mudah dan sudah saya pahami adalah JavaScript dengan menggunakan DiscordJS.
Untuk membuat dan menggunakan DiscordJS cukup mudah. Cukup buka Youtube dan cari tutorialnya, lalu tinggal di-implementasikan. Masalah utama setelah berhasil membuat bot adalah melakukan hosting.
Pertama kali saya mencoba hosting dengan Heroku dan berhasil. Namun bot saya hanya dapat online sekitar 3/4 bulan saja. Selebihnya bot saya akan mati. Akhirnya saya coba beralih dengan Replit. Bot saya bisa berjalan 24/7 non-stop dan gratis.
Pengantar
Dibutuhkan
- Replit
- DiscordJS v13
- NodeJS v16
- Discord Bot Account
Langkah-Langkah
1. Buat Discord Bot
- Buka https://discordapp.com/developers/applications/me lalu pilih
New Application
. - Berikan nama bot lalu pilih
Create
. - Atur Deskripsi dan gambar bot sesuai keinginan lalu pergi ke tab
Bot
- Click
Add Bot
lalu clickYes, do it!
. - Setelah berhasil membuat bot yang perlu diperhatikan adalah
TOKEN
pada tab bot yang nanti akan kita gunakan untuk menghubungkan bot dengan codingan kita.
Perlu diperhatikan bahwa TOKEN
bot bersifat sangat rahasia dan tidak boleh di share ke public. Saya pernah mencoba push di github dan token tersebut langsung diganti oleh deteksi dari discord.
2. Buat Akun dan Initiate Replit
- Pergi ke https://replit.com/ lalu buat akun atau login.
- Pada halaman dashboard Replit, click
New Repl
. - Pada bagian language pilih
Node.js
. Berikan nama bot lalu clickCreate repl
- Anda akan dihadirkan pada halaman replit IDE.
3. Install Node Versi Terbaru
Sebelum anda mulai coding bot anda. Ada beberapa hal yang perlu disetting terlebih dahulu.
Yang pertama adalah install node versi terbaru. DiscordJS v13 ( terbaru saat ini ) memerlukan node versi terbaru, namun Replit sendiri hanya menyediakan node versi lama. Tapi tenang, kita dapat mengganti versi node menjadi terbaru.
Pergi ke tab shell
di bagian kanan, lalu ketik command berikut:
1 | npm i node@latest |
Buat sebuah file dengan nama .replit
lalu isi dengan code berikut:
1 | run="npm start" |
Terakhir pergi ke file package.json
lalu cari pada bagian "scripts"
dan ganti menjadi seperti berikut:
1 | "scripts": { |
Maka Replit anda sudah diupdate menjadi node versi terbaru.
4. Setting Environment Untuk Token Bot
Masih ingatkah anda bahwa token bot bersifat sangat rahasia? Masalahnya adalah semua codingan kita di Replit versi gratis akan bersifat public tidak seperti github yang memberikan pilihan private.
Tentu jika kita langsung melempar token kita ke dalam codingan maka akan dapat dilihat orang lain dan berbahaya untuk bot dan server kita.
Oleh karena itu kita memanfaatkan fitur Environment Variabel
dari Replit untuk menyimpan token kita karena pada variabel tersebut semua key kita tidak akan muncul pada proses manapun sama seperti jika kita menggunakan file .env
.
Untuk mengambil token bot :
- Kembali ke https://discord.com/developers/applications lalu click bot yang kita inginkan.
- Pergi ke tab
Bot
di bagian kiri lalu pada bagianTOKEN
clickCopy
.
Untuk membuat Environment Variabel:
- Caranya adalah pergi ke tab
Secrets (Environment Variabel)
di sebelah kiri bergambar gembok. - Lalu pada bagian key isi dengan nama variabel untuk Token kita. Contoh saya akan isi dengan nama
TOKEN
. - Lalu pada bagian value isi dengan token bot kita.
Maka Token bot kita sudah aman dan tidak akan di share ke siapapun.
5. Coding Bot Sederhana
Setelah selesai mensetting Replit kita maka kita tinggal melakukan coding untuk bot kita.
Pada file index.js
isi dengan codingan berikut:
1 | const { Client, Intents } = require('discord.js'); |
Pada codingan di atas berfungsi sederhana yaitu mengampilkan pesan “pong!” jika kita mengetik “ping” di channel server.
Untuk informasi lebih lanjut bisa membaca di DiscordJs Docs atau melihat tutorial di Youtube.
Click Tombol RUN
pada bagian atas dan bot kita akan dijalankan. Jika pada bigian console sebelah kanan terdapat tulisan Ready!
tanpa pesan error maka kita berhasil membuat dan menjalankan bot kita.
Langkah selanjutnya adalah menginvite bot kita ke server lalu melakukan testing dengan mengirim “ping” dan melihat apakah muncul respon dari bot kita.
6. Menjalankan Bot 24/7 dengan UpTimeRobot
Perlu diketahui Replit hanya akan menjalankan codingan kita selama 30 menit jika sudah tidak mendapat perintah atau respon.
Berbeda dengan web yang dijalankan dengan Replit, setelah 30 menit akan masuk ke dalam mode sleep
. Triknya adalah mengubah codingan kita ke dalam bentuk web lalu kita akan menggunakan UpTimeRobot untuk memberikan respon sehingga bot tidak masuk ke mode sleep
.
Kita memilih UpTimeRobot karena gratis dan sama sekali tidak diberi batasan.
Untuk melakukannya, pertama kita stop bot kita, lalu tambahkan codingan berikut di bagian paling bawah index.js
:
1 | const http = require('http'); |
Setelah itu jalankan bot kita dan akan muncul tampilan web dengan url di sebelah kanan bertuliskan ok
. Jika sesuai berarti kita berhasil mengubah bot kita ke bentuk web.
Selanjutnya pergi ke https://uptimerobot.com/ lalu lakukan login atau register.
Setelah itu masuk ke dashboard UpTimeRobot lalu click Add New Monitor
.
Isi seperti berikut :
- Monitor Type: HTTPS
- Friendly Name:
nama bot anda
- URL (or IP):
isi dengan url yang ada di sebelah kanan Replit tadi
- Monitor interval: 5 minutes
Setelah itu click Create Monitor
.
Selamat, bot anda akan berjalan 24 jam tanpa gangguan. Meski begitu, Replit akan melakukan refresh setiap harinya sehingga bot kita akan down untuk beberapa menit saja. Namun, menurut saya cara ini adalah yang terbaik untuk melakukan hosting bot discord secara gratis.