Delete src/main/java/de/lasertag/listener/WeaponListener.java via Git Manager GUI

This commit is contained in:
2026-06-21 18:43:03 +00:00
parent 623dc73834
commit 4c6a63cf90

View File

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