runelite.net icon indicating copy to clipboard operation
runelite.net copied to clipboard

Add support for installing plugin-hub plugins via website

Open deathbeam opened this issue 4 years ago • 11 comments

This works only for logged in users as it is simply changing the config.

TODO:

  • [x] Actually refresh the installed state after installing/uninstalling plugin

Signed-off-by: Tomas Slusny [email protected]

deathbeam avatar Nov 08 '20 12:11 deathbeam

imo this is a somewhat horrible idea since the client needs a restart to actually get the config

abextm avatar Nov 08 '20 20:11 abextm

Yea there is warning for that that shows after you install/uninstall plugin image

deathbeam avatar Nov 08 '20 20:11 deathbeam

I don't think a warning makes it any less horrible

abextm avatar Nov 08 '20 20:11 abextm

Well its as good as it gets without actually implementing custom URL handling what I dont think will happen and we can always add polling for the config to client later (what doesnt really matter as far as this PR goes). But its still useful and very simple change on website.

deathbeam avatar Nov 08 '20 20:11 deathbeam

We can't really make the client poll, because 1) thats a lot of traffic and 2) it would cause the loading splash to open, take focus, and otherwise be obnoxious, at some random point while the user might not want it. I don't really think that letting a user install a plugin on the website is worth the ux nightmare this invokes.

abextm avatar Nov 08 '20 20:11 abextm

Well that is just one idea, another one is simple button for reloading the config in plugin hub panel or something. Atm this PR is unrelated to any UX "nightmares" on the client tho so I dont see how is it relevant as there is X amount of ways it can be handled on client (or not handled at all and used as is as the UI impact on website is basically non existant).

deathbeam avatar Nov 08 '20 20:11 deathbeam

"The button does not work" is the ux nightmare I am referring to. I don't see any way for the client to know about this change without either every client having a websocket for this, which would be complete overkill and expensive, or a protocol handler which requires a launcher update and is therefore not feasible either.

I don't want this unless the button actually works for a running client.

abextm avatar Nov 08 '20 20:11 abextm

Well the client isnt supposed to know about the change and it do not needs to know about the change. We can add reload button as i said if you dont want polling, but reload button without actually having ability to change the plugins outside of client is pointless so this needs to go in first either way.

deathbeam avatar Nov 08 '20 20:11 deathbeam

The client is the primary consumer of this config, so I don't get the client isnt supposed to know about the change. If we add a reload button, why not just use the install/remove buttons in the client, since that requires less clicks anyway, and doesn't need an explanation on how to use it.

abextm avatar Nov 08 '20 20:11 abextm

Well the original reason why I made this PR is that you can install/uninstall plugins while not having access to the client. Either because you are simply on different PC or one of the plugins is breaking your client. Also installing via the website UI is a lot smoother if you want to install more plugins in a row (for w/e reason) or for mass removing them compared to client. So the process of installing via website then pressing refresh button in client would be a lot better user experience compared to simply clicking in client.

deathbeam avatar Nov 08 '20 20:11 deathbeam

IMO the primary use of this would be providing a link (ie from runewatch's website or w/e) that lets you install their plugin easily, which would in many cases happen while the client is already running. I don't really know why someone would want to install a plugin while not on a machine with the client, that seems really odd to me. If you want to mass add plugins I don't really mind the ux being bad for that since that is generally a bad idea anyway. If you can't launch the client we have --same-mode for that, though maybe this is better in that case since you don't need to to teach the user how to add a cli argument, but on the opposite side, they have to be logged in on the website and client.

To be clear I don't think that this is a useless feature, I just think that its not useful enough to warrant the fact that it doesn't work when the client is open.

abextm avatar Nov 08 '20 21:11 abextm