Hoe je je eigen Discord Bot maakt
Discord heeft een uitstekende API voor het schrijven van aangepaste bots en een zeer actieve bot-community. Vandaag gaan we bekijken hoe u aan de slag kunt om uw eigen te maken.
Je hebt een beetje programmeerkennis nodig om een bot te coderen, dus het is niet voor iedereen, maar gelukkig zijn er enkele modules voor populaire talen die het heel gemakkelijk maken om te doen. We zullen de populairste gebruiken, discord.js.
Ermee beginnen
Ga naar de bot-portal van Discord en maak een nieuwe applicatie.
Je wilt een notitie maken van de Client ID en het geheim (dat je natuurlijk geheim moet houden). Dit is echter niet de bot, alleen de 'Toepassing'. U moet de bot toevoegen onder het tabblad 'Bot'.
Noteer ook dit token en bewaar het geheim. Geef deze sleutel onder geen enkele omstandigheid aan Github. Je bot wordt vrijwel onmiddellijk gehackt.
Installeer Node.js en download codering
Als u JavaScript-code buiten een webpagina wilt uitvoeren, hebt u Node nodig. Download het, installeer het en zorg ervoor dat het werkt in een terminal (of Command Prompt, omdat dit allemaal op Windows-systemen zou moeten werken). De standaardopdracht is "knooppunt".
We raden ook aan de nodemon-tool te installeren. Het is een opdrachtregelapp die de code van uw bot controleert en automatisch opnieuw wordt gestart bij wijzigingen. U kunt het installeren door de volgende opdracht uit te voeren:
npm i -g nodemon
Je hebt een teksteditor nodig. U kunt gewoon Kladblok gebruiken, maar we raden Atom of VSC aan.
Dit is onze "Hallo Wereld":
const. Discord = require ('discord.js'); const client = nieuwe Discord.Client (); client.on ('ready', () => console.log ('Aangemeld als $ client.user.tag!');); client.on ('message', msg => if (msg.content === 'ping') msg.reply ('pong');); client.login ( 'token');
Deze code is overgenomen van het voorbeeld discord.js. Laten we het opsplitsen.
- De eerste twee regels zijn om de client te configureren. Regel één importeert de module in een object met de naam "Discord" en regel twee initialiseert het clientobject.
- De
client.on ( 'ready')
blok zal vuren wanneer de bot opstart. Hier is het zojuist geconfigureerd om zijn naam bij de terminal te registreren. - De
client.on ( 'e-mail')
elke keer dat een nieuw bericht op een kanaal wordt gepost, wordt het blok geactiveerd. Natuurlijk moet je de berichtinhoud controleren, en dat is wat deals
blok doet. Als het bericht alleen 'ping' zegt, antwoordt het met 'Pong!' - De laatste regel meldt zich aan met het token uit de bot-portal. Het is duidelijk dat het token in het screenshot hier nep is. Plaats nooit je token op internet.
Kopieer deze code, plak in je token onderaan en sla het op als index.js
in een speciale map.
Hoe de Bot uit te voeren
Ga naar je terminal en voer het volgende commando uit:
nodemon --inspect index.js
Hierdoor wordt het script gestart en wordt ook de Chrome-foutopsporing gestart, die u kunt openen door te typen chrome: // inspecteren /
in de Omnibar van Chrome en vervolgens "dedicated devtools for Node" te openen.
Nu moet het gewoon zeggen "Ingelogd als", maar hier heb ik een regel toegevoegd die alle ontvangen berichtobjecten in de console zal loggen:
Dus wat maakt dit bericht object? Veel dingen, eigenlijk:
Het meest opvallend is dat je de auteurinfo en de kanaalinfo hebt, die je kunt openen met msg.author en msg.channel. Ik raad deze methode aan om objecten te loggen in de devotools van Chrome Node en gewoon rond te kijken om te zien wat ervoor zorgt dat het werkt. Misschien vindt u iets interessants. Hier, bijvoorbeeld, logt de bot zijn antwoorden op de console in, zodat de antwoorden van de robot worden geactiveerd client.on ( 'e-mail')
. Dus ik maakte een spambot:
Notitie: Wees hier voorzichtig mee, want je wilt niet echt omgaan met recursie.
Hoe de Bot aan uw server toe te voegen
Dit onderdeel is moeilijker dan het zou moeten zijn. Je moet deze URL nemen:
https://discordapp.com/oauth2/authorize?client_id=CLIENTID&scope=bot
En vervang CLIENTID door de client-ID van uw bot, te vinden op het tabblad algemene informatie van de applicatiepagina. Zodra dit is gebeurd, kun je de link naar je vrienden geven zodat ze de bot ook aan hun servers kunnen toevoegen.
Oké, dus wat anders kan ik doen?
Naast de basisconfiguratie, is nog iets anders helemaal aan jou. Maar, dit zou niet echt een tutorial zijn als we gestopt zijn bij Hallo World, dus laten we wat van de documentatie doornemen, zodat je een beter idee hebt van wat mogelijk is. Ik stel voor dat je zoveel mogelijk doorleest, want het is zeer goed gedocumenteerd.
Ik zou het toevoegen aanraden console.log (client)
naar het begin van uw code en een kijkje nemen naar het client-object in de console:
Vanaf hier kun je veel leren. Omdat u een bot tegelijkertijd aan meerdere servers kunt toevoegen, maken servers deel uit van de gilden
kaart object. In dat object staan de afzonderlijke Gilden (de naam van de API voor "server") en die guild-objecten hebben kanaallijsten die alle info en lijsten met berichten bevatten. De API is erg diep en kan een tijdje duren om te leren, maar het is in ieder geval gemakkelijk om in te stellen en aan de slag te gaan met leren.