Skip to content

Conversation

@Someone-193
Copy link
Collaborator

Description

Describe the changes
See title. You put LabAPI plugin in plugins folder, and it enables like exiled plugin

What is the current behavior? (You can also link to an open issue here)
Exiled would ignore the dll after seeing no types can be plugin

What is the new behavior? (if this is a feature change)
Exiled will check non-exiled plugins to see if they are LabAPI plugins then create them if so

Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)
No?

Other information:
Very headachy, plz test this PR yourself with all the LabAPI plugins you can think of, also idk base Exiled loader behavior (which I wanted to mimic) so double check yaml errors get handled the same (like if yaml fails to parse config, we just reset the config to defaults right?)

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentations

Submission checklist

  • I have checked the project can be compiled
  • I have tested my changes and it worked as expected

Patches (if there are any changes related to Harmony patches)

  • I have checked no IL patching errors in the console

Other

  • Still requires more testing

idk how, but the plugin tried to load a plugin twice for me, this at least eliminates the weirdness of seeing the load message twice
@LumiFae
Copy link

LumiFae commented Oct 21, 2025

@Someone-193
Copy link
Collaborator Author

fyi, https://github.com/northwood-studios/LabAPI/blob/a50115ad5e316f914f96ff8b4f8d831abc8b44b6/LabApi/Loader/PluginLoader.cs#L171 exists. Probably should be used.

That only loads those methods into LabAPI's lists and hashsets etc... which is useless after LabAPI has loaded every plugin, the EnablePlugins / EnablePlugin methods also call Plugin::LoadConfigs which call a LabAPI extension method which checks for the configs in LabAPI's configs, which kinda defeats the purpose of this PR. Now it's not like I didn't see those methods, I just basically copy pasted what I needed from them and filled in the gaps. Also the PluginLoader class doesn't even have a method to disable plugins

/// Attempts to load a config for a LabAPI plugin.
/// </summary>
/// <param name="plugin">The LabAPI plugin.</param>
/// <remarks>I love it when the modding framework people call the best has all plugin loading methods private and the config loading methods don't take custom directory paths.</remarks>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💀🤯

@louis1706 louis1706 merged commit e4a57e0 into ExMod-Team:dev Nov 2, 2025
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants