Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Как получить DisplayName у сундука стоящего в мире?

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

  1. Автор темы
    Mr_RoboMan

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

    Баллы:
    123
    У меня есть блок стоящий в мире, я знаю что это сундук, так как мне получить его DisplayName?
    getName() и getTitle() возвращают container.chest!
     
  2. Хостинг MineCraft
    <
  3. Hilgert

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

    Баллы:
    123
    Skype:
    mixa2258
    Имя в Minecraft:
    Hilgert
    господи. зачем ты создал ещё одну тему?
     
  4. Автор темы
    Mr_RoboMan

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

    Баллы:
    123
    Теоретически та тема была совсем под другому вопросу, просто я там оффтопил :D
    А это тема уже именно по этому вопросу.
     
  5. MrTrojan

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

    Баллы:
    98
    Skype:
    mrtrojan.ru
    Имя в Minecraft:
    MrTrojan
  6. Hilgert

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

    Баллы:
    123
    Skype:
    mixa2258
    Имя в Minecraft:
    Hilgert
    так я же тебе в той теме всё подробно объяснил по этому вопросу
     
  7. Автор темы
    Mr_RoboMan

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

    Баллы:
    123
    Этот метод есть у ItemMeta.
    А у блок и чест немного другой метод getItemMeta он требует в качестве параметра String и возвращает List из MetadataValue...
     
  8. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Понимаешь, у тебя как бы ненормальное поведение. Метод Inventory.getTitle() должен возвращать название инвентаря, а у тебя почему то нет. Вот поэтому тебе никто помочь не может.
     
  9. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    А потому что он не выставляет имя инвентаря при постановке блока вот и не возвращает. Магии не бывает, название с итемстака не переносится.
     
  10. Hilgert

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

    Баллы:
    123
    Skype:
    mixa2258
    Имя в Minecraft:
    Hilgert
    возвращает container.chest потому что названия инвентаря нету, это надо для того что бы в языковых пакетах клиента менять стандартное название сундука
     
  11. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Вот только его можно выставить. Выставляется через имя инвентаря привязанного к блоку.
     
  12. Hilgert

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

    Баллы:
    123
    Skype:
    mixa2258
    Имя в Minecraft:
    Hilgert
    я уже кидал код в прошлой теме как это реализовать
     
  13. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Это и без nms можно.
     
  14. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Переносится
     
  15. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Только в 1.8 и при условии что никакой плагин не шаманит с выставленным блоком.
     
  16. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Кажется и в 1.7 такое наблюдал.
     
  17. Автор темы
    Mr_RoboMan

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

    Баллы:
    123
    Ну хорошо, вот этот код:
    Код:
                            CraftChest chest = (CraftChest) block.getState(); //block has to be a chest
                            try
                            {
                                Field inventoryField = chest.getClass().getDeclaredField("chest"); //This get's the CraftChest variable 'chest' which is the TileEntityChest that is stored within it
                                inventoryField.setAccessible(true); //Allows you to access that field since it's declared as private
                                TileEntityChest teChest = ((TileEntityChest) inventoryField.get(chest)); //obtains the field and casts it to a TileEntityChest
                                teChest.a("Name Goes Here"); //The a(String) method sets the title of the chest
                            }
                            catch (Exception e) //This has to be here as the getDeclaredField(String) throws an exception if the input doesn't exist in the given class
                            {
                                e.printStackTrace();
                            }
    
    Да только я не знаю какие импорты нужны!
    Для Field их вообще туева гора...[DOUBLEPOST=1431927243,1431927159][/DOUBLEPOST]
    Без nms это без всей этой фигни в коде выше?
    Тогда как если не секрет?[DOUBLEPOST=1431951503][/DOUBLEPOST]UP штоле[DOUBLEPOST=1431956092][/DOUBLEPOST]UP
     
  18. CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    1. Почему нельзя сохранять каждый кейс в мапу и чекать через нее?
    2. Почему нельзя сохранять данные о том, что это кейс, в метадату?
    3. В конце концов, что мешает использовать NMS код?
     
  19. Автор темы
    Mr_RoboMan

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

    Баллы:
    123
    1. Ну как то не очень идея...
    2. Я уже говорил что у меня есть только getMetaga(String s) который возвращает MetdataValue!!
    3. То что я не знаю что это.[DOUBLEPOST=1431960982,1431960767][/DOUBLEPOST]Ну и Мапу нельзя использовать потому-что при остановке сервера она "сотрется" и при загрузке создатся новая...
    Ну вы поняли)
     
  20. CraftCoder

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

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Сохранять одну мапу в файл для слабаков?

    А вы почитайте на javaDoc что это за string и что за MetadataValue.
    Вам же дали готовый код.
     
  21. Автор темы
    Mr_RoboMan

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

    Баллы:
    123
    1. Да для слабаков)

    2. Вот это мне и надо сделать...

    3. Вот я и спрашиваю иморты...
     

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