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

Помогите [Решено] Как призвать жителя с нужными торговыми принадлежностями?

Тема в разделе "Разработка плагинов для новичков", создана пользователем Exception_Prototype, 22 авг 2016.

Статус темы:
Закрыта.
  1. OsipXD

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

    Баллы:
    173
    Skype:
    osip.fatkullin
    Имя в Minecraft:
    OsipXD
    А будет ли такая локация эквивалентна локации с указанными yaw и pitch?
     
  2. Хостинг MineCraft
    <
  3. CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Не тестировал, если честно.
    hashCode формируется по данным класса, соответственно если yaw и pitch первой локации не равен yaw и pitch второй локации, то hashCode локаций будет разный. Соответственно, location.equals(location_1) вернёт false.
     
    Последнее редактирование: 6 сен 2016
  4. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Эта проверка бессмысленная, энтити не блок и имеет свойство двигаться - ходить.
    У энтити есть UUIDLeast UUIDMost, которые и делают его уникальным для проверки.
     
    Последнее редактирование: 6 сен 2016
  5. OsipXD

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

    Баллы:
    173
    Skype:
    osip.fatkullin
    Имя в Minecraft:
    OsipXD
    Да, но ведь метод equals() может быть переопределен, хотя в случае с Location я этого не наблюдаю
     
  6. Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Никогда с этой частью API не работал лично, поэтому не знал. Спасибо.
     
  7. Dymeth

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

    Баллы:
    76
    Я в коде вообще не разбирался. Я вообще не знаю, чем вы тут занимаетесь.
    Могу лишь сказать, что Location.equls(Location) проверит вдобавок ещё и мир с yaw и pitch, что, возможно, и не нужно в данном случае...
     
  8. CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Уже писал в данной теме, что можно создать новый "Location" не указывая при этом yaw и pitch.
     
  9. Dymeth

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

    Баллы:
    76
    Я ж говорю, я в тред и код вообще не вникал.
    upload_2016-9-7_5-30-49.png
    UPD: Чуток почитал, что вы тут обсуждаете...
    В этом случае yaw и pitch присваиваются нулевые значения. Соответственно если житель, на которого кликнули, не будет повёрнут, то Location.equals(Location) вернёт true.
     
  10. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Вся эта хрень сдохнет, если моб ходит. Вот так нужно искать своего неписа в мире.

    Код:
        @EventHandler
        public void onPlayerInteract(PlayerInteractEntityEvent e) {
            CraftEntity ent = (CraftEntity) e.getRightClicked();
            NBTTagCompound nbt = new NBTTagCompound();
            String UUIDMost = ent.getHandle().e(nbt).get("UUIDMost").toString();
            String UUIDLeast = ent.getHandle().e(nbt).get("UUIDLeast").toString();
            if(UUIDMost.equals("3005458539731698347L") && UUIDLeast.equals("-6317738198714295249L")) {
                e.getPlayer().sendMessage("Это наш моб");
            } else {
                e.getPlayer().sendMessage("Это не наш бом");
            }
        }
     
  11. CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    NMS. Это не лучшее решение.
     
  12. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Но единственное. Так нам без разницы где гуляет наш непис, мы его везде найдем.
    Никто ж не виноват, что в ведре не реализован показ уидов.[DOUBLEPOST=1473259591,1473258536][/DOUBLEPOST]Ну есть вариант с именем неписа, но это не самое уникальное значение.[DOUBLEPOST=1473259859][/DOUBLEPOST]
    Код:
        @EventHandler
        public void onPlayerInteract(PlayerInteractEntityEvent e) {
            Entity ent = e.getRightClicked();
            if(ent.getType()==EntityType.VILLAGER) {
                if(ent.getCustomName().equals("Торгаш")) {
                    e.getPlayer().sendMessage("Это наш моб");
                } else {
                    e.getPlayer().sendMessage("Это не наш бом");
                }
            }
        }
     
    Последнее редактирование: 7 сен 2016
  13. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Нужна проверка есть ли у моба имя, а то NPE вылезет.
     
  14. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Код:
        @EventHandler
        public void onPlayerInteract(PlayerInteractEntityEvent e) {
            Entity ent = e.getRightClicked();
            if(ent.getType()==EntityType.VILLAGER && ent.getCustomName().isEmpty()) {
                if(ent.getCustomName().equals("Торгаш")) {
                    e.getPlayer().sendMessage("Это наш моб");
                } else {
                    e.getPlayer().sendMessage("Это не наш бом");
                }
            }
        }
     
  15. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
  16. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
  17. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Ну хз. Токо что проверил, пробовал разгружать и загружать чанки с мобом, рестартить сервер, но uuid так и не сменился
     
  18. CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Я вот аналог ситизенса себе склепал.
    Ну как аналог, ситизенс весит 700 кб, а мой "аналог" - 60. Чисто под конкретные задачи. Для меня вполне хватает, и главное, что нмс там нет.
     
  19. CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Не локация, а по имени :)
     
  20. OsipXD

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

    Баллы:
    173
    Skype:
    osip.fatkullin
    Имя в Minecraft:
    OsipXD
    Можно в конец имени добавлять невидимый тэг, чтобы было уникально. Примерно как тут.
     
  21. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Да все можно конечно же.
     
Статус темы:
Закрыта.

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