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));
}
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;
}