Как я могу найти канал по имени, который включает смайлики Discord? - PullRequest
0 голосов
/ 29 сентября 2019

я использовал const channel = member.guild.channels.find(ch => ch.name === `welcome`); код, чтобы получить простое название канала, которое говорит "добро пожаловать", но когда тот же канал включает эмодзи ?welcome? как мне найти любой канал, который находится внутри эмодзи ?welcome? этого или любого другого смайлика.

const channel = member.guild.channels.find(ch => ch.name === `welcome`); // some code here channel.send(`See you once again ${member}!`, attachment);

что-то вроде этого, но не работает, я попробовал

const channel = member.guild.channels.find(ch => ch.name === ?welcome?); мой сервер выглядит так мой сервер с именем канала и emojis

мой полный код выглядит следующим образом -

    const channel = member.guild.channels.find(ch => ch.name === `welcome`);
    if (!channel) return;
    const canvas = Canvas.createCanvas(700, 250);
    const ctx = canvas.getContext('2d');

    const background = await Canvas.loadImage('./wallpaper.jpg');
    ctx.drawImage(background, 0, 0, canvas.width, canvas.height);

    ctx.strokeStyle = '#74037b';
    ctx.strokeRect(0, 0, canvas.width, canvas.height);

    // Slightly smaller text placed above the member's display name
    ctx.font = '28px sans-serif';
    ctx.fillStyle = '#ffffff';
    ctx.fillText('Welcome to the server,', canvas.width / 2.5, canvas.height / 3.5);

    // Add an exclamation point here and below
    ctx.font = applyText(canvas, `${member.displayName}!`);
    ctx.fillStyle = '#ffffff';
    ctx.fillText(`${member.displayName}!`, canvas.width / 2.5, canvas.height / 1.8);

    ctx.beginPath();
    ctx.arc(125, 125, 100, 0, Math.PI * 2, true);
    ctx.closePath();
    ctx.clip();

    const avatar = await Canvas.loadImage(member.user.displayAvatarURL);
    ctx.drawImage(avatar, 25, 25, 200, 200);

    const attachment = new Discord.Attachment(canvas.toBuffer(), 'welcome-image.png');

    channel.send(`Welcome to the server, ${member}!`, attachment);

Допустим, мне нужно найти канал уровней, как на картинке выше, смайлик изменится, но имя будет там, так как я могу это сделать? данные, которые я пытаюсь добавить РЕДАКТИРОВАТЬ имя приветствуется, но когда я добавляю смайлики, имя меняется

'554141970130403338' => TextChannel {
    type: 'text',
    deleted: false,
    id: '554141970130403338',
     name: '📜welcome📜',
    position: 0,
    parentID: '566212268208029697',
    permissionOverwrites: Collection [Map] {
      '159985870458322944' => [PermissionOverwrites],
      '417208237142573056' => [PermissionOverwrites],
      '487733104652582920' => [PermissionOverwrites]
    },
    topic: '',
    nsfw: false,
    lastMessageID: '628112146806472715',
    lastPinTimestamp: null,
    rateLimitPerUser: 0,
    guild: Guild {
      members: [Collection [Map]],
      channels: [Circular],
      roles: [Collection [Map]],
      presences: [Collection [Map]],
      deleted: false,
      available: true,
      id: '417208237142573056',
      name: 'ETHYT Gaming',
      icon: '081568475c94dd5724dafc2547a0261c',
      splash: null,
      region: 'india',
      memberCount: 86,
      large: false,
      features: [],
      applicationID: null,
      afkTimeout: 3600,
      afkChannelID: '440842028713115648',
      systemChannelID: null,
      embedEnabled: undefined,
      verificationLevel: 0,
      explicitContentFilter: 0,
      mfaLevel: 0,
      joinedTimestamp: 1557471391163,
      defaultMessageNotifications: 'ALL',
      ownerID: '348832732647784460',
      _rawVoiceStates: [Collection [Map]],
      emojis: [Collection [Map]]
    },
    messages: Collection [Map] { '628112146806472715' => [Message] },
    _typing: Map {}
  }

, когда я получаю вывод в блокноте, я вижу приветствие, написанное, но что раньше ипосле этого?

Ответы [ 2 ]

0 голосов
/ 30 сентября 2019

Вы можете использовать const channel = member.guild.channels.get('554141970130403338'); с '554141970130403338' идентификатор канала.

0 голосов
/ 29 сентября 2019

String.includes() будет очень полезным для вас. Вместо сравнения всей строки, она будет искать вашу подстроку в любом месте внутри нее.

const channelName = '?welcome?';
console.log(channelName.includes('welcome'));
...