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

2.0.0 #19

Merged
merged 183 commits into from
Aug 15, 2024
Merged

2.0.0 #19

merged 183 commits into from
Aug 15, 2024

Conversation

NonSwag
Copy link
Member

@NonSwag NonSwag commented Aug 2, 2024

Changelog

Major Updates

  • World Images Removed: Completely removed world images to align closer with the vanilla Minecraft experience.
  • World Links Overhaul:
    • World links are now stored directly within the world data for better data integrity.
    • Links now mimic vanilla behavior, only allowing connections between compatible worlds:
      • Nether ↔ Overworld & End
      • Overworld ↔ Nether & End
      • End ↔ Overworld & Nether
    • Portal types can no longer be specified.

New Features

  • Added World Management Commands: Implemented WorldSaveAll, WorldSave, WorldSaveOff, and WorldSaveOn commands. (c757807, 236d154, 3a9382c, 6bbed42)
  • Entity Teleportation: Added support for teleporting entities in WorldTeleportCommand. (5274ef6)

Enhancements

  • Gradle & Java Upgrades: Upgraded Gradle to 8.8 and updated Java configuration to use toolchains. (ef77594, e650e44)
  • Command Simplification: Streamlined command registration using Paper's Brigadier API. (cb15257)
  • Improved Plugin Load Order: Changed plugin load order to STARTUP. (3ba689d)

Refactoring & Cleanup

  • Renamed Worlds to WorldsPlugin: Updated class and references for clarity. (5256a65, f81ae32)
  • Removed Unused Dependencies: Cleaned up unused dependencies and classes. (d5c9715, 5e7750b)
  • Reorganized Package Structure: Improved project organization by restructuring packages. (d469331)

NonSwag and others added 13 commits August 15, 2024 16:46
Replaced LevelView with PaperLevelView and added PluginGeneratorView. This improves the modularity and clarity of view-related components in the plugin.
Replace list() method with isDirectory() to correctly verify if the presets folder exists. This prevents potential null pointer exceptions and ensures default presets are saved only when the folder is missing.
This commit introduces the GeneratorView interface and its implementation, PluginGeneratorView. The new classes provide methods to check if a plugin has custom world generators or biome providers.
Relocate `worlds/model` package from `plugin` to `api` for better modularity. Introduce `@NotNull` annotations to enforce non-null constraints across types, fields, parameters, and methods.
Introduced the `LevelView` interface in the API module to standardize level loading and management operations. Added annotations to ensure non-null fields, methods, and parameters by default in the `view` package, and renamed `LevelView.java` to `PaperLevelView.java` in the plugin module for clarity.
This change simplifies the code by removing private methods for checking generators and instead uses the generatorView() method directly. It improves readability and maintains consistency with the existing codebase.
Ensure that the specified plugin has an associated generator before proceeding. This enhances the validation logic and prevents potential errors during the command execution.
Introduced the WorldDeleteEvent class to manage events related to the deletion of Minecraft worlds. This includes creating the event constructor and handler list required for proper event management in Bukkit.
Introduce the WorldRegenerateEvent class extending WorldDeleteEvent to handle world regeneration events. This allows for better event management and modular handling of world-related actions in the system.
Introduced `@TypesAreNotNullByDefault`, `@FieldsAreNotNullByDefault`, `@ParametersAreNotNullByDefault`, and `@MethodsReturnNotNullByDefault` annotations to ensure better null safety in the `net.thenextlvl.worlds.event` package. This change enhances code robustness by enforcing non-null standards across the package.
Moved classes and interfaces to the 'api' subpackage for better organization and clarity. This change affects event, link, model, preset, and view packages and ensures a more modular structure.
Added a new `WorldsProvider` interface and updated `WorldsPlugin` to implement it. This ensures the core services (GeneratorView, LevelView, LinkController) are registered and available through the plugin lifecycle.
@NonSwag NonSwag self-assigned this Aug 15, 2024
@NonSwag NonSwag added the enhancement New feature or request label Aug 15, 2024
Remove unnecessary whitespace in the dependencies block. This enhances readability and maintains consistent code formatting throughout the build script.
Reorganize and optimize import statements to improve code readability and maintainability. Group related imports together and ensure consistency across multiple files.
Deleted the 'command.argument' property from both German and English resource files. This property was no longer in use, simplifying the resource file content.
Reorganized and standardized the order of messages and commands for better clarity and consistency in both English and German resource files. Ensuring all properties are properly aligned.
Refactor command message keys and add missing translations. This ensures consistency and clarity in user feedback for world saving commands both in English and German resource files.
Replaced the generic spawn message with a detailed message that includes the world name using the Placeholder API. This improves user feedback by specifying the world they have been teleported to.
Replaced ServerLoadEvent with WorldLoadEvent for better specificity. Enhanced logging to provide clearer information on dimension loads and error handling.
Refactor structure override parsing logic to reduce redundancy and streamline code. Introduce additional handling for `structure_overrides` when they are provided as strings. This improves code maintainability and robustness.
This change ensures that methods in the PaperLevelView class are annotated with @OverRide, improving code readability and reducing the potential for errors during method overriding. It also enhances consistency and clarity by explicitly indicating overridden methods from the interface.
Introduce overloaded loadLevel methods with an optional NamespacedKey parameter, enhancing the flexibility and customization of world loading. Adjusted the logic in PaperLevelView to support the new parameter while maintaining backward compatibility. The changes streamline the process of setting unique keys for worlds based on their names or provided values.
This change updates the WorldImportCommand to include a new "key" argument. The key parameter is used to specify a NamespacedKey for world loading, improving command functionality and flexibility. The added support allows users to import worlds more precisely.
Refactor the linking logic in `WorldLinkController` to include linking sibling worlds when linking a new world. The method now considers the opposite dimension for sibling world associations, enhancing the cross-world referencing structure.
Upgraded Gradle wrapper distribution from version 8.8 to 8.9 to incorporate latest improvements and fixes. Added SPDX license identifiers to both the Unix and Windows wrapper scripts to comply with licensing standards. Improved script robustness by modifying the way the current working directory is handled.
@NonSwag NonSwag merged commit 746e714 into master Aug 15, 2024
3 checks passed
@NonSwag NonSwag deleted the 2.0.0 branch August 15, 2024 17:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant