Made Event an interface

This commit is contained in:
TheMode 2021-06-02 08:17:03 +02:00
parent 9c87b4d54f
commit 2d8474282b
64 changed files with 81 additions and 81 deletions

View File

@ -3,7 +3,7 @@ package net.minestom.server.event;
/**
* Represents an {@link Event} which can be cancelled.
*/
public interface CancellableEvent {
public interface CancellableEvent extends Event{
/**
* Gets if the {@link Event} should be cancelled or not.

View File

@ -3,9 +3,9 @@ package net.minestom.server.event;
import net.minestom.server.event.handler.EventHandler;
/**
* Object which can be listened to by an {@link EventHandler}.
* Event which can be listened to by an {@link EventHandler}.
* <p>
* Called using {@link EventHandler#callEvent(Class, Event)}.
*/
public class Event {
public interface Event {
}

View File

@ -21,6 +21,10 @@ public class EventListener<T extends Event> implements ListenerAttach {
this.combined = combined;
}
public static <T extends Event> EventListener.Builder<T> of(Class<T> eventType) {
return new EventListener.Builder<>(eventType);
}
@Override
public void attachTo(@NotNull EventHandler handler) {
final boolean success = this.attach.add(handler);

View File

@ -3,7 +3,7 @@ package net.minestom.server.event;
import net.minestom.server.instance.Instance;
import org.jetbrains.annotations.NotNull;
public class InstanceEvent extends Event {
public class InstanceEvent implements Event {
protected final Instance instance;

View File

@ -3,7 +3,7 @@ package net.minestom.server.event;
import net.minestom.server.inventory.Inventory;
import org.jetbrains.annotations.Nullable;
public class InventoryEvent extends Event {
public class InventoryEvent implements Event {
protected Inventory inventory;

View File

@ -1,7 +1,6 @@
package net.minestom.server.event.entity;
import net.minestom.server.entity.Entity;
import net.minestom.server.event.Event;
import net.minestom.server.event.trait.EntityEvent;
import org.jetbrains.annotations.NotNull;
@ -9,7 +8,7 @@ import org.jetbrains.annotations.NotNull;
* Called when a player does a left click on an entity or with
* {@link net.minestom.server.entity.EntityCreature#attack(Entity)}.
*/
public class EntityAttackEvent extends Event implements EntityEvent {
public class EntityAttackEvent implements EntityEvent {
private final Entity entity;
private final Entity target;

View File

@ -4,14 +4,13 @@ import net.minestom.server.entity.Entity;
import net.minestom.server.entity.LivingEntity;
import net.minestom.server.entity.damage.DamageType;
import net.minestom.server.event.CancellableEvent;
import net.minestom.server.event.Event;
import net.minestom.server.event.trait.EntityEvent;
import org.jetbrains.annotations.NotNull;
/**
* Called with {@link LivingEntity#damage(DamageType, float)}.
*/
public class EntityDamageEvent extends Event implements EntityEvent, CancellableEvent {
public class EntityDamageEvent implements EntityEvent, CancellableEvent {
private final Entity entity;
private final DamageType damageType;

View File

@ -1,11 +1,10 @@
package net.minestom.server.event.entity;
import net.minestom.server.entity.Entity;
import net.minestom.server.event.Event;
import net.minestom.server.event.trait.EntityEvent;
import org.jetbrains.annotations.NotNull;
public class EntityDeathEvent extends Event implements EntityEvent {
public class EntityDeathEvent implements EntityEvent {
// TODO cause
private final Entity entity;

View File

@ -2,12 +2,11 @@ package net.minestom.server.event.entity;
import net.minestom.server.entity.Entity;
import net.minestom.server.event.CancellableEvent;
import net.minestom.server.event.Event;
import net.minestom.server.event.trait.EntityEvent;
import net.minestom.server.utils.time.TimeUnit;
import org.jetbrains.annotations.NotNull;
public class EntityFireEvent extends Event implements EntityEvent, CancellableEvent {
public class EntityFireEvent implements EntityEvent, CancellableEvent {
private final Entity entity;
private int duration;

View File

@ -3,7 +3,6 @@ package net.minestom.server.event.entity;
import net.minestom.server.entity.Entity;
import net.minestom.server.entity.ItemEntity;
import net.minestom.server.event.CancellableEvent;
import net.minestom.server.event.Event;
import net.minestom.server.event.trait.EntityEvent;
import net.minestom.server.item.ItemStack;
import org.jetbrains.annotations.NotNull;
@ -11,7 +10,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Called when two {@link ItemEntity} are merging their {@link ItemStack} together to form a sole entity.
*/
public class EntityItemMergeEvent extends Event implements EntityEvent, CancellableEvent {
public class EntityItemMergeEvent implements EntityEvent, CancellableEvent {
private Entity entity;
private final ItemEntity merged;

View File

@ -1,12 +1,11 @@
package net.minestom.server.event.entity;
import net.minestom.server.entity.Entity;
import net.minestom.server.event.Event;
import net.minestom.server.event.trait.EntityEvent;
import net.minestom.server.potion.Potion;
import org.jetbrains.annotations.NotNull;
public class EntityPotionAddEvent extends Event implements EntityEvent {
public class EntityPotionAddEvent implements EntityEvent {
private final Entity entity;
private final Potion potion;

View File

@ -1,12 +1,11 @@
package net.minestom.server.event.entity;
import net.minestom.server.entity.Entity;
import net.minestom.server.event.Event;
import net.minestom.server.event.trait.EntityEvent;
import net.minestom.server.potion.Potion;
import org.jetbrains.annotations.NotNull;
public class EntityPotionRemoveEvent extends Event implements EntityEvent {
public class EntityPotionRemoveEvent implements EntityEvent {
private final Entity entity;
private final Potion potion;

View File

@ -2,7 +2,6 @@ package net.minestom.server.event.entity;
import net.minestom.server.entity.Entity;
import net.minestom.server.event.CancellableEvent;
import net.minestom.server.event.Event;
import net.minestom.server.event.trait.EntityEvent;
import net.minestom.server.utils.Position;
import org.jetbrains.annotations.NotNull;
@ -10,7 +9,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Called with {@link net.minestom.server.entity.type.projectile.EntityProjectile#shoot(Position, double, double)}
*/
public class EntityShootEvent extends Event implements EntityEvent, CancellableEvent {
public class EntityShootEvent implements EntityEvent, CancellableEvent {
private final Entity entity;
private final Entity projectile;

View File

@ -1,7 +1,6 @@
package net.minestom.server.event.entity;
import net.minestom.server.entity.Entity;
import net.minestom.server.event.Event;
import net.minestom.server.event.trait.EntityEvent;
import net.minestom.server.instance.Instance;
import org.jetbrains.annotations.NotNull;
@ -9,7 +8,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Called when a new instance is set for an entity.
*/
public class EntitySpawnEvent extends Event implements EntityEvent {
public class EntitySpawnEvent implements EntityEvent {
private final Entity entity;
private final Instance spawnInstance;

View File

@ -1,7 +1,6 @@
package net.minestom.server.event.entity;
import net.minestom.server.entity.Entity;
import net.minestom.server.event.Event;
import net.minestom.server.event.trait.EntityEvent;
import org.jetbrains.annotations.NotNull;
@ -9,7 +8,7 @@ import org.jetbrains.annotations.NotNull;
* Called when an entity ticks itself.
* Same event instance used for all tick events for the same entity.
*/
public class EntityTickEvent extends Event implements EntityEvent {
public class EntityTickEvent implements EntityEvent {
private final Entity entity;

View File

@ -2,7 +2,6 @@ package net.minestom.server.event.entity;
import net.minestom.server.entity.Entity;
import net.minestom.server.event.CancellableEvent;
import net.minestom.server.event.Event;
import net.minestom.server.event.trait.EntityEvent;
import net.minestom.server.utils.Vector;
import org.jetbrains.annotations.NotNull;
@ -10,7 +9,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Called when a velocity is applied to an entity using {@link Entity#setVelocity(Vector)}.
*/
public class EntityVelocityEvent extends Event implements EntityEvent, CancellableEvent {
public class EntityVelocityEvent implements EntityEvent, CancellableEvent {
private final Entity entity;
private Vector velocity;

View File

@ -6,7 +6,7 @@ import net.minestom.server.event.Event;
import net.minestom.server.item.ItemStack;
import org.jetbrains.annotations.NotNull;
public class EntityEquipEvent extends Event {
public class EntityEquipEvent implements Event {
private final Entity entity;
private ItemStack equippedItem;

View File

@ -6,7 +6,7 @@ import net.minestom.server.event.Event;
import net.minestom.server.item.ItemStack;
import org.jetbrains.annotations.NotNull;
public class ItemDropEvent extends Event implements CancellableEvent {
public class ItemDropEvent implements CancellableEvent {
private final Player player;
private final ItemStack itemStack;

View File

@ -5,7 +5,7 @@ import net.minestom.server.event.Event;
import net.minestom.server.item.ItemStack;
import org.jetbrains.annotations.NotNull;
public class ItemUpdateStateEvent extends Event {
public class ItemUpdateStateEvent implements Event {
private final Player player;
private final Player.Hand hand;

View File

@ -5,7 +5,7 @@ import net.minestom.server.event.CancellableEvent;
import net.minestom.server.event.Event;
import org.jetbrains.annotations.NotNull;
public class PickupExperienceEvent extends Event implements CancellableEvent {
public class PickupExperienceEvent implements CancellableEvent {
private final ExperienceOrb experienceOrb;
private short experienceCount;

View File

@ -7,7 +7,7 @@ import net.minestom.server.event.Event;
import net.minestom.server.item.ItemStack;
import org.jetbrains.annotations.NotNull;
public class PickupItemEvent extends Event implements CancellableEvent {
public class PickupItemEvent implements CancellableEvent {
private final LivingEntity livingEntity;
private final ItemEntity itemEntity;

View File

@ -10,7 +10,7 @@ import org.jetbrains.annotations.NotNull;
* Called when a {@link Player} opens the advancement screens or switch the tab
* and when he closes the screen.
*/
public class AdvancementTabEvent extends Event implements PlayerEvent {
public class AdvancementTabEvent implements PlayerEvent {
private final Player player;
private final AdvancementAction action;

View File

@ -11,7 +11,7 @@ import java.util.UUID;
* Called before the player initialization, it can be used to kick the player before any connection
* or to change his final username/uuid.
*/
public class AsyncPlayerPreLoginEvent extends Event implements PlayerEvent {
public class AsyncPlayerPreLoginEvent implements PlayerEvent {
private final Player player;
private String username;

View File

@ -12,7 +12,7 @@ import net.minestom.server.utils.validate.Check;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class PlayerBlockBreakEvent extends Event implements PlayerEvent, CancellableEvent {
public class PlayerBlockBreakEvent implements PlayerEvent, CancellableEvent {
private static final BlockManager BLOCK_MANAGER = MinecraftServer.getBlockManager();

View File

@ -12,7 +12,7 @@ import org.jetbrains.annotations.NotNull;
* Called when a player interacts with a block (right-click).
* This is also called when a block is placed.
*/
public class PlayerBlockInteractEvent extends Event implements PlayerEvent, CancellableEvent {
public class PlayerBlockInteractEvent implements PlayerEvent, CancellableEvent {
private final Player player;
private final BlockPosition blockPosition;

View File

@ -17,7 +17,7 @@ import org.jetbrains.annotations.Nullable;
/**
* Called when a player tries placing a block.
*/
public class PlayerBlockPlaceEvent extends Event implements PlayerEvent, CancellableEvent {
public class PlayerBlockPlaceEvent implements PlayerEvent, CancellableEvent {
private static final BlockManager BLOCK_MANAGER = MinecraftServer.getBlockManager();

View File

@ -11,7 +11,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Called when a player change his held slot (by pressing 1-9 keys).
*/
public class PlayerChangeHeldSlotEvent extends Event implements PlayerEvent, CancellableEvent {
public class PlayerChangeHeldSlotEvent implements PlayerEvent, CancellableEvent {
private final Player player;
private byte slot;

View File

@ -18,7 +18,7 @@ import java.util.function.Supplier;
* Called every time a {@link Player} write and send something in the chat.
* The event can be cancelled to do not send anything, and the format can be changed.
*/
public class PlayerChatEvent extends Event implements PlayerEvent, CancellableEvent {
public class PlayerChatEvent implements PlayerEvent, CancellableEvent {
private final Player player;
private final Collection<Player> recipients;

View File

@ -8,7 +8,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Called when a player receive a new chunk data.
*/
public class PlayerChunkLoadEvent extends Event implements PlayerEvent {
public class PlayerChunkLoadEvent implements PlayerEvent {
private final Player player;
private final int chunkX, chunkZ;

View File

@ -10,7 +10,7 @@ import org.jetbrains.annotations.NotNull;
* <p>
* Could be used to unload the chunk internally in order to save memory.
*/
public class PlayerChunkUnloadEvent extends Event implements PlayerEvent {
public class PlayerChunkUnloadEvent implements PlayerEvent {
private final Player player;
private final int chunkX, chunkZ;

View File

@ -9,7 +9,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Called every time a player send a message starting by '/'.
*/
public class PlayerCommandEvent extends Event implements PlayerEvent, CancellableEvent {
public class PlayerCommandEvent implements PlayerEvent, CancellableEvent {
private final Player player;
private String command;

View File

@ -11,7 +11,7 @@ import org.jetbrains.annotations.Nullable;
/**
* Called when a player die in {@link Player#kill()}.
*/
public class PlayerDeathEvent extends Event implements PlayerEvent {
public class PlayerDeathEvent implements PlayerEvent {
private final Player player;
private Component deathText;

View File

@ -8,7 +8,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Called when a player disconnect.
*/
public class PlayerDisconnectEvent extends Event implements PlayerEvent {
public class PlayerDisconnectEvent implements PlayerEvent {
private final Player player;

View File

@ -9,7 +9,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Called when a player is finished eating.
*/
public class PlayerEatEvent extends Event implements PlayerEvent {
public class PlayerEatEvent implements PlayerEvent {
private final Player player;
private final ItemStack foodItem;

View File

@ -9,7 +9,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Called when a {@link Player} interacts (right-click) with an {@link Entity}.
*/
public class PlayerEntityInteractEvent extends Event implements PlayerEvent {
public class PlayerEntityInteractEvent implements PlayerEvent {
private final Player player;
private final Entity entityTarget;

View File

@ -9,7 +9,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Called when the player swings his hand.
*/
public class PlayerHandAnimationEvent extends Event implements PlayerEvent, CancellableEvent {
public class PlayerHandAnimationEvent implements PlayerEvent, CancellableEvent {
private final Player player;
private final Player.Hand hand;

View File

@ -11,7 +11,7 @@ import org.jetbrains.annotations.NotNull;
*
* @see ItemAnimationType
*/
public class PlayerItemAnimationEvent extends Event implements PlayerEvent, CancellableEvent {
public class PlayerItemAnimationEvent implements PlayerEvent, CancellableEvent {
private final Player player;
private final ItemAnimationType armAnimationType;

View File

@ -17,7 +17,7 @@ import org.jetbrains.annotations.Nullable;
* <p>
* WARNING: defining the spawning instance is MANDATORY.
*/
public class PlayerLoginEvent extends Event implements PlayerEvent {
public class PlayerLoginEvent implements PlayerEvent {
private final Player player;
private Instance spawningInstance;

View File

@ -10,7 +10,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Called when a player is modifying his position.
*/
public class PlayerMoveEvent extends Event implements PlayerEvent, CancellableEvent {
public class PlayerMoveEvent implements PlayerEvent, CancellableEvent {
private final Player player;
private Position newPosition;

View File

@ -8,7 +8,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Called when a player send {@link net.minestom.server.network.packet.client.play.ClientPluginMessagePacket}.
*/
public class PlayerPluginMessageEvent extends Event implements PlayerEvent {
public class PlayerPluginMessageEvent implements PlayerEvent {
private final Player player;
private final String identifier;

View File

@ -12,7 +12,7 @@ import org.jetbrains.annotations.NotNull;
* or to cancel its processing, cancelling the event means that the player will
* continue the animation indefinitely.
*/
public class PlayerPreEatEvent extends Event implements PlayerEvent, CancellableEvent {
public class PlayerPreEatEvent implements PlayerEvent, CancellableEvent {
private final Player player;
private final ItemStack foodItem;

View File

@ -9,7 +9,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Called when a player warns the server of a resource pack status.
*/
public class PlayerResourcePackStatusEvent extends Event implements PlayerEvent {
public class PlayerResourcePackStatusEvent implements PlayerEvent {
private final Player player;
private final ResourcePackStatus status;

View File

@ -10,7 +10,7 @@ import org.jetbrains.annotations.NotNull;
* Called when {@link Player#respawn()} is executed (for custom respawn or as a result of
* {@link net.minestom.server.network.packet.client.play.ClientStatusPacket}
*/
public class PlayerRespawnEvent extends Event implements PlayerEvent {
public class PlayerRespawnEvent implements PlayerEvent {
private final Player player;
private Position respawnPosition;

View File

@ -8,7 +8,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Called after the player signals the server that his settings has been modified.
*/
public class PlayerSettingsChangeEvent extends Event implements PlayerEvent {
public class PlayerSettingsChangeEvent implements PlayerEvent {
private final Player player;

View File

@ -10,7 +10,7 @@ import org.jetbrains.annotations.Nullable;
/**
* Called at the player connection to initialize his skin.
*/
public class PlayerSkinInitEvent extends Event implements PlayerEvent {
public class PlayerSkinInitEvent implements PlayerEvent {
private final Player player;
private PlayerSkin skin;

View File

@ -9,7 +9,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Called when a new instance is set for a player.
*/
public class PlayerSpawnEvent extends Event implements PlayerEvent {
public class PlayerSpawnEvent implements PlayerEvent {
private final Player player;
private final Instance spawnInstance;

View File

@ -15,7 +15,7 @@ import org.jetbrains.annotations.NotNull;
* (could be because of high latency or a modified client) so cancelling {@link PlayerBlockBreakEvent} is also necessary.
* Could be fixed in future Minestom version.
*/
public class PlayerStartDiggingEvent extends Event implements PlayerEvent, CancellableEvent {
public class PlayerStartDiggingEvent implements PlayerEvent, CancellableEvent {
private final Player player;
private final BlockPosition blockPosition;

View File

@ -8,7 +8,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Called when a player start flying.
*/
public class PlayerStartFlyingEvent extends Event implements PlayerEvent {
public class PlayerStartFlyingEvent implements PlayerEvent {
private final Player player;

View File

@ -5,7 +5,7 @@ import net.minestom.server.event.Event;
import net.minestom.server.event.trait.PlayerEvent;
import org.jetbrains.annotations.NotNull;
public class PlayerStartFlyingWithElytraEvent extends Event implements PlayerEvent {
public class PlayerStartFlyingWithElytraEvent implements PlayerEvent {
private final Player player;

View File

@ -8,7 +8,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Called when a player starts sneaking.
*/
public class PlayerStartSneakingEvent extends Event implements PlayerEvent {
public class PlayerStartSneakingEvent implements PlayerEvent {
private final Player player;

View File

@ -8,7 +8,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Called when a player starts sprinting.
*/
public class PlayerStartSprintingEvent extends Event implements PlayerEvent {
public class PlayerStartSprintingEvent implements PlayerEvent {
private final Player player;

View File

@ -8,7 +8,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Called when a player stop flying.
*/
public class PlayerStopFlyingEvent extends Event implements PlayerEvent {
public class PlayerStopFlyingEvent implements PlayerEvent {
private final Player player;

View File

@ -5,7 +5,7 @@ import net.minestom.server.event.Event;
import net.minestom.server.event.trait.PlayerEvent;
import org.jetbrains.annotations.NotNull;
public class PlayerStopFlyingWithElytraEvent extends Event implements PlayerEvent {
public class PlayerStopFlyingWithElytraEvent implements PlayerEvent {
private final Player player;

View File

@ -8,7 +8,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Called when a player stops sneaking.
*/
public class PlayerStopSneakingEvent extends Event implements PlayerEvent {
public class PlayerStopSneakingEvent implements PlayerEvent {
private final Player player;

View File

@ -8,7 +8,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Called when a player stops sprinting.
*/
public class PlayerStopSprintingEvent extends Event implements PlayerEvent {
public class PlayerStopSprintingEvent implements PlayerEvent {
private final Player player;

View File

@ -10,7 +10,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Called when a player is trying to swap his main and off hand item.
*/
public class PlayerSwapItemEvent extends Event implements PlayerEvent, CancellableEvent {
public class PlayerSwapItemEvent implements PlayerEvent, CancellableEvent {
private final Player player;
private ItemStack mainHandItem;

View File

@ -1,14 +1,13 @@
package net.minestom.server.event.player;
import net.minestom.server.entity.Player;
import net.minestom.server.event.Event;
import net.minestom.server.event.trait.PlayerEvent;
import org.jetbrains.annotations.NotNull;
/**
* Called at each player tick.
*/
public class PlayerTickEvent extends Event implements PlayerEvent {
public class PlayerTickEvent implements PlayerEvent {
private final Player player;

View File

@ -10,7 +10,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Event when an item is used without clicking on a block.
*/
public class PlayerUseItemEvent extends Event implements PlayerEvent, CancellableEvent {
public class PlayerUseItemEvent implements PlayerEvent, CancellableEvent {
private final Player player;
private final Player.Hand hand;

View File

@ -11,7 +11,7 @@ import org.jetbrains.annotations.NotNull;
/**
* Used when a player is clicking on a block with an item (but is not a block in item form).
*/
public class PlayerUseItemOnBlockEvent extends Event implements PlayerEvent {
public class PlayerUseItemOnBlockEvent implements PlayerEvent {
private final Player player;
private final Player.Hand hand;

View File

@ -4,7 +4,7 @@ import net.minestom.server.event.Event;
import net.minestom.server.network.packet.server.play.TagsPacket;
import org.jetbrains.annotations.NotNull;
public class UpdateTagListEvent extends Event {
public class UpdateTagListEvent implements Event {
private TagsPacket packet;

View File

@ -2,7 +2,6 @@ package net.minestom.server.event.server;
import net.minestom.server.MinecraftServer;
import net.minestom.server.event.CancellableEvent;
import net.minestom.server.event.Event;
import net.minestom.server.network.player.PlayerConnection;
import net.minestom.server.ping.ResponseData;
import net.minestom.server.ping.ResponseDataConsumer;
@ -16,7 +15,7 @@ import java.util.Objects;
* Called when a {@link PlayerConnection} sends a status packet,
* usually to display information on the server list.
*/
public class ServerListPingEvent extends Event implements CancellableEvent {
public class ServerListPingEvent implements CancellableEvent {
private final PlayerConnection connection;
private final ServerListPingType type;
@ -36,7 +35,7 @@ public class ServerListPingEvent extends Event implements CancellableEvent {
* Creates a new server list ping event.
*
* @param connection the player connection, if the ping type is modern
* @param type the ping type to respond with
* @param type the ping type to respond with
*/
public ServerListPingEvent(@Nullable PlayerConnection connection, @NotNull ServerListPingType type) {
//noinspection deprecation we need to continue doing this until the consumer is removed - todo remove
@ -86,7 +85,7 @@ public class ServerListPingEvent extends Event implements CancellableEvent {
* @return the ping type
*/
public @NotNull ServerListPingType getPingType() {
return type;
return type;
}
@Override

View File

@ -1,4 +1,6 @@
package net.minestom.server.event.trait;
public interface EventTrait {
import net.minestom.server.event.Event;
public interface EventTrait extends Event {
}

View File

@ -1,7 +1,6 @@
package net.minestom.server.extras.query.event;
import net.minestom.server.event.CancellableEvent;
import net.minestom.server.event.Event;
import net.minestom.server.utils.binary.Writeable;
import org.jetbrains.annotations.NotNull;
@ -13,7 +12,7 @@ import java.util.Objects;
*
* @param <T> the type of the response
*/
public abstract class QueryEvent<T extends Writeable> extends Event implements CancellableEvent {
public abstract class QueryEvent<T extends Writeable> implements CancellableEvent {
private final SocketAddress sender;
private final int sessionID;
@ -23,9 +22,9 @@ public abstract class QueryEvent<T extends Writeable> extends Event implements C
/**
* Creates a new query event.
*
* @param sender the sender
* @param sender the sender
* @param sessionID the session ID of the query sender
* @param response the initial response
* @param response the initial response
*/
public QueryEvent(@NotNull SocketAddress sender, int sessionID, @NotNull T response) {
this.sender = sender;

View File

@ -11,11 +11,14 @@ import net.minestom.server.entity.GameMode;
import net.minestom.server.entity.ItemEntity;
import net.minestom.server.entity.Player;
import net.minestom.server.entity.damage.DamageType;
import net.minestom.server.event.EventListener;
import net.minestom.server.event.EventNode;
import net.minestom.server.event.GlobalEventHandler;
import net.minestom.server.event.entity.EntityAttackEvent;
import net.minestom.server.event.item.ItemDropEvent;
import net.minestom.server.event.item.PickupItemEvent;
import net.minestom.server.event.player.*;
import net.minestom.server.event.trait.PlayerEvent;
import net.minestom.server.instance.Chunk;
import net.minestom.server.instance.Instance;
import net.minestom.server.instance.InstanceContainer;
@ -134,6 +137,11 @@ public class PlayerInit {
// EVENT REGISTERING
var node = EventNode.create(PlayerEvent.class);
node.addListener(EventListener.of(PlayerTickEvent.class)
.handler(playerTickEvent -> System.out.println("Player tick!"))
.build());
GlobalEventHandler globalEventHandler = MinecraftServer.getGlobalEventHandler();
globalEventHandler.addEventCallback(EntityAttackEvent.class, event -> {
final Entity source = event.getEntity();