Commit graph

35 commits

Author SHA1 Message Date
goat
8afc02b364
Merge pull request #2574 from Haselnussbomber/update-AddonEventType
Update AddonEventType
2026-01-09 21:36:51 +01:00
Haselnussbomber
c93f04f0e4
Code cleanup (#2439)
* Use new Lock objects

* Fix CA1513: Use ObjectDisposedException.ThrowIf

* Fix CA1860: Avoid using 'Enumerable.Any()' extension method

* Fix IDE0028: Use collection initializers or expressions

* Fix CA2263: Prefer generic overload when type is known

* Fix CA1862: Use the 'StringComparison' method overloads to perform case-insensitive string comparisons

* Fix IDE0270: Null check can be simplified

* Fix IDE0280: Use 'nameof'

* Fix IDE0009: Add '.this'

* Fix IDE0007: Use 'var' instead of explicit type

* Fix IDE0062: Make local function static

* Fix CA1859: Use concrete types when possible for improved performance

* Fix IDE0066: Use switch expression

Only applied to where it doesn't look horrendous.

* Use is over switch

* Fix CA1847: Use String.Contains(char) instead of String.Contains(string) with single characters

* Fix SYSLIB1045: Use 'GeneratedRegexAttribute' to generate the regular expression implementation at compile-time.

* Fix CA1866: Use 'string.EndsWith(char)' instead of 'string.EndsWith(string)' when you have a string with a single char

* Fix IDE0057: Substring can be simplified

* Fix IDE0059: Remove unnecessary value assignment

* Fix CA1510: Use ArgumentNullException throw helper

* Fix IDE0300: Use collection expression for array

* Fix IDE0250: Struct can be made 'readonly'

* Fix IDE0018: Inline variable declaration

* Fix CA1850: Prefer static HashData method over ComputeHash

* Fi CA1872: Prefer 'Convert.ToHexString' and 'Convert.ToHexStringLower' over call chains based on 'BitConverter.ToString'

* Update ModuleLog instantiations

* Organize usings
2026-01-06 08:36:55 -08:00
Haselnussbomber
9b9a66bdd2
Update AddonEventType 2026-01-06 14:19:21 +01:00
MidoriKami
3c7dbf9f81 Remove AddonEventManagerAddressResolver.cs 2025-12-05 16:59:17 -08:00
Haselnussbomber
39e6186ba3
Fix AddonEventType.Resize 2025-10-24 03:07:36 +02:00
MidoriKami
6369982b48
IDtrBar Add Additional Click Events (#2325)
* Add additional dtr click events

* Let's just break things and make them really nice

* Add additional dtr click events

* Let's just break things and make them really nice

* Add additional dtr click events

* Let's just break things and make them really nice

* git is stupid

* Documentation fixing
2025-08-03 18:15:05 -07:00
Haselnussbomber
57c6089fc1
[Api13] Add native wrapper structs (#2330) 2025-08-03 17:43:52 -07:00
Haselnussbomber
564c220ed2
[Api13] Remove obsoletes (#2323)
* Remove IFate.HasExpBonus

* Remove IAddonEventManager.AddonEventHandler

* Remove obsolete filesystem functions from Util

* Remove more obsoletes
2025-07-26 12:50:42 -07:00
MidoriKami
13306e24ba
Refactor IAddonEventManager (#2299) 2025-06-17 10:51:00 -07:00
Haselnussbomber
911999e98c
Update AddonEventType (#2279) 2025-05-29 19:38:29 +02:00
Haselnussbomber
aea62732e5
Safer AddonEventManager node removal (#2232)
* Remove events on Framework thread

* Make sure the addon is not unloaded

* Cleanup node finding loop

* Wait for PluginEventController to be disposed
2025-04-22 07:34:19 -07:00
Haselnussbomber
98c5fbd666
Update AddonEventType (#2238)
* Update AddonEventType

* Fix copy paste mistake
2025-04-09 22:16:28 +02:00
Kaz Wolfe
2176b32219
chore: Bump ClientStructs and make it build again 2025-03-24 13:25:13 -07:00
KazWolfe
097f85eff6
Move more things to ClientStructs (#2080)
* GameGui uses CS methods now

Co-authored-by: Infi <infiziert@protonmail.ch>

* Shove even more things over to CS

* Clean up NetworkHandlers too

* bump cs so things build at least

---------

Co-authored-by: Infi <infiziert@protonmail.ch>
2024-11-14 08:29:28 -08:00
Kaz Wolfe
084f8b55e7
fix cs breaks 2024-11-11 08:54:57 -08:00
Kaz Wolfe
290539c499
Update ClientStructs 2024-06-21 17:36:55 -07:00
Kaz Wolfe
28ff62e488
fix errors/warnings 2024-06-16 16:45:18 -07:00
KazWolfe
0c8c4bfdbf
chore: Remove the [InterfaceVersion] attribute (#1844) 2024-06-16 13:01:17 +02:00
github-actions[bot]
4e331b1d85 Merge remote-tracking branch 'origin/master' into apiX-rollup 2024-06-08 23:34:08 +00:00
goat
31e541fae5 deps: upgrade StyleCop, fix warnings
...fixes new array initializer expression
2024-06-07 21:19:16 +02:00
aers
479049b78d
[apiX] dalamud fixes for CS updates (#1821)
* update CS & fix compilation issues

* update CS to latest commit

* update CS & change battlechara

* more CS updates and compilation fixes

* one last cs update
2024-06-03 12:49:44 -07:00
Kaz Wolfe
61f47449fd
Merge branch 'refs/heads/master' into apiX
# Conflicts:
#	lib/FFXIVClientStructs
2024-06-01 15:13:32 -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
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
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
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
88a8d45798
Accommodate nested AddonLifecycle event calls (#1698)
* Accommodate nested AddonLifecycle event calls

The game is free to call event handlers of another addon from one addon,
but the previous code was written under the assumption that only one
function may be called at a time. This changes the recycled addon args
into pooled args.

* Always clear addon name cache
2024-03-07 17:47:11 -08:00
MidoriKami
02b1f6e426
[AddonEventManager] Actually Ensure Thread Safety (#1589)
* Actually make AddonEventManager thread safe

* Ensure AddonEventHandlers are also thread safe

Additionally, use Guid instead of strings

* Make DalamudInternalKey readonly

* Properly use ConcurrentDict features

Fixes GUID not working
2023-12-31 14:30:21 -08:00
MidoriKami
df1cdff1a5
AddonEventManager fix thread safety (#1576)
Co-authored-by: goat <16760685+goaaats@users.noreply.github.com>
2023-12-16 21:01:40 +01:00
srkizer
a0f4baf8fa
Less footguns in service dependency handling (#1560) 2023-12-06 21:29:46 -08:00
srkizer
b66be84b93
Better Service dependency handling (#1535) 2023-11-28 22:20:16 +01:00
MidoriKami
9a8f370975
Update AddonEventType (#1516) 2023-11-10 21:03:54 +01:00
goat
db5b9d1b83
fix: BaseAddressResolver should take a ISigScanner instead 2023-10-05 23:15:34 +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
c767971a36
move around new Addon services a bit to match folder structure 2023-09-23 13:09:43 +02:00