- Баллы
- 103
Честно говоря, не знаю почему, но я написал небольшой класс который может преобразовывать строки в строки состоящие только из цветовых кодов. Таким образом, эти строки не будут видеть игроки.
- Для чего это можно использовать?
- Например:
Раньше, чтобы запомнить, что предмет какой-то особенный, нам нужно было добавлять какую-нибудь строку, которая говорила, что этот предмет особенный. Игроки видят это строку. А используя мою разработку, можно скрыть это строку от глаз игроков. Думаю, еще применения сами придумаете.
Так вот, как этим пользоваться:
1. Внизу будет приложен код, создаете класс вставляете, ну, это понятно.
2. Для использования есть 2 статических метода:
String parseColorCodes(String codes, char colorSymbol) - расшифровывает строку из цветовых кодов.
codes - это строка которую надо расшифровать
colorSymbol - это символ стоящий перед цветовым кодом(обычно это §)
String stringToColorCodes(String string, char colorSymbol)
string - это строка которую надо зашифровать
colorSymbol - это символ стоящий перед цветовым кодом(обычно это §)
Вот и код:
Вот и все. Жду ваших коментариев.
P.S. Завтра еще скрины кину.
- Для чего это можно использовать?
- Например:
Раньше, чтобы запомнить, что предмет какой-то особенный, нам нужно было добавлять какую-нибудь строку, которая говорила, что этот предмет особенный. Игроки видят это строку. А используя мою разработку, можно скрыть это строку от глаз игроков. Думаю, еще применения сами придумаете.
Так вот, как этим пользоваться:
1. Внизу будет приложен код, создаете класс вставляете, ну, это понятно.
2. Для использования есть 2 статических метода:
String parseColorCodes(String codes, char colorSymbol) - расшифровывает строку из цветовых кодов.
codes - это строка которую надо расшифровать
colorSymbol - это символ стоящий перед цветовым кодом(обычно это §)
String stringToColorCodes(String string, char colorSymbol)
string - это строка которую надо зашифровать
colorSymbol - это символ стоящий перед цветовым кодом(обычно это §)
Вот и код:
Java:
import java.util.ArrayList;
import java.util.List;
public class ColorCodesParser {
private static final String SYMBOL_SPLITTER = "l";
// Преобразование строки из кодов цветов в обычную строку
public static String parseColorCodes(String codes, char colorSymbol) {
char[] chars = codes.toCharArray();
codes = "";
for (char sub : chars) {
if (sub == colorSymbol)
continue;
codes += sub;
}
String[] split = codes.split(SYMBOL_SPLITTER);
List<Byte> bytesList = new ArrayList<>();
for (String str : split)
bytesList.add(new Long(Long.parseLong(str, 16)).byteValue());
byte[] bytes = new byte[bytesList.size()];
for (int i = 0; i < bytes.length; i++)
bytes[i] = bytesList.get(i);
return new String(bytes);
}
// Преобразование обычной строки в строку из цветовых кодов
public static String stringToColorCodes(String string, char colorSymbol) {
String out = "";
for (byte sub : string.getBytes())
out += insertColorCodes(Integer.toHexString((int) sub), colorSymbol) + String.valueOf(colorSymbol) + SYMBOL_SPLITTER;
return out;
}
// Вставка перед каждым символом символа обозначающего то, что символ это цветовой код
private static String insertColorCodes(String string, char colorSymbol) {
String out = "";
for (char sub : string.toCharArray())
out += String.valueOf(colorSymbol) + sub;
return out;
}
/** * Цвета кодирующие другие символы: * 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f * Иначе говоря, hex * Цвет кодирующий разделитель символов: * l * Пробел - специальный символ кодирующий только пробел * **/}
Вот и все. Жду ваших коментариев.
P.S. Завтра еще скрины кину.
Последнее редактирование: