Delete src/main/java/de/lasertag/listener/PlayerListener.java via Git Manager GUI
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user