WoWInterface

WoWInterface (https://www.wowinterface.com/forums/index.php)
-   General Authoring Discussion (https://www.wowinterface.com/forums/forumdisplay.php?f=20)
-   -   To All "DataBroker Displays" Authors (https://www.wowinterface.com/forums/showthread.php?t=37149)

jaliborc 11-28-10 07:25 AM

To All "DataBroker Displays" Authors
 
If you're not an author of a DataBroker display, don't bother reading.

I'm just here to alert authors that one of my addons should break most of DataBroker launcher displays. Why? Until now, DataBroker has only been used for two dataobject types: "launcher" and "data... data... whatever. :o

The thing is: my addon is using databroker to share other kinds of information. So, if your display is not checking for the dataobject type (.type), or assumes that, if an object is not a "launcher" then it's a "data whatever", it's going to start displaying launchers that do not exist, or simply start trowing out bugs.



As requested, here is what the addon does and what object types it creates/uses:

The addon is Cornucopia. The closest existing addons to it are probably the old & dead Bongos3 or Dominos. So, it lets you configure your interface trough bars (until now, nothing new).
Now here is the big difference: it does not have his own "bars". It comes with a small set of bars that I already have done (all alpha stage), but the bars are provided by registering a dataobject with the "Movable Bar" type.

And it also uses DataBroker for other functionalities. Mostly has an example, the Minimap bar uses "themes" registered trough the library. And I might use it in more situations: fonts, backdrops,... anything that can be shared between addons is a possibility to me.

Nobgul 11-28-10 08:40 AM

Quote:

Originally Posted by jaliborc (Post 220268)
If you're not an author of a DataBroker display, don't bother reading.

I'm just here to alert authors that one of my addons should break most of DataBroker launcher displays. Why? Until now, DataBroker has only been used for two dataobject types: "launcher" and "data... data... whatever. :o

The thing is: my addon is using databroker to share other kinds of information. So, if your display is not checking for the dataobject type (.type), or assumes that, if an object is not a "launcher" then it's a "data whatever", it's going to start displaying launchers that do not exist, or simply start trowing out bugs.

And what would be the name of your addon?

Rilgamon 11-28-10 08:53 AM

hmmm, cant think of a type thats not a launcher or a data source ;)

Waky 11-28-10 09:26 AM

Quote:

Originally Posted by nobgul (Post 220274)
And what would be the name of your addon?

What he said.

jaliborc 11-28-10 09:54 AM

Quote:

Originally Posted by nobgul (Post 220274)
And what would be the name of your addon?

The reason I didn't post the name of the addon is simple: I don't want this "request" to serve as "publicity" for my addon. Just doesn't seem right. Don't want to make a lot of fuss.

Xubera 11-28-10 10:11 AM

if your addon breaks databroker... shouldnt you find another way, not expect the community to find work a rounds for your addon?

jaliborc 11-28-10 10:17 AM

Quote:

Originally Posted by Xubera (Post 220292)
if your addon breaks databroker... shouldnt you find another way, not expect the community to find work a rounds for your addon?

My addon does not break DataBroker. If one display breaks because of my addon, it's because they are not doing something they should, that is checking the data object type. I posted here because I know it is common, yet wrong.
It's a slight change: one or two lines of code and it's fixed. And no one is forced to do it, but will break with my addon running too.

Also, this message is for DataBroker display authors. Some already answered and didn't seem worried about it, because they know it's a simple change. You also don't need to be.

Borlox 11-28-10 10:55 AM

As long as your data objects have a .type attribute that is not "data object", "launcher" or nil (for backwards compatibility), I think most displays won't try to do anything with them.
It's a very good idea to remind the display authors, though!

Edit:
I know at least one other addon that uses non-launcher/d.o. objects: Cork. If your display does not break when using this, it should work with any data object creating addon. But it's important that the .type attribute is set.

Cladhaire 11-28-10 11:08 AM

I got your PM but it contains almost no information. Vague information is vague. I'm not doing anything for now.

jaliborc 11-28-10 11:28 AM

Quote:

Originally Posted by Borlox (Post 220300)
As long as your data objects have a .type attribute that is not "data object", "launcher" or nil (for backwards compatibility), I think most displays won't try to do anything with them.
It's a very good idea to remind the display authors, though!

Edit:
I know at least one other addon that uses non-launcher/d.o. objects: Cork. If your display does not break when using this, it should work with any data object creating addon. But it's important that the .type attribute is set.

Yes, yes, I'm setting "type". Glad to know there is already one more addon that does it. Less bugging out then :D

Rilgamon 11-28-10 11:38 AM

Wouldnt it be better to give info what your type is and what you expect
a display-addon to do when it comes across it instead of saying start ignoring
anything but launcher and data source ? I think most displays added a "lazymode" for the many cases where authors forgot to set the type or misspelled its type.

jaliborc 11-28-10 01:16 PM

Quote:

Originally Posted by Rilgamon (Post 220309)
Wouldnt it be better to give info what your type is and what you expect
a display-addon to do when it comes across it instead of saying start ignoring
anything but launcher and data source ? I think most displays added a "lazymode" for the many cases where authors forgot to set the type or misspelled its type.

That is bad by principle. If new data object types start to show up in the community, lets say... 20 new types, the display would have to check if the object was not from those 20 types before assuming a launcher. And, if the author of a "display" from one of those 20 types decides to create a lazy mode too, then it becomes impossible to solve.

jaliborc 11-28-10 01:18 PM

Quote:

Originally Posted by Cladhaire (Post 220302)
I got your PM but it contains almost no information. Vague information is vague. I'm not doing anything for now.

As you wish... information added above. If you need more information, just ask.

Xubera 11-28-10 01:28 PM

Quote:

Originally Posted by jaliborc (Post 220294)
My addon does not break DataBroker. If one display breaks because of my addon, it's because they are not doing something they should, that is checking the data object type. I posted here because I know it is common, yet wrong.
It's a slight change: one or two lines of code and it's fixed. And no one is forced to do it, but will break with my addon running too.

Also, this message is for DataBroker display authors. Some already answered and didn't seem angry about it, because they know it's a simple change. You also don't need to be.


Oh dont get me wrong, I am not angry, I dont even use data broker addons (except maybe auditor, but i dont use a bar mod to hold it). I was just confused cause you made it sound like your addon could break other peoples. I was confused on why you chose to code that way instead of finding a way around.

I was unaware that your addon might break other addons because their code isnt right. It was more of an inquisitive statement, not a , "change your ways" statement

jaliborc 11-28-10 01:31 PM

Quote:

Originally Posted by Xubera (Post 220338)
Oh dont get me wrong, I am not angry, I dont even use data broker addons (except maybe auditor, but i dont use a bar mod to hold it). I was just confused cause you made it sound like your addon could break other peoples. I was confused on why you chose to code that way instead of finding a way around.

I was unaware that your addon might break other addons because their code isnt right. It was more of an inquisitive statement, not a , "change your ways" statement

I know you're not angry :D I was just trying to explain my point of view, probably my choice of words was not the best. Sorry for that.

Rilgamon 11-28-10 02:14 PM

Quote:

Originally Posted by jaliborc (Post 220334)
That is bad by principle.

True, but in the beginning I wrote addons using ldb without understanding what I did. And "luckily" I had one display that ignored my faults and only when others reported back that my addons would not work on other displays I learned that I needed to declare its type and other stuff.

So you see that I just try to point out that you will be faced with displays that
will handle your addon wrong just because they will "guess" your type when it
does not fit what they expect.

AddOn-Scripters come and go but their addons live on in our community ;)
So a "warning" that you might break with whats there already might not arrive...

jaliborc 11-28-10 03:32 PM

Quote:

Originally Posted by Rilgamon (Post 220346)
True, but in the beginning I wrote addons using ldb without understanding what I did. And "luckily" I had one display that ignored my faults and only when others reported back that my addons would not work on other displays I learned that I needed to declare its type and other stuff.

So you see that I just try to point out that you will be faced with displays that
will handle your addon wrong just because they will "guess" your type when it
does not fit what they expect.

AddOn-Scripters come and go but their addons live on in our community ;)
So a "warning" that you might break with whats there already might not arrive...

I can't change addons of others, but I can try to convince people that the change is good (and it's what I'm trying to do here). Of they don't change, it's not my fault. I'm following the standards defined by Tekkub (DataBroker author).

Torhal 11-28-10 09:03 PM

Basically, LibDataBroker wasn't only created with plugin-display AddOns in mind - it was created as an information (data) broker between multiple sources/destinations. Tekkub uses LDB internally in Cork, defining DataObj types which only Cork should care about.

Cladhaire 11-29-10 03:43 AM

Indeed, Torhal. This isn't a 'change' at all. It's how its always been, so I'm really really confused.

jaliborc 11-29-10 08:18 AM

Quote:

Originally Posted by Cladhaire (Post 220487)
Indeed, Torhal. This isn't a 'change' at all. It's how its always been, so I'm really really confused.

It's simple: it has always been like this, but most people don't' know it. By checking some displays code, I realized that some weren't aware of it and, as such, I made this warning to prevent further problems.
Like I said, let's not make a big fuss about it.


All times are GMT -6. The time now is 10:31 AM.

vBulletin © 2024, Jelsoft Enterprises Ltd
© 2004 - 2022 MMOUI