Minestom/src/main/java/net/minestom/server/event/entity/EntityItemMergeEvent.java

78 lines
2.0 KiB
Java
Raw Normal View History

package net.minestom.server.event.entity;
2021-06-02 07:09:15 +02:00
import net.minestom.server.entity.Entity;
import net.minestom.server.entity.ItemEntity;
2021-06-09 07:11:01 +02:00
import net.minestom.server.event.trait.CancellableEvent;
2021-10-06 20:40:17 +02:00
import net.minestom.server.event.trait.EntityInstanceEvent;
2020-06-02 14:54:33 +02:00
import net.minestom.server.item.ItemStack;
2020-10-24 16:33:13 +02:00
import org.jetbrains.annotations.NotNull;
2020-06-01 17:11:43 +02:00
/**
2020-10-15 21:16:31 +02:00
* Called when two {@link ItemEntity} are merging their {@link ItemStack} together to form a sole entity.
2020-06-01 17:11:43 +02:00
*/
2021-10-06 20:40:17 +02:00
public class EntityItemMergeEvent implements EntityInstanceEvent, CancellableEvent {
private final Entity entity;
2020-10-22 12:55:53 +02:00
private final ItemEntity merged;
2020-06-02 14:54:33 +02:00
private ItemStack result;
private boolean cancelled;
2020-10-24 16:33:13 +02:00
public EntityItemMergeEvent(@NotNull ItemEntity source, @NotNull ItemEntity merged, @NotNull ItemStack result) {
2021-06-02 07:09:15 +02:00
this.entity = source;
this.merged = merged;
2020-06-02 14:55:18 +02:00
this.result = result;
}
2020-06-01 17:11:43 +02:00
/**
2020-10-15 21:16:31 +02:00
* Gets the {@link ItemEntity} who is receiving {@link #getMerged()}.
2020-06-01 17:11:43 +02:00
* <p>
2020-10-15 21:16:31 +02:00
* This can be used to get the final ItemEntity position.
2020-06-01 17:11:43 +02:00
*
* @return the source ItemEntity
*/
@Override
public @NotNull ItemEntity getEntity() {
return (ItemEntity) entity;
}
2020-06-01 17:11:43 +02:00
/**
2020-10-15 21:16:31 +02:00
* Gets the entity who will be merged.
2020-06-01 17:11:43 +02:00
* <p>
2020-10-15 21:16:31 +02:00
* This entity will be removed after the event.
2020-06-01 17:11:43 +02:00
*
* @return the merged ItemEntity
*/
public @NotNull ItemEntity getMerged() {
return merged;
}
2020-06-02 14:54:33 +02:00
/**
2020-10-15 21:16:31 +02:00
* Gets the final item stack on the ground.
2020-06-02 14:54:33 +02:00
*
* @return the item stack
*/
public @NotNull ItemStack getResult() {
2020-06-02 14:54:33 +02:00
return result;
}
/**
2020-10-15 21:16:31 +02:00
* Changes the item stack which will appear on the ground.
2020-06-02 14:54:33 +02:00
*
* @param result the new item stack
*/
2020-10-24 16:33:13 +02:00
public void setResult(@NotNull ItemStack result) {
2020-06-02 14:54:33 +02:00
this.result = result;
}
@Override
public boolean isCancelled() {
return cancelled;
}
@Override
public void setCancelled(boolean cancel) {
this.cancelled = cancel;
}
}