Delete src/main/java/de/lasertag/weapon/WeaponUtil.java via Git Manager GUI

This commit is contained in:
2026-06-21 18:43:11 +00:00
parent dda0981ddc
commit 98f7aaa650

View File

@@ -1,100 +0,0 @@
package de.lasertag.weapon;
import de.lasertag.LasertagPlugin;
import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.CrossbowMeta;
import org.bukkit.inventory.meta.ItemMeta;
import java.util.Arrays;
import java.util.Collections;
public final class WeaponUtil {
private WeaponUtil() {}
/**
* Erstellt ein Waffen-ItemStack aus der config.yml.
*
* Besonderheiten:
* - CROSSBOW (Sniper): wird als NICHT geladen erstellt damit kein
* Lade-Animationsglitch entsteht. Wir geben ihr einen Glanz-Effekt.
* - TRIDENT (Shotgun): normaler Trident, Wurf wird im Listener blockiert.
* - LIGHTNING_ROD (Rapid-Fire): normaler Rod mit Glanz.
* - BLAZE_ROD (Pistole): leuchtet orange von Natur aus.
*/
public static ItemStack create(LasertagPlugin plugin, WeaponType type) {
var cfg = plugin.getConfigManager();
String key = type.getConfigKey();
ItemStack item = new ItemStack(type.getMaterial());
ItemMeta meta = item.getItemMeta();
meta.setDisplayName(cfg.getWeaponName(key));
meta.setLore(Arrays.asList(
"§7" + cfg.getWeaponDesc(key),
"§8──────────────────────",
"§7Schaden: §c" + cfg.getWeaponDamage(key),
"§7Reichweite: §e" + cfg.getWeaponRange(key) + " Blöcke",
"§7Cooldown: §b" + String.format("%.2f", cfg.getWeaponCooldown(key) / 1000.0) + "s",
cfg.getWeaponPellets(key) > 1
? "§7Pellets: §6" + cfg.getWeaponPellets(key) + "x gleichzeitig"
: "§7Schuss: §61 Projektil",
"§8──────────────────────",
"§8✦ Rechtsklick §8= Schießen"
));
// Glanz-Effekt bei allen Waffen damit sie in der Hotbar hervorstechen
meta.addEnchant(Enchantment.DURABILITY, 1, true);
meta.addItemFlags(
ItemFlag.HIDE_ENCHANTS,
ItemFlag.HIDE_ATTRIBUTES,
ItemFlag.HIDE_UNBREAKABLE,
ItemFlag.HIDE_POTION_EFFECTS
);
meta.setUnbreakable(true);
item.setItemMeta(meta);
// Crossbow: sicherstellen dass sie NICHT geladen ist (kein Lade-Bug)
if (type.getMaterial() == Material.CROSSBOW) {
CrossbowMeta cm = (CrossbowMeta) item.getItemMeta();
cm.setChargedProjectiles(Collections.emptyList());
// Alle oben gesetzten Flags & Lore erneut setzen da wir neue Meta holen
cm.setDisplayName(cfg.getWeaponName(key));
cm.setLore(Arrays.asList(
"§7" + cfg.getWeaponDesc(key),
"§8──────────────────────",
"§7Schaden: §c" + cfg.getWeaponDamage(key),
"§7Reichweite: §e" + cfg.getWeaponRange(key) + " Blöcke",
"§7Cooldown: §b" + String.format("%.2f", cfg.getWeaponCooldown(key) / 1000.0) + "s",
"§7Schuss: §61 Projektil",
"§8──────────────────────",
"§8✦ Rechtsklick §8= Schießen"
));
cm.addEnchant(Enchantment.DURABILITY, 1, true);
cm.addItemFlags(ItemFlag.HIDE_ENCHANTS, ItemFlag.HIDE_ATTRIBUTES,
ItemFlag.HIDE_UNBREAKABLE, ItemFlag.HIDE_POTION_EFFECTS);
cm.setUnbreakable(true);
item.setItemMeta(cm);
}
return item;
}
/**
* Identifiziert den WeaponType eines Items anhand des Display-Namens.
* Gibt null zurück wenn das Item keine Lasertag-Waffe ist.
*/
public static WeaponType identify(LasertagPlugin plugin, ItemStack item) {
if (item == null || !item.hasItemMeta() || !item.getItemMeta().hasDisplayName())
return null;
String name = item.getItemMeta().getDisplayName();
for (WeaponType t : WeaponType.values()) {
if (plugin.getConfigManager().getWeaponName(t.getConfigKey()).equals(name))
return t;
}
return null;
}
}