Skip to content

Chore: Paper migration#49

Merged
Distractic merged 146 commits intomainfrom
chore/paper-migration
Aug 31, 2023
Merged

Chore: Paper migration#49
Distractic merged 146 commits intomainfrom
chore/paper-migration

Conversation

@Quentixx
Copy link
Copy Markdown
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
Copy Markdown

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
Copy Markdown
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
Copy Markdown

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

@Distractic
Copy link
Copy Markdown
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
Copy Markdown
Contributor Author

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

To our keyboards!

@sonarqubecloud
Copy link
Copy Markdown

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
@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