guildMemberAdd 不适用于 Jimp | JavaScript

问题描述

功能不起作用。我尝试了很多东西,但一无所获,我认为是“公会会员添加”。

client.on("guildMemberAdd",async member => {

  let canal = client.channels.get(config.welcome)
  let fonte = await jimp.loadFont(jimp.FONT_SANS_32_BLACK)
  let mask = await jimp.read('mascara.png')
  let fundo = await jimp.read('fundo.png')
  
  jimp.read(member.user.displayAvatarURL).then(avatar => {
  avatar.resize(130,130)
  mask.resize(130,130)
  avatar.mask(mask)

  fundo.print(fonte,170,175,member.user.username)
  fundo.composite(avatar,40,90).write('bemvindo.png')
  canal.send(`Welcome !`,{ files: ["bemvindo.png"] })
  
  console.log('Imagem enviada para o discord')
  })
  .catch(err => {
  console.log('error avatar')
  })
});

细节,机器人工作,只是jimp部分不起作用

如果有人知道为什么不起作用,请告诉我。

解决方法

我认为问题是因为您有 Discord.js v11 代码,但您正在使用 Discord.js v12 运行机器人。

client.channels.get(config.welcome) 现在应该是 client.channels.cache.get(config.welcome)

以下固定代码:

client.on("guildMemberAdd",async member => {

  let canal = await client.channels.fetch(config.welcome)
  let fonte = await jimp.loadFont(jimp.FONT_SANS_32_BLACK)
  let mask = await jimp.read('mascara.png')
  let fundo = await jimp.read('fundo.png')
  
  jimp.read(member.user.displayAvatarURL({format: 'png'})).then(avatar => {
  avatar.resize(130,130)
  mask.resize(130,130)
  avatar.mask(mask)

  fundo.print(fonte,170,175,member.user.username)
  fundo.composite(avatar,40,90).write('bemvindo.png')
  await canal.send(`Welcome !`,{ files: ["bemvindo.png"] })
  
  console.log('Imagem enviada para o Discord')
  })
  .catch(err => {
  console.log('error avatar')
  })
});