This is really just the latest idea come from an ongoing thought flow, on making it easier to distribute plugins and/or communicate between them. Tired of me yet?
I know of several plugins that require certain resources (such as images), and I'm sure there will be plenty that also have sqlite databases distributed alongside. I personally have quite a few plugins in my plugins directory, and it's getting really disorganized in there. My idea is to add support for zipped plugins, where the plugin is pre-packaged with its resources, and you only need to move around the .zip file itself.
The idea comes from Java's .JAR format. A MUSHclient plugin archive (.MPA?) would simply contain the plugin's .xml file (either named identically to the zip, or something standard like plugin.xml), as well as the plugin's resources, such as images or databases.
Theoretically (and this part is more of an afterthought) you could change the contents of the ZIP, perhaps saving an updated database into the archive, or 'require'ing a file from it (to serve the same purpose as my LoadPPI script from before, but without having to wait until the other plugin has loaded). I know Java has support for this sort of access in its java.util.zip package, but I don't know how easy it would be to implement something similar in C++. I think this particular facet would make zipped plugins even more useful.
In summary, zipped plugin support will allow plugin resources to be packed alongside the plugin itself, keeping things organized. And letting MUSHclient modify the archive's contents would add an unprecendented level of ease of use. I really think this would be a great addition, and I hope it's not too hard to add in any form.
I know of several plugins that require certain resources (such as images), and I'm sure there will be plenty that also have sqlite databases distributed alongside. I personally have quite a few plugins in my plugins directory, and it's getting really disorganized in there. My idea is to add support for zipped plugins, where the plugin is pre-packaged with its resources, and you only need to move around the .zip file itself.
The idea comes from Java's .JAR format. A MUSHclient plugin archive (.MPA?) would simply contain the plugin's .xml file (either named identically to the zip, or something standard like plugin.xml), as well as the plugin's resources, such as images or databases.
Theoretically (and this part is more of an afterthought) you could change the contents of the ZIP, perhaps saving an updated database into the archive, or 'require'ing a file from it (to serve the same purpose as my LoadPPI script from before, but without having to wait until the other plugin has loaded). I know Java has support for this sort of access in its java.util.zip package, but I don't know how easy it would be to implement something similar in C++. I think this particular facet would make zipped plugins even more useful.
In summary, zipped plugin support will allow plugin resources to be packed alongside the plugin itself, keeping things organized. And letting MUSHclient modify the archive's contents would add an unprecendented level of ease of use. I really think this would be a great addition, and I hope it's not too hard to add in any form.