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

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

View File

@@ -1,70 +0,0 @@
package de.lasertag.listener;
import de.lasertag.LasertagPlugin;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.FoodLevelChangeEvent;
import org.bukkit.event.player.PlayerDropItemEvent;
import org.bukkit.event.player.PlayerItemHeldEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.CrossbowMeta;
public class PlayerListener implements Listener {
private final LasertagPlugin plugin;
public PlayerListener(LasertagPlugin plugin) { this.plugin = plugin; }
/** Schaden komplett sperren — Lasertag verwaltet Tode selbst. */
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = false)
public void onDamage(EntityDamageEvent e) {
if (!(e.getEntity() instanceof Player p)) return;
if (plugin.getGameManager().getGameOf(p) != null) e.setCancelled(true);
}
/** Hunger sperren. */
@EventHandler
public void onFood(FoodLevelChangeEvent e) {
if (!(e.getEntity() instanceof Player p)) return;
if (plugin.getGameManager().getGameOf(p) != null) e.setCancelled(true);
}
/** Items droppen sperren. */
@EventHandler
public void onDrop(PlayerDropItemEvent e) {
if (plugin.getGameManager().getGameOf(e.getPlayer()) != null) e.setCancelled(true);
}
/** Spieler verlässt den Server. */
@EventHandler
public void onQuit(PlayerQuitEvent e) {
plugin.getGameManager().leaveGame(e.getPlayer());
}
/**
* Wenn ein Spieler im Spiel die Crossbow (Sniper) in die Hand nimmt,
* sicherstellen dass sie nicht "geladen" aussieht und keinen Pfeil enthält.
* Crossbows haben eine CrossbowMeta die "charged" sein kann — das resetten wir.
*/
@EventHandler
public void onHeldChange(PlayerItemHeldEvent e) {
Player player = e.getPlayer();
if (plugin.getGameManager().getGameOf(player) == null) return;
// Kleines Delay damit das Item schon in der Hand ist
org.bukkit.Bukkit.getScheduler().runTaskLater(
de.lasertag.LasertagPlugin.getInstance(), () -> {
ItemStack item = player.getInventory().getItemInMainHand();
if (item == null) return;
if (item.getItemMeta() instanceof CrossbowMeta cm) {
if (!cm.getChargedProjectiles().isEmpty()) {
cm.setChargedProjectiles(java.util.Collections.emptyList());
item.setItemMeta(cm);
}
}
}, 1L);
}
}