Πώς να φτιάξετε το δικό σας Bot Discord

Το Discord διαθέτει ένα εξαιρετικό API για τη σύνταξη προσαρμοσμένων bots και μια πολύ ενεργή κοινότητα bot. Σήμερα θα ρίξουμε μια ματιά στο πώς να ξεκινήσετε να φτιάχνετε το δικό σας.

Θα χρειαστείτε λίγη γνώση προγραμματισμού για να κωδικοποιήσετε ένα bot, οπότε δεν είναι για όλους, αλλά ευτυχώς υπάρχουν μερικές ενότητες για δημοφιλείς γλώσσες που το καθιστούν πολύ εύκολο να γίνει. Θα χρησιμοποιούμε το πιο δημοφιλές, discord.js.

ΣΧΕΤΙΚΟΙ: Πώς να δημιουργήσετε, να ρυθμίσετε και να διαχειριστείτε τον διακομιστή Discord

Ξεκινώντας

Μεταβείτε στην πύλη bot του Discord και δημιουργήστε μια νέα εφαρμογή.

Θα θελήσετε να σημειώσετε το αναγνωριστικό πελάτη και το μυστικό (φυσικά που πρέπει να κρατήσετε ένα μυστικό). Ωστόσο, αυτό δεν είναι το bot, μόνο η "Εφαρμογή". Θα πρέπει να προσθέσετε το bot στην καρτέλα "Bot".

Σημειώστε επίσης αυτό το διακριτικό και κρατήστε το μυστικό. Μην δεσμεύετε, σε καμία περίπτωση, αυτό το κλειδί στο Github. Το bot σας θα χακαριστεί σχεδόν αμέσως.

Εγκαταστήστε το Node.js και λάβετε κωδικοποίηση

Για να εκτελέσετε κώδικα Javascript έξω από μια ιστοσελίδα, χρειάζεστε τον κόμβο. Κατεβάστε το, εγκαταστήστε το και βεβαιωθείτε ότι λειτουργεί σε τερματικό (ή Γραμμή εντολών, καθώς όλα αυτά πρέπει να λειτουργούν σε συστήματα Windows). Η προεπιλεγμένη εντολή είναι "κόμβος".

Σας προτείνουμε επίσης να εγκαταστήσετε το εργαλείο nodemon. Είναι μια εφαρμογή γραμμής εντολών που παρακολουθεί τον κώδικα του bot σας και επανεκκινείται αυτόματα σε αλλαγές. Μπορείτε να το εγκαταστήσετε εκτελώντας την ακόλουθη εντολή:

npm i -g nodemon

Θα χρειαστείτε ένα πρόγραμμα επεξεργασίας κειμένου. Θα μπορούσατε απλώς να χρησιμοποιήσετε το σημειωματάριο, αλλά σας προτείνουμε είτε Atom είτε VSC.

Εδώ είναι το "Hello World" μας:

const Discord = απαιτείται ('discord.js'); const client = νέο Discord.Client (); client.on ('ready', () => {console.log ("Συνδέθηκε ως $ {client.user.tag}!");}); client.on ('message', msg => {if (msg.content === 'ping') {msg.reply ('pong');}}); client.login ('token');

Αυτός ο κωδικός λαμβάνεται από το παράδειγμα discord.js. Ας το σπάσουμε.

  • Οι δύο πρώτες γραμμές είναι να διαμορφώσετε τον πελάτη. Η γραμμή 1 εισάγει τη λειτουργική μονάδα σε ένα αντικείμενο που ονομάζεται "Discord" και η δεύτερη γραμμή αρχικοποιεί το αντικείμενο πελάτη.
  • Το client.on('ready')μπλοκ θα ενεργοποιηθεί κατά την εκκίνηση του bot. Εδώ, είναι απλώς ρυθμισμένο να καταγράφει το όνομά του στο τερματικό.
  • Το client.on('message')μπλοκ ενεργοποιείται κάθε φορά που ένα νέο μήνυμα δημοσιεύεται σε οποιοδήποτε κανάλι. Φυσικά, θα πρέπει να ελέγξετε το περιεχόμενο των μηνυμάτων και αυτό κάνει το ifμπλοκ. Εάν το μήνυμα λέει απλώς "ping", τότε θα απαντήσει με "Pong!"
  • Η τελευταία γραμμή συνδέεται με το διακριτικό από την πύλη bot. Προφανώς, το διακριτικό στο στιγμιότυπο οθόνης εδώ είναι ψεύτικο. Μην δημοσιεύετε ποτέ το διακριτικό σας στο Διαδίκτυο.

Αντιγράψτε αυτόν τον κωδικό, επικολλήστε το διακριτικό σας στο κάτω μέρος και αποθηκεύστε τον όπως index.js σε έναν ειδικό φάκελο.

Πώς να τρέξετε το Bot

Προχωρήστε στο τερματικό σας και εκτελέστε την ακόλουθη εντολή:

nodemon --inspect index.js

Αυτό ξεκινά το σενάριο και ενεργοποιεί επίσης το πρόγραμμα εντοπισμού σφαλμάτων του Chrome, στον οποίο μπορείτε να αποκτήσετε πρόσβαση πληκτρολογώντας chrome://inspect/  το Omnibar του Chrome και στη συνέχεια ανοίγοντας "ειδικά devtools για Node".

Τώρα, θα πρέπει απλώς να λέει "Σύνδεση ως", αλλά εδώ έχω προσθέσει μια γραμμή που θα καταγράφει όλα τα αντικείμενα μηνυμάτων που λαμβάνονται στην κονσόλα:

Τι αποτελεί λοιπόν αυτό το αντικείμενο μηνύματος; Πολλά πράγματα, στην πραγματικότητα:

Πιο συγκεκριμένα, έχετε τις πληροφορίες συγγραφέα και τις πληροφορίες καναλιού, στις οποίες μπορείτε να αποκτήσετε πρόσβαση με τα msg.author και msg.channel. Προτείνω αυτήν τη μέθοδο καταγραφής αντικειμένων στα devtools του κόμβου του Chrome και απλώς κοιτάζω γύρω για να δω τι το κάνει να λειτουργεί. Μπορεί να βρείτε κάτι ενδιαφέρον. Εδώ, για παράδειγμα, το bot καταγράφει τις απαντήσεις του στην κονσόλα, έτσι ενεργοποιούνται οι απαντήσεις του bot client.on('message'). Έτσι, έκανα ένα spambot:

Σημείωση : Να είστε προσεκτικοί με αυτό, καθώς δεν θέλετε πραγματικά να αντιμετωπίσετε την αναδρομή.

Πώς να προσθέσετε το Bot στον διακομιστή σας

Αυτό το μέρος είναι πιο δύσκολο από ό, τι θα έπρεπε. Πρέπει να λάβετε αυτήν τη διεύθυνση URL:

//discordapp.com/oauth2/authorize?client_id=CLIENTID&scope=bot

Και αντικαταστήστε το CLIENTID με το αναγνωριστικό πελάτη του bot σας, το οποίο βρίσκεται στην καρτέλα γενικών πληροφοριών της σελίδας εφαρμογής. Μόλις γίνει αυτό, μπορείτε να δώσετε το σύνδεσμο στους φίλους σας για να τους ζητήσετε να προσθέσουν το bot και στους διακομιστές τους.

Εντάξει, λοιπόν τι άλλο μπορώ να κάνω;

Πέρα από τη βασική ρύθμιση, οτιδήποτε άλλο εξαρτάται αποκλειστικά από εσάς. Όμως, αυτό δεν θα ήταν μεγάλο σεμινάριο αν σταματήσαμε στο γεια σας, οπότε ας δούμε μερικά από τα έγγραφα, οπότε έχετε καλύτερη ιδέα για το τι είναι δυνατό. Σας προτείνω να διαβάσετε όσο περισσότερο μπορείτε, καθώς είναι πολύ καλά τεκμηριωμένο.

Θα συνιστούσα να προσθέσετε console.log(client)στην αρχή του κώδικα σας και να ρίξετε μια ματιά στο αντικείμενο πελάτη στην κονσόλα:

Από εδώ, μπορείτε να μάθετε πολλά. Δεδομένου ότι μπορείτε να προσθέσετε ένα bot σε πολλούς διακομιστές ταυτόχρονα, οι διακομιστές αποτελούν μέρος του Guilds αντικειμένου χάρτη. Σε αυτό το αντικείμενο είναι οι μεμονωμένες συντεχνίες (που είναι το όνομα του API για τον "διακομιστή") και αυτά τα αντικείμενα συντεχνιών έχουν λίστες καναλιών που περιέχουν όλες τις πληροφορίες και τις λίστες των μηνυμάτων. Το API είναι πολύ βαθύ και μπορεί να χρειαστεί λίγος χρόνος για να μάθετε, αλλά τουλάχιστον είναι εύκολο να ρυθμίσετε και να ξεκινήσετε τη μάθηση.