antero111 / plugin-presets

A plugin for handling Runelite plugin configurations as presets.
BSD 2-Clause "Simplified" License
7 stars 4 forks source link

Options to ignore certain plugins? #4

Closed Jin-Jiyunsun closed 2 years ago

Jin-Jiyunsun commented 3 years ago

Would it be possible to add options to ignore the settings from certain plugins when updating a preset? Also on top of this could you add an option to ignore the voulme sliders when updating a plugin preset?

antero111 commented 3 years ago

In which case you would use this kind of feature? You would like to ignore the music plugin slider but why?

Implemeting this feature is certainly possible and I have been thinking of this but in which kind of use situation this is needed? Ignoring plugins/settings would be similiar to ignoring certain items in ground items.

Jin-Jiyunsun commented 3 years ago

It's difficult to sync common settings between presets, for example, adding items to the hidden/highlighted ground items list. If hold alt to add or remove and item from these lists it causes the current plugin to have "changes", I see no easy way to reflect these changes(if I'm missing something let me know) in a different preset without going into it and re-adding each item I come across, this would get pretty bothersome and would only get worse the more presets I make.

As for the volume sliders it gets kind of annoying when I decide to turn up the music or turn off the sound effects and the plugin presets says I have a change that isnt in this preset and I have to consider if I've changed something elsewhere.

There are some settings I would 100% like to be synced between plugin presets but it's pretty difficult to maintain at the moment is the TLDR.

Edit: lazy typing

antero111 commented 3 years ago

Really good point. I'll look into how this could be implemented.

Possibly something similiar like the ground items plugins ignore items input box in the settings.

The notificator for unsaved plugin settings needs to be improved. Been thinking on some kind of pop-up ui that displayed all the unsaved configurations. Maybe that ui could have some kind of "ignore this configuration" for ease of use.

Jin-Jiyunsun commented 3 years ago

Hovering over the little pencil that updates the preset to bring up a list of whats differen(or something similar)t would also be a great change

Jademalo commented 2 years ago

I figure it's probably best to reply to this ticket, since my idea is for the same problem but with a slightly different implementation. The biggest issue I see with the proposal of making it work like ground items with an ignore list is that you need to go in and manually override everything that you commonly change. I think a better approach would be the opposite.

My idea is best summed up as Partial Plugin Presets. Essentially have two different types of preset. One is a complete plugin preset that replaces the full state of all plugins and settings within runelite, which works as the addon does currently. The other is a partial override that sits on top of the base settings state (either a preset or just the normal runelite settings) and overrides only a specific set of setting keys.

In terms of creating them, I'm envisioning something like this; First you click to create your partial preset. This saves a temporary snapshot of the current plugin configuration, and instructs the player to change the settings they want to be overriden. Then, the player goes in and changes only the options they want to be changed in the override. The player then goes back to the plugin preset panel, and confirms. The difference between the initial state and the final state is compared, and only keys that have been changed are saved to the override. When the override is enabled, only the keys that are in the override are changed, meaning the majority of settings are never touched.

An easy example of the use case for this is during a league - A "League" override that specifically changes Bank, Ground Items, and Item Prices to show high alch value instead of Grand Exchange value. You could also have, say, a "Slayer" override that specifically enables things useful for slayer, such as aggro ranges, or a "bankstanding" override that changes various settings in GPU to lower fidelity.

Since I'm rarely wanting to change more than a couple of settings for any given preset, it makes sense to me to have the presets only save those changed settings rather than replacing every single setting.

I feel like this implementation will have a huge amount of flexibility, and also entirely solves the ground item list issue as described in the third post. Since the vast majority of settings wouldn't be touched by the partial preset, changing things you want changed across every preset such as adding highlights to ground items, tile markers, or NPC highlights wouldn't require every similar preset to be updated with those same changes.

One other benefit could be the ability to use multiple override presets at the same time. For example, if I had both a slayer and a League partial preset, I could mix and match them depending on whether I'm doing slayer on my main or on the league.

antero111 commented 2 years ago

Hi, haven't really had the time to do any development in this case.

I got in to that point that I had the ability to manually add plugins to ignores like we had planned here. While doing that I found out the exact problem that you had described here, it worked but it wasnt as flexible or usable one would want. Also ran into some technical difficulties and figured out we need change certain things before implementing this.

@Jademalo Your idea is exactly what I had visioned after thinking some other alternatives to this plugin ignoring problem. I visioned it like some kind of "record" button that you enable in a preset to edit its.

Probably will need to rewrite the plugin first before this will be implemented. I'll open an issue for v2.0 features.

antero111 commented 2 years ago

New version of the plugin includes a new way of using presets and a new preset editing panel. Now the idea is pretty much the opposite of how the plugin used to work, presets only should include those changes you wish to change between presets.

So in this case ignoring e.g. music plugin happens by not including it to any preset. Making changes to the plugin then does not cause any modifications in other plugins.

See the new readme and changelog for summary of new changes and features.