Krótka historia o początkach CrazyLazyCatBot

W tym artykule opowiem w skrócie historię powstania mojego bota. Pojawią się również sprawy techniczne, ale mam nadzieję, że wszystko będzie w zrozumiałym tonie

Wstęp

Cześć! Pewnie część z was od wielu miesięcy wie, że tworzę bota na mój koci discrod i też ta sama część wie, jak prezentuje się wersja testowa.

Do utworzenia bota wykorzystałem bibliotekę discord.js wraz z frameworkiem nest.js (z mojej strony to bardzo dzikie połączenie, ale to o tym później), a powstałe rezultaty są nawet obiecujące.

Powód powstania bota

Od wielu wielu lat chciałem mieć własnego bota, jako takie swoiste narzędzie całkowicie spersonalizowane pod potrzeby serwera. Drugim powodem i w moim odczuciu dużo mocniejszym to to, że mogę i chcę – ot taki kaprys 😅

Później czyli sierpień/wrzesień 2022 roku (nie tak dawno) zacząłem poszukiwania bota do zliczania XP. Myślałem nad Mee6, ale ten zaczął chcieć za to many many. Ok, nie mam nic przeciwko temu, ale że jestem zwolennikiem niewydawania bez potrzeby to znalazłem innego bota, ale tak na serio to żaden inny mi nie odpowiadał. Zatem – jakiegoś znalazłem i wrzuciłem na serwer, ale z tyłu głowy miałem to, że to nie jest do końca to. Z reszta większość fajnych opcji jest zablokowana i to był ten moment kiedy moja zachcianka zaczęła mieć rację bytu 💪

Poznanie się z discord.js

Początki były.. niecodzienne. Miałem duży problem z tym, aby w ogóle zacząć. To też z powodu tego, że u mnie ostatnio czasem krucho, ale też chodzi o to, że robiłem niby wszystko zgodnie z dokumentacją, ale bot po prostu nie chciał się odpalić. Mój skopiowany kod nie działał.

Straciłem kilka dni rozkmin na to jak prawidłowo skonfigurować bota i kolejne na utworzeniu komend zaczynających się od ukośnika. W końcu mnie olśniło! Skoro podaję jakiś token przez liba to może niepotrzebnie coś jest dopisane? Koniec końców wyszło na to, że za bardzo sobie pomieszałem to co było opisane na slackoverflow i tym co na github oraz tym co na dokumentacji. Usunąłem z tokenu to co sam dopisałem do niego i myk – lek na wszystko! To był jeden z tych dni kiedy sam siebie uznałem za debila.. Cóż.. każdemu mogło się zdarzyć 🙃

Po udanej naprawie postanowiłem pobawić się z tworzeniem komend i już było z górki. Jakieś tam parametry ustawiałem itd. – generalnie zabawa kodem. Potem uznałem, że wszystko spoko, ale pasuje to jakoś standaryzować i uznałem, że skoro to tylko lib to mogę go upakować w jakimś frameworku jako jakiś osobny moduł czy inny twór.

Jak bardzo bot nie sprawdza XP, bo jest leniwy

Większy poziom abstrakcji

Wziąłem się za nest.js. Nie był to strzał w kolano, ale żeby zrozumieć ten lekki absurd, w który sam się wpakowałem to miejcie na uwadze 3 następujące rzeczy:

  • pisanie w nest.js wiąże się z używaniem języka TypeScript, którego po prostu nie znam tak dobrze jak np. Dart czy PHP
  • nie znam nest.js.. to że potrafię w nim utworzyć DTO i kontrolery o niczym nie świadczy, to po prostu jest w dokumentacji podane na tacy 😅
  • dopiero poznaję discord.js, co oznacza, że mam sporo do nauki

Z samym frameworkiem nie miałem problemów. Grzecznie utworzyłem moduł i piszę w nim jakbym tworzył całkowicie samodzielną aplikację. Nie wiem jak na długo zachowam taką hermetyczność, ale powiem, że jestem i tak z tego dumny.

DiscordBotModule

Dalsze plany na bota

Mam wypisaną całą listę zadań do wykonania, aby tego bota zrobić. Nie będę tutaj jej przytaczać, ale chcę zrobić system liczenia XP, a wraz tym tablicę wyników. Dodać komendę do wylosowania zdjęcia losowego pieska (bo na kotki jest już). A co potem? Potem się pomyśli. Jestem też otwarty na sugestie 😄

Szczególne podziękowania

Dori zwany kiedyś Dorion300, bardzo usprawniłeś flow dotyczące bota. W ten projekt też wszedłeś bez większego zastanowienia i zaangażowałeś się tak jakby to był też Twój bot. Dzięki wielkie, z to że tak bardzo mi pomagasz i śmiało mogę oznajmić, że tak: to jest nasz wspólny bot 🫂 🥇

Luki_86 dzięki Tobie bot miauczy i czasami tym za bardzo spami. Podesłałeś też drugi fajny pomysł, który z pewnością wezmę pod uwagę 😁

Podsumowanie

Jak to bywa początki bywają trudne, ale też nie taki diabeł straszny jak go malują i tym optymistycznym akcentem zobaczymy się w kolejnym wpisie albo na kocim discordzie. Mrau 🐱

Subscribe
Powiadom o
guest
0 komentarzy
Inline Feedbacks
View all comments
Włączyć powiadomienia? Bardzo pragnę Dam sobie radę