Introduced the Engineer class with unique tools, functionality, and creation logic. Updated the Tank class to make its constructor public and adjusted its creator to use the appropriate class. Enhanced GameClass to append health and damage details to display item lore dynamically.
Added @Contract, @NotNull, and @Unmodifiable annotations for better code safety and clarity. Refactored utility methods in `TankCreator` and `FighterCreator` to enhance readability and reuse, including extracting item creation logic for tools and display items.
Updated class selection to restrict changes during non-selection phases and adjusted spawn radius. Added flag particle trails and square border effects, improving visual feedback. Enhanced flag handling, clearing trails when the carrier is lost or offline.
Introduced a new Tank game class with specialized attributes and equipment, and added it to the class selection setup. Enhanced the Fighter class by introducing a healing potion tool to improve gameplay utility. These changes enhance gameplay diversity and team strategies.
Introduced a new event handler for player respawn to set custom spawn locations and apply game class attributes. This ensures players rejoin the game with the correct state after death.
Renamed OnSnowballHit to SnowballEvent and expanded functionality to handle projectile launches. Added InventoryItemInteractionEvent to manage item pickup and drop behavior. Updated player join logic to clear inventory, assign players to teams, and teleport them appropriately based on game state.
Ensure players have full health when the game ends by resetting their max health attribute and current health to default values. Logged an error if the max health attribute is unavailable.
Introduced a GUI system to facilitate class selection in the CTF game. This includes an abstract GUIInventory, GUIListener for event handling, and a ClassSelectionGUI for selecting classes. Also, added the "selectclass" command and integrated the GUI with game mechanics for improved player interaction.
Introduced new flag-related mechanics and game phases including `CombatPhase`, `EndedPhase`, and relevant event handling for better gameplay management. Enhanced team and player functionalities while making incremental adjustments to improve overall code structure.
Introduced a `clearTeams` method in `GameManager` to reset the teams list. Updated `Main.java` to call this method, ensuring teams are cleared before processing.
Abstracted default class creation logic into dedicated FighterCreator class for better modularity. Updated GameManager and ClassSelectionPhase to utilize this new structure, enabling dynamic class creation based on team color. Adjusted TODO.md to mark completed changes.
Introduced JSON-based configuration handling for teams using Jackson and validation utilities. Added commands for reloading configurations and creating teams with support for saving and loading team data. Refactored related classes to integrate with the new system.
Implemented the core structure for a Capture the Flag (CTF) plugin. This includes team management, game phases, player classes, command handling, and configuration support. The project is set up with Gradle for dependency management and provides placeholders for future feature expansion.