Four new classes - BothWorldPlayerType, SingleplayerWorldPlayerType, MultiplayerWorldPlayerType, and NoneWorldPlayerType - have been created.
The from() method in each of the new classes takes a SaveGame object as input and returns an instance of the corresponding WorldPlayerType.
The from() method in the WorldPlayerType class has been modified to return an instance of one of the new classes instead of a WorldPlayerType object.
The if-else statement in the from() method has been modified to create an instance of the appropriate new class instead of returning a WorldPlayerType object.
Overall, the changes involve refactoring the WorldPlayerType class to use polymorphism instead of a conditional statement to determine the appropriate behaviour based on the state of the SaveGame object. The result is a more modular and extensible code structure.
Notes for Reviewers
Thank you for taking the time to review this pull request. If you have any questions or suggestions for improvement, please don't hesitate to let me know.
The code has been refactored by re-structuring the components of the file. The following file have been changed.
FilePath of Files Changed
src/main/java/amidst/mojangapi/world/WorldBuilder.java src/main/java/amidst/mojangapi/world/player/WorldPlayerType.java
FilePath of new Files Created
src/main/java/amidst/mojangapi/world/player/BothWorldPlayerType.java src/main/java/amidst/mojangapi/world/player/MultiplayerWorldPlayerType.java src/main/java/amidst/mojangapi/world/player/NoneWorldPlayerType.java src/main/java/amidst/mojangapi/world/player/SingleplayerWorldPlayerType.java
Type Of Refactoring Done
Removing Conditional With Ploymorphism
Improvements Made
Overall, the changes involve refactoring the WorldPlayerType class to use polymorphism instead of a conditional statement to determine the appropriate behaviour based on the state of the SaveGame object. The result is a more modular and extensible code structure.
Notes for Reviewers
Thank you for taking the time to review this pull request. If you have any questions or suggestions for improvement, please don't hesitate to let me know.