Quotes Film

Cara Membuat Bot Perselisihan – Gizmodo

Gambar untuk artikel berjudul Cara Membuat Bot Perselisihan

Foto: Martin Bureau (Getty Images)

Setelah Anda berada di Discord cukup lama, Anda akan menemukan bot Discord. Mungkin itu menyambut Anda ke server baru, atau mem-boot seseorang yang melanggar aturan. Mungkin itu menyemburkan kutipan dari Zero Wing setiap kali ada yang mengetik kata “dasar.” Beberapa varian bot Discord yang kuat telah membuat pengguna dalam obrolan tertentu terus-menerus mengetahui ketersediaan vaksin covid-19 lokal.

Bot dapat sangat bervariasi dalam fungsi dan kompleksitas, dan meskipun Anda bisa mendapatkan basis kode untuk itu, Anda mungkin ingin membuatnya sendiri. Mempelajari cara membuatnya dari awal tidak hanya akan memastikan Anda dapat menyesuaikannya dengan kebutuhan Anda sendiri, tetapi juga dapat membantu Anda memahami cara kerja bot dan, yang terpenting, cara memecahkan masalah saat terjadi kesalahan.

Jadi hari ini kita akan menggunakan Python, yang dikenal sebagai bahasa pertama yang cukup bagus bagi siapa saja yang ingin belajar coding, berkat kodenya yang relatif mudah dibaca dan pemformatan fungsional bawaan (indentasi tidak hanya membantu untuk membacanya; itu perlu!). Inilah yang Anda perlukan untuk memulai:

  • Komputer yang tepat.
  • Instalasi Python.
  • Lingkungan Pengembangan Terpadu (IDE)—di sinilah Anda akan mengetik kode Anda.
  • Akun dan server Discord.
  • Kopi (opsional, sangat dianjurkan).

Membuat Aplikasi Bot

Saya beroperasi dengan asumsi bahwa jika Anda di sini mencoba mencari tahu, maka Anda sudah memiliki akun dan menjalankan server Discord. Jika tidak, pergi mendaftar dan membuat server. Setelah Anda selesai dengan itu, Anda pasti ingin menuju ke Portal Pengembang. Di sebelah kiri, klik Aplikasi tab, lalu Aplikasi baru tombol di kanan atas.

Gambar untuk artikel berjudul Cara Membuat Bot Perselisihan

Tangkapan layar: Wes Davis/Gizmodo

Di sini, Anda tidak benar-benar menamai bot itu sendiri—ini adalah aplikasi yang berisi bot. Yang mengatakan, tidak ada alasan aplikasi dan bot tidak dapat berbagi nama yang sama. Setelah Anda membuat aplikasi, klik di atasnya, lalu klik Bot tautan di bilah sisi — ini adalah tempat Anda dapat menggunakan proses Build-A-Bot Discord untuk melahirkan otomat kecil.

G/O Media mungkin mendapat komisi

Gambar untuk artikel berjudul Cara Membuat Bot Perselisihan

Tangkapan layar: Wes Davis/Gizmodo

Setelah Anda membuat bot, Anda akan mendapatkan pesan yang mengatakan, “Bot liar telah muncul!” Selamat! Ini adalah bot! Saya bangga padamu. Beri nama bot Anda, dan di bawah Nama pengguna bidang, Anda akan melihat bagian token, dengan token Anda tersembunyi di balik tautan.

Catatan tentang Token Bot

Sangat penting bagi Anda untuk merahasiakan token ini dan menjaganya tetap aman. Token adalah pengidentifikasi unik terutama untuk bot Anda, dan jika ada orang lain yang melewatinya, mereka dapat mengendalikan bot Anda. Ini juga cara Anda menghubungkan kode yang Anda tulis ke bot. Ini adalah informasi yang sangat sensitif sehingga bukan ide yang bagus jika Anda menyimpannya langsung di kode Anda, tetapi kita akan membahasnya nanti.

Untuk saat ini, buka editor teks biasa dan rekatkan token di sana. Simpan ke folder apa pun yang Anda rencanakan untuk menyimpan materi terkait bot, sebaiknya dengan nama seperti token.txt untuk mengurangi kebingungan di jalan.

Memberikan Izin Bot Anda

Selanjutnya, Anda ingin memberikan izin bot Anda. Dengan bot Anda masih terbuka, klik OAuth2 di bilah sisi, dan di bawah Lingkup bagian di layar ini, centang kotak berlabel bot dan kemudian gulir ke bawah ke Izin Bot dan menghubungkannya dengan beberapa kemampuan. Kotak yang Anda centang terserah Anda, dan yang saya pilih di tangkapan layar di bawah ini sama sekali bukan resep:

Gambar untuk artikel berjudul Cara Membuat Bot Perselisihan

Tangkapan layar: Wes Davis/Gizmodo

Saat Anda melakukannya, klik bot di bilah sisi lagi dan gulir ke bawah ke Maksud Gerbang Istimewa. Jika Anda ingin bot Anda merespons dengan cara apa pun terhadap keberadaan pengguna atau menggunakan daftar anggota, Anda harus mengaktifkan ini:

Gambar untuk artikel berjudul Cara Membuat Bot Perselisihan

Tangkapan layar: Wes Davis/Gizmodo

Menetapkan Bot ke Server Anda

Setelah Anda memberikan izin yang sesuai, Anda harus menyalin tautan di bawah Lingkup panel, buka tab browser baru, dan tempel di bilah alamat/pencarian, lalu tekan Memasuki. Ini akan membawa Anda ke layar ini, di mana Anda akan memilih server (atau apa yang kadang-kadang disebut dalam API bot Python Discord resmi sebagai “guild”) untuk menjatuhkan bot Anda. Klik Melanjutkan dan Anda akan dibawa ke layar untuk mengonfirmasi izin bot untuk server itu:

Gambar untuk artikel berjudul Cara Membuat Bot Perselisihan

Tangkapan layar: Wes Davis/Gizmodo

Catatan tambahan: Izin bot Anda khusus untuk server, jadi jika Anda ingin melihat izin yang diberikan bot Anda, Anda harus melakukannya dari server tertentu. Jika Anda hanya ingin meninjaunya, lakukan hal berikut: klik kanan server Anda di kiri atas jendela Discord, klik Pengaturan Server, kemudian Integrasi. Di sini, Anda akan melihat bot Anda di bawah judul Bot dan Aplikasi. Klik di atasnya dan Anda akan melihat semua izin yang Anda berikan kepada bot Anda. Jika Anda ingin mengubahnya, Anda harus menggunakan cara yang berbeda, mengklik Peran dari pada Integrasi dan kemudian mengklik bot Anda, dan pergi ke Izin tab di layar berikutnya.

Setelah Anda mengonfirmasi izin yang Anda berikan kepada bot Anda, klik Mengizinkan, dan voila! Anda sekarang telah membuat bot dan menetapkannya ke server. Anda akan melihat pesan sekarang yang mengatakan “A liar (nama bot) muncul.” Sekarang saatnya memprogram bot! Jika Anda sudah mencoba sebelumnya dan gagal, kemungkinan besar ini adalah titik Anda menyerah. Mari kita coba lagi—Anda sudah mendapatkannya.

Menghirup Kehidupan ke Bot Anda

Untuk melanjutkan, Anda harus memastikan bahwa Anda telah menginstal Python. Ada banyak panduan untuk melakukan ini—saya suka yang ini. Setelah Anda mengatur dengan Python, Anda harus mendapatkan modul Discord. Ini berisi semua perintah khusus Discord yang Anda perlukan. Jika Anda bekerja di Windows, buka Prompt Perintah menggunakan langkah-langkah yang diuraikan di sini dan ketik yang berikut, tekan Memasuki ketika selesai:

py -3 -m pip install -U discord.py

Jika Anda aktif macOS atau Linux, membuka Terminal dan ketik:

python3 -m pip install -U discord.py

Setelah langkah itu selesai, lanjutkan dan buka IDE apa pun yang Anda pilih untuk digunakan. saya suka Sublim, secara pribadi, tetapi Anda dapat menggunakan apa pun yang Anda inginkan. Heck, Anda bahkan dapat menggunakan editor teks biasa jika Anda merasa pedas. Dengan editor Anda terbuka, buat file baru dan ketik ini di baris pertama:

impor perselisihan

Ini membawa perpustakaan Discord ke dalam kode Anda. Selanjutnya, Anda memerlukan cara untuk mengaitkan bot Anda dengan kode ini. Ini berarti memanggil token untuk bot – tetapi ingat ketika saya mengatakan bahwa sebaiknya tidak menyimpan token itu langsung di kode Anda, dan menyimpannya dalam file .txt? Baris berikutnya adalah bagaimana Anda mendapatkannya dari file .txt itu:

TOKEN = buka(“token.txt”,”r”).readline()

Di baris ini, Anda membuat variabel pertama Anda: string karakter yang dapat Anda ketik untuk mereferensikan tindakan tertentu. Di Sini, TOKEN adalah variabelnya, = tanda memberi tahu komputer bahwa itu akan menafsirkan variabel itu sebagai sesuatu, dan teks yang mengikutinya adalah sesuatu itu. Di Sini, membuka() memberitahu komputer itu akan membuka file, dan di dalam tanda kurung adalah sepasang argumen, yang pertama mengidentifikasi file yang Anda inginkan untuk dibuka (jika Anda tidak memanggil file Anda token.txt lalu ganti token di sini dengan apa pun yang Anda lakukan, beri nama), dan R memberi tahu mode yang Anda inginkan untuk membukanya. Kami hanya ingin membaca token, jadi kami menggunakan R untuk membukanya dalam mode Baca. NS .readline() bit memberitahu baris mana yang harus dibaca. Karena hanya ada satu untuk dibaca, Anda membiarkan tanda kurung kosong.

Niat Perselisihan

Karena perubahan yang agak baru dalam cara Discord menangani langganan acara bot, Anda harus mengambil beberapa langkah tambahan untuk memungkinkan bot Anda merespons acara tertentu, seperti anggota yang bergabung, misalnya. Discord memanggil izin khusus ini Niat, dengan beberapa yang tingkatnya lebih tinggi seperti pemantauan pengguna yang disebut Privileged Intents (pengalih yang mungkin telah Anda ubah sebelumnya dalam proses). Selain mengaktifkannya selama penyiapan bot Anda, Anda juga perlu mengaktifkan maksud dalam kode Anda. Pertama, jika Anda hanya ingin menjalankan dengan langganan acara default, tentukan Intent sebagai default:

maksud = discord.Intents.default()

Kemudian, Anda akan membalik ke benar salah satu dari maksud tambahan yang Anda inginkan. Selain itu, Anda mungkin tidak menginginkan semua default, dan mungkin hanya ingin bot Anda merespons jenis peristiwa dalam jumlah terbatas. Dalam hal ini, alih-alih yang di atas, Anda dapat melakukan hal berikut:

intents.members = Benar

intents.messages = Benar

intents.guilds = Benar

Langkah terakhir yang akan kami ambil untuk bagian ini adalah mendefinisikan klien Anda dan memastikan:

Klien = perselisihan. Klien(niat = maksud)

Tindakan Pemrograman

Oke, sekarang kita siap untuk mulai memberi tahu bot kita apa yang harus dilakukan. Pertama, sangat membantu untuk menambahkan mencetak() pernyataan sehingga Anda memiliki konfirmasi bahwa perangkat lunak Anda telah berhasil masuk. Bagian kode ini akan mencetak, atau menampilkan, pernyataan di lingkungan runtime Anda (terminal atau lainnya) yang mengonfirmasi bahwa bot Anda terhubung dan berjalan:

@klien.event

async def on_ready():

print('Masuk sebagai {0.user}'.format(klien))

Alasan kami menggunakan tidak sinkron di sini karena Python secara default sinkron, artinya menjalankan perintah dan menunggunya selesai sebelum melanjutkan. Anda tidak selalu menginginkan ini saat berkomunikasi dengan server, karena jika server macet atau semacamnya, maka program Anda juga demikian. Jika kode berikutnya tidak bergantung sama sekali pada baris kode tersebut, mengapa tidak membiarkan program Anda terus menjalankan kode lainnya? Jadi, Anda akan menggunakan async (kependekan dari asynchronous) untuk memungkinkan server Anda terus menjalankan kode Anda yang lain. Ketika Discord merespons, kode Anda akan melanjutkan di mana ia tinggalkan dan mengeksekusi pernyataan apa pun yang muncul setelah penangan asinkron yang Anda gunakan (yang dalam hal ini adalah siap_siap()).

Selanjutnya, mari kita bahas cara membuat bot Anda merespons perintah. Sebagai contoh, biarkan bot menyapa Anda. Pertama, Anda perlu memanggil penangan pesan Anda:

@klien.event

async def on_message(pesan):

Kemudian, untuk mencegah bot Anda merespons dirinya sendiri, minta kode kembali tanpa tindakan jika bot mengatakan sesuatu:

jika message.author == client.user:

kembali

Terakhir, perintah yang meminta respons bot:

if message.content.startswith(‘.hello’):

menunggu message.channel.send(‘Halo!’)

Jadi seluruh blok, bersama-sama, akan terlihat seperti ini:

@klien.event

async def on_message(pesan):

jika message.author == client.user:

kembali

if message.content.startswith(‘.hello’):

menunggu message.channel.send(‘Halo!’)

Kode pencegahan loop di sini, tentu saja, tidak sepenuhnya diperlukan; bot tidak akan terjebak menanggapi dirinya sendiri di sini. Namun, ketika kode Anda semakin rumit, Anda mungkin menemukan diri Anda secara tidak sengaja memprogram bot yang berpotensi memicu dirinya sendiri dan berakhir dalam siklus pemicu dan respons sendiri—misalnya jika Anda membuat bot kutipan film acak, dan salah satu pemicu Anda kata-kata sebenarnya dalam kutipan dari perpustakaan kutipan apa pun yang Anda ambil.

Sedikit kode berikutnya memungkinkan bot Anda mengirim pesan selamat datang. Di sinilah maksud yang kami aktifkan di bagian atas kode kami adalah suatu keharusan, karena mengharuskan bot untuk memantau daftar anggota, yang dianggap Discord sebagai maksud istimewa:

@klien.event

async def on_member_join(anggota):

print('dapat sesuatu')

channel = client.get_channel((Channel ID Goes Here))

menunggu channel.send('Selamat datang di saluran ini!')

Beberapa hal penting di sini:

Pernyataan cetak itu ada untuk tujuan debugging. Saat menguji pesan selamat datang, saya memiliki akun palsu yang bergabung dan meninggalkan server Discord, dan tidak dapat memicu pesan selamat datang untuk waktu yang lama. Saya memasukkan pernyataan cetak untuk memverifikasi itu async def on_member_join(anggota): sebenarnya memicu program untuk menjalankan kode berikutnya. Jika ya, pernyataan cetak akan, di Terminal, mengatakan “punya sesuatu.” Bukan, jadi saya harus men-debug. Baris kode kunci akhirnya menjadi alllll jalan kembali di atas:

Klien = perselisihan. Klien(niat = maksud)

Saya membutuhkan kode ini agar bot (Klien) mendapatkan izin yang saya berikan. Anda melakukannya dengan meletakkan argumen di dalam tanda kurung di atas yang menyetel maksud bot sama dengan yang didefinisikan di bagian atas kode kita. Saya tentu saja meninggalkan seluruh baris kode ini, jadi bot saya tidak benar-benar menggunakan maksud yang saya aktifkan untuk itu.

Untuk mendapatkan ID Saluran: Saat Anda berada di saluran yang Anda inginkan IDnya, Anda akan ingin melihat di bilah alamat Anda, di mana URL seharusnya, diikuti oleh dua set angka yang panjang, dipisahkan oleh tanda /. Set kedua adalah ID saluran Anda, sedangkan yang pertama adalah ID server, atau serikat Anda. Gunakan ID Saluran dalam argumen di atas.

Terakhir, menunggu komponen set kode itu diperlukan saat Anda menggunakan async. Jika bot Anda akan merespons, dibutuhkan semacam fungsi panggilan balik sehingga bot tahu apa yang harus dilakukan ketika server akhirnya merespons; menunggu melayani fungsi itu, dalam hal ini memberi tahu bot untuk mengirim pesan, pada saluran yang ditentukan sebelumnya, “Selamat datang di saluran ini!”

Mari kita lihat kode terakhir, dengan semua format yang sesuai (dan sangat diperlukan!):

Gambar yang menunjukkan semua kode yang ditampilkan sejauh ini bersama-sama dalam satu gambar.

Seluruh bot kami, dalam satu tangkapan layar kecil! Tangkapan layar: Wes Davis

Menyalakan Lampu

Jadi, Anda mungkin ingin bot Anda selalu berjalan. Ada beberapa cara untuk mencapai ini: Pertama, Anda dapat menjalankannya dari komputer utama di rumah, tetapi itu mengharuskan Anda untuk menjaga mesin selalu menyala dan selalu terhubung, dan mungkin tidak pernah benar-benar tidur (secara teknis Anda dapat membiarkannya tidur jika komputer Anda dikonfigurasi untuk bangun di LAN, tetapi fitur ini dapat merepotkan dan tidak dapat diprediksi).

Pilihan yang lebih baik adalah menjalankan kode pada Raspberry Pi atau mesin server berdaya rendah khusus lainnya. Pada dasarnya, Anda akan menjalankan program *.py Anda di server, dan dengan asumsi semuanya berjalan dengan baik, itu hanya akan berjalan untuk waktu yang tidak ditentukan. Ini bagus saat Anda memulai. Saat bot Anda menjadi lebih kompleks dan — jika Anda mengizinkannya — mulai digunakan di server Discord lainnya, Anda mungkin ingin menjalankannya sedekat mungkin dengan 24/7. Untuk itu, Anda ingin melihat layanan hosting pihak ketiga. Ada banyak opsi gratis dan berbayar di luar sana, dan di sini adalah panduan yang layak dan panjang untuk membantu Anda dengan itu.

Dan itu saja! Dengan kumpulan perintah dasar ini, Anda sekarang memiliki bot fungsional. Tentu saja, ada lebih banyak lagi yang dapat Anda otomatisasi dengan bot, dan saya akan mendorong Anda untuk melihat-lihat Stack Overflow dan API discord.py. Bot dapat menjadi sekuat yang Anda inginkan, dengan otomatisasi yang membuat hidup Anda sebagai administrator jauh lebih mudah, atau mereka hanya bisa menjadi mesin kutipan kecil yang menyenangkan atau pengalihan untuk server Discord kecil yang dibagikan dengan teman-teman. Apa pun masalahnya, ini adalah cara yang menyenangkan untuk tidak hanya mengelola server Discord Anda, tetapi juga mempelajari pelajaran penting tentang pengkodean.

Related Articles

Tinggalkan Balasan

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.

Close
Close