3

此功能不起作用。我尝试了很多东西,但什么也没做,我认为它是“guildMemberAdd”。

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 部分不工作

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

4

1 回答 1

2

我认为问题在于您拥有 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')
  })
});
于 2021-07-27T03:35:23.667 回答