From 0fa22c60c3f795b84b8b40847aaed26a8933a290 Mon Sep 17 00:00:00 2001 From: Dragon Fire Date: Fri, 12 Jun 2020 12:53:14 -0400 Subject: [PATCH] Undertale Command --- README.md | 9 ++- assets/fonts/DeterminationMono.ttf | Bin 0 -> 21024 bytes assets/fonts/UndertalePapyrus.ttf | Bin 0 -> 8780 bytes assets/fonts/UndertaleSans.ttf | Bin 0 -> 9228 bytes assets/images/undertale/alphys.png | Bin 0 -> 1281 bytes assets/images/undertale/asgore.png | Bin 0 -> 1528 bytes assets/images/undertale/chara.png | Bin 0 -> 1149 bytes assets/images/undertale/flowey.png | Bin 0 -> 1298 bytes assets/images/undertale/ghost.png | Bin 0 -> 1215 bytes assets/images/undertale/papyrus.png | Bin 0 -> 1196 bytes assets/images/undertale/sans.png | Bin 0 -> 1215 bytes assets/images/undertale/temmie.png | Bin 0 -> 1484 bytes assets/images/undertale/toriel.png | Bin 0 -> 1332 bytes assets/images/undertale/undyne.png | Bin 0 -> 1327 bytes assets/json/undertale.json | 12 ++++ commands/edit-image/undertale.js | 99 ++++++++++++++++++++++++++++ package.json | 2 +- 17 files changed, 120 insertions(+), 2 deletions(-) create mode 100644 assets/fonts/DeterminationMono.ttf create mode 100644 assets/fonts/UndertalePapyrus.ttf create mode 100644 assets/fonts/UndertaleSans.ttf create mode 100644 assets/images/undertale/alphys.png create mode 100644 assets/images/undertale/asgore.png create mode 100644 assets/images/undertale/chara.png create mode 100644 assets/images/undertale/flowey.png create mode 100644 assets/images/undertale/ghost.png create mode 100644 assets/images/undertale/papyrus.png create mode 100644 assets/images/undertale/sans.png create mode 100644 assets/images/undertale/temmie.png create mode 100644 assets/images/undertale/toriel.png create mode 100644 assets/images/undertale/undyne.png create mode 100644 assets/json/undertale.json create mode 100644 commands/edit-image/undertale.js diff --git a/README.md b/README.md index 3ed0c1b5..7c776b18 100644 --- a/README.md +++ b/README.md @@ -227,7 +227,7 @@ in the appropriate channel's topic to use it. ## Commands -Total: 478 +Total: 479 ### Utility: @@ -595,6 +595,7 @@ Total: 478 * **subtitle:** Adds subtitles to an image. * **tint:** Draws an image or a user's avatar but tinted a specific color. * **tweet:** Sends a Twitter tweet with the user and text of your choice. +* **undertale:** Sends a text box from Undertale with the quote and character of your choice. * **yu-gi-oh-gen:** Draws an image or a user's avatar on a Yu-Gi-Oh! Trading Card with the text of your choice. * **zero-dialogue:** Sends a text box from Megaman Zero with the quote of your choice. @@ -883,6 +884,8 @@ here. - [Capcom](http://www.capcom.com/us/) * ace-attorney ([Images, Original "Ace Attorney" Game](http://www.ace-attorney.com/)) * zero-dialogue ([Image, Original "Megaman Zero" Game](http://megaman.capcom.com/)) +- [Carter Sande](https://gitlab.com/cartr) + * undertale ([Fonts](https://gitlab.com/cartr/undertale-fonts/tree/master)) - [Cartoon Network](https://www.cartoonnetworkme.com/) * edd-facts-book ([Image, Original "Ed, Edd n Eddy" TV Series](https://www.cartoonnetworkme.com/show/ed-edd-n-eddy)) - [cheesecakejedi](https://imgur.com/user/cheesecakejedi) @@ -918,6 +921,8 @@ here. * emoji-emoji-revolution (Concept) - [Deathbulge](http://deathbulge.com/comics) * ultimate-tattoo ([Image](http://deathbulge.com/comics/114)) +- [Demirramon](https://www.demirramon.com/) + * undertale ([Images](https://www.demirramon.com/en/generators/undertale_text_box_generator)) - [Derpibooru](https://derpibooru.org/) * derpibooru ([API](https://www.derpibooru.org/pages/api)) - [DeviantArt](https://www.deviantart.com/) @@ -1273,6 +1278,7 @@ here. * pogchamp (Concept) * porn (Original Subreddit List) * simp (Concept) + * undertale (Concept) * worse-than-hitler (Concept) - [PAC-MAN Party](http://pacman.com/en/pac-man-games/pac-man-party) * balloon-pop (Concept) @@ -1473,6 +1479,7 @@ here. * genie-rules ([Image](https://www.reddit.com/r/MemeTemplatesOfficial/comments/bht9o6/i_made_an_hd_high_quality_version_of_the_4_rules/)) - [UNDERTALE](https://undertale.com/) * temmie (Original Game) + * undertale (Original Game) - [Unsplash](https://unsplash.com/) * stock-photo ([API](https://unsplash.com/developers)) - [Urban Dictionary](https://www.urbandictionary.com/) diff --git a/assets/fonts/DeterminationMono.ttf b/assets/fonts/DeterminationMono.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4a87da379a0a73c370b76ddf65a4ef6b079cf0aa GIT binary patch literal 21024 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 E0U!H%1poj5 literal 0 HcmV?d00001 diff --git a/assets/fonts/UndertalePapyrus.ttf b/assets/fonts/UndertalePapyrus.ttf new file mode 100644 index 0000000000000000000000000000000000000000..3637ec0892033f83a0ae3ed74161cb576f35a941 GIT binary patch literal 8780 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

B?Ac@n=@lGzD#Tn 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 Q%?E!o_>z|&y}jpu0V_uv!2kdN literal 0 HcmV?d00001 diff --git a/assets/images/undertale/alphys.png b/assets/images/undertale/alphys.png new file mode 100644 index 0000000000000000000000000000000000000000..40cccefcf4dbb0be1f9ef52ff7981f1cb72a15a1 GIT binary patch literal 1281 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 HN@xNAkoS*T literal 0 HcmV?d00001 diff --git a/assets/images/undertale/flowey.png b/assets/images/undertale/flowey.png new file mode 100644 index 0000000000000000000000000000000000000000..34fa105cac5d3d6e05d67f2a93ee81fe4bb2cbd8 GIT binary patch literal 1298 zcmeAS@N?(olHy`uVBq!ia0y~yU~&SoXK=6qNshT~2@DJ@H$7b(Ln`LHy?c7n6bBL4 zK*L}E>m}8V9E~TL-?7Q&&0RhFRp)V8PSdlWZT>ScaD4gwmYad0qFa%L;fPTSLqkNH z0E5730Val|zgzYh_+FlTospqn_BG#6T`+M;Ck6){XAXvrR1QXljXa7B3ezw(Q$^A1 z=Wn@p+_pJC``BJAZZk z`ft_mUjD6ftKQFW<-)J;o*-3I^_@b`z37SZ`X;t%>#FzC4N)SB3=LB^mG_2fI!5ch zUw-PV-nV%RSAF}(ATe7B7z|p`Ez>p?eA8RAIX!0EzdIM-%iaDZvvAc@?gm3mpx@Vg zD(}rL4gGmDd&_-ghL9)g41uPdpC`EM)w{*py)OKE9$&hbOPC?X9b|d!I*wdji@leM zuBUg&{(ZA?^}6e^;S2?`uE6m7I#a3SYUI4_=UKkSgqBQEWU%lDY1tdsvTfc`$-5VK zp8|>bLB*ni<}d&J)!2{0KnSe)rqUJTTQ?D>dJqZ+*A#)y=B1 zmn*+BGRVNBveUc0-hVBhue(ZRRmJA0< zf#IWY&BT1t5e?Qy?;b6B!EoUF)_;4$K&fNCt@4)e*K01^+w2yeJ$1pwc|E)gqTo>3 zUZM^sW@2OHIhW|lO%c7C^4*X1|^E4 zq6@{&voS&34V2bRFTa*vd98lm*WWsGc$pfiK%NVW5sdnB>Oz>80K=7~pg2$JzL50( z=7MXl8KDYl1fw*p876>}E8GP%&)eW425#Ng%fAlUocE7oXE^W}93_|~%3sDw;#Dy* TDid{pWgUa3tDnm{r-UW|+e7pc literal 0 HcmV?d00001 diff --git a/assets/images/undertale/ghost.png b/assets/images/undertale/ghost.png new file mode 100644 index 0000000000000000000000000000000000000000..c73dc82af4a086879856a516acc644dd1be7bd51 GIT binary patch literal 1215 zcmeAS@N?(olHy`uVBq!ia0y~yU~&SoXK=6qNshT~2@DJ@ZJsWUAr*7p-raa^wgE%y z#h}y&f9IPyhgdD$-<8D3m~+@RedR5M*1YifJ`&3^XVoz>u>89F3ur);VGBb;M4JGE zz-a*{h9pTR28T87FPjr3vhJ}n9LV(IKdB88N)r54e(?QKZ;nsDK4;Z(GZaX;axiqH zaxgM%OAyyxShc z!tgv8Bx2~gVmi~7YrpHJDl%B~D*;X3l`FU_icxFke|r%n28%whP^{oCZ%(bkG7g5m z#UN+o1-HD5YkD?Ck>Q5FAkZhV`#6?PT@dGc`OE$L?TI(OSTbx`08*zH-*V||QP_*v zihEDf;~Jh_XLR5f0eazDYWIZAj%ajG@qvnc6Raxb{tYXOU z1RK4M+%BH!`_hn+J(*QdV7CF1Dm8TrL9M5n89I~&L zactF7_TGQ~@!SN40(+1dt7j`+S-p1u@8H+J`*+DPOal3D%?+iHUq_!UU3BT!8~@ku z*&D0_A<_9F~#?vLpeCmMHbH8r)ye$9_WGJ;E;4(v2pLyL31)$gWpqIN*-zW7Ir}-DztQXDxgAnEi0T z?>GhqzrY#RKqDrs{_*YSr6MMV9o(R>z+!nlZ`I?fyn9bd2hI=V@xd><#J~AV;`%^si`LK5c#}W7K_qhN=Z1_lPLoyQF1b{eHaw z;|CR2pzBRz1+Ahq&IK9m%bm-2dzU?fji(^ccfP?b@3b6W?_XX}bNjcY(>-&Bszo6E zZTe2-(-&O3@2@Wt{lEU#Z)S)2B0w)*+u-`*rO=jTJd6h_!2AN&7s0A8UOd15rq(W% zgW=dhux3rC`Ff6P&+oPTU4Bi~Lz1cCpC-_uYnGY_dFZPy-hMeT{p+VXCWl4W<^_O) z>u#KKNh#;9Usog;F4%({do@>Zm)Gm4x&ETEa6_?$@Geiyqn<_#FM1#$p9gf8gFULk z!uzJzKD{fo{`&Fj?qfC2B^bW=gZzC|WZ~EC=jQ90MxS5Iz<9s{1R@@X}bY^@E0!TN{5#B^XePj&Bw-OCS!C_>dmx2!5Z z9q_tv?Q`2|YlaK*;3z&TP$b2}V39Qo7#sy5e*}UiF(`!p0Vd)icp^^a_*<}6fZ>TD zN;2jBADcXX+djV)rFSn}yv^9~51g(*i5{G8lhz4pE!`8h{_phy)#oL-t@E1y*mHqzj%fR z^RMxNBi(Sm@|9nA=D&LNx>ZD-;RQG}x}=?=m!DksXo?iW7j=+PAsd~6$%i4SU4X&i z%*u^o%Xcy;fUTuvHUsB&92xfY>aX2Fr{=C_W_VBric-`f0<7sDlUxvgW};tI5wH|u N@O1TaS?83{1OP3os0;uA literal 0 HcmV?d00001 diff --git a/assets/images/undertale/sans.png b/assets/images/undertale/sans.png new file mode 100644 index 0000000000000000000000000000000000000000..afaeb531b34d0d460b2b5e6bd79d61b9cd1fbd41 GIT binary patch literal 1215 zcmeAS@N?(olHy`uVBq!ia0y~yU~&SoXK=6qNshT~2@DJ@ZJsWUAr*7p-aXhi+d!iA zV$j*&`#0@Q3e-Bigyqld>T}DaQmveKy}YU}v+Y{cZ&n6@7vJA-1I;)pz{HRw>BQim z*{!@Y%Dzg@q6dt2=nD~2-*K<*Mz+?S+pQ~lFYY{BF2j1H__K#RQvA5Dt;Y5Dsv zmmq_&CeRyeu8S}9?>@SH$&|i}FE?EL&V0ZJr0#X8YepEOm6x??>9^vRZ}#_py=OQO zB?9!wwNI`qycn%suXRoNQg`oL9b*N%D=;Ls#t25OW%&BTMwVfQKPU)vgIn$eHC5fK zdN05bvJB*&Q{oG^PhX&%%E2&iF_PSsbRJR$hk(#kNw+TRrAZzy8Qaotn17SU%z-Y^Dir*-ilN~=Sm`HMjkhmfpAulOaR<3`s=iaYEcdB5lR`jB>LFnwvT%FQ zB!&leprBaoBlv3Wv|Ib-rcTVaf1G{oIgh0-8^ifPP+X>VT{v;msO0L$=kdCs>6WQL z@nDen)2<6I?#(O>^E9O#02aEoER^ZIowmZTs3}3+ptS!Cdy0toFo!GSH_s(lw=Vb7#`fsldR{Nbpw)XYBg;^pB z3^TwX4on$ktL^v3GBP!QJ#?+e^~H-fn~$aiHZUyE19@g^jo_=mB!&h-5C@#cD9IhD sxs`qR$9OoC=6>&lV~z=Dav)78&qol`;+0G~{^w*UYD literal 0 HcmV?d00001 diff --git a/assets/images/undertale/temmie.png b/assets/images/undertale/temmie.png new file mode 100644 index 0000000000000000000000000000000000000000..b203c5331db47012ba8a19d0e543c6b5ac4b8e05 GIT binary patch literal 1484 zcmb_cZA?>F7=F1RRv1W~2<_$+i~?fuBXlOB13NmtY%L#Etf0`*(NOu=#G=$nrA(Kwp;iv+FCX1`mm5PNmRM6dfXJVG^m)W0_d(X*vpXYs^ z=e);Q%qR~xvKs(+#6(9X03bB<`zwMgx)Lgj(*Wk2iizBuw7C&Uwcv33pBMr1U=U+ zb%7t({XbjgL5HjHVCR*h*;%DY*;|0XJ()jReyo+y5yxtnSrr$*`e^i3MDlSU3V$x= zxS^bvz9Tp~PF0g{d?s(w3P|Oq>7wwhw_D8nfWMiD_U5rus%TwQ*>8@DGo-rfcUiC5 zLc(=OOS>l&R$;V@gK2{0bxFnYDuKLLZ!~-R11A9!WW>8#-TjbH;)pt%M*~#8YK!Mi z?K`gyzf8C|$SICJp{UWA`+E(>z0%PaE8mC72pl$1s>mu+$ZKp3nrpS-WLQQ=)uwJC zj&=Mj?+ZY{p~ArHF6BMZi5NY$MrLU2Adl*>ADnIH+(+P#Z5vEXtPpkgvd}`mL4h@9 z0J`=q#7wfxt+w82Tbu%2=X1i*D)P`_s&I<@wWj{2o!g?J31v=e{Ixd#7L{AcVP~cy zplcgurTJYtUoelH&G3Z0#WTa9bEA3mkHq+`UNG<*#D5;N#q(!0& zB>U#b3~ZB&EFl9VHeCAj5|;YS+A=@*sT$WXh^C>q%V{oP$I}tAnx<^B1kH*Y40qYC zum|roB$%cV9;j3a(}x7PBxf)NVJ40XWg|RFpV4}8)h3bquc^;Fp=u6BZr~h&5_enj=V2JZ#8cq6y@H;VhPptX|G&&DYknc*Tv3?eDQwX&NClo6i&PCf6VN$Y&r#KJCJ_pWXm;(dEsLyh%< zil~?Ii`6#wg{)A=8S3>+XXwQ(yg=ta{w}l3BEDZ6uwBV+l`n<6xZNJxrHZ3hXY~olqXJXKi zG~L|f41Ktr+!Dhlw@RNPfO-Gw)suxXmgQ8Ly=g6Hc+T$`eBf`zT4vZb>N~HjVSLf^ z+r<7uQzTjIxPz>2-$P-j(GkK3UjiorKMzBRoov+KOT5aaH`r^OVdih7d3w^QE=9U5PcrrNhO^+N#n>pp&C=ri>#MI&$_?H^N2@$bR*T3fd_ z>TTy&Z%MR>oZyGZ^m~|UDf)hQ)y;YEAOutYKgt?+A2~U{t$=;{Av&cYhR%#^qNN@F E3yykA7XSbN literal 0 HcmV?d00001 diff --git a/assets/images/undertale/toriel.png b/assets/images/undertale/toriel.png new file mode 100644 index 0000000000000000000000000000000000000000..c02af4025b4395123c03c0526b0d4d7f43e0db01 GIT binary patch literal 1332 zcmeAS@N?(olHy`uVBq!ia0y~yU~&SoXK=6qNshT~2@DJ@zdck^%ZTJ+)mBazOD0m*Sh;aGivL9F)=XAQ{rG`*vO*D zpfF8=h2e-$3qwOh{8HZ2o4)MfV`#WNMeSrZNT^AGLBLypi6M#8iNQg~k%OT_6;mJe z6vg|;ABeqH`uF+QO*-rC-e1nTZ~b*2gMnEu&>7j0+yAesH}m-=|6AkiVU6n-qaU7s z*+1ns!+{8|{r*xwpIpm6&T-LwE#s=%IA@jvlTCn5UUS{tX+GN`v+kEGcK2C#@4X+- z%yPg3CKDZQZnpH8rtfPjr+4BE$`?Uii@VNIJF6}5*sCQb@>}1}ERtuK(d`EGw`r|% zh}7&$)n?(jZ@Rx0GbGr6t=!TZu<~JLRZhU`pJ(SWH9XG*h1z9PCwJ-jQJ*hW-C5nY z`R|@I4u)TsL545OZuzFQR(nhB{%!vPUO#t_KF-0Q0g=gUiJG4kmz9&{>-+Y{-gEhD z1Q@<776gX8?`4j+q0+B6*VdL?i+JsIiQzy6#QkPYs%tkN>dRwic(xFvkoP`E?AA$N zo?F=0?f+l=c~|MRh}{31{r8$z^Dz7Z`>id%rEis~w!NR3-qycorI;H&f}OiQx5X~& z?3wd(&z>#Ixp40@Bg5khAlFXY8j#pyl>PEW*ZIXJ#_sF0r~Kw;$Pf7S_bT=@@Y?h> zM{f9}b+)?y@)n;heG7koGdcaZpkzA>!`}>0Kpr-C3cqRQ9BwPRuf&ESp#~h}uca1VYg_hZ=cT&a z$5w20G`h{haBL|k0QRmETy?WgG%I(4*XHv*yi5(1VDB9^aoW1<>8q~|US}`d`@8;< zm6<0qE5mhgh{)x)%$pZ#8htqFt`ftJK9Ezku4(mpw(i)%YYbcGZ7-P(y6l znHyY|-VX#N#MQSY7Ops&k!_;UqZTj!Q4x`})P3T)!&Y)vw=FM(w|U^?VF-Lkie$xxE)cdyn3X z47mOGT~^S#IQ18AKAw?dZm2O6Zt#saFPoOnSX~OJeNxdDj^kF3bhR36?@R{Wj`P!3Lr^=+u)!d^4{@&b{`h9maw14+^=?3dSkb6$gmx}gP-1RKu z@^9Yuzk3<>G=nwe2)>GK`lhbj|LvL)3xoe6P_W4bw^U7^T>CSyjX|Lwtjb4lR%)mu z6T`D$kdwCSJFR{nd&zc|)+!kMWFY2`S+szx#i7mSHzEod`;mmT7S$WYd zVfVE+?>ArZ_43v1_2G}>6d7i?3j(9+?lz9CR?z`b+o2f4wU8Klh3$SUZ~GKqXXDMv3Lh zsS5-B+btJLF&qPj`g%>Lt^UpRuYx0%zTWxzE7O6=;CQ+&vT$$Q^Y3SVy;&dilab*U zI5^hpI;DTzrM`SC&(7oQ4A;Q=x9d7BKKFFx%i6s2S06pTr^p}y_A{@()8g~HHEXT@ z+?>2D{qE+=zxG)~!tA{KPHA~6`Z{I+~b@3|6ROqzj{N@ zzu$}vW#II5)6yyZw8zWREdTzk^FGvU+tXw9{`sr>tPE4Yaq?8%`+c`twxZV539FAT z`BJ>rb=9}3^!JWIO$-a{K|#57569cDTC(Z$<$kZ4I(_lc72>KK48I`m*LEr||7Npz z^L$MQP|JToJXJP08N4Uts|6Wg@ zzwo@g_4@64S%wI(zcrn#w;FBvzfTBg!8?CY>}xu)u6@oeTWbrA@@YyT4{H<{D)d1P zTgoB3e8543>5zopr07YN`(f|Me literal 0 HcmV?d00001 diff --git a/assets/json/undertale.json b/assets/json/undertale.json new file mode 100644 index 00000000..4c4cac8e --- /dev/null +++ b/assets/json/undertale.json @@ -0,0 +1,12 @@ +[ + "alphys", + "asgore", + "chara", + "flowey", + "ghost", + "papyrus", + "sans", + "temmie", + "toriel", + "undyne" +] diff --git a/commands/edit-image/undertale.js b/commands/edit-image/undertale.js new file mode 100644 index 00000000..ec355c2a --- /dev/null +++ b/commands/edit-image/undertale.js @@ -0,0 +1,99 @@ +const Command = require('../../structures/Command'); +const { createCanvas, loadImage, registerFont } = require('canvas'); +const path = require('path'); +const { firstUpperCase, list } = require('../../util/Util'); +const { wrapText } = require('../../util/Canvas'); +const characters = require('../../assets/json/undertale'); +registerFont(path.join(__dirname, '..', '..', 'assets', 'fonts', 'DeterminationMono.ttf'), { + family: 'DeterminationMono' +}); +registerFont(path.join(__dirname, '..', '..', 'assets', 'fonts', 'UndertalePapyrus.ttf'), { + family: 'UndertalePapyrus' +}); +registerFont(path.join(__dirname, '..', '..', 'assets', 'fonts', 'UndertaleSans.ttf'), { family: 'UndertaleSans' }); + +module.exports = class UndertaleCommand extends Command { + constructor(client) { + super(client, { + name: 'undertale', + aliases: [ + 'ut', + 'undertale-dialogue', + 'ut-dialogue', + 'undertale-dialog', + 'ut-dialog', + 'undertale-quote', + 'ut-quote' + ], + group: 'edit-image', + memberName: 'undertale', + description: 'Sends a text box from Undertale with the quote and character of your choice.', + throttling: { + usages: 1, + duration: 10 + }, + clientPermissions: ['ATTACH_FILES'], + credit: [ + { + name: 'UNDERTALE', + url: 'https://undertale.com/', + reason: 'Original Game' + }, + { + name: 'Demirramon', + url: 'https://www.demirramon.com/', + reason: 'Images', + reasonURL: 'https://www.demirramon.com/en/generators/undertale_text_box_generator' + }, + { + name: 'Carter Sande', + url: 'https://gitlab.com/cartr', + reason: 'Fonts', + reasonURL: 'https://gitlab.com/cartr/undertale-fonts/tree/master' + }, + { + name: 'Overtime2005', + url: 'https://github.com/Overtime2005', + reason: 'Concept' + } + ], + args: [ + { + key: 'character', + prompt: `What character do you want to use? Either ${list(characters, 'or')}.`, + type: 'string', + oneOf: characters, + parse: character => character.toLowerCase() + }, + { + key: 'quote', + prompt: 'What should the character say?', + type: 'string', + max: 250 + } + ] + }); + } + + async run(msg, { character, quote }) { + const base = await loadImage( + path.join(__dirname, '..', '..', 'assets', 'images', 'undertale', `${character}.png`) + ); + const canvas = createCanvas(base.width, base.height); + const ctx = canvas.getContext('2d'); + ctx.drawImage(base, 0, 0); + let font; + switch (character) { + case 'sans': font = 'UndertaleSans'; break; + case 'papyrus': font = 'UndertalePapyrus'; break; + default: font = 'DeterminationMono'; break; + } + ctx.font = `20px ${font}`; + ctx.fillStyle = 'white'; + ctx.textBaseline = 'top'; + let text = await wrapText(ctx, quote, 385); + text = text.length > 3 ? `${text.slice(0, 3).join('\n')}...` : text.join('\n'); + ctx.fillText(text, 176, 28); + return msg.say({ files: [{ attachment: canvas.toBuffer(), name: `undertale-${character}.png` }] }); + } +}; diff --git a/package.json b/package.json index 87ff2153..7974e9e3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xiao", - "version": "116.21.1", + "version": "116.22.0", "description": "Your personal server companion.", "main": "Xiao.js", "scripts": {