Commit graph

811 commits

Author SHA1 Message Date
Soreepeong
20717cce3d more 2024-05-21 09:27:51 +09:00
goat
913d4732b5 don't write to the manifest when reloading dev plugins(fixes #1328)
genericizes the way WorkingPluginId is accessed away from the manifest, since we probably don't want to have it there in the future for regular plugins either
2024-05-14 00:27:11 +02:00
Soreepeong
8c7771bf7d Merge branch 'apiX' into feature/itextureprovider-updates 2024-05-12 22:17:32 +09:00
Kaz Wolfe
d2a0c94ddd
Merge branch 'refs/heads/master' into apiX 2024-05-03 21:20:16 -07:00
meoiswa
00311b4dca
DalamudPluginInterface functions for opening Settings and DevMenu (#1795)
* Add functions for plugins to open the Developer Menu and Dalamud Settings windows

* Do not break ABI by instead declaring a new method OpenPluginsInstallerTo
Replace OpenDalamudSettings with OpenDalamudSettingsTo
2024-04-30 00:30:09 +02:00
Kaz Wolfe
b32ed39826
Merge branch 'refs/heads/master' into apiX
# Conflicts:
#	Dalamud/Game/Libc/LibcFunction.cs
#	Dalamud/Game/Libc/LibcFunctionAddressResolver.cs
#	Dalamud/Game/Libc/OwnedStdString.cs
#	Dalamud/Game/Libc/StdString.cs
#	Dalamud/Interface/UiBuilder.cs
2024-04-28 11:54:54 -07:00
Haselnussbomber
b98337be4e
Update XivChatEntry types and names (#1784) 2024-04-28 11:38:40 -07:00
Haselnussbomber
51c2f77812
Remove LibcFunction service (#1787) 2024-04-23 00:18:47 +02:00
Aireil
c228c92979
fix: testing API level being ignored (#1472)
Co-authored-by: goat <16760685+goaaats@users.noreply.github.com>
2024-04-22 19:52:00 +00:00
goat
448b0d16ea
Add "loading dialog" for service init, unify blocking logic (#1779)
* wip

* hacky fix for overlapping event text in profiler

* move IsResumeGameAfterPluginLoad logic to PluginManager

* fix some warnings

* handle exceptions properly

* remove ability to cancel, rename button to "hide" instead

* undo Dalamud.Service refactor for now

* warnings

* add explainer, show which plugins are still loading

* add some text if loading takes more than 3 minutes

* undo wrong CS merge
2024-04-21 17:28:37 +02:00
srkizer
bd2c9b2258
Apply most of Api10ToDo (#1782) 2024-04-20 23:25:33 -07:00
goat
808f66edc6
Expose DTR entries in public interface (#1778)
* expose DTR entries in public interface

* add IReadOnlyDtrBarEntry.UserHidden
2024-04-20 14:46:04 +02:00
goat
62863becd5 add InstalledPluginState api10 todo 2024-04-20 02:30:21 +02:00
goat
285d3bed42 pi: properly support changelogs for testing plugins 2024-04-16 00:58:12 +02:00
MidoriKami
e32fc00277
IContextMenu Tweaks and Cleanup (#1753)
* Tweaks and cleanup

* Fix backwards logic
2024-04-11 23:23:13 +02:00
Ottermandias
e075a26ff7
Make IPC work with nullable types and null values. (#1765) 2024-04-11 23:19:19 +02:00
KazWolfe
de6dcb8b53
Add some small map helpers (#1756)
* feat: Add new `.GetMapCoordinates` extension method

- Used to easily resolve player-friendly map coordinates for any GameObject.

* feat: Add MapID to ClientState

- Provides easy access to the player's current map ID
2024-04-10 00:49:37 +02:00
Infi
84abd23ad5
Expose manifest to plugins (#1762)
* expose manifest to plugins

* comment

---------

Co-authored-by: goat <16760685+goaaats@users.noreply.github.com>
2024-04-09 22:27:59 +00:00
Soreepeong
be9216bbc5 Make ChatGui lazy dependency of PM 2024-04-07 21:57:13 +09:00
Soreepeong
7f5ef03917 Use EarlyLoadedService for anything that is not mandatory for kicking off plugin loader 2024-04-07 21:53:23 +09:00
goaaats
70e0eef5ce normalize command names for profile management 2024-03-28 14:09:24 +01:00
goaaats
0dbc76f96f pi: some more manifest validation 2024-03-28 00:14:51 +01:00
goaaats
68e0ef0b5d pi: add validations for manifest tags, description 2024-03-27 23:50:05 +01:00
goaaats
b2df6e2a2b pi: allow "dismissing" validation problems 2024-03-27 21:10:21 +01:00
goaaats
4a6faed2e2 pi: slightly improve validation messages 2024-03-27 20:58:43 +01:00
goaaats
614ea211a0 pi: add validator for DevPlugins, with basic warnings about callbacks and commands 2024-03-27 19:35:29 +01:00
goaaats
b3db0e78b3 pm: reign in overeager profile cleanup on install
...and remove Profile::RemoveByInternalNameAsync() because it's a footgun
2024-03-23 15:48:54 +01:00
goaaats
714e9e0319 pm: don't throw if there are no valid versions for a plugin 2024-03-20 23:33:35 +01:00
goaaats
ec122c85d5 fix warnings 2024-03-19 23:24:23 +01:00
github-actions[bot]
fe80490d5e Merge remote-tracking branch 'origin/master' into net8-rollup 2024-03-19 15:04:46 +00:00
srkizer
be63276a85
Rename to Framework.Run (#1728) 2024-03-19 08:04:21 -07:00
github-actions[bot]
990f04715f Merge remote-tracking branch 'origin/master' into net8-rollup 2024-03-19 03:11:08 +00:00
srkizer
5d473919a1
Hide scheduler from RunOnFrameworkThread (#1725)
* Hide scheduler from RunOnFrameworkThread

Creating new tasks via Task.Run and alike would fetch the current
scheduler, which we do not want in case of running stuff from the
framework thread. Change is to prevent the standard library from seeing
the "current scheduler". If one wants to use `await` with an async
function to be run in the framework thread, one can use
`RunOnFrameworkThreadAwaitable` instead now.

* TaskSchedulerWidget: test better stuff

* TaskSchedulerWidget: add freeze tests

* More comments

* Make TaskFactory a getter method instead of property to avoid bad suggestions

* Why are there stuff still not pushed
2024-03-18 20:10:47 -07:00
github-actions[bot]
4abb3535fa Merge remote-tracking branch 'origin/master' into net8-rollup 2024-03-16 16:02:57 +00:00
srkizer
87b9edb448
Add IInternal/PublicDisposableService (#1696)
* Add IInternal/PublicDisposableService

Plugins are exposed interfaces that are not inherited from
`IDisposable`, but services implementing plugin interfaces often
implement `IDisposable`. Some plugins may try to call
`IDisposable.Dispose` on everything provided, and it also is possible to
use `using` clause too eagerly while working on Dalamud itself, such as
writing `using var smth = await Service<SomeService>.GetAsync();`. Such
behaviors often lead to a difficult-to-debug errors, and making those
services either not an `IDisposable` or making `IDisposable.Dispose` do
nothing if the object has been loaded would prevent such errors. As
`ServiceManager` must be the only class dealing with construction and
disposal of services, `IInternalDisposableService` has been added to
limit who can dispose the object. `IPublicDisposableService` also has
been added to classes that can be constructed and accessed directly by
plugins; for those, `Dispose` will be ignored if the instance is a
service instance, and only `DisposeService` will respond.

In addition, `DalamudPluginInterface` and `UiBuilder` also have been
changed so that their `IDisposable.Dispose` no longer respond, and
instead, internal functions have been added to only allow disposal from
Dalamud.

* Cleanup

* Postmerge fixes

* More explanation on RunOnFrameworkThread(ClearHooks)

* Mark ReliableFileStorage public ctor obsolete

---------

Co-authored-by: goat <16760685+goaaats@users.noreply.github.com>
2024-03-16 15:58:05 +00:00
srkizer
710fff118d
Remove unnecessary stuff from ObjectTable (#1713)
* Remove unnecessary stuff from ObjectTable

* Remove unused

* fix
2024-03-14 14:37:52 -07:00
github-actions[bot]
458e48c088 Merge remote-tracking branch 'origin/master' into net8-rollup 2024-03-14 04:35:37 +00:00
Soreepeong
033a57d19d Merge remote-tracking branch 'upstream/master' into feature/inotificationmanager 2024-03-14 13:06:04 +09:00
srkizer
a26bb58fdb
Use custom TaskScheduler for Framework.RunOnTick (#1597)
* Use custom TaskScheduler for Framework.RunOnTick

* TaskSchedulerWidget: add example
2024-03-14 00:36:38 +01:00
Soreepeong
70eecdaaef more 2024-03-05 21:04:20 +09:00
Soreepeong
7f12e3f3da Assign debug names for textures 2024-03-05 01:22:16 +09:00
Soreepeong
6a0f774625 Add texture leak tracker 2024-03-05 01:06:02 +09:00
Soreepeong
0a658477c6 cleanup 2024-03-04 21:13:00 +09:00
Soreepeong
5ad8edbc04 Move save get/save functions to ITextureReadbackProvider 2024-03-03 21:00:37 +09:00
Soreepeong
858d27ab8e Fix namespace 2024-03-03 20:44:49 +09:00
Soreepeong
e1bdba06de cleanup 2024-03-03 20:41:41 +09:00
Soreepeong
c04ce36b9c Add CreateFromGameScreen 2024-03-03 20:08:52 +09:00
Soreepeong
3853191c48 More cleanup 2024-03-03 00:51:28 +09:00
Soreepeong
3415df5d40 Cleanup 2024-03-02 23:45:14 +09:00
Soreepeong
0aa75306d4 fixese 2024-03-02 07:50:37 +09:00