PassengerAPI
🟠 Updated over a year agoPreview

🔍 Analysis
- 👍 0.5% endorsement rate
- 🏆 #620 of 1452 bukkit mods in this game by downloads
📋 About This Mod
<a href="https://discord.gg/2UTkYj26B4" target="_blank"><img src="https://img.shields.io/badge/Discord_Server-7289DA?style=flat&logo=discord&logoColor=white" alt="Join Discord Server" style="border-radius: 15px; height: 20px;"></a> # 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 (https://modrinth.com/plugin/packetevents)) # Showcase <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/1anBRDFuUdw" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> **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: ```yml # 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: ```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) 2. Add the following line to your `plugin.yml` file: ``` depend: - PassengerAPI ``` Also add the plugin (https://www.spigotmc.org/resources/packetevents-api.80279/) 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: ```java 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. ```java // 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: ```java @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
# 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 (https://modrinth.com/plugin/packetevents))
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.
```yml # 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: ```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)
2. Add the following line to your `plugin.yml` file: ``` depend: - PassengerAPI ```
Also add the plugin (https://www.spigotmc.org/resources/packetevents-api. 80279/) to your server which is required by this plugin!
### Obtaining the PassengerActions Instance
To access the PassengerAPI functionality, you need to obtain the PassengerActions instance:
```java 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.
```java // 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
// 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
> 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:
```java
@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
@EventHandler public void onRemovePassenger(RemovePassengerEvent
📊 Mod Details
- Game
- Minecraft Plugins
- Author
- maximjsx
- Version
- 1.5.1
- Downloads
- 645
- Endorsements
- 3
- Category
- bukkit
- Created
- 5/31/2024
- Updated
- 8/9/2025
- Game Versions
- 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3
- Tags
- game-mechanics, optimization, utility
🔧 How to Install Minecraft Plugins Mods
Download from Modrinth. Use Prism Launcher or drop into your mods folder.
📖 Full step-by-step install guide for Minecraft Plugins →
Visit the official mod page for specific installation instructions for this mod.
🎮 Need cheat codes or console commands? Check ur gaming wiki for Minecraft Plugins commands, item IDs, and more.
❓ Frequently Asked Questions
Which Minecraft Plugins versions does PassengerAPI support?
The author lists 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4. Other versions may work but are untested by the author.
What is the latest version of PassengerAPI?
Version 1.5.1, published 2025-08-09 with 645 downloads recorded at the source.
Keep browsing — more Minecraft Plugins mods await