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!
Please login to leave a comment.