Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[EXILED::Loader] Allow port-binded plugin loading #89

Open
wants to merge 7 commits into
base: dev
Choose a base branch
from

Conversation

FoxWorn3365
Copy link

@FoxWorn3365 FoxWorn3365 commented Sep 6, 2024

Description

Describe the changes

With this pr I've made possible to allow EXILED users to load plugins both globally or only binded to a server port.

What is the current behavior?

EXILED loads every plugin found in EXILED/Plugins.

What is the new behavior?

EXILED will load every plugin found in EXILED/Plugins and also the ones in EXILED/Plugins/<server port> where <server port> is the current port.

Does this PR introduce a breaking change?

Nop

Other information:

Fully compatible with the current configuration - an empty folder named as the server port will be created inside the directory
From suggestion: https://discord.com/channels/656673194693885975/663978314683252777/1267269585338372116


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

EXILED/Exiled.Loader/Loader.cs Outdated Show resolved Hide resolved
EXILED/Exiled.Loader/Loader.cs Outdated Show resolved Hide resolved
FoxWorn3365 and others added 3 commits September 6, 2024 18:40
private methods should be defined after public ones
Copy link

@iamalexrouse iamalexrouse left a comment

Choose a reason for hiding this comment

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

Everything seems ok, just make some adjustments I've mentioned and you should be all good.

EXILED/Exiled.Loader/Loader.cs Outdated Show resolved Hide resolved
EXILED/Exiled.Loader/Loader.cs Outdated Show resolved Hide resolved
EXILED/Exiled.Loader/Loader.cs Outdated Show resolved Hide resolved
FoxWorn3365 and others added 3 commits September 8, 2024 01:03
@FoxWorn3365
Copy link
Author

let's hope to not upset the auto checks

Copy link

@iamalexrouse iamalexrouse left a comment

Choose a reason for hiding this comment

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

👍

@VALERA771
Copy link

VALERA771 commented Sep 8, 2024

Tbh I don't see point for this pr. We have IsEnabled property in port's config and both current and your system have own dis- and advantages

@FoxWorn3365
Copy link
Author

We don't have to remove the IsEnabled system while adding that system tho.
I used to be a server owner ad you probably know how time-consuming is to enable and disable plugins in every config.
Imagine if you have 3 servers: you'll have to edit 2 <port>-config.yml every time you want to add a plugin only to a specific server.
This system will semplify the job of having different plugins for different servers without going crazy.

@VladTheCow
Copy link
Member

Just use pterodactyl and host servers in different containers 😛

@iamalexrouse
Copy link

Just use pterodactyl and host servers in different containers 😛

This is actually the better approach when working with multiple ports, especially with a game such as SCP: SL Dedicated Server.
Since most server hosts will only be running 1 server, and majority of hosting services will only allow for 1 instance of the dedicated server. So for most "live" use-cases, this feature is kind of redundant.

If you knew what you were doing, you could symlink to a networked location where the plugins are stored, for each port, but in pretty much all use-cases, that's never really been used, or even should be used, for obvious reasons.
For environments like running the server on your computer, this might be helpful, for having specific setups for each port though.

@FoxWorn3365
Copy link
Author

Lots of small SCP:SL servers uses the same machine to host multiple servers.
This feature does not remove anything and only adds something useful, really easy to use and compatible with the previous plugin loading strategy as every plugin that is not inside a folder will be considered global (as it is now).
I don't really see any reason to deny this addition.

@Jesus-QC
Copy link

I love this idea and ill try to make it go forward, but needs more discussion between how we want to structure it.

@louis1706
Copy link

For my pov it's seems ok if you can still show screen shot difference between before and now

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants