#837: Add more bell API

By: Parker Hawke <hawkeboyz2@hotmail.com>
This commit is contained in:
Bukkit/Spigot
2023-04-02 14:35:12 +10:00
parent c8e852da1f
commit aba85bb096
3 changed files with 201 additions and 1 deletions

View File

@@ -0,0 +1,50 @@
package org.bukkit.event.block;
import java.util.List;
import org.bukkit.block.Block;
import org.bukkit.entity.LivingEntity;
import org.bukkit.event.HandlerList;
import org.jetbrains.annotations.NotNull;
/**
* Called when a bell resonated after being rung and highlights nearby raiders.
* A bell will only resonate if raiders are in the vicinity of the bell.
*/
public class BellResonateEvent extends BlockEvent {
private static final HandlerList handlers = new HandlerList();
private final List<LivingEntity> resonatedEntities;
public BellResonateEvent(@NotNull Block theBlock, @NotNull List<LivingEntity> resonatedEntities) {
super(theBlock);
this.resonatedEntities = resonatedEntities;
}
/**
* Get a mutable list of all {@link LivingEntity LivingEntities} to be
* highlighted by the bell's resonating. This list can be added to or
* removed from to change which entities are highlighted, and may be empty
* if no entities were resonated as a result of this event.
* <p>
* While the highlighted entities will change, the particles that display
* over a resonated entity and their colors will not. This is handled by the
* client and cannot be controlled by the server.
*
* @return a list of resonated entities
*/
@NotNull
public List<LivingEntity> getResonatedEntities() {
return resonatedEntities;
}
@NotNull
@Override
public HandlerList getHandlers() {
return handlers;
}
@NotNull
public static HandlerList getHandlerList() {
return handlers;
}
}

View File

@@ -0,0 +1,67 @@
package org.bukkit.event.block;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.entity.Entity;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* Called when a bell is being rung.
*/
public class BellRingEvent extends BlockEvent implements Cancellable {
private static final HandlerList handlers = new HandlerList();
private final BlockFace direction;
private final Entity entity;
private boolean cancelled;
public BellRingEvent(@NotNull Block theBlock, @NotNull BlockFace direction, @Nullable Entity entity) {
super(theBlock);
this.direction = direction;
this.entity = entity;
}
/**
* Get the direction in which the bell was rung.
*
* @return the direction
*/
@NotNull
public BlockFace getDirection() {
return direction;
}
/**
* Get the {@link Entity} that rang the bell (if there was one).
*
* @return the entity
*/
@Nullable
public Entity getEntity() {
return entity;
}
@Override
public void setCancelled(boolean cancelled) {
this.cancelled = cancelled;
}
@Override
public boolean isCancelled() {
return cancelled;
}
@NotNull
@Override
public HandlerList getHandlers() {
return handlers;
}
@NotNull
public static HandlerList getHandlerList() {
return handlers;
}
}