Pada tutorial kali ini, kita akan belajar cara membuat bot discord dengan menggunakan bahasa pemrograman python.
Discord merupakan platform yang memudahkan kita dalam berkomunikasi dengan oranglain melalui voice calls, video calls, text messaging, serta dapat mengirim media dan file kepada oranglain.
Didalam discord kita dapat membuat servers yang merupakan chat rooms dan voice chat channels.
Dengan banyaknya pengguna yang masuk kedalam servers kita, membuat kita kesulitan dalam menjaga server tersebut supaya pengguna tidak ada yang melanggar rules servers yang telah kita buat.
Apalagi kita tidak mungkin online 24 jam untuk mengecek servers discord. Oleh karena itu, kita perlu membuat bot untuk membantu kita dalam menjaga server. Bot juga selalu online 24 jam sehingga jika ada pengguna yang melanggar rules langsung dikenai sanksi berupa kick atupun banned.
Di tutorial kali ini, kita akan membuat bot discord menggunakan python. Jadi, kalian harus paham dasar bahasa pemrograman python terlebih dahulu agar lebih mudah mengikuti tutorial membuat bot discord kali ini.
BACA JUGA: CARA BUAT BOT DISCORD TANPA CODING
Disini kita akan menggunakan Repl.it untuk menghost bot yang kita buat di cloud. Jadi, kita tidak perlu menginstall apapun di komputer.
Membuat akun Bot Discord
Langkah pertama yaitu kita harus membuat terlebih dahulu akun bot discord. Berikut langkah-langkah yang harus kalian ikuti.
Pastikan login terlebih dahulu di website discord
Masuk ke dalam application page
Klik tombol new application
Beri nama aplikasi dan klik create
Pilih bagian bot dan klik add bot. Nanti muncul konfirmasi, lalu klik “Yes, do it!”
Selamat kita telah berhasil membuat bot discord. Selanjutnya, kita copy token terlebih dahulu. Token ini merupakan password bot kalian, jadi jangan sebarkan token tersebut ke siapapun.
Jika token telah tersebar ke oranglain, kalian bisa klik tombol regenerate.
Invite bot ke dalam Server Discord
Untuk memasukkan bot ke dalam server discord, kita perlu membuat invite url terlebih dahulu. Caranya dengan membuka bagian OAuth2. Kemudian centang bot dibagian scopes.
Kita akan memilih akses apa aja yang boleh digunakan oleh bot. Pastinya bot akan memerlukan akses untuk mengirimkan pesan. Kalian juga bisa menambah hak akses sesuai dengan bot kalian lakukan.
Setelah memilih hak akses pada bot, klik bagian copy pada bagian scopes. URL yang dicopy tersebut digunakan untuk menambahkan bot ke dalam server discord.
Pastekan url tersebut ke dalam browser, pilih server discord yang ingin ditambahkan bot. Jika sudah klik continue, lalu klik authorize.
Selamat kita telah berhasil menambahkan bot ke dalam server discord. Untuk mengeceknya kita bisa membuka server discord yang dipilih tadi yang ingin ditambahkan bot.
Membuat bot discord dengan discord.py library
Kita akan menggunakan bantuan python library yaitu discord.py untuk menuliskan code bot. Dengan bantuan discord.py kita akan lebih mudah membuat bot discord di python.
Membuat Repl dan Install discord.py
Di tutorial kali ini, kita akan menggunakan Repl.it yang merupakan online IDE yang bisa dibuka lewat web browser.
Pertama buka Repl.it dan buat akun terlebih dahulu.
Setelah itu, create Repl baru dan pilih bahasa pemrograman python.
Untuk menggunakan discord.py library, tulis dibagian atas code import discord dan klik tombol run untuk menginstall dependency discord.py
import discord
Setup Awal Bot Discord
Kita akan membuat file .env di bagian secret, lalu masukkan key dengan “TOKEN” dan value nya merupakan token pada bot discord.
Setelah itu, di bagian bawah import discord kita perlu import os untuk mendapatkan token di .env
Selanjutnya kita buat instance client untuk menghubungkan ke dalam discord.
@client.event digunakan untuk mendaftarkan setiap event. @client.event adalah asynchronous library, jadi semuanya dilakukan dengan callback. Callback adalah fungsi yang dipanggil ketika sesuatu yang lain terjadi.
Dalam kode ini, event on_ready() dipanggil ketika bot siap untuk mulai digunakan. Kemudian, ketika bot menerima pesan, event on_message() dipanggil.Dalam kode ini, event on_ready() dipanggil ketika bot siap untuk mulai digunakan. Kemudian, ketika bot menerima pesan, event on_message() dipanggil.
on_message() terpicu setiap kali pesan diterima, tetapi kita tidak ingin pesan itu melakukan apa pun jika pesan itu berasal dari diri kita sendiri. Jadi jika Message.author sama dengan Client.user maka tidak akan mengembalikan pesan apapun.
Selanjutnya, kita periksa apakah Message.content dimulai dengan ‘$hello’. Jika iya maka bot akan membalas dengan ‘Halo!’ ke saluran yang digunakan.
BACA JUGA: 8 BOT DISCORD TERBAIK UNTUK SERVER DISCORD 2021
Untuk dibagian akhir yaitu menjalankan bot dengan token login yang didapat dari file .env yang kita buat tadi.
import discord import os client = discord.Client() @client.event async def on_ready(): print('We have logged in as {0.user}'.format(client)) @client.event async def on_message(message): if message.author == client.user: return if message.content.startswith('$hello'): await message.channel.send('Hello!') client.run(os.getenv('TOKEN'))
Sekarang kita bisa menjalankan file main.py dengan klik tombol run. Setelah itu, dibagian console akan terdapat pesan jika berhasil masuk.
Kita bisa langsung mencoba dengan masuk ke dalam server discord yang telah ditambahkan bot, lalu pilih text channel dan ketikan “$hello” maka bot akan membalasnya dengan “Hello!”
Menambahkan Quotes ke dalam Bot Discord
Kita akan menambahkan quotes motivasi dengan bantuan API dari zenquotes.io. Sebelumnya, kita perlu import request dan json terlebih dahulu.
Setelah itu, kita buat function dengan nama add_quote() yang didalamnya kita request.get() api dari zenquotes.io, kemudian hasilnya dimasukkan ke dalam json. Terakhir kita return nilai dari setiap quote di dalam file json.
def get_quote(): response = requests.get("https://zenquotes.io/api/random") json_data = json.loads(response.text) quote = json_data[0]['q'] + " -" + json_data[0]['a'] return(quote)
Kita perlu membuat event pada on_message(). Jadi, setiap kali ada yang mengetikkan “$motivasi” maka bot akan mengirimkan pesan quote motivasi secara acak.
if message.content.startswith('$motivasi'): quote = get_quote() await message.channel.send(quote)
Setup Bot Discord agar Berjalan Terus
Jika kalian menjalankan bot kalian di repl.it dan kemudian menutup tab yang menjalankannya, bot kalian akan berhenti berjalan.
Kita bisa menggunakan bantuan web server. Repl.it akan terus menjalankan web server bahkan setelah tab ditutup. Tetapi bahkan server web hanya akan berjalan hingga satu jam tanpa penggunaan apa pun.
Agar bot terus berjalan, kita perlu menggunakan layanan gratis lainnya bernama Uptime Robot. Uptime Robot dapat diatur untuk melakukan ping ke server web bot di repl.it setiap 5 menit. Dengan ping konstan, bot tidak akan pernah memasuki tahap tidur dan hanya akan terus berjalan.
Jadi kita harus melakukan dua hal lagi agar bot kita terus berjalan:
- buat web server di repl.it
- mengatur Uptime Robot untuk terus melakukan ping ke server web
Membuat Web Server di Repl.it
Pertama, kita perlu membuat file keep_alive.py di dalam folder project. Kemudian copy code berikut ke dalam file.
from flask import Flask from threading import Thread app = Flask('') @app.route('/') def home(): return "Hallo, saya masih aktif!" def run(): app.run(host='0.0.0.0',port=8080) def keep_alive(): t = Thread(target=run) t.start()
Dalam kode ini, kita menggunakan Flask untuk memulai web server. Server akan mengembalikan “Hello. Saya masih aktif!” kepada siapa saja yang mengunjunginya.
Di bagian main.py setelah import json, kita juga perlu import keep_alive yang barusan kita buat.
from keep_alive import keep_alive
Kemudian diatas client.run() taruh keep_alive(), lalu klik run dan akan muncul web server baru. Copy url pada web server untuk dimasukkan ke dalam uptime robot.
Setup Uptime Robot
Sekarang kita perlu mengatur Robot Uptime untuk melakukan ping ke server web setiap lima menit. Hal ini agar bot dapat terus berjalan.
Pertama buat akun terlebih dahulu di uptime robot
Setelah itu, masuk ke akun kalian, klik “Add New Monitor”.
Pilih “HTTP(s)” sebagai Type Monitor dan beri nama apa Bot Discord. Kemudian, paste web server url kalian dari repl.it. Terakhir, klik “Create Monitor”.
Penutup
Selamat kita telah berhasil membuat bot terus berjalan sehingga orang dapat selalu berinteraksi dengan bot discord di Repl.it
Kita telah belajar bagaimana cara membuat bot disocrd dengan python dan juga membuat bot agar terus berjalan di cloud.
Jika masih terdapat kesulitan, kalian bisa komentar dibawah sini.