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