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:
Teriuihi 2024-02-17 09:53:12 +01:00
parent cb263a83c6
commit ef99403c2e
2 changed files with 33 additions and 2 deletions

View File

@ -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));
}

View File

@ -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);
}
}