diff --git a/config/checkstyle/import-control.xml b/config/checkstyle/import-control.xml
index 67834249..bf5dc55c 100644
--- a/config/checkstyle/import-control.xml
+++ b/config/checkstyle/import-control.xml
@@ -30,6 +30,7 @@
+
diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/PlayerMoveListener.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/PlayerMoveListener.java
index b0cccc7a..d1f78589 100644
--- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/PlayerMoveListener.java
+++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/PlayerMoveListener.java
@@ -25,6 +25,7 @@
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.session.MoveType;
import com.sk89q.worldguard.session.Session;
+import io.papermc.lib.PaperLib;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.entity.Entity;
@@ -40,6 +41,7 @@
import org.bukkit.event.vehicle.VehicleEnterEvent;
import org.bukkit.plugin.PluginManager;
import org.bukkit.util.Vector;
+import org.spigotmc.event.entity.EntityMountEvent;
public class PlayerMoveListener implements Listener {
@@ -53,6 +55,9 @@ public void registerEvents() {
if (WorldGuard.getInstance().getPlatform().getGlobalStateManager().usePlayerMove) {
PluginManager pm = plugin.getServer().getPluginManager();
pm.registerEvents(this, plugin);
+ if (PaperLib.isSpigot()) {
+ pm.registerEvents(new EntityMountListener(), plugin);
+ }
}
}
@@ -145,4 +150,18 @@ public void onPlayerQuit(PlayerQuitEvent event) {
player.teleport(BukkitAdapter.adapt(loc));
}
}
+
+ private class EntityMountListener implements Listener {
+ @EventHandler
+ public void onEntityMount(EntityMountEvent event) {
+ Entity entity = event.getEntity();
+ if (entity instanceof Player) {
+ LocalPlayer player = plugin.wrapPlayer((Player) entity);
+ Session session = WorldGuard.getInstance().getPlatform().getSessionManager().get(player);
+ if (null != session.testMoveTo(player, BukkitAdapter.adapt(event.getMount().getLocation()), MoveType.EMBARK, true)) {
+ event.setCancelled(true);
+ }
+ }
+ }
+ }
}