Commit graph

179 commits

Author SHA1 Message Date
Soreepeong
7f5ef03917 Use EarlyLoadedService for anything that is not mandatory for kicking off plugin loader 2024-04-07 21:53:23 +09:00
nebel
3c471575af
Clear context menu callbacks when opening AddonContextMenuTitle (#1743) 2024-03-23 17:47:32 +01: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
Asriel Camora
5f62c703bf
Add IContextMenu service (#1682) 2024-02-29 15:15:02 -08:00
Soreepeong
b6d88f798a Make CJK imes work better 2023-12-17 11:59:11 +09:00
Haselnussbomber
8f243762cc
ChatGui: fix for new message sounds and interactable links (#1568)
* Change PrintMessage parameters type to byte

* Use Utf8String.AsSpan

* Fix InteractableLinkClickedDetour using the wrong variable
2023-12-08 16:23:04 -08:00
Haselnussbomber
9489c4ec20
Refactor ChatGui internals to use CS additions (#1520)
Co-authored-by: goat <16760685+goaaats@users.noreply.github.com>
2023-12-08 00:22:09 +01:00
srkizer
30c2872400
Fix ChatGui race condition (#1563) 2023-12-08 00:08:43 +01:00
srkizer
a0f4baf8fa
Less footguns in service dependency handling (#1560) 2023-12-06 21:29:46 -08:00
KazWolfe
93f08a4cb5
fix: Use SetValue for FlyText string arrays (#1532)
- Might fix a bug causing crashes with certain FlyText use cases, maybe.
- Also allows building Dalamud under .NET 8 local envs.
2023-11-18 12:17:18 -08:00
Aireil
4e1e9a0fce
fix: fly text atk arrays + offsets (#1523) 2023-11-10 21:03:28 +01:00
KazWolfe
403e94f9d0
chore: Bump CS to 9f22a2a2 (#1517)
- Revert of AtkResNode DrawFlags
2023-11-01 03:06:57 +00:00
KazWolfe
e538763f20
chore: Fix most 6.51 warnings (#1514) 2023-10-31 21:21:55 +01:00
nebel
6ba31d2752
Resize collision node instead of root node in DtrBar (#1494) 2023-10-20 20:19:37 +02:00
MidoriKami
0f349bb3dd
IChatGui Add Readonly RegisteredLinkHandlers (#1487) 2023-10-15 12:19:14 +02:00
goat
db5b9d1b83
fix: BaseAddressResolver should take a ISigScanner instead 2023-10-05 23:15:34 +02:00
MidoriKami
eb835548d3
Restore Create<AtkTextNode> (#1449) 2023-10-03 13:35:35 -07:00
Cara
b2b366032b
Fix dtr (#1446)
* Fix DtrBar

* Zero some things

* Update FFXIVClientStructs
2023-10-03 09:48:37 -07:00
KazWolfe
e3aa0b2141
Emergent 6.5 Hotfixes - Round 1 (#1444)
* fix: New sig for ToggleUiHide
* fix: New sig for AddonOnRequestedUpdate
* chore: Bump CS
2023-10-03 06:50:03 +00:00
MidoriKami
6a3e4906f3 Fix bug, and simplify logic 2023-09-23 23:53:25 -07: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
c767971a36
move around new Addon services a bit to match folder structure 2023-09-23 13:09:43 +02:00
goat
af52da06b0
merge master 2023-09-23 11:22:50 +02:00
MidoriKami
26838d9f5c Auto generate paramkeys and return handles to events. 2023-09-21 20:47:49 -07:00
MidoriKami
3b5995e6ab Fix DTR Null Reference on first login 2023-09-21 20:46:44 -07:00
MidoriKami
dae105d157 Account for UiScale when moving nodes 2023-09-20 13:19:06 -07:00
MidoriKami
48e60a7a5d Fix hidden nodes preventing native tooltips from propogating 2023-09-20 11:22:58 -07:00
MidoriKami
b26550eea9 Fix not applying spacing when set to grow from the right 2023-09-20 10:56:07 -07:00
MidoriKami
5f86496360 Add missing renames 2023-09-20 10:55:45 -07:00
MidoriKami
6f40449ab3 Adjust Namespaces 2023-09-20 09:46:16 -07:00
MidoriKami
c305c01dfd Nullify Scoped Service Delegates 2023-09-19 23:43:45 -07:00
MidoriKami
674f02136b [AddonEventManager] Properly track and cleanup events.
Also replaced DTR hooks with AddonLifecycle events.
2023-09-19 17:16:55 -07:00
MidoriKami
7a0f58a106
Remove PluginInterface from base Dtr service (#1399) 2023-09-18 00:19:31 -07:00
Aireil
4989e2b69b
refactor: rename fly text kind members 2023-09-18 03:55:43 +02:00
goat
9d4a2fad3b
fix dtr errors after merge 2023-09-17 23:39:09 +02:00
github-actions[bot]
e07be476f8 Merge remote-tracking branch 'origin/master' into v9-rollup 2023-09-17 21:30:16 +00:00
goat
c73b16f13d
Merge pull request #1281 from MidoriKami/IChatGui 2023-09-17 22:57:02 +02:00
goat
5809cf5d7c
chore: make all services with interfaces internal 2023-09-17 21:09:00 +02:00
goat
428e1afefd
fix warnings 2023-09-17 20:11:34 +02:00
Kaz Wolfe
a9a0980372
Fix random build warnings. 2023-09-16 18:07:19 -07:00
MidoriKami
7080087e9d Scope ChatGui 2023-09-13 19:06:28 -07:00
MidoriKami
6eba1415f5 Add IChatGui 2023-09-13 18:46:46 -07:00
MidoriKami
abf7c243e4
Add GameGuiPluginScoped (#1381) 2023-09-11 22:09:01 -07:00
MidoriKami
0f3b9eab8c
Add IToastGui (v9) (#1280) 2023-09-10 16:24:47 -07:00
MidoriKami
617c2bdb9c
Add IFlyTextGui (v9) (#1278) 2023-09-10 16:18:10 -07:00
MidoriKami
d378fe1dfc
Add IPartyFinderGui (v9) (#1279) 2023-09-10 15:20:44 -07:00
MidoriKami
f1c8201f1b Use vfunc call instead of hook 2023-09-09 18:49:04 -07:00
MidoriKami
692113958b Scope DTRBar 2023-09-05 14:35:08 -07:00
MidoriKami
166669597d [DtrBar] Probably fix concurrency issues 2023-09-05 14:03:37 -07:00
MidoriKami
153f7c45bf Fix non-reversed resizing logic 2023-09-05 00:46:45 -07:00