Вопрос Работа с книгами в бакит апи

Версия Minecraft
1.16.X

gggga

Пользователь
Сообщения
62
Хочу реализовать блокировку запретных слов в книге, но видимо работа с книгами как какой-то утерянный файл. Не могу найти никакой информации как можно сделать.

Код:
    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);
                }
           }
Вообщем тут я пытаюсь делать условие, если в книге содержиться то что содержиться в моём конфиге в списке запретных слов. И всё вроде как работает, но почему-то есть какой-то баг.
Если написать запретное слово - оно замениться на "*" с выводом сообщения, но если открыть эту книгу снова и заменить звёздочку, которая была заменена вместо запрещённого слова, на запрещённое слово, то выведеться только сообщение, а новое запретное слово почему-то не измениться на звёздочку. В чём прикол моего кода?
 
Решение
У человека аналогичная проблема была, почитай тему
У человека аналогичная проблема была, почитай тему
 
У человека аналогичная проблема была, почитай тему
Решением не стало. ничего не происходит
 
Решением не стало. ничего не происходит
Почему-то только со второго изменения начинает что-либо происходить. с первого можно написать запретное слово и оно будет игнорироваться. и так начинает работать только на второй раз
 
Если написать запретное слово - оно замениться на "*" с выводом сообщения, но если открыть эту книгу снова и заменить звёздочку, которая была заменена вместо запрещённого слова, на запрещённое слово, то выведеться только сообщение, а новое запретное слово почему-то не измениться на звёздочку.
и так начинает работать только на второй раз
Так как в итоге работает – с первого или второго раза?
 
Назад
Сверху Снизу