Updates OSRS Archipelago Plugin to v1.2
- ~~Archipelago Client Plugin is now on Maven! No more direct vendoring of plugin code!~~ Nevermind it needed to be vendored anyway!
- Adds new checkbox for toggling AP messages going to OSRS chatbox
- AP Server Password is now an actual password field, using placeholders instead
- Replaces hard-coded tasks with data parsed from github, using version information from Archipelago slot data. This should allow for logic changes that don't require a whole new plugin version to use.
- Adds in a local DataPackage storage, which will store the Slot's connected player and last received item index. This will make reconnection smoother as well as allowing you to see popups for items received while offline.
Includes non-plugin changes
osrs-archipelago: 18d04a9b8dbd3f925176366f19b4077bcf7402a5...ab218e925baf97458c048d180cf8e8c04d9fc5ea
It seems like you forgot to include your plugin changes
I did indeed. Updated now.
you haven't added org.java-websocket:Java-WebSocket:1.5.2 to verification-metadata.xml - we've already approved version 1.5.6 for the wikisync plugin, so I'd recommend updating your version to that
Since the automated tests are passing the dependency checks, is there anything else remaining on this before it can get reviewed?
You are writing files outside of .runelite, which is disallowed. You are also using java's built-in object serialization, which we also disallow.
You are writing files outside of .runelite, which is disallowed. You are also using java's built-in object serialization, which we also disallow.
There are no files being written to outside of .runelite. The generated .save file is in .runelite/APData/.
I will remove the Java object serialization and write my own serializer and parser.
Serialization has been removed. If I could get clarification on where I'm writing a file outside of .runelite I could fix that
You should use @Inject to populate the gson instance instead of doing new GsonBuilder()
Donezo. Build successful this time, thanks.
You are writing to the cwd in dev.koifysh.archipelago.Client::loadDataPackage which you call (and still uses java serialization). You also are pinning a bunch of deps that I think you don't use, so don't do that.
That's in an external dependency, would it be sufficient to just override the functions that call those so they aren't used? The pinned dependencies have been found through trial-and-error to be used. The plugin won't build without them.
One of the methods is private, so you can't just override it. I would prefer if they were gone entirely or had to be called manually. Even if you could override it, verifying that you always use the overridden one puts too much burden on reviewers handling your plugin in the future.
Wrt your deps, I deleted half of them and it still built. The error you were seeing earlier is because you didn't have the same excludes in verification-template's build as your plugin's, so it was failing to build because you are pulling more deps there than in your plugin.
So, at this point I'd need to just embed the source of the plugin instead of using the one on maven, so I could rewrite these methods? Or ask the maintainer of that plugin to add in some way to disable them?
Yes
Okay, it's been added to the project, and modified to remove all Gsons, Serializables, and writing to improper directories. While I was in there, since the source is now embedded, I was able to excise the dependency on Apache httpcomponents, which means that now the only dependency change is removing one that the original build of the plugin already had.
Hopefully that'll make the process much simpler for review.
Updating Plugin to v2.0.0
Runelite Plugin Changes:
- Updates Archipelago Java Client version so items are no longer displayed as "Unknown Item" or "Unknown Location"
- Plugin now pulls data from logic repository based on versions baked into AP Seed, allows for minor logic changes without requiring updates.
- AP slot data stored in Runelite directory, for more consistent detection of player login and more safeguards against connecting with the wrong OSRS account
- More consistent connectivity, no longer loses connection to AP server on world hops or loading, properly disconnects on logout
- "Tiered" items no longer mismatch between what is displayed and what is actually unlocked
- Adds new item categories for Duds, Care Packs, and Claimed Care Packs to item panel
- Every task should now be consistently auto-detected by Runelite. New methods of detecting completion have been devised that should be lag-proof.
- Plugin now displays an overlay when you are in a locked region, regardless of whether region-locker is installed or enabled.
- Many new types of Tasks, to auto-detect completion of new task types.