[Запрос] Обновить GetMessage

Pmt

Member
Messages
24
Обновить GetMessage в ChatMessageObject, чтобы можно было получать текст с чата уже без непечатных символов и hex-кодов цвета, поскольку очищать это в js неудобно и сложно
 
можешь попробовать этим очищать

JavaScript:
const TextColor = {
  COLOR_NORMAL: 0x01,
  COLOR_USEOLDCOLORS: 0x02,
  COLOR_PLAYERNAME: 0x03,
  COLOR_LOCATION: 0x04,
  COLOR_ACHIEVEMENT: 0x05,
  COLOR_CUSTOM: 0x06,
  COLOR_HEXCODE: 0x07,
  COLOR_HEXCODE_ALPHA: 0x08,
  COLOR_PURPLE: 0x09,
  COLOR_MAX: 0x0A
};

function removeColorMarkup(str) {
  const chars = Array.from(str);
  let out = [];
 
  for (let i = 0; i < chars.length; ++i) {
    const code = chars[i].charCodeAt(0);
    
    if (code > 0 && code < TextColor.COLOR_MAX) {
      // спецсимвол цвета
      if (code === TextColor.COLOR_HEXCODE || code === TextColor.COLOR_HEXCODE_ALPHA) {
        const nSkip = (code === TextColor.COLOR_HEXCODE ? 6 : 8);
        i += nSkip; // пропустить 6 или 8 следующих символов
        if (i >= chars.length) break; // не выходим за границы
      }
      continue; // не добавляем управляющий байт в результат
    }
    
    out.push(chars[i]);
  }

  return out.join('');
}
 
  • Like
Reactions: Pmt
Back
Top