diff --git a/src/main/java/de/lasertag/listener/WeaponListener.java b/src/main/java/de/lasertag/listener/WeaponListener.java deleted file mode 100644 index 0be4f9e..0000000 --- a/src/main/java/de/lasertag/listener/WeaponListener.java +++ /dev/null @@ -1,71 +0,0 @@ -package de.lasertag.listener; - -import de.lasertag.LasertagPlugin; -import de.lasertag.game.Game; -import de.lasertag.weapon.WeaponType; -import de.lasertag.weapon.WeaponUtil; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.block.Action; -import org.bukkit.event.entity.ProjectileLaunchEvent; -import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.event.player.PlayerSwapHandItemsEvent; -import org.bukkit.inventory.ItemStack; - -public class WeaponListener implements Listener { - - private final LasertagPlugin plugin; - - public WeaponListener(LasertagPlugin plugin) { this.plugin = plugin; } - - /** - * Schießen: Rechtsklick mit einer Lasertag-Waffe. - * Wir fangen das Event HIGHEST ab damit andere Plugins (z.B. Anticheat) - * nicht zuerst ein normales Crossbow-/Trident-Event auslösen. - */ - @EventHandler(priority = EventPriority.HIGHEST) - public void onInteract(PlayerInteractEvent e) { - if (e.getAction() != Action.RIGHT_CLICK_AIR - && e.getAction() != Action.RIGHT_CLICK_BLOCK) return; - - Player player = e.getPlayer(); - Game game = plugin.getGameManager().getGameOf(player); - if (game == null) return; - - ItemStack item = player.getInventory().getItemInMainHand(); - WeaponType weapon = WeaponUtil.identify(plugin, item); - if (weapon == null) return; - - // Immer abbrechen — verhindert Crossbow-Nachladen, Trident-Wurf etc. - e.setCancelled(true); - - if (game.isRunning()) { - game.handleShot(player, weapon); - } - } - - /** - * Verhindert dass Projektile (Pfeile, Tridents) wirklich abgefeuert werden. - * Crossbow und Trident würden sonst echte Projektile spawnen. - */ - @EventHandler(priority = EventPriority.HIGHEST) - public void onProjectile(ProjectileLaunchEvent e) { - if (!(e.getEntity().getShooter() instanceof Player player)) return; - if (plugin.getGameManager().getGameOf(player) != null) { - e.setCancelled(true); - } - } - - /** - * Hand-Wechsel (F-Taste) im Spiel deaktivieren damit die Waffe - * nicht versehentlich in die Off-Hand wandert. - */ - @EventHandler - public void onSwapHand(PlayerSwapHandItemsEvent e) { - if (plugin.getGameManager().getGameOf(e.getPlayer()) != null) { - e.setCancelled(true); - } - } -}