diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..ed2d378 --- /dev/null +++ b/pom.xml @@ -0,0 +1,51 @@ + + 4.0.0 + + com.zivilon + DamageModifiers + 1.0 + jar + + DamageModifiers + + + UTF-8 + 1.7 + 1.7 + + + + + org.bukkit + bukkit + 1.7.10-R0.1-SNAPSHOT + provided + + + com.github.flinbein + PowerNBT + 0.8.9.2 + + + + + package + + + src/main/resources + true + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.0 + + 1.7 + 1.7 + + + + + diff --git a/src/main/java/com/zivilon/damagemodifiers/DamageModifiers.java b/src/main/java/com/zivilon/damagemodifiers/DamageModifiers.java new file mode 100644 index 0000000..1858da4 --- /dev/null +++ b/src/main/java/com/zivilon/damagemodifiers/DamageModifiers.java @@ -0,0 +1,63 @@ +package com.zivilon.damagemodifiers; + +import org.bukkit.Material; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.plugin.java.JavaPlugin; + +import java.io.File; +import java.io.IOException; +import java.util.Arrays; +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Level; + +import com.zivilon.damagemodifiers.listeners.damage_listener; +import com.zivilon.damagemodifiers.commands.damage_modifier_command; +import com.zivilon.damagemodifiers.types.weapon_damage; + +public class DamageModifiers extends JavaPlugin { + private FileConfiguration items_config; + @Override + public void onEnable() { + setup_items_config(); + weapon_damage.setPlugin(this); + + getServer().getPluginManager().registerEvents(new damage_listener(), this); + + getCommand("damagemodifier").setExecutor(new damage_modifier_command(this)); + } + + private void setup_items_config() { + // Check if items.yml exists, if not, create it from the default + File items_file = new File(getDataFolder(), "items.yml"); + if (!items_file.exists()) { + saveResource("items.yml", false); + } + + items_config = YamlConfiguration.loadConfiguration(items_file); + } + public FileConfiguration get_items_config() { + if (items_config == null) { + reload_items_config(); + } + return items_config; + } + + public void reload_items_config() { + File items_file = new File(getDataFolder(), "items.yml"); + items_config = YamlConfiguration.loadConfiguration(items_file); + } + + public void save_items_config() { + if (items_config == null) { + return; + } + File items_file = new File(getDataFolder(), "items.yml"); + try { + get_items_config().save(items_file); + } catch (IOException ex) { + getLogger().log(Level.SEVERE, "Could not save config to " + items_file, ex); + } + } +} diff --git a/src/main/java/com/zivilon/damagemodifiers/commands/damage_modifier_command.java b/src/main/java/com/zivilon/damagemodifiers/commands/damage_modifier_command.java new file mode 100644 index 0000000..5947d3c --- /dev/null +++ b/src/main/java/com/zivilon/damagemodifiers/commands/damage_modifier_command.java @@ -0,0 +1,213 @@ +package com.zivilon.damagemodifiers.commands; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import me.dpohvar.powernbt.api.NBTCompound; +import me.dpohvar.powernbt.api.NBTManager; +import me.dpohvar.powernbt.PowerNBT; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +import com.zivilon.damagemodifiers.DamageModifiers; + +public class damage_modifier_command implements CommandExecutor { + private final DamageModifiers plugin; + + public damage_modifier_command(DamageModifiers plugin) { + this.plugin = plugin; + } + + @Override + public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { + if (!sender.hasPermission("admin")) { + sender.sendMessage(ChatColor.RED + "You do not have permission to use this command."); + return true; + } + + if (args.length < 1) { + sender.sendMessage("Please specify a subcommand: add, remove, list, read"); + return false; + } + if (!args[0].equals("add") && !args[0].equals("remove") && !args[0].equals("list") && !args[0].equals("read")) { + sender.sendMessage("Invalid subcommand: " + args[0]); + sender.sendMessage("Valid subcommands: add, remove, list, read"); + return false; + } + + if (args.length < 2) { + sender.sendMessage("Please specify a target player"); + return false; + } + + Player target = Bukkit.getPlayer(args[1]); + if (target == null) { + sender.sendMessage("Target player not found."); + return true; + } + + switch (args[0].toLowerCase()) { + case "add": + if (args.length != 5) { + sender.sendMessage("Usage: /damagemodifier add "); + return true; + } + add_modifier(target, args[2].toUpperCase(), args[3].toUpperCase(), Float.parseFloat(args[4])); + break; + case "remove": + if (args.length != 3) { + sender.sendMessage("Usage: /damagemodifier remove "); + return true; + } + remove_modifier(target, args[2]); + break; + case "list": + if (args.length != 2) { + sender.sendMessage("Usage: /damagemodifier list "); + return true; + } + list_modifiers(target, sender); + break; + case "read": + if(!(sender instanceof Player)) { + sender.sendMessage(ChatColor.RED + "This command can only be used by a player."); + return true; + } + Player player = (Player) sender; + readItemAttributes(player); + break; + default: + sender.sendMessage(ChatColor.RED + "Error resolving subcommand."); + return false; + } + return true; + } + + private void add_modifier(Player target, String type, String action, float value) { + NBTManager nbtManager = PowerNBT.getApi(); + NBTCompound nbtData = nbtManager.read(target); + NBTCompound forgeData = (NBTCompound) nbtData.get("ForgeData"); + + // If there's no ForgeData compound, create it. + if (forgeData == null) { + forgeData = new NBTCompound(); + nbtData.put("ForgeData", forgeData); + } + + // Check for DamageModifiers list. If it doesn't exist, create it. + List damageModifiers = (List) forgeData.get("DamageModifiers"); + if (damageModifiers == null) { + damageModifiers = new ArrayList<>(); + forgeData.put("DamageModifiers", damageModifiers); + } + nbtManager.write(target, nbtData); + + nbtData = nbtManager.read(target); + forgeData = (NBTCompound) nbtData.get("ForgeData"); + damageModifiers = (List) forgeData.get("DamageModifiers"); + boolean found = false; + for (NBTCompound modifier : damageModifiers) { + if (type.equals(modifier.get("type"))) { + modifier.put("action", action); + modifier.put("value", value); + found = true; + break; + } + } + + if (!found) { + NBTCompound newModifier = new NBTCompound(); + newModifier.put("type", type); + newModifier.put("action", action); + newModifier.put("value", value); + + damageModifiers.add(newModifier); + } + // Write the modified NBT data back to the player + nbtManager.write(target, nbtData); + + target.sendMessage(ChatColor.GREEN + "Damage modifier added!"); + } + + private void remove_modifier(Player target, String type) { + NBTManager nbtManager = PowerNBT.getApi(); + NBTCompound nbtData = nbtManager.read(target); + NBTCompound forgeData = (NBTCompound) nbtData.get("ForgeData"); + + if (forgeData == null) { + target.sendMessage(ChatColor.RED + "This player doesn't have any damage modifiers."); + return; + } + + List damageModifiers = (List) forgeData.get("DamageModifiers"); + if (damageModifiers == null || damageModifiers.isEmpty()) { + target.sendMessage(ChatColor.RED + "This player doesn't have any damage modifiers."); + return; + } + + boolean found = false; + Iterator iterator = damageModifiers.iterator(); + while (iterator.hasNext()) { + NBTCompound modifier = iterator.next(); + if (type.equalsIgnoreCase((String) modifier.get("type"))) { + iterator.remove(); + found = true; + break; + } + } + + // Write the updated NBT data back to the player + nbtManager.write(target, nbtData); + + if (found) { + target.sendMessage(ChatColor.GREEN + "Damage modifier removed!"); + } else { + target.sendMessage(ChatColor.RED + "Specified damage modifier type not found."); + } + } + private void list_modifiers(Player target, CommandSender sender) { + NBTManager nbtManager = PowerNBT.getApi(); + NBTCompound nbtData = nbtManager.read(target); + NBTCompound forgeData = (NBTCompound) nbtData.get("ForgeData"); + + if (forgeData == null) { + sender.sendMessage(ChatColor.RED + "This player doesn't have any damage modifiers."); + return; + } + + List damageModifiers = (List) forgeData.get("DamageModifiers"); + if (damageModifiers == null || damageModifiers.isEmpty()) { + sender.sendMessage(ChatColor.RED + "This player doesn't have any damage modifiers."); + return; + } + + sender.sendMessage(ChatColor.YELLOW + "Damage Modifiers for " + target.getName() + ":"); + for (NBTCompound modifier : damageModifiers) { + String type = (String) modifier.get("type"); + String action = (String) modifier.get("action"); + float value = ((Number) modifier.get("value")).floatValue(); + sender.sendMessage(ChatColor.GOLD + "Type: " + type + ", Action: " + action + ", Value: " + value); + } + } + private void readItemAttributes(Player player) { + String itemName = player.getInventory().getItemInHand().getType().toString(); + List damageTypes = plugin.get_items_config().getStringList("items." + itemName); + + if (damageTypes == null || damageTypes.isEmpty()) { + player.sendMessage(ChatColor.RED + "This item doesn't have any defined damage types."); + return; + } + + player.sendMessage(ChatColor.GREEN + "Damage types for " + itemName + ":"); + for (String type : damageTypes) { + player.sendMessage("- " + type); + } + } + +} diff --git a/src/main/java/com/zivilon/damagemodifiers/listeners/damage_listener.java b/src/main/java/com/zivilon/damagemodifiers/listeners/damage_listener.java new file mode 100644 index 0000000..e3cc77f --- /dev/null +++ b/src/main/java/com/zivilon/damagemodifiers/listeners/damage_listener.java @@ -0,0 +1,40 @@ +package com.zivilon.damagemodifiers.listeners; + +import org.bukkit.entity.Entity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityDamageEvent; +import org.bukkit.event.entity.EntityDamageByEntityEvent; + +import me.dpohvar.powernbt.api.NBTCompound; +import me.dpohvar.powernbt.api.NBTManager; +import me.dpohvar.powernbt.PowerNBT; + +import com.zivilon.damagemodifiers.types.vanilla_damage; +import com.zivilon.damagemodifiers.types.weapon_damage; + +public class damage_listener implements Listener { + + @EventHandler + public void onEntityDamage(EntityDamageEvent event) { + Entity damaged = event.getEntity(); + + NBTManager nbtManager = PowerNBT.getApi(); + NBTCompound nbtData = nbtManager.read(damaged); + NBTCompound forgeData = (NBTCompound) nbtData.get("ForgeData"); + + // Check for the DamageModifiers list + if (forgeData == null || !forgeData.containsKey("DamageModifiers")) { + return; // Exit if there's no DamageModifiers list + } + + if (event.getCause() == EntityDamageEvent.DamageCause.ENTITY_ATTACK && event instanceof EntityDamageByEntityEvent) { + weapon_damage.handle((EntityDamageByEntityEvent) event); + } else { + vanilla_damage.handle(event); + } + } + + + +} diff --git a/src/main/java/com/zivilon/damagemodifiers/types/vanilla_damage.java b/src/main/java/com/zivilon/damagemodifiers/types/vanilla_damage.java new file mode 100644 index 0000000..150cbab --- /dev/null +++ b/src/main/java/com/zivilon/damagemodifiers/types/vanilla_damage.java @@ -0,0 +1,71 @@ +package com.zivilon.damagemodifiers.types; + +import org.bukkit.event.entity.EntityDamageEvent; +import me.dpohvar.powernbt.api.NBTCompound; +import me.dpohvar.powernbt.api.NBTManager; +import me.dpohvar.powernbt.PowerNBT; + +import org.bukkit.entity.LivingEntity; + +import java.util.HashMap; +import java.util.Map; +import java.util.List; + +public class vanilla_damage { + + private static final Map CAUSE_ALIASES = new HashMap<>(); + + static { + CAUSE_ALIASES.put(EntityDamageEvent.DamageCause.FIRE_TICK, "FIRE"); + CAUSE_ALIASES.put(EntityDamageEvent.DamageCause.LAVA, "FIRE"); + } + + public static void handle(EntityDamageEvent event) { + EntityDamageEvent.DamageCause cause = event.getCause(); + String damageType = CAUSE_ALIASES.getOrDefault(cause, cause.name()); + + if (cause == EntityDamageEvent.DamageCause.POISON && event.getEntity() instanceof LivingEntity) { + LivingEntity livingEntity = (LivingEntity) event.getEntity(); + double damage = event.getDamage(); + double healthAfterDamage = livingEntity.getHealth() - damage; + + if (healthAfterDamage <= 0) { + event.setDamage(livingEntity.getHealth() - 1); + return; // exit after adjusting the damage + } + } + + // Fetch Damage Modifiers + NBTManager nbtManager = PowerNBT.getApi(); + NBTCompound nbtData = nbtManager.read(event.getEntity()); + NBTCompound forgeData = (NBTCompound) nbtData.get("ForgeData"); + List modifiersList = forgeData.getList("DamageModifiers"); + if (modifiersList != null) { + for (Object obj : modifiersList) { + if (obj instanceof NBTCompound) { + NBTCompound modifier = (NBTCompound) obj; + if (damageType.equals(modifier.getString("type"))) { + applyDamageModification(event, modifier); + } + } + } + } + } + + private static void applyDamageModification(EntityDamageEvent event, NBTCompound modifier) { + String action = modifier.getString("action"); + float value = modifier.getFloat("value"); + + switch (action) { + case "ADD": + event.setDamage(event.getDamage() + value); + break; + case "MULTIPLY": + event.setDamage(event.getDamage() * value); + break; + case "IMMUNE": + event.setCancelled(true); + break; + } + } +} diff --git a/src/main/java/com/zivilon/damagemodifiers/types/weapon_damage.java b/src/main/java/com/zivilon/damagemodifiers/types/weapon_damage.java new file mode 100644 index 0000000..cad2e10 --- /dev/null +++ b/src/main/java/com/zivilon/damagemodifiers/types/weapon_damage.java @@ -0,0 +1,73 @@ +package com.zivilon.damagemodifiers.types; + +import me.dpohvar.powernbt.api.NBTCompound; +import me.dpohvar.powernbt.api.NBTManager; +import me.dpohvar.powernbt.api.NBTList; +import me.dpohvar.powernbt.PowerNBT; + +import org.bukkit.Material; +import org.bukkit.entity.Entity; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.entity.EntityDamageByEntityEvent; +import org.bukkit.inventory.ItemStack; + +import com.zivilon.damagemodifiers.DamageModifiers; + +import java.util.List; + +public class weapon_damage { + + private static DamageModifiers plugin; + + public static void setPlugin(DamageModifiers instance) { + plugin = instance; + } + + + public static void handle(EntityDamageByEntityEvent event) { + Entity damager = event.getDamager(); + + // Check if damager is a LivingEntity + if (damager instanceof LivingEntity) { + LivingEntity livingDamager = (LivingEntity) damager; + ItemStack weapon = livingDamager.getEquipment().getItemInHand(); + Material material = weapon.getType(); // Line 33 + + if (plugin.get_items_config().contains("items." + material.name())) { + List weaponAttributes = plugin.get_items_config().getStringList("items." + material.name()); + + NBTManager nbtManager = PowerNBT.getApi(); + NBTCompound nbtData = nbtManager.read(event.getEntity()); + NBTCompound forgeData = (NBTCompound) nbtData.get("ForgeData"); + + if (forgeData != null && forgeData.containsKey("DamageModifiers")) { + NBTList playerModifiersNbt = forgeData.getList("DamageModifiers"); + for (Object obj : playerModifiersNbt) { + if (obj instanceof NBTCompound) { + NBTCompound modifier = (NBTCompound) obj; + String type = modifier.getString("type"); + String action = modifier.getString("action"); + float value = modifier.getFloat("value"); + + // Check if weaponAttributes contains the player modifier type + if (weaponAttributes.contains(type)) { + // Apply the modifier action here (ADD, MULTIPLY, or IMMUNE) + switch (action) { + case "ADD": + event.setDamage(event.getDamage() + value); + break; + case "MULTIPLY": + event.setDamage(event.getDamage() * value); + break; + case "IMMUNE": + event.setCancelled(true); + break; + } + } + } + } + } + } + } + } +} diff --git a/src/main/resources/items.yml b/src/main/resources/items.yml new file mode 100644 index 0000000..a59924a --- /dev/null +++ b/src/main/resources/items.yml @@ -0,0 +1,1847 @@ +items: + DIAMOND_AXE: + - AXE + - SHARP + - CHOP + - SLASH + - DIAMOND + DIAMOND_HOE: + - HOE + - SHARP + - CUT + - SLASH + - DIAMOND + DIAMOND_PICKAXE: + - PICKAXE + - SHARP + - THRUST + - SLASH + - DIAMOND + DIAMOND_SWORD: + - SWORD + - SHARP + - CUT + - SLASH + - DIAMOND + GOLD_AXE: + - AXE + - SHARP + - CHOP + - SLASH + - GOLD + GOLD_HOE: + - HOE + - SHARP + - CUT + - SLASH + - GOLD + GOLD_PICKAXE: + - PICKAXE + - SHARP + - THRUST + - SLASH + - GOLD + GOLD_SWORD: + - SWORD + - SHARP + - CUT + - SLASH + - GOLD + IRON_AXE: + - AXE + - SHARP + - CHOP + - SLASH + - IRON + IRON_HOE: + - HOE + - SHARP + - CUT + - SLASH + - IRON + IRON_PICKAXE: + - PICKAXE + - SHARP + - THRUST + - SLASH + - IRON + IRON_SWORD: + - SWORD + - SHARP + - CUT + - SLASH + - IRON + LOTR_ITEMANDURIL: + - SWORD + - SHARP + - CUT + - SLASH + - IRON + - SPECIAL + LOTR_ITEMAXEANGMAR: + - AXE + - SHARP + - CHOP + - SLASH + - ORC + LOTR_ITEMAXEBLUEDWARVEN: + - AXE + - SHARP + - CHOP + - SLASH + - DWARF + LOTR_ITEMAXEBRONZE: + - AXE + - SHARP + - CHOP + - SLASH + - BRONZE + LOTR_ITEMAXEDOLGULDUR: + - AXE + - SHARP + - CHOP + - SLASH + - ORC + LOTR_ITEMAXEDWARVEN: + - AXE + - SHARP + - CHOP + - SLASH + - DWARF + LOTR_ITEMAXEELVEN: + - AXE + - SHARP + - CHOP + - SLASH + - ELF + LOTR_ITEMAXEHIGHELVEN: + - AXE + - SHARP + - CHOP + - SLASH + - ELF + LOTR_ITEMAXEMALLORN: + - AXE + - SHARP + - CHOP + - SLASH + - WOOD + - MALLORN + LOTR_ITEMAXEMITHRIL: + - AXE + - SHARP + - CHOP + - SLASH + - MITHRIL + LOTR_ITEMAXEORC: + - AXE + - SHARP + - CHOP + - SLASH + - ORC + LOTR_ITEMAXERIVENDELL: + - AXE + - SHARP + - CHOP + - SLASH + - ELF + LOTR_ITEMAXETAUREDAIN: + - AXE + - SHARP + - CHOP + - SLASH + - TAURETHRIM + - STONE + LOTR_ITEMAXEURUK: + - AXE + - SHARP + - CHOP + - SLASH + - ORC + LOTR_ITEMAXEWOODELVEN: + - AXE + - SHARP + - CHOP + - SLASH + - ELF + LOTR_ITEMBALROGWHIP: + - WHIP + LOTR_ITEMBATTLEAXEANGMAR: + - BATTLEAXE + - SHARP + - CHOP + - SLASH + - ORC + LOTR_ITEMBATTLEAXEBLACKURUK: + - BATTLEAXE + - SHARP + - CHOP + - SLASH + - ORC + LOTR_ITEMBATTLEAXEBLUEDWARVEN: + - BATTLEAXE + - SHARP + - CHOP + - SLASH + - DWARF + LOTR_ITEMBATTLEAXEBRONZE: + - BATTLEAXE + - SHARP + - CHOP + - SLASH + - BRONZE + LOTR_ITEMBATTLEAXECORSAIR: + - BATTLEAXE + - SHARP + - CHOP + - SLASH + - IRON + LOTR_ITEMBATTLEAXEDALE: + - BATTLEAXE + - SHARP + - CHOP + - SLASH + - IRON + LOTR_ITEMBATTLEAXEDOLGULDUR: + - BATTLEAXE + - SHARP + - CHOP + - SLASH + - ORC + LOTR_ITEMBATTLEAXEDWARVEN: + - BATTLEAXE + - SHARP + - CHOP + - SLASH + - DWARF + LOTR_ITEMBATTLEAXEGUNDABADURUK: + - BATTLEAXE + - SHARP + - CHOP + - SLASH + - ORC + LOTR_ITEMBATTLEAXEHALFTROLL: + - BATTLEAXE + - SHARP + - CHOP + - SLASH + - HALFTROLL + - STONE + LOTR_ITEMBATTLEAXEIRON: + - BATTLEAXE + - SHARP + - CHOP + - SLASH + - IRON + LOTR_ITEMBATTLEAXELOSSARNACH: + - BATTLEAXE + - SHARP + - CHOP + - SLASH + - IRON + LOTR_ITEMBATTLEAXEMITHRIL: + - BATTLEAXE + - SHARP + - CHOP + - SLASH + - MITHRIL + LOTR_ITEMBATTLEAXEMOREDAIN: + - BATTLEAXE + - SHARP + - CHOP + - SLASH + - MORWAITH + - BONE + LOTR_ITEMBATTLEAXEORC: + - BATTLEAXE + - SHARP + - CHOP + - SLASH + - ORC + LOTR_ITEMBATTLEAXERHUN: + - BATTLEAXE + - SHARP + - CHOP + - SLASH + - IRON + LOTR_ITEMBATTLEAXEROHAN: + - BATTLEAXE + - SHARP + - CHOP + - SLASH + - IRON + LOTR_ITEMBATTLEAXETAUREDAIN: + - BATTLEAXE + - SHARP + - CHOP + - SLASH + - TAURETHRIM + - STONE + LOTR_ITEMBATTLEAXEURUK: + - BATTLEAXE + - SHARP + - CHOP + - SLASH + - ORC + LOTR_ITEMBATTLEAXEUTUMNO: + - BATTLEAXE + - SHARP + - CHOP + - SLASH + - ORC + LOTR_ITEMBLACKSMITHHAMMER: + - HAMMER + - BLUNT + - HEAVY + - SLASH + - IRON + LOTR_ITEMCLUBMOREDAIN: + - HAMMER + - BLUNT + - HEAVY + - SLASH + - MORWAITH + - WOOD + LOTR_ITEMCOMMANDSWORD: + - SWORD + - SHARP + - CUT + - SLASH + - IRON + - BRONZE + LOTR_ITEMDAGGERANCIENTHARAD: + - DAGGER + - SHARP + - SHORT + - THRUST + - IRON + LOTR_ITEMDAGGERANGMAR: + - DAGGER + - SHARP + - SHORT + - THRUST + - ORC + LOTR_ITEMDAGGERANGMARPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - ORC + - POISONED + LOTR_ITEMDAGGERARNOR: + - DAGGER + - SHARP + - SHORT + - THRUST + - IRON + LOTR_ITEMDAGGERARNORPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - IRON + - POISONED + LOTR_ITEMDAGGERBARROW: + - DAGGER + - SHARP + - SHORT + - THRUST + - IRON + LOTR_ITEMDAGGERBARROWPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - IRON + - POISONED + LOTR_ITEMDAGGERBLACKNUMENOREAN: + - DAGGER + - SHARP + - SHORT + - THRUST + - IRON + LOTR_ITEMDAGGERBLACKNUMENOREANPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - IRON + - POISONED + LOTR_ITEMDAGGERBLACKURUK: + - DAGGER + - SHARP + - SHORT + - THRUST + - ORC + LOTR_ITEMDAGGERBLACKURUKPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - ORC + - POISONED + LOTR_ITEMDAGGERBLUEDWARVEN: + - DAGGER + - SHARP + - SHORT + - THRUST + - DWARF + LOTR_ITEMDAGGERBLUEDWARVENPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - DWARF + - POISONED + LOTR_ITEMDAGGERBRONZE: + - DAGGER + - SHARP + - SHORT + - THRUST + - BRONZE + LOTR_ITEMDAGGERBRONZEPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - BRONZE + - POISONED + LOTR_ITEMDAGGERCORSAIR: + - DAGGER + - SHARP + - SHORT + - THRUST + - IRON + LOTR_ITEMDAGGERCORSAIRPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - IRON + - POISONED + LOTR_ITEMDAGGERDALE: + - DAGGER + - SHARP + - SHORT + - THRUST + - IRON + LOTR_ITEMDAGGERDALEPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - IRON + - POISONED + LOTR_ITEMDAGGERDOLAMROTH: + - DAGGER + - SHARP + - SHORT + - THRUST + - IRON + LOTR_ITEMDAGGERDOLAMROTHPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - IRON + - POISONED + LOTR_ITEMDAGGERDOLGULDUR: + - DAGGER + - SHARP + - SHORT + - THRUST + - ORC + LOTR_ITEMDAGGERDOLGULDURPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - ORC + - POISONED + LOTR_ITEMDAGGERDORWINIONELF: + - DAGGER + - SHARP + - SHORT + - THRUST + - ELF + LOTR_ITEMDAGGERDORWINIONELFPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - ELF + - POISONED + LOTR_ITEMDAGGERDWARVEN: + - DAGGER + - SHARP + - SHORT + - THRUST + - DWARF + LOTR_ITEMDAGGERDWARVENPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - DWARF + - POISONED + LOTR_ITEMDAGGERELVEN: + - DAGGER + - SHARP + - SHORT + - THRUST + - ELF + LOTR_ITEMDAGGERELVENPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - ELF + - POISONED + LOTR_ITEMDAGGERGONDOR: + - DAGGER + - SHARP + - SHORT + - THRUST + - GONDOR + LOTR_ITEMDAGGERGONDORPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - GONDOR + - POISONED + LOTR_ITEMDAGGERGUNDABADURUK: + - DAGGER + - SHARP + - SHORT + - THRUST + - ORC + LOTR_ITEMDAGGERGUNDABADURUKPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - ORC + - POISONED + LOTR_ITEMDAGGERHALFTROLL: + - DAGGER + - SHARP + - SHORT + - THRUST + - HALFTROLL + - STONE + LOTR_ITEMDAGGERHALFTROLLPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - HALFTROLL + - STONE + - POISONED + LOTR_ITEMDAGGERHARAD: + - DAGGER + - SHARP + - SHORT + - THRUST + - BRONZE + LOTR_ITEMDAGGERHARADPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - BRONZE + - POISONED + LOTR_ITEMDAGGERHIGHELVEN: + - DAGGER + - SHARP + - SHORT + - THRUST + - ELF + LOTR_ITEMDAGGERHIGHELVENPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - ELF + - POISONED + LOTR_ITEMDAGGERIRON: + - DAGGER + - SHARP + - SHORT + - THRUST + - IRON + LOTR_ITEMDAGGERIRONPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - IRON + - POISONED + LOTR_ITEMDAGGERMITHRIL: + - DAGGER + - SHARP + - SHORT + - THRUST + - MITHRIL + LOTR_ITEMDAGGERMITHRILPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - MITHRIL + - POISONED + LOTR_ITEMDAGGERMOREDAIN: + - DAGGER + - SHARP + - SHORT + - THRUST + - MORWAITH + - BONE + LOTR_ITEMDAGGERMOREDAINPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - MORWAITH + - BONE + - POISONED + LOTR_ITEMDAGGERNEARHARAD: + - DAGGER + - SHARP + - SHORT + - THRUST + - IRON + LOTR_ITEMDAGGERNEARHARADPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - IRON + - POISONED + LOTR_ITEMDAGGERORC: + - DAGGER + - SHARP + - SHORT + - THRUST + - ORC + LOTR_ITEMDAGGERORCPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - ORC + - POISONED + LOTR_ITEMDAGGERRHUN: + - DAGGER + - SHARP + - SHORT + - THRUST + - IRON + LOTR_ITEMDAGGERRHUNPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - IRON + - POISONED + LOTR_ITEMDAGGERRIVENDELL: + - DAGGER + - SHARP + - SHORT + - THRUST + - ELF + LOTR_ITEMDAGGERRIVENDELLPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - ELF + - POISONED + LOTR_ITEMDAGGERROHAN: + - DAGGER + - SHARP + - SHORT + - THRUST + - IRON + LOTR_ITEMDAGGERROHANPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - IRON + - POISONED + LOTR_ITEMDAGGERTAUREDAIN: + - DAGGER + - SHARP + - SHORT + - THRUST + - TAURETHRIM + - STONE + LOTR_ITEMDAGGERTAUREDAINPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - TAURETHRIM + - STONE + - POISONED + LOTR_ITEMDAGGERURUK: + - DAGGER + - SHARP + - SHORT + - THRUST + - ORC + LOTR_ITEMDAGGERURUKPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - ORC + - POISONED + LOTR_ITEMDAGGERUTUMNO: + - DAGGER + - SHARP + - SHORT + - THRUST + - ORC + LOTR_ITEMDAGGERUTUMNOPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - ORC + - POISONED + LOTR_ITEMDAGGERWOODELVEN: + - DAGGER + - SHARP + - SHORT + - THRUST + - ELF + LOTR_ITEMDAGGERWOODELVENPOISONED: + - DAGGER + - SHARP + - SHORT + - THRUST + - ELF + - POISONED + LOTR_ITEMDUNLENDINGCLUB: + - HAMMER + - BLUNT + - HEAVY + - SLASH + - WOOD + LOTR_ITEMDUNLENDINGTRIDENT: + - TRIDENT + - SHARP + - THRUST + - LONG + - IRON + LOTR_ITEMGANDALFSTAFFGREY: + - STAFF + - BLUNT + - LONG + - SLASH + - GANDALF + - SPECIAL + LOTR_ITEMGANDALFSTAFFWHITE: + - STAFF + - BLUNT + - LONG + - SLASH + - GANDALF + - SPECIAL + LOTR_ITEMGLAMDRING: + - SWORD + - SHARP + - CUT + - SLASH + - ELF + - SPECIAL + LOTR_ITEMHALBERDMITHRIL: + - HALBERD + - SHARP + - LONG + - SLASH + - CHOP + - MITHRIL + LOTR_ITEMHAMMERANGMAR: + - HAMMER + - BLUNT + - HEAVY + - SLASH + - ORC + LOTR_ITEMHAMMERBLACKURUK: + - HAMMER + - BLUNT + - HEAVY + - SLASH + - ORC + LOTR_ITEMHAMMERBLUEDWARVEN: + - HAMMER + - BLUNT + - HEAVY + - SLASH + - DWARF + LOTR_ITEMHAMMERDOLGULDUR: + - HAMMER + - BLUNT + - HEAVY + - SLASH + - ORC + LOTR_ITEMHAMMERDWARVEN: + - HAMMER + - BLUNT + - HEAVY + - SLASH + - DWARF + LOTR_ITEMHAMMERGONDOR: + - HAMMER + - BLUNT + - HEAVY + - SLASH + - GONDOR + LOTR_ITEMHAMMERGUNDABADURUK: + - HAMMER + - BLUNT + - HEAVY + - SLASH + - ORC + LOTR_ITEMHAMMERHALFTROLL: + - HAMMER + - BLUNT + - HEAVY + - SLASH + - HALFTROLL + - STONE + LOTR_ITEMHAMMERMITHRIL: + - HAMMER + - BLUNT + - HEAVY + - SLASH + - MITHRIL + LOTR_ITEMHAMMERORC: + - HAMMER + - BLUNT + - HEAVY + - SLASH + - ORC + LOTR_ITEMHAMMERTAUREDAIN: + - HAMMER + - BLUNT + - HEAVY + - SLASH + - TAURETHRIM + - STONE + LOTR_ITEMHAMMERURUK: + - HAMMER + - BLUNT + - HEAVY + - SLASH + - ORC + LOTR_ITEMHAMMERUTUMNO: + - HAMMER + - BLUNT + - HEAVY + - SLASH + - ORC + LOTR_ITEMHOEANGMAR: + - HOE + - SHARP + - CUT + - SLASH + - ORC + LOTR_ITEMHOEBLUEDWARVEN: + - HOE + - SHARP + - CUT + - SLASH + - DWARF + LOTR_ITEMHOEBRONZE: + - HOE + - SHARP + - CUT + - SLASH + - BRONZE + LOTR_ITEMHOEDOLGULDUR: + - HOE + - SHARP + - CUT + - SLASH + - ORC + LOTR_ITEMHOEDWARVEN: + - HOE + - SHARP + - CUT + - SLASH + - DWARF + LOTR_ITEMHOEELVEN: + - HOE + - SHARP + - CUT + - SLASH + - ELF + LOTR_ITEMHOEHIGHELVEN: + - HOE + - SHARP + - CUT + - SLASH + - ELF + LOTR_ITEMHOEMALLORN: + - HOE + - SHARP + - CUT + - SLASH + - WOOD + - MALLORN + LOTR_ITEMHOEMITHRIL: + - HOE + - SHARP + - CUT + - SLASH + - MITHRIL + LOTR_ITEMHOEORC: + - HOE + - SHARP + - CUT + - SLASH + - ORC + LOTR_ITEMHOERIVENDELL: + - HOE + - SHARP + - CUT + - SLASH + - ELF + LOTR_ITEMHOETAUREDAIN: + - HOE + - SHARP + - CUT + - SLASH + - TAURETHRIM + - STONE + LOTR_ITEMHOEURUK: + - HOE + - SHARP + - CUT + - SLASH + - ORC + LOTR_ITEMHOEWOODELVEN: + - HOE + - SHARP + - CUT + - SLASH + - ELF + LOTR_ITEMLANCEDOLAMROTH: + - LANCE + - SHARP + - LONG + - THRUST + - IRON + LOTR_ITEMLANCEGONDOR: + - LANCE + - SHARP + - LONG + - THRUST + - GONDOR + LOTR_ITEMLANCEROHAN: + - LANCE + - SHARP + - LONG + - THRUST + - IRON + LOTR_ITEMLONGSPEARDOLAMROTH: + - LONGSPEAR + - SHARP + - LONG + - THRUST + - IRON + LOTR_ITEMLONGSPEARELVEN: + - LONGSPEAR + - SHARP + - LONG + - THRUST + - ELF + LOTR_ITEMLONGSPEARHIGHELVEN: + - LONGSPEAR + - SHARP + - LONG + - THRUST + - ELF + LOTR_ITEMLONGSPEARRIVENDELL: + - LONGSPEAR + - SHARP + - LONG + - THRUST + - ELF + LOTR_ITEMLONGSPEARWOODELVEN: + - LONGSPEAR + - SHARP + - LONG + - THRUST + - ELF + LOTR_ITEMMACEBLACKNUMENOREAN: + - HAMMER + - BLUNT + - HEAVY + - SLASH + - IRON + LOTR_ITEMMACEHALFTROLL: + - HAMMER + - BLUNT + - HEAVY + - SLASH + - HALFTROLL + - STONE + LOTR_ITEMMACEMALLORNCHARRED: + - HAMMER + - BLUNT + - HEAVY + - SLASH + - WOOD + - MALLORN + LOTR_ITEMMACENEARHARAD: + - HAMMER + - BLUNT + - HEAVY + - SLASH + - IRON + LOTR_ITEMMATTOCKBLUEDWARVEN: + - MATTOCK + - SHARP + - CHOP + - SLASH + - DWARF + LOTR_ITEMMATTOCKDWARVEN: + - MATTOCK + - SHARP + - CHOP + - SLASH + - DWARF + LOTR_ITEMMATTOCKMITHRIL: + - MATTOCK + - SHARP + - CHOP + - SLASH + - MITHRIL + LOTR_ITEMMORGULBLADE: + - SWORD + - SHARP + - CUT + - SLASH + - MORGUL + LOTR_ITEMORCSKULLSTAFF: + - STAFF + - BLUNT + - LONG + - SLASH + - ORC + LOTR_ITEMPICKAXEANGMAR: + - PICKAXE + - SHARP + - THRUST + - SLASH + - ORC + LOTR_ITEMPICKAXEBLUEDWARVEN: + - PICKAXE + - SHARP + - THRUST + - SLASH + - DWARF + LOTR_ITEMPICKAXEBRONZE: + - PICKAXE + - SHARP + - THRUST + - SLASH + - BRONZE + LOTR_ITEMPICKAXEDOLGULDUR: + - PICKAXE + - SHARP + - THRUST + - SLASH + - ORC + LOTR_ITEMPICKAXEDWARVEN: + - PICKAXE + - SHARP + - THRUST + - SLASH + - DWARF + LOTR_ITEMPICKAXEELVEN: + - PICKAXE + - SHARP + - THRUST + - SLASH + - ELF + LOTR_ITEMPICKAXEHIGHELVEN: + - PICKAXE + - SHARP + - THRUST + - SLASH + - ELF + LOTR_ITEMPICKAXEMALLORN: + - PICKAXE + - SHARP + - THRUST + - SLASH + - WOOD + - MALLORN + LOTR_ITEMPICKAXEMITHRIL: + - PICKAXE + - SHARP + - THRUST + - SLASH + - MITHRIL + LOTR_ITEMPICKAXEORC: + - PICKAXE + - SHARP + - THRUST + - SLASH + - ORC + LOTR_ITEMPICKAXERIVENDELL: + - PICKAXE + - SHARP + - THRUST + - SLASH + - ELF + LOTR_ITEMPICKAXETAUREDAIN: + - PICKAXE + - SHARP + - THRUST + - SLASH + - TAURETHRIM + - STONE + LOTR_ITEMPICKAXEURUK: + - PICKAXE + - SHARP + - THRUST + - SLASH + - ORC + LOTR_ITEMPICKAXEWOODELVEN: + - PICKAXE + - SHARP + - THRUST + - SLASH + - ELF + LOTR_ITEMPIKEBLUEDWARVEN: + - PIKE + - SHARP + - LONG + - THRUST + - DWARF + LOTR_ITEMPIKEDALE: + - PIKE + - SHARP + - LONG + - THRUST + - IRON + LOTR_ITEMPIKEDOLGULDUR: + - PIKE + - SHARP + - LONG + - THRUST + - ORC + LOTR_ITEMPIKEDWARVEN: + - PIKE + - SHARP + - LONG + - THRUST + - DWARF + LOTR_ITEMPIKEGONDOR: + - PIKE + - SHARP + - LONG + - THRUST + - GONDOR + LOTR_ITEMPIKEGUNDABADURUK: + - PIKE + - SHARP + - LONG + - THRUST + - ORC + LOTR_ITEMPIKEHALFTROLL: + - PIKE + - SHARP + - LONG + - THRUST + - HALFTROLL + - STONE + LOTR_ITEMPIKEHARAD: + - PIKE + - SHARP + - LONG + - THRUST + - BRONZE + LOTR_ITEMPIKEIRON: + - PIKE + - SHARP + - LONG + - THRUST + - IRON + LOTR_ITEMPIKENEARHARAD: + - PIKE + - SHARP + - LONG + - THRUST + - IRON + LOTR_ITEMPIKERHUN: + - PIKE + - SHARP + - LONG + - THRUST + - IRON + LOTR_ITEMPIKETAUREDAIN: + - PIKE + - SHARP + - LONG + - THRUST + - TAURETHRIM + - STONE + LOTR_ITEMPIKEURUK: + - PIKE + - SHARP + - LONG + - THRUST + - ORC + LOTR_ITEMPOLEARMANGMAR: + - POLEAXE + - SHARP + - LONG + - SLASH + - CHOP + - ORC + LOTR_ITEMPOLEARMELVEN: + - GLAIVE + - SHARP + - LONG + - SLASH + - CUT + - ELF + LOTR_ITEMPOLEARMHIGHELVEN: + - GLAIVE + - SHARP + - LONG + - SLASH + - CUT + - ELF + LOTR_ITEMPOLEARMORC: + - GLAIVE + - SHARP + - LONG + - SLASH + - CUT + - ORC + LOTR_ITEMPOLEARMRHUN: + - POLEAXE + - SHARP + - LONG + - SLASH + - CHOP + - IRON + LOTR_ITEMPOLEARMRIVENDELL: + - GLAIVE + - SHARP + - LONG + - SLASH + - CUT + - ELF + LOTR_ITEMPOLEARMWOODELVEN: + - GLAIVE + - SHARP + - LONG + - SLASH + - CUT + - ELF + LOTR_ITEMPOLEAXENEARHARAD: + - POLEAXE + - SHARP + - LONG + - SLASH + - CHOP + - IRON + LOTR_ITEMRINGIL: + - SWORD + - SHARP + - CUT + - SLASH + - ELF + - SPECIAL + LOTR_ITEMROLLINGPIN: + - ROLLINGPIN + - BLUNT + - WOOD + LOTR_ITEMSAURONMACE: + - HAMMER + - BLUNT + - HEAVY + - SLASH + - SAURON + - SPECIAL + LOTR_ITEMSCIMITARBLACKURUK: + - SWORD + - SHARP + - CUT + - SLASH + - ORC + LOTR_ITEMSCIMITARHALFTROLL: + - SWORD + - SHARP + - CUT + - SLASH + - HALFTROLL + - STONE + LOTR_ITEMSCIMITARNEARHARAD: + - SWORD + - SHARP + - CUT + - SLASH + - IRON + LOTR_ITEMSCIMITARORC: + - SWORD + - SHARP + - CUT + - SLASH + - ORC + LOTR_ITEMSCIMITARURUK: + - SWORD + - SHARP + - CUT + - SLASH + - ORC + LOTR_ITEMSCIMITARURUKBERSERKER: + - SWORD + - SHARP + - CUT + - SLASH + - ORC + LOTR_ITEMSHOVELANGMAR: + - SHOVEL + - SHARP + - CHOP + - SLASH + - ORC + LOTR_ITEMSHOVELBLUEDWARVEN: + - SHOVEL + - SHARP + - CHOP + - SLASH + - DWARF + LOTR_ITEMSHOVELBRONZE: + - SHOVEL + - SHARP + - CHOP + - SLASH + - BRONZE + LOTR_ITEMSHOVELDOLGULDUR: + - SHOVEL + - SHARP + - CHOP + - SLASH + - ORC + LOTR_ITEMSHOVELDWARVEN: + - SHOVEL + - SHARP + - CHOP + - SLASH + - DWARF + LOTR_ITEMSHOVELELVEN: + - SHOVEL + - SHARP + - CHOP + - SLASH + - ELF + LOTR_ITEMSHOVELHIGHELVEN: + - SHOVEL + - SHARP + - CHOP + - SLASH + - ELF + LOTR_ITEMSHOVELMALLORN: + - SHOVEL + - SHARP + - CHOP + - SLASH + - WOOD + - MALLORN + LOTR_ITEMSHOVELMITHRIL: + - SHOVEL + - SHARP + - CHOP + - SLASH + - MITHRIL + LOTR_ITEMSHOVELORC: + - SHOVEL + - SHARP + - CHOP + - SLASH + - ORC + LOTR_ITEMSHOVELRIVENDELL: + - SHOVEL + - SHARP + - CHOP + - SLASH + - ELF + LOTR_ITEMSHOVELTAUREDAIN: + - SHOVEL + - SHARP + - CHOP + - SLASH + - TAURETHRIM + - STONE + LOTR_ITEMSHOVELURUK: + - SHOVEL + - SHARP + - CHOP + - SLASH + - ORC + LOTR_ITEMSHOVELWOODELVEN: + - SHOVEL + - SHARP + - CHOP + - SLASH + - ELF + LOTR_ITEMSPEARANGMAR: + - SPEAR + - SHARP + - LONG + - THRUST + - ORC + LOTR_ITEMSPEARARNOR: + - SPEAR + - SHARP + - LONG + - THRUST + - IRON + LOTR_ITEMSPEARBLACKNUMENOREAN: + - SPEAR + - SHARP + - LONG + - THRUST + - IRON + LOTR_ITEMSPEARBLACKURUK: + - SPEAR + - SHARP + - LONG + - THRUST + - ORC + LOTR_ITEMSPEARBLADORTHIN: + - SPEAR + - SHARP + - LONG + - THRUST + - DWARF + LOTR_ITEMSPEARBLUEDWARVEN: + - SPEAR + - SHARP + - LONG + - THRUST + - DWARF + LOTR_ITEMSPEARBRONZE: + - SPEAR + - SHARP + - LONG + - THRUST + - BRONZE + LOTR_ITEMSPEARCORSAIR: + - SPEAR + - SHARP + - LONG + - THRUST + - IRON + LOTR_ITEMSPEARDALE: + - SPEAR + - SHARP + - LONG + - THRUST + - IRON + LOTR_ITEMSPEARDOLGULDUR: + - SPEAR + - SHARP + - LONG + - THRUST + - ORC + LOTR_ITEMSPEARDWARVEN: + - SPEAR + - SHARP + - LONG + - THRUST + - DWARF + LOTR_ITEMSPEARELVEN: + - SPEAR + - SHARP + - LONG + - THRUST + - ELF + LOTR_ITEMSPEARGONDOR: + - SPEAR + - SHARP + - LONG + - THRUST + - GONDOR + LOTR_ITEMSPEARGUNDABADURUK: + - SPEAR + - SHARP + - LONG + - THRUST + - ORC + LOTR_ITEMSPEARHARAD: + - SPEAR + - SHARP + - LONG + - THRUST + - BRONZE + LOTR_ITEMSPEARHIGHELVEN: + - SPEAR + - SHARP + - LONG + - THRUST + - ELF + LOTR_ITEMSPEARIRON: + - SPEAR + - SHARP + - LONG + - THRUST + - IRON + LOTR_ITEMSPEARMITHRIL: + - SPEAR + - SHARP + - LONG + - THRUST + - MITHRIL + LOTR_ITEMSPEARMOREDAIN: + - SPEAR + - SHARP + - LONG + - THRUST + - MORWAITH + - BONE + LOTR_ITEMSPEARNEARHARAD: + - SPEAR + - SHARP + - LONG + - THRUST + - IRON + LOTR_ITEMSPEARORC: + - SPEAR + - SHARP + - LONG + - THRUST + - ORC + LOTR_ITEMSPEARRHUN: + - SPEAR + - SHARP + - LONG + - THRUST + - IRON + LOTR_ITEMSPEARRIVENDELL: + - SPEAR + - SHARP + - LONG + - THRUST + - ELF + LOTR_ITEMSPEARROHAN: + - SPEAR + - SHARP + - LONG + - THRUST + - IRON + LOTR_ITEMSPEARSTONE: + - SPEAR + - SHARP + - LONG + - THRUST + - STONE + LOTR_ITEMSPEARTAUREDAIN: + - SPEAR + - SHARP + - LONG + - THRUST + - TAURETHRIM + - STONE + LOTR_ITEMSPEARURUK: + - SPEAR + - SHARP + - LONG + - THRUST + - ORC + LOTR_ITEMSPEARUTUMNO: + - SPEAR + - SHARP + - LONG + - THRUST + - ORC + LOTR_ITEMSPEARWOODELVEN: + - SPEAR + - SHARP + - LONG + - THRUST + - ELF + LOTR_ITEMSTING: + - DAGGER + - SHARP + - SHORT + - THRUST + - ELF + - SPECIAL + LOTR_ITEMSWORDANGMAR: + - SWORD + - SHARP + - CUT + - SLASH + - ORC + LOTR_ITEMSWORDARNOR: + - SWORD + - SHARP + - CUT + - SLASH + - IRON + LOTR_ITEMSWORDBLACKNUMENOREAN: + - SWORD + - SHARP + - CUT + - SLASH + - IRON + LOTR_ITEMSWORDBLUEDWARVEN: + - SWORD + - SHARP + - CUT + - SLASH + - DWARF + LOTR_ITEMSWORDBRONZE: + - SWORD + - SHARP + - CUT + - SLASH + - BRONZE + LOTR_ITEMSWORDCORSAIR: + - SWORD + - SHARP + - CUT + - SLASH + - IRON + LOTR_ITEMSWORDDALE: + - SWORD + - SHARP + - CUT + - SLASH + - IRON + LOTR_ITEMSWORDDOLAMROTH: + - SWORD + - SHARP + - CUT + - SLASH + - IRON + LOTR_ITEMSWORDDOLGULDUR: + - SWORD + - SHARP + - CUT + - SLASH + - ORC + LOTR_ITEMSWORDDORWINIONELF: + - SWORD + - SHARP + - CUT + - SLASH + - ELF + LOTR_ITEMSWORDDWARVEN: + - SWORD + - SHARP + - CUT + - SLASH + - DWARF + LOTR_ITEMSWORDELVEN: + - SWORD + - SHARP + - CUT + - SLASH + - ELF + LOTR_ITEMSWORDGONDOLIN: + - SWORD + - SHARP + - CUT + - SLASH + - ELF + LOTR_ITEMSWORDGONDOR: + - SWORD + - SHARP + - CUT + - SLASH + - GONDOR + LOTR_ITEMSWORDGULFHARAD: + - SWORD + - SHARP + - CUT + - SLASH + - BRONZE + LOTR_ITEMSWORDGUNDABADURUK: + - SWORD + - SHARP + - CUT + - SLASH + - ORC + LOTR_ITEMSWORDHARAD: + - SWORD + - SHARP + - CUT + - SLASH + - BRONZE + LOTR_ITEMSWORDHIGHELVEN: + - SWORD + - SHARP + - CUT + - SLASH + - ELF + LOTR_ITEMSWORDMALLORN: + - SWORD + - SHARP + - CUT + - SLASH + - WOOD + - MALLORN + LOTR_ITEMSWORDMITHRIL: + - SWORD + - SHARP + - CUT + - SLASH + - MITHRIL + LOTR_ITEMSWORDMOREDAIN: + - SWORD + - SHARP + - CUT + - SLASH + - BRONZE + LOTR_ITEMSWORDPELARGIR: + - SWORD + - SHARP + - CUT + - SLASH + - IRON + LOTR_ITEMSWORDRHUN: + - SWORD + - SHARP + - CUT + - SLASH + - IRON + LOTR_ITEMSWORDRIVENDELL: + - SWORD + - SHARP + - CUT + - SLASH + - ELF + LOTR_ITEMSWORDROHAN: + - SWORD + - SHARP + - CUT + - SLASH + - IRON + LOTR_ITEMSWORDTAUREDAIN: + - SWORD + - SHARP + - CUT + - SLASH + - TAURETHRIM + - STONE + LOTR_ITEMSWORDUTUMNO: + - SWORD + - SHARP + - CUT + - SLASH + - ORC + LOTR_ITEMSWORDWOODELVEN: + - SWORD + - SHARP + - CUT + - SLASH + - ELF + LOTR_ITEMTHROWINGAXEBLUEDWARVEN: + - THROWINGAXE + - SHARP + - SHORT + - SLASH + - CHOP + - DWARF + LOTR_ITEMTHROWINGAXEBRONZE: + - THROWINGAXE + - SHARP + - SHORT + - SLASH + - CHOP + - BRONZE + LOTR_ITEMTHROWINGAXEDWARVEN: + - THROWINGAXE + - SHARP + - SHORT + - SLASH + - CHOP + - DWARF + LOTR_ITEMTHROWINGAXEIRON: + - THROWINGAXE + - SHARP + - SHORT + - SLASH + - CHOP + - IRON + LOTR_ITEMTHROWINGAXELOSSARNACH: + - THROWINGAXE + - SHARP + - SHORT + - SLASH + - CHOP + - IRON + LOTR_ITEMTRIDENTPELARGIR: + - TRIDENT + - SHARP + - THRUST + - LONG + - IRON + LOTR_ITEMUTUMNOPICKAXE: + - PICKAXE + - SHARP + - THRUST + - SLASH + - ORC + STONE_AXE: + - AXE + - SHARP + - CHOP + - SLASH + - STONE + STONE_HOE: + - HOE + - SHARP + - CUT + - SLASH + - STONE + STONE_PICKAXE: + - PICKAXE + - SHARP + - THRUST + - SLASH + - STONE + STONE_SWORD: + - SWORD + - SHARP + - CUT + - SLASH + - STONE + WOOD_AXE: + - AXE + - SHARP + - CHOP + - SLASH + - WOOD + WOOD_HOE: + - HOE + - SHARP + - CUT + - SLASH + - WOOD + WOOD_PICKAXE: + - PICKAXE + - SHARP + - THRUST + - SLASH + - WOOD + WOOD_SWORD: + - SWORD + - SHARP + - CUT + - SLASH + - WOOD \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml new file mode 100644 index 0000000..4206b33 --- /dev/null +++ b/src/main/resources/plugin.yml @@ -0,0 +1,8 @@ +main: com.zivilon.damagemodifiers.DamageModifiers +name: DamageModifiers +author: Shinare +version: 1.0 +commands: + damagemodifier: + description: Add to or remove damage modifiers from players. + Usage: /modifier [type] [action] [value] \ No newline at end of file