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('');
}