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.
* 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
* Implement Print methods that work with Lumina SeString/ReadOnlySeString
* null terminate before passing to Utf8String
* Rename XivChatEntryReadOnly to XivChatEntryRaw
* Fix error from wrong conversion method
* Follow Rider suggestion
* Switch from AppendMacroString to BeginMacro for optimization
* More optimization suggested by kizer
* More kizer suggested optimizations
* Fix small mistake
* Use XivChatEntry and read/write to Byte fields accordingly
* 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>
* Remove unused code from ChatHandlers
* Replace sigs in DalamudAtkTweaks
* Resolve LocalContentId by using PlayerState.ContentId
* Resolve BuddyList address via UIState.Buddy
* Resolve ObjectTable address via GameObjectManager
* Resolve FateTable address via FateManager
* Resolve GroupManager address via GroupManager
* Resolve JobGauges address via JobGaugeManager.CurrentGauge
* Simplify ItemHover/Out event
* Resolve ToggleUiHide address via RaptureAtkModule.SetUiVisibility
* Resolve PopulateItemLinkObject via InventoryItem.Copy
* Add byte[].AsPointer extension
* Resolve addresses used by ToastGui via UIModule functions
* Use Length from Span as ObjectTableLength
* Replace OpenMapWithMapLink with CS call
* Resolve FrameworkAddressResolver with CS vtable
* Drop unnecessary ToArray in HandlePrintMessage
* Clean up event calls in HandlePrintMessageDetour
* Simplify LocalContentId further
This pointer can't be null, because it's part of the .data section.
* Compare SeStrings in FlyTextGui with SequenceEqual
* Use CS types in FlyTextGuis internal code
* Simplify reading SeStrings internally
* Remove AsPointer again
* Resolve Number/StringArray by type in NamePlateGui
* Fix crashes in HandlePrintMessageDetour
* Resolve InteractableLinkClicked with LogViewer.HandleLinkClick
* 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
- New methods `HasAction`, `HasFunction`, and `SubscriptionCount` to allow making better decisions about IPC logic.
- Some better documentation for the call gates.
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.
* prelim uld data display
* change uld list to a string array
* fix some uld parts not having their texture id set.
* update uld browser to use themes and get locations from sig scanning
* undo ClientStructs change during rebase
* fix capitalization during rebase
* 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.