Commit graph

50 commits

Author SHA1 Message Date
AzureGem
9f9a41c768
Do not load plugins before performing checks
Modify the logic to perform all checks before proceeding to load the assembly and create an instance of the plugin

- Removed `bool preloaded` in exchange to a `null` check in `pluginDef`.
- Moved all checks into a common place before loading the assembly and before creating an instance.
  - Applicable Version check
  - Dalamud API check
  - Banned Plugins check
- Checks will only be performed on raw / developer plugins.
- Removed the old banned plugin code since the data is now in `bannedplugins.json`.

All checks in the types foreach is removed since all the checks would had already be performed before then *(Only developer plugins has no pluginDef)*

This should avoid mysterious crashes in future updates without making any major API / behavior changes.
2021-04-17 01:18:36 -04:00
goat
d53bc4b1cb
feat: add support for bannedplugin.json to catch failing plugins 2021-04-12 00:55:36 +02:00
goat
9751a9fed2 feat: up DalamudApiLevel to 3 2021-04-01 23:09:28 +02:00
goat
aca3da09b1 refactor: new code style in PluginManager.cs 2021-04-01 21:11:32 +02:00
Aireil
9e4e4bd865 Fix update behavior for testing and outdated plugins 2021-02-17 10:47:58 +01:00
goaaats
32a72e41f9
Merge pull request #261 from Aireil/add_loaderexceptions
Log LoaderException exceptions when loading plugins
2021-02-15 13:30:32 +01:00
Aireil
2e4f11b2ad Simplify casting of ReflectionTypeLoadException 2021-02-15 13:26:57 +01:00
Aireil
34a1eb0b9c Log LoaderException exceptions when loading plugins 2021-02-15 13:16:21 +01:00
goat
b2897315b4 fix: ban unsupported SonarPlugin 2021-02-10 15:39:54 +01:00
goat
ca3646b472 feat: also ban fps plugin 1.4.2.0 2021-02-10 03:45:10 +01:00
goat
681ba7f189 feat: ban ping plugin 1.11.0.0 2021-02-10 03:43:11 +01:00
goaaats
e1318155d0
Merge pull request #259 from Aireil/fix_devplugins_load_priority
Fix dev plugins loading late regardless of load priority
2021-02-10 02:19:21 +01:00
Aireil
81ec4a27f5 Fix dev plugins loading late regardless of load priority 2021-01-29 23:16:34 +01:00
goat
301cbc12b8 deps: update ImGuiScene 2021-01-22 22:39:42 +01:00
goat
3ee8e02f02 refactor: move Dalamud interface into a class 2021-01-16 18:06:10 +01:00
Liam
87b834abd7 fix: null fix and fix for dev plugins 2021-01-06 01:31:36 -05:00
Liam
feebb03f8c feat: plugin load priority support in plugin definitions 2021-01-06 00:52:24 -05:00
Aireil
047b411cda Add a fallback when .disabled file creation fails 2020-12-31 21:17:34 +01:00
goat
67b7dcaf74 feat: list installed plugins separately, also list hidden and dev plugins in installer 2020-12-09 13:43:01 +01:00
Aireil
61e0c059fd Disable plugins with incompatible API level 2020-12-09 01:49:33 +01:00
goat
04b83f9533 fix: raise DALAMUD_API_LEVEL 2020-12-08 09:06:55 +01:00
goat
d392ee9afa fix: also load plugins with API level higher than current dalamud 2020-12-03 20:48:08 +01:00
goat
0741da0f7b fix: correctly check for .testing 2020-10-03 18:04:33 +02:00
goat
e498da8079 fix: add flag for testing plugins, don't load testing plugins if testing is disabled 2020-10-02 20:57:56 +02:00
goat
b7e36fb2e6 refactor: clean up some warnings 2020-08-14 02:34:03 +02:00
goat
a9b388f9de feat: add PluginLoadReason to plugin interface 2020-07-21 10:32:05 +02:00
goat
ad93b6324f feat: add DALAMUD_API_LEVEL 2020-06-11 14:04:11 +02:00
goat
7ae3a92968 refactor: make PluginManager internal 2020-06-08 14:06:09 +02:00
goat
aa84c06cd1 feat: add "updated" label to plugin installer when a plugin was updated 2020-06-08 14:05:23 +02:00
goat
09295d4e61 feat: add plugin ipc 2020-05-14 21:50:04 +02:00
goat
62ef6034ee fix: work around bad assembly version in chat extender json 2020-04-26 18:43:40 +02:00
goat
b8b05ae998 fix: don't load ChatExtender if it's <1400 (hack, remove this some time) 2020-04-26 15:15:50 +02:00
meli
ad6bf53a6d Fix for the change to Assembly.LoadFile() no longer correctly handling plugin's local dll dependencies. We still have to use LoadFile() to allow duplicate names, but now we also have to fixup assembly resolution to 'restore' the default behavior. This adds a global appdomain handler that just tries to load dependencies from the local directory of the requesting dll, if other methods have already failed. 2020-03-24 20:05:48 -07:00
goat
7463937afe fix: close ".disabled" file immediately 2020-03-23 20:23:36 +09:00
meli
760dee2322 fix not being able to load multiple plugins with the same name, as when updating in-game 2020-03-22 07:44:05 -07:00
meli
e9d4d57696 don't even attempt to load assemblies for disabled or invalid plugins; fixes issues where starting the game with multiple versions, even disabled, could load the wrong one and block other versions 2020-03-22 07:17:56 -07:00
goat
a7da9c43db fix: don't die entirely when one plugin fails init 2020-03-18 15:33:32 +09:00
goat
6c7592ec17 fix: remove shitty feature interface stuff, do it in UiBuilder 2020-03-18 12:40:56 +09:00
goat
f747b2f9c0 fix: don't instantiate plugins from duplicated AssemblyNames 2020-03-13 20:52:29 +09:00
meli
821bcab17a actually fix devPlugins... 2020-03-04 14:39:38 -08:00
meli
1e3b39b8d9 fix devPlugins not being able to load 2020-03-04 14:10:25 -08:00
goat
6529b3429f fix: save plugin configs with type, in external directory 2020-03-03 22:45:16 +09:00
goat
3640d30cc7 feat: plugin updates, more installer stuff 2020-02-27 20:43:58 +09:00
goat
877b95eca6 fix: some more plugin installer stuff 2020-02-23 22:34:08 +09:00
goat
15d340d0ed fix: network sig, some installer bugs 2020-02-21 00:15:49 +09:00
goat
fd95379aa3 feat: add plugin installer 2020-02-20 18:07:00 +09:00
goat
bfbdaa5fc6 feat: plugin info command 2020-02-12 01:20:35 +09:00
goat
b3e6ab7850 fix: load plugins in subdirectories 2020-01-27 17:32:28 +09:00
goat
43d514ab9b feat: plugin config WIP 2019-12-28 16:49:41 +09:00
goat
ac838687f8 Initial commit 2019-09-21 22:29:38 +09:00