Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Небольшая "функция"

Zard0nic

Старожил
Пользователь
Баллы
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 блока?
 
Большое спасибо за пример, как оказалось, язык похож на PHP, в котором я разбираюсь на базовом уровне.
И еще один вопрос: Material.НАЗВАНИЕ - можно указать id блока?
Нет, но зато можно сделать так:
Код:
&& event1.getClickedBlock().getTypeId() == ИД
 
Это я знаю, но найти подходящий и разобраться во всем этом, когда видишь первый раз в принципе эти методы и сам ява код сложно.
В любом случае спасибо за помощь.
При знании английского и синтаксиса джавы сложностей не возникнет
 
В самом условии 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(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(т.е. земля), то выполнить функцию.
Сделал проверку через boolean, но теперь зачеркивает некоторые элементы, к примеру public void selected(PlayerInventoryEvent event2)
 
Нет, схема примерно такая: если человек кликнул по блоку правым кликом, то выполняется проверка на id предмета, которым он кликнул, и если он равен, к примеру, 1(т.е. земля), то выполнить функцию.
А я что написал?
Код:
@СобытияОбработчик
публичный ничегоневозвращающий наИгрокИнтеракт(ИгрокВзаимодействиеСобытие е) {
Игрок р = е.получитьИгрок();
если(е.получитьДействие() == Действие.ПРАВЫЙ_КЛИК_ПО_БЛОКУ И p.получитьПредметВРуке().получитьМатериалНомер() == шесть) то
// съесть торт
конец_условия
}
 

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

Назад
Верх