Closed
Conversation
* Remove AWE integration AsynchWorldEdit has been abandoned for over 2 years and does not work with current server versions. We should focus on supporting FAWE going ahead. * Decouple block from item requirements in challenges This resolves an issue in newer Spigot versions where non-item blocks in challenge requirements prevent the plugin from loading. Fixes #58 * Add converter to new challenges format * Update item conversion tests to new config header * Add timestamp to challenge file backup to avoid overwriting old backups * Update the challenges version number after conversion
Includes: - Updated maven plugins - Upgrade Mockito tests - Updated build script
* Fix wither spawning with disabled spawn-limits Resolves #60 Decouples wither-origin tracking and spawn limit listeners. The issue was that withers were tagged with their origin island in the creature spawn listeners for of SpawnEvents, which is not registered if spawn limits are disabled. I solved this by moving the wither tagging logic into a separate listener that is always active. Untagged Withers are despawned by the GriefEvents listener. I also migrated the tagging to PDC to make the tagging consistent without relying on name tagging that is prone to errors. * Cleanup SpawnEvents
Replace deprecated API calls and similar errors
* Update world generators to new generation model Makes some biome-related things typesafe as a side effect. Resolves #68 * Copy biome list for tab completion purposes * Fix logging of biome to island config when using the biome GUI
…challenge menu (#73) Completed challenges are usually shown with an enchant glowing effect when they are completed at least once. This may be useful for the player, but the "enchanted" status of the item is also used in the ChallengeLogic to determine if a challenge with `offset: -1` is displayed or not, in place of the completed one. New MC version, with the new data component system, does not allow an enchant level of 0 (even with unsafe enchant level), an is silently ignored. This commit changes the enchant level to 1, and adds a flag to the item meta to hide the enchant information from the tooltip.
* Implement a modern GUI framework * Biome update - Biomes are now configurable by the administrator - The biome GUI automatically adjusts to the biomes available to the player - The biome command and its tab completion use the configured biomes - The biome menu use the new GUI framework * Add nullability annotations and checks * Slight improvements to biome GUI rendering * Add newer biome types to support spawning of all passive mobs. Resolves #39
The goal of this PR is to improve the maintainability of the plugin by moving towards dependency-injection-based initialization.
Current issue:
The plugin currently uses a combination of static references, a massive single-instance service locator (the main uSkyBlock class), and passing dependencies down to child objects. This means
initialization order is implicit, and changing anything in the order may break stuff due to undocumented implicit dependencies
an overloaded main plugin class
implicit cyclic dependencies between services
changing a class usually requires changes to several others, including the main plugin class
Things are hard to test, as everything depends on everything else
This PR breaks these dependencies through dependency injection using Guice.
Most services, commands, and listeners are initialized through DI
Some services were refactored to depend on the actual type instead of the uSkyBlock class. This is an ongoing effort and will require continued effort in the future
Moved most of the initialization code out of the main plugin class
Initial testing looks good, but since this is a larger change, it may cause some initial instability or hidden issues.
Closes #14
Resolves #76
* Add guice for dependency injection
* Use DI for biome related classes
* Initialize most services via dependency injection
- Make most dependencies obvious by moving injections to the constructor
- Break some cyclic dependencies
- Reduce reliance on the main plugin class
* Restructure Command and Listener lifecycle management
* Initialize sub commands via dependency injection
* Cleanup more bootstrapping
* Additional bootstrap cleanup
* Move Island level refresh task out of main plugin class
* More lifecycle cleanup
* Move version info to its own module
* Fix static legacy initialization
* Move directory initializations to their proper classes
* Add Settings to early legacy initialization
* Remove redundant imports from MainConfigMenu
Many of the accessed objects (e.g., playerinfo, islandinfo, location, player, commandsender) are not threat-safe.
Clean separation of concerns, de-clutter main plugin class, use improved Durations API
The config menu is currently broken. It is not worth maintaining, configs can be edited directly in-file. Closes #80
* New translations keys.pot (French) [ci skip] * New translations keys.pot (Spanish) [ci skip] * New translations keys.pot (Czech) [ci skip] * New translations keys.pot (Danish) [ci skip] * New translations keys.pot (German) [ci skip] * New translations keys.pot (Italian) [ci skip] * New translations keys.pot (Korean) [ci skip] * New translations keys.pot (Dutch) [ci skip] * New translations keys.pot (Russian) [ci skip] * New translations keys.pot (Swedish) [ci skip] * New translations keys.pot (Chinese Simplified) [ci skip] * New translations keys.pot (Vietnamese) [ci skip] * New translations keys.pot (Portuguese, Brazilian) [ci skip] * New translations keys.pot (English, United Kingdom) [ci skip]
* New translations keys.pot (Arabic) [ci skip] * New translations keys.pot (Hungarian) [ci skip] * New translations keys.pot (Japanese) [ci skip] * New translations keys.pot (Romanian) [ci skip] * New translations keys.pot (Belarusian) [ci skip] * New translations keys.pot (Bulgarian) [ci skip] * New translations keys.pot (Catalan) [ci skip] * New translations keys.pot (Greek) [ci skip] * New translations keys.pot (Basque) [ci skip] * New translations keys.pot (Finnish) [ci skip] * New translations keys.pot (Irish) [ci skip] * New translations keys.pot (Hebrew) [ci skip] * New translations keys.pot (Lithuanian) [ci skip] * New translations keys.pot (Macedonian) [ci skip] * New translations keys.pot (Polish) [ci skip] * New translations keys.pot (Portuguese) [ci skip] * New translations keys.pot (Turkish) [ci skip] * New translations keys.pot (Ukrainian) [ci skip] * New translations keys.pot (Chinese Traditional) [ci skip] * New translations keys.pot (Indonesian) [ci skip] * New translations keys.pot (Thai) [ci skip] * New translations keys.pot (Slovak) [ci skip] * New translations keys.pot (Slovenian) [ci skip] * New translations keys.pot (Albanian) [ci skip] * New translations keys.pot (Urdu (Pakistan)) [ci skip] * New translations keys.pot (Galician) [ci skip] * New translations keys.pot (Icelandic) [ci skip] * New translations keys.pot (Persian) [ci skip] * New translations keys.pot (Bengali) [ci skip] * New translations keys.pot (Croatian) [ci skip] * New translations keys.pot (Estonian) [ci skip] * New translations keys.pot (Latvian) [ci skip] * New translations keys.pot (Hindi) [ci skip] * New translations keys.pot (Malay) [ci skip] * New translations keys.pot (Maltese) [ci skip] * New translations keys.pot (Filipino) [ci skip] * New translations keys.pot (Luxembourgish) [ci skip] * New translations keys.pot (Bosnian) [ci skip] * New translations keys.pot (Norwegian Bokmal) [ci skip] * New translations keys.pot (Serbian (Latin)) [ci skip]
…d translations. We only had partial legacy translations for very few languages, and those were inconsistent in quality. Since all message keys changed significantly, we regenerate instead of trying to preserve. This gives all languages full coverage and a clean base for human improvements via crowdin.
- add supported locale discovery/resolution in I18nUtil\n- generate and package supported-locales.txt in i18n.zip\n- add /usb lang command to list/set locale with compact output\n- auto-select supported system locale on first setup\n- log startup hint when default en is set but system locale is supported\n- update extracted translation keys and admin command wiring
Sort extractTranslation input files and normalize #: reference blocks to keep keys.pot deterministic across local and CI environments.
…nslation and reduce churn.
…ntries - Update legacy log handling to support new V2 format with plain text rendering. - Replace deprecated trLegacy calls with modern tr methods. - Add unit tests to ensure compatibility with various log entry formats. - Include new dependencies for text handling.
…th contextual annotations
…nd system-debug for easier translation prioritization (#105) * Refactor i18n to domain-split extraction and generated merge pipeline * Restructure translations into src/main/i18n with domain locale folders * Split locale catalogs into domain translation directories
…'s built-in translation system
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.