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

[Rules] Add rules for requiring custom files from client #4561

Merged
merged 5 commits into from
Dec 12, 2024

Conversation

knervous
Copy link
Contributor

@knervous knervous commented Nov 28, 2024

Description

These rules are for custom servers that require custom files, giving them an option to lock out players that don't have them installed while presenting a URL to download those files and get up to date. This prevents stale patch files and undefined behavior for clients logging in without the appropriate server files.

Here is an example of a custom client binary sending a custom payload:

https://github.com/knervous/eqnexus/blob/main/core/server_options.ixx

Fixes # (issue)

Type of change

Please delete options that are not relevant.

  • 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 not work as expected)
  • This change requires a documentation update

Testing

Example of what client sees when logging into a custom server without the correct custom files.

image

Clients tested: RoF2, Titanium

Checklist

  • I have tested my changes
  • I have performed a self-review of my code. Ensuring variables, functions and methods are named in a human-readable way, comments are added only where naming of variables, functions and methods can't give enough context.
  • I own the changes of my code and take responsibility for the potential issues that occur

@fryguy503
Copy link
Contributor

Could you add a status level bypass for the enforcement of the client restrictions.

@knervous
Copy link
Contributor Author

Could you add a status level bypass for the enforcement of the client restrictions.

Added, figure anything below ApprenticeGuide makes sense to enforce?

@fryguy503
Copy link
Contributor

Could you add a status level bypass for the enforcement of the client restrictions.

Added, figure anything below ApprenticeGuide makes sense to enforce?

Just make it a rule and call it easy to adjust.

@knervous
Copy link
Contributor Author

knervous commented Dec 3, 2024

Could you add a status level bypass for the enforcement of the client restrictions.

Added, figure anything below ApprenticeGuide makes sense to enforce?

Just make it a rule and call it easy to adjust.

Added a rule here with default of apprentice guides not having this enforced

@Akkadius Akkadius merged commit 3b779ef into EQEmu:master Dec 12, 2024
1 check passed
MortimerGreenwald pushed a commit to MortimerGreenwald/Server that referenced this pull request Dec 13, 2024
…u#4570)

Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.21.0 to 0.31.0.
- [Commits](golang/crypto@v0.21.0...v0.31.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>

[Rules] Add rules for requiring custom files from client (EQEmu#4561)

* rules for enabling requiring custom files

* shorten default

* variable name

* check account status for enforcing client key

* rule for custom files admin level

---------

[Commands] Add #find ldon_theme Subcommand (EQEmu#4564)

[Cleanup] Remove Unused Group Methods (EQEmu#4559)

[Feature] Enable bazaar window 'Find Trader' functionality (EQEmu#4560)

* First pass to enable trader 'Find Trader' functionality

* Move SendBulkTraders out of zoning routines and send as part of the opening of the bazaar search window.
Add zone instance to SendBulkTraders to support multi-instanced bazaars.

[Databuckets] Improved Reliability and Performance of Databuckets (EQEmu#4562)

* [Databuckets] Don't broadcast client-scoped updates

* Remove temp feature flag

* Remove distributed caching, only cache for character scoped data, simplify

* Update bot.cpp

* Cleanup

* Update data_bucket.cpp

* Cleanup

* Cleanup

* Remove BulkLoadEntities from LoadNPCTypes

* Update data_bucket.cpp

* Cleanup

* More cleanup

* More cleanup

* BulkLoadEntities to BulkLoadEntitiesToCache

* Add CanCache in DeleteData to gate an unnecessary call

[Cleanup] Convert Event Parses to Single Line (EQEmu#4569)

* [Cleanup] Convert Event Parses to Single Line

* Push

* Update spells.cpp

* Update spells.cpp

---------

Co-Authored-By: Paul Johnson <[email protected]>
Co-Authored-By: Akkadius <[email protected]>
Co-Authored-By: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
MortimerGreenwald pushed a commit to MortimerGreenwald/Server that referenced this pull request Dec 13, 2024
…u#4570)

Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.21.0 to 0.31.0.
- [Commits](golang/crypto@v0.21.0...v0.31.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>

[Rules] Add rules for requiring custom files from client (EQEmu#4561)

* rules for enabling requiring custom files

* shorten default

* variable name

* check account status for enforcing client key

* rule for custom files admin level

---------

[Commands] Add #find ldon_theme Subcommand (EQEmu#4564)

[Cleanup] Remove Unused Group Methods (EQEmu#4559)

[Feature] Enable bazaar window 'Find Trader' functionality (EQEmu#4560)

* First pass to enable trader 'Find Trader' functionality

* Move SendBulkTraders out of zoning routines and send as part of the opening of the bazaar search window.
Add zone instance to SendBulkTraders to support multi-instanced bazaars.

[Databuckets] Improved Reliability and Performance of Databuckets (EQEmu#4562)

* [Databuckets] Don't broadcast client-scoped updates

* Remove temp feature flag

* Remove distributed caching, only cache for character scoped data, simplify

* Update bot.cpp

* Cleanup

* Update data_bucket.cpp

* Cleanup

* Cleanup

* Remove BulkLoadEntities from LoadNPCTypes

* Update data_bucket.cpp

* Cleanup

* More cleanup

* More cleanup

* BulkLoadEntities to BulkLoadEntitiesToCache

* Add CanCache in DeleteData to gate an unnecessary call

[Cleanup] Convert Event Parses to Single Line (EQEmu#4569)

* [Cleanup] Convert Event Parses to Single Line

* Push

* Update spells.cpp

* Update spells.cpp

---------

Co-Authored-By: Paul Johnson <[email protected]>
Co-Authored-By: Akkadius <[email protected]>
Co-Authored-By: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

Revert "Bump golang.org/x/crypto in /utils/scripts/build/should-release (EQEmu#4570)"

This reverts commit 612b03a.
@Akkadius Akkadius mentioned this pull request Jan 6, 2025
MortimerGreenwald pushed a commit to MortimerGreenwald/Server that referenced this pull request Jan 6, 2025
* rules for enabling requiring custom files

* shorten default

* variable name

* check account status for enforcing client key

* rule for custom files admin level

---------

Co-authored-by: Paul Johnson <[email protected]>
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.

3 participants