SPIGOT-7919: Add API to access current player input

By: md_5 <git@md-5.net>
This commit is contained in:
Bukkit/Spigot 2024-10-23 08:04:12 +11:00
parent 032ab01850
commit ed038ac6c8
2 changed files with 72 additions and 0 deletions

View file

@ -0,0 +1,59 @@
package org.bukkit;
import org.jetbrains.annotations.ApiStatus;
/**
* Represents a movement input applied to an entity.
*/
@ApiStatus.Experimental
public interface Input {
/**
* Gets whether a forward input is applied.
*
* @return forward input
*/
boolean isForward();
/**
* Gets whether a backward input is applied.
*
* @return backward input
*/
boolean isBackward();
/**
* Gets whether a left input is applied.
*
* @return left input
*/
boolean isLeft();
/**
* Gets whether a right input is applied.
*
* @return right input
*/
boolean isRight();
/**
* Gets whether a jump input is applied.
*
* @return jump input
*/
boolean isJump();
/**
* Gets whether a sneak input is applied.
*
* @return sneak input
*/
boolean isSneak();
/**
* Gets whether a sprint input is applied.
*
* @return sprint input
*/
boolean isSprint();
}

View file

@ -13,6 +13,7 @@ import org.bukkit.BanEntry;
import org.bukkit.DyeColor;
import org.bukkit.Effect;
import org.bukkit.GameMode;
import org.bukkit.Input;
import org.bukkit.Instrument;
import org.bukkit.Location;
import org.bukkit.Material;
@ -503,6 +504,18 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@ApiStatus.Experimental
public Collection<EnderPearl> getEnderPearls();
/**
* Gets the current movement input, as last provided by the player.
* <br>
* <b>Note: that this may not always be consistent with the current movement
* of the player.</b>
*
* @return current input
*/
@NotNull
@ApiStatus.Experimental
public Input getCurrentInput();
/**
* Play a note for the player at a location. <br>
* This <i>will</i> work with cake.