Estoy tratando de hacer que mi código solo muestre un fragmento de texto cuando la base de datos da un cierto valor.
const canvas = Canvas.createCanvas(250, 250); const ctx = canvas.getContext('2d'); ctx.fillStyle = message.content; ctx.fillRect(0, 0, canvas.height, canvas.width) db.get("label"+message.author.id).then(value => { console.log(value) if(value == 'on') { console.log('true') ctx.font = '40px Poppins'; ctx.fillStyle = '#ffffff'; ctx.strokeStyle = '#000000' ctx.lineWidth = 1; ctx.fillText(message.content, canvas.width/10, canvas.height / 2 + 20); ctx.strokeText(message.content, canvas.width/10, canvas.height / 2 + 20); } })Esto es lo que tengo hasta ahora. Desafortunadamente, no importa el valor en la base de datos, no agregará el texto. Lo he probado sin estas cosas, y agrega el texto. Alguien me puede decir como arreglar esto?
Editar: aquí está mi código completo y total para este problema:
if(message.content.startsWith('#') && message.content.length == 7) { const canvas = Canvas.createCanvas(250, 250); const ctx = canvas.getContext('2d'); ctx.fillStyle = message.content; ctx.fillRect(0, 0, canvas.height, canvas.width) db.get("label"+message.author.id).then(value => { console.log(value) if(value == 'on') { console.log('true') ctx.font = '40px Poppins'; ctx.fillStyle = '#ffffff'; ctx.strokeStyle = '#000000' ctx.lineWidth = 1; ctx.fillText(message.content, canvas.width/10, canvas.height / 2 + 20); ctx.strokeText(message.content, canvas.width/10, canvas.height / 2 + 20); } }) const attachment = new Discord.MessageAttachment(canvas.toBuffer(), 'color.png'); message.channel.send(attachment) }No está enviando la imagen de Canvas, solo la está construyendo. Cuando haya terminado de crear la imagen, debe usar Canvas#toBuffer para que sea compatible con discordjs#MessageAttachment .
const { MessageAttachment } = require('discord.js') const canvas = Canvas.createCanvas(250, 250); const ctx = canvas.getContext('2d'); ctx.fillStyle = message.content ctx.fillRect(0, 0, canvas.height, canvas.width) db.get('label' + message.author.id).then(value => { console.log(value) if (value == 'on') { console.log('true') ctx.font = '40px Poppins' ctx.fillStyle = '#ffffff' ctx.strokeStyle = '#000000' ctx.lineWidth = 1 ctx.fillText(message.content, canvas.width / 10, canvas.height / 2 + 20) ctx.strokeText(message.content, canvas.width / 10, canvas.height / 2 + 20) message.reply({ files: [new MessageAttachment(canvas.toBuffer(), 'fileName.png')] }) } })