Thread Tools Display Modes
06/07/14, 07:02 AM   #1
zgrssd
AddOn Author - Click to view addons
Join Date: May 2014
Posts: 280
announcing CCDR (Cross Charactar Data Repository)

I have been think for a while now about making this, and finally started some work.

Description:
Addons are incapable of accessing your other characters data directly, But they are able to store data of one Character in acountwide Saved Variable so it has something to go on when logged in under another Character of the same account.
CCDR (Cross Character Data Repostiory)'s job is to do this collection in a centralised place and give other addons the data without need of reading and storing it themself.
This avoids having data overstored/events oversubscribed and speeds up development of addons that want to show Cross Character data without delving into the details of getting the data.
It will also allow the user to set detailed filters on the data on account and character level. Addons are asked to respect these filters, can set these filters (on user request) but are not required too do either.

Global Settings and settings page will allow to define wich data should be saved (or not) and delete character data (this must be done manually).

Data that will eventually be availible accountwide via CCDR:
List of Players
-> A list of all Characters Names on this account. Required for all other functions, so I might as well expose it.

Horse Data (feeding timers, breed, current values)
-> Global and Character level Filter by horse breed

Research (wich traits are known/unknown/currently in research at each Character)
-> Global and Character "Has Traits" filter per Item class (if you researched something by accident, it does not clutter up your listings of "who knows what")
-> Global and Character "Wants Traits" filter per item class (so you know how wants to learn traits for that item class)
-> Filters will be for the levels "All Blacksmithing" and "specific blacksmithing line".

Hireling Timers (might need manual start of timer)
-> Global and Character Filters based on professsion

Full Character Data (class, level, spend atributes)

Skill Point data (Free points, morphs choosen, experience for each line/skill/morph)

Inventory Data (Everything there is to know (and knowable) about items in the inventory)
-> The bank, guildbank and store listings are already accountwide and thus left to the specific addon

Equipped gear data (Armor, Jewelry, both weapon sets)

Skill bars (5 skills + ultimate)


Current state:
Started work
Was able to indentify Character name and Horse Breeds with help from community.
First release will propably be only Character data, Horse data and some settings.

Last edited by zgrssd : 06/16/14 at 04:58 AM.
  Reply With Quote
06/07/14, 09:56 AM   #2
ingeniousclown
AddOn Author - Click to view addons
Join Date: Feb 2014
Posts: 122
You should leverage libraries where possible for this, especially in the places you haven't quite looked at yet.

For example, libResearch might make your life easier in dealing with traits.
  Reply With Quote
06/07/14, 02:14 PM   #3
mctaylor
 
mctaylor's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 21
InventoryInsight

Are you aware of Vicster's InventoryInsight? At first glance, it sounds like it already does what you are looking for, or perhaps it can be a starting point for you.
  Reply With Quote
06/08/14, 05:03 AM   #4
zgrssd
AddOn Author - Click to view addons
Join Date: May 2014
Posts: 280
Originally Posted by mctaylor View Post
Are you aware of Vicster's InventoryInsight? At first glance, it sounds like it already does what you are looking for, or perhaps it can be a starting point for you.
Vicsters was part of the reason I started this. It does allow cross discovery of items.
But it lacks filtering and if somebody else wanted to make cross discovery of inventory he would have to do the same work again or deal with how the data is stored/exposed by Vicsters, store the same data again, and the like...

So I do the work once, other peoples can focus on dispalying the data.
  Reply With Quote
06/08/14, 02:22 PM   #5
mctaylor
 
mctaylor's Avatar
AddOn Author - Click to view addons
Join Date: Mar 2014
Posts: 21
Libraries

Originally Posted by zgrssd View Post
Vicsters was part of the reason I started this. It does allow cross discovery of items.
But it lacks filtering and [...]

So I do the work once, other peoples can focus on displaying the data.
Okay. So it sounds like you want to make a cross-character (or account-wide) database library, or at least you want to make a library and perhaps your own addon that uses your CCDR library.

I would echo the idea of utilizing libResearch and libFilters if those fit your needs, as well as talking with Vicsters about making a library that you can both use. Most likely he will be willing to let you use his existing code as long as you acknowledge his contribution, and may be willing to update InventoryInsight to use your library, as it would reduce the amount of code he has to maintain.

Good luck.
  Reply With Quote
06/10/14, 04:18 PM   #6
Xanderificus
Join Date: Mar 2014
Posts: 7
You'll do better on searches if you spell "character" correctly.
  Reply With Quote
06/15/14, 08:32 AM   #7
zgrssd
AddOn Author - Click to view addons
Join Date: May 2014
Posts: 280
Originally Posted by Xanderificus View Post
You'll do better on searches if you spell "character" correctly.
Can't change thread titles after post, only the OP content.

Have not gotten very far so far. I does gather the horse data and has a list of characters, but have not gotten to implementing the filters or having the API calls to get the data.

Currently the horse data looks like this internally:
Code:
["Incendia Peterson"] = 
{
	[1] = 
	{
		["description"] = [[Impetuous and fierce, this all-purpose Imperial steed only yields to a capable master.]],
		["inventoryBonus"] = 1,
		["timeMs"] = 0,
		["name"] = [[Diamond]],
		["sellPrice"] = 1,
		["speedBonus"] = 16,
		["portraitTexture"] = [[/esoui/art/mountportraits/mountportait_horse_c.dds]],
		["CCDR_Date"] = 20140615,
		["maxInventoryBonus"] = 100,
		["staminaBonus"] = 10,
		["maxStaminaBonus"] = 100,
		["level"] = 3,
		["iconTexture"] = [[/esoui/art/icons/mounticon_horse_c.dds]],
		["breed"] = [[Imperial Horse]],
		["CCDR_Timestamp"] = 1402838926,
		["totalDurationMs"] = 0,
		["maxSpeedBonus"] = 100,
	},
	[2] = 
	{
		["description"] = [[Impetuous and fierce, this all-purpose Imperial steed only yields to a capable master.]],
		["inventoryBonus"] = 1,
		["timeMs"] = 0,
		["name"] = [[Diamond]],
		["sellPrice"] = 1,
		["speedBonus"] = 15,
		["portraitTexture"] = [[/esoui/art/mountportraits/mountportait_horse_c.dds]],
		["CCDR_Date"] = 20140615,
		["maxInventoryBonus"] = 100,
		["staminaBonus"] = 10,
		["maxStaminaBonus"] = 100,
		["level"] = 2,
		["iconTexture"] = [[/esoui/art/icons/mounticon_horse_c.dds]],
		["breed"] = [[Imperial Horse]],
		["CCDR_Timestamp"] = 1402838926,
		["totalDurationMs"] = 0,
		["maxSpeedBonus"] = 100,
	},
}
The output other addons get will propably also contain a "GlobalFilter" and "CharacterFilter" bool value per horse (untill I put it in, the value will be nil all the time so you can still implement checks for them being set).

The API will allow:
Getting the list of kown characters
Getting either the full list of Horse data or only the part for one for one specific character.
  Reply With Quote
06/15/14, 11:39 AM   #8
farangkao
 
farangkao's Avatar
AddOn Author - Click to view addons
Join Date: May 2014
Posts: 59
Sounds Interesting

Also MobileBank Extended is doing similar things (the original Author is BadVolt), i modified it to "Extended".

Note: In case you are not aware:
It's not necessary to save any Bank Data, because it's always available on the fly.
  Reply With Quote
06/16/14, 04:50 AM   #9
zgrssd
AddOn Author - Click to view addons
Join Date: May 2014
Posts: 280
Originally Posted by farangkao View Post
Sounds Interesting

Also MobileBank Extended is doing similar things (the original Author is BadVolt), i modified it to "Extended".

Note: In case you are not aware:
It's not necessary to save any Bank Data, because it's always available on the fly.
I hoped it might be avalible.

And it points at two other good reason to have a API like CCDR:
If they ever make the data availible on the fly (Account wide stable data), all I have to do is rewrite some code.
Wheter the data comes directly from the API or indirectly from the API (via saved var) is irrelevant for the addon programmer and enduser.

Also it allows me to have a fixed output format. If they ever change how functions return the data, I can simply change my aquisition functions and still deliver the format everyone knows.

Just need to get off my ass and continue programming it.


Edit: I misswrote the part about Bank and Gbank. Since that data is shared between Characters anyway, I wanted to not cover it. I might add it later.
If it does not cross the character border I leave it as optional stuff for later. If I ever get that far in the first place.

Last edited by zgrssd : 06/16/14 at 04:57 AM.
  Reply With Quote
06/16/14, 09:04 AM   #10
farangkao
 
farangkao's Avatar
AddOn Author - Click to view addons
Join Date: May 2014
Posts: 59
Bank and Guild Banks behave completely different.

Bank - items can be retrieved by API call.
Guild Bank - User initiate an Event when opening the Guild Bank and the Addon can then retrieve the data from it. (So it currently needs to be saved in SavedVars)

Inventory can be fetched all the time too ,but only by the Character that is logged in can retrieve his inventory (so need to be saved as well)
  Reply With Quote
06/17/14, 03:14 AM   #11
zgrssd
AddOn Author - Click to view addons
Join Date: May 2014
Posts: 280
Originally Posted by farangkao View Post
Bank and Guild Banks behave completely different.

Bank - items can be retrieved by API call.
Guild Bank - User initiate an Event when opening the Guild Bank and the Addon can then retrieve the data from it. (So it currently needs to be saved in SavedVars)

Inventory can be fetched all the time too ,but only by the Character that is logged in can retrieve his inventory (so need to be saved as well)
My long term goal right now is the character inventory and only the character inventory.
And it will need me some time to even get there
  Reply With Quote
06/24/14, 06:28 AM   #12
zgrssd
AddOn Author - Click to view addons
Join Date: May 2014
Posts: 280
Apparently my project was a bit too ambitious for my skill and freetime. I need to focus on other stuff, so I put the development of this on hold. No idea if I ever will get back to it.

Most of the gathered data about events and function behavior (as far as the stable/hroses are concerned) has been worked into the wiki. If somebody needs more data I would be willing to post the code I have so far.
  Reply With Quote

ESOUI » AddOns » Released AddOns » announcing CCDR (Cross Charactar Data Repository)

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off