Commit graph

933 commits

Author SHA1 Message Date
goat
b11b769292
Merge pull request #2453 from Exter-N/get-plugin-by-assembly
Some checks failed
Tag Build / Tag Build (push) Successful in 3s
Build Dalamud / Build on Windows (push) Has been cancelled
Build Dalamud / Check API Compatibility (push) Has been cancelled
Build Dalamud / Deploy dalamud-distrib staging (push) Has been cancelled
Add functions to get a plugin by assembly
2025-11-12 01:33:24 +01:00
Haselnussbomber
bf0bd64faf
Fix IsAutoUpdateComplete throwing when unloaded 2025-11-11 23:37:10 +01:00
Exter-N
65237f84a2 Add functions to get a plugin by assembly
This is intended for advanced IPC scenarios, for example, accepting
a delegate or an object and identifying which plugin it originates
from, in order to display integration information to the user, and/or
to release references when the originating plugin is unloaded/reloaded
if it forgot to clean after itself.
2025-11-11 20:26:54 +01:00
goat
3c3eb9159c
Merge pull request #2420 from Haselnussbomber/add-agent-events
Add events based on AgentUpdateFlag
2025-11-08 11:44:44 +01:00
Haselnussbomber
8fd49f261a
Unify agent update events into AgentUpdate 2025-11-08 11:31:10 +01:00
goat
32e04458c6
Merge pull request #2416 from Haselnussbomber/fix-testing-api-level
Fix for testing plugins with older stable releases
2025-11-04 20:36:49 +01:00
goat
fc480d8542
Merge pull request #2431 from grittyfrog/push-plttolzpzvkr
Plugin-registerable self tests
2025-11-04 20:32:36 +01:00
Haselnussbomber
08a3998854
Use IsClientIdle in CanUpdateOrNag 2025-10-29 02:31:42 +01:00
Haselnussbomber
76dab05cbd
Allow auto updates when on Free Trial 2025-10-29 02:11:46 +01:00
Haselnussbomber
87e391958e
Lock plugin list in NotifyPluginsForStateChange 2025-10-22 19:14:29 +02:00
Haselnussbomber
0b6f3b8bcf
Add events based on AgentUpdateFlag 2025-10-19 16:51:47 +02:00
GrittyFrog
ae777000e2 Plugin-registerable self tests
The goal of this change is to let plugins register their own self-tests. 

We do this through the `ISelfTestRegistry` interface. For a plugin it
would look like this:

```csharp
[PluginService]
public ISelfTestRegistry SelfTestRegistry

// Somewhere that gets called by your plugin
SelfTestRegistry.RegisterTestSteps([
  new MySelfTestStep(),
  new MyOtherSelfTestStep()
])
```

Where `MySelfTest` and `MyOtherSelfTest` are instances of
the existing `ISelfTestStep` interface.

The biggest changes are to `SelfTestWindow` and the introduction of
`SelfTestWithResults`. I wanted to make sure test state wasn't lost when
changing the dropdown state and I was finding it a bit annoying to work
with the Dictionary now that we can't just rely on the index of the
item.

To fix this I moved all the "test run" state into `SelfTestWithResults`,
most of the changes to `SelfTestWindow` are derived from that, other
then the addition of the combo box.

The documentation for this service is a bit sparse, but I wanted to put
it up for review first before I invest a bunch of time making nice
documentation. 

I'm keen to hear if we think this is useful or if any changes are
needed.
2025-10-13 19:04:08 +11:00
Haselnussbomber
9091216e1c
Update ClientState (#2410)
* Add MapChanged event to ClientState

* Add PublicInstanceId with event to ClientState

* Set eventhandlers to null

* Rework events and add ZoneInit event
2025-09-29 09:02:53 -07:00
Haselnussbomber
9c5e4f5a32
Add JsonIgnore attribute on IsAvailableForTesting 2025-09-28 16:21:25 +02:00
Haselnussbomber
87adb2dfb7
More expressive code 2025-09-28 16:00:09 +02:00
Haselnussbomber
8edbc0ee78
Ignore user testing opt-in for manifest eligibility check 2025-09-28 15:59:08 +02:00
Haselnussbomber
191aa8d696
Move IsAvailableForTesting to IPluginManifest 2025-09-28 15:31:46 +02:00
MidoriKami
f07b308757
Add Generic Helper (#2403)
Some checks failed
Tag Build / Tag Build (push) Successful in 3s
Build Dalamud / Build on Windows (push) Has been cancelled
Build Dalamud / Check API Compatibility (push) Has been cancelled
Build Dalamud / Deploy dalamud-distrib staging (push) Has been cancelled
2025-09-09 17:53:38 +10:00
Blair
005699e472
Allow versionless bans (#2381)
Some checks failed
Tag Build / Tag Build (push) Successful in 12s
Build Dalamud / Build on Windows (push) Has been cancelled
Build Dalamud / Check API Compatibility (push) Has been cancelled
Build Dalamud / Deploy dalamud-distrib staging (push) Has been cancelled
2025-08-22 13:03:44 +00:00
Haselnussbomber
e2f3fdd0ff
ISeStringEvaluator: Add ReadOnlySpan<byte> support (#2370)
* Add EvaluateMacroString ROS<byte> overload

* Add implicit ROS<byte> to SeStringParameter cast
2025-08-15 09:11:25 -07:00
Haselnussbomber
27f924f3b1
Restore commandId parameter (#2349) 2025-08-06 19:17:34 -07:00
Blair
8d29e6b44d
Interface ActivePluginsChangeEventArgs (#2341) 2025-08-05 10:38:11 -07:00
MidoriKami
bf5fcaaf00
IObjectTable Helpful Enumerables (#2328)
* Add ObjectTable Enumerables

* Put kind check on the correct function
2025-08-04 15:47:39 -07:00
Haselnussbomber
58fbff7c56
Update text-related ImGui calls (#2337)
* Update text-related ImGui calls

* Use ImU8String for SafeTextColored

* Restore wrapped calls

* Update MenuItem call

* Use ImGui.Text over ImGui.TextUnformatted

* Add ImGui.TextColoredWrapped

* Obsolete SafeText helpers

* Fix obsoleted calls

* SafeTextColored didn't exist before imgui-bindings

* Remove %% replacements
2025-08-04 15:46:43 -07:00
Kaz Wolfe
bd52c60c6f
Merge branch 'imgui-bindings' into api13
# Conflicts:
#	Dalamud/Game/Gui/GameGui.cs
#	Dalamud/Interface/Internal/UiDebug.cs
#	Dalamud/Interface/Internal/Windows/Data/Widgets/AddonWidget.cs
#	Dalamud/Interface/Internal/Windows/SelfTest/Steps/ItemPayloadSelfTestStep.cs
2025-08-04 11:30:14 -07:00
Kaz Wolfe
cb29322968
chore: Remove IGameNetwork
- Deprecated in favor of hooks. See #2241.
- Subject to Goat yelling at me.
2025-08-03 18:39:38 -07:00
Haselnussbomber
191dfb57e3
[API13] Fire ActivePluginsChanged after a plugin loaded/unloaded (#2334)
* Fire ActivePluginsChanged after a plugin loaded/unloaded

* Add ActivePluginsChangedEventArgs

* Use past tense
2025-08-03 18:28:44 -07: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
63e7cb25b5
[Api13] Update ChatLinkHandler functions (#2322)
* Update ChatLinkHandler functions

- Move functions to IChatGui
- Switch CommandId to type Guid and generate them automatically

* Remove unused field
2025-08-03 18:07:21 -07:00
Haselnussbomber
ff934d981c
Remove Experimental from ISeStringEvaluator (#2327) 2025-08-03 17:44:16 -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
Kaz Wolfe
f63ee5cb76
Merge branch 'master' into imgui-bindings 2025-07-03 19:02:35 -07:00
srkizer
03e728e129
Use EnumerateInvocationList instead of GetInvocationList (#2303) 2025-06-23 22:09:48 +02:00
goaaats
90e426b325 Remove ImGui.NET entirely 2025-06-22 22:21:12 +02:00
goaaats
95ec633cc5 merge 2025-06-22 21:39:38 +02:00
MidoriKami
13306e24ba
Refactor IAddonEventManager (#2299) 2025-06-17 10:51:00 -07:00
Haselnussbomber
e20f132abe
Add ISeStringEvaluator.EvaluateMacroString (#2281) 2025-05-29 19:38:10 +02:00
goaaats
b4e62571a6 Add option to auto-update disabled plugins 2025-05-10 01:10:53 +02:00
srkizer
4dce0c00e8
Implement DrawListTextureWrap (#2036)
* Implement DrawListTextureWrap

* Fix unloading

* minor fixes

* Add CreateFromClipboardAsync

---------

Co-authored-by: goat <16760685+goaaats@users.noreply.github.com>
2025-05-09 22:47:42 +02:00
goaaats
df8de39098 Even more boot load logging 2025-05-07 23:49:32 +02:00
goaaats
ac14d61a86 Add some more logging to boot plugin loads 2025-05-07 22:40:05 +02:00
goaaats
85b77226e9 Clarify wording in settings and error notifications 2025-05-02 02:22:06 +02:00
goaaats
ddf0a97c83 Add plugin error notifications, per-plugin event invocation wrappers 2025-05-01 20:47:03 +02:00
goaaats
69d8968dca IoC: Allow private scoped objects to resolve singleton services 2025-05-01 14:47:02 +02:00
goat
f5d93fb08e
Add MinimumDalamudVersion to manifest, validate at install, update and load (#2248) 2025-04-28 21:09:40 +02:00
goaaats
a925e37ceb Actually respect remember state flag 2025-04-26 12:47:44 +02:00
goaaats
731d7e0f6e Un-whether-or-not the codebase 2025-04-25 22:49:05 +02:00
goaaats
f4102db488 Add "startup behavior" to profiles
Choose between remember, always enable, always disable
2025-04-25 22:49:05 +02:00
goaaats
e29171cc99 Fix race condition in plugin load
When opening the installer while boot plugins are still loaded, it may have been possible for plugins to be added to the installed plugins list twice, causing various statekeeping issues
2025-04-24 21:59:36 +02:00