Commit graph

430 commits

Author SHA1 Message Date
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
goaaats
b4e62571a6 Add option to auto-update disabled plugins 2025-05-10 01:10:53 +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
goaaats
b810154125 Add MinimumDalamudVersion to manifest, validate at install, update and load 2025-04-15 21:29:18 +02:00
Haselnussbomber
499952b3d2
SeStringEvaluator: Fix HeadAll not capitalizing correctly (#2240)
* Fix obsoletes

* Fix HeadAll not capitalizing correctly

* Fix incorrect denoun cases in SeString Creator

* Implement Utf8String.ToUpper in C#

* Handle characters with accents too

* Add remarks to ToUpper functions
2025-04-09 22:13:11 +02:00
goaaats
ad3b0f0194 Fix some warnings 2025-04-08 22:21:04 +02:00
goaaats
0690cce995 wip bindings upgrade 2025-04-06 20:59:23 +02:00
goaaats
34ca8b8f99 Fix updates failing due to flipped WorkingPluginId check 2025-04-01 19:58:19 +02:00
goaaats
34679d085b Extract plugin to temp directory before copying to final location, some minor cleanup 2025-04-01 18:55:27 +02:00
Vanillaaaa
9815cf1d88
perf: show whether plugin toggle is enable or disable (#2189) 2025-03-23 21:38:47 -07:00
KazWolfe
a656fefb2b
feat: Allow /xldev to disable Safe Mode (#2166)
- Adds new menu item to /xldev to disable Safe Mode, allowing users to load plugins again.
  - Safe mode cannot be re-enabled once disabled.
- Add new ModuleLog.Create<T> for eventual ILogger magic
- Make safe mode writable
- Remove redundant check in CheckPolicy
2025-01-09 22:01:46 +01:00
goat
e0eca2ac70 don't auto-enable imgui asserts for now, until we have better tracing 2025-01-02 17:29:49 +01:00
goat
2e2feb144f fix some warnings 2024-12-26 14:11:14 +01:00
goat
776a838dbe remove legacy MonoMod patches for codebase and assembly location 2024-12-25 23:48:07 +01:00
goat
b79c646b9b only turn ImGui asserts on if we are actually loading a devplugin 2024-12-25 23:48:07 +01:00
goat
a1ae33bfee don't set plugin to fail state if we threw InvalidPluginOperationException
These are supposed to indicate to the user that they called a function at the wrong point in time. We don't want to actually mutate the state in that case.
2024-12-23 21:03:31 +01:00
goat
8276c19c6f add plugin enable/disable/toggle commands 2024-12-23 21:00:02 +01:00
goat
8572ed8b1e ProfileCommandHandler -> PluginManagementCommandHandler 2024-12-23 17:05:35 +01:00
Infi
2e6cb6ef00
- Add chat notification back to AutoUpdate (#2146)
- ImRaii UI elements in AutoUpdate tab
- Fix scoping in IconButton
2024-12-19 22:19:50 +01:00
srkizer
db4b6cea2c
Avoid re-creating title version string every frame (#2117)
* Avoid re-creating title version string every frame

* Marked title version string that it has been changed by Dalamud by
  appending a newline payload with a string expression embedded within,
  which the game will ignore (effectively `<br(!Dalamud!)>`.)
* Added `PluginManager.LoadedPluginCount` which will count the number of
  loaded plugin without making a copy of the plugin list.
* Made TitleScreenMenuWindow.OnVersionStringDraw` update the title
  version text addon only if number of loaded plugin changes or the text
  is missing the custom suffix from the first point.

* Use OriginalTextPointer to determine if SetText(ROS) has been called
2024-11-25 17:09:43 -08:00
Julian
57cc2f36f9
feat: Encourage developers to use DLLs for devPlugins (#1958)
* Add file dialog to add a dev plugin
* Require dev plugins to be paths to the DLL
* Only allow .dlls in the dev plugin setting entry
* Update dev plugin location hint
* update wording

---------

Co-authored-by: KazWolfe <KazWolfe@users.noreply.github.com>
2024-11-12 08:27:23 -08:00
Kaz Wolfe
720b1676e5
Merge branch 'master' into api11
# Conflicts:
#	Dalamud/Game/ClientState/Fates/Fate.cs
#	Dalamud/Game/Gui/NamePlate/NamePlateUpdateContext.cs
#	Dalamud/Interface/Internal/DalamudInterface.cs
#	Dalamud/Interface/Windowing/Window.cs
#	Dalamud/Utility/StringExtensions.cs
#	lib/FFXIVClientStructs
2024-11-11 08:38:20 -08:00
Haselnussbomber
c7facaf072
Rewrite parts of ClientState (#2065)
- Completely relies on hooks now, instead of the Framework.Update loop
- Support for Logout codes
2024-11-11 08:28:40 -08:00
Aireil
f3bd83fbe9
repos: warn on missing testing API (#2056)
* repos: warn on missing testing API

* repos: reword missing testing API warning
2024-11-04 15:20:54 +01:00
Asriel Camora
0b9af0e3f4
Update to Lumina 5 (new Excel parsing) (#2022)
* Refactor and upgrade to new excel design

* Obsolete ExcelResolver<T> and use only RowRef<T>

* Better benchmarking for Lumina

* Add custom game-supported RSV provider

* Refactor and move Lazy<T> and nullable/cached row objects to RowRefs

* Convert IRSVProvider to delegate, resolve strings by default

* Split IExcelRow into IExcelSubrow

* Extra lumina documentation

* Minor RSV CS fixes

* Fix UIGlowPayload warning

* Fix rebase

* Update to Lumina 5
2024-10-20 19:59:03 -07:00
SlashNephy
98f58b3f89
Respect Dalamud chat type setting in changelogs message (#2041) 2024-09-15 18:20:42 +00:00
Soreepeong
6db7acca20 Do not throw already unloaded exception on exit 2024-08-18 08:18:30 +09:00
Soreepeong
0a8f9b73fb Make ServiceScope IAsyncDisposable
ServiceScope.Dispose was not waiting for scoped services to complete
disposing. This had an effect of letting a new plugin instance register
a DtrBar entry before previous plugin instance's entry got unregistered.

This change also cleans up unloading procedure in LocalPlugin.
2024-08-18 07:58:45 +09:00
srkizer
c25f13261d
Make DtrBar more threadsafe (#1978)
* Changed DtrBar to use ReaderWriterLockSlim so that there exists only one storage of entries, preventing possible desync.
* DtrBarEntry will now hold a reference to the LocalPlugin that created the entry, so that DtrBarPluginScoped can defer plugin related handling to the main service.
* Marked DtrBarEntry class itself to be turned internal in API 11.
* Made IDtrBar.Entries return an immutable copy of underlying list of DtrBar entries, that will be freshly created whenever the list changes.
2024-07-28 14:14:37 +02:00
KazWolfe
79971fc8d6
fix: Use AssemblyVersion for UserAgent header (#1974)
- Fixes a bug with local builds not being able to make HTTP requests
2024-07-25 21:30:36 +02:00
goat
8c593bc31d
Merge pull request #1966 from Soreepeong/fix/servicescope
ServiceScope fixes
2024-07-25 21:30:14 +02:00
goat
bd170ee74a
Merge pull request #1945 from KazWolfe/fixed-versioning
feat: Use new versioning strategy
2024-07-25 01:01:50 +02:00
Soreepeong
4b98f4e60a Remove nullability from IServiceScope.CreateAsync 2024-07-24 18:57:44 +09:00
goat
21063217a5 pi: add "hidden" tab if there are any hidden plugins 2024-07-20 02:17:27 +02:00
Kaz Wolfe
2bdd0dbe7b
Use new version format in a few other places 2024-07-18 21:00:41 -07:00
goat
baa875f516 autoupdate: add missing space after comma 2024-07-08 20:50:00 +02:00
goat
77abd0455d autoupdate: print updated plugins in chat 2024-07-08 19:35:45 +02:00
goat
34a51d0119 pm: make sure that we don't stay on framework thread when loading and unloading
Without ConfigureAwait(false), all of the continuations below the await will be blocking the main thread
2024-07-08 19:21:44 +02:00
KazWolfe
82e6476ab6
fix: Fix auto-updates every 30 seconds (#1899)
- If no updates are found, properly defer.
2024-07-07 20:39:10 +02:00
goat
df51fc17e6 pm: don't install updates twice, don't globally lock the plugin list while updates are installing 2024-07-07 12:22:04 +02:00