Вопрос Как запретить выкидывать алмаз в вагонетку с воронкой?

Версия Minecraft
1.15.X

Mikita

Заблокирован
Сообщения
57
Решения
3
Всем привет, как запретить выкидывать алмаз в вагонетку с воронкой?
 
Решение
Плагин отслеживает событие PlayerInteractEvent, когда игрок правым кликом взаимодействует с блоком. Если это взаимодействие происходит с вагонеткой с воронкой (Material.HOPPER), то плагин проверяет, есть ли у игрока в руке алмаз (Material.DIAMOND). Если условие выполняется, то событие отменяется и игроку отправляется сообщение о том, что он не может выкинуть алмаз в вагонетку.

JavaScript:
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

public class NoDiamondsToHopperPlugin extends JavaPlugin implements Listener {...
Плагин отслеживает событие PlayerInteractEvent, когда игрок правым кликом взаимодействует с блоком. Если это взаимодействие происходит с вагонеткой с воронкой (Material.HOPPER), то плагин проверяет, есть ли у игрока в руке алмаз (Material.DIAMOND). Если условие выполняется, то событие отменяется и игроку отправляется сообщение о том, что он не может выкинуть алмаз в вагонетку.

JavaScript:
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

public class NoDiamondsToHopperPlugin extends JavaPlugin implements Listener {

    @Override
    public void onEnable() {
        getServer().getPluginManager().registerEvents(this, this);
    }

    @EventHandler
    public void onPlayerInteract(PlayerInteractEvent event) {
        if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
            if (event.getClickedBlock().getType() == Material.HOPPER) {
                ItemStack item = event.getPlayer().getEquipment().getItemInMainHand();
                if (item != null && item.getType() == Material.DIAMOND) {
                    event.setCancelled(true);
                    event.getPlayer().sendMessage("§cВы не можете выкидывать алмазы в вагонетку с воронкой!");
                }
            }
        }
    }
}
 
Плагин отслеживает событие PlayerInteractEvent, когда игрок правым кликом взаимодействует с блоком. Если это взаимодействие происходит с вагонеткой с воронкой (Material.HOPPER), то плагин проверяет, есть ли у игрока в руке алмаз (Material.DIAMOND). Если условие выполняется, то событие отменяется и игроку отправляется сообщение о том, что он не может выкинуть алмаз в вагонетку.

JavaScript:
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

public class NoDiamondsToHopperPlugin extends JavaPlugin implements Listener {

    @Override
    public void onEnable() {
        getServer().getPluginManager().registerEvents(this, this);
    }

    @EventHandler
    public void onPlayerInteract(PlayerInteractEvent event) {
        if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
            if (event.getClickedBlock().getType() == Material.HOPPER) {
                ItemStack item = event.getPlayer().getEquipment().getItemInMainHand();
                if (item != null && item.getType() == Material.DIAMOND) {
                    event.setCancelled(true);
                    event.getPlayer().sendMessage("§cВы не можете выкидывать алмазы в вагонетку с воронкой!");
                }
            }
        }
    }
}
??????
Объединено

Всем привет, как запретить выкидывать алмаз в вагонетку с воронкой?
Java:
@EventHandler
    public void onHopper(InventoryPickupItemEvent e) {
        if(e.getInventory().getType() == InventoryType.HOPPER) {
            if(e.getItem().getItemStack().getType() == Material.DIAMOND) {
                e.setCancelled(true);
            }
        }
    }
 
Говорю же не обычная ВОРОНКА а вагонетка с воронкой
Объединено

??????
Объединено


Java:
@EventHandler
    public void onHopper(InventoryPickupItemEvent e) {
        if(e.getInventory().getType() == InventoryType.HOPPER) {
            if(e.getItem().getItemStack().getType() == Material.DIAMOND) {
                e.setCancelled(true);
            }
        }
    }
Спасибо. Код работает!
 
Назад
Сверху Снизу