Quotes Film

Cara Membuat Bot Perselisihan – Gizmodo Indonesia

Setelah Anda berada di Discord cukup lama, Anda akan menemukan bot Discord. Mungkin 0 T menyambut Anda ke server baru, atau mem-boot seseorang yang melanggar aturan. Mungkin 0 T 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 menyesuaikan 0 T dengan kebutuhan Anda sendiri, tetapi dapat membantu Anda memahami cara kerja bot bagian dalam dan, yang terpenting, cara memecahkan masalah 0 T saat ada masalah.

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 membaca 0 T; 0 T 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, daftar dan buat server. Setelah selesai dengan itu, Anda ingin menuju ke Portal Pengembang. Di sebelah kiri, klik Aplikasi tab, lalu Aplikasi baru tombol di kanan atas.

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 dapat berbagi nama yang sama. Setelah Anda membuat aplikasi, klik 0 T, lalu klik Bot tautan di bilah sisi – ini adalah tempat Anda dapat menggunakan proses Build-A-Bot Discord untuk melahirkan otomat kecil.

Tangkapan layar: Wes Davis/Gizmodo Tangkapan layar: Wes Davis/Gizmodo

Setelah Anda membuat bot, Anda akan mendapatkan pesan yang mengatakan, “Bot liar telah muncul!” Selamat! 0 T itu 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

0 T sangat penting agar Anda merahasiakan token ini dan menjaga 0 T tetap aman. Token adalah pengidentifikasi unik khusus untuk bot Anda, dan jika ada orang lain yang datang pada 0 T, mereka dapat mengendalikan bot Anda. 0 T juga bagaimana Anda menghubungkan kode yang Anda tulis ke bot. 0 T adalah informasi yang sangat sensitif sehingga 0 T bahkan bukan ide yang bagus untuk menyimpan 0 T secara langsung dalam kode Anda, tetapi kita akan membahasnya nanti.

Untuk saat ini, buka editor teks biasa dan rekatkan token di sana. Simpan 0 T 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 kaitkan 0 T dengan beberapa kemampuan. Kotak yang Anda centang terserah Anda, dan yang saya pilih di tangkapan layar di bawah ini sama sekali bukan resep:

Tangkapan layar: Wes Davis/Gizmodo Tangkapan layar: Wes Davis/Gizmodo

Saat Anda 0 T 0 T, 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:

Tangkapan layar: Wes Davis/Gizmodo 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 rekatkan 0 T 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:

Tangkapan layar: Wes Davis/Gizmodo Tangkapan layar: Wes Davis/Gizmodo

Catatan tambahan: Izin bot Anda khusus untuk server, jadi 0 T mengikuti bahwa jika Anda ingin melihat izin yang diberikan bot Anda, Anda harus melakukan 0 T dari server tertentu itu. 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 0 T 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 menetapkan 0 T ke server. Anda akan melihat pesan sekarang yang mengatakan “A liar (nama bot) muncul.” Sekarang 0 T 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 menggunakan macOS atau Linux, buka 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 Sublime, 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 0 T adalah ide yang baik untuk tidak menyimpan token itu secara langsung dalam kode Anda, dan menyimpan 0 T dalam file .txt? Baris berikutnya adalah bagaimana Anda mendapatkan 0 T 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 0 T akan menafsirkan variabel itu sebagai sesuatu, dan teks yang mengikutinya adalah sesuatu itu. Di Sini, membuka() memberitahu komputer 0 T akan membuka file, dan di dalam tanda kurung adalah sepasang argumen, yang pertama mengidentifikasi file yang ingin Anda buka 0 T (jika Anda tidak memanggil file Anda token.txt lalu ganti token di sini dengan apa pun yang Anda lakukan, beri nama 0 T), dan R memberi tahu 0 T mode yang Anda inginkan untuk 0 T terbuka. Kami hanya ingin membaca token, jadi kami menggunakan R untuk membuka 0 T dalam mode Baca. NS .readline() bit memberitahu 0 T 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 Intent izin khusus ini, dengan beberapa yang tingkatnya lebih tinggi seperti pemantauan pengguna yang disebut Privileged Intents (matikan yang mungkin telah Anda balikkan sebelumnya dalam proses). Selain mengaktifkannya selama penyiapan bot, 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, 0 T berguna untuk menambahkan a 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 0 T menjalankan perintah dan menunggu 0 T selesai sebelum melanjutkan. Anda tidak selalu menginginkan ini saat berkomunikasi dengan server, karena jika server macet atau semacamnya, begitu juga program Anda. Jika kode berikutnya tidak bergantung pada 0 T semua pada baris kode itu, 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 0 T 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 benar-benar diperlukan; bot tidak akan terjebak menanggapi dirinya sendiri di sini. Namun, karena kode Anda semakin rumit, Anda mungkin secara tidak sengaja memprogram bot yang berpotensi memicu dirinya sendiri dan berakhir dalam siklus pemicu dan respons sendiri — katakanlah 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 0 T bagian atas kode kami adalah suatu keharusan, karena 0 T 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 0 T adalah, pernyataan cetak akan, di Terminal, mengatakan “dapat sesuatu.” 0 T tidak&rsquo0 T, jadi saya harus men-debug. Baris kode kunci akhirnya menjadi alllll jalan kembali 0 T bagian atas:

Klien = perselisihan. Klien(niat = maksud)

Saya membutuhkan kode ini sehingga bot (Klien) akan mendapatkan izin yang saya berikan 0 T. Anda melakukannya dengan meletakkan argumen di dalam tanda kurung di atas yang menetapkan maksud bot sama dengan yang didefinisikan 0 T di bagian atas kode kita. Saya tentu saja telah meninggalkan seluruh baris kode ini, jadi bot saya sebenarnya tidak menggunakan maksud yang saya aktifkan untuk 0 T.

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 dari kumpulan kode itu diperlukan saat Anda menggunakan async. Jika bot Anda akan merespons, 0 T memerlukan semacam fungsi panggilan balik sehingga 0 T 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 0 T kode terakhir, dengan semua format yang sesuai (dan sangat diperlukan!):

Seluruh bot kami, dalam satu tangkapan layar kecil! (Tangkapan layar: Wes Davis) 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 menjalankan 0 T dari komputer utama 0 T di rumah, tetapi itu mengharuskan Anda untuk menjaga mesin selalu menyala dan selalu terhubung, dan mungkin juga tidak pernah benar-benar tidur (secara teknis Anda dapat biarkan 0 T 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, 0 T hanya akan berjalan untuk waktu yang tidak ditentukan. Ini bagus saat Anda memulai. Saat bot Anda menjadi lebih kompleks dan — jika Anda mengizinkan 0 T — mulai digunakan di server Discord lainnya, Anda mungkin ingin 0 T berjalan sedekat mungkin dengan 24/7. Untuk itu, Anda ingin melihat layanan hosting pihak ketiga. Ada banyak opsi gratis dan berbayar di luar sana, dan berikut adalah panduan panjang yang layak untuk membantu Anda.

Dan itu 0 T! 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 bisa 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, 0 T 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