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

Chore: Paper migration #49

Merged
merged 146 commits into from
Aug 31, 2023
Merged

Chore: Paper migration #49

merged 146 commits into from
Aug 31, 2023

Conversation

Quentixx
Copy link
Contributor

Context

The Minestom library ultimately does not meet our needs from a maintainability point of view.
After some consideration, @Distractic, @bananasmoothii and I agreed to migrate the library to PaperMC which is a fork of the Spigot project.

Benefits

  • Maintainability of the project over time
  • Development team already at ease with the library
  • Basic server behaviors required
  • Stability

Disadvantages compared to Minestom

  • Loss of performance
  • Unit Tests
  • Packet handling
  • Not fully open-source

Objective of the PR

  • Adapt the code initially designed under Minestom to PaperMC
  • Review the tests

@Quentixx Quentixx added dependencies Change about dependencies bug Something isn't working labels Apr 15, 2023
@bananasmoothii
Copy link

Maybe we can make some parts with minestom and some other parts with paper and like both with a proxy (velocity for instance) because minestom is much cheaper when it comes to hosting as it requires less performance

@Quentixx
Copy link
Contributor Author

Quentixx commented Apr 16, 2023

It's an interesting idea but it requires redesigning the API to handle PaperMC and Minestom.

It should be clarified in which use cases Minestom is preferable:


  • Pvpbox - Paper
    • 👍 The current dev of this project (@cizetux) is more comfortable with Bukkit based environnement
    • 👍 Not necessary to add any PvpExtension

    • 👎 Need to cancel some events (FoodLevelChange, WeatherChangeEvent, ...) while Minestom saves us from doing this

  • GameIdea1 - Paper/Minestom ❓
    • 📦 I think It depends if the game concept is built around interactions between players (stability & user experience is important)

I haven't thought of all cases, tell me what do you think @bananasmoothii

@bananasmoothii
Copy link

Yes, that is probably a good way. The connection between servers could be made via redis

@Distractic
Copy link
Collaborator

Having two types of server (Minestom and Spigot) is a real challenge and requires a lot of work. Because when you have to implement a feature on one, you will probably have to implement it on the other. This will require having two APIs to maintain.

Concerning the communication between the servers, whatever the type, the servers will be able to communicate between them using the proxy and to send messages to each other using redis

@Quentixx
Copy link
Contributor Author

In conclusion, we will therefore stick to our choice to migrate to full PaperMC, to avoid a substantial workload.

To our keyboards!

@sonarcloud
Copy link

sonarcloud bot commented Aug 19, 2023

SonarCloud Quality Gate failed.    Quality Gate failed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 2 Code Smells

61.3% 61.3% Coverage
0.3% 0.3% Duplication

idea Catch issues before they fail your Quality Gate with our IDE extension sonarlint SonarLint

@Distractic Distractic merged commit a11a92c into main Aug 31, 2023
3 of 4 checks passed
@Distractic Distractic deleted the chore/paper-migration branch August 31, 2023 18:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working dependencies Change about dependencies
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants