Added TeleportEvent and updated event registration
The update introduces a new TeleportEvent which modifies teleport behavior for players who are mounted by dismounting them and changing their teleport location to be one higher. Also, the event registration process within the PlayerUtils class has been refactored for better readability and additional registration of the new TeleportEvent.
This commit is contained in:
parent
cb263a83c6
commit
ef99403c2e
|
|
@ -5,8 +5,10 @@ import com.alttd.playerutils.commands.playerutils_subcommands.RotateBlock;
|
|||
import com.alttd.playerutils.config.Config;
|
||||
import com.alttd.playerutils.config.Messages;
|
||||
import com.alttd.playerutils.event_listeners.RotateBlockEvent;
|
||||
import com.alttd.playerutils.event_listeners.TeleportEvent;
|
||||
import com.alttd.playerutils.event_listeners.XpBottleEvent;
|
||||
import com.alttd.playerutils.util.Logger;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
public final class PlayerUtils extends JavaPlugin {
|
||||
|
|
@ -31,10 +33,12 @@ public final class PlayerUtils extends JavaPlugin {
|
|||
}
|
||||
|
||||
private void registerEvents() {
|
||||
getServer().getPluginManager().registerEvents(new XpBottleEvent(this, logger), this);
|
||||
PluginManager pluginManager = getServer().getPluginManager();
|
||||
pluginManager.registerEvents(new XpBottleEvent(this, logger), this);
|
||||
pluginManager.registerEvents(new TeleportEvent(), this);
|
||||
|
||||
RotateBlockEvent rotateBlockEvent = new RotateBlockEvent();
|
||||
getServer().getPluginManager().registerEvents(rotateBlockEvent, this);
|
||||
pluginManager.registerEvents(rotateBlockEvent, this);
|
||||
playerUtilsCommand.addSubCommand(new RotateBlock(rotateBlockEvent));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,27 @@
|
|||
package com.alttd.playerutils.event_listeners;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||
|
||||
public class TeleportEvent implements Listener {
|
||||
|
||||
/**
|
||||
* Modifies teleport behavior for mounted players by dismounting them
|
||||
* and changing their teleport location to location + 1y
|
||||
*
|
||||
* @param event the PlayerTeleportEvent being triggered
|
||||
*/
|
||||
@EventHandler()
|
||||
public void modifyTeleportForMountedPlayers(PlayerTeleportEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
if (player.getVehicle() == null)
|
||||
return;
|
||||
player.getVehicle().removePassenger(player);
|
||||
Location eventTo = event.getTo();
|
||||
eventTo.setY(eventTo.getBlockY() + 1);
|
||||
event.setTo(eventTo);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user