Хочу реализовать блокировку запретных слов в книге, но видимо работа с книгами как какой-то утерянный файл. Не могу найти никакой информации как можно сделать.
Вообщем тут я пытаюсь делать условие, если в книге содержиться то что содержиться в моём конфиге в списке запретных слов. И всё вроде как работает, но почему-то есть какой-то баг.
Если написать запретное слово - оно замениться на "*" с выводом сообщения, но если открыть эту книгу снова и заменить звёздочку, которая была заменена вместо запрещённого слова, на запрещённое слово, то выведеться только сообщение, а новое запретное слово почему-то не измениться на звёздочку. В чём прикол моего кода?
Код:
public void OnBook(PlayerEditBookEvent e) {
BookMeta bookMeta = e.getNewBookMeta();
String bookContent = e.getNewBookMeta().getPages().toString();
List<String> bannedWords = Configuration.getConfig().getStringList("AB_BW_L");
int pageIndex = 0;
for (String bannedWord : bannedWords) {
if (bookContent.toLowerCase().contains(bannedWord.toLowerCase())) {
e.getPlayer().sendMessage(В вашей книге есть запрещённый символ));
for (int i = 0; i < bookMeta.getPageCount(); i++) {
String page = bookMeta.getPages().get(i);
page = page.replaceAll("(?i)" + bannedWord, "*");
pageIndex++;
bookMeta.setPage(pageIndex, page);
}
e.setNewBookMeta(bookMeta);
}
}
Если написать запретное слово - оно замениться на "*" с выводом сообщения, но если открыть эту книгу снова и заменить звёздочку, которая была заменена вместо запрещённого слова, на запрещённое слово, то выведеться только сообщение, а новое запретное слово почему-то не измениться на звёздочку. В чём прикол моего кода?