Перейти к содержимому
  • 0
Nedfreetoplay

JDK minecraft Modding

Вопрос

Пожалуйста - кто знает, как во время крафта своего блока узнать координаты где я скрафтил?
А также как присвоить metadata к блоку?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

Координаты места крафта.(на примере крафта ведра)
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) В итоге мы получим координаты игрока во время крафта.
 

Изменено пользователем Strateg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Координаты места крафта.(на примере крафта ведра)

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 не обязательно, можно просто ==

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Со строками equals-обязательно

Это если строки, а если просто ссылки, то там наследуется код из класса Object, а именно 

public boolean equals(Object obj) {

return (this == obj);

}

 

Проще и быстрее писать ==, чем вызывать equals.

Изменено пользователем NEO

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
public class CraftBucket { @SubscribeEvent public void onCraftBucket(PlayerEvent.ItemCraftedEvent e){

Эвенты bucket можно юзать прямо из forge-мода?

Изменено пользователем Hello

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Эвенты bucket можно юзать прямо из forge-мода?

В примере используется forge-ивенты, но bukkit -ивенты тоже можно использовать.

Bukkit.getPluginManager().callEvent(event);
Изменено пользователем Strateg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хорошо, а зачем назвали класс CraftBucket? Это вводит в заблуждение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хорошо, а зачем назвали класс CraftBucket? Это вводит в заблуждение.

Мы отслеживали крафт ведра, как-то так и назвал)

P.S для написания плагинов используется библиотека Bukkit, а не Bucket

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Bukkit
Действительно :) Но я ей не занимался.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...