/ / / Πώς να φτιάξετε το δικό σας διάλογο

Πώς να φτιάξετε τη δική σας διάκριση Bot

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

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

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

Ξεκινώντας

Προχωρήστε στην πύλη bot του Discord και δημιουργήστε μια νέα εφαρμογή.

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

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

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

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

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

npm i -g nodemon

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

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

const Discord = require('discord.js');
const client = new Discord.Client();
client.on('ready', () => {
console.log(`Logged in as ${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 και στη συνέχεια ανοίγοντας "dedicated devtools for Node".

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

Επομένως, τι κάνει αυτό το μήνυμα αντικείμενο; Πολλά πράγματα, στην πραγματικότητα:

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

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

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

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

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

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

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

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

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

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