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;}
}
@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;}
}
Последнее редактирование: