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