From 78fe247fc41d1743d273f6b784c53239809c1080 Mon Sep 17 00:00:00 2001 From: Ryan Munro Date: Fri, 28 Apr 2023 04:58:25 +1000 Subject: [PATCH] feat(guide): port and update lots of stuff (#9385) Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com> Co-authored-by: Noel --- apps/guide/public/assets/after-sorting.png | Bin 0 -> 11310 bytes apps/guide/public/assets/before-sorting.png | Bin 0 -> 9046 bytes apps/guide/public/assets/bot-auth-page.png | Bin 0 -> 40058 bytes apps/guide/public/assets/bot-authorized.png | Bin 0 -> 13571 bytes .../guide/public/assets/bot-in-memberlist.png | Bin 0 -> 6781 bytes apps/guide/public/assets/bot-user.png | Bin 0 -> 76977 bytes apps/guide/public/assets/create-app.png | Bin 0 -> 66069 bytes .../02-creating-your-bot/01-initial-files.mdx | 231 -------------- .../02-creating-commands.mdx | 246 --------------- .../01-installing-node-discordjs.mdx | 102 ++++++ .../02-setting-up-a-linter.mdx | 6 + .../03-setting-up-a-bot-application.mdx | 61 ++++ .../04-adding-your-bot-to-servers.mdx | 52 ++++ .../01-configuration-files.mdx | 132 ++++++++ .../02-creating-the-main-file.mdx | 60 ++++ .../03-adding-commands.mdx | 147 +++++++++ .../04-handling-command-interactions.mdx | 292 ++++++++++++++++++ .../05-registering-slash-commands.mdx | 155 ++++++++++ .../06-event-handling.mdx | 219 +++++++++++++ .../01-frequently-asked-questions.mdx | 0 .../01-async-await.mdx | 0 .../02-collections.mdx | 0 .../03-updating-to-v14.mdx | 0 23 files changed, 1226 insertions(+), 477 deletions(-) create mode 100644 apps/guide/public/assets/after-sorting.png create mode 100644 apps/guide/public/assets/before-sorting.png create mode 100644 apps/guide/public/assets/bot-auth-page.png create mode 100644 apps/guide/public/assets/bot-authorized.png create mode 100644 apps/guide/public/assets/bot-in-memberlist.png create mode 100644 apps/guide/public/assets/bot-user.png create mode 100644 apps/guide/public/assets/create-app.png delete mode 100644 apps/guide/src/content/02-creating-your-bot/01-initial-files.mdx delete mode 100644 apps/guide/src/content/02-creating-your-bot/02-creating-commands.mdx create mode 100644 apps/guide/src/content/02-installations-and-preparations/01-installing-node-discordjs.mdx create mode 100644 apps/guide/src/content/02-installations-and-preparations/02-setting-up-a-linter.mdx create mode 100644 apps/guide/src/content/02-installations-and-preparations/03-setting-up-a-bot-application.mdx create mode 100644 apps/guide/src/content/02-installations-and-preparations/04-adding-your-bot-to-servers.mdx create mode 100644 apps/guide/src/content/03-creating-your-bot/01-configuration-files.mdx create mode 100644 apps/guide/src/content/03-creating-your-bot/02-creating-the-main-file.mdx create mode 100644 apps/guide/src/content/03-creating-your-bot/03-adding-commands.mdx create mode 100644 apps/guide/src/content/03-creating-your-bot/04-handling-command-interactions.mdx create mode 100644 apps/guide/src/content/03-creating-your-bot/05-registering-slash-commands.mdx create mode 100644 apps/guide/src/content/03-creating-your-bot/06-event-handling.mdx rename apps/guide/src/content/{03-popular-topics => 04-popular-topics}/01-frequently-asked-questions.mdx (100%) rename apps/guide/src/content/{04-additional-info => 05-additional-info}/01-async-await.mdx (100%) rename apps/guide/src/content/{04-additional-info => 05-additional-info}/02-collections.mdx (100%) rename apps/guide/src/content/{04-additional-info => 05-additional-info}/03-updating-to-v14.mdx (100%) diff --git a/apps/guide/public/assets/after-sorting.png b/apps/guide/public/assets/after-sorting.png new file mode 100644 index 0000000000000000000000000000000000000000..aea35345819637c56d7ca81c56576817a52ff1c6 GIT binary patch literal 11310 zcma)?WmFvDwx$z8LI^HFg1ZGL!QI{6-Q7L71`EO6X@a{o?j9T(mqvoqSR>Op=bkh7 z-kG~*e)OuYwRUw?SJmF{v-kT&DJe*zeE9U?)vH%1(o$k7ux-n$SFb(azk_|lc?iOU zZC<;oNQ%6wnj}1g?Z8_K%L~7HRU41=X#5tokLV<&?fU8!YTw__>mkQ7vsbSe`lQ8# z)w~Q&vi*|@)mu+VfFem`$e5qxf~Q$gq$TwI-;<8BPNJg)m?eMfCZS~G%#c=Mi6S=d zL9QBu)N!PL^I1sW{qW(3`GObbGYc_%HZ92_ulCmXYYazU_jlZt95R?StZYJP8|m#E z`t1M@bxp|P^|jhrK%lL9NgI&nYHro>WMwKKzV&W9hNhb(+~wE92#Z87oMmkI+ethW zq%78qBLOp}_SenTwmo(bWj2A}Y)*e%#orw|@rl_jhwTl!^loQbLG0E<`HnH>En7G4 zRx_wKAZE@2&+4>R00FNCm+#C6yJQCVXZK)dsNX;p^S6pN&u-rqXXkrPVFLjS560Jv zWEkL8+R350@Q(Kau9Jl0YF9nu{aM^$&7{KipcZAhu71~g-5LkU=7c&D%o=n~L^+3c zjIQxAb(K32kkg_)h&woSk6xCG(!=-uE}fyKaMkyn@6%+W^SDFnJI>Fl4DiMJxs$GU z#hslk{5k?9O-yc#zP@YbCaU19&!-vNSa(q82~A*lwSlj2kQ0ovZKg>3Q8#cgx@gRyMd}Y3`Cg}vng3<`-Kl}Isvc!QK?@zR+Uv}e z4F<7TcIL~-rTr1yxX3`uo!zhnOXe`xe>b<>RJ$;J+_O9oU0&>+BhKv(j3BXtVm!AU z9KA}^-3FTUkX#fxz9`vglTUSgrdTSsynEU9y)Z0d#25D5^pM0Db8^l~4uogEy9zhQ z?bCq-(-hNEZdXj^b8K-xrZS2M<}a4IQfoxof`kvhqhEKjtio)hlW^lc(rf-v;;xdi{R8IX8T!IlKR`!3j$72?{R`VSY-v$vH-8iI zwia2X>vFYt+}5}xtlW`$F7tfOry|`czd1^2ljDtypL`^oWoI?wr1d+>h7^?6N>_RE ziKTlsCVDsj*SnlpDs2Vgw<3!oUIE|)M^=l`%}I^enb1;NWYbrlod&J6He+XMy73E* zgV-hdV7auP<~qrpnu&;Sy7m5_S@j8r%ar49C^;m7n^@3rqIG=oQD=fx?p{n{Q&Qm4 zyMvNikcQt|P~qibah_%{-xcYmA=bow>YGkCJO+Lc$gIZQNt^iU8C4l^V zd4lGRX-YF|nzoe#PG)Rpi2zs>E)d-RgVpmKwXui`B^y}NEnDybP7p2g1>%zhnPUR^ zfD2!f=Z5WNHk+JiD{f5^oL%C%xl3*KKRzGBxn8g+cpcWHp_VHOHxxi~c;-cp=kyYTu$r zm6fvcrxe7#TdAEZ{6;%Rg*4vY5Sa~6&mU=5d)_(xT~HkAF#u#sb$$F1I^&Vi&D(q$ zzB18lXsQ~fk-U*tZHbG@tR1sj^^&m2SlHhw5$U^FxwXCEeVlyn74Wo{bJ$RQW9rb& zaV+~}0`<0;BK_=4^Lw?{2l9#aM07o)dl>t;&Bs280FV9 zZSXy)*pb03wOheE3y7Tn>LAd609R!W;74gR#1NED30P9c#Z_jzd=I;mD=3Dz47t}R znCdgXt9;U^CKivWw0OP7L4?j(#={h|TFf&Mx)Z;>>P?Qj4SfDece*A5Lg>B1MXT;w zB z73_bWO!JP-s6PnYxBp_vdR4@2!}LvzJ)kG?jy#hSJ*d=S(@w`&5All^YhA*L0$9kv%5e>;0!9ai%8U0agn$cG2p!>AU~BF~ zd$x7*<151>*r-8R&cUs)VHF(^FCw+hbM`8nW|DBSΠ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≤Y=ktvW#JQs$G;wCx+=5&DG2Bo3Xs{Af&Etv(|KYgr!E;0Kzu1O(f=|jfNqKdkg)u+^A zh7n=AJ;T6#y&8ZWIfVL$N+OmeNz6;jt++KGYOu=Bz>a;6W&5UU;;{L?OZ+yVDD{dM zeQpi{*)Shh*6lXI_|xPpMH=55(TVmd0>4z#8jIl@hE4ft>e5r!{Eg{3Qg16O@;5 zmYV)7yT!?1vcCjl9N|xaNf%UKv5vssk7Et>nEly{3YDNzfrWKuL`Uiq~r zRHuzM@@gsqc*?rf6$?#{zHs1ql8mes3Gi}{v=6#;VSe*o35*Hf8;lMHK=2)G*o xk<0JA=-5BjROGN`40B?!{h!Nq@HSuGWOfiHagfu@!q)h{k``AGs}eB^{$KLVZwUYZ literal 0 HcmV?d00001 diff --git a/apps/guide/public/assets/before-sorting.png b/apps/guide/public/assets/before-sorting.png new file mode 100644 index 0000000000000000000000000000000000000000..f7e369426050a8aa76b3894a19626f234e2c3e80 GIT binary patch literal 9046 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 U>dzSLUl@SAw2D;ad$WN51)!jUCjbBd literal 0 HcmV?d00001 diff --git a/apps/guide/public/assets/bot-auth-page.png b/apps/guide/public/assets/bot-auth-page.png new file mode 100644 index 0000000000000000000000000000000000000000..33e8f054a7fd20337ab7d8472ac063df9a6b477c GIT binary patch literal 40058 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�LxkUbjTmnm z&e>vkr`Ohsc7!Tkp#=|7&~F~RCZMzC2h*8fJd=1fN#E3?#7X`;UYVYRL z&|+-9F>UcBmstE3o80XU83B-OeSg7zdH50LR2(QgBHcu+`ELwK45N}eEy`!+oJPs8 zC*Y;fX{XU9gKib_Lo^b2Uts|jD+kH@SXrOKQO!xsQ#KFzo7e7|`Xg}b>hpmXz>dpv zLiZWZ$Gy5PYLKGa2+sftNlKKQc3uOrUs;8JeQSgi-4upUYagSY^^7&oSzt+E>%a2@ z4!ow>pfpEE&TBw^KpbI;gIVTy1oge9mNPL!nP$j692Q#OACRA;(=w8OQ#Z*tpxB&S zNn0Y=)$LI`?Dpn(;-HOXm*Dc+t0Jlb3C2#AXrh}|T2tjSxV1sW@h0$F^SJhs^Zu76+G>KiIgbysW{P~onB`m+lRfu1@ zpuO_6Zc_KVMUBsX29a6GA+sibpq9`+-QU(5+4Bm?;I8tM1`_ig&u5!~ibx9fm_9;0 zjFaOiSyX(q!NZ-&>yQb!&i)pSekb zIhGl3z^>r&ZhF}X%qx8kBEyWN%<0-24xFfoOFa%P+#-(b2l{2XHW}?)Jqjed(brR- z<#dUQM3%Y_uwEm6JqNYd*d$}}s2k0S(?-0}Uh zX7$_zf1rK}mP=n-iZ9wCO$p>Elc})8nTI*ihuNbn0T`2hK=>}Y6_*`i4uWxz$nYkJ z1#}=M{eX|v^i$-#L&%;r6IerH*(-PlV-NiW%6P?hwPC1)e4q!nKKoB(Rb56pa05os z1Y|-OeYTYj+QASo3PKAOUwo=Vv-2xJUo(El&5MArEb7P8gKL)#sA?2|c#$8$3VWah zK6N|4Uw@}y@Z+NyyDJF6#eBo81TCp%$_3TY6_DZd)M2bT{tc@IA+&^eax`rn$+dvU zE`e7`9#~8Q_LdSBNC?Zdz%GZN@reWiLd!Fhe92URc&>-Fv%lKl9Ri>cTHcrShVO7|d;kPPSvS{1 z2^@756WlNS~whBh+OamN78RaM5v8u_?8fBZ#P&A` z2&1@9sq-bToZtg3TYo4)=_Uhl`|k%5*Mir7kq7@0GOLuBINR%Z^=Z-Gd3t)9cf|DiAXP=^9-_nCb-%+GKz3S|A8ebxUWbvm z8vN3UBQ-NSd$QErEmL;^@WqhuaDG->8wWwpi|O5$$Ia>TKV-+Y^78VQmX^2vIAo8F z&f|`OB0rHBcP>I)d;?*1qs{}fo{7bQaU_V_U$L>Uo{xEqtGZvhz90nuM;n7e&u(t? zT1=ip?=KC8XaoW7k_sY8r6y}5`;w+ggDqE$LxSTm%z`Fze+QFGp=(Qqb!6}64GvXS zGCa90;hPV{oe0+rIXj8qbp^Y>p8G!RKH>lIJt)E_0u(KI@$Yhsj;0Tw3BYFmk*0ed z{MjQB;Ch|PYK;$A;vx=fdD-dKP`xoL>(lx3CCv|xpFdCCqu~<~6YHi)fy!qNQkk?{ z>Z#<^sFJ=?fV8o1>-GaRfuEtkZY4WkTw!?~Hrx{#w=`F&te~`wXz6IUQmSqAbWu@* zC2j|ONPspck_r9%*|wM(pqx9@v0qxQ-QKv%W}wr!#|>C_t-T~2Co2wm^Y)G549jY( zI=d^gCA1(ydI!G75}BYIDTO`kwDEWk{tx5UiyYN9HgevsvU+?rcy9gscap8csbx{- zwE?wDy1F4B52-0WCHjXn30Se*`}+W4@!uxw9k(Zs2Hzz?Gt<+8FTreoGWZ_v&fkLy ze0j!3_yd1Zyok^4f4+3eiv|0ghrclW?pFO8ya7zJM-~F5$4lTXnTQuep~+!k(rbnv zu=gnVIgpO2q3vf!+s}WBT00Fd_sx=2u6kCv%5(G6eVyC@2es|J0zK(FFG|HN`80zY z{-#yG`Cnpe8K!XU^GjZ^7Be0-q|fYpn5}b9N4D&PeMb9pL4~u$Ks-=H9QMV#CZfoK z`K*Pen+qL$V#OLc8_(|8H zGV96z*ssK+6cZPBx7(cu2sfybq69=Z(BDT((#YNX_^inwi4#tU?x0Rm{&i#R_#;nq zEvNtnuSzNiZ84P;;}DuRrX%1o6uE3#A^ijhNnOxCBujjiq$>CkTUS|KZB#Y|0DY@G zeznhrrZ3K7&*Az`y7N;x^h#O0mKPSRs!dHzdEG7r_4Ubz7Jn;^I^8CVqmjg>XJ%@2 z8*bLd1S@8mu#l4S@>WM&lmHe+M=+M>Tw4?6lLXV&kfRS%KoZDBCKiA0`#Wt7BxruX1yROJ zU;a%|S@W2hKJ9u8A!gewE-Q17-&|f^7I}GiOi_8(*V2jst26v9XJo8)5dV<695|Po zD0or31@v)$k_GIMD>&)j0B!sw2X1s&VNu~&4&USRTXMH5&jz3YzI3XbCwM%Cp2rQHMUEgdO5SBG-=(NW);VbzpNF8`+id>VO@VY1$eYt%@0=xyzf29itq6 z&x3#AXn?l{QkC8oZiL$9l@%3h&s!>_?^{|KTk&me%MBu}EG&R+P$7c~+gNqIkk8)N zMR@QAODrcRr%qa`EKP-0bq<$p;lpI(c=DvW)4+D-M{6az_u{hU8o;u7J-k8XqM->R zh_jjW$y5D82^lC&LXREIi$uP|7}@X@IF@mykT;_LZ{X(Ve|O&8+-#PrJNX@P zS2eGBl5p>PW4k_{D8%*`PVIZ}=Pp>B1g%iZBs^bDu}K$UQPQLjV`Fc=LF}1f`ngE_ zazr|Kr#5}AxU}(p*7&9AM`tZ2ceF^b45wh$zk5tH53SX8S;*oFLN0M<$j*T0_SJr6 zMg{>1eA^9Zf30P^pBMxMg)lKCSC43Z8!R@5C-8af)oRdr{(G-)Y)no{8V(*B9n2K) z4pNCF1%pM^1Rs|o9{kcQInXcFDkQ|kV`5_irvYKbf2~SKTwL7e=Vt?X61b&$`62Pc z9oiJ!*x;OJYnVpU(vogZ(Z^B!n~$gMx1*l+MMXvJgH1nw4w=;f+8t--Q>B^? z2X-Q=Uf8kuCaB;jCugEa1|VX20`7oi+V3g8xmbNLxj(i{vDJ1d-8k@W1D z`#7?`zCJ%s;G`j6Gy$~Q7*o?nGe7FHroVmjM(AZZcr=Hv-C;r9NwK4&V-r|X5rvIw zcw}j?3sij`k1J&2WFJf)6a8DD-<-mKlC6oVAZ%uy84eY5_usP-_zLHkBIPdc4k9|iAzYlMnoJM8fuS8 zg{F324PUR{ELWdsgOG_6ObL*Nh>=}MT9{itE zkEhMK$C=20y;|CbY*!DwjQ; z6{*B1$hXun#}syGt{PezeZ36O+}94Q!JOm{1fIBT#T}9XI{!u2@+};`NSEF3bqUeZTHfUFb#--VYHE6VdM-6N zPBk`_mX(cV@O`FAvVktfy{8X)y4H^E?@gur^a*PCFq?)KEm`lf(F^I545d)EwhFpk z@jk9TqLXvmES9siwf&G9W10cvkE4DwP}1B4JeMX*u&}VWl=6oM@6X}n05QgnuAril z&*}M7yx>Pg#S+whE(sQ?n}&gbVc6(X*WDd#Xt**a^7Jh=H5{BQOVhmSXK$vCov;Ok zLW7^~t)-=<%g~Ou3CZwzfL!eKzafs_dhLPbOU59CZw zL%>-a?xp$pYw1f(fF$+Agy`zQaj6L)=2`U`ZRV;Cg@uLp-_tv-)R%l;-~6;g5aIb? z=tAz<7M4pEzlv)+mM1g;i-;%YNifY=14g&OTBQt_p8RPE6oV~Zi$*9^u4Hn$k&7%b z(saI9E@g9b)6C2aEDpGRetym}G6E_9FfMS-7CgZ+SD2KHtjlkNh%8a&+{e_^bXdEx zWqVd1m@N!s*dN^n!1%)q5xHa>xdc*yo2C*4pz#Crzg8wEvGK@OPgcc`C()2XuMg)E z2?e<6>36U8r+{Hs5x)K=UhbjDm@+s?uP6#4o$u}jKtNv<7I1%25Fl_8xy*k78pHX* zfo+wIT&%*vf>emGTF=ATDg)?{2|J09n@B&UEEV4AYUh$2bk+T| zv)tAeR4`*dTU=b4$LqSemqZOncT2Rqq2tx1ZHqv7F1NTYFU@bjQj(M7kY7ibHUpiF zqlE^*twb_DY!Z@xe}bRiV`GPcFK%x!(a?%~1R-E=_Am)?usBr`!v}u94VGqRWp~eDb8B_{W7XqKRG!`5U~Jt-)(i@4~rMe=Sr9f|!U%=T38|#J!`r@+4@JM|YyhW?w-@l_`VlIHrGa6=1WhH=U zrPGNziewT2xP=(FN2IygUPl#v?WP zJr0gVoerx(%dbwM;FBD!3JegsL%JeWl42$&E$ye7l@&t@Fb)n*RKFQiUej1RJwJb} zWaC5atB?>Hxja7q+122pxx;O@*8Kc@MLPe7wU-?{Hps(BA*#<{l9bPOg6;)wzadB6durOr^Mbz@L0jm;FZvz86f%{FJ zS_1KYj7VEHby_$@dbDG6RW0k=+Pb_J-PFXL6;bwt&KZ^Zx~k>JkGi@fe{Km0^DO{* zY;A60W4}+8-!71d1d9VAO3arn^1Qsf%*;%YfS0E}xfFwYLq7hL)a(40f7Ulg3$RGc z?!e+D=f*9HD*EtD3M`ZgSLDRvvBKpE5T$OHN6_ zBo%D&z1&g8=ikXp$z7SA{`U2&2`5p%+4*1!eXEiHcOeU2?2H{PN~p)If#Z~&0PE2~ z`<} z`Z}(5WZGNAlYK13*DtTCdO8h$i3Q8&^SUn7TSm*t3A{YFSM&jBk&%(njy%7JWOprvLuXV70&!K~9EWrUh&jD+CN}##GCu40(fv`DiV#GB{XR zSojteNO_L8w*eWmy}kX?Ol9ltD_)^EAR$(czE2fRz^Oud5X}X`DA+{u3mIYxFD@^x z`~r1-eE}gnP#P^QY10v4?9n>RU=SXQ-nW45FxNJ5H4Pn|jQnn3sh%oT0#xXkdR26C z>XhkIT#jx&5DECz!omV_XV7YgZ_xAe$;nBqQ|F9b1L^TNX~b5G#s^IX9PgFD=D?se zU@n9N1+^-50C@s24vq)B%@Y_Wd{zUXI%ab_F8-J(T3KG6q*v}ZJZa}Z7x29(PEVhU z!DYfh4cDtO0*c&gOhM7)zq#Hkslu*>I?QRq+X2FBcF;+#71x45hP4x5^}>;ol94gy z4bF@0UM?*I(oK+6nJS4{uS16}g;dZ7Oes0ls9vr}#z7@axv>%a54O}k3|HVixN6_C zdfU!V^rS-rKXo!0)%o(>h>roNtwh8`4qPKM6Tnyj%My@utxfs^(eHsBg<+lB_607} z!Qo*dslcogLSqrIAB>5K0sI7rlZP3lY#qoz9I1fkA{PX#G(||S%sbk&pV8IQayK<5 ztlwZYg2vYI1#Ab*6cEqt&podnZ{Zl^&%cWj>zVZp402LZVDVN*{~n#oB{>}*JXjNK zxU!})Gx>8*QW8bF%vajlPukF6>{+FNvPMa5dbImRt6XCXo=DDThm(Gno*zsH3LV?3 z(y22W$@&DM>@@0riX;aFwEV0`^YNgxLX73$@H9=nHSgFEn6=vMIJH#I>7P+0PV z9`^6*%x?^J>fC4n(+LT)X0<|8=bu83fyDXWfzm8a0LoL|5D#{Sv2Xmv)m7u7gHV=G znd%3|WCt6Y+U`_&8UX9$CQy4Tjyd8`{%z^QiZBHl;1x3m*T?z0Qpv^gRkQmZ$EcO6 zA84`V9F^kD{TrtG40b>Ti;H@Xgme47UQ&LWgY+n&KDJu}UQp$5bw(V}VwG$%5E$C- z?(W*~;JhQU|{%vK)7$~uz@qMVgCbG|1W@e z+Y^mU7C}^mO2clgtJ0a12-zP$0=-Tr`CASr7468F$S=D(8z>P8yr|HeAdB0}XF$SO z6~}Yx8zEk-RD~^+P2=&-&%dH&H}ST{|D@G_qxXJyG`Cqqie4zN7hpsI?>#O>xwHXF z?4zJyN9}hCE-tQ5ELDXaIsQ46a>*a9{^-=2h{@aiTs8UO?K4^;N!9AR3Q&)u@v(_D zH8sFtx|_rZct49_n@2AM1vMO~77$Yc2ym1J7#W=oA6Eqh1wcZqO`9}i{u*{VZGUOA z)c;75@{O5clPslR$ZDqW6~q)0c~A;)xe`?5R~MO1oLZUany+=gP-4)7TE@nq%FK8w z9kxGZX-0)pX698-w{{c3*r?$JrW+?@d4Z#=C?xRLVWELfuR)=Ew|`#0ehq`c!rx(v zoLya^V_wnYgM7nev$Noke&4M2JfV(vegAIp@=-lK+N3ZDJyxW8<@ z0?Lt!(9>0m>(&7=k;aFa_bS4CepfapMZTB2B4@u|ix<=?m1Tdl9*w{tMnV)bFjpM&x0tcfYHh8apRq%J!+C6MU8W^?m0cA;;(I4TNt=xAdf_y*(M8REKg(`TCvH?% za0p*InrJI{Z#|2;nCb3WTJ_amoDe-wPp$<-zd4;C$>s5S&7Z$Q_v;LTvx&U>HA@)5 z=k<5oggh({Sm*x(5M5-H#TPeD_V!yR`B`~+C*2^sQS;XoqFMxXP|==bz_{J!;t zg=WBpMLc9ZRoke%^2d7KGq3+>4sd?wL+TK42^p`8$uPb#1tg-sZ`pe-aDRUvScHRL zuC;xA?>lc-b{hp7N7f6nrYC(Gt1r^U1esYdWD<|_{%AU9AKakzhsY;#DP5L}F;8M3 znr$NhJ#8G|091v1OzaVwub`2Gfw-+4Als*wI>%0yzI%9>o0-x2mhR`{w{66`OAel2 zoIKjtz{SI|kwAmcTSB?-4S4g3|R>Q|73hAXggwp zU?M>rB`340r3t&|^uf)gRA%I+BXu+}zWrtJl_2 zzJw=k5lOO>p5eQyLH&?tkwx(6>y9Uo1FX>NQ~2k2JeOXlIFE8WJ(-t>^8UU z7{7kJmAS54&<0cRK-^SW5po-N0lxVuD;tFxlO zy(l5h>*|pI7WF@`DC0I6S32pjAz)9NiE z?``{uC`lHF42u>|A)7SfQ%o!>SR6;n_S3h1GfEI}oF%4EHinZh-nVtvaLqnRRx zeLiR3d-uKj#OLzIyVmQPPJTI_F~0TCNryludNdoUM3K=RD2Ea-mka?(Km z7A*S(-S8l%G9OT;wXDd<$Pr6xD=X;wJVk4Yvu{#A*>t6obQ=GvM3=~vf!@xyBb(oL z6%S5B!Ykwf zFrTT>FnvybvlvCVh!krDz4M{<8mx~<2Kv;OVc|=TR^#>sBft6<-@TL2;>|j{^q8e>X;<+0 z*(z6pt8lcO=wgchdo0!1JN0%6QojbwS;=p?d`>Zo9T*)*U0b8LPy0-k?s>Ke2DKqq zG?!wWobVVatm*?jY_q(3pcpv&4x zihS&Wr>JzuZ3a0KA!oA4(zFGG)F;l)e8fyuFEa}J`@eq07mXLQ7-Y#)X9<=Hxpljd zrYHSH>ged`jD4Axmhfj9>HO+!g`|NcN5NzXat)?iJve79VO@2vGIbvtUa`FkhxIuz29Esz`XnX(uRUdJ(|eDfvWF)+m22C!eONL^Pe+cscNX|1=v*cuDp=VkioCpS2 zp^{QmsDt(3ujuW$3Clcn&>eOGf*LHPuCCraJS<>6UYeWB@s4T^$oIw6cyl#hz&cB& z+%v1Iy#Xh@$8SB;RLT#ZvKr$<0xt9M=krD2BBVohRMR1%MomvI-sy;^E&n4PAHnxXBhlY1=VRgB2SlhB`rULx#o+hCS^WJ?z07oaE&%ujw)2P%l%+RThdXX#nJ zoi;-xV7Sa-t+}71-ad*7^_uhS98oC9$jPa&Wi#0+#io;ndF-WzvaY74)(aiY=fY;K zjz}dVNjDuGtMyhh4scOgFv@*v&$pC!dMPW*E&hqBd3btrF_dA<5^^q5xdLP57>=2v zqf@86_D`XqUoINrqeen?aF}aHaa$TTs#&be6k^dppH}6-y2&8YkiRD(E+T1 zrzhKrU|vhw+@CsMP{)myd#bD=!mlrtm7P^4yyAT}UbZTBlKX19t|Q*NHQ&<7X*V^N z-(hy7#wNa`WdBPv_xz+McU%79;h|Rb!8^$FY1vtv>u{NJ=xSrH`Jx}Cn=^G*k2l{H zx4c_oR#1E=Zi+DOfJ^+7k(K1UE-ByNj=VlaD&!~+ac8_c{2^a#b=lb?*Ofl++6M)J z*@aQ;dRKo~b@JS^xKVD9RGk=0hFfm%KAXvV#)QWzgY7h5-l6vU`zJ)R2{F%=cSbO} zkTt=z+qKsSef8<2?Ou42eL(tt`0#9PqAK)QY84&JL*ulcEmmRX_nM?>ej9+B*GaKd z2r^Wb&c0;%CltDeXLYz~o-5T=xS*x~WgjmyvkXIMM5G$n-HNpW@mo7OoU}>E$lB+( z$5-3+ULA;$FJAZ-HQ+2r9XLPdqK9o)X5b;2LjB9vqXv%HU!_wI5#i%Z)n zJ2=oj#-AooW@YWTiwfGy+a}Pq;P|qEqdT4cy@?~`+n3$d%MVINfl!%t->`V6Fr=!g z*^b^8sZwDPFC*@}GdI6$J#$HWOg&hj*)oGw@SGX5_3cpPa&3YxsC|@ol6A4sfBr9w z%m2hYdJ!-5U;Oy*ulE~4VfI`2WTzj<+k}H9?`XpeS417T-*;m+ON_N17>-Y0>c09UzMQcgJo0!lcd-Oj&5Nww=f`7UbQ5>$U9ds_9|QLP#0mX-ywZR1{QvWh zH@_W^5>NL$*+ji$4o8c}DU{6mv#b8n_QQ9dosDd3ZCz=pKHdY0(^+_Tr*C?CdVG1h z{$q}MS#Mh#4t4)<_Xarl*QRRX+e|va3Q5ey^5B8T^!Zs(VjAOj*SfB$n&M(-bW=bU zE9*T94;DT?=b_Fx&@TWOX=QCa3A1gYq(9iU9027F5<6ad%ZS<9zjLRSmmf6} z>vk_XBB--}KYaM`<4uans(RnEqwTIh)HP~CeEeL?!!1~ELg=6$2XGC_WSl~(MTs)# zE`aS@8!7lGBok+Bt!T*?t4JnR?X;{K+A`zn>5E5MZP;?FC3|xxpWoi?^rGa(O|nOb5xq<=&lMwM z4FLGz_sq}7dmCsJ_f0G=$--EC?IzjqRwFS>o3j&FZCIOnJUgQRx?}Ib3djGx$Kmmy-l=fJuWqDkKY$zi!UZ@-A*$d4BoF zkEo1+Oi;<2#qf~^P<;Q6ZVD>#(bUzo=8FXv!N-puV`F2r6CNR2jJN=9pPK`#rdgi) z_3Jptr8qEQUjJ~J8i{swbaV_FY~-+j-TF9y>b4Ow8xpW4*#=XQ5}-$O!BG zW18SJFHdL}D=LJRv9JtCh@d#;TUuMQMFx!+^epdUy?<*2u?A%lV0?=sdXr*y zN>ASBpm8_gX|Pn-_wU~8UiD?=?CrIalT(cd-e@_lXv?+nGT_xb)Pzj+l&SD7hjXXrVr>BJg?sdh1M#6Q zEQ}EJ5fom#+R+`x1=?)!{5F&MMs4m#$zSOnLQ_&0Ok45Lzx*L*`OzW)-Qh+(p5iwF zWx88-_mdJ6L5-6D%pb+-pMY17mcvN{=0?s>uIXer7#SMc`bYv0rK6$4LWJ`{JgMiP zbIc}Q$fXmAzy363I_XhMKBSU{hK7YjCfuZ)9QMdwLoRG&-Jd_NMB~{bf!dUC)6jTh zF}5T#zA+7WPg+_t@O48&Y6&XE#gL_A4UDP1%=LPXn$_VvuVZJ?cptdDjVM&tcWx83 zKl|X&5Ig{&2aD=3{-ABm6@B38ZK|&B?Ok2*@#Bak8$0{_*2v-h)CJS<+Gy|MEw9D^ zlvSHPtxs{+T_kb<@G!s%?*U{>OxZ{Md(_rwu&_8=tHc^8jr-~8 zKz-Yt%J!HR1&N)N!lilBwLZrJdOu=85l*Ecv8u(sR0p9_qqd0m*KRTqetyPpxv{?= z&+l_)kyBmn-Vu|QmZm6rR{G<|50jeE<(@Z9t!sXbe|<#G1lsZu)E={S!6TN%njkQn z*(^IxF?A%o8tEE`uS~uQGGyHko^usB{k2GA3faNpGr!GM}|v2 zc>?buJWkb*Z0Fje7Zw)Yym`}|%aNx(4!YLO$no^BurMSN6N&#Ae^nH~b*#&6!w1SMj99(C$VUK0a~Tf6xwA5b7*U%w7S#4Z0uyUk5HX;t`9 zQ*-!OGT{r_&@n6VEY;(~LpX1-^Mj=9Vj^nCt(le{5TlZC0%ne2Q?-|Zxj#R)%C`O6 zMdw8z4q*q?96T)T5Ts(tVL4SDx6C#cR$NzsQ_Q(0TMG<%1{ii;{18(JAD%10YQx9uri#dWm8p@ zS->PHC`e12^h`2;ovK7AD=VwQc}+Xd-UyyKPft&vM4qRU2|2Sg$T-RetiB>)xaHRX z{5;FrfzUGqNPWG_tYV>0-qSv%A2~Qr>BR9hZm>d!tele2%k~t4L7#nBBLn16J5(-2F0s&`oyrMD0|3sNkIs_tU5)x{w zb4$|@)D2gK9Pi6rTuKnHfG--vgt6^q4eM3sXSw?IJft0yvPFEzuS!e}cH^d8BX~a= z4W{i2;*H5&zQWT7sWvxmfTJm0WwhkMEkBM*{+hUmLDe{gXZT1dI{R65yQ?q|Vm?Ot z`W_u0yZ8|877Fi?7qSDY!x=3{;tN6)05$IhG=2N_O?PE+cb+su&0eG<@U;+m-!}m} z8d_RfQBiLYG#nfs!%!%+U-uy-g@91t9i6nig#`#dWE~13OG7B2J$za(Uxw@EKoG-i|0h`Q zFP55z^z@)sWMF8@E9gykek~M8Ir6N$yz6m-iv1mj)#TCW)6Bfo`)te^nK^jZuagQH zgQ45f!UEtcZMAz#!&oIS?8nMe;k&xKj}rSLeQ964!*dNSEr0yKo33y(F0|+sqmKi@<%j@<&DqB3 zzBVm`h=^BXYq)z{=bv2ci&qy$ywlgeRG8>)VaxaJ>GrJE5N5xE%5l-)F)^8*Ah9Rn zCE32yL0PP(6A)0R!Y2uMS}@WcK!3TDS0%?$Ci!{Cw}+u!^Cm_{;JRJsiw!`bL2WmD zyI)0Z*-_BN#idMJS6O2OP!cu0u7QF=O)Ik!=|5?rg{HMtW~k&j5Jnmr(jhZDce!DxM=IId zZ^1(fm%!)#+>&FtkJ#x>M)(6t^&0OW36Z?at(B3gG2;Sgcu);Zg5D}B>cjp0AQ2#9 zQU878fnqdQV^>#~L7qUi6Ru>Ea1d!baDn zLk0#0c6WD6a&(ScQ{*{1>&twX!WA|TPc#Zl*flGo?yW&3g!fT59fatxkPi-m%^7sh z^6sU!)8YmOG=XTK3IcE3cn058C%=OwheMmdoJ47u_H@ts{=cnHKJHRt&|L`2nRqZWvSf{~F>2Kif`pJ-nh&yyLjmbkXJzV7PjeYE+^ z$H%8gvkLN1{6|>uuXEzIRoPC1!g9qstgNq{Ks;3;4i;%TMn-n^+#jWB&67dteT&W~ zN6SmR7EleQ+>fm?2U>R($i$pifIc3->1+f&xu2gO5GpXn=oDK*{+2LBPEoSadbQWf z@bE@S$$IqP!EBuh`&k(Xx#MWhdyOjn9;(nLr%V`xN;139{J=u2KRwOneP3Jdr&)Pn z;SNZ_;I$FywZ2wXO#mapM9CC9xeGatJYh@W(567w4(*NhzC5sDjFdj(*5f~Z6%tY# z@f0?uiZ+J57W13o{@R6z9v^zlGSrq5BfiNn9Fk9!We(D z)2B!p;M+BS8&g?BdGpL;o&2FaQdUV>S-)W9Lf7h=4bjO^n3o#6e$b+_ITMtI*Is0I zKt=;EX@?>_^zbFaK~b+=zE>p$SoqQ+M|pq8S$}$=q_nY=B41Wk#?p3OlIDGFuFd+S z%cNWCM5WZw{yY7s_3G1zdsAAuuil~~?Pr>UT_(LN@)O_T2x?~SMe2DU!g0lYzr_%` z7{EU{T;ambul0%QQ^?=HL%JSW@HwLqJh77vxP00s?`mHiSV7>E&ry0T*9*c6AiM_d z>LQBLV<*`*RM2^Kv}k+1Chq$`*OWjUj>)F#&=@*K2M6vQHNm>Sw_gacRsAI^Kk@Zw z%xBrhYs*hdF6#;J02kH|+WXff5c-klcAok}W~(Ml10WE6mHV#*PUa{;zKz zYH%RCuNX|%`GO>4CcOcP6i4(3W+toJu$cG6S>^JPU{$;UBh&;H3PO!%_~@lV`p@pB zBEK+(Z6XO|O72pZx0lbwCF65m!gz1W@j98M1LdHPSr;eFp&By7D!pNTK&|Id>5eap z1J*AB<{}%tLH@fQ8WS%j2^Z`f1ngH^MiKQ5oD`po<>_NCi9Nx1vy7>LFR>C`lFvg4 zUoWE5X7%(FONWWlbzF?n+8g3kAzOrp;{@~O0b4SEOG{E0G9Mbc-0kP6f zraxZO&)#1WSOR+M+2q4ccC*tpVjRs@0&$3D9{SiwOGBgUI_-vs7ZfMtvN~CHkDAAQ zXQ8lAC0J^hy<)pt0*?lHMDpNqOdF=#;eH&*(bzXc?A*p%n`hdPj_2axj0WT|rE!T@;ODYPCX zHwWLaj!t@t@Y-rYeY{Ejw{G*7MnMF-UWO7=YinzX<%m0ACn)*bn0cOu`Jl7>)EH9C zw+fZ+{CMhI*UnRLOcnC-s$K~Mg4OBlXgLrX`CzT9sLf{-ZmxAmN8bdWqs4i6WA!S~ z_(Vj`>s9+to<8m6i3<%q1#q62hzO1hv_KAZ$W53zfBe{hdwL(zN)W8-9AfnJhd_Ai zRk=I4x~cq!;`m zQTe`ARgjGM>`&}-aVd=A^@QCIHR5u6{hBtu3%!>ZOZ&TQ{(A+?)uR8P`;pSS`xOT`0iGp%729m60Z3yu$`Yt;IMB3TzebBJ)L;}e zG(;+-y2y186jONZ5M;jsawI~kp}IP9{z`kC5F^aR{QH+5)pzj8`JP05{o~Ji= zu_JJByv`2iDcu*|rlia@HTi;jqGUY3d)JWmDP8izu6z{EH*bIJT9#WPW%OvLcHr=yL6R&iy^kyjw2ZSK^yyK zED4E3rha#~A1}>=n2hRbP+hP-d>Gxv3?gA>=6qO(G9Ba?LZ3c+#;#ZG*by^8Cv8wg zdWfku@M!2knJh`%5`$9tcR#3^L8xU>d0X2JIQiC>g793Bl9BBIY3+5iXo5(H)Ey-u zCMKq&beU@(p_h%&9p`y$IeFsuJpETzmej`Ee?O<`d%)yS#V=*}r=Jucqy+0yh6OCe|rw1|5MzqP+Fh5zD@PvUaU>^Y%g5z zCHRVt)j;$TA^}g-wX3hMucO0jI9Fd3*aNgioN=vccj1so-}?dcQ-JQ zcpvBkpvVj)din9X&mTBBL;?U$AAEgr?-9jCM#hJQ!9?M@qypdux1b0LUtB-|^XgTo zkaJ*3D9eBU>dlQU-au}NCVE%ND%X|Us1Fm@WQJhee7G7Z>@fGM%8Ac%7}5qx;Ozq3 zkQyl!^4m_Bj&7$ty1=~19UfP315i+`U4Ba?RulSA5CB*Z=6H&pLt5(-gg(hF1SV92 zzzcV;dIX$4%BEtqSj1!RWTW0WTjIBJ>KOC=`_WuRTOhr(ci1krnetxfo=rLZfJ0nL z=>Yg%$5SEWWDpj4d4UN1CWUYV>-3x~cwY^zDSx;|$-6t>2xPYFP_6i6~ zdFpfBtEzwfszjfaN3rno8l9aSa&mG)+#p>`U?we+hcqiSl~J6Dk1rxIt-ZZ3aMkEI zVR;GRn30%BBPK>k-QV5ay_RcRx)unF!_h$+gt+PG#PzYlbbbxC%6Ni+=I-9*SzcHZ>9Y!M z<+nLiNe1`Tg@@tjn!Mop_xGK^lsRK`&Ajynq<#OI6(8-*+f)giai{J~t(W0VOptI+`(HjxWyBVagMk z^PsI+zzsaw;OKZlL(rDLH#w}(#hIs$yin#YPoeRSdLE%vn^o>bVsq%)!_E!_eONnal$i*DrttathB^P>sm;o;%*j6njx@?O*>*6FA1 z@o;dT6Tf@yjew_s8mXG4Ik30{jw358&Cr$;=wF6?>Q~Eu-9$Im2?nC`WP*Pt0itzaI23HLw4ItodF*Q?jg0tbkpjOtNN?`7AUt z&2bF^fe*r4fBg6zsW(Xib*nTYHr9T$FufKwKe=<~;lp{DOCcFu8M25A3k!#I$99@& zg9I3=w>zB_MRuP6q^QKC!bHd;e-C$czYtxF6rYx5x6&>$PX<%<{{C&m0gw)+JZ1Kn z;B5tpWApcwW$^bvq35&q)Q1=RLJkG`bf|e|xb+Pu za(!~=Nfg)bMp2oG5iDYU@Rro**Tce6Oby%{E9(uYR69_s$x&J>T-=I2dn5BOS)4)G z01fh&>M~Rwn3ACjST8M|RutY8sOJFx56DXmHXCCW!3Yw`qH!@3!xX%ehdMiiXSTGg zOdkAJgTFLb+W2^QtS3*>(G2PlC zgw7W@j{AgLP*t3K0-aW1rzBDqQO+Xt^T9mW8REwN=l{N~Owxl`yO}CSb(E|Nop8^4 z>9(oX@g-p;Fm3t4SJ z3kJq}Yy2i>!FMK;mocz@4dcyY&W5I1zzmxIWd!{{N&Q=MtovIthCa9=URULH za!1DHtr8NS>+X##R(Yp^JF|^fHRWaFOJK(?FRteOqwtpS`e$EYtCS@Md1-y?z4X@? zpnz9@q{r#4i@Cqpifixe5}v+tJ!8kW9LN0?(dga|S{jB)({6tLLA|&u5Dr8A2a|Kh zz{t|Td~0Dxp{*Y*58iL7aqIhsRCPZ5^MQ*?+c~VD-oJqi;}p?(Ky4%k|Ni(s2gV;P zenj4L2DOxcik35H^CPB&H&ZVS65fc>dxf1^jh4n5+Ry%uyjv=jr3%I=ueM0`dn@lS zy1THbRc}&q_Ubmq#fX~A9HmvLu`lsxU%z?+{}Ka#w3KY?r$4+wK&vw~2uY!5XU8_s z$&nLR@ANi_ouAM`r}AgNiZXyg#2giA**m&`F48`JK{{SBT`%nUQFZz%U z!1?+3ie0pTkUBqJ&JhC{_BG+SkzoMK?s5y8@>}aKhl9OQXK; zQCzES@9PtPnET;_9nl;VdVte1bV%Td0FL@j*Tw*v0g(1Xu4q|xqiDvz!veaD7=M`W zE*yqmqMi=431Ha%81K{8*Z?PXw6P8UpSzq(X_Q#dIK<(o;T2{1V`x%pJP%u!E&X9} z1oF0~FY@1x4etLK>mmsofjI0`#uj?^IUMFl5WkU;ld}?j*3{DSIbJP+nNtBOSx=%C z6z~d=k+XHQhCc|R6stCBQ!Uc;>Jo7YBH^qv;9Q6KGAT$D2z&+ZCx{7$u8FlZYmfak z7_-A`YJ8NHd*Hgr$hM7!n?PBFI|YJR$b*E6B;t8stE2?&jA&XBV%y&jO=AbR&)=uWr*LBO%UUge?~ z^%Zna?d>NENkM?zga6?@UUpZzFzYS9xz0FRe8m3B$Tk#Nu=YBGhTT)t=HvkKs+ILT zH$SM38BYOlu3haplBS&0Z+@pf7sjsj%54SIL>?`|;Bd2v6OQpC{B=MQ@PuA^ zC6`}eGW-v9_>P6M;f{uK#*!!HXsxz zRl$gXF~}7X4yqv86M9~N4!((cjaItx1OG5?-&VIh-$nV*-Vpj6ptjhai-F%2I(``J zjWrn9*gA)XQYRjR6aw?{$?=q8YH~7#kaN2!PrzO7Ce*VkSe3;SIE00TMMWu4o7?m3 z2micZ;B+X?SlZfQdG}iq^0Jz%B`GO)A+v>x>wUpn=1NprF(Jj#!s%0DQXQYru_XW(Ljq{MPoiNk`0ua^!w^tJPRF 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 bbLlhLa_N;KBQpyeZo-4Zlw=E`AN>9o&nO0i literal 0 HcmV?d00001 diff --git a/apps/guide/public/assets/bot-in-memberlist.png b/apps/guide/public/assets/bot-in-memberlist.png new file mode 100644 index 0000000000000000000000000000000000000000..730ed8a97a5a3e67990168adff558be1d6538f32 GIT binary patch literal 6781 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 MOIuWpIsW>;07kLO^#A|> literal 0 HcmV?d00001 diff --git a/apps/guide/public/assets/create-app.png b/apps/guide/public/assets/create-app.png new file mode 100644 index 0000000000000000000000000000000000000000..ec96f3d4c777433fe55d5ebcb83873fbbd397869 GIT binary patch literal 66069 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 literal 0 HcmV?d00001 diff --git a/apps/guide/src/content/02-creating-your-bot/01-initial-files.mdx b/apps/guide/src/content/02-creating-your-bot/01-initial-files.mdx deleted file mode 100644 index 67d9bcf47..000000000 --- a/apps/guide/src/content/02-creating-your-bot/01-initial-files.mdx +++ /dev/null @@ -1,231 +0,0 @@ ---- -title: Initial files -category: Creating your bot ---- - -# Initial files - -Once you [add your bot to a server](preparations/adding-your-bot-to-servers.md), the next step is to start coding and get it online! Let's start by initializing your package.json, creating a config file for your client token, and a main file for your bot application. - -## Creating package.json - -This command creates a _`package.json`_ file for you, which will keep track of the dependencies your project uses, as well as other information. - - - -```sh npm -npm init -y; npm pkg set type="module" -``` - -```sh yarn -yarn add dotenv -# You must go into your package.json file and add "type": "module" -``` - -```sh pnpm -pnpm init; pnpm pkg set type="module" -``` - - - -Once you're done with that, onto the next step! - -## Using config.json - -As explained in the ["What is a token, anyway?"](preparations/setting-up-a-bot-application.md#what-is-a-token-anyway) section, your token is essentially your bot's password, and you should protect it as best as possible. This can be done through a _`config.json`_ file or by using environment variables. - -Open your application in the [Discord Developer Portal](https://discord.com/developers/applications) and go to the "Bot" page to copy your token. - -Storing data in a _`config.json`_ file is a common way of keeping your sensitive values safe. Create a _`config.json`_ file in your project directory and paste in your token. - - - -```json config.json -{ - "token": "your-token-goes-here" -} -``` - - - -You can then access your token inside other files by using _`import`_. - - - -```ts -import config from './config.json' assert { type: 'json' }; - -console.log(config.token); -``` - - - - - If you're using Git, you should not commit this file and should [ignore it via - _`.gitignore`_](/creating-your-bot/#git-and-gitignore). - - -### Using environment variables - -Environment variables are special values for your environment (e.g., terminal session, Docker container, or environment variable file). You can pass these values into your code's scope so that you can use them. - -One way to pass in environment variables is via the command line interface. When starting your app, instead of _`node index.js`_, use _`TOKEN=your-token-goes-here node index.js`_. You can repeat this pattern to expose other values as well. - -You can access the set values in your code via the _`process.env`_ global variable, accessible in any file. Note that values passed this way will always be strings and that you might need to parse them to a number, if using them to do calculations. - - - -```shellscript Command line -A=123 B=456 DISCORD_TOKEN=your-token-goes-here node index.js -``` - ---- - -```js Usage -console.log(process.env.A); -console.log(process.env.B); -console.log(process.env.DISCORD_TOKEN); -``` - - - -#### Using dotenv - -Another common approach is storing these values in a _`.env`_ file. This spares you from always copying your token into the command line. Each line in a _`.env`_ file should hold a _`KEY=value`_ pair. - -You can use the [_`dotenv`_ package](https://www.npmjs.com/package/dotenv) for this. Once installed, preload the package to load your _`.env`_ file and attach the variables to _`process.env`_: - -##### Installing dotenv - - - -```sh npm -npm install dotenv -``` - -```sh yarn -yarn add dotenv -``` - -```sh pnpm -pnpm add dotenv -``` - - - -##### Defining your variables - - - -```text .env -A=123 -B=456 -DISCORD_TOKEN=your-token-goes-here -``` - - - - - If you're using Git, you should not commit this file and should [ignore it via - _`.gitignore`_](/creating-your-bot/#git-and-gitignore). - - -##### Utilizing your variables - - - -```sh node -node --require dotenv/config yourFile.js -``` - -```sh yarn -yarn node --require dotenv/config yourFile.js -``` - ---- - -```ts yourFile -console.log(process.env.A); // 123 -console.log(process.env.B); // 456 -console.log(process.env.DISCORD_TOKEN); // your-token-goes-here -``` - - - -
-While we generally do not recommend using online editors as hosting solutions, but rather invest in a proper virtual private server, these services do offer ways to keep your credentials safe as well! Please see the respective service's documentation and help articles for more information on how to keep sensitive values safe: - -- Glitch: [Storing secrets in .env](https://glitch.happyfox.com/kb/article/18) -- Heroku: [Configuration variables](https://devcenter.heroku.com/articles/config-vars) -- Replit: [Secrets and environment variables](https://docs.replit.com/repls/secrets-environment-variables) - -
- -### Git and .gitignore - -Git is a fantastic tool to keep track of your code changes and allows you to upload progress to services like [GitHub](https://github.com/), [GitLab](https://about.gitlab.com/), or [Bitbucket](https://bitbucket.org/product). While this is super useful to share code with other developers, it also bears the risk of uploading your configuration files with sensitive values! - -You can specify files that Git should ignore in its versioning systems with a _`.gitignore`_ file. Create a _`.gitignore`_ file in your project directory and add the names of the files and folders you want to ignore: - - - -``` -node_modules -.env -config.json -``` - - - - - Aside from keeping credentials safe, _`node_modules`_ should be included here. Since this directory can be restored - based on the entries in your _`package.json`_ and _`package-lock.json`_ files by running _`npm install`_, it does not - need to be included in Git. You can specify quite intricate patterns in _`.gitignore`_ files, check out the [Git - documentation on _`.gitignore`_](https://git-scm.com/docs/gitignore) for more information! - - -## Creating the main file - -Open your code editor and create a new file. We suggest that you save the file as _`index.ts`_, or _`index.js`_, depending on whether you use TypeScript. You may name it whatever you wish, however. - -Here's the base code to get you started: - - - -```ts index.ts -// Import the necessary structures. -import { Client, Events, GatewayIntentBits } from 'discord.js'; -import config from './config.json'; - -// Create a new client instance. -const client = new Client({ intents: GatewayIntentBits.Guilds }); - -// When the client is ready, run this code (only once). -client.once(Events.ClientReady, () => { - console.log('Ready!'); -}); - -// Log in to Discord with your client's token. -client.login(config.token); -``` - - - -This is how you create a client instance for your Discord bot and login to Discord. The _`GatewayIntentBits.Guilds`_ intents option is necessary for your client to work properly, as it ensures that the caches for guilds, channels and roles are populated and available for internal use. - -Intents also define which events Discord should send to your bot, and you may wish to enable more than just the minimum. You can read more about the other intents on the [Intents topic](popular-topics/intents). - -Open your terminal, compile your code (JavaScript users do not do this), and run _`node index.js`_ to start the process. If you see "Ready!" after a few seconds, you're good to go! - - - You can open your _`package.json`_ file and edit the _`"main": "index.js"`_ field to point to your main file. You can - then run _`node .`_ in your terminal to start the process! After closing the process with ⌃ Control{' '} - C, you can press on your keyboard to bring up the latest commands you've run. Pressing{' '} - then ⏎ Enter after closing the process is a quick way to start it up again. - - -## Resulting code - - - -Code is indeed a result of code. That being said, it's being worked on. With code. Definitely. diff --git a/apps/guide/src/content/02-creating-your-bot/02-creating-commands.mdx b/apps/guide/src/content/02-creating-your-bot/02-creating-commands.mdx deleted file mode 100644 index 67a3ac70e..000000000 --- a/apps/guide/src/content/02-creating-your-bot/02-creating-commands.mdx +++ /dev/null @@ -1,246 +0,0 @@ ---- -title: Creating commands -category: Creating your bot ---- - -# Creating commands - - - This page is a follow-up and bases its code on [the previous page](/creating-your-bot/). - - - - - Pong! - - - -Discord allows developers to register [slash commands](https://discord.com/developers/docs/interactions/application-commands), which provide users a first-class way of interacting directly with your application. Before being able to reply to a command, you must first register it. - -## Registering commands - -This section will cover only the bare minimum to get you started, but you can refer to our [in-depth page on registering slash commands](/interactions/slash-commands.md#registering-slash-commands) for further details. It covers guild commands, global commands, options, option types, and choices. - -### Command deployment script - -Create a _`deploy-commands.js`_ file in your project directory. This file will be used to register and update the slash commands for your bot application. - -Since commands only need to be registered once, and updated when the definition (description, options etc) is changed, it's not necessary to connect a whole client to the gateway or do this on every _`ready`_ event. As such, a standalone script using the lighter REST manager is preferred. - -Below is a deployment script you can use. Focus on these variables: - -- _`clientId`_: Your application's client id -- _`guildId`_: Your development server's id -- _`commands`_: An array of commands to register. The [slash command builder](/popular-topics/builders.md#slash-command-builders) from _`discord.js`_ is used to build the data for your commands - - - In order to get your application's client id, go to [Discord Developer - Portal](https://discord.com/developers/applications) and choose your application. Find the id under "Application ID" - in General Information subpage. To get guild id, open Discord and go to your settings. On the "Advanced" page, turn on - "Developer Mode". This will enable a "Copy ID" button in the context menu when you right-click on a server icon, a - user's profile, etc. - - - - -```js deploy-commands.js mark=4,6:10 -const { REST, SlashCommandBuilder, Routes } = require('discord.js'); -const { clientId, guildId, token } = require('./config.json'); - -const commands = [ - new SlashCommandBuilder().setName('ping').setDescription('Replies with pong!'), - new SlashCommandBuilder().setName('server').setDescription('Replies with server info!'), - new SlashCommandBuilder().setName('user').setDescription('Replies with user info!'), -].map((command) => command.toJSON()); - -const rest = new REST({ version: '10' }).setToken(token); - -rest - .put(Routes.applicationGuildCommands(clientId, guildId), { body: commands }) - .then((data) => console.log(`Successfully registered ${data.length} application commands.`)) - .catch(console.error); -``` - ---- - -```json config.json mark=2:3 -{ - "clientId": "123456789012345678", - "guildId": "876543210987654321", - "token": "your-token-goes-here" -} -``` - - - -Once you fill in these values, run _`node deploy-commands.js`_ in your project directory to register your commands to a single guild. It's also possible to [register commands globally](/interactions/slash-commands.md#global-commands). - - - You only need to run `node deploy-commands.js` once. You should only run it again if you add or edit existing - commands. - - -## Replying to commands - -Once you've registered your commands, you can listen for interactions via in your _`index.js`_ file. - -You should first check if an interaction is a chat input command via _`.isChatInputCommand()`_, and then check the _`.commandName`_ property to know which command it is. You can respond to interactions with _`.reply()`_. - - - -```js mark=5:16 -client.once('ready', () => { - console.log('Ready!'); -}); - -client.on('interactionCreate', async (interaction) => { - if (!interaction.isChatInputCommand()) return; - const { commandName } = interaction; - if (commandName === 'ping') { - await interaction.reply('Pong!'); - } else if (commandName === 'server') { - await interaction.reply('Server info.'); - } else if (commandName === 'user') { - await interaction.reply('User info.'); - } -}); -client.login(token); -``` - - - -### Server info command - -Note that servers are referred to as "guilds" in the Discord API and discord.js library. _`interaction.guild`_ refers to the guild the interaction was sent in (a instance), which exposes properties such as _`.name`_ or _`.memberCount`_. - - - -```js focus=7 -client.on('interactionCreate', async (interaction) => { - if (!interaction.isChatInputCommand()) return; - const { commandName } = interaction; - if (commandName === 'ping') { - await interaction.reply('Pong!'); - } else if (commandName === 'server') { - await interaction.reply(`Server name: ${interaction.guild.name}\nTotal members: ${interaction.guild.memberCount}`); - } else if (commandName === 'user') { - await interaction.reply('User info.'); - } -}); -``` - - - - - -

Server name: discord.js Guide

-

Total members: 2

-
-
- -You could also display the date the server was created, or the server's verification level. You would do those in the same manner – use _`interaction.guild.createdAt`_ or _`interaction.guild.verificationLevel`_, respectively. - - - Refer to the documentation for a list of all the available properties and - methods! - - -### User info command - -A "user" refers to a Discord user. _`interaction.user`_ refers to the user the interaction was sent by (a instance), which exposes properties such as _`.tag`_ or _`.id`_. - - - -```js focus=9 -client.on('interactionCreate', async (interaction) => { - if (!interaction.isChatInputCommand()) return; - const { commandName } = interaction; - if (commandName === 'ping') { - await interaction.reply('Pong!'); - } else if (commandName === 'server') { - await interaction.reply(`Server name: ${interaction.guild.name}\nTotal members: ${interaction.guild.memberCount}`); - } else if (commandName === 'user') { - await interaction.reply(`Your tag: ${interaction.user.tag}\nYour id: ${interaction.user.id}`); - } -}); -``` - - - - - -

Your tag: User#0001

-

Your id: 123456789012345678

-
-
- - - Refer to the documentation for a list of all the available properties and - methods! - - -And there you have it! - -## The problem with if/else if - -If you don't plan on making more than a couple commands, then using an _`if`_/_`else if`_ chain is fine; however, this isn't always the case. Using a giant _`if`_/_`else if`_ chain will only hinder your development process in the long run. - -Here's a small list of reasons why you shouldn't do so: - -- Takes longer to find a piece of code you want; -- Easier to fall victim to [spaghetti code](https://en.wikipedia.org/wiki/Spaghetti_code); -- Difficult to maintain as it grows; -- Difficult to debug; -- Difficult to organize; -- General bad practice. - -Next, we'll be diving into something called a "command handler" – code that makes handling commands easier and much more efficient. This allows you to move your commands into individual files. - -## Resulting code - - diff --git a/apps/guide/src/content/02-installations-and-preparations/01-installing-node-discordjs.mdx b/apps/guide/src/content/02-installations-and-preparations/01-installing-node-discordjs.mdx new file mode 100644 index 000000000..b35c3700c --- /dev/null +++ b/apps/guide/src/content/02-installations-and-preparations/01-installing-node-discordjs.mdx @@ -0,0 +1,102 @@ +--- +title: Installing Node.js and discord.js +category: Installations and preparations +--- + +# Installing Node.js and discord.js + +## Installing Node.js + +To use discord.js, you'll need to install [Node.js](https://nodejs.org/). discord.js v14 requires Node v16.9.0 or higher. + + + To check if you already have Node installed on your machine \(e.g., if you're using a VPS\), run _`node -v`_ in your + terminal. If it outputs _`v16.9.0`_ or higher, then you're good to go! Otherwise, continue reading. + + +On Windows, it's as simple as installing any other program. Download the latest version from [the Node.js website](https://nodejs.org/), open the downloaded file, and follow the steps from the installer. + +On macOS, either: + +- Download the latest version from [the Node.js website](https://nodejs.org/), open the package installer, and follow the instructions +- Use a package manager like [Homebrew](https://brew.sh/) with the command _`brew install node`_ + +On Linux, you can consult [this page](https://nodejs.org/en/download/package-manager/) to determine how you should install Node. Native package managers often default to outdated versions of Node, so make sure you follow the recommended approach for your chosen Linux distribution carefully. + +## Preparing the essentials + +To use discord.js, you'll need to install it via npm \(Node's package manager\). npm comes with every Node installation, so you don't have to worry about installing that. However, before you install anything, you should set up a new project folder. + +Navigate to a suitable place on your machine and create a new folder named _`discord-bot`_ (or whatever you want). Next you'll need to open your terminal. + +### Opening the terminal + + + If you use [Visual Studio Code](https://code.visualstudio.com/), you can press Ctrl + ` (backtick) to open + its integrated terminal. + + +On Windows, either: + +- Shift + Right-click inside your project directory and choose the "Open command window here" option +- Press Win + R and run _`cmd.exe`_, and then _`cd`_ into your project directory + +On macOS, either: + +- Open Launchpad or Spotlight and search for "Terminal" +- In your "Applications" folder, under "Utilities", open the Terminal app + +On Linux, you can quickly open the terminal with Ctrl + Alt + T. + +With the terminal open, run the _`node -v`_ command to make sure you've successfully installed Node.js. If it outputs _`v16.9.0`_ or higher, great! + +### Initiating a project folder + + + +```sh npm +npm init; npm pkg set type="module" +``` + +```sh yarn +yarn init +# You must go into your package.json file and add "type": "module" +``` + +```sh pnpm +pnpm init; pnpm pkg set type="module" +``` + + + +This is the next command you'll be running. This command creates a _`package.json`_ file for you, which will keep track of the dependencies your project uses, as well as other info. + +This command will ask you a sequence of questions–you should fill them out as you see fit. If you're not sure of something or want to skip it as a whole, leave it blank and press enter. Setting the package type as _`module`_ tells Node that you'll be writing this project using ESM \(ECMAScript modules\), supporting the latest JavaScript syntax and features. + +Once you're done with that, you're ready to install discord.js! + +## Installing discord.js + +Now that you've installed Node.js and know how to open your console and run commands, you can finally install discord.js! Run the following command in your terminal: + + + +```sh npm +npm install discord.js +``` + +```sh yarn +yarn add discord.js +``` + +```sh pnpm +pnpm add discord.js +``` + + + +And that's it! With all the necessities installed, you're almost ready to start coding your bot. + +## Installing a linter + +While you are coding, it's possible to run into numerous syntax errors or code in an inconsistent style. You should [install a linter](./setting-up-a-linter) to ease these troubles. While code editors generally can point out syntax errors, linters coerce your code into a specific style as defined by the configuration. While this is not required, it is advised. diff --git a/apps/guide/src/content/02-installations-and-preparations/02-setting-up-a-linter.mdx b/apps/guide/src/content/02-installations-and-preparations/02-setting-up-a-linter.mdx new file mode 100644 index 000000000..4ad884c5d --- /dev/null +++ b/apps/guide/src/content/02-installations-and-preparations/02-setting-up-a-linter.mdx @@ -0,0 +1,6 @@ +--- +title: Setting up a linter +category: Installations and preparations +--- + +TODO: Rewrite. Placeholder page for ordering. diff --git a/apps/guide/src/content/02-installations-and-preparations/03-setting-up-a-bot-application.mdx b/apps/guide/src/content/02-installations-and-preparations/03-setting-up-a-bot-application.mdx new file mode 100644 index 000000000..2a581cec3 --- /dev/null +++ b/apps/guide/src/content/02-installations-and-preparations/03-setting-up-a-bot-application.mdx @@ -0,0 +1,61 @@ +--- +title: Setting up a bot application +category: Installations and preparations +--- + +# Setting up a bot application + +## Creating your bot + +Now that you've installed Node, discord.js, and hopefully a linter, you're almost ready to start coding! The next step you need to take is setting up an actual Discord bot application via Discord's website. + +It's effortless to create one. The steps you need to take are as follows: + +1. Open the [Discord developer portal](https://discord.com/developers/applications) and log into your account. +2. Click on the "New Application" button. +3. Enter a name and confirm the pop-up window by clicking the "Create" button. + +You should see a page like this: + +![Successfully created application](/assets/create-app.png) + +You can edit your application's name, description, and avatar here. Once you've saved your changes, move on by selecting the "Bot" tab in the left pane. + +## Your bot's token + + + This section is critical, so pay close attention. It explains what your bot token is, as well as the security aspects + of it. + + +On the bot tab, you'll see a section like this: + +![Bot application](/assets/bot-user.png) + +In this panel, you can give your bot a snazzy avatar, set its username, and make it public or private. Your bot's token will be revealed when you press the "Reset Token" button and confirm. When we ask you to paste your bot's token somewhere, this is the value that you need to put in. If you happen to lose your bot's token at some point, you need to come back to this page and reset your bot's token again which will reveal the new token, invalidating all old ones. + +### What is a token, anyway? + +A token is essentially your bot's password; it's what your bot uses to login to Discord. With that said, **it is vital that you do not ever share this token with anybody, purposely or accidentally**. If someone does manage to get a hold of your bot's token, they can use your bot as if it were theirs—this means they can perform malicious acts with it. + +Tokens look like this: _`NzkyNzE1NDU0MTk2MDg4ODQy.X-hvzA.Ovy4MCQywSkoMRRclStW4xAYK7I`_ (don't worry, we immediately reset this token before even posting it here!). If it's any shorter and looks more like this: _`kxbsDRU5UfAaiO7ar9GFMHSlmTwYaIYn`_, you copied your client secret instead. Make sure to copy the token if you want your bot to work! + +### Token leak scenario + +Let's imagine that you have a bot on over 1,000 servers, and it took you many, many months of coding and patience to get it on that amount. Your bot's token gets leaked somewhere, and now someone else has it. That person can: + +- Spam every server your bot is on; +- DM spam as many users as possible; +- Delete as many channels as possible; +- Kick or ban as many server members as possible; +- Make your bot leave all of the servers it has joined; + +All that and much, much more. Sounds pretty terrible, right? So make sure to keep your bot's token as safe as possible! + +In the [configuration files](../creating-your-bot/configuration-files) page of the guide, we cover how to safely store your bot's token in a configuration file. + + + If your bot token has been compromised by committing it to a public repository, posting it in discord.js support etc. + or otherwise see your bot's token in danger, return to this page and press "Reset Token". This will invalidate all old + tokens belonging to your bot. Keep in mind that you will need to update your bot's token where you used it before. + diff --git a/apps/guide/src/content/02-installations-and-preparations/04-adding-your-bot-to-servers.mdx b/apps/guide/src/content/02-installations-and-preparations/04-adding-your-bot-to-servers.mdx new file mode 100644 index 000000000..c5144ed13 --- /dev/null +++ b/apps/guide/src/content/02-installations-and-preparations/04-adding-your-bot-to-servers.mdx @@ -0,0 +1,52 @@ +--- +title: Adding your bot to servers +category: Installations and preparations +--- + +# Adding your bot to servers + +After you [set up a bot application](./setting-up-a-bot-application), you'll notice that it's not in any servers yet. So how does that work? + +Before you're able to see your bot in your own (or other) servers, you'll need to add it by creating and using a unique invite link using your bot application's client id. + +## Bot invite links + +The basic version of one such link looks like this: + + + +``` +https://discord.com/api/oauth2/authorize?client_id=123456789012345678&permissions=0&scope=bot%20applications.commands +``` + + + +The structure of the URL is quite simple: + +- _`https://discord.com/api/oauth2/authorize`_ is Discord's standard structure for authorizing an OAuth2 application (such as your bot application) for entry to a Discord server. +- _`client_id=...`_ is to specify _which_ application you want to authorize. You'll need to replace this part with your client's id to create a valid invite link. +- _`permissions=...`_ describes the permissions that your bot will request to be granted by default upon joining the server you are adding it to. +- _`scope=bot%20applications.commands`_ specifies that you want to add this application as a Discord bot, with the ability to create slash commands. + + + If you get an error message saying "Bot requires a code grant", head over to your application's settings and disable + the "Require OAuth2 Code Grant" option. You shouldn't enable this option unless you know why you need to. + + +## Creating and using your invite link + +To create an invite link, head back to the [My Apps](https://discord.com/developers/applications/me) page under the "Applications" section, click on your bot application, and open the OAuth2 page. + +In the sidebar, you'll find the OAuth2 URL generator. Select the _`bot`_ and _`applications.commands`_ options. Once you select the _`bot`_ option, a list of permissions will appear, allowing you to configure the permissions your bot needs. + +Grab the link via the "Copy" button and enter it in your browser. You should see something like this (with your bot's username and avatar): + +![Bot Authorization page](/assets/bot-auth-page.png) + +Choose the server you want to add it to and click "Authorize". Do note that you'll need the "Manage Server" permission on a server to add your bot there. This should then present you a nice confirmation message: + +![Bot authorized](/assets/bot-authorized.png) + +Congratulations! You've successfully added your bot to your Discord server. It should show up in your server's member list somewhat like this: + +![Bot in server's member list](/assets/bot-in-memberlist.png) diff --git a/apps/guide/src/content/03-creating-your-bot/01-configuration-files.mdx b/apps/guide/src/content/03-creating-your-bot/01-configuration-files.mdx new file mode 100644 index 000000000..8f0f0ca9d --- /dev/null +++ b/apps/guide/src/content/03-creating-your-bot/01-configuration-files.mdx @@ -0,0 +1,132 @@ +--- +title: Configuration files +category: Creating your bot +--- + +# Configuration files + +Once you [add your bot to a server](../installations-and-preparations/adding-your-bot-to-servers), the next step is to start coding and get it online! Let's start by creating a config file to prepare the necessary values your client will need. + +As explained in the ["What is a token, anyway?"](../installations-and-preparations/setting-up-a-bot-application.md#what-is-a-token-anyway) section, your token is essentially your bot's password, and you should protect it as best as possible. This can be done through a _`config.json`_ file or by using environment variables. + +Open your application in the [Discord Developer Portal](https://discord.com/developers/applications) and go to the "Bot" page to copy your token. + +## Using config.json + +Storing data in a _`config.json`_ file is a common way of keeping your sensitive values safe. Create a _`config.json`_ file in your project directory and paste in your token. You can access your token inside other files by importing this file. + + + +```json config.json +{ + "token": "your-token-goes-here" +} +``` + +```js index.js +import config from './config.json' assert { type: 'json' }; + +console.log(config.token); +``` + + + + + If you're using Git, you should not commit this file and should [ignore it via `.gitignore`](#git-and-gitignore). + + +## Using environment variables + +Environment variables are special values for your environment (e.g., terminal session, Docker container, or environment variable file). You can pass these values into your code's scope so that you can use them. + +One way to pass in environment variables is via the command line interface. When starting your app, instead of _`node index.js`_, use _`TOKEN=your-token-goes-here node index.js`_. You can repeat this pattern to expose other values as well. + +You can access the set values in your code via the _`process.env`_ global variable, accessible in any file. Note that values passed this way will always be strings and that you might need to parse them to a number, if using them to do calculations. + + + +```sh Shell +A=123 B=456 DISCORD_TOKEN=your-token-goes-here node index.js +``` + +```js index.js +console.log(process.env.A); +console.log(process.env.B); +console.log(process.env.DISCORD_TOKEN); +``` + + + +### Using dotenv + +Another common approach is storing these values in a _`.env`_ file. This spares you from always copying your token into the command line. Each line in a _`.env`_ file should hold a _`KEY=value`_ pair. + +You can use the [`dotenv` package](https://www.npmjs.com/package/dotenv) for this. Once installed, require and use the package to load your _`.env`_ file and attach the variables to _`process.env`_: + + + +```sh npm +npm install dotenv +``` + +```sh yarn +yarn add dotenv +``` + +```sh pnpm +pnpm add dotenv +``` + + + + + +```sh .env +A=123 +B=456 +DISCORD_TOKEN=your-token-goes-here +``` + +```js index.js +import { config } from 'dotenv'; + +config(); + +console.log(process.env.A); +console.log(process.env.B); +console.log(process.env.DISCORD_TOKEN); +``` + + + + + If you're using Git, you should not commit this file and should [ignore it via `.gitignore`](#git-and-gitignore). + + + +While we generally do not recommend using online editors as hosting solutions, but rather invest in a proper virtual private server, these services do offer ways to keep your credentials safe as well! Please see the respective service's documentation and help articles for more information on how to keep sensitive values safe: + +- Glitch: [Storing secrets in .env](https://glitch.happyfox.com/kb/article/18) +- Heroku: [Configuration variables](https://devcenter.heroku.com/articles/config-vars) +- Replit: [Secrets and environment variables](https://docs.replit.com/repls/secrets-environment-variables) + + + +## Git and .gitignore + +Git is a fantastic tool to keep track of your code changes and allows you to upload progress to services like [GitHub](https://github.com/), [GitLab](https://about.gitlab.com/), or [Bitbucket](https://bitbucket.org/product). While this is super useful to share code with other developers, it also bears the risk of uploading your configuration files with sensitive values! + +You can specify files that Git should ignore in its versioning systems with a*`.gitignore`* file. Create a _`.gitignore`_ file in your project directory and add the names of the files and folders you want to ignore: + +``` +node_modules +.env +config.json +``` + + + Aside from keeping credentials safe, _`node_modules`_ should be included here. Since this directory can be restored based on the entries in your _`package.json`_ and _`package-lock.json`_ files by running _`npm install`_, it does not need to be included in Git. + + You can specify quite intricate patterns in _`.gitignore`_ files, check out the [Git documentation on `.gitignore`](https://git-scm.com/docs/gitignore) for more information! + + diff --git a/apps/guide/src/content/03-creating-your-bot/02-creating-the-main-file.mdx b/apps/guide/src/content/03-creating-your-bot/02-creating-the-main-file.mdx new file mode 100644 index 000000000..3942fa3d4 --- /dev/null +++ b/apps/guide/src/content/03-creating-your-bot/02-creating-the-main-file.mdx @@ -0,0 +1,60 @@ +--- +title: Creating the main file +category: Creating your bot +--- + +# Creating the main file + + + This page assumes you've already prepared the [configuration files](./configuration-files) from the previous page. + We're using the _`config.json`_ approach, however feel free to substitute your own! + + +Open your code editor and create a new file. We suggest that you save the file as _`index.js`_, but you may name it whatever you wish. + +Here's the base code to get you started: + + + +```js +// Require the necessary discord.js classes +import { Client, Events, GatewayIntentBits } from 'discord.js'; +import config from './config.json' assert { type: 'json' }; + +// Create a new client instance +const client = new Client({ intents: [GatewayIntentBits.Guilds] }); + +// When the client is ready, run this code (only once) +// We use 'c' for the event parameter to keep it separate from the already defined 'client' +client.once(Events.ClientReady, (c) => { + console.log(`Ready! Logged in as ${c.user.tag}`); +}); + +// Log in to Discord with your client's token +client.login(config.token); +``` + + + +This is how you create a client instance for your Discord bot and log in to Discord. The _`GatewayIntentBits.Guilds`_ intents option is necessary for the discord.js client to work as you expect it to, as it ensures that the caches for guilds, channels, and roles are populated and available for internal use. + + + The term "guild" is used by the Discord API and in discord.js to refer to a Discord server. + + +Intents also define which events Discord should send to your bot, and you may wish to enable more than just the minimum. You can read more about the other intents on the [Intents topic](../popular-topics/intents). + +## Running your application + +Open your terminal and run _`node index.js`_ to start the process. If you see "Ready!" after a few seconds, you're good to go! The next step is to start adding [slash commands](./adding-commands) to develop your bot's functionality. + + +You can open your _`package.json`_ file and edit the _`"main": "index.js"`_ field to point to your main file. You can then run _`node .`_ in your terminal to start the process! + +After closing the process with _`Ctrl + C`_, you can press the up arrow on your keyboard to bring up the latest commands you've run. Pressing up and then enter after closing the process is a quick way to start it up again. + + + +#### Resulting code + + diff --git a/apps/guide/src/content/03-creating-your-bot/03-adding-commands.mdx b/apps/guide/src/content/03-creating-your-bot/03-adding-commands.mdx new file mode 100644 index 000000000..2f402ee10 --- /dev/null +++ b/apps/guide/src/content/03-creating-your-bot/03-adding-commands.mdx @@ -0,0 +1,147 @@ +--- +title: Adding commands +category: Creating your bot +--- + +# Creating slash commands + +Discord allows developers to register [slash commands](https://discord.com/developers/docs/interactions/application-commands), which provide users a first-class way of interacting directly with your application. + +Slash commands provide a huge number of benefits over manual message parsing, including: + +- Integration with the Discord client interface. +- Automatic command detection and parsing of the associated options/arguments. +- Typed argument inputs for command options, e.g. "String", "User", or "Role". +- Validated or dynamic choices for command options. +- In-channel private responses (ephemeral messages). +- Pop-up form-style inputs for capturing additional information. + +...and many more! + + + For fully functional slash commands, there are three important pieces of code that need to be written. They are: + + 1. The individual command files, containing their definitions and functionality. + 2. The [command handler](command-handling.html), which dynamically reads the files and executes the commands. + 3. The [command deployment script](command-deployment.html), to register your slash commands with Discord so they appear in the interface. + + These steps can be done in any order, but **all are required** before the commands are fully functional. + + On this page, you'll complete Step 1. Make sure to also complete the other pages linked above! + + + +## Before you continue + +Assuming you've followed the guide so far, your project directory should look something like this: + +```:no-line-numbers +discord-bot/ +├── node_modules +├── config.json +├── index.js +├── package-lock.json +└── package.json +``` + +## Individual command files + +Create a new folder named _`commands`_, which is where you'll store all of your command files. + +At a minimum, the definition of a slash command must have a name and a description. Slash command names must be between 1-32 characters and contain no capital letters, spaces, or symbols other than _`-`_ and _`_`_. Using the builder, a simple _`ping`\_ command definition would look like this: + + + +```js +export const data = { + name: 'ping', + description: 'Replies with Pong!', +}; +``` + + + +A slash command also requires a function to run when the command is used, to respond to the interaction. Using an interaction response method confirms to Discord that your bot successfully received the interaction, and has responded to the user. Discord enforces this to ensure that all slash commands provide a good user experience (UX). Failing to respond will cause Discord to show that the command failed, even if your bot is performing other actions as a result. + +The simplest way to acknowledge and respond to an interaction is the _`interaction.reply()`_ method. Other methods of replying are covered on the [Response methods](../slash-commands/response-methods) page later in this section. + + + +```js +export async function execute(interaction) { + await interaction.reply('Pong!'); +} +``` + + + +Put these two together by creating a `commands/ping.js` file for your first command. Inside this file, you're going to define and export two items. + +- The `data` property, which will provide the command definition shown above for registering to Discord. +- The `execute` method, which will contain the functionality to run from our event handler when the command is used. + +The _`export`_ keyword ensures these values can be imported and read by other files; namely the command loader and command deployment scripts mentioned earlier. + + + +```js commands/ping.js +export const data = { + name: 'ping', + description: 'Replies with Pong!', +}; + +export async function execute(interaction) { + await interaction.reply('Pong!'); +} +``` + + + + + [`module.exports`](https://nodejs.org/api/modules.html#modules_module_exports) is how you export data in Node.js so that you can [`require()`](https://nodejs.org/api/modules.html#modules_require_id) it in other files. + + If you need to access your client instance from inside a command file, you can access it via `interaction.client`. If you need to access external files, packages, etc., you should `require()` them at the top of the file. + + + +That's it for your basic ping command. Below are examples of two more commands we're going to build upon throughout the guide, so create two more files for these before you continue reading. + + + +```js commands/user.js +export const data = { + name: 'user', + description: 'Provides information about the user.', +}; + +export async function execute(interaction) { + // interaction.user is the object representing the User who ran the command + // interaction.member is the GuildMember object, which represents the user in the specific guild + await interaction.reply( + `This command was run by ${interaction.user.username}, who joined on ${interaction.member.joinedAt}.`, + ); +} +``` + +```js commands/server.js +export const data = { + name: 'server', + description: 'Provides information about the server.', +}; + +export async function execute(interaction) { + // interaction.guild is the object representing the Guild in which the command was run + await interaction.reply(`This server is ${interaction.guild.name} and has + ${interaction.guild.memberCount} members.`); +} +``` + + + +#### Next steps + +You can implement additional commands by creating additional files in the _`commands`_ folder, but these three are the ones we're going to use for the examples as we go on. For now let's move on to the code you'll need for command handling, to load the files and respond to incoming interactions. + +#### Resulting code + + diff --git a/apps/guide/src/content/03-creating-your-bot/04-handling-command-interactions.mdx b/apps/guide/src/content/03-creating-your-bot/04-handling-command-interactions.mdx new file mode 100644 index 000000000..04487fe1a --- /dev/null +++ b/apps/guide/src/content/03-creating-your-bot/04-handling-command-interactions.mdx @@ -0,0 +1,292 @@ +--- +title: Handling command interactions +category: Creating your bot +--- + +# Command handling + +Unless your bot project is small, it's not a very good idea to have a single file with a giant _`if`_/_`else if`_ chain for commands. If you want to implement features into your bot and make your development process a lot less painful, you'll want to implement a command handler. Let's get started on that! + + + For fully functional slash commands, there are three important pieces of code that need to be written. They are: + + 1. The [individual command files](slash-commands), containing their definitions and functionality. + 2. The command handler, which dynamically reads the files and executes the commands. + 3. The [command deployment script](command-deployment), to register your slash commands with Discord so they appear in the interface. + + These steps can be done in any order, but **all are required** before the commands are fully functional. + + This page details how to complete **Step 2**. Make sure to also complete the other pages linked above! + + + +## Loading command files + +Now that your command files have been created, your bot needs to load these files on startup. + +In your _`index.js`_ file, make these additions to the base template: + + + +```js JavaScript focus=1:3,9 +import { readdir } from 'node:fs/promises'; +import { join } from 'node:path'; +import { fileURLToPath } from 'node:url'; +// focus[18:28] +import { Client, Collection, Events, GatewayIntentBits } from 'discord.js'; +import config from './config.json' assert { type: 'json' }; + +const client = new Client({ intents: [GatewayIntentBits.Guilds] }); + +const commands = new Collection(); + +client.once(Events.ClientReady, () => { + console.log('Ready!'); +}); +``` + +```ts TypeScript focus=1:3,9:14 +import { readdir } from 'node:fs/promises'; +import { join } from 'node:path'; +import { fileURLToPath } from 'node:url'; +// focus[18:28] +import { Client, Collection, Events, GatewayIntentBits } from 'discord.js'; +import config from './config.json'; + +const client = new Client({ intents: [GatewayIntentBits.Guilds] }); + +interface CommandModule { + data: RESTPostAPIChatInputApplicationCommandsJSONBody; + execute(interaction: ChatInputCommandInteraction): Promise; +} + +const commands = new Collection(); + +client.once(Events.ClientReady, () => { + console.log('Ready!'); +}); +``` + + + + + - The [`fs`](https://nodejs.org/api/fs.html) module is Node's native file system module. _`readdir`_ is used to read + the _`commands`_ directory and identify our command files. - The [`path`](https://nodejs.org/api/path.html) module is + Node's native path utility module. _`join`_ helps construct paths to access files and directories. One of the + advantages of _`path.join`_ is that it automatically detects the operating system and uses the appropriate joiners. - + The [`url`](https://nodejs.org/api/url.html) module provides utilities for URL resolution and parsing. + _`fileURLToPath`_ ensuring a cross-platform valid absolute path string. + - The{' '} + class extends JavaScript's native + [_`Map`_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) class, and includes + more extensive, useful functionality. _`Collection`_ is used to store and efficiently retrieve commands for execution. + + + +Next, using the modules imported above, dynamically retrieve your command files with a few more additions to the _`index.js`_ file: + + + +```js JavaScript focus=3:15 +const commands = new Collection(); + +const commandsPath = fileURLToPath(new URL('commands', import.meta.url)); +const commandFiles = await readdir(commandsPath).then((files) => files.filter((file) => file.endsWith('.js'))); + +for (const file of commandFiles) { + const filePath = join(commandsPath, file); + const command = await import(filePath); + // Set a new item in the Collection with the key as the command name and the value as the exported module + if ('data' in command && 'execute' in command) { + commands.set(command.data.name, command); + } else { + console.log(`[WARNING] The command at ${filePath} is missing a required "data" or "execute" property.`); + } +} +``` + +```ts TypeScript focus=3:15 +const commands = new Collection(); + +const commandsPath = fileURLToPath(new URL('commands', import.meta.url)); +const commandFiles = await readdir(commandsPath).then((files) => files.filter((file) => file.endsWith('.js'))); + +for (const file of commandFiles) { + const filePath = join(commandsPath, file); + const command = await import(filePath); + // Set a new item in the Collection with the key as the command name and the value as the exported module + if ('data' in command && 'execute' in command) { + commands.set(command.data.name, command); + } else { + console.log(`[WARNING] The command at ${filePath} is missing a required "data" or "execute" property.`); + } +} +``` + + + +First, [url.fileURLToPath()](https://nodejs.org/api/url.html) helps to construct a path to the _`commands`_ directory. The [fs.readdir()](https://nodejs.org/api/fs.html#fspromisesreaddirpath-options) method then reads the path to the directory and returns a Promise which resolves to an array of all the file names it contains, currently _`['ping.js', 'server.js', 'user.js']`_. To ensure only command files get processed, _`Array.filter()`_ removes any non-JavaScript files from the array. + +With the correct files identified, the last step is to loop over the array and dynamically set each command into the _`commands`_ Collection. For each file being loaded, check that it has at least the _`data`_ and _`execute`_ properties. This helps to prevent errors resulting from loading empty, unfinished or otherwise incorrect command files while you're still developing. + +## Receiving command interactions + +Every slash command is an _`interaction`_, so to respond to a command, you need to create a listener for the event that will execute code when your application receives an interaction. Place the code below in the _`index.js`_ file you created earlier. + + + +```js +client.on(Events.InteractionCreate, (interaction) => { + console.log(interaction); +}); +``` + + + +Not every interaction is a slash command (e.g. _`MessageComponent`_ interactions). Make sure to only handle slash commands in this function by making use of the method to exit the handler if another type is encountered. This method also provides type guarding for TypeScript users, narrowing the type from _`BaseInteraction`_ to . + + + +```js focus=2 +client.on(Events.InteractionCreate, (interaction) => { + if (!interaction.isChatInputCommand()) return; + console.log(interaction); +}); +``` + + + +## Executing commands + +When your bot receives a event, the interaction object contains all the information you need to dynamically retrieve and execute your commands! + +Let's take a look at the _`ping`_ command again. Note the _`execute()`_ function that will reply to the interaction with "Pong!". + + + +```js +export const data = { + name: 'ping', + description: 'Replies with Pong!', +}; + +export async function execute(interaction) { + await interaction.reply('Pong!'); +} +``` + + + +First, you need to get the matching command from the _`commands`_ Collection based on the _`interaction.commandName`_. If no matching command is found, log an error to the console and ignore the event. + +With the right command identified, all that's left to do is call the command's _`.execute()`_ method and pass in the _`interaction`_ variable as its argument. Note that the event listener has been made _`async`_, allowing Promises to be awaited. In case something goes wrong and the Promise rejects, catch and log any error to the console. + + + +```js focus=4:20 +// focus[37:42] +client.on(Events.InteractionCreate, async (interaction) => { + if (!interaction.isChatInputCommand()) return; + + const command = commands.get(interaction.commandName); + + if (!command) { + console.error(`No command matching ${interaction.commandName} was found.`); + return; + } + + try { + await command.execute(interaction); + } catch (error) { + console.error(error); + if (interaction.replied || interaction.deferred) { + await interaction.followUp({ content: 'There was an error while executing this command!', ephemeral: true }); + } else { + await interaction.reply({ content: 'There was an error while executing this command!', ephemeral: true }); + } + } +}); +``` + + + +## Command categories + +So far, all of your command files are in a single _`commands`_ folder. This is fine at first, but as your project grows, the number of files in the _`commands`_ folder will too. Keeping track of that many files can be a little tough. To make this a little easier, you can categorize your commands and put them in subfolders inside the _`commands`_ folder. You will have to make a few changes to your existing code in _`index.js`_ for this to work out. + +If you've been following along, your project structure should look something like this: + +![Project structure before sorting](/assets/before-sorting.png) + +After moving your commands into subfolders, it will look something like this: + +![Project structure after sorting](/assets/after-sorting.png) + + + Make sure you put every command file you have inside one of the new subfolders. Leaving a command file directly under + the _`commands`_ folder will create problems. + + +It is not necessary to name your subfolders exactly like we have named them here. You can create any number of subfolders and name them whatever you want. Although, it is a good practice to name them according to the type of commands stored inside them. + +Back in your _`index.js`_ file, where the code to [dynamically read command files](#loading-command-files) is, use the same pattern to read the subfolder directories, and then require each command inside them. + + + +```js JavaScript focus=3:7,19 +const commands = new Collection(); + +const foldersPath = fileURLToPath(new URL('commands', import.meta.url)); +const commandFolders = await readdir(foldersPath); + +for (const folder of commandFolders) { + const commandsPath = join(foldersPath, folder); + const commandFiles = await readdir(commandsPath).then((files) => files.filter((file) => file.endsWith('.js'))); + for (const file of commandFiles) { + const filePath = join(commandsPath, file); + const command = await import(filePath); + // Set a new item in the Collection with the key as the command name and the value as the exported module + if ('data' in command && 'execute' in command) { + commands.set(command.data.name, command); + } else { + console.log(`[WARNING] The command at ${filePath} is missing a required "data" or "execute" property.`); + } + } +} +``` + +```ts Typescript mark=3:7,19 +const commands = new Collection(); + +const foldersPath = fileURLToPath(new URL('commands', import.meta.url)); +const commandFolders = readdir(foldersPath); + +for (const folder of commandFolders) { + const commandsPath = join(foldersPath, folder); + const commandFiles = readdir(commandsPath).then((files) => files.filter((file) => file.endsWith('.js'))); + for (const file of commandFiles) { + const filePath = join(commandsPath, file); + const command = await import(filePath); + // Set a new item in the Collection with the key as the command name and the value as the exported module + if ('data' in command && 'execute' in command) { + commands.set(command.data.name, command); + } else { + console.log(`[WARNING] The command at ${filePath} is missing a required "data" or "execute" property.`); + } + } +} +``` + + + +That's it! When creating new files for commands, make sure you create them inside one of the subfolders (or a new one) in the _`commands`_ folder. + +#### Next steps + +Your command files are now loaded into your bot, and the event listener is prepared and ready to respond. In the next section, we cover the final step - a command deployment script you'll need to register your commands so they appear in the Discord client. + +#### Resulting code + + + +It also includes some bonus commands! diff --git a/apps/guide/src/content/03-creating-your-bot/05-registering-slash-commands.mdx b/apps/guide/src/content/03-creating-your-bot/05-registering-slash-commands.mdx new file mode 100644 index 000000000..c7c744881 --- /dev/null +++ b/apps/guide/src/content/03-creating-your-bot/05-registering-slash-commands.mdx @@ -0,0 +1,155 @@ +--- +title: Registering slash commands +category: Creating your bot +--- + +# Registering slash commands + + + For fully functional slash commands, you need three important pieces of code: + + 1. The [individual command files](slash-commands), containing their definitions and functionality. + 2. The [command handler](command-handling), which dynamically reads the files and executes the commands. + 3. The command deployment script, to register your slash commands with Discord so they appear in the interface. + + These steps can be done in any order, but **all are required** before the commands are fully functional. + + This page details how to complete **Step 3**. Make sure to also complete the other pages linked above! + + + +## Command registration + +Slash commands can be registered in two ways; in one specific guild, or for every guild the bot is in. We're going to look at single-guild registration first, as this is a good way to develop and test your commands before a global deployment. + +Your application will need the _`applications.commands`_ scope authorized in a guild for any of its slash commands to appear, and to be able to register them in a specific guild without error. + +Slash commands only need to be registered once, and updated when the definition (description, options etc) is changed. As there is a daily limit on command creations, it's not necessary nor desirable to connect a whole client to the gateway or do this on every _`ClientReady`_ event. As such, a standalone script using the lighter REST manager is preferred. + +This script is intended to be run separately, only when you need to make changes to your slash command **definitions** - you're free to modify parts such as the execute function as much as you like without redeployment. + +### Guild commands + +Create a _`deploy-commands.js`_ file in your project directory. This file will be used to register and update the slash commands for your bot application. + +Add two more properties to your _`config.json`_ file, which we'll need in the deployment script: + +- _`clientId`_: Your application's client id ([Discord Developer Portal](https://discord.com/developers/applications) > "General Information" > application id) +- _`guildId`_: Your development server's id ([Enable developer mode](https://support.discord.com/hc/en-us/articles/206346498) > Right-click the server title > "Copy Server ID") + + + +```json +{ + "token": "your-token-goes-here", + "clientId": "your-application-id-goes-here", + "guildId": "your-server-id-goes-here" +} +``` + + + +With these defined, you can use the deployment script below: + + + +```js deploy-commands.js +import { REST, Routes } from 'discord.js'; +import { readdir } from 'node:fs/promises'; +import { join } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import config from './config.json' assert { type: 'json' }; + +const { clientId, guildId, token } = config; + +const commands = []; + +// Grab all the command files from the commands directory you created earlier +const foldersPath = fileURLToPath(new URL('commands', import.meta.url)); +const commandFolders = await readdir(foldersPath); + +for (const folder of commandFolders) { + // Grab all the command files from the commands directory you created earlier + const commandsPath = join(foldersPath, folder); + const commandFiles = await readdir(commandsPath).then((files) => files.filter((file) => file.endsWith('.js'))); + // Grab the SlashCommandBuilder#toJSON() output of each command's data for deployment + for (const file of commandFiles) { + const filePath = join(commandsPath, file); + const command = await import(filePath); + if ('data' in command && 'execute' in command) { + commands.push(command.data.toJSON()); + } else { + console.log(`[WARNING] The command at ${filePath} is missing a required "data" or "execute" property.`); + } + } +} + +// Construct and prepare an instance of the REST module +const rest = new REST().setToken(token); + +try { + console.log(`Started refreshing ${commands.length} application (/) commands.`); + + // The put method is used to fully refresh all commands in the guild with the current set + const data = await rest.put(Routes.applicationGuildCommands(clientId, guildId), { body: commands }); + + console.log(`Successfully reloaded ${data.length} application (/) commands.`); +} catch (error) { + // And of course, make sure you catch and log any errors! + console.error(error); +} +``` + + + +Once you fill in these values, run _`node deploy-commands.js`_ in your project directory to register your commands to the guild specified. If you see the success message, check for the commands in the server by typing _`/`_! If all goes well, you should be able to run them and see your bot's response in Discord! + +### Global commands + +Global application commands will be available in all the guilds your application has the _`applications.commands`_ scope authorized in, and in direct messages by default. + +To deploy global commands, you can use the same script from the [guild commands](#guild-commands) section and simply adjust the route in the script to _`.applicationCommands(clientId)`_ + +Test + + + +```js focus=5 +try { + console.log(`Started refreshing ${commands.length} application (/) commands.`); + + // The put method is used to fully refresh all commands in the guild with the current set + const data = await rest.put(Routes.applicationCommands(clientId), { body: commands }); + + console.log(`Successfully reloaded ${data.length} application (/) commands.`); +} catch (error) { + // And of course, make sure you catch and log any errors! + console.error(error); +} +``` + + + +### Where to deploy + + + Guild-based deployment of commands is best suited for development and testing in your own personal server. Once you're satisfied that it's ready, deploy the command globally to publish it to all guilds that your bot is in. + + You may wish to have a separate application and token in the Discord Dev Portal for your dev application, to avoid duplication between your guild-based commands and the global deployment. + + + +#### Further reading + +You've successfully sent a response to a slash command! However, this is only the most basic of command event and response functionality. Much more is available to enhance the user experience including: + +- applying this same dynamic, modular handling approach to events with an [Event handler](./event-handling). +- utilising the different [Response methods](../slash-commands/response-methods) that can be used for slash commands. +- expanding on these examples with additional validated option types in [Advanced command creation](../slash-commands/advanced-creation). +- adding formatted [Embeds](../popular-topics/embeds) to your responses. +- enhancing the command functionality with [Buttons](../interactions/buttons) and [Select Menus](../interactions/select-menus). +- prompting the user for more information with [Modals](../interactions/modals). + +#### Resulting code + + diff --git a/apps/guide/src/content/03-creating-your-bot/06-event-handling.mdx b/apps/guide/src/content/03-creating-your-bot/06-event-handling.mdx new file mode 100644 index 000000000..935319d12 --- /dev/null +++ b/apps/guide/src/content/03-creating-your-bot/06-event-handling.mdx @@ -0,0 +1,219 @@ +--- +title: Event handling +category: Creating your bot +--- + +# Event handling + +Node.js uses an event-driven architecture, making it possible to execute code when a specific event occurs. The discord.js library takes full advantage of this. You can visit the documentation to see the full list of events. + + + This page assumes you've followed the guide up to this point, and created your _`index.js`_ and individual slash + commands according to those pages. + + +At this point, your `index.js` file has code for loading commands, and listeners for two events: `ClientReady` and `InteractionCreate`. + + + +```js Commands +const commands = new Collection(); + +const foldersPath = fileURLToPath(new URL('commands', import.meta.url)); +const commandFolders = await readdir(foldersPath); + +for (const folder of commandFolders) { + const commandsPath = join(foldersPath, folder); + const commandFiles = await readdir(commandsPath).then((files) => files.filter((file) => file.endsWith('.js'))); + for (const file of commandFiles) { + const filePath = join(commandsPath, file); + const command = await import(filePath); + // Set a new item in the Collection with the key as the command name and the value as the exported module + if ('data' in command && 'execute' in command) { + commands.set(command.data.name, command); + } else { + console.log(`[WARNING] The command at ${filePath} is missing a required "data" or "execute" property.`); + } + } +} +``` + +```js ClientReady +client.once(Events.ClientReady, (c) => { + console.log(`Ready! Logged in as ${c.user.tag}`); +}); +``` + +```js InteractionCreate +client.on(Events.InteractionCreate, async (interaction) => { + if (!interaction.isChatInputCommand()) return; + + const command = commands.get(interaction.commandName); + + if (!command) { + console.error(`No command matching ${interaction.commandName} was found.`); + return; + } + + try { + await command.execute(interaction); + } catch (error) { + console.error(`Error executing ${interaction.commandName}`); + console.error(error); + } +}); +``` + + + +Currently, all of this code is in the _`index.js`_ file. emits once when the _`Client`_ becomes ready for use, and emits whenever an interaction is received. +Moving the event listener code into individual files is simple, and we'll be taking a similar approach to the [command handler](./handling-command-interactions). + +## Individual event files + +Your project directory should look something like this: + +``` +discord-bot/ +├── commands/ +├── node_modules/ +├── config.json +├── deploy-commands.js +├── index.js +├── package-lock.json +└── package.json +``` + +Create an _`events`_ folder in the same directory. You can then move the code from your event listeners in _`index.js`_ to separate files: _`events/ready.js`_ and _`events/interactionCreate.js`_. The _`InteractionCreate`_ event is responsible for command handling, so the command loading code will move here too. + + + +```js events/interactionCreate.js +import { readdir } from 'node:fs/promises'; +import { join } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { Collection, Events } from 'discord.js'; + +const commands = new Collection(); + +const foldersPath = fileURLToPath(new URL('commands', import.meta.url)); +const commandFolders = await readdir(foldersPath); + +for (const folder of commandFolders) { + const commandsPath = join(foldersPath, folder); + const commandFiles = await readdir(commandsPath).then((files) => files.filter((file) => file.endsWith('.js'))); + for (const file of commandFiles) { + const filePath = join(commandsPath, file); + const command = await import(filePath); + // Set a new item in the Collection with the key as the command name and the value as the exported module + if ('data' in command && 'execute' in command) { + commands.set(command.data.name, command); + } else { + console.log(`[WARNING] The command at ${filePath} is missing a required "data" or "execute" property.`); + } + } +} + +export const data = { + name: Events.InteractionCreate, +}; + +export async function execute(interaction) { + if (!interaction.isChatInputCommand()) return; + + const command = commands.get(interaction.commandName); + + if (!command) { + console.error(`No command matching ${interaction.commandName} was found.`); + return; + } + + try { + await command.execute(interaction); + } catch (error) { + console.error(`Error executing ${interaction.commandName}`); + console.error(error); + } +} +``` + +```js events/ready.js +import { Events } from 'discord.js'; + +export const data = { + name: Events.ClientReady, + once = true, +}; +export async function execute(client) { + console.log(`Ready! Logged in as ${client.user.tag}`); +} +``` + +```js index.js +import { readdir } from 'node:fs/promises'; +import { join } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { Client, GatewayIntentBits } from 'discord.js'; +import config from './config.json' assert { type: 'json' }; + +const client = new Client({ intents: [GatewayIntentBits.Guilds] }); + +client.login(config.token); +``` + + + +The _`name`_ property states which event this file is for, and the _`once`_ property holds a boolean value that specifies if the event should run only once. You don't need to specify this in _`interactionCreate.js`_ as the default behavior will be to run on every event instance. The _`execute`_ function holds your event logic, which will be called by the event handler whenever the event emits. + +## Reading event files + +Next, let's write the code for dynamically retrieving all the event files in the _`events`_ folder. We'll be taking a similar approach to our [command handler](./handling-command-interactions). Place the new code highlighted below in your _`index.js`_. + +_`fs.readdir()`_ combined with _`array.filter()`_ returns an array of all the file names in the given directory and filters for only _`.js`_ files, i.e. _`['ready.js', 'interactionCreate.js']`_. + + + +```js focus=9:20 +import { readdir } from 'node:fs/promises'; +import { join } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { Client, GatewayIntentBits } from 'discord.js'; +import config from './config.json' assert { type: 'json' }; + +const client = new Client({ intents: [GatewayIntentBits.Guilds] }); + +const eventsPath = fileURLToPath(new URL('events', import.meta.url)); +const eventFiles = await readdir(eventsPath).then((files) => files.filter((file) => file.endsWith('.js'))); + +for (const file of eventFiles) { + const filePath = join(eventsPath, file); + const event = await import(filePath); + if (event.data.once) { + client.once(event.data.name, (...args) => event.execute(...args)); + } else { + client.on(event.data.name, (...args) => event.execute(...args)); + } +} + +client.login(config.token); +``` + + + +You'll notice the code looks very similar to the command loading above it - read the files in the events folder and load each one individually. + +The class in discord.js extends the [`EventEmitter`](https://nodejs.org/api/events.html#events_class_eventemitter) class. Therefore, the _`client`_ object exposes the [`.on()`](https://nodejs.org/api/events.html#events_emitter_on_eventname_listener) and [`.once()`](https://nodejs.org/api/events.html#events_emitter_once_eventname_listener) methods that you can use to register event listeners. These methods take two arguments: the event name and a callback function. These are defined in your separate event files as _`name`_ and _`execute`_. + +The callback function passed takes argument(s) returned by its respective event, collects them in an _`args`_ array using the _`...`_ [rest parameter syntax](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters), then calls _`event.execute()`_ while passing in the _`args`_ array using the _`...`_ [spread syntax](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax). They are used here because different events in discord.js have different numbers of arguments. The rest parameter collects these variable number of arguments into a single array, and the spread syntax then takes these elements and passes them to the _`execute`_ function. + +After this, listening for other events is as easy as creating a new file in the _`events`_ folder. The event handler will automatically retrieve and register it whenever you restart your bot. + + + In most cases, you can access your _`client`_ instance in other files by obtaining it from one of the other discord.js + structures, e.g. _`interaction.client`_ in the _`InteractionCreate`_ event. You do not need to manually pass it to + your events. + + +## Resulting code + + diff --git a/apps/guide/src/content/03-popular-topics/01-frequently-asked-questions.mdx b/apps/guide/src/content/04-popular-topics/01-frequently-asked-questions.mdx similarity index 100% rename from apps/guide/src/content/03-popular-topics/01-frequently-asked-questions.mdx rename to apps/guide/src/content/04-popular-topics/01-frequently-asked-questions.mdx diff --git a/apps/guide/src/content/04-additional-info/01-async-await.mdx b/apps/guide/src/content/05-additional-info/01-async-await.mdx similarity index 100% rename from apps/guide/src/content/04-additional-info/01-async-await.mdx rename to apps/guide/src/content/05-additional-info/01-async-await.mdx diff --git a/apps/guide/src/content/04-additional-info/02-collections.mdx b/apps/guide/src/content/05-additional-info/02-collections.mdx similarity index 100% rename from apps/guide/src/content/04-additional-info/02-collections.mdx rename to apps/guide/src/content/05-additional-info/02-collections.mdx diff --git a/apps/guide/src/content/04-additional-info/03-updating-to-v14.mdx b/apps/guide/src/content/05-additional-info/03-updating-to-v14.mdx similarity index 100% rename from apps/guide/src/content/04-additional-info/03-updating-to-v14.mdx rename to apps/guide/src/content/05-additional-info/03-updating-to-v14.mdx