mirror of
https://github.com/EngineHub/WorldGuard.git
synced 2025-02-28 10:12:15 +01:00
Handle spigot's entity mount event (#1755)
* Add handler for spigot's EntityMountEvent. Closes #1677. * checkstyle.
This commit is contained in:
parent
f8f95a44f0
commit
f19ebab0e1
@ -30,6 +30,7 @@
|
|||||||
<allow pkg="io.papermc.lib"/>
|
<allow pkg="io.papermc.lib"/>
|
||||||
<allow pkg="com.destroystokyo.paper"/>
|
<allow pkg="com.destroystokyo.paper"/>
|
||||||
<allow pkg="co.aikar.timings.lib" />
|
<allow pkg="co.aikar.timings.lib" />
|
||||||
|
<allow pkg="org.spigotmc" />
|
||||||
</subpackage>
|
</subpackage>
|
||||||
|
|
||||||
</subpackage>
|
</subpackage>
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
|
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
|
||||||
import com.sk89q.worldguard.session.MoveType;
|
import com.sk89q.worldguard.session.MoveType;
|
||||||
import com.sk89q.worldguard.session.Session;
|
import com.sk89q.worldguard.session.Session;
|
||||||
|
import io.papermc.lib.PaperLib;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
@ -40,6 +41,7 @@
|
|||||||
import org.bukkit.event.vehicle.VehicleEnterEvent;
|
import org.bukkit.event.vehicle.VehicleEnterEvent;
|
||||||
import org.bukkit.plugin.PluginManager;
|
import org.bukkit.plugin.PluginManager;
|
||||||
import org.bukkit.util.Vector;
|
import org.bukkit.util.Vector;
|
||||||
|
import org.spigotmc.event.entity.EntityMountEvent;
|
||||||
|
|
||||||
public class PlayerMoveListener implements Listener {
|
public class PlayerMoveListener implements Listener {
|
||||||
|
|
||||||
@ -53,6 +55,9 @@ public void registerEvents() {
|
|||||||
if (WorldGuard.getInstance().getPlatform().getGlobalStateManager().usePlayerMove) {
|
if (WorldGuard.getInstance().getPlatform().getGlobalStateManager().usePlayerMove) {
|
||||||
PluginManager pm = plugin.getServer().getPluginManager();
|
PluginManager pm = plugin.getServer().getPluginManager();
|
||||||
pm.registerEvents(this, plugin);
|
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));
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user