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. * 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. * 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; 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> * <p>
* Called using {@link EventHandler#callEvent(Class, Event)}. * 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; this.combined = combined;
} }
public static <T extends Event> EventListener.Builder<T> of(Class<T> eventType) {
return new EventListener.Builder<>(eventType);
}
@Override @Override
public void attachTo(@NotNull EventHandler handler) { public void attachTo(@NotNull EventHandler handler) {
final boolean success = this.attach.add(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 net.minestom.server.instance.Instance;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
public class InstanceEvent extends Event { public class InstanceEvent implements Event {
protected final Instance instance; protected final Instance instance;

View File

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

View File

@ -1,7 +1,6 @@
package net.minestom.server.event.entity; package net.minestom.server.event.entity;
import net.minestom.server.entity.Entity; import net.minestom.server.entity.Entity;
import net.minestom.server.event.Event;
import net.minestom.server.event.trait.EntityEvent; import net.minestom.server.event.trait.EntityEvent;
import org.jetbrains.annotations.NotNull; 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 * Called when a player does a left click on an entity or with
* {@link net.minestom.server.entity.EntityCreature#attack(Entity)}. * {@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 entity;
private final Entity target; 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.LivingEntity;
import net.minestom.server.entity.damage.DamageType; import net.minestom.server.entity.damage.DamageType;
import net.minestom.server.event.CancellableEvent; import net.minestom.server.event.CancellableEvent;
import net.minestom.server.event.Event;
import net.minestom.server.event.trait.EntityEvent; import net.minestom.server.event.trait.EntityEvent;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
/** /**
* Called with {@link LivingEntity#damage(DamageType, float)}. * 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 Entity entity;
private final DamageType damageType; private final DamageType damageType;

View File

@ -1,11 +1,10 @@
package net.minestom.server.event.entity; package net.minestom.server.event.entity;
import net.minestom.server.entity.Entity; import net.minestom.server.entity.Entity;
import net.minestom.server.event.Event;
import net.minestom.server.event.trait.EntityEvent; import net.minestom.server.event.trait.EntityEvent;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
public class EntityDeathEvent extends Event implements EntityEvent { public class EntityDeathEvent implements EntityEvent {
// TODO cause // TODO cause
private final Entity entity; 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.entity.Entity;
import net.minestom.server.event.CancellableEvent; import net.minestom.server.event.CancellableEvent;
import net.minestom.server.event.Event;
import net.minestom.server.event.trait.EntityEvent; import net.minestom.server.event.trait.EntityEvent;
import net.minestom.server.utils.time.TimeUnit; import net.minestom.server.utils.time.TimeUnit;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
public class EntityFireEvent extends Event implements EntityEvent, CancellableEvent { public class EntityFireEvent implements EntityEvent, CancellableEvent {
private final Entity entity; private final Entity entity;
private int duration; 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.Entity;
import net.minestom.server.entity.ItemEntity; import net.minestom.server.entity.ItemEntity;
import net.minestom.server.event.CancellableEvent; import net.minestom.server.event.CancellableEvent;
import net.minestom.server.event.Event;
import net.minestom.server.event.trait.EntityEvent; import net.minestom.server.event.trait.EntityEvent;
import net.minestom.server.item.ItemStack; import net.minestom.server.item.ItemStack;
import org.jetbrains.annotations.NotNull; 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. * 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 Entity entity;
private final ItemEntity merged; private final ItemEntity merged;

View File

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

View File

@ -1,12 +1,11 @@
package net.minestom.server.event.entity; package net.minestom.server.event.entity;
import net.minestom.server.entity.Entity; import net.minestom.server.entity.Entity;
import net.minestom.server.event.Event;
import net.minestom.server.event.trait.EntityEvent; import net.minestom.server.event.trait.EntityEvent;
import net.minestom.server.potion.Potion; import net.minestom.server.potion.Potion;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
public class EntityPotionRemoveEvent extends Event implements EntityEvent { public class EntityPotionRemoveEvent implements EntityEvent {
private final Entity entity; private final Entity entity;
private final Potion potion; 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.entity.Entity;
import net.minestom.server.event.CancellableEvent; import net.minestom.server.event.CancellableEvent;
import net.minestom.server.event.Event;
import net.minestom.server.event.trait.EntityEvent; import net.minestom.server.event.trait.EntityEvent;
import net.minestom.server.utils.Position; import net.minestom.server.utils.Position;
import org.jetbrains.annotations.NotNull; 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)} * 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 entity;
private final Entity projectile; private final Entity projectile;

View File

@ -1,7 +1,6 @@
package net.minestom.server.event.entity; package net.minestom.server.event.entity;
import net.minestom.server.entity.Entity; import net.minestom.server.entity.Entity;
import net.minestom.server.event.Event;
import net.minestom.server.event.trait.EntityEvent; import net.minestom.server.event.trait.EntityEvent;
import net.minestom.server.instance.Instance; import net.minestom.server.instance.Instance;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -9,7 +8,7 @@ import org.jetbrains.annotations.NotNull;
/** /**
* Called when a new instance is set for an entity. * 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 Entity entity;
private final Instance spawnInstance; private final Instance spawnInstance;

View File

@ -1,7 +1,6 @@
package net.minestom.server.event.entity; package net.minestom.server.event.entity;
import net.minestom.server.entity.Entity; import net.minestom.server.entity.Entity;
import net.minestom.server.event.Event;
import net.minestom.server.event.trait.EntityEvent; import net.minestom.server.event.trait.EntityEvent;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -9,7 +8,7 @@ import org.jetbrains.annotations.NotNull;
* Called when an entity ticks itself. * Called when an entity ticks itself.
* Same event instance used for all tick events for the same entity. * 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; 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.entity.Entity;
import net.minestom.server.event.CancellableEvent; import net.minestom.server.event.CancellableEvent;
import net.minestom.server.event.Event;
import net.minestom.server.event.trait.EntityEvent; import net.minestom.server.event.trait.EntityEvent;
import net.minestom.server.utils.Vector; import net.minestom.server.utils.Vector;
import org.jetbrains.annotations.NotNull; 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)}. * 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 final Entity entity;
private Vector velocity; private Vector velocity;

View File

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

View File

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

View File

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

View File

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

View File

@ -7,7 +7,7 @@ import net.minestom.server.event.Event;
import net.minestom.server.item.ItemStack; import net.minestom.server.item.ItemStack;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
public class PickupItemEvent extends Event implements CancellableEvent { public class PickupItemEvent implements CancellableEvent {
private final LivingEntity livingEntity; private final LivingEntity livingEntity;
private final ItemEntity itemEntity; 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 * Called when a {@link Player} opens the advancement screens or switch the tab
* and when he closes the screen. * and when he closes the screen.
*/ */
public class AdvancementTabEvent extends Event implements PlayerEvent { public class AdvancementTabEvent implements PlayerEvent {
private final Player player; private final Player player;
private final AdvancementAction action; 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 * Called before the player initialization, it can be used to kick the player before any connection
* or to change his final username/uuid. * or to change his final username/uuid.
*/ */
public class AsyncPlayerPreLoginEvent extends Event implements PlayerEvent { public class AsyncPlayerPreLoginEvent implements PlayerEvent {
private final Player player; private final Player player;
private String username; 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.NotNull;
import org.jetbrains.annotations.Nullable; 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(); 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). * Called when a player interacts with a block (right-click).
* This is also called when a block is placed. * 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 Player player;
private final BlockPosition blockPosition; private final BlockPosition blockPosition;

View File

@ -17,7 +17,7 @@ import org.jetbrains.annotations.Nullable;
/** /**
* Called when a player tries placing a block. * 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(); 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). * 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 final Player player;
private byte slot; 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. * 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. * 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 Player player;
private final Collection<Player> recipients; 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. * 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 Player player;
private final int chunkX, chunkZ; private final int chunkX, chunkZ;

View File

@ -10,7 +10,7 @@ import org.jetbrains.annotations.NotNull;
* <p> * <p>
* Could be used to unload the chunk internally in order to save memory. * 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 Player player;
private final int chunkX, chunkZ; 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 '/'. * 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 final Player player;
private String command; private String command;

View File

@ -11,7 +11,7 @@ import org.jetbrains.annotations.Nullable;
/** /**
* Called when a player die in {@link Player#kill()}. * 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 final Player player;
private Component deathText; private Component deathText;

View File

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

View File

@ -9,7 +9,7 @@ import org.jetbrains.annotations.NotNull;
/** /**
* Called when a player is finished eating. * 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 Player player;
private final ItemStack foodItem; 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}. * 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 Player player;
private final Entity entityTarget; private final Entity entityTarget;

View File

@ -9,7 +9,7 @@ import org.jetbrains.annotations.NotNull;
/** /**
* Called when the player swings his hand. * 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 player;
private final Player.Hand hand; private final Player.Hand hand;

View File

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

View File

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

View File

@ -10,7 +10,7 @@ import org.jetbrains.annotations.NotNull;
/** /**
* Called when a player is modifying his position. * 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 final Player player;
private Position newPosition; 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}. * 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 Player player;
private final String identifier; 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 * or to cancel its processing, cancelling the event means that the player will
* continue the animation indefinitely. * continue the animation indefinitely.
*/ */
public class PlayerPreEatEvent extends Event implements PlayerEvent, CancellableEvent { public class PlayerPreEatEvent implements PlayerEvent, CancellableEvent {
private final Player player; private final Player player;
private final ItemStack foodItem; 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. * 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 Player player;
private final ResourcePackStatus status; 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 * Called when {@link Player#respawn()} is executed (for custom respawn or as a result of
* {@link net.minestom.server.network.packet.client.play.ClientStatusPacket} * {@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 final Player player;
private Position respawnPosition; 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. * 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; private final Player player;

View File

@ -10,7 +10,7 @@ import org.jetbrains.annotations.Nullable;
/** /**
* Called at the player connection to initialize his skin. * 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 final Player player;
private PlayerSkin skin; private PlayerSkin skin;

View File

@ -9,7 +9,7 @@ import org.jetbrains.annotations.NotNull;
/** /**
* Called when a new instance is set for a player. * 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 Player player;
private final Instance spawnInstance; 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 because of high latency or a modified client) so cancelling {@link PlayerBlockBreakEvent} is also necessary.
* Could be fixed in future Minestom version. * 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 Player player;
private final BlockPosition blockPosition; private final BlockPosition blockPosition;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,14 +1,13 @@
package net.minestom.server.event.player; package net.minestom.server.event.player;
import net.minestom.server.entity.Player; import net.minestom.server.entity.Player;
import net.minestom.server.event.Event;
import net.minestom.server.event.trait.PlayerEvent; import net.minestom.server.event.trait.PlayerEvent;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
/** /**
* Called at each player tick. * Called at each player tick.
*/ */
public class PlayerTickEvent extends Event implements PlayerEvent { public class PlayerTickEvent implements PlayerEvent {
private final Player player; 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. * 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 player;
private final Player.Hand hand; 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). * 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 player;
private final Player.Hand hand; 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 net.minestom.server.network.packet.server.play.TagsPacket;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
public class UpdateTagListEvent extends Event { public class UpdateTagListEvent implements Event {
private TagsPacket packet; private TagsPacket packet;

View File

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

View File

@ -1,4 +1,6 @@
package net.minestom.server.event.trait; 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; package net.minestom.server.extras.query.event;
import net.minestom.server.event.CancellableEvent; import net.minestom.server.event.CancellableEvent;
import net.minestom.server.event.Event;
import net.minestom.server.utils.binary.Writeable; import net.minestom.server.utils.binary.Writeable;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -13,7 +12,7 @@ import java.util.Objects;
* *
* @param <T> the type of the response * @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 SocketAddress sender;
private final int sessionID; private final int sessionID;
@ -23,9 +22,9 @@ public abstract class QueryEvent<T extends Writeable> extends Event implements C
/** /**
* Creates a new query event. * Creates a new query event.
* *
* @param sender the sender * @param sender the sender
* @param sessionID the session ID of the query 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) { public QueryEvent(@NotNull SocketAddress sender, int sessionID, @NotNull T response) {
this.sender = sender; 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.ItemEntity;
import net.minestom.server.entity.Player; import net.minestom.server.entity.Player;
import net.minestom.server.entity.damage.DamageType; 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.GlobalEventHandler;
import net.minestom.server.event.entity.EntityAttackEvent; import net.minestom.server.event.entity.EntityAttackEvent;
import net.minestom.server.event.item.ItemDropEvent; import net.minestom.server.event.item.ItemDropEvent;
import net.minestom.server.event.item.PickupItemEvent; import net.minestom.server.event.item.PickupItemEvent;
import net.minestom.server.event.player.*; import net.minestom.server.event.player.*;
import net.minestom.server.event.trait.PlayerEvent;
import net.minestom.server.instance.Chunk; import net.minestom.server.instance.Chunk;
import net.minestom.server.instance.Instance; import net.minestom.server.instance.Instance;
import net.minestom.server.instance.InstanceContainer; import net.minestom.server.instance.InstanceContainer;
@ -134,6 +137,11 @@ public class PlayerInit {
// EVENT REGISTERING // 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 globalEventHandler = MinecraftServer.getGlobalEventHandler();
globalEventHandler.addEventCallback(EntityAttackEvent.class, event -> { globalEventHandler.addEventCallback(EntityAttackEvent.class, event -> {
final Entity source = event.getEntity(); final Entity source = event.getEntity();