Plugin Deprecation

Eorzea Time
 
 
 
Langues: JP EN FR DE
users online
Forum » Windower » News » Plugin Deprecation
Plugin Deprecation
 Lakshmi.Byrth
VIP
Offline
Serveur: Lakshmi
Game: FFXI
user: Byrthnoth
Posts: 6191
By Lakshmi.Byrth 2014-12-25 09:12:47
Link | Citer | R
 
Hello everyone!

Unless anyone has a strong argument against it, we're going to deprecate Itemizer, BoxHelper, and Distance in favor of the addon versions that serve the same functions, often with greater functionality. The addon versions are better.
Code
Plugin   -> Addon         :: Reason
Itemizer  -> Itemizer     :: Itemizer addon is fully compatible with GearSwap/Shortcuts.
Distance  -> Distance     :: Distance addon disappears when you're targeting something 0 yalms away. Otherwise it's identical.
BoxHelper -> BoxDestroyer :: BoxDestroyer is much more robust and uses the clues much more efficiently.


The plugin versions won't stop working immediately, but they will be removed from the store and eventually we will fully drop support. They're pretty unlikely to break, though.
[+]
 Lakshmi.Byrth
VIP
Offline
Serveur: Lakshmi
Game: FFXI
user: Byrthnoth
Posts: 6191
By Lakshmi.Byrth 2014-12-27 16:20:54
Link | Citer | R
 
We are also going to deprecate PetTP for the same reasons as above. Snicky's PetTP addon serves the same purpose, appears to be more customizable, and updates its values from more packets.
 Siren.Inuyushi
Offline
Serveur: Siren
Game: FFXI
user: Inuyushi
Posts: 507
By Siren.Inuyushi 2014-12-29 12:59:32
Link | Citer | R
 
Thank you for the update. The only issue I have with this is that the itemizer addon doesn't move stacks of items. //gets or //puts does not work and it can only move 1 item at a time //put <item> <location> for something that stacks up to 99 is useless. Would it be possible to make a change to the addon so that it fully matches the functionality of the plugin before the depreciation?
 Lakshmi.Byrth
VIP
Offline
Serveur: Lakshmi
Game: FFXI
user: Byrthnoth
Posts: 6191
By Lakshmi.Byrth 2014-12-29 13:01:05
Link | Citer | R
 
Certainly. I'll open an issue for Arcon.
 Leviathan.Arcon
VIP
Offline
Serveur: Leviathan
Game: FFXI
user: Zaphor
Posts: 666
By Leviathan.Arcon 2014-12-29 13:13:21
Link | Citer | R
 
The addon actually does support that, but in a really, really dumb way. I'll change it so both of these work:
Code
//gets <name>
//get <name> <count>
[+]
 Siren.Inuyushi
Offline
Serveur: Siren
Game: FFXI
user: Inuyushi
Posts: 507
By Siren.Inuyushi 2014-12-29 13:35:10
Link | Citer | R
 
Thanks to both of you!
 Leviathan.Arcon
VIP
Offline
Serveur: Leviathan
Game: FFXI
user: Zaphor
Posts: 666
By Leviathan.Arcon 2014-12-29 15:58:37
Link | Citer | R
 
I implemented a test version of Itemizer on the -dev branch. A few notes on it:
Code
//get <name> [bag] [count]

Will get the specified amount from the specified bag. If bag is omitted, will get it from anywhere. If count is omitted, will get 1. If count is set to 'all' will get all such items. For example: "//get *crystal all" would get all crystals that are accessible into the main inventory.

"//gets <item> [bag]" is an alias for "//get <item> [bag] all"
Code
//put <name> <bag> [count]


Same as for get, only bag can not be omitted in this case (it will not pick a random bag to put items into).

"//puts <item> <bag>" is an alias for "//put <item> <bag> all"

The difference to the addon is that if you specified "gets" it would not take unstacked items into account. If you had five full (99 items) stacks and one stack sitting at 2 items then the Itemizer plugin would randomly get one of the 6 options, i.e. there is a 17% chance it would get only 2 items instead of the expected 99.

The addon now gets all items. If you really only wanted one stack, you can specify 99 as the count and it will get only that (if that much is available, if not it will get what it can and output a warning).

I tested it a bit, but as usual there's only so much I could do. If someone wants to help test it out, just place this file into your Windower/addons/Itemizer/ folder. I would appreciate some feedback.
[+]
 Leviathan.Arcon
VIP
Offline
Serveur: Leviathan
Game: FFXI
user: Zaphor
Posts: 666
By Leviathan.Arcon 2014-12-29 16:05:09
Link | Citer | R
 
Back to the topic at hand, the DrawDistance plugin will also be deprecated in favor of the new Config plugin which supersedes it. It offers not only options for adjusting the clipping plane, but also some other options from the Config > Misc. 2 menu. Over time I will add more options to it. It has some things that cannot be configured right with FFXI itself at all, like automatic aspect ratio adjusting.

The specific advantage over DrawDistance is that it can save setting files in the typical Windower format, so you can write down different settings for different characters for example. To do this with DrawDistance you have to edit the init.txt file and set specific AutoExec instructions to issue certain commands on character login.
 Leviathan.Syagin
Offline
Serveur: Leviathan
Game: FFXI
user: Kerron
Posts: 999
By Leviathan.Syagin 2014-12-29 16:21:25
Link | Citer | R
 
Lakshmi.Byrth said: »
We are also going to deprecate PetTP for the same reasons as above. Snicky's PetTP addon serves the same purpose, appears to be more customizable, and updates its values from more packets.

What's deprecate mean?
 Odin.Godmode
Offline
Serveur: Odin
Game: FFXI
user: Tyseng
Posts: 13
By Odin.Godmode 2014-12-29 16:50:40
Link | Citer | R
 
Leviathan.Syagin said: »
Lakshmi.Byrth said: »
We are also going to deprecate PetTP for the same reasons as above. Snicky's PetTP addon serves the same purpose, appears to be more customizable, and updates its values from more packets.

What's deprecate mean?

To stop developing/supporting for.
 Leviathan.Arcon
VIP
Offline
Serveur: Leviathan
Game: FFXI
user: Zaphor
Posts: 666
By Leviathan.Arcon 2014-12-29 16:51:19
Link | Citer | R
 
That means that we do not encourage people to use the plugin anymore due to better alternatives. As a result we will stop supporting it and remove it from the Launcher in the future. We will not outright ban it, but we will also not fix it if it breaks in the future.
Offline
Posts: 32551
By Artemicion 2014-12-29 17:05:41
Link | Citer | R
 
Pardon my severe ignorance, but what in particular separates a plugin from an add-on?
 Ragnarok.Martel
Offline
Serveur: Ragnarok
Game: FFXI
Posts: 2961
By Ragnarok.Martel 2014-12-29 17:17:19
Link | Citer | R
 
My understanding of it is that plugins work via .dll's which have to be recomplied for any change. I'm stretching what little I know about this, but apparently it's a pain in the ***.

Addons run via lua. It's more or less just a text file. Change text, save, reload addon. Really easy to make/maintain compared to plugins.

Anyone more knowledgeable feel free to add to/correct that.
 Odin.Jassik
VIP
Offline
Serveur: Odin
Game: FFXI
user: Jassik
Posts: 9534
By Odin.Jassik 2014-12-29 17:22:48
Link | Citer | R
 
Artemicion said: »
Pardon my severe ignorance, but what in particular separates a plugin from an add-on?

Generally speaking, a plug-in is a piece code that extends part of a program. It merely extends the function of a program. Add-ons are more complete and operate on top of a program, allowing it to not only extend the functionality, but also changing some of the functionality.

It's arbitrary from an end-user standpoint, except that add-ons are more reliable when you aren't in control of the other end, like a video game server.

Any given update, SE may change all sorts of things with the client and how it performs actions, but they rarely change packet structure, which is why windower and all related plugins don't break every update anymore.

There's a lot more to it behind the scenes, with how luacore and packet manipulation works, but that's the short version as I understand it.
 Leviathan.Arcon
VIP
Offline
Serveur: Leviathan
Game: FFXI
user: Zaphor
Posts: 666
By Leviathan.Arcon 2014-12-29 21:06:25
Link | Citer | R
 
The above is all correct, but the main reasons why we're changing everything to addons are the following:

- Windower addons use Lua, which is more easier to work in than C++ for the uninitiated and leaves much less to go wrong

- All addons are open source and anyone can edit them. One of the main reasons for this move was because the Windower development team is smaller and less active than ever, so we cannot respond to changes as quickly and if things break, we may not always be there to fix them in time. Addons can be fixed by anyone who knows how to code (and sometimes that isn't even necessary.

- Often fixing addons isn't even necessary and just require a new LuaCore. But as was mentioned before, recompiling plugins sucks. Here's the process involved:
1. Change the code
2. Build it in debug mode
3. Test it
4. Increase the version (if test worked, otherwise go back to 1)
5. Build it in release mode
6. Upload the DLL to our server (once to the live branch and once to the dev branch)
7. Increase the version number in the manifest to match
8. Update our symbol storage for the new file (for debugging purposes)
9. Update the changelog with a note on what changed
10. Wait for the community to find 50 things that don't work that you missed
11. Go back to 1

This process is tedious, but it's not too bad to do for just one plugin. However, we currently maintain 45 plugins, and this is a major pain in the *** if something seriously breaks. Addons, however, all rely on LuaCore, meaning we only have to fix LuaCore and all addons magically start working again.

- This is not a main reason for doing it, but Windower 5 will only support Lua addons (at first anyway, we haven't decided yet how to go with the C++ API). That means that once we have all current plugins converted to addons, they will immediately work for Windower 5 as well (once we have the translation layer implemented).
[+]
Offline
Posts: 20
By Xcloud 2014-12-29 21:55:35
Link | Citer | R
 
I had another question regarding the Itemizer Addon. I personally use the Itemizer plugin as an alternative to GearCollector simply because of the nature of GearCollector to place the items where ever it wishes. I returned to the game a couple of days ago and have started re-organizing my macro, re-examine my scripts, figure out how GearSwap works (I've been gone that long), etc etc. I did see this thread pop up so i wanted to migrate over to the Itemizer Addon but i ran into a problem running standard windower scripts with the Addon.

With the old Itemizer plugin, this would work:

input /put "Arka IV" Sack;

With the new Itemizer Addon, i tried as many combinations as i could think of and still couldn't get it to work. I was thinking the scripts might be choking on the double forward slash in front of put but if anyone has any insight on a working combination i would be eternally grateful!
 Lakshmi.Byrth
VIP
Offline
Serveur: Lakshmi
Game: FFXI
user: Byrthnoth
Posts: 6191
By Lakshmi.Byrth 2014-12-29 22:30:13
Link | Citer | R
 
use:
Code
put "Arka IV" Sack;


It was always pretty inconsistent and silly to have /put and /get instead of //put and //get, so the addon moved to // commands instead of /commands. As such, you save 7 characters per line when writing scripts because you don't have to bother with "input /" anymore.
[+]
Offline
Posts: 20
By Xcloud 2014-12-29 22:41:07
Link | Citer | R
 
That did the trick! Sorry i'm so oldschool. . . for anyone else that stumbles upon this:

Old Way:
input /put "Arka IV" Sack;

New Way:
put "Arka IV" Sack;


Thanks Byrth :)
 Bismarck.Misao
Offline
Serveur: Bismarck
Game: FFXI
user: misacat
Posts: 22620
By Bismarck.Misao 2014-12-29 23:53:11
Link | Citer | R
 
I thought this thread was called Public Decapitation...

Im like.. WHAT? not this again.

carry on