1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Получение таблички

Тема в разделе "Разработка плагинов для новичков", создана пользователем Akultist, 25 май 2018.

Статус темы:
Закрыта.
  1. Автор темы
    Akultist

    Akultist Активный участник Пользователь

    Баллы:
    46
    Мне нужно получить табличку через SignChangeEvent. И записать её в мапу. Через e.getBlock(); не работает. P.S ( пробовал - Sign sign = (Sign) e.getBlock().getState(); ) Она то создается так.. Но написать я на неё или получить с неё ничего не могу. Пробую sign.getLine(0); - пишет просто пустую строку хотя на табличке есть строка. Работает только изменение табличке в ивенте. (e.setLine(0, "бла бла"); e.getLine(0); Но мне нужно получить именно саму табличку.
     
  2. Cool_boy

    Cool_boy Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    На табличку текст записывается после выполнения ивента, используй его методы
     
  3. Автор темы
    Akultist

    Akultist Активный участник Пользователь

    Баллы:
    46
    Я же говорю, мне нужно записать табличку в мапу а потом с помощью bukkitrunnable обновлять её. Но также мне нужно отсканить что написал игрок на табличке перед добавлением мапу.
     
  4. Cool_boy

    Cool_boy Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    e.getLines()
    Так ты уже её получил через
     
  5. kefavova

    kefavova Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Afek
    У него просто руки отсохли в интернете прочитать...
     
  6. Автор темы
    Akultist

    Akultist Активный участник Пользователь

    Баллы:
    46
    Так в том и прикол, что получил, но когда раннейбл чекает пишет что линия 0 - пустая, хотя когда игрок ставит табличку и пишет, на ней все пишется и через ивент e.getline(0); все работает, строка не пустая. Тоже самое с sign.setLine(number, text);
     
  7. Автор темы
    Akultist

    Akultist Активный участник Пользователь

    Баллы:
    46
    Что прочитать? Я там не нашел ответа на свой вопрос. Поэтому и сюда обратился
     
  8. HunterGaming

    HunterGaming Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    Я может напишу сейчас и бред, но сейви в мапу Location, а потом по локации получай табличку
     
  9. Cool_boy

    Cool_boy Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Запускай Runnable за 1 тик после ивента.
     
  10. Cool_boy

    Cool_boy Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Так тоже можно, ему тоже выдаст пустую табличку
     
  11. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Код:
        @EventHandler
        public void on(SignChangeEvent e) {
            e.getLines();
        }
     
  12. Автор темы
    Akultist

    Akultist Активный участник Пользователь

    Баллы:
    46
    Ты вообще читал проблему?
     
  13. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Ага. Я тебе и дал решение как получить текст таблички.
     
  14. Автор темы
    Akultist

    Akultist Активный участник Пользователь

    Баллы:
    46
    Пробовал
     
  15. Автор темы
    Akultist

    Akultist Активный участник Пользователь

    Баллы:
    46
    Мне нужно саму ТАБЛИЧКУ в мапу засейвить. А потом достать в каком-то другом методе и с ней работать.
     
  16. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Код:
        @EventHandler
        public void on(SignChangeEvent e) {
            e.getLines();
            e.getBlock().getLocation();
        }
     
  17. Автор темы
    Akultist

    Akultist Активный участник Пользователь

    Баллы:
    46
    Ничего не поменялось. Всё равно выдает пустую строку.
     
  18. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Где именно? e.getLines(); успешно все выводит.
     
  19. Автор темы
    Akultist

    Akultist Активный участник Пользователь

    Баллы:
    46
    О заработало, я не про e.getLines(); говорил, а про получение самой таблички. Sign sign = (Sign) e.getBlock().getState(); я это записывал в мапу потом брал. В итоге когда я в мапе брал эту табличку и выводил строку 1 ничего не выходило. Просто была пустая строка. Я стал записывать в мапу локацию а потом через неё в другом методе брать табличку, всё заработало. Всем спасибо за ответы. Тема закрыта.
     
Статус темы:
Закрыта.

Поделиться этой страницей