Jak si vyrobit svůj vlastní svár Bot

Discord má vynikající API pro psaní vlastních robotů a velmi aktivní komunitu robotů. Dnes se podíváme na to, jak začít vyrábět vlastní.

Ke kódování robota budete potřebovat trochu programátorských znalostí, takže to není pro každého, ale naštěstí existují některé moduly pro populární jazyky, díky nimž je to velmi snadné. Budeme používat ten nejoblíbenější, discord.js.

SOUVISEJÍCÍ: Jak vytvořit, nastavit a spravovat server Discord

Začínáme

Přejděte na botský portál společnosti Discord a vytvořte novou aplikaci.

Budete si chtít poznamenat ID klienta a tajemství (které byste samozřejmě měli udržovat v tajnosti). Toto však není robot, jen „aplikace“. Budete muset přidat robota na kartě „Bot“.

Poznamenejte si také tento token a uchovejte jej v tajnosti. Za žádných okolností tento klíč nezadávejte Githubu. Váš robot bude hacknut téměř okamžitě.

Nainstalujte si Node.js a získejte kódování

Chcete-li spustit kód Javascript mimo webovou stránku, potřebujete uzel. Stáhněte si jej, nainstalujte a ujistěte se, že funguje v terminálu (nebo v příkazovém řádku, protože toto vše by mělo fungovat v systémech Windows). Výchozí příkaz je „uzel“.

Doporučujeme také nainstalovat nástroj nodemon. Je to aplikace příkazového řádku, která sleduje kód vašeho robota a automaticky se restartuje při změnách. Můžete jej nainstalovat spuštěním následujícího příkazu:

npm i -g nodemon

Budete potřebovat textový editor. Můžete použít pouze poznámkový blok, ale doporučujeme Atom nebo VSC.

Tady je náš „Hello World“:

const Discord = require ('discord.js'); const klient = nový Discord.Client (); client.on ('ready', () => {console.log (`Přihlášen jako $ {client.user.tag}!`);}); client.on ('message', msg => {if (msg.content === 'ping') {msg.reply ('pong');}}); client.login ('token');

Tento kód je převzat z příkladu discord.js. Pojďme to rozebrat.

  • První dva řádky slouží ke konfiguraci klienta. První řádek naimportuje modul do objektu s názvem „Discord“ a druhý řádek inicializuje klientský objekt.
  • client.on('ready')Blok se spustí při spuštění bot up. Zde je právě nakonfigurováno pro přihlášení jeho názvu k terminálu.
  • client.on('message')Blok se spustí pokaždé, nová zpráva je vyslán k jakémukoli kanálu. Samozřejmě budete muset zkontrolovat obsah zprávy, a to ifblok dělá. Pokud zpráva říká „ping“, odpoví „Pong!“
  • Poslední řádek se přihlásí pomocí tokenu z portálu botů. Token na snímku obrazovky je samozřejmě falešný. Nikdy nezveřejňujte svůj token na internetu.

Zkopírujte tento kód, vložte svůj token dole a uložte jej jako index.js do vyhrazené složky.

Jak spustit Bot

Přejděte k terminálu a spusťte následující příkaz:

nodemon --inspect index.js

Tím se spustí skript a také se spustí ladicí program Chrome, ke kterému získáte přístup zadáním chrome://inspect/  do Omnibaru prohlížeče Chrome a následným otevřením „vyhrazených devtoolů pro Node“.

Nyní by to mělo říct jen „Přihlášen jako“, ale sem jsem přidal řádek, který zaznamená všechny přijaté objekty zpráv do konzoly:

Co tedy tvoří tento objekt zprávy? Ve skutečnosti spousta věcí:

Nejdůležitější je, že máte informace o autorovi a informace o kanálu, ke kterým máte přístup pomocí msg.author a msg.channel. Doporučuji tuto metodu protokolování objektů do devtools Chrome Node a jen se rozhlížím, abych zjistil, co funguje. Možná najdete něco zajímavého. Tady například robot zaznamenává své odpovědi do konzoly, takže se spouštějí odpovědi robota client.on('message'). Takže jsem vytvořil spambota:

Poznámka : S tímto buďte opatrní, protože se opravdu nechcete zabývat rekurzí.

Jak přidat robota na server

Tato část je těžší, než by měla být. Musíte vzít tuto adresu URL:

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

A nahraďte CLIENTID ID klienta vašeho robota, které najdete na kartě Obecné informace na stránce aplikace. Jakmile to však uděláte, můžete dát odkaz svým přátelům a nechat je také přidat robota na jejich servery.

Dobře, tak co mohu dělat?

Kromě základního nastavení je cokoli jiného zcela na vás. Ale to by nebyl moc návod, kdybychom se zastavili na hello world, pojďme si tedy projít část dokumentace, abyste měli lepší představu o tom, co je možné. Doporučuji vám přečíst si co nejvíce, protože je to velmi dobře zdokumentováno.

Doporučil bych přidat console.log(client)na začátek kódu a podívat se na objekt klienta v konzole:

Odtud se toho můžete hodně naučit. Protože můžete přidat robota na více serverů najednou, jsou servery součástí Guilds mapového objektu. V tomto objektu jsou jednotlivé gildy (což je název API pro „server“) a tyto gildovní objekty mají seznamy kanálů, které obsahují všechny informace a seznamy zpráv. Rozhraní API je velmi hluboké a jeho učení může chvíli trvat, ale alespoň je snadné ho nastavit a začít se učit.