- Баллы
- 153
Подскажите, как сделать в плагине такую "функцию": если человек кликнул по блоку с определенным id, то выполняется условие. В Java не разбираюсь, плагин собираю по кусочкам, буду благодарен всем ответам.
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
@EventHandler
public void click(PlayerInteractEvent event1){
if (event1.getAction() == Action.RIGHT_CLICK_BLOCK(У примеру там разные варианты левый клик по воздуху и тд)
&& event1.getClickedBlock().getType() == Material.НАЗВАНИЕ) {
Вот держи код подобия
Код:@EventHandler public void click(PlayerInteractEvent event1){ if (event1.getAction() == Action.RIGHT_CLICK_BLOCK(У примеру там разные варианты левый клик по воздуху и тд) && event1.getClickedBlock().getType() == Material.НАЗВАНИЕ) {
Нет, но зато можно сделать так:Большое спасибо за пример, как оказалось, язык похож на PHP, в котором я разбираюсь на базовом уровне.
И еще один вопрос: Material.НАЗВАНИЕ - можно указать id блока?
&& event1.getClickedBlock().getTypeId() == ИД
Нет, но зато можно сделать так:
Код:&& event1.getClickedBlock().getTypeId() == ИД
http://jd.bukkit.org/rb/apidocs/Спасибо, буду разбираться дальше. В основном вопросы в API баккита, во всех этих методах я ноль
http://jd.bukkit.org/rb/apidocs/
Все они есть тут
При знании английского и синтаксиса джавы сложностей не возникнетЭто я знаю, но найти подходящий и разобраться во всем этом, когда видишь первый раз в принципе эти методы и сам ява код сложно.
В любом случае спасибо за помощь.
public void selected(PlayerInventory event2)
Пишет про скобки и про чтото еще
Если я правильно понял, то ты написал что то типа if(public void selected(PlayerInventory event2)), если да, то это дикий бредВ самом условии if написал:
и далее небольшой тест на инвентарь. В итоге этот код дает ошибку. Что я сделал не так?Код:public void selected(PlayerInventory event2)
Если я правильно понял, то ты написал что то типа if(public void selected(PlayerInventory event2)), если да, то это дикий бред
http://www.rubukkit.org/threads/Урок-Пишем-первый-плагин.24364/
вот тут можно познакомиться с основами написания плагинов
if (event1.getAction() == Action.RIGHT_CLICK_BLOCK && event1.getClickedBlock().getTypeId() == 6) {
getLogger().info("Block with ID 6 has been clicked");
public void selected(PlayerInventoryEvent event2)
{
if(event2.getItemInHand().itemStack() == 1)
{
}
}
}
Тоже бред. Ты суёшь метод в методВидимо бред :сКод:if (event1.getAction() == Action.RIGHT_CLICK_BLOCK && event1.getClickedBlock().getTypeId() == 6) { getLogger().info("Block with ID 6 has been clicked"); public void selected(PlayerInventoryEvent event2) { if(event2.getItemInHand().itemStack() == 1) { } } }
Тоже бред. Ты суёшь метод в метод
@EventHandler
public void onPlayerInteract(PlayerInteractEvent e) {
Player p = e.getPlayer();
if(e.getAction() == Action.RIGHT_CLICK_BLOCK && p.getItemInHand().getType() == 6) {
//съесть торт
}
}
Если тебе надо слушать клик с каким то предметом в руке, то это выглядеть должно как то так
Код:@EventHandler public void onPlayerInteract(PlayerInteractEvent e) { Player p = e.getPlayer(); if(e.getAction() == Action.RIGHT_CLICK_BLOCK && p.getItemInHand().getType() == 6) { //съесть торт } }
А я что написал?Нет, схема примерно такая: если человек кликнул по блоку правым кликом, то выполняется проверка на id предмета, которым он кликнул, и если он равен, к примеру, 1(т.е. земля), то выполнить функцию.
@СобытияОбработчик
публичный ничегоневозвращающий наИгрокИнтеракт(ИгрокВзаимодействиеСобытие е) {
Игрок р = е.получитьИгрок();
если(е.получитьДействие() == Действие.ПРАВЫЙ_КЛИК_ПО_БЛОКУ И p.получитьПредметВРуке().получитьМатериалНомер() == шесть) то
// съесть торт
конец_условия
}