1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Действие при клике на определенный блок

Тема в разделе "Разработка плагинов для новичков", создана пользователем Balison, 19 дек 2020.

  1. Автор темы
    Balison

    Balison Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Balison
    Прошу помощи у тех кто имел такой опыт. Кратко: Мне нужно сделать так, чтобы я мог использовать ключ только на определенном сундуке(при этом сундук не открывался, а уничтожался). Я хотел бы как-то проверить название сундука(ну или еще что-нибудь отличительное)Всё чего я смог достичь:

    @EventHandler
    public void BreackBlock(BlockBreakEvent b) {
    Player p = b.getPlayer();
    ItemStack key = new ItemStack(Material.GOLD_NUGGET);
    ItemMeta metakey = key.getItemMeta();
    metakey.setDisplayName(ChatColor.GOLD + "Загадочный ключ");
    key.setItemMeta(metakey);
    ItemStack rulet = new ItemStack(Material.CHEST);
    ItemMeta metarulet = rulet.getItemMeta();
    metarulet.setDisplayName(ChatColor.GOLD + "Загадочный сундук");
    rulet.setItemMeta(metarulet);
    int chance = (int) (Math.random() * 100);
    if (chance == 1) {
    p.sendMessage(ChatColor.GOLD + "При раскопе ты обнаружил загадочный предмет!");
    p.getInventory().addItem(key);
    p.getInventory().addItem(rulet);
    }
    }

    @EventHandler
    public void Use(PlayerInteractEvent e) {
    if (e.getHand() == EquipmentSlot.OFF_HAND) return;
    Player p = e.getPlayer();
    Block click = e.getClickedBlock();
    ItemStack item = p.getInventory().getItemInMainHand();
    if (e.getAction() != Action.RIGHT_CLICK_BLOCK) {return;}
    if(item.getType() != Material.GOLD_NUGGET) {return;}
    if(!item.getItemMeta().hasDisplayName()) {return;}
    if(click.getType() != Material.CHEST)return;
    if(item.getItemMeta().getDisplayName().equals(ChatColor.GOLD + "Загадочный ключ")) {
    e.setCancelled(true);
    item.setAmount(item.getAmount() - 1);
    p.getInventory().setItemInMainHand(item);
    p.sendMessage(ChatColor.GOLD + "Ты использовал ключ");
    return;}
    }
     
    Последнее редактирование: 19 дек 2020

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