xivdev / Penumbra

FINAL FANTASY XIV modding, but actually good this time
613 stars 118 forks source link

API for third party code to manage mods and file replacements #5

Open NotAdam opened 3 years ago

NotAdam commented 3 years ago

Ideally other plugins can also register their own replacements if Penumbra exists, though this is likely dependant on the Dalamud rewrite where we should have a better think about how this could work, but ideally we can support the following scenarios:

current plan

AncientAzem commented 2 years ago

So I noticed the basic HTTP api is checked off in this list. Out of sheer curiosity what is the extend of that API?

NotAdam commented 2 years ago

literally nothing of use lol

AncientAzem commented 2 years ago

That's what I thought but was curious none the less 😅

y2-ss commented 2 years ago

While it's not specifically related to mod/file management, would supporting character redraws events (sending/receiving) be in the scope for the API?

Ottermandias commented 2 years ago

It's not part of the HTTP API (because I have no idea where Adam was going with that and thus there wasn't any progress made on that :D) but it is part of the extracted API I did for Glamourer, and part of the IPC-API in API4. So queuing redraws from another plugin would be possible from API4 on. Firing IPC events when redrawing would also be easily addable. What's your goal here?

y2-ss commented 2 years ago

I'm working on a plugin that changes customization and orientation values of Players for role-playing purposes, and some of these values changes, like position, rotation, and scale, are lost when Penumbra redraws characters. Right now my plugin only applies these by just a manual command, but being able to apply them after a Penumbra redraw would be a goal.

Ottermandias commented 2 years ago

Regarding applying customization values, check out Glamourer on my repos. I can probably add a IPC listener to the plugin that gets fired when a redraw is started or finalized. Probably easiest to add what you want if you ping me in discord. Though I'm mostly unavailable the next few days.

AncientAzem commented 2 years ago

Hey there! If this isn't something that someone is actively working on I would love to start working on it bit by bit. I've spent some time poking around the codebase and it's something I am willing to take a stab at.

Edit: This probably isn't much but I decided to poke around a bit for fun this afternoon and expanded the existing HTTP API with some more functionality. It's all over in https://github.com/DevJinnial/Penumbra/tree/web-api-expansion if anyone wanted to take a look. Didn't want to submit a PR yet since I am still working on it but thought I would update this message with it.