plugin-hub icon indicating copy to clipboard operation
plugin-hub copied to clipboard

Updates OSRS Archipelago Plugin to v1.2

Open digiholic opened this issue 1 year ago • 16 comments

  • ~~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.

digiholic avatar Aug 12 '24 23:08 digiholic

It seems like you forgot to include your plugin changes

hex-agon avatar Aug 13 '24 00:08 hex-agon

I did indeed. Updated now.

digiholic avatar Aug 13 '24 00:08 digiholic

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

iProdigy avatar Aug 13 '24 00:08 iProdigy

Since the automated tests are passing the dependency checks, is there anything else remaining on this before it can get reviewed?

digiholic avatar Aug 26 '24 20:08 digiholic

You are writing files outside of .runelite, which is disallowed. You are also using java's built-in object serialization, which we also disallow.

abextm avatar Oct 07 '24 16:10 abextm

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.

digiholic avatar Oct 07 '24 18:10 digiholic

Serialization has been removed. If I could get clarification on where I'm writing a file outside of .runelite I could fix that

digiholic avatar Oct 08 '24 03:10 digiholic

You should use @Inject to populate the gson instance instead of doing new GsonBuilder()

iProdigy avatar Oct 08 '24 05:10 iProdigy

Donezo. Build successful this time, thanks.

digiholic avatar Oct 08 '24 16:10 digiholic

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.

abextm avatar Oct 08 '24 16:10 abextm

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.

digiholic avatar Oct 08 '24 17:10 digiholic

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.

abextm avatar Oct 08 '24 17:10 abextm

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?

digiholic avatar Oct 08 '24 17:10 digiholic

Yes

abextm avatar Oct 08 '24 17:10 abextm

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.

digiholic avatar Oct 08 '24 21:10 digiholic

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.

digiholic avatar Jan 25 '25 20:01 digiholic