From 50a0e99053a7a1262583efbeaa09eadf963a692b Mon Sep 17 00:00:00 2001 From: Dragon Fire Date: Wed, 5 Jun 2019 21:05:12 -0400 Subject: [PATCH] Update steam-now-playing to modern Steam layout --- README.md | 5 +- assets/images/steam-now-playing-classic.png | Bin 0 -> 1591 bytes assets/images/steam-now-playing.png | Bin 1591 -> 6851 bytes .../avatar-edit/steam-now-playing-classic.js | 70 ++++++++++++++++++ commands/avatar-edit/steam-now-playing.js | 13 ++-- package.json | 2 +- 6 files changed, 81 insertions(+), 9 deletions(-) create mode 100644 assets/images/steam-now-playing-classic.png create mode 100644 commands/avatar-edit/steam-now-playing-classic.js diff --git a/README.md b/README.md index 2bdf8c65..0d86278c 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Xiao is a Discord bot coded in JavaScript with 6. Run `npm i -g pm2` to install PM2. 7. Run `pm2 start Xiao.js --name xiao` to run the bot. -## Commands (342) +## Commands (343) ### Utility: * **eval:** Executes JavaScript code. @@ -338,7 +338,8 @@ Xiao is a Discord bot coded in JavaScript with * **rip:** Draws a user's avatar over a gravestone. * **sip:** Draws a user's avatar sipping tea. * **steam-card:** Draws a user's avatar on a Steam Trading Card. -* **steam-now-playing:** Draws a user's avatar and the game of your choice over a Steam "now playing" notification. +* **steam-now-playing-classic:** Draws a user's avatar over a Steam "now playing" notification (old skin). +* **steam-now-playing:** Draws a user's avatar over a Steam "now playing" notification. * **triggered:** Draws a user's avatar over the "Triggered" meme. * **ultimate-tattoo:** Draws a user's avatar as "The Ultimate Tattoo". * **wanted:** Draws a user's avatar over a wanted poster. diff --git a/assets/images/steam-now-playing-classic.png b/assets/images/steam-now-playing-classic.png new file mode 100644 index 0000000000000000000000000000000000000000..db79b440e16c0fa53e92608eaa00bfc2ed1d0f16 GIT binary patch literal 1591 zcmY*Z3pf*c6d%j`Io6f;t5PP3ws{QEyqV;++C?d(>ov(En`iP$ZiO%;^zdj@LfT5y zJfdMq<~b~EW)aFOcXhk>e)l`y`JKmizW@K6^L^)+ehg(JA*vt>001QHY>~%#mdjH+ zVL=`aK(Y2bBk1d3g9L2V`Bq+Oz|kc^$66whA>_Wt2hy1+-IXEh)ocW=<& z75~NbeEa(I-i}HjR|qWm09o%%oB^piQdg+ZYVm0PI8%TJapne%)eL zCm!tO5}mq2gAc?izn2@w&>xrK|9SSmkH6D8ZdZU(WH-oWvl>7b=Fgrqc8!&aAsMI~ zw9b5HTB}L-_fK0==O37%jf!x;89XL*Xv|D^7H$uQ>+4!y3ciq2HQIu&%nPfQ!qPnU zn|3F54hx6Eg*99+Jx^Y3>ta+G=fGj=gmzTXc-A!6W$a@`4Cl!NNGoI+PwBqVD7))c zo>zxag|QzDM#vvRtaeL=R9^Bcmg5jkEUk*C#tNoi=8JwmBI7v~aHD5N}q5ho1uvEukx8i#VxhZnurcP&ZlN{st!nKQ_CNJsA?E7a_;o!Tn-ASI_FjSN1Q7%QPh4^eKOV#Rx1Jo#$8T zof~ZqdgnXQXS|Jj%1k_z8Pod;?vHNq9h&WBwbY1+83=l_?@>%6VFb_Nrp+n;-1D^E zgs8Bh2((qA|CaQpLA^r-P@E*YN3nU70Vs_@)((FNS0Z_!M+p}t@dCc{t%^Hdo%0?Q zb{|_vn9=~WUh|BD9M{Pk+LOpJoc76w<6t^$3xJmzt}%9Q%OM!Xn%@v~et3V!#zk!# zzAx1W(HV__?&}*^2SvV_croD`=P)HgR8$5y6G|t4RlK-b5HN7kuLRG^s*5KxXTuLs zAY32u`=N+L@2SrUflN-MW<7OSxj|JvJVi-fA?Tr8<nNiN~s#`@o_V)T76Bp@KdQn>n75iI(fQp_MMHBmHxM zt5U6%t0IB-LM8I45iF7f{e8wxwF^eU^|ZiwOTOpiw?y;ySg|9Tn?r%dZ#vl&>7%+X z80|lG!L}R0^g>v6E?U1pT*W*Naf4#E#gNZ3$H%QLeC6F*z<6ADSE}I4I8$q>QcO%I zB=-8&k})RBMCW#=i*4~S@9{FMD*M(Vk;HI=ic;6JMo-fbFFd?ow8o8>dO;-QMjWqM zURvnCN~)PaE!3|~W^a@j+ORvm9@*%@)W8>-XV*uog6|?9l}TT%2C3F%P~1H%;JicC z=1Sj5&)8;VF0ABYY1`w}tKW!aYWnagA+HqI!@(*cbfxRAR)w&)NJoN=`+;O(&X-kU zolMNW^=;GaP0?yK{?r&?Qo6DGZr*qmlM?ZMv|-!Yk_vTEZf`DJ+bzb5p}bcwpwEat zV(J>r3w-HHnZ10~`3*$GIZd+d)VvPq;QKXJc`T81+6M_9OLPT_rAL(=()aUJY5KV? z)BY!eR+Ps}sL40tkMdX3{Yc9*5%xZpJEHq>C;rEUJVxY^-`)?ey(`qqx*!^&wQ2iE jzp(6cMp`RG|K4{#;6bB?1VRsqNAUnVD-@Dwc`E5IPICSe literal 0 HcmV?d00001 diff --git a/assets/images/steam-now-playing.png b/assets/images/steam-now-playing.png index db79b440e16c0fa53e92608eaa00bfc2ed1d0f16..157940c485f1769111935c2a81c70251ed9b81da 100644 GIT binary patch literal 6851 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 literal 1591 zcmY*Z3pf*c6d%j`Io6f;t5PP3ws{QEyqV;++C?d(>ov(En`iP$ZiO%;^zdj@LfT5y zJfdMq<~b~EW)aFOcXhk>e)l`y`JKmizW@K6^L^)+ehg(JA*vt>001QHY>~%#mdjH+ zVL=`aK(Y2bBk1d3g9L2V`Bq+Oz|kc^$66whA>_Wt2hy1+-IXEh)ocW=<& z75~NbeEa(I-i}HjR|qWm09o%%oB^piQdg+ZYVm0PI8%TJapne%)eL zCm!tO5}mq2gAc?izn2@w&>xrK|9SSmkH6D8ZdZU(WH-oWvl>7b=Fgrqc8!&aAsMI~ zw9b5HTB}L-_fK0==O37%jf!x;89XL*Xv|D^7H$uQ>+4!y3ciq2HQIu&%nPfQ!qPnU zn|3F54hx6Eg*99+Jx^Y3>ta+G=fGj=gmzTXc-A!6W$a@`4Cl!NNGoI+PwBqVD7))c zo>zxag|QzDM#vvRtaeL=R9^Bcmg5jkEUk*C#tNoi=8JwmBI7v~aHD5N}q5ho1uvEukx8i#VxhZnurcP&ZlN{st!nKQ_CNJsA?E7a_;o!Tn-ASI_FjSN1Q7%QPh4^eKOV#Rx1Jo#$8T zof~ZqdgnXQXS|Jj%1k_z8Pod;?vHNq9h&WBwbY1+83=l_?@>%6VFb_Nrp+n;-1D^E zgs8Bh2((qA|CaQpLA^r-P@E*YN3nU70Vs_@)((FNS0Z_!M+p}t@dCc{t%^Hdo%0?Q zb{|_vn9=~WUh|BD9M{Pk+LOpJoc76w<6t^$3xJmzt}%9Q%OM!Xn%@v~et3V!#zk!# zzAx1W(HV__?&}*^2SvV_croD`=P)HgR8$5y6G|t4RlK-b5HN7kuLRG^s*5KxXTuLs zAY32u`=N+L@2SrUflN-MW<7OSxj|JvJVi-fA?Tr8<nNiN~s#`@o_V)T76Bp@KdQn>n75iI(fQp_MMHBmHxM zt5U6%t0IB-LM8I45iF7f{e8wxwF^eU^|ZiwOTOpiw?y;ySg|9Tn?r%dZ#vl&>7%+X z80|lG!L}R0^g>v6E?U1pT*W*Naf4#E#gNZ3$H%QLeC6F*z<6ADSE}I4I8$q>QcO%I zB=-8&k})RBMCW#=i*4~S@9{FMD*M(Vk;HI=ic;6JMo-fbFFd?ow8o8>dO;-QMjWqM zURvnCN~)PaE!3|~W^a@j+ORvm9@*%@)W8>-XV*uog6|?9l}TT%2C3F%P~1H%;JicC z=1Sj5&)8;VF0ABYY1`w}tKW!aYWnagA+HqI!@(*cbfxRAR)w&)NJoN=`+;O(&X-kU zolMNW^=;GaP0?yK{?r&?Qo6DGZr*qmlM?ZMv|-!Yk_vTEZf`DJ+bzb5p}bcwpwEat zV(J>r3w-HHnZ10~`3*$GIZd+d)VvPq;QKXJc`T81+6M_9OLPT_rAL(=()aUJY5KV? z)BY!eR+Ps}sL40tkMdX3{Yc9*5%xZpJEHq>C;rEUJVxY^-`)?ey(`qqx*!^&wQ2iE jzp(6cMp`RG|K4{#;6bB?1VRsqNAUnVD-@Dwc`E5IPICSe diff --git a/commands/avatar-edit/steam-now-playing-classic.js b/commands/avatar-edit/steam-now-playing-classic.js new file mode 100644 index 00000000..8270d6da --- /dev/null +++ b/commands/avatar-edit/steam-now-playing-classic.js @@ -0,0 +1,70 @@ +const Command = require('../../structures/Command'); +const { createCanvas, loadImage, registerFont } = require('canvas'); +const request = require('node-superfetch'); +const path = require('path'); +const { shortenText } = require('../../util/Canvas'); +registerFont(path.join(__dirname, '..', '..', 'assets', 'fonts', 'Noto-Regular.ttf'), { family: 'Noto' }); +registerFont(path.join(__dirname, '..', '..', 'assets', 'fonts', 'Noto-CJK.otf'), { family: 'Noto' }); +registerFont(path.join(__dirname, '..', '..', 'assets', 'fonts', 'Noto-Emoji.ttf'), { family: 'Noto' }); + +module.exports = class SteamNowPlayingClassicCommand extends Command { + constructor(client) { + super(client, { + name: 'steam-now-playing-classic', + aliases: ['now-playing-classic'], + group: 'avatar-edit', + memberName: 'steam-now-playing-classic', + description: 'Draws a user\'s avatar over a Steam "now playing" notification (old skin).', + throttling: { + usages: 1, + duration: 10 + }, + clientPermissions: ['ATTACH_FILES'], + credit: [ + { + name: 'Steam', + url: 'https://store.steampowered.com/' + }, + { + name: 'Google Noto Fonts', + url: 'https://www.google.com/get/noto/' + } + ], + args: [ + { + key: 'game', + prompt: 'Which game would you like the user to be playing?', + type: 'string' + }, + { + key: 'user', + prompt: 'Which user would you like to be playing the game?', + type: 'user', + default: msg => msg.author + } + ] + }); + } + + async run(msg, { game, user }) { + const avatarURL = user.displayAvatarURL({ format: 'png', size: 64 }); + try { + const base = await loadImage( + path.join(__dirname, '..', '..', 'assets', 'images', 'steam-now-playing-classic.png') + ); + const { body } = await request.get(avatarURL); + const avatar = await loadImage(body); + const canvas = createCanvas(base.width, base.height); + const ctx = canvas.getContext('2d'); + ctx.drawImage(base, 0, 0); + ctx.drawImage(avatar, 21, 21, 32, 32); + ctx.fillStyle = '#90ba3c'; + ctx.font = '10px Noto'; + ctx.fillText(user.username, 63, 26); + ctx.fillText(shortenText(ctx, game, 160), 63, 54); + return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'steam-now-playing-classic.png' }] }); + } catch (err) { + return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); + } + } +}; diff --git a/commands/avatar-edit/steam-now-playing.js b/commands/avatar-edit/steam-now-playing.js index 78cbdab1..a9abc434 100644 --- a/commands/avatar-edit/steam-now-playing.js +++ b/commands/avatar-edit/steam-now-playing.js @@ -14,7 +14,7 @@ module.exports = class SteamNowPlayingCommand extends Command { aliases: ['now-playing'], group: 'avatar-edit', memberName: 'steam-now-playing', - description: 'Draws a user\'s avatar and the game of your choice over a Steam "now playing" notification.', + description: 'Draws a user\'s avatar over a Steam "now playing" notification.', throttling: { usages: 1, duration: 10 @@ -55,11 +55,12 @@ module.exports = class SteamNowPlayingCommand extends Command { const canvas = createCanvas(base.width, base.height); const ctx = canvas.getContext('2d'); ctx.drawImage(base, 0, 0); - ctx.drawImage(avatar, 21, 21, 32, 32); - ctx.fillStyle = '#90ba3c'; - ctx.font = '10px Noto'; - ctx.fillText(user.username, 63, 26); - ctx.fillText(shortenText(ctx, game, 160), 63, 54); + ctx.drawImage(avatar, 26, 26, 41, 42); + ctx.fillStyle = '#90b93c'; + ctx.font = '15px Noto'; + ctx.textBaseline = 'bottom'; + ctx.fillText(user.username, 80, 38); + ctx.fillText(shortenText(ctx, game, 200), 80, 72); return msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'steam-now-playing.png' }] }); } catch (err) { return msg.reply(`Oh no, an error occurred: \`${err.message}\`. Try again later!`); diff --git a/package.json b/package.json index e2f597f6..9a7b559a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xiao", - "version": "105.2.4", + "version": "105.3.0", "description": "Your personal server companion.", "main": "Xiao.js", "scripts": {