Как убрать афк из ника без префикса

поэтому я делаю простую команду AFK как это

client.on('message', message => {
  if (message.content.includes('!afk')) {
      message.member.setNickname(`[AFK] ${message.member.displayName} `).catch(error => console.info(error));
  }
  
  if (message.content === '!back') {
    message.member.setNickname(message.member.displayName.replace('[AFK] ', )).catch(error => console.info(error));

  }

 
  
  
});

и я хочу, если пользователь AFK, а затем пользовательский чат типа «привет», [AFK] исчезнет без префикса «! Назад»

Как я могу это сделать?

Спасибо за помощь (:

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
38
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Если я правильно понимаю, вы просите удалить статус AFK, когда игрок снова что-то набирает. Я сделал грубое решение, используя JS Набор, которое должно хорошо работать с небольшим набором пользователей, но может потребовать дополнительных настроек для больших серверов.

По сути, когда игрок набирает !afk, он включается в набор игроков AFK, а когда он/она/оно возвращается и что-то набирает, его имя удаляется из набора, а его никнейм обновляется. Я не уверен, существует ли message.member.id и это правильное поле для отслеживания игрока (РЕДАКТИРОВАТЬ: Да, это), но основная идея в том, чтобы вести учет чего-то уникального для каждого афк-игрока.

    const afkPlayers = new Set();
    
    client.on('message', message => {
      if (message.content.includes('!afk')) {
          afkPlayers.add(message.member.id);
          message.member.setNickname(`[AFK] ${message.member.displayName} `).catch(error => console.info(error));
      }
      
      if (afkPlayers.member.has(message.member.id)){
        afkPlayers.member.delete(message.member.id);
        message.member.setNickname(message.member.displayName.replace('[AFK] ', )).catch(error => console.info(error));
      }
      
});
Ответ принят как подходящий

Я действительно не знаю, как работает Discord и когда именно запускается событие «сообщение», но мне кажется, что вы, вероятно, могли бы сделать это даже без set, как это было предложено @TheCave3:

client.on('message', message => {
  const pref='[AFK] ';
  if (message.content.includes('!afk'))
    message.member.setNickname(pref+message.member.displayName).catch(error => console.info(error));
  else if (message.member.displayName.slice(0,pref.length)===pref)
    message.member.setNickname(message.member.displayName.slice(pref.length)).catch(error => console.info(error));
});

Другие вопросы по теме