ModsJava
PlayerAirEvents - Spigot API Extension
Java mod listed for Minecraft 1.11. File opened and checked on 2 Nov 2026; downloads from the MC Java Mods app on Android.
⬇ Download on Spigot PlayerAirEvents - Spigot API Extension
PlayerAirEvents brings in four new events that fire when a player has jumped, is airborne, is falling, or has landed. Currently in development. If you would like to contribute, visit the GitHub repository.
Events ( Docs )
Add PlayerAirEvents to your BuildPath and import the event you are planning to use in your Listener.
Importing the Events
Simple Deny Jump Example
Simple Deny Flying by Height
Example Usage
Using the events is the same as any Bukkit event. You must implement the Listener class.
Registering the Events
Events are registered the same way you would register any Bukkit event.
Finally
All you need to do is upload PlayerAirEvents.jar and your plugin JAR to your server and you're ready to rock!
PlayerAirEvents brings in four new events that fire when a player has jumped, is airborne, is falling, or has landed. Currently in development. If you would like to contribute, visit the GitHub repository.
Events ( Docs )
- PlayerFallEvent
- PlayerFlyingEvent
- PlayerJumpEvent
- PlayerLandedEvent
- PlayerRisingEvent
- Possible Elytra Events
- In rare cases the Landed event won't fire (Issue to be Found)
Add PlayerAirEvents to your BuildPath and import the event you are planning to use in your Listener.
Importing the Events
Code (Java):
import
wa.was.playerairevents.events.PlayerFallEvent
;
import wa.was.playerairevents.events.PlayerFlyingEvent ;
import wa.was.playerairevents.events.PlayerJumpEvent ;
import wa.was.playerairevents.events.PlayerLandedEvent ;
import wa.was.playerairevents.events.PlayerRisingEvent ;
import wa.was.playerairevents.events.PlayerFlyingEvent ;
import wa.was.playerairevents.events.PlayerJumpEvent ;
import wa.was.playerairevents.events.PlayerLandedEvent ;
import wa.was.playerairevents.events.PlayerRisingEvent ;
Code (Java):
@EventHandler
( priority
= EventPriority.
LOWEST
)
public void playerJump ( PlayerJumpEvent e ) {
e. getPlayer ( ) . sendMessage ( ChatColor. translateAlternateColorCodes ( '&' , "&4You cannot jump." ) ) ;
e. getPlayer ( ) . teleport ( e. getFrom ( ) ) ;
e. setCancelled ( true ) ;
}
public void playerJump ( PlayerJumpEvent e ) {
e. getPlayer ( ) . sendMessage ( ChatColor. translateAlternateColorCodes ( '&' , "&4You cannot jump." ) ) ;
e. getPlayer ( ) . teleport ( e. getFrom ( ) ) ;
e. setCancelled ( true ) ;
}
Code (Java):
@EventHandler
( priority
= EventPriority.
LOWEST
)
public void denyFly ( PlayerFlyingEvent e ) {
if ( e. blocksToGround ( ) > 20 ) {
e. getPlayer ( ) . sendMessage ( ChatColor. translateAlternateColorCodes ( '&' , "&4You can't fly that high to escape!!" ) ) ;
if ( e. getPlayer ( ) . isFlying ( ) )
e. getPlayer ( ) . setFlying ( false ) ;
if ( e. getPlayer ( ) . isGliding ( ) )
e. getPlayer ( ) . setGliding ( false ) ;
e. getPlayer ( ) . teleport ( e. getBlockBelow ( ) . getRelative ( BlockFace. UP , 1 ) . getLocation ( ) ) ;
e. setCancelled ( true ) ;
}
}
public void denyFly ( PlayerFlyingEvent e ) {
if ( e. blocksToGround ( ) > 20 ) {
e. getPlayer ( ) . sendMessage ( ChatColor. translateAlternateColorCodes ( '&' , "&4You can't fly that high to escape!!" ) ) ;
if ( e. getPlayer ( ) . isFlying ( ) )
e. getPlayer ( ) . setFlying ( false ) ;
if ( e. getPlayer ( ) . isGliding ( ) )
e. getPlayer ( ) . setGliding ( false ) ;
e. getPlayer ( ) . teleport ( e. getBlockBelow ( ) . getRelative ( BlockFace. UP , 1 ) . getLocation ( ) ) ;
e. setCancelled ( true ) ;
}
}
Using the events is the same as any Bukkit event. You must implement the Listener class.
Code (Java):
@EventHandler
public void playerFall ( PlayerFallEvent e ) {
Player player = e. getPlayer ( ) ;
if ( player. isOnline ( ) ) {
player. sendMessage ( ChatColor. translateAlternateColorCodes ( '&' ,
"&6You jumped &f" + e. getJumpedBlocks ( ) + " &6and fallen &f" + e. getFallenBlocks ( ) + " &6blocks." ) ) ;
}
}
@EventHandler
public void playerFlying ( PlayerFlyingEvent e ) {
Player player = e. getPlayer ( ) ;
if ( player. isOnline ( ) ) {
player. sendMessage (
ChatColor. translateAlternateColorCodes ( '&' , "&6You are flying with &f" + e. blocksToGround ( )
+ " &6blocks to the ground, which is of material type: " + e. getBlockBelow ( ) . getType ( ) ) ) ;
}
}
@EventHandler
public void playerJump ( PlayerJumpEvent e ) {
Player player = e. getPlayer ( ) ;
if ( player. isOnline ( ) ) {
player. sendMessage ( ChatColor. translateAlternateColorCodes ( '&' , "&6You have jumped." ) ) ;
}
}
@EventHandler
public void playerLanded ( PlayerLandedEvent e ) {
Player player = e. getPlayer ( ) ;
if ( player. isOnline ( ) ) {
player. sendMessage ( ChatColor. translateAlternateColorCodes ( '&' , "&6You have landed. You jumped &f"
+ e. getJumpedBlocks ( ) + " &6and fallen &f" + e. getFallenBlocks ( ) + " &6blocks." ) ) ;
}
}
@EventHandler
public void playerRising ( PlayerRisingEvent e ) {
Player player = e. getPlayer ( ) ;
if ( player. isOnline ( ) ) {
player. sendMessage ( ChatColor. translateAlternateColorCodes ( '&' ,
"&6You are rising &f" + e. getJumpedBlocks ( ) + " &6blocks." ) ) ;
}
}
public void playerFall ( PlayerFallEvent e ) {
Player player = e. getPlayer ( ) ;
if ( player. isOnline ( ) ) {
player. sendMessage ( ChatColor. translateAlternateColorCodes ( '&' ,
"&6You jumped &f" + e. getJumpedBlocks ( ) + " &6and fallen &f" + e. getFallenBlocks ( ) + " &6blocks." ) ) ;
}
}
@EventHandler
public void playerFlying ( PlayerFlyingEvent e ) {
Player player = e. getPlayer ( ) ;
if ( player. isOnline ( ) ) {
player. sendMessage (
ChatColor. translateAlternateColorCodes ( '&' , "&6You are flying with &f" + e. blocksToGround ( )
+ " &6blocks to the ground, which is of material type: " + e. getBlockBelow ( ) . getType ( ) ) ) ;
}
}
@EventHandler
public void playerJump ( PlayerJumpEvent e ) {
Player player = e. getPlayer ( ) ;
if ( player. isOnline ( ) ) {
player. sendMessage ( ChatColor. translateAlternateColorCodes ( '&' , "&6You have jumped." ) ) ;
}
}
@EventHandler
public void playerLanded ( PlayerLandedEvent e ) {
Player player = e. getPlayer ( ) ;
if ( player. isOnline ( ) ) {
player. sendMessage ( ChatColor. translateAlternateColorCodes ( '&' , "&6You have landed. You jumped &f"
+ e. getJumpedBlocks ( ) + " &6and fallen &f" + e. getFallenBlocks ( ) + " &6blocks." ) ) ;
}
}
@EventHandler
public void playerRising ( PlayerRisingEvent e ) {
Player player = e. getPlayer ( ) ;
if ( player. isOnline ( ) ) {
player. sendMessage ( ChatColor. translateAlternateColorCodes ( '&' ,
"&6You are rising &f" + e. getJumpedBlocks ( ) + " &6blocks." ) ) ;
}
}
Registering the Events
Events are registered the same way you would register any Bukkit event.
Code (Java):
getServer
(
) .
getPluginManager
(
) .
registerEvents
( event, plugin
)
;
All you need to do is upload PlayerAirEvents.jar and your plugin JAR to your server and you're ready to rock!
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft version listed: 1.11
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
PlayerAirEvents - Spigot API Extension is a free Minecraft Java mod. Compatible with Minecraft 1.11. Downloaded 725 times (via Spigot). Download it and open it directly in the game.