From 98724df711ae15a94ea14c9191abc33d3394ed4f Mon Sep 17 00:00:00 2001 From: tresabhi <43380238+tresabhi@users.noreply.github.com> Date: Thu, 16 Jan 2025 14:10:28 -0600 Subject: [PATCH] feat: update bot chunk 4 --- bun.lockb | Bin 422363 -> 422759 bytes packages/bot/src/commands/inactive.tsx | 5 +- .../bot/src/core/localization/translator.ts | 2 - .../handlers/chatInputCommand.ts | 45 +++---- .../bot/src/events/interactionCreate/index.ts | 118 +++++++++++------- packages/i18n/package.json | 4 +- packages/i18n/src/strings.ts | 7 +- .../src/components/Embeds/breakdown.tsx | 17 ++- .../website/src/components/LocaleSwitcher.tsx | 4 +- .../website/src/core/blitzkit/branches.ts | 6 +- packages/website/src/core/i18n/getStrings.ts | 5 +- 11 files changed, 122 insertions(+), 91 deletions(-) diff --git a/bun.lockb b/bun.lockb index 350daac174f9c69759cae8d4950322d8480bed28..9c71f03bf75e20d515d6aad52c395183643ed5f5 100644 GIT binary patch delta 54870 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 c2S4vn-G9^I3C`>lKbXWezzvKPO+`+fF2)UN94 z?&8Rov4=j3y{}2*T74#@)@-(L{q)Jp-n@O|iPzq)b9(Wn*LuA7#lb#v(~@6xx=kqK z(<^X)zk2>jCpSzx5X!$8zoO4qke8V=MsbrSCXCM=H)-6P!+pML@O9YpvEt*hCizy4 z@cGK&pC+yB3&dBzHo~5V9W!n$DSW={Y@e?(e!8`3*0#b{g*U)f@%b((sOALmo`DvASqgsqJ| zLiSqNzgDz#qBkCgh%Zn49;_OYIdM`hb@+}<@w(M%s@L%Bi3w9DG6TEt)$O+7D&_0t z?eNzu9ZmtN5zzG+j}?X193plPE{s_!O?z zP9B>*JUeTckG4!6!2l1O?&TYnHD$~=hGtmSgvps>eBt%wtK^6By}F;D;SJeiSe5-9 zR%Im=Fl^Y|tPxq$XwwJqSp3~swe8B8-ca5&HG9%fP3kPK=i9MLw*ss3&X7)1a}2AM zw;#*I=NIg}%^Q-ATxi+Tz9)WBOG^6Gnz zdh^{~fR=0MCm65iuVXcI9T#|0a|KqbdjMPoA1(CxF2=rwRmG2ERl#g*18f#nJ#B|= zgzZi~ z0rt0z9^a4EA+`~FA@(7x*3DFF)3M6m#`<-!?mEM2kNM>pZ-ggJ96E07@S&q8Wsl9v znwB**H)~|x_#3i(zQ}@mX1h0kk$LANnlpaVMBkq0y{Q>JCTnso^F4BkmoEH*w;sli z9+5CCJJ&Znd+e|Tx;$ftH~$mE+2_~G?@ek=?BSi>su_}-IW%jc&)5G&k1xV%Ie(AU zs+vuy?($BUFga^-mhah@JiZQFf%x$WW3qFyC;2A7?A0>Mt0ri5WNCH+Zkt!lPJK zG<;0vBz6v8kc=AooUGgtSi1*CDgx9j}As-}Od#CFw6#hLiMM6&}NC=!azwAFes$T%9?FIevR``0;9W^S2T0 z&cv9B(-b{q+_bE**xV1i_HD#!WJg##$nrkccDJ@8Rx@RnK*5Lu-X0QJ0e@X8Pf#y2 zmtXKG0cFe_Ixbfg8+^5UHde>{j|aViO0YHXU$Zuscnv^gjYs-B1g`!^X8x};-jeuu z;xECL^L67G|JVbWpLoY~FRUuQ3ad4^=&)CD*2JNiV={+j-H)#ZPRDBGCSaAWO}I*p zn)we=T0OkwA9*`M3ciMa5LO$0Ppq1E;}_n6{2Eqgrc`Tlzx4Lh$if^ok$M@HrnVd{ zj?6I=eKYZ^lW!bWt-TP-c!pQjs1o}Eb!&H;i`50i1guU%vEh9+E_Y^!otpKWgm8S# zdimEJ_hz{*R(+Y0Jt>RIe9wIA_3>`3PPE=&`3fSviL@rttEayAdKEdIeM`LZTAlD# z|H#aV39S4Pk<~Pr8D|Xh3*I82*^dlMq`S5|1(D(W=tu9kj0|gJ(*8P0f1Q-SPHJRG zhSRZ&btc%zq%dy0k;xq~k)Gdh(wnCqSk2qeG1-%|;eS0I@|q=$1^b4M95*_9SY~c+ zR^~7^-;Or&t?F!sOiSEDFn4 z4=2%p#@HLMYI%!*St^@B1tQs1R)qxjV#&H`o6{{5;#A*#idLC&=R!$CY z0DZoFWgYiYW*b%=`61}!y9Iq5?NzuNtBNX9few|UA;(?5QTXb~H@|s@N@N5gJ%16d ziVv4_+`@urH7w>MYvdUPXJLp)Ur zgjY{|r5lztWU}71UW%^<##eFN4sohfhkY?{ja0qx(pvSL*znF;HS^!C>bUzU@8_~I zbEf%rS$}vnZ`y`jk*Tb{8}QZ0-dLR{Dv?h9_{llr-2^qfI;)-UmG>;Z+B9+8(9vq< zwKcu+x?q*hUIFG8jG8#aUASw>piUKGHO=3~co{ge=44JB?Q0Y375pMr4QNx#D=2H? ztVUoQHV&JWn>#KyA#2(t zBvQIKxO>EvkM}D2^8#-OAI4V&)kq+_lIhooFhyf0=lq|&EOy@({hRCJ|Jr475gpQq zl{9wBxPgnp>2dY)_cZoqEHa?WFZEW$`0TNxxkB*`!q<3gx9L*3aFQS4i{M&8k)=6p zk~c%ICV2TaV>OQJn|SG#TKnh)?u6tQ%me7a&7R2qnVILy9y>BCH+#~=nQ)y^*HD1$ zVr#24^Jd(^>bM%BWx{JM4bjZUH}@)DXlhyET-f=ZFGbd|I z_Dxv@aJ6zYR@-VnEcN9VB)0Rm)#1A2WID?bp$42u^eX-lt8QMF;${4#y*G+AtslUu z!V_@WWmkF~*@>@mxV4v)JuNFYlJ9M}Hh`zxcn2-;r;K+z~xN}mt@cxw0 z?U1&_mkno&16W4DG;c ziB~xse`{jsXS^nOf$-rjiOxmg;`u4gfN<E;icCmhLXo}3ly(Hcqs$; zG+t}GU|1y%80QUVnQ;8dq-dP3MES$V|agHRzHPa&PhdyTK*W_tjyn_Gwm=qR2# zOun9p!HXv_lHrV=$)Uc4u7Eq?%*9F3I4L;M?rwp&uXLd>q)z06Mf-tyu2L5ZOwc-`@;sT8M0IDKJC zX#6Cv>%MS&Zc;Q(I}-T9OM4{xznm1V^+@~RsVP3+RpAoae%;hklN)*vPd$kWFP)rJ z7N;kUalUn$hAVf9j&3~78*k$*^1CEB6w)+Y^k&;=0-7Wi$$-SrPCTtpuW!HN^}-8= z5BEt7UU-wwm#n&-jBxRyl+c6t&511&KHNDm^f8{63pslyhT7lETg9{GEWy*1M!6}A z@%p>@G8v=xw|M!=xT9Hsmr5L~oUz@7cf(n){&b%&5wBc0voI+dM;&HLStSecv?c@U zek96U_LXLkFkI5PZ8QNLKz=pQnHVlymJ+PV6?WTj(X!-FZ$c`ZCQ{y=c1XT57~FYPVE)6964SG*&#lf{3T6u{{fj_a5lT1QBeN$)!* zMt_N??wnm&(aq<0+0K&SEXegtL2~c|LRW+{Qj#;G?wY_+q-5O|c zu=<_Ur`(~Qgf!(#iI8*zAS z=-($r<7i+sb;-`1Zl{Oe=N*P_wZSg;(+HO@C*)1D3jJ05Y@xj$@HR)U!tHo{BXPm1 zVLIlPQ02kW4Vi#9Dv~O6=wITJ=a(uWbpOA2NAQN6&6oC2q_y$g6P>%m=})DEcEGd- zy+N;RymjVzGx5@hb4M)n37*#{?ZAB&cv6C^9p${sVvUbIOpmZQ4}diI|0`ZwJa?Ifu3YNvglrm|aJS%H?UsI;&=qc~!`E{~vCO;LVE^Dy8HuOko|BfA zBi?nM$8mqba<3=s-t5oA@Kl$VatmI6JUfq%dUNIN!Nc%WraM=mr|{HbQqtlEE4&)q zzC};P)5zJ8{Uj6s^mLEa>W_JqyMyYahl{tR1RsaB(H`Re>9O#D?d_e5!iC#8>#g*T zwCe70w*jv`WpWT*pHvnn>0AY!qC+iLdF677WcQhe*XCUOCn0^T(G);y8G+#H$flk- zG%=Ko*D4a{EDjgHkP`Y7rcvQs(K*qn8&2Pm63Teo8*i6|Uc+lf3NA-RBs%rOu{%?O zxoemycQbs3kj>8``~y!j#aVbjqSG!M`(jG4{Sz9JxEGUycN6L!&Uo=pr>pCid6Esx z4fQ-5dgyHEqqCulH$>8nJsa9|HuT5YQ0J#~A?Ma~HuTQfP|VYj*g=G@cGE388~V}> zWxU)r@Ju9f?Ag#xLM_8ZyV^RN!UuPy1UCD8>EXCt$-yE*1KrR`LcQHkw=F(jh8tQ% zC_5bYX4}A4pD)uzxrDsPy@W=%tktu;g?2*=3Ek+1emfgVe=d?^6Cp3Q`nE^|#uDo1 z=6HorayX+?a;VaFZ_Px7<5>b-tjBs`g7WcNGC>vG#k>R09-16Hq369bhOOIHz87E4J8o;i>V7`Q>)Likg6P>~9 z=oX~7l$X7f#L@5qJav(ym|g05ye4ibio5=mNOKN9lN4Fy1Z=P7H3uV+$Ob9BThYclh!DaQy4Bh zm=gL0|2m3rwBhPvRxHCyS$m)KOLi1E2JkH=f=)ordSFJ61*X zdw8j&Johf4&fZefulEh1u@Lpvy~Gbbs(81Sp9yK|d2d23iEn$UyvfeN(;}fx-lV;Q zr!A4qbX#Jm%s#ILj4TW2YCM%rA6TWg;b{(dQ%#vW@HE}zW7|DHT=;QHu+uxF50`Ka zdNZL;Zrb=miNQDVu5`EK+V6T-j*Jv_XX2?0CW7~HOYqcYZ!A7Nm$F-8sL^}gX~TQZ z*&k2s3c4-12XBB^O7Fzzqc-l`s5N@u>*2Y}iyJKQg)?tV4Bm%#O}Hq%Z8U+VZb5X= zU-^UZ!9P=?Kkx?2+jMr|X@VGT-dg`*J$F&^)}!$Al<2AZz4TsXZ)b&~E$~k3U*l;E z-3yUm!vpTPbV-h$L8veMTpQnms46et`Ndv74k8Zap4MYDmLx^vXo-7Q18<#;Vsf3T z;q)UZq0R@{dP%_+J1Eha87@AO;+z+bJ(|L4Kb^lT!-YpvLO&hyriQ8KeP;THUO&96 ziZGt0#@%c~@8f9`VCs7&I@QC)$5NbL;n=TIf*VWRtMIRqgB3pFlge-$p%Ow#;gVy# zx%fE3@;~8v%!?(&&5dKp4!0k^P6<78*t^p4mTHwxyw=Mu^!W6ga^sh2!2z4qi>@8uu#TK|)u%g~wl; z7<~XQ3Gdu7R{00-7^AWM6P=#n!rxLt_rWxaEN%wrO+3bsnk$CWe^2pW`D3`&(DuO@ zKWZ_>olFj%BGlh)z_mYVS*a;&2(k80a;fvPH{xve+Y>_>c-MPHbKGnQr=Ll2{Nchg zDZ#W~+(|u{%&{2zM@sNGK2v)zIe68tyq$H&;tznmP>@iYv}n-ag19DIXdx*H7j;*-|F?*F(WO2&K3u&sPcQ#LuMumKdtY$E_L%whA_&u6XK_ zdl~86X^KPi^DCf+({JK~PGT^b&tcQT8EMI(+X(42Ov8F6M*oi256|2`KFYnx7`iUx zxOZVGjd!#~^1L4T&vV>c9NykJ2#=#|Te7pn#Fl5^zXN2M42B_eJs;ZY7;|r-1{dI^ znYi+d&kqEz@`5e-;I@Yw422159yy<~KYW3w{ekvTf5QrAbBrR`(#yP-U`Jg^`oFDU z4pww#_&=;@22^4qXYv7}+wE}tiNxSLc%4l~B`4X5F|n1M6eq)^V?ygHJMMA7sf_jc zabF(5c)FgWeVp?_6Ab9cy4^%$=r zJht;rcy_Gt=Hlr{DC@@khNm)l@4&vor_SEU=u~nuo?66c8aGP)VZl?z)qG5?x>+J) z6N3eKTw!vrag*hoIQk^|f2d_@)nZl?_^?`s4%-C9PR3IuT&~fJSMj>Lp5o50Q}q}OJ}JZ1_p!NbIH$-@26SU#)fGnv%nU=E=+;fx>IqD^5PC&m9=oH@fVgrwfk4%>qbAP;!Za!^5%kfx^J=;br0A^gdT4`{hH#hEW zs^Dlm?)!F1b{3o1c!ppA;RO^ z-51vLPL=iev|Y!b_YQL?p6VhcE#8Z#YXa}G-f0q9x|A7A#_Me2&S%256QoIe6zNB)(n@}{Mr`LQogEe@Uxt`uW?#I*4<#jZZFAaFxAXm4}qbB`w_OXvGEMpEw zIZ38ital6Vq{sBWkQjOy&l@f6Ht~FAK=rdxQb7)$;ut$N`3-oQZFkr8AHKp2XvX1x zY0F5pOXns=XW?nI&klsM)WkMdLx|8;$Tqe-DVi@FsHwamqud+udf<8OS&P@I4ZYwvQ#+qkFVd9|{VgWK_1&ClS_ zBfw3LNo}L~&VuH}Ej~2cdUUsQqW_gPWOM!Nj=xoAb0OPNH*1fa-wP zz=ZZ*Q`|-6j4*|*Nz#F@IdpOJamsY&nAkRKU+)QqOMXcX)xOdjK{m=?7;8M8*_mIC zsZDq)ouh$m^E95`CVOu^6FYcqch4QpI8&TVUE6@?4#Gf3F9VI^dVZ!UY)j3DfT?cH z7hUBw%)2%pg{Mm~$1JVGHQIXImf?(U$)V2)CA!sSKAvP^+cUum*)5env4!k+h~Q( zri$*$b?;d(6R%Ii^Ka_9`Ctdfe_pLI3ww%rQ|HL|`sJl}$UnNxGkBX~`EsL#Xi!E){kJ^^Ysw;J^FRS=^ z)|XZABL1k{23VzUBxtSpB>}#5r;L}{1WmB=FSiN*&MLks@vI-;IIJ2x#io~4{8VeF zS^n=W^LaiQ?z9>1vKeI6!g;@v@44!16FwJ$%UW1z0s~F;=hARt;QY`4ZE( zr&BJ!4CpbNbrn`gR@)@9DtfKu>nxX56V_vue2Rzr?CP z-(Z#gI9Antht*3qi2VsGbdoKFYRf2NZD%d($rMtlLcxx}j zs>1r#UW~1b-wLajtQy=JtNiV(?O<)EApKW@RDdc>!|Ej~zbjTfyauauy|K~Qfml_X zfz?Y^JPRu{ia*Lf+WO1JTnpjr6@wEE^+Fb~T=-vjz%tty^x`NP&O#;Snj zHl3`}J%-iN+F<=>uodukV)c?$!(Oz0z5;5%Zme3i538QNi{+p10DqLB7^@0C6tq?i z_yk|+Keg#T!>XspY`W4`>AtpHmU7GZz7a4**E%(usk{?5zO+@oA1#+vdwz1WRmf#u z)RN*msc!QEs+-r}*_!a$Hva#hbq}HcM!{}JN;g#7UxMwxIqTK`HxX|B|0>r+G;y~? z1!$ROusK#MrKPn=SpNCi^G7pzrJTQ5rN7F?cfzXR&el)0>1D;!tnF&8X*$UX#1i4_ z22l+?uzJZlrpF}Kh}>%|mQ}LrtY6xyg5H+PYPY=sE1qGwtQtJn`hRCt{tz3F_2#G) zAo^btxD^Z~gED5>jIyeDxb^?esv+6L%Z{<>{->?&6_jHO9BUK0*5pif>X{q*IMMl< zzKJ$YR*ji#eOWbTiuFrd9g8$}zzO>t_*D%pICOIydR>+94s+xj}u=l*Cf z_ARu9Jz{MUR?Sh*V4=~meI(pG2s_#P^{}EO%Sygk``m!3tPpvPj_%Ez4tMZRnUsnFH z$l@m8zGPL?nTRBO9h-V3XIy|HRSU#wpL3)|7Hpua6B1FO8lYyqXM3LXKM z9feiHM=PB|siy6Skqru#dqYQn^89Om0}rLD&0;j(t8 zB;dYe)qq9T|2wM!mk_TcEBT{}R@wBjYTz2I%2|(9MbBWBZX;GNS@CDf+Qsy&jgVCZ z+px;8-P-3Z-+|Suv{gkf!)15bcv<;xVpZN-mdmQ#z1H8GPe3P~12&@AM#!osA7Ztd zKeb#|1$>6ph2Hlz{udiBtMsR_s`wAfWtHzwtQr=jot0O9Bp@qRjz7v+!6uNEUkR&> zRk13lnvIuLLu*8 zW?qI z+phxK5!afMLG}bV8?0ft!zP)4oY<4ardM=Y1s@D^Dg>+Kn( z0MY-F;H<9(F18sxkF-*bq(qYSB|Ro+BXordmPzM~{pvyRzpe`hsu-xIH9{9x1lC##+Jcbo1%SZ~6WKp6u1W33t##MgyJ z70dt6TXjnnY;HEhc~{R!`sYUHKQ}u6xzYL0jn02=bpCUr(|x|hf8&0nch;+|YY$%k zP5aM{PF+W&G19XC-00MePhBBqTl+t6a1zODOqqXfbpGoN&wp-o{&S=ApBtV3-01x0 zM&~~_I@@x;LTAww>_0a;{~I?%|GCkrt1#UN)eX1OH#o)Ri~n<@lY!9dpBtUtIQ;t? zq-Sq*rq6Q9jWOlFb-FvrCiI=t&qROcR4_T;IoeTn0&(91QcU*ufRWz=_6T$^ zu_pjACjiq=0Io8-1$GG}`~c`=@_qnJ`vFiQ(8Vo zp8#`yaw?i{e{#AyJxuGL0ZBiTqUdK*^fJc;jtcbn1#qn?`~|S!7r+^T-X`r=K{X1af?|?l5nI`r$Am%h+`f0#Wvs+-7K*AY7mdQHZ2`{9|}W{S1YJJHZq>eulyU zoDrC4()@r_KVY37Fxi|EI4O`31(<49M*&tv`74@=0e@E~k6+*c`Ugm{JwS?^O(+P6 z4gzw5fazwdz!rhHGJt%OT?R0+3}BDIOcPrc5K|T~y)58Xvs+-7KteQNw#kbIOp6AT z2;5;BhX9R2fO#RnTz&xuI3UpOJiuLM?s?(kfRRDVg_^H78fSB_E)6WMiH@gLP2_#entT1_1 z0n@4iN(5G##?=6gssZLz1FSa10tW=zRR^pwbE^a9R0kXvSZ7+-03_7_6x9H%H^&5y z3iPN6*kB540v6N+oDq21q{RSIV*u-702|FIfs+Cmv4G8Hbu3_2ETBRyz*du93(&t7 zV7tI`CR7^`T^o>78?fDM71$yWR|oKd$*uz!SqHF3V5fHE9(;E)Mj42ZrMkaIDh#B3GVA`sUQ@Uh8m2pHKAut(sqiERXkX#|+w2=JNN zEwD=fO(eyj+tVC0|M7S`$EO6TrGAfS=7Nfs+Cmmjiw^t1kzv zx*SlUDd3bzZwlz&6tG?3cN1y`h;9bRX$ClBwhC+!h->ce=Ks?%qni8snvu;Rdm#Lv zH?{>yVp;&Ew*W+$-2%G=60QIQP2LrNX;%PB1j?GmE&cuY>e)=0kSUfq&opa=DQD)& zlsAWEDwx)Zn2P3pnM&rEOl8v{2~))s%A9Xb$W%3H?6yudvs9+KIVDrWT-ydy)2x<> zF-|fj)}+hSG8<%Sn^0R!9g`^&XSQO@mbNrCt{qLSXR_PDFEBf0;`wO^=0Y<;<|4CO zroM?!!89;=7&9$Jy-Xo%L(}+5cq21Yrm-oOxx_TH1gOv% z(AuPT2K4U?*e;N4LR|pST>v><0PW0Hfh_`YselxdoeCJ43fLpi!NjHkV$uN9(*ReQ z-2%G=61oC9nY^xmX=Sx09hul4`5m!K#9Nz)3`67QD4BkzJP2~EO0=eT|dBRGq)dLPCvkL zfgIDiKOm_;pr}7!oH-_NRG>#XV1g-32P{YjoDrC4(gpxh2LRR$08BQg1WpQM30 zxjBG2Ie_B=>rCshfTXd2qOpMW=9s`yfga-k8%*Iiz=CmrGXhVWwDEw{@ql&X0UOOJ zfs+Cm69Ajd>Ir~V695%*0b5OaE}(xdV7tI`CNvQcJrR&I5wP8C71$yWHwo~9$({rl zISH^wV5f(o%-m^!Inw~g1@@TMd4QxmKv5oGuQ?`gRG`OAfPJR$CcuK50A~c=HEA~kQf~&V zyBYAlIVEsXAmbLmezW=(z^YpS6{Z7JbFz-MN+z%GG=nSd`$-b}!>nSc_3Bc|~zK%-fJd9wh= zOtHWLfp)h7zBY4j1a9rTHX?+_Y={7*oZGi90F@d83J!S(=n8MkB1+xKX1b#GW zw*yjd2dujt@UuB3a8e-S4#2Nw^&Nm!cK|BP0h}`Fa{&G40JaPKZbEYb(Q^Sga{*_} zR)H-7ad+x!!f!_1sjG=QA$uUYnz)N3F?Ru`-vx*=y9IU$B-{-Mn!LLK)9wb82$VIA z=K&hc1I(KT2$^Dm0|M>t0hBXy?*YuY2XI`Vf@ys(An9H}(Y=65=9s`yfgbk(s+hw2 z01NH|oDryM((VVO-Va!JKcKofC2&$8;{iZTv-$zRss{iS!hl$l9tQLe1GWp)HlYUr z(GLQ09t6ahtpZyF;^qVDne6$1k@Eq21maEXLx7lv0Mj1=Tx50&>=H;YfCeVd0Hzs0 zi9kcscmbf%0>HclfX1d+;DA88LcpbFZXsY!A>g<`f@%FQAn9R1(Zhht%`t(a0zDQ2 znwi3dfCUQyX9QZ9v_}A`j{w#^0%&PY37izjC;}v!)kT0+MgH=p{33sMU4SeC^j}1Z z?Tbi}Y(k3x(Tf2&ivjJ-R)H-7aZ3OxCVL5B^5dFuev)&WWcMwrG=02)03nD+!A+Y}2N5NNj^Fxt#r516waa9kkAw0;th z^dz9@Nx(RBOyHsb!3Mw?fr%#VDM0E|fOSs+CYw_NCj~N|223@pp9ZXY z8c^XGK%Pl|2GIW*z;=O~O=u$^dLtlbBVfAODzHT$ZWAEiWN!kD+yvMoFw?|t2E=Rz zOy3N+)$9g1x0(1YnAs*z=617B<_^<%D`t+FDKpm;%iL+2J&U=^%$2#@9G019T0e)m z$J{S-uQ?`jpXsm-bH6E+dBB{I37fR-m

Lnfd0F%tPkd=P|~tmRVq&7chk;9b@{x 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 CT0Tbr diff --git a/packages/bot/src/commands/inactive.tsx b/packages/bot/src/commands/inactive.tsx index 3e8fd4c69..55c3f2d70 100644 --- a/packages/bot/src/commands/inactive.tsx +++ b/packages/bot/src/commands/inactive.tsx @@ -26,7 +26,7 @@ export const inactiveCommand = new Promise((resolve) => { .setName('threshold') .setNameLocalizations( localizationObject( - 'bot.commands.inactive.options.threshold', + (strings) => strings.bot.commands.inactive.options.threshold.$, undefined, true, ), @@ -36,7 +36,8 @@ export const inactiveCommand = new Promise((resolve) => { ) .setDescriptionLocalizations( localizationObject( - 'bot.commands.inactive.options.threshold.description', + (strings) => + strings.bot.commands.inactive.options.threshold.description, ), ) .setMinValue(0); diff --git a/packages/bot/src/core/localization/translator.ts b/packages/bot/src/core/localization/translator.ts index de62d1505..133bf10cc 100644 --- a/packages/bot/src/core/localization/translator.ts +++ b/packages/bot/src/core/localization/translator.ts @@ -12,9 +12,7 @@ export function translator(localeRaw: Locale) { SUPPORTED_LOCALES_DISCORD.includes(localeRaw) ? localeRaw : DEFAULT_LOCALE_DISCORD; - STRINGS; const strings = STRINGS[SUPPORTED_LOCALES_DISCORD_MAP_INVERSE[locale]]; - const unwrap = unwrapper(SUPPORTED_LOCALES_DISCORD_MAP_INVERSE[locale]); return { locale, strings, unwrap }; diff --git a/packages/bot/src/events/interactionCreate/handlers/chatInputCommand.ts b/packages/bot/src/events/interactionCreate/handlers/chatInputCommand.ts index 02e567185..a6228f3f2 100644 --- a/packages/bot/src/events/interactionCreate/handlers/chatInputCommand.ts +++ b/packages/bot/src/events/interactionCreate/handlers/chatInputCommand.ts @@ -2,11 +2,13 @@ import { ActionRowBuilder, AttachmentBuilder, ButtonBuilder, + ButtonStyle, CacheType, ChatInputCommandInteraction, InteractionReplyOptions, } from 'discord.js'; import { InteractionRawReturnable, commands } from '..'; +import { UserError } from '../../../core/blitzkit/userError'; import { buttonLink } from '../../../core/discord/buttonLink'; import { embedWarning } from '../../../core/discord/embedWarning'; import { normalizeInteractionReturnable } from '../../../core/discord/normalizeInteractionReturnable'; @@ -124,26 +126,27 @@ export async function handleChatInputCommand( index++; } } catch (error) { - const { t } = translator(interaction.locale); - // const components = [ - // new ActionRowBuilder().addComponents( - // new ButtonBuilder() - // .setLabel(t`bot.common.errors.get_help`) - // .setURL('https://discord.gg/nDt7AjGJQH') - // .setStyle(ButtonStyle.Link), - // ), - // ]; - // if (error instanceof UserError) { - // interaction.editReply({ - // content: error.message, - // components, - // }); - // } else { - // console.error(interaction.commandName, error); - // interaction.editReply({ - // content: t`bot.common.errors.uncaught_error`, - // components, - // }); - // } + const { strings } = translator(interaction.locale); + + const components = [ + new ActionRowBuilder().addComponents( + new ButtonBuilder() + .setLabel(strings.bot.common.errors.get_help) + .setURL('https://discord.gg/nDt7AjGJQH') + .setStyle(ButtonStyle.Link), + ), + ]; + if (error instanceof UserError) { + interaction.editReply({ + content: error.message, + components, + }); + } else { + console.error(interaction.commandName, error); + interaction.editReply({ + content: strings.bot.common.errors.uncaught_error, + components, + }); + } } } diff --git a/packages/bot/src/events/interactionCreate/index.ts b/packages/bot/src/events/interactionCreate/index.ts index e9b1c7a48..9b9f097b3 100644 --- a/packages/bot/src/events/interactionCreate/index.ts +++ b/packages/bot/src/events/interactionCreate/index.ts @@ -1,3 +1,4 @@ +import { assertSecret } from '@blitzkit/core'; import { AttachmentBuilder, AutocompleteInteraction, @@ -7,11 +8,36 @@ import { ChatInputCommandInteraction, EmbedBuilder, Interaction, + REST, + Routes, SlashCommandBuilder, SlashCommandOptionsOnlyBuilder, SlashCommandSubcommandsOnlyBuilder, } from 'discord.js'; +import { aboutCommand } from '../../commands/about'; +import { auctionCommand } from '../../commands/auction'; +import { breakdownCommand } from '../../commands/breakdown'; +import { debugCommand } from '../../commands/debug'; +import { evolutionCommand } from '../../commands/evolution'; +import { fullStatsCommand } from '../../commands/fullStats'; +import { inactiveCommand } from '../../commands/inactive'; +import { verifyCommand } from '../../commands/link'; +import { ownedTanksCommand } from '../../commands/ownedTanks'; +import { permissionsCommand } from '../../commands/permissions'; +import { pingCommand } from '../../commands/ping'; +import { playerInfoCommand } from '../../commands/playerInfo'; +import { ratingCommand } from '../../commands/rating'; +import { ratingLeaderboardCommand } from '../../commands/ratingLeaderboard'; +import { replayCommand } from '../../commands/replay'; +import { researchCommand } from '../../commands/research'; +import { searchClansCommand } from '../../commands/searchClans'; +import { searchPlayersCommand } from '../../commands/searchPlayers'; +import { statsCommand } from '../../commands/stats'; +import { todayCommand } from '../../commands/today'; import { RenderConfiguration } from '../../core/blitzkit/renderConfiguration'; +import { handleAutocomplete } from './handlers/autocomplete'; +import { handleButton } from './handlers/button'; +import { handleChatInputCommand } from './handlers/chatInputCommand'; export type InteractionRawReturnable = | string @@ -54,63 +80,63 @@ interface CommandRegistryExplicit extends CommandRegistryBase { export type CommandRegistry = CommandRegistryImplicit | CommandRegistryExplicit; export const COMMANDS_RAW: Promise[] = [ - // auctionCommand, - // permissionsCommand, - // debugCommand, - // aboutCommand, - // inactiveCommand, - // ownedTanksCommand, - // playerInfoCommand, - // searchClansCommand, - // searchPlayersCommand, - // fullStatsCommand, - // breakdownCommand, - // verifyCommand, - // pingCommand, - // evolutionCommand, - // statsCommand, - // ratingLeaderboardCommand, - // todayCommand, - // researchCommand, - // ratingCommand, - // replayCommand, + auctionCommand, + permissionsCommand, + debugCommand, + aboutCommand, + inactiveCommand, + ownedTanksCommand, + playerInfoCommand, + searchClansCommand, + searchPlayersCommand, + fullStatsCommand, + breakdownCommand, + verifyCommand, + pingCommand, + evolutionCommand, + statsCommand, + ratingLeaderboardCommand, + todayCommand, + researchCommand, + ratingCommand, + replayCommand, ]; export const commands = Promise.allSettled(COMMANDS_RAW).then((rawCommands) => { - // return rawCommands.reduce>( - // (commands, registry, index) => { - // if (registry.status === 'rejected') { - // console.warn( - // `Command ${index} failed to load; skipping...`, - // registry.reason, - // ); - // return commands; - // } - // return { ...commands, [registry.value.command.name]: registry.value }; - // }, - // {}, - // ); + return rawCommands.reduce>( + (commands, registry, index) => { + if (registry.status === 'rejected') { + console.warn( + `Command ${index} failed to load; skipping...`, + registry.reason, + ); + return commands; + } + return { ...commands, [registry.value.command.name]: registry.value }; + }, + {}, + ); }); -// const rest = new REST().setToken(assertSecret(import.meta.env.DISCORD_TOKEN)); +const rest = new REST().setToken(assertSecret(import.meta.env.DISCORD_TOKEN)); -// commands.then((awaitedCommands) => { -// const body = Object.values(awaitedCommands).map((registry) => -// registry.command.toJSON(), -// ); +commands.then((awaitedCommands) => { + const body = Object.values(awaitedCommands).map((registry) => + registry.command.toJSON(), + ); -// rest.put( -// Routes.applicationCommands(assertSecret(import.meta.env.DISCORD_CLIENT_ID)), -// { body }, -// ); -// }); + rest.put( + Routes.applicationCommands(assertSecret(import.meta.env.DISCORD_CLIENT_ID)), + { body }, + ); +}); export async function interactionCreate(interaction: Interaction) { if (interaction.isAutocomplete()) { - // handleAutocomplete(interaction); + handleAutocomplete(interaction); } else if (interaction.isChatInputCommand()) { - // handleChatInputCommand(interaction); + handleChatInputCommand(interaction); } else if (interaction.isButton()) { - // handleButton(interaction); + handleButton(interaction); } } diff --git a/packages/i18n/package.json b/packages/i18n/package.json index 3dd28cd05..6e5d9d87d 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -3,6 +3,8 @@ "private": true, "type": "module", "main": "src/index.ts", - "dependencies": {}, + "dependencies": { + "ts-deepmerge": "^7.0.2" + }, "devDependencies": {} } diff --git a/packages/i18n/src/strings.ts b/packages/i18n/src/strings.ts index 687eb2e7e..93d17a32e 100644 --- a/packages/i18n/src/strings.ts +++ b/packages/i18n/src/strings.ts @@ -1,4 +1,5 @@ -import { merge } from 'lodash-es'; +import { writeFile } from 'fs/promises'; +import { merge } from 'ts-deepmerge'; import en from '../strings/en.json'; import es from '../strings/es.json'; import fr from '../strings/fr.json'; @@ -54,9 +55,7 @@ for (const locale in stringsRaw) { } const localeStrings = stringsRaw[locale as SupportedLocale]; - stringsPartial[locale as SupportedLocale] = merge( - {}, stringsRaw[DEFAULT_LOCALE], localeStrings, ); @@ -71,6 +70,8 @@ export const STRINGS = stringsPartial as Record< BlitzKitStrings >; +writeFile('test.json', JSON.stringify(STRINGS, null, 2)); + export type SupportedLocale = keyof typeof stringsRaw; export const SUPPORTED_LOCALE_BLITZ_MAP: Record = { diff --git a/packages/website/src/components/Embeds/breakdown.tsx b/packages/website/src/components/Embeds/breakdown.tsx index 14ca3a885..d98b9ecf5 100644 --- a/packages/website/src/components/Embeds/breakdown.tsx +++ b/packages/website/src/components/Embeds/breakdown.tsx @@ -8,7 +8,7 @@ import { sumCompositeStats, type IndividualTankStats, } from '@blitzkit/core'; -import { localizedStrings } from '@blitzkit/i18n'; +import { STRINGS } from '@blitzkit/i18n'; import { ReloadIcon } from '@radix-ui/react-icons'; import { ContextMenu } from '@radix-ui/themes'; import { useEffect, useMemo, useState } from 'react'; @@ -21,15 +21,12 @@ import { BreakdownEmbedCard, BreakdownEmbedWrapper } from '../TanksEmbed'; export const compositeStatsKeysOptions = compositeStatsKeys.map((value) => ({ value, - locales: Object.entries(localizedStrings).reduce( - (accumulator, [locale, strings]) => { - return { - ...accumulator, - [locale]: strings.common.composite_stats[value], - }; - }, - {}, - ), + locales: Object.entries(STRINGS).reduce((accumulator, [locale, strings]) => { + return { + ...accumulator, + [locale]: strings.common.composite_stats[value], + }; + }, {}), })); const [tankDefinitions, averageDefinitions] = await Promise.all([ diff --git a/packages/website/src/components/LocaleSwitcher.tsx b/packages/website/src/components/LocaleSwitcher.tsx index 78eab08ff..3b9b37261 100644 --- a/packages/website/src/components/LocaleSwitcher.tsx +++ b/packages/website/src/components/LocaleSwitcher.tsx @@ -1,9 +1,9 @@ import {} from '@blitzkit/core'; import { DEFAULT_LOCALE, + STRINGS, SUPPORTED_LOCALES, SUPPORTED_LOCALE_FLAGS, - localizedStrings, } from '@blitzkit/i18n'; import { Select } from '@radix-ui/themes'; import type { LocaleAcceptorProps } from '../hooks/useLocale'; @@ -44,7 +44,7 @@ export function LocaleSwitcher({ locale }: LocaleAcceptorProps) { {SUPPORTED_LOCALES.map((locale) => ( {SUPPORTED_LOCALE_FLAGS[locale]}{' '} - {localizedStrings[locale].common.locales[locale]} + {STRINGS[locale].common.locales[locale]} ))} diff --git a/packages/website/src/core/blitzkit/branches.ts b/packages/website/src/core/blitzkit/branches.ts index 2f3f6933b..8c8158063 100644 --- a/packages/website/src/core/blitzkit/branches.ts +++ b/packages/website/src/core/blitzkit/branches.ts @@ -1,8 +1,10 @@ import { assertSecret } from '@blitzkit/core'; -import { DEFAULT_LOCALE, localizedStrings } from '@blitzkit/i18n'; +import { DEFAULT_LOCALE, STRINGS, type SupportedLocale } from '@blitzkit/i18n'; export function resolveBranchName(locale: string = DEFAULT_LOCALE) { - const strings = localizedStrings[locale]; + if (!(locale in STRINGS)) throw new Error(`Unsupported locale: ${locale}`); + + const strings = STRINGS[locale as SupportedLocale]; const secret = assertSecret(import.meta.env.PUBLIC_ASSET_BRANCH); if ( diff --git a/packages/website/src/core/i18n/getStrings.ts b/packages/website/src/core/i18n/getStrings.ts index a83acbe33..ccd3480bc 100644 --- a/packages/website/src/core/i18n/getStrings.ts +++ b/packages/website/src/core/i18n/getStrings.ts @@ -1,5 +1,6 @@ -import { DEFAULT_LOCALE, localizedStrings } from '@blitzkit/i18n'; +import { DEFAULT_LOCALE, STRINGS, type SupportedLocale } from '@blitzkit/i18n'; export function getStrings(locale: string = DEFAULT_LOCALE) { - return localizedStrings[locale]; + if (locale in STRINGS) return STRINGS[locale as SupportedLocale]; + throw new Error(`Unsupported locale: ${locale}`); }