public class TestPlugin extends JavaPlugin implements Listener {
@Override
public void onEnable() {
getServer().getPluginManager().registerEvents(this, this);
}
@EventHandler
public void on(PlayerInteractAtEntityEvent event) {
event.getRightClicked().addPassenger(event.getPlayer());
}
@EventHandler
public void on(EntityDismountEvent event) {
event.setCancelled(true);
setVehicleBack(event.getEntity(), event.getDismounted());
}
private void setVehicleBack(Entity rider, Entity vehicle) {
try {
Field ax = net.minecraft.server.v1_13_R1.Entity.class.getDeclaredField("ax");
ax.setAccessible(true);
ax.set(((CraftEntity) rider).getHandle(), ((CraftEntity) vehicle).getHandle());
} catch (NoSuchFieldException | IllegalAccessException e) {
e.printStackTrace();
}
}
}