Logo
MINECRAFTBIBLE
Items
Items

All game items

Blocks
Blocks

Building blocks

Mobs
Mobs

Creatures & monsters

Biomes
Biomes

World biomes

Structures
Structures

Generated structures

Recipes
Recipes

Crafting guides

Advancements
Advancements

Achievements

Loot Tables
Loot Tables

Drop rates

Tags
Tags

Item groupings

All Versions
View all data →
Capes
Cape ArchiveNEW

Browse rare Minecon capes, OptiFine capes, and custom capes from players worldwide

Browse

Player Database
Player DatabasePopular

Search any player

Skin Browser
Skin Browser

Browse & download skins

Cape Gallery
Cape GalleryNEW

Minecon & OptiFine capes

Seed Vault
Seed Vault

Curated seeds

Learn

Guides
GuidesNew

Tutorials & tips

Blog
Blog

News & updates

Community

Community Hub
Community HubHub

Posts, discussions & more

All Versions
View community →
Seed Analyzer
Seed Analyzer

World seed analysis

Loot Explorer
Loot Explorer

Drop rates

Crafting Calculator
Crafting Calculator

Material planning

Enchant Calculator
Enchant Calculator

Probability math

Redstone Lab
Redstone Lab

Signal timing

Trading Profit
Trading Profit

Villager ROI

All Versions
View all tools →
Mods
Mods

Browse all mods

Plugins
Plugins

Server plugins

Resource Packs
Resource Packs

Textures & sounds

Shaders
Shaders

Visual enhancements

Datapacks
Datapacks

World logic

Scanner
Mod Intelligence

Scan & analyze any mod

All Versions
View all mods →
Loading...
IntroductionIntroductionVersion HistoryVersion HistoryGuidesGuidesBlog & NewsBlog & News
ItemsItemsBlocksBlocksMobsMobsRecipesRecipesBiomesBiomesStructuresStructuresAdvancementsAdvancementsLoot TablesLoot TablesTagsTags
ModsModsPluginsPluginsResource PacksResource PacksShadersShadersDatapacksDatapacks

MinecraftBible

The Ultimate Wiki

Logo
MINECRAFTBIBLE

The ultimate Minecraft reference. Every item, block, mob, and recipe documented with precision.

Community

  • Player Database
  • Skin Browser
  • Cape Gallery
  • Community Hub
  • Seed Vault

Database

  • Items
  • Blocks
  • Mobs
  • Recipes
  • Biomes
  • Structures

Tools

  • Seed Analyzer
  • Mod Intelligence
  • Crafting Calculator
  • Enchant Calculator

Mods & Packs

  • Mods
  • Plugins
  • Resource Packs
  • Shaders
  • Datapacks

© 2026 MinecraftBible. Not affiliated with Mojang or Microsoft.

PrivacyTermsContact
PassengerAPI
PluginLicenseRef-All-Rights-Reserved

PassengerAPI

Fix passenger compatibility issues | Manage your own entity passengers

265
Downloads
3
Followers
8 months ago
Updated
📦
4
Versions
game-mechanicsoptimizationutilitybukkitpaperpurpurspigot
Download Latestv1.5.1View on Modrinth

📖About PassengerAPI

Join Discord Server

Why Use PassengerAPI?

It solves compatibility issues that may arise when different plugins create entities
by sending packets to players and setting them as passengers.
This can lead to conflicts and unintended behavior like unmounting of previous set passengers by other plugins.

For example this makes these plugins automatically compatible with each other:

  • Better Chat Bubbles
  • ProdigyCape
  • VanillaMinimaps
  • PlayerMounts

This plugin works out-of-the-box!
Just put it into your plugins folder and restart your server.
(Requires Packet Events)

Showcase

Video explanation
As you can see in the video:

The Chat Bubbles and capes are cannot be set as a passenger at the same time without PassengerAPI!

Reason for this is that they are both two different plugins, which are sending their own passenger packet.

If you are a developer can also add/access/remove passengers using this API!

(Most compatibility problems should automatically be fixed but...)

For example if you want to remove a passenger from an entity, without killing it, this could be usefull.

Commmands:

Permission passengerapi.commands

/passengerapi debug 
/passengerapi reload

Note
When you are in debug mode and holding a block in your hand
you will get additional debugging in chat.

Config:

# DO NOT TOUCH ANYTHING IN THIS FILE
# IF YOU ARE NOT 100% SURE WHAT YOU ARE DOING!

AutoPassengerDetection:
  SetPassengerPacket: true
  EntityDestroyPacket: true

Getting Started

  1. Add PassengerAPI as a compile-only dependency to your plugin.

Gradle:

repositories {
    mavenCentral()
    maven { url 'https://jitpack.io' }
}

dependencies {
    implementation 'com.github.max1mde:PassengerAPI:1.0.1'
}

(For maven: https://jitpack.io/#max1mde/PassengerAPI/1.0.0)

  1. Add the following line to your plugin.yml file:
depend:
- PassengerAPI

Also add the plugin Packet Events to your server
which is required by this plugin!

Usage

Obtaining the PassengerActions Instance

To access the PassengerAPI functionality, you need to obtain the PassengerActions instance:

PassengerActions passengerActions = PassengerAPI.getAPI(yourPluginInstance);

Replace yourPluginInstance with the instance of your plugin's main class.
(For example with this if you use it in your main class)

Managing Passengers

Here are some examples of how to use the PassengerActions interface:

Keep in mind that you can only retrive and remove passengers, which you have set here by using the addPassenger... methods.
Except: when using the "global" methods like getGlobalPassengers.

// Add a single passenger
passengerActions.addPassenger(targetEntityId, passengerEntityId);

// Add multiple passengers
passengerActions.addPassengers(targetEntityId, Set.of(passenger1Id, passenger2Id, ...));

// Remove a single passenger
passengerActions.removePassenger(targetEntityId, passengerEntityId);

// Remove multiple passengers
passengerActions.removePassengers(targetEntityId, Set.of(passenger1Id, passenger2Id, ...));

// Remove all passengers for a target entity
passengerActions.removeAllPassengers(targetEntityId);

// Get all passengers for a target entity
Set<Integer> passengers = passengerActions.getPassengers(targetEntityId);

// Remove global passengers (passengers set by all plugins)
passengerActions.removeGlobalPassengers(targetEntityId, Set.of(passenger1Id, passenger2Id, ...));

// Remove all global passengers for a target entity (passengers set by all plugins)
passengerActions.removeAllGlobalPassengers(targetEntityId);

// Get all global passengers for a target entity (passengers set by all plugins)
Set<Integer> globalPassengers = passengerActions.getGlobalPassengers(targetEntityId);

Note
All entities are identified by their entity ID (not UUID).

Listening to events

PassengerAPI also provides events that you can listen to and handle accordingly:

@EventHandler
public void onAddPassenger(AddPassengerEvent event) {
    // The name of the plugin which tries to add these passengers
    String pluginName = event.getPluginName();
    int targetEntity = event.getTargetEntityID();
    Set<Integer> passengers = event.getPassengerList();
    // Perform actions with these properties
}

@EventHandler
public void onRemovePassenger(RemovePassengerEvent event) {
    // The name of the plugin which tries to remove these passengers
    String pluginName = event.getPluginName();
    int targetEntity = event.getTargetEntityID();
    Set<Integer> removedPassengers = event.getPassengerList();
    // Perform actions with these properties
}

@EventHandler
public void onPassengerPacket(PassengerPacketEvent event) {
    int targetEntity = event.getTargetEntityID();
    Set<Integer> passengers = event.getPassengerList();
    // Which players should receive the packet (You can modify that list)
    List<Player> receivers = event.getPacketReceivers();
    // Perform actions with these properties
}

Don't forget to register your event class

Contributions on GitHub are welcome!

👥 Team & Contributors

maximjsx
maximjsxOwner

⚙️ Compatibility

Environment
🖥️ Server-side
Loaders
bukkitpaperpurpurspigot
Minecraft Versions
1.19.41.201.20.11.20.21.20.31.20.41.20.51.20.6+9 more

🔗 Links

Modrinth Page