Cleanup

Wobin [05-31-14 - 06:10]
Cleanup
Filename
Libs/LibSort/LibSort-1.0.lua
Libs/LibSort/LibStub.lua
Libs/LibSort/README.md
Libs/LibStub/LibStub.lua
MrPlow.lua
MrPlow.txt
diff --git a/Libs/LibSort/LibSort-1.0.lua b/Libs/LibSort/LibSort-1.0.lua
deleted file mode 100644
index 098b3c4..0000000
--- a/Libs/LibSort/LibSort-1.0.lua
+++ /dev/null
@@ -1,207 +0,0 @@
-local MAJOR, MINOR = "LibSort-1.0", 1
-local LibSort, oldminor = LibStub:NewLibrary(MAJOR, MINOR)
-if not LibSort then return end	--the same or newer version of this lib is already loaded into memory
-
-LIBSORT = LibSort
-
--- Lookup Tables ---
-local wm = WINDOW_MANAGER
-local defaultType = {["isNumeric"] = 0, ["isBoolean"] = false, ["isString"] = ""}
-local inventoryTypes = {[INVENTORY_BACKPACK] = ZO_PlayerInventoryBackpack, [INVENTORY_BANK] = ZO_PlayerBankBackpack, [INVENTORY_GUILD_BANK] = ZO_GuildBankBackpack}
-
-
---- Utility functions ---
-
-local function removeSpaces(name)
-	return name:gsub(" ","")
-end
-
-local function makePrefix(name)
-	return removeSpaces(name) .. "_"
-end
-
-function LibSort:Debug(msg)
-	if LibSort.isDebugging then	d("[LibSort]: "..msg) 	end
-end
-
---- Storage variables ---
-LibSort.RegisteredCallbacks = {}
-LibSort.AddonOrder = {}
-LibSort.DefaultOrdersLow = {}
-LibSort.DefaultOrdersHigh = {}
-
---- Arrow generation ---
-
-function LibSort:SetupArrows()
-	LibSort.ItemSortBank = wm:CreateControlFromVirtual("ItemSortBank", ZO_PlayerBankSortBy, "ZO_SortHeaderIcon")
-	LibSort.ItemSortBank:SetDimensions(16, 32)
-	LibSort.ItemSortBank:SetAnchor(RIGHT, ZO_PlayerBankSortByName, LEFT, -15)
-	ZO_SortHeader_SetMouseCallback(ItemSortBank,    function(header, eventType)
-                                                            if(eventType == "OnMouseEnter") then
-                                                                InitializeTooltip(InformationTooltip, ItemSortBank, BOTTOMRIGHT, 0, 32)
-                                                                SetTooltipText(InformationTooltip, "Sort")
-                                                            else
-                                                                ClearTooltip(InformationTooltip)
-                                                            end
-                                                        end)
-    ZO_PlayerInventory_InitSortHeaderIcon(LibSort.ItemSortBank,
-                                    "EsoUI/Art/Miscellaneous/list_sortHeader_icon_neutral.dds",
-                                    "EsoUI/Art/Miscellaneous/list_sortHeader_icon_sortUp.dds",
-                                    "EsoUI/Art/Miscellaneous/list_sortHeader_icon_sortDown.dds",
-                                    "EsoUI/Art/Miscellaneous/list_sortHeader_icon_over.dds",
-                                    "age")
-
-    PLAYER_INVENTORY.inventories[INVENTORY_BANK].sortHeaders:AddHeader(ItemSortBank)
-
-    LibSort.ItemSortGuild = wm:CreateControlFromVirtual("ItemSortGuild", ZO_GuildBankSortBy, "ZO_SortHeaderIcon")
-	LibSort.ItemSortGuild:SetDimensions(16, 32)
-	LibSort.ItemSortGuild:SetAnchor(RIGHT, ZO_GuildBankSortByName, LEFT, -15)
-	ZO_SortHeader_SetMouseCallback(ItemSortGuild,    function(header, eventType)
-                                                            if(eventType == "OnMouseEnter") then
-                                                                InitializeTooltip(InformationTooltip, ItemSortGuild, BOTTOMRIGHT, 0, 32)
-                                                                SetTooltipText(InformationTooltip, "Sort")
-                                                            else
-                                                                ClearTooltip(InformationTooltip)
-                                                            end
-                                                        end)
-    ZO_PlayerInventory_InitSortHeaderIcon(LibSort.ItemSortGuild,
-                                    "EsoUI/Art/Miscellaneous/list_sortHeader_icon_neutral.dds",
-                                    "EsoUI/Art/Miscellaneous/list_sortHeader_icon_sortUp.dds",
-                                    "EsoUI/Art/Miscellaneous/list_sortHeader_icon_sortDown.dds",
-                                    "EsoUI/Art/Miscellaneous/list_sortHeader_icon_over.dds",
-                                    "age")
-    PLAYER_INVENTORY.inventories[INVENTORY_GUILD_BANK].sortHeaders:AddHeader(ItemSortGuild)
-end
-
-
-
---- Main functions ---
-
-LibSort.sortKeys = ZO_Inventory_GetDefaultHeaderSortKeys()
-
-function LibSort:InjectKeys()
-	for addon, callbacks in pairs(self.RegisteredCallbacks) do
-		for name, data in pairs(callbacks) do
-			if not self.sortKeys[data.key] then
-				self.sortKeys[data.key] = {}
-				self.sortKeys[data.key][data.dataType] = true
-			end
-		end
-	end
-	self:ReOrderKeys()
-end
-
-function LibSort:ReOrderKeys()
-	local first
-	local previous
-	for i, addonName in ipairs(self.AddonOrder) do
-		if self.DefaultOrdersLow[addonName] then
-			for _, name in ipairs(self.DefaultOrdersLow[addonName]) do
-				local data = self.RegisteredCallbacks[addonName][name]
-				if data then -- we skip the ones we haven't registered yet
-					first, previous = self:SetKeyOrder(first, previous, data)
-				end
-			end
-		end
-	end
-	for i, addonName in ipairs(self.AddonOrder) do
-		if self.DefaultOrdersHigh[addonName] then
-			for _, name in ipairs(self.DefaultOrdersHigh[addonName]) do
-				local data = self.RegisteredCallbacks[addonName][name]
-				if data then -- we skip the ones we haven't registered yet
-					first, previous = self:SetKeyOrder(first, previous, data)
-				end
-			end
-		end
-	end
-	self.sortKeys[previous].tiebreaker = "name"
-	PLAYER_INVENTORY:ChangeSort("age", INVENTORY_BACKPACK, true)
-	PLAYER_INVENTORY:ChangeSort("age", INVENTORY_BANK, true)
-	PLAYER_INVENTORY:ChangeSort("age", INVENTORY_GUILD_BANK, true)
-end
-
-function LibSort:SetKeyOrder(first, previous, data)
-	if not first then
-		first = true
-		self.sortKeys["age"].tiebreaker = data.key
-		self.sortKeys["age"].reverseTiebreakerSortOrder = nil
-	else
-		if previous then
-			self.sortKeys[previous].tiebreaker = data.key
-		end
-	end
-	return first, data.key
-end
-
-function LibSort:ProcessInventory(inventoryType)
-	local container = inventoryTypes[inventoryType]
-	if not container then return end
-	for i, slot in ipairs(container.data) do
-		local slotType, bag, index = slot.data.slotType, slot.data.bagId, slot.data.slotIndex
-		for addon, callbacks in pairs(self.RegisteredCallbacks) do
-			for name, data in pairs(callbacks) do
-				if not slot.data[data.key] then
-					slot.data[data.key] = data.func(slotType, bag, index) or defaultType[data.dataType]
-				end
-			end
-		end
-	end
-end
-
-function LibSort:Loaded(event, name)
-    if name ~= "ZO_Ingame" then return end
-
-    self.savedVars = ZO_SavedVars:New("ZO_Ingame_SavedVariables", 1, "LibSort")
-    EVENT_MANAGER:UnregisterForEvent("LibSortLoaded", EVENT_ADD_ON_LOADED)
-
-	ZO_PreHook(PLAYER_INVENTORY, "ApplySort", function(self, inventoryType) LibSort:ProcessInventory(inventoryType) end)
-	zo_callLater(function() LIBSORT:SetupArrows() end, 3000)
-end
-
-EVENT_MANAGER:RegisterForEvent("LibSortLoaded", EVENT_ADD_ON_LOADED, function(...) LibSort:Loaded(...) end)
-
---------- API ---------
-
-function LibSort:Unregister(addonName, name)
-	if not name then
-		self.RegisteredCallbacks[addonName] = nil
-		self.DefaultOrdersHigh[addonName] = nil
-		self.DefaultOrdersLow[addonName] = nil
-		return
-	end
-
-	if self.RegisteredCallbacks[addonName] then
-		self.RegisteredCallbacks[addonName][name] = nil
-	end
-end
-
-function LibSort:Register(addonName, name, desc, key, func, dataType)
-	if not dataType then dataType = "isNumeric" end
-	if not self.RegisteredCallbacks[addonName] then self.RegisteredCallbacks[addonName] = {} table.insert(self.AddonOrder, addonName) end
-	self.RegisteredCallbacks[addonName][name] = {key = makePrefix(addonName)..key, func = func, desc = desc, dataType = dataType}
-	if not self.DefaultOrdersHigh[addonName] then self.DefaultOrdersHigh[addonName] = {} end
-	table.insert(self.DefaultOrdersHigh[addonName], name)
-	self:InjectKeys()
-end
-
-function LibSort:RegisterNumeric(addonName, name, desc, key, func)
-	self:Register(addonName, name, desc, key, func, "isNumeric")
-end
-
-function LibSort:RegisterBoolean(addonName, name, desc, key, func)
-	self:Register(addonName, name, desc, key, func, "isBoolean")
-end
-
-function LibSort:RegisterString(addonName, name, desc, key, func)
-	self:Register(addonName, name, desc, key, func, "isString")
-end
-
-function LibSort:RegisterDefaultOrder(addonName, keyTableLow, keyTableHigh)
-	self.DefaultOrdersHigh[addonName] = keyTableHigh
-	self.DefaultOrdersLow[addonName] = keyTableLow
-	self:ReOrderKeys()
-end
-
-function LibSort:SetDebugging(flag)
-	self.isDebugging = flag
-end
\ No newline at end of file
diff --git a/Libs/LibSort/LibStub.lua b/Libs/LibSort/LibStub.lua
deleted file mode 100644
index bfd96df..0000000
--- a/Libs/LibSort/LibStub.lua
+++ /dev/null
@@ -1,34 +0,0 @@
--- LibStub is a simple versioning stub meant for use in Libraries.  http://www.wowace.com/wiki/LibStub for more info
--- LibStub is hereby placed in the Public Domain Credits: Kaelten, Cladhaire, ckknight, Mikk, Ammo, Nevcairiel, joshborke
--- LibStub developed for World of Warcraft by above members of the WowAce community.
--- Ported to Elder Scrolls Online by Seerah
-
-local LIBSTUB_MAJOR, LIBSTUB_MINOR = "LibStub", 1  -- NEVER MAKE THIS AN SVN REVISION! IT NEEDS TO BE USABLE IN ALL REPOS!
-local LibStub = _G[LIBSTUB_MAJOR]
-
-local strformat = string.format
-if not LibStub or LibStub.minor < LIBSTUB_MINOR then
-	LibStub = LibStub or {libs = {}, minors = {} }
-	_G[LIBSTUB_MAJOR] = LibStub
-	LibStub.minor = LIBSTUB_MINOR
-
-	function LibStub:NewLibrary(major, minor)
-		assert(type(major) == "string", "Bad argument #2 to `NewLibrary' (string expected)")
-		minor = assert(tonumber(zo_strmatch(minor, "%d+")), "Minor version must either be a number or contain a number.")
-
-		local oldminor = self.minors[major]
-		if oldminor and oldminor >= minor then return nil end
-		self.minors[major], self.libs[major] = minor, self.libs[major] or {}
-		return self.libs[major], oldminor
-	end
-
-	function LibStub:GetLibrary(major, silent)
-		if not self.libs[major] and not silent then
-			error(("Cannot find a library instance of %q."):strformat(tostring(major)), 2)
-		end
-		return self.libs[major], self.minors[major]
-	end
-
-	function LibStub:IterateLibraries() return pairs(self.libs) end
-	setmetatable(LibStub, { __call = LibStub.GetLibrary })
-end
diff --git a/Libs/LibSort/README.md b/Libs/LibSort/README.md
deleted file mode 100644
index f1fb4ef..0000000
--- a/Libs/LibSort/README.md
+++ /dev/null
@@ -1,133 +0,0 @@
-#LibSort 1.0
-
-**Table of Contents**
-- [Rationale](#user-content-rationale)
-    - [API](#user-content-api)
-        - [Register](#user-content-register)
-        - [RegisterNumeric](#user-content-registernumeric)
-        - [RegisterBoolean](#user-content-registerboolean)
-        - [RegisterString](#user-content-registerstring)
-        - [Unregister](#user-content-unregister)
-        - [RegisterDefaultOrder](#user-content-registerdefaultorder)
-
-##Rationale
-
-Currently, the way ESO sorts items is essentially by column, you have a data point for each item, eg, **name** and you sort the list of objects by that data point.
-
-One thing that this default sorting mechanism offers, however, is a tiebreaker option. If we're sorting by **name** and a tiebreaker is required, because we are comparing two items with the same name, it falls to the tiebreaker datapoint to determine order of result, eg **stackSize**
-
-Now the general sorting of items in the real world doesn't just fall to a single data point, or two. It generally requires a series of different datapoints to sort by, and we can take advantage of this 'tiebreaker' to
-chain together lists of different datapoints to sort by. So we can sort by **Name**, then by **StackSize**, then by **SlotId**.
-
-That's well and fine for what's existing in the current set of datapoints, however we have access to a lot more information about the item than is currently being stored.
-
-To do this, however, we need to inject the required datapoints into the list object so that it has the required information to process the sort order as ascertained by our adjustment of how the tiebreakers chain together.
-
-First we prehook ChangeSort. This will allow us to pick out the inventory being looked at, process the entries in there to inject the appropriate information, and then pass back to the original ChangeSort for the actual sorting.
-
-We now have information about the item, where it's from (*slotType*) and where it is (*bag* and *index*)
-
-And thanks to the new API, we have two new functions that will return information about the item in regards to what sort of weapon or armour it is.
-
-So as an example, we'll use the new Weapon info function to inject data to allow the game to sort by weapontype
-
-	GetItemWeaponType(link)
-
-is the function we're using to obtain the information required.
-
-Or at least through
-
-	local link = GetItemLink(bag, index)
-	local weaponType = GetItemWeaponType(link)
-
-If we then inject this information into the data object
-
-	control:GetParent().dataEntry.data.weaponType = weaponType
-
-we can then include another entry into the sortKeys for default header
-
-	local sortKeys = ZO_Inventory_GetDefaultHeaderSortKeys()
-	sortKeys["weaponType"] = {isNumeric = true, tiebreaker = "name"}
-
-and we will end up sorting by the type of weapon returned by that function. (Note that as it's a pure number, and not necessarily in the order you may want, you'll have to actually adjust the real value of the datapoint to something more suitable)
-
----
-
-In any case, now that we know what we need to do, this library should do most of the heavy lifting for you. Chances are I'll have to give it it's own Settings panel so people can reorder the sort order as they wish, but you should be able to register your addon to allow data injection and process the index/bag combinations to store whatever datapoints you want.
-
----
-##API
-
-###Register
-This will register a numeric sortKey
-
-    LibSort:Register(addonName, name, desc, key, func)
-
-(Note this is an alias for **RegisterNumeric** and will assume a numeric sortKey)
-- *addonName* - The name of the registering addon
-    + Example: "Item Sort"
-- *name* - A unique registration name
-    + Example: "ISWeaponSort"
-- *desc* - A description of how the sort applies
-    + Example: "Will sort by Weapon Type"
-- *key* - A unique key used to identify the datapoint
-    + Example: "weaponType"
-- *func* - The function to call to retrieve the sort value. Function signature **needs** to be (slotType, bag, index)
-    + Example: ItemSort.WeaponSort
-
-###RegisterNumeric
-This will register a numeric sortKey
-
-    LibSort:RegisterNumeric(addonName, name, desc, key, func)
-Arguments as above
-
-###RegisterBoolean
-This will register a boolean sortKey
-
-    LibSort:RegisterBoolean(addonName, name, desc, key, func)
-Arguments as above
-
-###RegisterString
-This will register a string sortKey
-
-    LibSort:RegisterString(addonName, name, desc, key, func)
-Arguments as above
-
-###Unregister
-This will unregister a sortKey registration
-
-    LibSort:Unregister(addonName, name)
-
-- *addonName* - The name of the registering addon
-    + Example: "Item Sort"
-- *name* - A unique registration name
-    + Example: "ISWeaponSort"
-
-###RegisterDefaultOrder
-Your addon may have multiple registrations, and this function will allow you to indicate what order you want them in as a block. Call this function *after* you have completed your registrations
-
-There are two tables you can pass in, for *low level* and *high level* keys.
-
-- Low level keys are values that are unique to certain types of items, like weaponType, and armourType.
-- High level keys are those linked to values that are common across larger swathes of items, like item level, or name.
-
-
-If you separate your keys in the two tables, LibSort will first chain all the low level keys before all high level keys, so that multiple addons can apply sort orders without getting cut off. (It's highly recommended that you split keys if you use high level definitions)
-
-Default behaviour, by not using this API call will be order of registration at a high level to avoid breaking other registrations, and thus may not work as you expect, so make sure you set it.
-
-    LibSort:RegisterDefaultOrder(addonName, keyTableLow, keyTableHigh)
-
-- *addonName* -The name of the registering addon
-    + Example: "Item Sort"
-- *keyTableLow* - A table indicating the order of low level sortKeys for this addon
-    + Example: {"weaponType", "armorEquipType", "armorType"}
-- *keyTableHigh* - **Optional** A table indicating of the order of high level sortKeys for this addon
-    + Example: {"subjectiveItemLevel"}
-
-###SetDebugging
-Set the debug flag for the library. Not actually used atm, but for future stuff.
-
-    LibSort:SetDebugging(flag)
-
-- *flag* - a boolean indicating if you wish to have debug messages
\ No newline at end of file
diff --git a/Libs/LibStub/LibStub.lua b/Libs/LibStub/LibStub.lua
deleted file mode 100644
index bfd96df..0000000
--- a/Libs/LibStub/LibStub.lua
+++ /dev/null
@@ -1,34 +0,0 @@
--- LibStub is a simple versioning stub meant for use in Libraries.  http://www.wowace.com/wiki/LibStub for more info
--- LibStub is hereby placed in the Public Domain Credits: Kaelten, Cladhaire, ckknight, Mikk, Ammo, Nevcairiel, joshborke
--- LibStub developed for World of Warcraft by above members of the WowAce community.
--- Ported to Elder Scrolls Online by Seerah
-
-local LIBSTUB_MAJOR, LIBSTUB_MINOR = "LibStub", 1  -- NEVER MAKE THIS AN SVN REVISION! IT NEEDS TO BE USABLE IN ALL REPOS!
-local LibStub = _G[LIBSTUB_MAJOR]
-
-local strformat = string.format
-if not LibStub or LibStub.minor < LIBSTUB_MINOR then
-	LibStub = LibStub or {libs = {}, minors = {} }
-	_G[LIBSTUB_MAJOR] = LibStub
-	LibStub.minor = LIBSTUB_MINOR
-
-	function LibStub:NewLibrary(major, minor)
-		assert(type(major) == "string", "Bad argument #2 to `NewLibrary' (string expected)")
-		minor = assert(tonumber(zo_strmatch(minor, "%d+")), "Minor version must either be a number or contain a number.")
-
-		local oldminor = self.minors[major]
-		if oldminor and oldminor >= minor then return nil end
-		self.minors[major], self.libs[major] = minor, self.libs[major] or {}
-		return self.libs[major], oldminor
-	end
-
-	function LibStub:GetLibrary(major, silent)
-		if not self.libs[major] and not silent then
-			error(("Cannot find a library instance of %q."):strformat(tostring(major)), 2)
-		end
-		return self.libs[major], self.minors[major]
-	end
-
-	function LibStub:IterateLibraries() return pairs(self.libs) end
-	setmetatable(LibStub, { __call = LibStub.GetLibrary })
-end
diff --git a/MrPlow.lua b/MrPlow.lua
deleted file mode 100644
index be919d6..0000000
--- a/MrPlow.lua
+++ /dev/null
@@ -1,136 +0,0 @@
-MrPlow = {}
-
-local LibSort = LibStub("LibSort-1.0", 1)
-
-local watchedSlots = {[SLOT_TYPE_GUILD_BANK_ITEM] = true, [SLOT_TYPE_ITEM] = true, [SLOT_TYPE_BANK_ITEM] = true }
-
-local IS_WEAPON = { [EQUIP_TYPE_MAIN_HAND] = true, [EQUIP_TYPE_OFF_HAND] = true, [EQUIP_TYPE_ONE_HAND] = true, [EQUIP_TYPE_TWO_HAND] = true}
-
-local WEAPON_ORDER = {
-	[WEAPONTYPE_AXE] =  1,
-	[WEAPONTYPE_DAGGER] =  2,
-	[WEAPONTYPE_HAMMER] = 3,
-	[WEAPONTYPE_SWORD] = 4,
-
-	[WEAPONTYPE_TWO_HANDED_AXE] = 5,
-	[WEAPONTYPE_TWO_HANDED_HAMMER] = 6,
-	[WEAPONTYPE_TWO_HANDED_SWORD] = 7,
-
-	[WEAPONTYPE_BOW] = 8,
-
-	[WEAPONTYPE_FIRE_STAFF] = 9,
-	[WEAPONTYPE_FROST_STAFF] =  10,
-	[WEAPONTYPE_LIGHTNING_STAFF] = 11,
-	[WEAPONTYPE_HEALING_STAFF] = 12,
-
-	[WEAPONTYPE_NONE] = 13,
-	[WEAPONTYPE_RUNE] = 14,
-	[WEAPONTYPE_SHIELD] = 15
-}
-
-local ARMOUR_ORDER = {
-	[EQUIP_TYPE_HEAD] = 1,
-	[EQUIP_TYPE_NECK] = 2,
-	[EQUIP_TYPE_SHOULDERS] = 3,
-	[EQUIP_TYPE_CHEST] = 4,
-	[EQUIP_TYPE_HAND] = 5,
-	[EQUIP_TYPE_RING] = 6,
-	[EQUIP_TYPE_WAIST] = 7,
-	[EQUIP_TYPE_LEGS] = 8,
-	[EQUIP_TYPE_FEET] = 9,
-
-	[EQUIP_TYPE_MAIN_HAND] = 10,
-	[EQUIP_TYPE_OFF_HAND] = 11,
-	[EQUIP_TYPE_ONE_HAND] = 12,
-	[EQUIP_TYPE_TWO_HAND] = 13,
-	[EQUIP_TYPE_COSTUME] = 14,
-}
-local ITEM_TYPE_ORDER = {
-	[ITEMTYPE_WEAPON] = 					1,
-	[ITEMTYPE_ARMOR] = 						2,
-	[ITEMTYPE_FOOD] = 						3,
-	[ITEMTYPE_DRINK] = 						4,
-	[ITEMTYPE_RECIPE] =  					5,
-	[ITEMTYPE_POTION] =  					6,
-	[ITEMTYPE_POISON] =   					7,
-	[ITEMTYPE_SCROLL] = 		  			8,
-	[ITEMTYPE_CONTAINER] = 		  			9,
-	[ITEMTYPE_AVA_REPAIR] =   				10,
-	[ITEMTYPE_BLACKSMITHING_BOOSTER] = 		11,
-	[ITEMTYPE_BLACKSMITHING_RAW_MATERIAL] = 12,
-	[ITEMTYPE_BLACKSMITHING_MATERIAL] = 	13,
-	[ITEMTYPE_CLOTHIER_BOOSTER] = 			14,
-	[ITEMTYPE_CLOTHIER_RAW_MATERIAL] = 		15,
-	[ITEMTYPE_CLOTHIER_MATERIAL] = 			16,
-	[ITEMTYPE_WOODWORKING_BOOSTER] = 		17,
-	[ITEMTYPE_WOODWORKING_RAW_MATERIAL] = 	18,
-	[ITEMTYPE_WOODWORKING_MATERIAL] = 		19,
-	[ITEMTYPE_ALCHEMY_BASE] = 				20,
-	[ITEMTYPE_REAGENT] = 					21,
-	[ITEMTYPE_ENCHANTING_RUNE] =   			22,
-	[ITEMTYPE_INGREDIENT] =   				23,
-	[ITEMTYPE_STYLE_MATERIAL] =   			24,
-	[ITEMTYPE_GLYPH_WEAPON] =   			25,
-	[ITEMTYPE_GLYPH_ARMOR] =   				26,
-	[ITEMTYPE_GLYPH_JEWELRY] =   			27,
-	[ITEMTYPE_SOUL_GEM] =   				28,
-	[ITEMTYPE_SIEGE] =   					29,
-	[ITEMTYPE_LURE] = 		  				30,
-	[ITEMTYPE_TRASH] = 	  					31,
-	[ITEMTYPE_TROPHY] =   					32,
-	[ITEMTYPE_LOCKPICK] =					33,
-	[ITEMTYPE_ARMOR_TRAIT] =   				34,
-	[ITEMTYPE_WEAPON_TRAIT] =   			35,
-}
-
-function MrPlow:Loaded(...)
-	local eventCode, addonName = ...
-	if addonName ~= "MrPlow" then return end
-
-	LibSort:Register("Item Sort", "Item Type", "The type of item", "itemType", function(...) return MrPlow:ItemType(...) end)
-	LibSort:Register("Item Sort", "Weapon Type", "The type of weapon", "weaponType", function(...) return MrPlow:WeaponType(...) end)
-	LibSort:Register("Item Sort", "Armour Equip Type", "The type of armour", "armorEquipType", function(...) return MrPlow:ArmourEquipType(...) end)
-	LibSort:Register("Item Sort", "Armour Type", "The weight of armour", "armorType", function(...) return MrPlow:ArmorType(...) end)
-
-	LibSort:Register("Item Sort", "Subjective Level", "The calculated subjective level", "subjectiveLevel", function(slotType, bag, index) return GetItemLevel(bag, index) end)
-
-	LibSort:RegisterDefaultOrder("Item Sort", {"Item Type", "Weapon Type", "Armour Equip Type", "Armour Type"}, {"Subjective Level"})
-end
-
-function MrPlow:ItemType(slotType, bag, index)
-	if watchedSlots[slotType] then
-		return ITEM_TYPE_ORDER[GetItemType(bag, index)] or 100
-	end
-end
-
-function MrPlow:WeaponType(slotType, bag, index)
-	if watchedSlots[slotType] then
-		local _, _, _, _, _, equipType = GetItemInfo(bag, index)
-		if equipType > 0 then
-			if IS_WEAPON[equipType] then
-				return WEAPON_ORDER[GetItemWeaponType(GetItemLink(bag, index))]
-			end
-		end
-	end
-end
-
-function MrPlow:ArmorType(slotType, bag, index)
-	if watchedSlots[slotType] then
-		local _, _, _, _, _, equipType = GetItemInfo(bag, index)
-		if equipType <= 9 and equipType > 0  then
-			return GetItemArmorType(GetItemLink(bag, index))
-		end
-	end
-end
-
-function MrPlow:ArmourEquipType(slotType, bag, index)
-	if watchedSlots[slotType] then
-		local _, _, _, _, _, equipType = GetItemInfo(bag, index)
-		return ARMOUR_ORDER[equipType]
-	end
-end
-
-
-
-EVENT_MANAGER:RegisterForEvent("MrPlowLoaded", EVENT_ADD_ON_LOADED, function(...) MrPlow:Loaded(...) end)
-
\ No newline at end of file
diff --git a/MrPlow.txt b/MrPlow.txt
deleted file mode 100644
index 8cf80c0..0000000
--- a/MrPlow.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-## Title: MrPlow
-## Author: Wobin
-## Version: @project-version@
-## APIVersion: 100004
-
-Libs/LibStub/LibStub-1.0.lua
-Libs/LibSort/LibSort-1.0.lua
-
-MrPlow.lua