diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..2f7896d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+target/
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..61a79ea
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,43 @@
+
+ 4.0.0
+
+ com.zivilon
+ ItemSalvage
+ 1.0
+ jar
+
+ ItemSalvage
+
+
+ UTF-8
+ 1.7
+ 1.7
+
+
+
+
+ org.bukkit
+ bukkit
+ 1.7.10-R0.1-SNAPSHOT
+ provided
+
+
+ com.github.flinbein
+ PowerNBT
+ 0.8.9.2
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.0
+
+ 1.8
+ 1.8
+
+
+
+
+
diff --git a/src/main/java/com/zivilon/itemsalvage/ItemSalvage.java b/src/main/java/com/zivilon/itemsalvage/ItemSalvage.java
new file mode 100644
index 0000000..1602d45
--- /dev/null
+++ b/src/main/java/com/zivilon/itemsalvage/ItemSalvage.java
@@ -0,0 +1,34 @@
+package com.zivilon.itemsalvage;
+
+import com.zivilon.itemsalvage.utils.dust_handler;
+import com.zivilon.itemsalvage.listeners.enchantment_table_listener;
+
+import org.bukkit.plugin.java.JavaPlugin;
+import org.bukkit.configuration.file.YamlConfiguration;
+import org.bukkit.configuration.file.FileConfiguration;
+
+import java.io.File;
+
+
+public class ItemSalvage extends JavaPlugin {
+ private FileConfiguration item_config;
+
+ @Override
+ public void onEnable() {
+ getServer().getPluginManager().registerEvents(new enchantment_table_listener(this), this);
+ this.item_config = loadConfiguration("items.yml");
+ }
+
+ private FileConfiguration loadConfiguration(String filename) {
+ File file = new File(getDataFolder(), filename);
+ if (!file.exists()) {
+ saveResource(filename, false);
+ }
+
+ return YamlConfiguration.loadConfiguration(file);
+ }
+
+ public FileConfiguration get_item_config() {
+ return item_config;
+ }
+}
diff --git a/src/main/java/com/zivilon/itemsalvage/listeners/enchantment_table_listener.java b/src/main/java/com/zivilon/itemsalvage/listeners/enchantment_table_listener.java
new file mode 100644
index 0000000..851a372
--- /dev/null
+++ b/src/main/java/com/zivilon/itemsalvage/listeners/enchantment_table_listener.java
@@ -0,0 +1,371 @@
+package com.zivilon.itemsalvage.listeners;
+
+import com.zivilon.itemsalvage.ItemSalvage;
+import com.zivilon.itemsalvage.utils.dust_handler;
+import org.bukkit.ChatColor;
+import org.bukkit.Material;
+import org.bukkit.Bukkit;
+import org.bukkit.configuration.ConfigurationSection;
+import org.bukkit.configuration.file.FileConfiguration;
+import org.bukkit.entity.Player;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.player.PlayerInteractEvent;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.ItemMeta;
+import org.bukkit.enchantments.Enchantment;
+
+import me.dpohvar.powernbt.PowerNBT;
+import me.dpohvar.powernbt.api.NBTCompound;
+import me.dpohvar.powernbt.api.NBTManager;
+import me.dpohvar.powernbt.api.NBTList;
+
+import java.util.List;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Collections;
+import java.util.stream.Collectors;
+import java.util.concurrent.ThreadLocalRandom;
+import java.io.BufferedWriter;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+public class enchantment_table_listener implements Listener {
+
+ private final ItemSalvage plugin;
+ private static final String LOG_FILE = "plugins/ItemSalvage/salvage.log";
+
+ public enchantment_table_listener(ItemSalvage plugin) {
+ this.plugin = plugin;
+ }
+
+ public Map get_config_item_data(ItemStack held_item) {
+ // Getting the plugin config and items section
+ FileConfiguration config = plugin.get_item_config();
+ ConfigurationSection items_section = config.getConfigurationSection("items");
+
+ // Getting NBT data from held item
+ NBTManager nbtManager = me.dpohvar.powernbt.PowerNBT.getApi();
+ NBTCompound itemNBT = nbtManager.read(held_item);
+ if (itemNBT == null) return null;
+ byte lotrRandomEnch = itemNBT.getByte("LOTRRandomEnch");
+ int lotrRepairCost = itemNBT.getInt("LOTRRepairCost");
+ NBTList lotrEnchNBT = itemNBT.getList("LOTREnch");
+ List lotrEnch = new ArrayList<>();
+ if (lotrEnchNBT != null) {
+ for (Object obj : lotrEnchNBT) {
+ lotrEnch.add(obj.toString());
+ }
+ }
+ NBTList lotrEnchProgressNBT = itemNBT.getList("LOTREnchProgress");
+ List