02/03/18, 01:28 PM | #1 |
[outdated] Need for an API function GenerateItemLink()
Hello.
I believe there is a need for a function GenerateItemLink(...) that would take all of the necessary info and return an itemLink. The parameters could be:
This would support these ItemTypes: ITEMTYPE_ARMOR (params 1-10) ITEMTYPE_WEAPON (params 1-10) ITEMTYPE_ARMOR_TRAIT (params 1 & 8) ITEMTYPE_WEAPON_TRAIT (params 1 & 8) ITEMTYPE_BLACKSMITHING_BOOSTER (params 1 & 7) ITEMTYPE_BLACKSMITHING_MATERIAL (params 1-3) ITEMTYPE_BLACKSMITHING_RAW_MATERIAL (params 1-3) ITEMTYPE_CLOTHIER_BOOSTER (params 1 & 7) ITEMTYPE_CLOTHIER_MATERIAL (params 1-3) ITEMTYPE_CLOTHIER_RAW_MATERIAL (params 1-3) ITEMTYPE_WOODWORKING_BOOSTER (params 1 & 7) ITEMTYPE_WOODWORKING_MATERIAL (params 1-3) ITEMTYPE_WOODWORKING_RAW_MATERIAL (params 1-3) ITEMTYPE_ENCHANTING_RUNE_ASPECT (params 1 & 7) ITEMTYPE_ENCHANTING_RUNE_ESSENCE (params 1 & 11) ITEMTYPE_ENCHANTING_RUNE_POTENCY (params 1-3 & 11) ITEMTYPE_GLYPH_ARMOR (params 1-3 & 7 & 11) ITEMTYPE_GLYPH_JEWELRY (params 1-3 & 7 & 11) ITEMTYPE_GLYPH_WEAPON (params 1-3 & 7 & 11) I believe the use-cases are many and varied. As for myself, I am writing an addon to facilitate the crafting of equipment for other people, and I would like my addon to be able to mail a confirmation/"receipt" containing the actual item links of the equipment that the "customer" requested -- before the addon user actually starts crafting the requested items. Also, I want my addon to allow for the "customer" to provide their own mats, and it would be much better if my addon could mail the "customer" the exact item links of what mats they need to provide, rather than just the text name of the mat. (Non-crafters may see "send me 65 Rubidite Ingots" and instead send 65 Rubidite Ore, because they don't know the difference.) I know that TraitBuddy and TinyDog's Crafting Calculator could also benefit greatly from this function, because right now, they are both hard-coding ItemID's and ItemLinks, and we all know that ItemID's can change after any major patch. I also believe Dolgubon might like this function for writ crafter and set crafter. |
|
02/03/18, 01:53 PM | #2 |
First of all, I imagine the chances of getting this are next to nil.
If we do, it would probably be multiple functions, E.g. GenerateEquipmentItemLink. Having a constant to determine different behavior of a function is generally not ideal. For sending item links of what is required, you could chcch out my set crafter, which allows a user to put itemlinks of the required mats into the chat. (Using my LibLazyCrafting, which you might want to use for the crafting anyway) I am actually also in the process of being able to create arbitrary item set itemlinks too - thankfully without a 20kb data file. I realize that itemids might change. Howrver, they generally do not change between patches, as far as I'm aware, and so it is reasonably safe to assume they won't. |
|
02/03/18, 02:11 PM | #3 | |
Hard-coding ItemID's is totally unacceptable. |
||
02/03/18, 02:20 PM | #4 |
02/03/18, 02:21 PM | #5 |
It is acceptable though, at least as long as you maintain it, which admittedly might not happen. It isn't ideal of course, but it is usable, and unless we get a generator relink function (again, imo unlikely) itemids are the only way.
|
|
02/03/18, 02:54 PM | #6 |
You didn't even listed 2% of possibilities. Don't even dream of that.
Hint : SPECIALIZED_ITEMTYPE_ADDITIVE SPECIALIZED_ITEMTYPE_ARMOR_BOOSTER SPECIALIZED_ITEMTYPE_ARMOR_TRAIT SPECIALIZED_ITEMTYPE_ARMOR SPECIALIZED_ITEMTYPE_AVA_REPAIR SPECIALIZED_ITEMTYPE_BLACKSMITHING_BOOSTER SPECIALIZED_ITEMTYPE_BLACKSMITHING_MATERIAL SPECIALIZED_ITEMTYPE_BLACKSMITHING_RAW_MATERIAL SPECIALIZED_ITEMTYPE_CLOTHIER_BOOSTER SPECIALIZED_ITEMTYPE_CLOTHIER_MATERIAL SPECIALIZED_ITEMTYPE_CLOTHIER_RAW_MATERIAL SPECIALIZED_ITEMTYPE_COLLECTIBLE_MONSTER_TROPHY SPECIALIZED_ITEMTYPE_COLLECTIBLE_RARE_FISH SPECIALIZED_ITEMTYPE_CONTAINER_EVENT SPECIALIZED_ITEMTYPE_CONTAINER SPECIALIZED_ITEMTYPE_COSTUME SPECIALIZED_ITEMTYPE_CROWN_ITEM SPECIALIZED_ITEMTYPE_CROWN_REPAIR SPECIALIZED_ITEMTYPE_DISGUISE SPECIALIZED_ITEMTYPE_DRINK_ALCOHOLIC SPECIALIZED_ITEMTYPE_DRINK_CORDIAL_TEA SPECIALIZED_ITEMTYPE_DRINK_DISTILLATE SPECIALIZED_ITEMTYPE_DRINK_LIQUEUR SPECIALIZED_ITEMTYPE_DRINK_TEA SPECIALIZED_ITEMTYPE_DRINK_TINCTURE SPECIALIZED_ITEMTYPE_DRINK_TONIC SPECIALIZED_ITEMTYPE_DRINK_UNIQUE SPECIALIZED_ITEMTYPE_DYE_STAMP SPECIALIZED_ITEMTYPE_ENCHANTING_RUNE_ASPECT SPECIALIZED_ITEMTYPE_ENCHANTING_RUNE_ESSENCE SPECIALIZED_ITEMTYPE_ENCHANTING_RUNE_POTENCY SPECIALIZED_ITEMTYPE_ENCHANTMENT_BOOSTER SPECIALIZED_ITEMTYPE_FISH SPECIALIZED_ITEMTYPE_FLAVORING SPECIALIZED_ITEMTYPE_FOOD_ENTREMET SPECIALIZED_ITEMTYPE_FOOD_FRUIT SPECIALIZED_ITEMTYPE_FOOD_GOURMET SPECIALIZED_ITEMTYPE_FOOD_MEAT SPECIALIZED_ITEMTYPE_FOOD_RAGOUT SPECIALIZED_ITEMTYPE_FOOD_SAVOURY SPECIALIZED_ITEMTYPE_FOOD_UNIQUE SPECIALIZED_ITEMTYPE_FOOD_VEGETABLE SPECIALIZED_ITEMTYPE_FURNISHING_CRAFTING_STATION SPECIALIZED_ITEMTYPE_FURNISHING_LIGHT SPECIALIZED_ITEMTYPE_FURNISHING_MATERIAL_ALCHEMY SPECIALIZED_ITEMTYPE_FURNISHING_MATERIAL_BLACKSMITHING SPECIALIZED_ITEMTYPE_FURNISHING_MATERIAL_CLOTHIER SPECIALIZED_ITEMTYPE_FURNISHING_MATERIAL_ENCHANTING SPECIALIZED_ITEMTYPE_FURNISHING_MATERIAL_PROVISIONING SPECIALIZED_ITEMTYPE_FURNISHING_MATERIAL_WOODWORKING SPECIALIZED_ITEMTYPE_FURNISHING_ORNAMENTAL SPECIALIZED_ITEMTYPE_FURNISHING_SEATING SPECIALIZED_ITEMTYPE_FURNISHING_TARGET_DUMMY SPECIALIZED_ITEMTYPE_GLYPH_ARMOR SPECIALIZED_ITEMTYPE_GLYPH_JEWELRY SPECIALIZED_ITEMTYPE_GLYPH_WEAPON SPECIALIZED_ITEMTYPE_INGREDIENT_ALCOHOL SPECIALIZED_ITEMTYPE_INGREDIENT_DRINK_ADDITIVE SPECIALIZED_ITEMTYPE_INGREDIENT_FOOD_ADDITIVE SPECIALIZED_ITEMTYPE_INGREDIENT_FRUIT SPECIALIZED_ITEMTYPE_INGREDIENT_MEAT SPECIALIZED_ITEMTYPE_INGREDIENT_RARE SPECIALIZED_ITEMTYPE_INGREDIENT_TEA SPECIALIZED_ITEMTYPE_INGREDIENT_TONIC SPECIALIZED_ITEMTYPE_INGREDIENT_VEGETABLE SPECIALIZED_ITEMTYPE_ITERATION_BEGIN SPECIALIZED_ITEMTYPE_ITERATION_END SPECIALIZED_ITEMTYPE_LOCKPICK SPECIALIZED_ITEMTYPE_LURE SPECIALIZED_ITEMTYPE_MASTER_WRIT SPECIALIZED_ITEMTYPE_MOUNT SPECIALIZED_ITEMTYPE_NONE SPECIALIZED_ITEMTYPE_PLUG SPECIALIZED_ITEMTYPE_POISON_BASE SPECIALIZED_ITEMTYPE_POISON SPECIALIZED_ITEMTYPE_POTION_BASE SPECIALIZED_ITEMTYPE_POTION SPECIALIZED_ITEMTYPE_RACIAL_STYLE_MOTIF_BOOK SPECIALIZED_ITEMTYPE_RACIAL_STYLE_MOTIF_CHAPTER SPECIALIZED_ITEMTYPE_RAW_MATERIAL SPECIALIZED_ITEMTYPE_REAGENT_ANIMAL_PART SPECIALIZED_ITEMTYPE_REAGENT_FUNGUS SPECIALIZED_ITEMTYPE_REAGENT_HERB SPECIALIZED_ITEMTYPE_RECIPE_ALCHEMY_FORMULA_FURNISHING SPECIALIZED_ITEMTYPE_RECIPE_BLACKSMITHING_DIAGRAM_FURNISHING SPECIALIZED_ITEMTYPE_RECIPE_CLOTHIER_PATTERN_FURNISHING SPECIALIZED_ITEMTYPE_RECIPE_ENCHANTING_SCHEMATIC_FURNISHING SPECIALIZED_ITEMTYPE_RECIPE_PROVISIONING_DESIGN_FURNISHING SPECIALIZED_ITEMTYPE_RECIPE_PROVISIONING_STANDARD_DRINK SPECIALIZED_ITEMTYPE_RECIPE_PROVISIONING_STANDARD_FOOD SPECIALIZED_ITEMTYPE_RECIPE_WOODWORKING_BLUEPRINT_FURNISHING SPECIALIZED_ITEMTYPE_SIEGE_BALLISTA SPECIALIZED_ITEMTYPE_SIEGE_BATTLE_STANDARD SPECIALIZED_ITEMTYPE_SIEGE_CATAPULT SPECIALIZED_ITEMTYPE_SIEGE_GRAVEYARD SPECIALIZED_ITEMTYPE_SIEGE_MONSTER SPECIALIZED_ITEMTYPE_SIEGE_OIL SPECIALIZED_ITEMTYPE_SIEGE_RAM SPECIALIZED_ITEMTYPE_SIEGE_TREBUCHET SPECIALIZED_ITEMTYPE_SIEGE_UNIVERSAL SPECIALIZED_ITEMTYPE_SOUL_GEM SPECIALIZED_ITEMTYPE_SPELLCRAFTING_TABLET SPECIALIZED_ITEMTYPE_SPICE SPECIALIZED_ITEMTYPE_STYLE_MATERIAL SPECIALIZED_ITEMTYPE_TABARD SPECIALIZED_ITEMTYPE_TOOL SPECIALIZED_ITEMTYPE_TRASH SPECIALIZED_ITEMTYPE_TREASURE SPECIALIZED_ITEMTYPE_TROPHY_KEY_FRAGMENT SPECIALIZED_ITEMTYPE_TROPHY_KEY SPECIALIZED_ITEMTYPE_TROPHY_MATERIAL_UPGRADER SPECIALIZED_ITEMTYPE_TROPHY_MUSEUM_PIECE SPECIALIZED_ITEMTYPE_TROPHY_RECIPE_FRAGMENT SPECIALIZED_ITEMTYPE_TROPHY_RUNEBOX_FRAGMENT SPECIALIZED_ITEMTYPE_TROPHY_SCROLL SPECIALIZED_ITEMTYPE_TROPHY_SURVEY_REPORT SPECIALIZED_ITEMTYPE_TROPHY_TREASURE_MAP SPECIALIZED_ITEMTYPE_WEAPON_BOOSTER SPECIALIZED_ITEMTYPE_WEAPON_TRAIT SPECIALIZED_ITEMTYPE_WEAPON SPECIALIZED_ITEMTYPE_WOODWORKING_BOOSTER SPECIALIZED_ITEMTYPE_WOODWORKING_MATERIAL SPECIALIZED_ITEMTYPE_WOODWORKING_RAW_MATERIAL PS: Each one can have from 0 to 15 different parameters. Don't forget one of the rules of the project manager. " If we lived without, why adding it now ?" Last edited by Ayantir : 02/03/18 at 02:57 PM. |
|
02/04/18, 08:46 AM | #7 |
Ayantir, you are not telling me anything I don't already know. There's no way for API function(s) to generate item links for ALL of those item types you listed. That's why my proposal focused on the doable ones which I listed.
Also, Ayantir, you are violating the 4th rule of this sub-forum: Be Nice and Constructive. You are being condescending and destructive. I thought the purpose of the Wish-List sub-forum was for Chip / ZoS to evaluate the proposals and accept or reject. Why would fellow add-on authors reject a proposal right off the bat without even giving ZoS a chance to give their thoughts??? |
|
02/04/18, 03:58 PM | #8 |
You can technically do this already by creating a string table and concatenating it.
For context use: https://wiki.esoui.com/ZO_LinkHandle...ITEM_LINK_TYPE and with an existing itemLink: local parts = {ZO_LinkHandler_ParseLink(itemLink)} d(parts) Code:
function MyAddon.GenerateItemLink(stringVar1, stringVar2, ...) parts = { [1] = stringVar1 [2] = stringVar2 -- etc for each value... } parts = table.concat(parts, ":"):sub(2, -1) itemLink = strformat("|H<<1>>|h|h", parts) return itemLink end Last edited by ArtOfShred : 02/04/18 at 04:13 PM. |
|
02/07/18, 04:13 AM | #9 |
It would be sweet to have that well-documented at one point in the code - perhaps with a lengthy comment explaining the single bits and use-cases. That way, we'd have a single point of access that we could turn to when API changes break our code or when things about the itemLinks change.
|
|
ESOUI » Developer Discussions » Wish List » [outdated] Need for an API function GenerateItemLink() |
«
Previous Thread
|
Next Thread
»
|
Display Modes |
Linear Mode |
Switch to Hybrid Mode |
Switch to Threaded Mode |
|
|