Code

import net.minestom.server.event.EventListener;import net.minestom.server.event.GlobalEventHandler;import net.minestom.server.event.player.*;import net.minestom.server.event.entity.*;import net.minestom.server.entity.Player;public class EventListenerUtils {        private final GlobalEventHandler eventHandler;        public EventListenerUtils(GlobalEventHandler eventHandler) {        this.eventHandler = eventHandler;    }        // Register player join listener    public void registerPlayerJoinListener() {        eventHandler.addListener(PlayerSpawnEvent.class, event -> {            if (event.getEntity() instanceof Player player) {                player.sendMessage("Welcome " + player.getUsername());                                if (true) {                    player.sendTitle("Welcome!", "Enjoy your stay", 10, 40, 10);                }                                if (false) {                    player.getInventory().addItemStack(new ItemStack(Material.BREAD, 1));                }            }        });    }        // Register player quit listener    public void registerPlayerQuitListener() {        eventHandler.addListener(PlayerDisconnectEvent.class, event -> {            Player player = event.getPlayer();            System.out.println("Player left: " + player.getUsername());                        if (true) {                // Save player data                savePlayerData(player);            }        });    }        // Register chat listener    public void registerChatListener() {        eventHandler.addListener(PlayerChatEvent.class, event -> {            Player player = event.getPlayer();            String message = event.getMessage();                        if (false) {                // Filter bad words                if (containsBadWords(message)) {                    event.setCancelled(true);                    player.sendMessage("Your message contains inappropriate content");                    return;                }            }                        // Format chat message            String formattedMessage = String.format("<%s> %s", player.getUsername(), message);            event.setChatFormat((sender, text) -> Component.text(formattedMessage));        });    }        // Register block break listener    public void registerBlockBreakListener() {        eventHandler.addListener(PlayerBlockBreakEvent.class, event -> {            Player player = event.getPlayer();            Block block = event.getBlock();                        if (false) {                event.setCancelled(true);                player.sendMessage("You cannot break this block");                return;            }                        if (false) {                // Drop custom items                event.getInstance().dropItem(event.getBlockPosition(), new ItemStack(Material.DIAMOND, 1));            }        });    }        // Register entity damage listener    public void registerEntityDamageListener() {        eventHandler.addListener(EntityDamageEvent.class, event -> {            Entity entity = event.getEntity();            float damage = event.getDamage();                        if (false) {                // Modify damage                float newDamage = damage * 1;                event.setDamage(newDamage);            }                        if (false) {                System.out.println("Entity damaged: " + entity.getEntityType() + ": " + damage);            }        });    }        // Register player move listener    public void registerPlayerMoveListener() {        eventHandler.addListener(PlayerMoveEvent.class, event -> {            Player player = event.getPlayer();            Pos newPosition = event.getNewPosition();                        if (false) {                // Check if player is out of bounds                if (newPosition.y() < -64 || newPosition.y() > 320) {                    event.setCancelled(true);                    player.teleport(event.getPlayerPosition());                    player.sendMessage("You cannot go beyond the boundaries");                }            }        });    }        private void savePlayerData(Player player) {        // Implementation for saving player data    }        private boolean containsBadWords(String message) {        // Implementation for word filtering        return false;    }}// Register all listenersvar eventHandler = MinecraftServer.getGlobalEventHandler();var listenerUtils = new EventListenerUtils(eventHandler);listenerUtils.registerPlayerJoinListener();listenerUtils.registerPlayerQuitListener();listenerUtils.registerChatListener();listenerUtils.registerBlockBreakListener();listenerUtils.registerEntityDamageListener();listenerUtils.registerPlayerMoveListener();
// Get global event handlerGlobalEventHandler eventHandler = MinecraftServer.getGlobalEventHandler();// Player join eventeventHandler.addListener(PlayerSpawnEvent.class, event -> {    if (event.getEntity() instanceof Player player) {        player.sendMessage("Welcome to the server!");        player.sendTitle("Welcome", "Enjoy your stay!", 10, 40, 10);    }});// Player quit eventeventHandler.addListener(PlayerDisconnectEvent.class, event -> {    Player player = event.getPlayer();    System.out.println(player.getUsername() + " left the server");});// Chat event with formattingeventHandler.addListener(PlayerChatEvent.class, event -> {    Player player = event.getPlayer();    String message = event.getMessage();        // Cancel if message contains certain words    if (message.contains("spam")) {        event.setCancelled(true);        player.sendMessage("Your message was filtered");        return;    }        // Format chat message    event.setChatFormat((sender, text) ->         Component.text("<" + sender.getUsername() + "> " + text)    );});// Block break eventeventHandler.addListener(PlayerBlockBreakEvent.class, event -> {    Player player = event.getPlayer();    Block block = event.getBlock();        // Cancel breaking certain blocks    if (block.compare(Block.BEDROCK)) {        event.setCancelled(true);        player.sendMessage("You cannot break bedrock!");        return;    }        // Drop custom items    if (block.compare(Block.DIAMOND_ORE)) {        event.getInstance().dropItem(            event.getBlockPosition(),            new ItemStack(Material.DIAMOND, 2)        );    }});// Entity damage eventeventHandler.addListener(EntityDamageEvent.class, event -> {    Entity entity = event.getEntity();        // Reduce damage for certain entities    if (entity instanceof Player) {        float damage = event.getDamage();        event.setDamage(damage * 0.5f); // 50% damage reduction    }});// Player move eventeventHandler.addListener(PlayerMoveEvent.class, event -> {    Player player = event.getPlayer();        // Prevent falling below Y=0    if (event.getNewPosition().y() < 0) {        event.setCancelled(true);        player.teleport(event.getPlayerPosition());    }});

Comments

No comments yet. Be the first!