Commit graph

258 commits

Author SHA1 Message Date
Soreepeong
efaa346d5e Localization: change to a provided service 2024-07-21 18:35:35 +09:00
Kaz Wolfe
dc7e6dcbc0
first pass sig replacements 2024-06-26 09:19:57 -07:00
aers
d823db7930
[apiX] first pass update for new clientstructs (#1818)
* first pass update for new clientstructs

* track latest clientstructs & fix compilation errors

* fix GameInventory hook bug
rename Appartment
2024-05-31 09:09:28 -07: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
goat
3d2cec77c0 Revert "ioc: actually make early blocking services blocking again"
This reverts commit 1d75c8edda.
To be reapplied in #1779.
2024-04-20 17:10:17 +02:00
goat
1d75c8edda ioc: actually make early blocking services blocking again 2024-04-18 22:27:06 +02: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
marzent
df65d59f8b add more exception handler options to dev menu 2024-02-10 13:03:11 +01:00
Soreepeong
b6d88f798a Make CJK imes work better 2023-12-17 11:59:11 +09:00
srkizer
b66be84b93
Better Service dependency handling (#1535) 2023-11-28 22:20:16 +01:00
goat
2bdb837577
feat: enable early loaded services to wait for provided services, some rewrites to make service kind declaration more explicit 2023-10-01 21:12:27 +02:00
goat
f44c6794e7
chore: tidy-up, move files shared between dalamud and injector into separate assembly 2023-09-30 16:11:52 +02:00
goat
4a1b220d4a
fix: register interfaces for provided services 2023-09-30 01:09:25 +02:00
goat
125034155b
feat: first pass at ReliableFileStorage service 2023-09-27 22:10:21 +02:00
goat
ebabb7bd04
chore: make SigScanner public, have separate service TargetSigScanner that resolves via ISigScanner (closes #1426) 2023-09-24 01:49:34 +02:00
goat
9e139389ea
feat: add /xlrestart 2023-06-08 21:36:40 +02:00
goat
ec0f52b7c3
chore: don't report crashes when shutting down the game, if no devplugin is loaded 2023-03-20 20:16:01 +01:00
goat
53bfda3b33
fix: type confusion when assigning dep getter tasks 2023-03-09 20:38:59 +01:00
goat
987ff8dc8f
chore: convert Dalamud to file-scoped namespaces 2022-10-29 15:23:22 +02:00
goat
b093323acc
chore: warnings pass 2022-10-29 15:19:52 +02:00
goat
8c066451ec
fix: update Iced in Injector, fix build 2022-07-17 14:46:48 +02:00
kizer
716736f022
Improvements (#903) 2022-06-29 11:51:40 +02:00
kizer
3369f569fb
Add call-on-services-ready attribute for service methods, and fix scene nullability (#900) 2022-06-26 18:49:34 +02:00
kizer
3b7ec63223
Fix leftovers (#899) 2022-06-25 19:55:05 +02:00
kizer
c7dc8c81f4
Fix async plugin load and show full profiler (#898) 2022-06-25 19:34:40 +02:00
kizer
8e7f370ddd
Load services asynchronously whenever possible (#893) 2022-06-24 22:12:51 +02:00
goaaats
c72581d3bb
chore: add some timings for Tier 2 init 2022-06-21 21:52:44 +02:00
goaaats
ab9588838e
feat: provide cache file for client structs 2022-06-20 18:20:25 +02:00
goaaats
eca2b7f5ee
feat: basic .text scan cache
This currently saves cached jsons in the working directory, we might wanna change that
2022-06-19 20:40:15 +02:00
goaaats
7d49ebfc3c
fix: continue main thread on C++ side again, circumvents a race condition - we should fix this for good! 2022-06-03 17:45:54 +02:00
goaaats
21ae9c018c
chore: remove C# GameFixes infrastructure 2022-05-28 19:22:05 +02:00
goaaats
6c877723ce
feat: add TimingEvent, time IM scene init 2022-05-28 17:32:18 +02:00
goaaats
71aeee605d
feat: add Timings API 2022-05-27 19:21:55 +02:00
goaaats
8d304dc24b
feat: add thread safety helpers 2022-05-27 19:21:27 +02:00
goaaats
9bebbf2140
chore: undef BOOT_AGING by default 2022-05-27 14:18:12 +02:00
goaaats
d2335274ee
feat: delay main thread continuation until GameFixes are applied
This is a temporary workaround until we have infrastructure to intercept winapi in C++
2022-05-27 14:12:15 +02:00
goaaats
baad575c53
feat: add wndproc nullref fix 2022-05-26 01:43:10 +02:00
goaaats
76b2129a93
chore: purge april fools 2022 code 2022-04-03 03:02:31 +02:00
goaaats
a7a4633f2e
chore: remove defaults 2022-04-01 05:03:41 +02:00
goaaats
691c256d60
feat: respect game sound mixer settings for sfx 2022-04-01 03:03:59 +02:00
goaaats
a33aef5c45
feat: add timezone check 2022-03-31 20:24:23 +02:00
goaaats
804f5b767b
feat: more april fools work 2022-03-31 14:29:53 +02:00
goaaats
57bd6bc1e3
feat: april fools 2022 2022-04-01 10:53:56 +02:00
Soreepeong
f3588dfe23 Implement feature to use game resource fonts 2022-02-24 18:56:34 +09:00
goaaats
e9ae459c9e
fix: load DalamudInterface before loading plugins 2022-01-31 22:31:20 +01:00
goaaats
2d131fa1ec
feat: Dalamud TitleScreenMenu service 2022-01-31 18:24:45 +01:00
goaaats
2d90598b70
refactor: make all PluginInterface classes explicitly disposable 2022-01-08 03:00:56 +01:00
goaaats
5ec23ca866
feat: make internals visible to Dalamud.DevHelpers 2022-01-02 21:16:57 +01:00
goat
1561fbac00
Revert "refactor(Dalamud): switch to file-scoped namespaces"
This reverts commit b5f34c3199.
2021-11-18 15:23:40 +01:00
goat
b5f34c3199
refactor(Dalamud): switch to file-scoped namespaces 2021-11-17 19:42:32 +01:00