- Баллы
- 76
- Имя в Minecraft
- Jenka20091
Нужно сделать, если игрок сломал одну траву написать актионбар, если 5 штук то выдать изумруд
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Во-первых, неправильно указан тип в мапе, Integer нужно писать, т.к. int это примитив.BlockBreakEvent
if(e.getBlock() == Material.Трава)
HashMap<Player, int>
public class BlockBreaks implements Listener
{
@EventHandler
public void BreakGrass(BlockBreakEvent e)
{
Block b = e.getBlock();
Material mat = b.getType();
Player p = e.getPlayer();
if(mat.equals(Material.LONG_GRASS))
{
p.getInventory().addItem(new ItemStack(Material.ACACIA_DOOR));
p.sendMessage("Я дал тебе дверь!");
}
}
}
Выше объяснение про хешмеп написан. Записывай в него и при ломании проверяй условиями.Я сделал при ломании одной травы. А мне нужно именно 5.PHP:public class BlockBreaks implements Listener { @EventHandler public void BreakGrass(BlockBreakEvent e) { Block b = e.getBlock(); Material mat = b.getType(); Player p = e.getPlayer(); if(mat.equals(Material.LONG_GRASS)) { p.getInventory().addItem(new ItemStack(Material.ACACIA_DOOR)); p.sendMessage("Я дал тебе дверь!"); } } }
Писал без IDE.Во-первых, неправильно указан тип в мапе, Integer нужно писать, т.к. int это примитив.
Во-вторых, ему лучше использоваь Map<Player, Map<Material, Integer>>
где, Player - игрока, сломавший блок,
Material - тип сломанного блока,
Integer - количество сломанных блоков
Создаёшь ненужные переменные. (Они конечно будут быстро удалены, но т.к это ивент он бтв будет вызываться каждый тик)Я сделал при ломании одной травы. А мне нужно именно 5.PHP:public class BlockBreaks implements Listener { @EventHandler public void BreakGrass(BlockBreakEvent e) { Block b = e.getBlock(); Material mat = b.getType(); Player p = e.getPlayer(); if(mat.equals(Material.LONG_GRASS)) { p.getInventory().addItem(new ItemStack(Material.ACACIA_DOOR)); p.sendMessage("Я дал тебе дверь!"); } } }
Это будет жить только внутри метода во время выполнения.Создаёшь ненужные переменные. (Они конечно будут быстро удалены, но т.к это ивент он бтв будет вызываться каждый тик)