Search in sources :

Example 1 with Skin

use of me.deecaad.weaponmechanics.weapon.skin.Skin in project MechanicsMain by WeaponMechanics.

the class InfoHandler method giveOrDropWeapon.

/**
 * If weapon title is invalid, its silently ignored.
 * All general weapon get actions are used.
 *
 * @param weaponTitle the weapon to give
 * @param player the player for who to give
 * @param amount the amount of weapons to give
 */
public void giveOrDropWeapon(String weaponTitle, Player player, int amount) {
    ItemStack weaponStack = getConfigurations().getObject(weaponTitle + ".Info.Weapon_Item", ItemStack.class);
    if (weaponStack == null)
        return;
    weaponStack = weaponStack.clone();
    weaponStack.setAmount(amount);
    ItemMeta weaponMeta = weaponStack.getItemMeta();
    weaponMeta.setDisplayName(PlaceholderAPI.applyPlaceholders(weaponMeta.getDisplayName(), player, weaponStack, weaponTitle, null));
    weaponMeta.setLore(PlaceholderAPI.applyPlaceholders(weaponMeta.getLore(), player, weaponStack, weaponTitle, null));
    weaponStack.setItemMeta(weaponMeta);
    // Apply default skin
    Map skins = getConfigurations().getObject(weaponTitle + ".Skin", Map.class);
    Skin defaultSkin = (Skin) (skins == null ? null : skins.get("Default"));
    if (defaultSkin != null) {
        defaultSkin.apply(weaponStack);
    }
    Inventory inventory = player.getInventory();
    // Check if inventory doesn't have any free slots
    if (inventory.firstEmpty() == -1) {
        player.getWorld().dropItemNaturally(player.getLocation().add(0.0, 1.0, 0.0), weaponStack);
        return;
    }
    inventory.addItem(weaponStack);
    Mechanics.use(weaponTitle + ".Info.Weapon_Get_Mechanics", new CastData(WeaponMechanics.getEntityWrapper(player), weaponTitle, weaponStack));
}
Also used : CastData(me.deecaad.weaponmechanics.mechanics.CastData) Skin(me.deecaad.weaponmechanics.weapon.skin.Skin) ItemStack(org.bukkit.inventory.ItemStack) Map(java.util.Map) ItemMeta(org.bukkit.inventory.meta.ItemMeta) Inventory(org.bukkit.inventory.Inventory)

Example 2 with Skin

use of me.deecaad.weaponmechanics.weapon.skin.Skin in project MechanicsMain by WeaponMechanics.

the class InfoHandler method generateWeapon.

public ItemStack generateWeapon(String weaponTitle, int amount) {
    ItemStack weaponStack = getConfigurations().getObject(weaponTitle + ".Info.Weapon_Item", ItemStack.class);
    // Check for weapon title typos silently
    if (weaponStack == null) {
        return null;
    }
    weaponStack = weaponStack.clone();
    weaponStack.setAmount(amount);
    ItemMeta weaponMeta = weaponStack.getItemMeta();
    weaponMeta.setDisplayName(PlaceholderAPI.applyPlaceholders(weaponMeta.getDisplayName(), null, weaponStack, weaponTitle, null));
    weaponMeta.setLore(PlaceholderAPI.applyPlaceholders(weaponMeta.getLore(), null, weaponStack, weaponTitle, null));
    weaponStack.setItemMeta(weaponMeta);
    // Apply default skin
    Map skins = getConfigurations().getObject(weaponTitle + ".Skin", Map.class);
    Skin defaultSkin = (Skin) (skins == null ? null : skins.get("Default"));
    if (defaultSkin != null) {
        defaultSkin.apply(weaponStack);
    }
    return weaponStack;
}
Also used : Skin(me.deecaad.weaponmechanics.weapon.skin.Skin) ItemStack(org.bukkit.inventory.ItemStack) Map(java.util.Map) ItemMeta(org.bukkit.inventory.meta.ItemMeta)

Aggregations

Map (java.util.Map)2 Skin (me.deecaad.weaponmechanics.weapon.skin.Skin)2 ItemStack (org.bukkit.inventory.ItemStack)2 ItemMeta (org.bukkit.inventory.meta.ItemMeta)2 CastData (me.deecaad.weaponmechanics.mechanics.CastData)1 Inventory (org.bukkit.inventory.Inventory)1