Nedfreetoplay 0 Опубликовано: 21 февраля, 2016 Пожалуйста - кто знает, как во время крафта своего блока узнать координаты где я скрафтил?А также как присвоить metadata к блоку? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Strateg 110 Опубликовано: 21 февраля, 2016 (изменено) Координаты места крафта.(на примере крафта ведра)1)Ловим эвент: public class CraftBucket { @SubscribeEvent public void onCraftBucket(PlayerEvent.ItemCraftedEvent e){ if(e.crafting.getItem().equals(Items.bucket)){ System.out.println(e.player.getPlayerCoordinates()); } } } 2)Регистрируем обработчик: @Mod.EventHandler public void init(FMLInitializationEvent event) { FMLCommonHandler.instance().bus().register(new CraftBucket()); } 3) В итоге мы получим координаты игрока во время крафта. Изменено 21 февраля, 2016 пользователем Strateg Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 541 Опубликовано: 21 февраля, 2016 Координаты места крафта.(на примере крафта ведра)1)Ловим эвент: public class CraftBucket { @SubscribeEvent public void onCraftBucket(PlayerEvent.ItemCraftedEvent e){ if(e.crafting.getItem().equals(Items.bucket)){ System.out.println(e.player.getPlayerCoordinates()); } } }2)Регистрируем эвент: @Mod.EventHandler public void init(FMLInitializationEvent event) { FMLCommonHandler.instance().bus().register(new CraftBucket()); }3) В итоге мы получим координаты игрока во время крафта. equals не обязательно, можно просто == Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
evgkul 571 Опубликовано: 21 февраля, 2016 Со строками equals-обязательно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 541 Опубликовано: 21 февраля, 2016 (изменено) Со строками equals-обязательно Это если строки, а если просто ссылки, то там наследуется код из класса Object, а именно public boolean equals(Object obj) { return (this == obj); } Проще и быстрее писать ==, чем вызывать equals. Изменено 21 февраля, 2016 пользователем NEO Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Hello 125 Опубликовано: 9 марта, 2016 (изменено) public class CraftBucket { @SubscribeEvent public void onCraftBucket(PlayerEvent.ItemCraftedEvent e){ Эвенты bucket можно юзать прямо из forge-мода? Изменено 9 марта, 2016 пользователем Hello Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Strateg 110 Опубликовано: 9 марта, 2016 (изменено) Эвенты bucket можно юзать прямо из forge-мода? В примере используется forge-ивенты, но bukkit -ивенты тоже можно использовать. Bukkit.getPluginManager().callEvent(event); Изменено 9 марта, 2016 пользователем Strateg Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Hello 125 Опубликовано: 9 марта, 2016 Хорошо, а зачем назвали класс CraftBucket? Это вводит в заблуждение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Strateg 110 Опубликовано: 9 марта, 2016 Хорошо, а зачем назвали класс CraftBucket? Это вводит в заблуждение. Мы отслеживали крафт ведра, как-то так и назвал) P.S для написания плагинов используется библиотека Bukkit, а не Bucket Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Hello 125 Опубликовано: 10 марта, 2016 Bukkit Действительно Но я ей не занимался. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Пожалуйста - кто знает, как во время крафта своего блока узнать координаты где я скрафтил?
А также как присвоить metadata к блоку?
Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах