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

Помогите Подправить код

Статус
Закрыто для дальнейших ответов.

profi

Активный участник
Пользователь
Баллы
88
В этом виде запрет действует следующим образом: если нету алмаза и камня - вы ничего не сможете поднять, если есть - сможете. Нужно же вот что: если надета броня hat и chest - сможете поднять итемы (их нужно указать в этом же коде), если же брони нет - будет действовать запрет (только на те блоки, что будут указаны в этом же коде). По возможности и желанию вывести это все в конфиг, хотя с моей стороны это уже наглость, и мне самому это нужно учить. Собственно вот код:

Код:
public class main extends JavaPlugin implements Listener {
       public static final Logger _log = Logger.getLogger("Minecraft");
   
        @Override
        public void onEnable() {
            _log.info("[FirstPlg] onEnable()");
            Bukkit.getPluginManager().registerEvents(this, this);
        }
       
        public void onDisable(){
            _log.info("Plugin has been disabled.");
        }
       
        @EventHandler
        public void onPickUp(PlayerPickupItemEvent e)
        {
            Player player = e.getPlayer();
            PlayerInventory inventory = player.getInventory();
            ItemStack hat = new ItemStack(Material.DIAMOND, 1);
            ItemStack chest = new ItemStack(Material.STONE, 1);
           
            if ((inventory.contains(hat)) && (inventory.contains(chest))) {
                player.sendMessage(ChatColor.GOLD + "Вы успешно подняли предмет!");
                }
            else {
                    e.setCancelled(true);
                    e.getPlayer().sendMessage(ChatColor.RED + "У вас нет необходимых доспехов");
                 }
        }
}

Помощи прошу так как с написанием плагина столкнулся впервые. (Все бывает в первый раз :))
 
Мне кажется это работает уже сейчас, только доспехи не одеты в нужные слоты?
Если да, то, замечу, что у Inventory есть методы получения предметов в определённых специальных слотах — под доспехи.
 
Мне кажется это работает уже сейчас, только доспехи не одеты в нужные слоты?
Если да, то, замечу, что у Inventory есть методы получения предметов в определённых специальных слотах — под доспехи.
Работает, но только как я уже говорил под запрет попало все что только можно, а в идеале под запрет должны были попасть только те блоки что записаны в конфиг/код плагина
 
Работает, но только как я уже говорил под запрет попало все что только можно, а в идеале под запрет должны были попасть только те блоки что записаны в конфиг/код плагина
Ну так после того как проверил наличие брони, проверяй тип предмета который поднимают.
 
Поставь в onPickUp if, который будет сравнивать тип айтема с типом в конфиге/массиве. И если он совпадает- делай e.setCancelled(true) и return.
 
Поставь в onPickUp if, который будет сравнивать тип айтема с типом в конфиге/массиве. И если он совпадает- делай e.setCancelled(true) и return.
Можно кусочек кода для примера?
 
Последнее редактирование:
Можно так:
Java:
    public void onPickUp(PlayerPickupItemEvent e)
    {
        if(e.getItem().getItemStack().getType() == Material.APPLE){
            e.setCancelled(true);
            return;
        }
    }
Можно сравнивать id и subId (getTypeId и getData)
 
Можно так:
Java:
    public void onPickUp(PlayerPickupItemEvent e)
    {
        if(e.getItem().getItemStack().getType() == Material.APPLE){
            e.setCancelled(true);
            return;
        }
    }
Можно сравнивать id и subId (getTypeId и getData)
Можно узнать твой скайп? Тут долго ждать ответа нужно, есть ещё пара вопросов, буду благодарен :)
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх