geforkt von Mirrors/Paper
Add leash API. Adds BUKKIT-4459 and BUKKIT-4583
By: T00thpick1 <t00thpick1dirko@gmail.com>
Dieser Commit ist enthalten in:
Ursprung
47d09288b4
Commit
fcde9e65af
@ -26,6 +26,10 @@ public enum EntityType {
|
|||||||
* An experience orb.
|
* An experience orb.
|
||||||
*/
|
*/
|
||||||
EXPERIENCE_ORB("XPOrb", ExperienceOrb.class, 2),
|
EXPERIENCE_ORB("XPOrb", ExperienceOrb.class, 2),
|
||||||
|
/**
|
||||||
|
* A leash attached to a fencepost.
|
||||||
|
*/
|
||||||
|
LEASH_HITCH("LeashKnot", LeashHitch.class, 8),
|
||||||
/**
|
/**
|
||||||
* A painting on a wall.
|
* A painting on a wall.
|
||||||
*/
|
*/
|
||||||
|
7
paper-api/src/main/java/org/bukkit/entity/LeashHitch.java
Normale Datei
7
paper-api/src/main/java/org/bukkit/entity/LeashHitch.java
Normale Datei
@ -0,0 +1,7 @@
|
|||||||
|
package org.bukkit.entity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a Leash Hitch on a fence
|
||||||
|
*/
|
||||||
|
public interface LeashHitch extends Hanging {
|
||||||
|
}
|
@ -369,4 +369,31 @@ public interface LivingEntity extends Entity, Damageable {
|
|||||||
* @return if the custom name is displayed
|
* @return if the custom name is displayed
|
||||||
*/
|
*/
|
||||||
public boolean isCustomNameVisible();
|
public boolean isCustomNameVisible();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns whether the entity is currently leashed.
|
||||||
|
*
|
||||||
|
* @return whether the entity is leashed
|
||||||
|
*/
|
||||||
|
public boolean isLeashed();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the entity that is currently leading this entity.
|
||||||
|
*
|
||||||
|
* @return the entity holding the leash
|
||||||
|
* @throws IllegalStateException if not currently leashed
|
||||||
|
*/
|
||||||
|
public Entity getLeashHolder() throws IllegalStateException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the leash on this entity to be held by the supplied entity.
|
||||||
|
* <p>
|
||||||
|
* This method has no effect on EnderDragons, Withers, Players, or Bats.
|
||||||
|
* Non-living entities excluding leashes will not persist as leash
|
||||||
|
* holders.
|
||||||
|
*
|
||||||
|
* @param holder the entity to leash this entity to
|
||||||
|
* @return whether the operation was successful
|
||||||
|
*/
|
||||||
|
public boolean setLeashHolder(Entity holder);
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,52 @@
|
|||||||
|
package org.bukkit.event.entity;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called immediately prior to an entity being unleashed.
|
||||||
|
*/
|
||||||
|
public class EntityUnleashEvent extends EntityEvent {
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
private final UnleashReason reason;
|
||||||
|
|
||||||
|
public EntityUnleashEvent(Entity entity, UnleashReason reason) {
|
||||||
|
super(entity);
|
||||||
|
this.reason = reason;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the reason for the unleashing.
|
||||||
|
*
|
||||||
|
* @return The reason
|
||||||
|
*/
|
||||||
|
public UnleashReason getReason() {
|
||||||
|
return reason;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum UnleashReason {
|
||||||
|
/**
|
||||||
|
* When the entity's leashholder has died or logged out, and so is
|
||||||
|
* unleashed
|
||||||
|
*/
|
||||||
|
HOLDER_GONE,
|
||||||
|
/**
|
||||||
|
* When the entity's leashholder attempts to unleash it
|
||||||
|
*/
|
||||||
|
PLAYER_UNLEASH,
|
||||||
|
/**
|
||||||
|
* When the entity's leashholder is more than 10 blocks away
|
||||||
|
*/
|
||||||
|
DISTANCE,
|
||||||
|
UNKNOWN;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,68 @@
|
|||||||
|
package org.bukkit.event.entity;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.Cancellable;
|
||||||
|
import org.bukkit.event.Event;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called immediately prior to a creature being leashed by a player.
|
||||||
|
*/
|
||||||
|
public class PlayerLeashEntityEvent extends Event implements Cancellable {
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
private final Entity leashHolder;
|
||||||
|
private final Entity entity;
|
||||||
|
private boolean cancelled = false;
|
||||||
|
private final Player player;
|
||||||
|
|
||||||
|
public PlayerLeashEntityEvent(Entity what, Entity leashHolder, Player leasher) {
|
||||||
|
this.leashHolder = leashHolder;
|
||||||
|
this.entity = what;
|
||||||
|
this.player = leasher;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the entity that is holding the leash.
|
||||||
|
*
|
||||||
|
* @return The leash holder
|
||||||
|
*/
|
||||||
|
public Entity getLeashHolder() {
|
||||||
|
return leashHolder;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the entity being leashed.
|
||||||
|
*
|
||||||
|
* @return The entity
|
||||||
|
*/
|
||||||
|
public Entity getEntity() {
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the player involved in this event
|
||||||
|
*
|
||||||
|
* @return Player who is involved in this event
|
||||||
|
*/
|
||||||
|
public final Player getPlayer() {
|
||||||
|
return player;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isCancelled() {
|
||||||
|
return this.cancelled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCancelled(boolean cancel) {
|
||||||
|
this.cancelled = cancel;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,36 @@
|
|||||||
|
package org.bukkit.event.player;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.Cancellable;
|
||||||
|
import org.bukkit.event.entity.EntityUnleashEvent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called prior to an entity being unleashed due to a player's action.
|
||||||
|
*/
|
||||||
|
public class PlayerUnleashEntityEvent extends EntityUnleashEvent implements Cancellable {
|
||||||
|
private final Player player;
|
||||||
|
private boolean cancelled = false;
|
||||||
|
|
||||||
|
public PlayerUnleashEntityEvent(Entity entity, Player player) {
|
||||||
|
super(entity, UnleashReason.PLAYER_UNLEASH);
|
||||||
|
this.player = player;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the player who is unleashing the entity.
|
||||||
|
*
|
||||||
|
* @return The player
|
||||||
|
*/
|
||||||
|
public Player getPlayer() {
|
||||||
|
return player;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isCancelled() {
|
||||||
|
return cancelled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCancelled(boolean cancel) {
|
||||||
|
this.cancelled = cancel;
|
||||||
|
}
|
||||||
|
}
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren