Commit graph

75 commits

Author SHA1 Message Date
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
Haselnussbomber
7280744def
Update Lumina to 3.17.0 (#1780)
* Update Lumina to 3.17.0

* Dispose GameData in DataManager

* Update Microsoft.Extensions.ObjectPool
2024-04-21 15:22:25 +02: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
github-actions[bot]
b68da56e74 Merge remote-tracking branch 'origin/master' into net8-rollup 2024-02-29 23:15:23 +00:00
Haselnussbomber
914cd363fd
Bump Lumina to 3.16.0 2024-02-15 01:45:10 +01:00
github-actions[bot]
5fbba87e59 Merge remote-tracking branch 'origin/master' into net8-rollup 2024-02-11 18:20:47 +00:00
Soreepeong
871deca6e9 Remove PostPromotion event
`PostPromotion` is removed, as `IFontHandle.ImFontChanged` now does the job. It also removes the possibility that resources may get disposed while post promotion callback is in progress.

* `IFontHandle.ImFontChanged` is now called with a locked instance of the font.
* `IFontHandle.ImFontLocked`: Added `NewRef` to increase reference count.
2024-01-23 23:49:57 +09:00
Soreepeong
af1133f999 Determine optional assets availability on startup 2024-01-21 04:21:26 +09:00
github-actions[bot]
de584c8fa0 Merge remote-tracking branch 'origin/master' into net8-rollup 2023-11-28 21:55:56 +00:00
srkizer
40e90a39c8
Add Dalamud.CorePlugin.json (#1533) 2023-11-21 22:30:38 -08:00
goat
8a2ba70cc3
chore: upgrade projects to net8 2023-11-14 20:23:02 +01:00
liam
9850ac3f15
Bump Luminas (#1499)
* Bump Luminas

* Bump Excel
2023-10-24 18:03:55 +02:00
goat
972abe78ce
Revert "Bump Luminas (#1495)" (#1497)
This reverts commit 3fb5bcc348.
2023-10-21 00:38:11 +02:00
liam
3fb5bcc348
Bump Luminas (#1495)
* Bump Luminas

* Bump CorePlugin too
2023-10-20 20:11:13 +02:00
goat
482a607335
fix warnings 2023-10-03 19:04:04 +02:00
goat
5cdb707ef3
deps: upgrade Lumina.Excel to 6.5.0 2023-10-03 19:03:50 +02:00
goat
4a1b220d4a
fix: register interfaces for provided services 2023-09-30 01:09:25 +02:00
goat
c55b93d3c2
chore: remove IDalamudPlugin.Name 2023-09-23 11:17:53 +02:00
Kaz Wolfe
4f8de2e205
Obsolete (static) PluginLog for future removal
- Mark PluginLog as obsoleted and pending removal, encouraging users to switch to IPluginLog.
- Remove internal references to PluginLog.
2023-09-22 17:01:10 -07:00
Kaz Wolfe
4870428bac
Bump Lumina to 3.11.0 2023-09-11 21:32:56 -07:00
KazWolfe
8c51bbf0f8
Add Scoped Plugin Log Service (#1341)
Adds a new `IPluginLog` service to Dalamud, which provides scoped logging on a per-plugin basis. This improves log performance for plugins, and paves the way for per-plugin log levels.

* Plugins must opt in to enable verbose logging by setting `IPluginLog.MinimumLogLevel` to `LogEventLevel.Verbose`. This option is automatically enabled for dev plugins and is currently not persisted.
    * All release plugins will default to `Debug` as their lowest allowed log level.
    * This setting does not override the global log level set in Dalamud.
2023-09-07 17:58:41 +00:00
goat
3272dbb0e2
feat: add OpenMainUi event on UiBuilder, respective button in PI 2023-08-22 22:29:09 +02:00
goat
aa2cd47ef3
fix warnings in injector 2023-06-09 23:38:15 +02:00
goat
166301f56f
fix warnings in Dalamud 2023-06-09 23:38:13 +02:00
KazWolfe
dd1586d5d6
6.4 Patch Rollup (#1206)
Fix Dalamud for 6.4, hopefully.
2023-05-23 18:41:59 +00:00
goat
daa9f72218
IOC: scoped/on-demand services (#1120) 2023-05-21 22:43:28 +02:00
goat
dd8921a1f3
deps: upgrade Lumina to 3.10.2 2023-04-06 21:42:49 +02:00
Ava Chaney
c71f876fb1
release: 7.5.0.0 (#1175)
* Update ClientStructs

* chore: bump Lumina -> 3.10.1, Lumina.Excel -> 6.3.2

* build: 7.4.10.0

* build: 7.5.0.0

---------

Co-authored-by: github-actions[bot] <noreply@github.com>
2023-04-05 00:23:35 -07:00
goat
cc4a0652c2
feat: configurable log path 2023-01-11 18:37:33 +01:00
goat
4f74b7401a
deps: bump Newtonsoft.JSON to 13.0.2 2022-12-10 13:17:56 +01:00
goat
05e3330789
chore: upgrade all projects to .NET 7 2022-12-07 22:59:44 +01:00
Aireil
670166e7f8
deps: upgrade Lumina (#983) 2022-08-27 15:02:07 +02:00
goat
08e76364a6
deps: upgrade Lumina 2022-08-24 08:19:31 +02:00
goaaats
7648566325
Merge branch 'net5' 2022-06-25 14:18:18 +02:00
kizer
7760457dc5
Make plugins load asynchronously (#896) 2022-06-25 14:12:46 +02:00
goaaats
369ecad03f
Merge branch 'net5' 2022-06-24 14:17:17 +02:00
goaaats
7f5507dae9
deps: update Lumina to 3.7.0 2022-06-24 14:16:20 +02:00
goaaats
5b493b0043
Merge branch 'net5' 2022-06-23 13:54:07 +02:00
goaaats
62d34f326a
deps: update Lumina to 3.6.0 2022-06-23 13:53:30 +02:00
goaaats
a78754ce22
Merge branch 'net5' 2022-06-22 17:38:01 +02:00
goaaats
9010efae2d
deps: update Lumina in CorePlugin 2022-06-22 02:23:35 +02:00
goaaats
cd2649fec1
deps: update Lumina(CorePlugin) 2022-06-17 19:07:11 +02:00
goat
1395e3a555
Merge branch 'net5' 2022-04-25 20:05:51 +02:00
goat
96ed22534c
chore: fix some warnings, cleanup 2022-04-25 20:04:17 +02:00
goaaats
0fb01b1b84
deps: update Lumina & Lumina.Excel 2022-04-14 00:50:35 +02:00
goaaats
a43b5f8438
chore: upgrade projects to net6.0 2022-03-28 17:28:32 +02:00
goat
8c66acf950
chore: language level 10 for all projects 2022-02-13 04:49:33 +01:00
goaaats
2d90598b70
refactor: make all PluginInterface classes explicitly disposable 2022-01-08 03:00:56 +01:00
goat
debde0f518
deps: update FFXIVClientStructs 2021-12-13 16:16:03 +01:00